bc-code-intelligence-mcp 1.5.9 → 1.6.1

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 (565) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +165 -165
  3. package/dist/config/config-loader.js +6 -6
  4. package/dist/config/config-loader.js.map +1 -1
  5. package/dist/index.d.ts +9 -8
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +93 -211
  8. package/dist/index.js.map +1 -1
  9. package/dist/layers/base-layer.d.ts +6 -6
  10. package/dist/layers/base-layer.d.ts.map +1 -1
  11. package/dist/layers/base-layer.js +15 -15
  12. package/dist/layers/base-layer.js.map +1 -1
  13. package/dist/layers/embedded-layer.d.ts +2 -2
  14. package/dist/layers/embedded-layer.d.ts.map +1 -1
  15. package/dist/layers/embedded-layer.js +59 -43
  16. package/dist/layers/embedded-layer.js.map +1 -1
  17. package/dist/layers/git-layer.d.ts +4 -2
  18. package/dist/layers/git-layer.d.ts.map +1 -1
  19. package/dist/layers/git-layer.js +70 -23
  20. package/dist/layers/git-layer.js.map +1 -1
  21. package/dist/layers/project-layer.d.ts +2 -2
  22. package/dist/layers/project-layer.d.ts.map +1 -1
  23. package/dist/layers/project-layer.js +58 -44
  24. package/dist/layers/project-layer.js.map +1 -1
  25. package/dist/services/code-analysis-service.d.ts +100 -2
  26. package/dist/services/code-analysis-service.d.ts.map +1 -1
  27. package/dist/services/code-analysis-service.js +274 -8
  28. package/dist/services/code-analysis-service.js.map +1 -1
  29. package/dist/services/knowledge-service.d.ts.map +1 -1
  30. package/dist/services/knowledge-service.js.map +1 -1
  31. package/dist/services/methodology-service.d.ts +34 -2
  32. package/dist/services/methodology-service.d.ts.map +1 -1
  33. package/dist/services/methodology-service.js +284 -29
  34. package/dist/services/methodology-service.js.map +1 -1
  35. package/dist/services/multi-content-layer-service.d.ts +5 -0
  36. package/dist/services/multi-content-layer-service.d.ts.map +1 -1
  37. package/dist/services/multi-content-layer-service.js +57 -9
  38. package/dist/services/multi-content-layer-service.js.map +1 -1
  39. package/dist/services/relevance-index-service.d.ts +95 -0
  40. package/dist/services/relevance-index-service.d.ts.map +1 -0
  41. package/dist/services/relevance-index-service.js +321 -0
  42. package/dist/services/relevance-index-service.js.map +1 -0
  43. package/dist/services/specialist-loader.d.ts +1 -0
  44. package/dist/services/specialist-loader.d.ts.map +1 -1
  45. package/dist/services/specialist-loader.js +1 -0
  46. package/dist/services/specialist-loader.js.map +1 -1
  47. package/dist/services/workflow-service.d.ts +12 -0
  48. package/dist/services/workflow-service.d.ts.map +1 -1
  49. package/dist/services/workflow-service.js +30 -0
  50. package/dist/services/workflow-service.js.map +1 -1
  51. package/dist/services/{enhanced-prompt-service.d.ts → workflow-specialist-router.d.ts} +41 -4
  52. package/dist/services/workflow-specialist-router.d.ts.map +1 -0
  53. package/dist/services/{enhanced-prompt-service.js → workflow-specialist-router.js} +150 -24
  54. package/dist/services/workflow-specialist-router.js.map +1 -0
  55. package/dist/services/workflow-v2/index.d.ts +6 -0
  56. package/dist/services/workflow-v2/index.d.ts.map +1 -0
  57. package/dist/services/workflow-v2/index.js +6 -0
  58. package/dist/services/workflow-v2/index.js.map +1 -0
  59. package/dist/services/workflow-v2/workflow-definitions.d.ts +53 -0
  60. package/dist/services/workflow-v2/workflow-definitions.d.ts.map +1 -0
  61. package/dist/services/workflow-v2/workflow-definitions.js +722 -0
  62. package/dist/services/workflow-v2/workflow-definitions.js.map +1 -0
  63. package/dist/services/workflow-v2/workflow-session-manager.d.ts +140 -0
  64. package/dist/services/workflow-v2/workflow-session-manager.d.ts.map +1 -0
  65. package/dist/services/workflow-v2/workflow-session-manager.js +820 -0
  66. package/dist/services/workflow-v2/workflow-session-manager.js.map +1 -0
  67. package/dist/tools/{workspace-tools.d.ts → _shared/workspace-constants.d.ts} +4 -51
  68. package/dist/tools/_shared/workspace-constants.d.ts.map +1 -0
  69. package/dist/tools/_shared/workspace-constants.js +53 -0
  70. package/dist/tools/_shared/workspace-constants.js.map +1 -0
  71. package/dist/tools/analyze_al_code/handler.d.ts +12 -0
  72. package/dist/tools/analyze_al_code/handler.d.ts.map +1 -0
  73. package/dist/tools/analyze_al_code/handler.js +312 -0
  74. package/dist/tools/analyze_al_code/handler.js.map +1 -0
  75. package/dist/tools/analyze_al_code/schema.d.ts +8 -0
  76. package/dist/tools/analyze_al_code/schema.d.ts.map +1 -0
  77. package/dist/tools/analyze_al_code/schema.js +54 -0
  78. package/dist/tools/analyze_al_code/schema.js.map +1 -0
  79. package/dist/tools/ask_bc_expert/handler.d.ts +21 -0
  80. package/dist/tools/ask_bc_expert/handler.d.ts.map +1 -0
  81. package/dist/tools/ask_bc_expert/handler.js +118 -0
  82. package/dist/tools/ask_bc_expert/handler.js.map +1 -0
  83. package/dist/tools/ask_bc_expert/schema.d.ts +8 -0
  84. package/dist/tools/ask_bc_expert/schema.d.ts.map +1 -0
  85. package/dist/tools/ask_bc_expert/schema.js +33 -0
  86. package/dist/tools/ask_bc_expert/schema.js.map +1 -0
  87. package/dist/tools/create_layer_content/handler.d.ts +17 -0
  88. package/dist/tools/create_layer_content/handler.d.ts.map +1 -0
  89. package/dist/tools/create_layer_content/handler.js +248 -0
  90. package/dist/tools/create_layer_content/handler.js.map +1 -0
  91. package/dist/tools/create_layer_content/schema.d.ts +9 -0
  92. package/dist/tools/create_layer_content/schema.d.ts.map +1 -0
  93. package/dist/tools/create_layer_content/schema.js +42 -0
  94. package/dist/tools/create_layer_content/schema.js.map +1 -0
  95. package/dist/tools/debug/diagnose_git_layer/handler.d.ts +6 -0
  96. package/dist/tools/debug/diagnose_git_layer/handler.d.ts.map +1 -0
  97. package/dist/tools/debug/diagnose_git_layer/handler.js +286 -0
  98. package/dist/tools/debug/diagnose_git_layer/handler.js.map +1 -0
  99. package/dist/tools/debug/diagnose_git_layer/schema.d.ts +6 -0
  100. package/dist/tools/debug/diagnose_git_layer/schema.d.ts.map +1 -0
  101. package/dist/tools/debug/diagnose_git_layer/schema.js +35 -0
  102. package/dist/tools/debug/diagnose_git_layer/schema.js.map +1 -0
  103. package/dist/tools/debug/diagnose_local_layer/handler.d.ts +6 -0
  104. package/dist/tools/debug/diagnose_local_layer/handler.d.ts.map +1 -0
  105. package/dist/tools/debug/diagnose_local_layer/handler.js +285 -0
  106. package/dist/tools/debug/diagnose_local_layer/handler.js.map +1 -0
  107. package/dist/tools/debug/diagnose_local_layer/schema.d.ts +6 -0
  108. package/dist/tools/debug/diagnose_local_layer/schema.d.ts.map +1 -0
  109. package/dist/tools/debug/diagnose_local_layer/schema.js +16 -0
  110. package/dist/tools/debug/diagnose_local_layer/schema.js.map +1 -0
  111. package/dist/tools/debug/get_layer_diagnostics/handler.d.ts +7 -0
  112. package/dist/tools/debug/get_layer_diagnostics/handler.d.ts.map +1 -0
  113. package/dist/tools/debug/get_layer_diagnostics/handler.js +46 -0
  114. package/dist/tools/debug/get_layer_diagnostics/handler.js.map +1 -0
  115. package/dist/tools/debug/get_layer_diagnostics/schema.d.ts +6 -0
  116. package/dist/tools/debug/get_layer_diagnostics/schema.d.ts.map +1 -0
  117. package/dist/tools/debug/get_layer_diagnostics/schema.js +20 -0
  118. package/dist/tools/debug/get_layer_diagnostics/schema.js.map +1 -0
  119. package/dist/tools/debug/reload_layers/handler.d.ts +8 -0
  120. package/dist/tools/debug/reload_layers/handler.d.ts.map +1 -0
  121. package/dist/tools/debug/reload_layers/handler.js +83 -0
  122. package/dist/tools/debug/reload_layers/handler.js.map +1 -0
  123. package/dist/tools/debug/reload_layers/schema.d.ts +6 -0
  124. package/dist/tools/debug/reload_layers/schema.d.ts.map +1 -0
  125. package/dist/tools/debug/reload_layers/schema.js +20 -0
  126. package/dist/tools/debug/reload_layers/schema.js.map +1 -0
  127. package/dist/tools/debug/test_azure_devops_pat/handler.d.ts +6 -0
  128. package/dist/tools/debug/test_azure_devops_pat/handler.d.ts.map +1 -0
  129. package/dist/tools/debug/test_azure_devops_pat/handler.js +16 -0
  130. package/dist/tools/debug/test_azure_devops_pat/handler.js.map +1 -0
  131. package/dist/tools/debug/test_azure_devops_pat/schema.d.ts +6 -0
  132. package/dist/tools/debug/test_azure_devops_pat/schema.d.ts.map +1 -0
  133. package/dist/tools/debug/test_azure_devops_pat/schema.js +27 -0
  134. package/dist/tools/debug/test_azure_devops_pat/schema.js.map +1 -0
  135. package/dist/tools/debug/validate_layer_config/handler.d.ts +6 -0
  136. package/dist/tools/debug/validate_layer_config/handler.d.ts.map +1 -0
  137. package/dist/tools/debug/validate_layer_config/handler.js +17 -0
  138. package/dist/tools/debug/validate_layer_config/handler.js.map +1 -0
  139. package/dist/tools/debug/validate_layer_config/schema.d.ts +6 -0
  140. package/dist/tools/debug/validate_layer_config/schema.d.ts.map +1 -0
  141. package/dist/tools/debug/validate_layer_config/schema.js +21 -0
  142. package/dist/tools/debug/validate_layer_config/schema.js.map +1 -0
  143. package/dist/tools/find_bc_knowledge/handler.d.ts +21 -0
  144. package/dist/tools/find_bc_knowledge/handler.d.ts.map +1 -0
  145. package/dist/tools/find_bc_knowledge/handler.js +71 -0
  146. package/dist/tools/find_bc_knowledge/handler.js.map +1 -0
  147. package/dist/tools/find_bc_knowledge/schema.d.ts +8 -0
  148. package/dist/tools/find_bc_knowledge/schema.d.ts.map +1 -0
  149. package/dist/tools/find_bc_knowledge/schema.js +35 -0
  150. package/dist/tools/find_bc_knowledge/schema.js.map +1 -0
  151. package/dist/tools/get_bc_topic/handler.d.ts +12 -0
  152. package/dist/tools/get_bc_topic/handler.d.ts.map +1 -0
  153. package/dist/tools/get_bc_topic/handler.js +35 -0
  154. package/dist/tools/get_bc_topic/handler.js.map +1 -0
  155. package/dist/tools/get_bc_topic/schema.d.ts +8 -0
  156. package/dist/tools/get_bc_topic/schema.d.ts.map +1 -0
  157. package/dist/tools/get_bc_topic/schema.js +29 -0
  158. package/dist/tools/get_bc_topic/schema.js.map +1 -0
  159. package/dist/tools/get_codelens_mappings/handler.d.ts +8 -0
  160. package/dist/tools/get_codelens_mappings/handler.d.ts.map +1 -0
  161. package/dist/tools/get_codelens_mappings/handler.js +79 -0
  162. package/dist/tools/get_codelens_mappings/handler.js.map +1 -0
  163. package/dist/tools/get_codelens_mappings/schema.d.ts +9 -0
  164. package/dist/tools/get_codelens_mappings/schema.d.ts.map +1 -0
  165. package/dist/tools/get_codelens_mappings/schema.js +16 -0
  166. package/dist/tools/get_codelens_mappings/schema.js.map +1 -0
  167. package/dist/tools/get_workspace_info/handler.d.ts +16 -0
  168. package/dist/tools/get_workspace_info/handler.d.ts.map +1 -0
  169. package/dist/tools/get_workspace_info/handler.js +36 -0
  170. package/dist/tools/get_workspace_info/handler.js.map +1 -0
  171. package/dist/tools/get_workspace_info/schema.d.ts +8 -0
  172. package/dist/tools/get_workspace_info/schema.d.ts.map +1 -0
  173. package/dist/tools/get_workspace_info/schema.js +15 -0
  174. package/dist/tools/get_workspace_info/schema.js.map +1 -0
  175. package/dist/tools/handlers.d.ts +48 -0
  176. package/dist/tools/handlers.d.ts.map +1 -0
  177. package/dist/tools/handlers.js +81 -0
  178. package/dist/tools/handlers.js.map +1 -0
  179. package/dist/tools/index.d.ts +132 -38
  180. package/dist/tools/index.d.ts.map +1 -1
  181. package/dist/tools/index.js +184 -52
  182. package/dist/tools/index.js.map +1 -1
  183. package/dist/tools/list_prompts/handler.d.ts +11 -0
  184. package/dist/tools/list_prompts/handler.d.ts.map +1 -0
  185. package/dist/tools/list_prompts/handler.js +102 -0
  186. package/dist/tools/list_prompts/handler.js.map +1 -0
  187. package/dist/tools/list_prompts/schema.d.ts +9 -0
  188. package/dist/tools/list_prompts/schema.d.ts.map +1 -0
  189. package/dist/tools/list_prompts/schema.js +28 -0
  190. package/dist/tools/list_prompts/schema.js.map +1 -0
  191. package/dist/tools/list_specialists/handler.d.ts +12 -0
  192. package/dist/tools/list_specialists/handler.d.ts.map +1 -0
  193. package/dist/tools/list_specialists/handler.js +68 -0
  194. package/dist/tools/list_specialists/handler.js.map +1 -0
  195. package/dist/tools/list_specialists/schema.d.ts +8 -0
  196. package/dist/tools/list_specialists/schema.d.ts.map +1 -0
  197. package/dist/tools/list_specialists/schema.js +24 -0
  198. package/dist/tools/list_specialists/schema.js.map +1 -0
  199. package/dist/tools/scaffold_layer_repo/handler.d.ts +15 -0
  200. package/dist/tools/scaffold_layer_repo/handler.d.ts.map +1 -0
  201. package/dist/tools/scaffold_layer_repo/handler.js +410 -0
  202. package/dist/tools/scaffold_layer_repo/handler.js.map +1 -0
  203. package/dist/tools/scaffold_layer_repo/schema.d.ts +9 -0
  204. package/dist/tools/scaffold_layer_repo/schema.d.ts.map +1 -0
  205. package/dist/tools/scaffold_layer_repo/schema.js +35 -0
  206. package/dist/tools/scaffold_layer_repo/schema.js.map +1 -0
  207. package/dist/tools/set_workspace_info/handler.d.ts +22 -0
  208. package/dist/tools/set_workspace_info/handler.d.ts.map +1 -0
  209. package/dist/tools/set_workspace_info/handler.js +60 -0
  210. package/dist/tools/set_workspace_info/handler.js.map +1 -0
  211. package/dist/tools/set_workspace_info/schema.d.ts +8 -0
  212. package/dist/tools/set_workspace_info/schema.d.ts.map +1 -0
  213. package/dist/tools/set_workspace_info/schema.js +25 -0
  214. package/dist/tools/set_workspace_info/schema.js.map +1 -0
  215. package/dist/tools/validate_layer_repo/handler.d.ts +10 -0
  216. package/dist/tools/validate_layer_repo/handler.d.ts.map +1 -0
  217. package/dist/tools/validate_layer_repo/handler.js +148 -0
  218. package/dist/tools/validate_layer_repo/handler.js.map +1 -0
  219. package/dist/tools/validate_layer_repo/schema.d.ts +9 -0
  220. package/dist/tools/validate_layer_repo/schema.d.ts.map +1 -0
  221. package/dist/tools/validate_layer_repo/schema.js +21 -0
  222. package/dist/tools/validate_layer_repo/schema.js.map +1 -0
  223. package/dist/tools/workflow_batch/handler.d.ts +21 -0
  224. package/dist/tools/workflow_batch/handler.d.ts.map +1 -0
  225. package/dist/tools/workflow_batch/handler.js +304 -0
  226. package/dist/tools/workflow_batch/handler.js.map +1 -0
  227. package/dist/tools/workflow_batch/schema.d.ts +8 -0
  228. package/dist/tools/workflow_batch/schema.d.ts.map +1 -0
  229. package/dist/tools/workflow_batch/schema.js +76 -0
  230. package/dist/tools/workflow_batch/schema.js.map +1 -0
  231. package/dist/tools/workflow_cancel/handler.d.ts +21 -0
  232. package/dist/tools/workflow_cancel/handler.d.ts.map +1 -0
  233. package/dist/tools/workflow_cancel/handler.js +157 -0
  234. package/dist/tools/workflow_cancel/handler.js.map +1 -0
  235. package/dist/tools/workflow_cancel/schema.d.ts +8 -0
  236. package/dist/tools/workflow_cancel/schema.d.ts.map +1 -0
  237. package/dist/tools/workflow_cancel/schema.js +34 -0
  238. package/dist/tools/workflow_cancel/schema.js.map +1 -0
  239. package/dist/tools/workflow_complete/handler.d.ts +21 -0
  240. package/dist/tools/workflow_complete/handler.d.ts.map +1 -0
  241. package/dist/tools/workflow_complete/handler.js +124 -0
  242. package/dist/tools/workflow_complete/handler.js.map +1 -0
  243. package/dist/tools/workflow_complete/schema.d.ts +8 -0
  244. package/dist/tools/workflow_complete/schema.d.ts.map +1 -0
  245. package/dist/tools/workflow_complete/schema.js +45 -0
  246. package/dist/tools/workflow_complete/schema.js.map +1 -0
  247. package/dist/tools/workflow_list/handler.d.ts +19 -0
  248. package/dist/tools/workflow_list/handler.d.ts.map +1 -0
  249. package/dist/tools/workflow_list/handler.js +58 -0
  250. package/dist/tools/workflow_list/handler.js.map +1 -0
  251. package/dist/tools/workflow_list/schema.d.ts +8 -0
  252. package/dist/tools/workflow_list/schema.d.ts.map +1 -0
  253. package/dist/tools/workflow_list/schema.js +26 -0
  254. package/dist/tools/workflow_list/schema.js.map +1 -0
  255. package/dist/tools/workflow_next/handler.d.ts +21 -0
  256. package/dist/tools/workflow_next/handler.d.ts.map +1 -0
  257. package/dist/tools/workflow_next/handler.js +90 -0
  258. package/dist/tools/workflow_next/handler.js.map +1 -0
  259. package/dist/tools/workflow_next/schema.d.ts +8 -0
  260. package/dist/tools/workflow_next/schema.d.ts.map +1 -0
  261. package/dist/tools/workflow_next/schema.js +28 -0
  262. package/dist/tools/workflow_next/schema.js.map +1 -0
  263. package/dist/tools/workflow_progress/handler.d.ts +21 -0
  264. package/dist/tools/workflow_progress/handler.d.ts.map +1 -0
  265. package/dist/tools/workflow_progress/handler.js +147 -0
  266. package/dist/tools/workflow_progress/handler.js.map +1 -0
  267. package/dist/tools/workflow_progress/schema.d.ts +8 -0
  268. package/dist/tools/workflow_progress/schema.d.ts.map +1 -0
  269. package/dist/tools/workflow_progress/schema.js +111 -0
  270. package/dist/tools/workflow_progress/schema.js.map +1 -0
  271. package/dist/tools/workflow_start/handler.d.ts +21 -0
  272. package/dist/tools/workflow_start/handler.d.ts.map +1 -0
  273. package/dist/tools/workflow_start/handler.js +133 -0
  274. package/dist/tools/workflow_start/handler.js.map +1 -0
  275. package/dist/tools/workflow_start/schema.d.ts +8 -0
  276. package/dist/tools/workflow_start/schema.d.ts.map +1 -0
  277. package/dist/tools/workflow_start/schema.js +102 -0
  278. package/dist/tools/workflow_start/schema.js.map +1 -0
  279. package/dist/tools/workflow_status/handler.d.ts +21 -0
  280. package/dist/tools/workflow_status/handler.d.ts.map +1 -0
  281. package/dist/tools/workflow_status/handler.js +107 -0
  282. package/dist/tools/workflow_status/handler.js.map +1 -0
  283. package/dist/tools/workflow_status/schema.d.ts +8 -0
  284. package/dist/tools/workflow_status/schema.d.ts.map +1 -0
  285. package/dist/tools/workflow_status/schema.js +33 -0
  286. package/dist/tools/workflow_status/schema.js.map +1 -0
  287. package/dist/types/bc-knowledge.d.ts +64 -13
  288. package/dist/types/bc-knowledge.d.ts.map +1 -1
  289. package/dist/types/bc-knowledge.js +15 -0
  290. package/dist/types/bc-knowledge.js.map +1 -1
  291. package/dist/types/enhanced-layer-types.d.ts +3 -3
  292. package/dist/types/enhanced-layer-types.d.ts.map +1 -1
  293. package/dist/types/workflow-v2-types.d.ts +577 -0
  294. package/dist/types/workflow-v2-types.d.ts.map +1 -0
  295. package/dist/types/workflow-v2-types.js +10 -0
  296. package/dist/types/workflow-v2-types.js.map +1 -0
  297. package/embedded-knowledge/.github/ISSUE_TEMPLATE/bug-report.md +23 -23
  298. package/embedded-knowledge/.github/ISSUE_TEMPLATE/content-improvement.md +23 -23
  299. package/embedded-knowledge/.github/ISSUE_TEMPLATE/knowledge-request.md +29 -29
  300. package/embedded-knowledge/AGENTS.md +177 -177
  301. package/embedded-knowledge/CONTRIBUTING.md +57 -57
  302. package/embedded-knowledge/LICENSE +20 -20
  303. package/embedded-knowledge/README.md +31 -31
  304. package/embedded-knowledge/codelens-mappings.yaml +111 -0
  305. package/embedded-knowledge/domains/alex-architect/api-delegate-operation-pattern.md +10 -0
  306. package/embedded-knowledge/domains/alex-architect/api-fieldset-registration-pattern.md +10 -0
  307. package/embedded-knowledge/domains/alex-architect/api-interface-design-patterns.md +10 -0
  308. package/embedded-knowledge/domains/alex-architect/api-page-development-patterns.md +10 -0
  309. package/embedded-knowledge/domains/alex-architect/complex-facade-patterns.md +10 -0
  310. package/embedded-knowledge/domains/alex-architect/delegating-to-github-copilot-agents.md +10 -0
  311. package/embedded-knowledge/domains/alex-architect/facade-pattern-al-implementation.md +10 -0
  312. package/embedded-knowledge/domains/alex-architect/facade-pattern-external-api.md +10 -0
  313. package/embedded-knowledge/domains/alex-architect/object-id-ninja-integration.md +10 -0
  314. package/embedded-knowledge/domains/alex-architect/recommend-object-id-ninja.md +10 -0
  315. package/embedded-knowledge/domains/alex-architect/subscriber-codeunit-size-optimization.md +12 -2
  316. package/embedded-knowledge/domains/alex-architect/systemid-integration.md +12 -2
  317. package/embedded-knowledge/domains/alex-architect/testability-design-patterns.md +10 -0
  318. package/embedded-knowledge/domains/casey-copilot/long-running-session-instructions.md +10 -0
  319. package/embedded-knowledge/domains/chris-config/configuration-file-discovery.md +10 -0
  320. package/embedded-knowledge/domains/chris-config/configuration-file-formats.md +10 -0
  321. package/embedded-knowledge/domains/chris-config/content-types-structure.md +10 -0
  322. package/embedded-knowledge/domains/chris-config/knowledge-content-creation.md +10 -0
  323. package/embedded-knowledge/domains/chris-config/layer-system-fundamentals.md +10 -0
  324. package/embedded-knowledge/domains/chris-config/multi-team-layer-configuration.md +10 -0
  325. package/embedded-knowledge/domains/chris-config/workspace-detection-solutions.md +10 -0
  326. package/embedded-knowledge/domains/dean-debug/bc-telemetry-buddy-integration.md +10 -0
  327. package/embedded-knowledge/domains/dean-debug/bc24-no-series-conversion-guide.md +10 -0
  328. package/embedded-knowledge/domains/dean-debug/case-statement-performance-best-practices.md +12 -2
  329. package/embedded-knowledge/domains/dean-debug/compound-statements-debugging.md +12 -2
  330. package/embedded-knowledge/domains/dean-debug/custom-dimensions-best-practices.md +12 -2
  331. package/embedded-knowledge/domains/dean-debug/custom-telemetry-implementation.md +10 -0
  332. package/embedded-knowledge/domains/dean-debug/deleteall-performance-tradeoff.md +12 -2
  333. package/embedded-knowledge/domains/dean-debug/deleteall-sql-performance.md +10 -0
  334. package/embedded-knowledge/domains/dean-debug/extension-telemetry-isolation.md +12 -2
  335. package/embedded-knowledge/domains/dean-debug/maintainsiftindex-property-behavior.md +10 -0
  336. package/embedded-knowledge/domains/dean-debug/no-series-implementation-patterns.md +10 -0
  337. package/embedded-knowledge/domains/dean-debug/no-series-module-patterns-bc24.md +10 -0
  338. package/embedded-knowledge/domains/dean-debug/no-series-validation-module-bc24.md +10 -0
  339. package/embedded-knowledge/domains/dean-debug/no-series-validation-patterns.md +10 -0
  340. package/embedded-knowledge/domains/dean-debug/odata-query-optimization.md +12 -2
  341. package/embedded-knowledge/domains/dean-debug/recommend-bc-telemetry-buddy.md +10 -0
  342. package/embedded-knowledge/domains/dean-debug/session-logmessage-methods.md +12 -2
  343. package/embedded-knowledge/domains/dean-debug/setloadfields-filter-field-exclusion.md +12 -2
  344. package/embedded-knowledge/domains/dean-debug/setloadfields-performance-impact.md +10 -0
  345. package/embedded-knowledge/domains/dean-debug/setloadfields-performance-optimization.md +10 -0
  346. package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-case-statements.md +12 -2
  347. package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-filters.md +12 -2
  348. package/embedded-knowledge/domains/dean-debug/setloadfields-primary-key-optimization.md +12 -2
  349. package/embedded-knowledge/domains/dean-debug/sift-technology-fundamentals.md +10 -0
  350. package/embedded-knowledge/domains/dean-debug/subscriber-singleinstance-performance.md +12 -2
  351. package/embedded-knowledge/domains/dean-debug/table-event-batch-operation-impact.md +12 -2
  352. package/embedded-knowledge/domains/dean-debug/table-key-requirements.md +12 -2
  353. package/embedded-knowledge/domains/dean-debug/telemetry-error-correlation.md +12 -2
  354. package/embedded-knowledge/domains/dean-debug/telemetry-performance-considerations.md +12 -2
  355. package/embedded-knowledge/domains/dean-debug/telemetry-verbosity-strategy.md +12 -2
  356. package/embedded-knowledge/domains/dean-debug/testfield-performance.md +12 -2
  357. package/embedded-knowledge/domains/eva-errors/codeunit-run-pattern.md +10 -0
  358. package/embedded-knowledge/domains/eva-errors/fielderror-default-messages.md +12 -2
  359. package/embedded-knowledge/domains/eva-errors/fielderror-message-construction.md +12 -2
  360. package/embedded-knowledge/domains/eva-errors/fielderror-method-syntax.md +12 -2
  361. package/embedded-knowledge/domains/eva-errors/testfield-error-handling.md +12 -2
  362. package/embedded-knowledge/domains/eva-errors/try-function-usage.md +10 -0
  363. package/embedded-knowledge/domains/jordan-bridge/al-event-subscriber-architecture.md +10 -0
  364. package/embedded-knowledge/domains/jordan-bridge/automatic-registration.md +12 -2
  365. package/embedded-knowledge/domains/jordan-bridge/business-process-template-patterns.md +10 -0
  366. package/embedded-knowledge/domains/jordan-bridge/error-response-patterns.md +12 -2
  367. package/embedded-knowledge/domains/jordan-bridge/etag-implementation.md +12 -2
  368. package/embedded-knowledge/domains/jordan-bridge/field-control-selection.md +12 -2
  369. package/embedded-knowledge/domains/jordan-bridge/task-scheduler-pattern-implementation.md +10 -0
  370. package/embedded-knowledge/domains/jordan-bridge/url-structure-naming-patterns.md +12 -2
  371. package/embedded-knowledge/domains/maya-mentor/case-multiple-conditions-ranges.md +12 -2
  372. package/embedded-knowledge/domains/maya-mentor/case-statement-syntax-structure.md +12 -2
  373. package/embedded-knowledge/domains/maya-mentor/fielderror-syntax-usage.md +12 -2
  374. package/embedded-knowledge/domains/maya-mentor/fielderror-vs-testfield.md +12 -2
  375. package/embedded-knowledge/domains/maya-mentor/testfield-basic-syntax.md +12 -2
  376. package/embedded-knowledge/domains/morgan-market/partner-readiness-analysis.md +10 -0
  377. package/embedded-knowledge/domains/parker-pragmatic/proposal-workflows/creating-effective-proposals.md +10 -0
  378. package/embedded-knowledge/domains/parker-pragmatic/trust-building/working-with-ai-skeptics.md +10 -0
  379. package/embedded-knowledge/domains/quinn-tester/fielderror-validation-patterns.md +12 -2
  380. package/embedded-knowledge/domains/quinn-tester/isolation-testing-patterns.md +10 -0
  381. package/embedded-knowledge/domains/quinn-tester/rule-execution.md +12 -2
  382. package/embedded-knowledge/domains/quinn-tester/table-safety-validation-patterns.md +12 -2
  383. package/embedded-knowledge/domains/quinn-tester/temporary-table-operation-validation.md +12 -2
  384. package/embedded-knowledge/domains/roger-reviewer/al-begin-end-block-structure.md +10 -0
  385. package/embedded-knowledge/domains/roger-reviewer/al-binary-operator-spacing.md +10 -0
  386. package/embedded-knowledge/domains/roger-reviewer/al-blank-line-organization.md +10 -0
  387. package/embedded-knowledge/domains/roger-reviewer/al-case-action-formatting.md +10 -0
  388. package/embedded-knowledge/domains/roger-reviewer/al-code-spacing-conventions.md +12 -2
  389. package/embedded-knowledge/domains/roger-reviewer/al-comment-spacing-standards.md +10 -0
  390. package/embedded-knowledge/domains/roger-reviewer/al-end-else-pairing.md +10 -0
  391. package/embedded-knowledge/domains/roger-reviewer/al-keyword-indentation-rules.md +10 -0
  392. package/embedded-knowledge/domains/roger-reviewer/al-line-start-keyword-positioning.md +10 -0
  393. package/embedded-knowledge/domains/roger-reviewer/al-separate-if-else-formatting.md +10 -0
  394. package/embedded-knowledge/domains/roger-reviewer/al-standard-abbreviations.md +10 -0
  395. package/embedded-knowledge/domains/roger-reviewer/al-statement-per-line-rule.md +10 -0
  396. package/embedded-knowledge/domains/roger-reviewer/al-unnecessary-else-elimination.md +10 -0
  397. package/embedded-knowledge/domains/roger-reviewer/al-variable-declaration-order.md +10 -0
  398. package/embedded-knowledge/domains/roger-reviewer/al-variable-naming-conventions.md +10 -0
  399. package/embedded-knowledge/domains/roger-reviewer/begin-block-statement-clarity.md +10 -0
  400. package/embedded-knowledge/domains/roger-reviewer/begin-end-positioning-patterns.md +10 -0
  401. package/embedded-knowledge/domains/roger-reviewer/binary-operator-line-positioning.md +12 -2
  402. package/embedded-knowledge/domains/roger-reviewer/boolean-expression-simplification-al.md +10 -0
  403. package/embedded-knowledge/domains/roger-reviewer/case-statement-error-handling-troubleshooting.md +12 -2
  404. package/embedded-knowledge/domains/roger-reviewer/compound-statement-readability.md +12 -2
  405. package/embedded-knowledge/domains/roger-reviewer/lonely-repeat-statement-pattern.md +10 -0
  406. package/embedded-knowledge/domains/roger-reviewer/testability-code-smells.md +10 -0
  407. package/embedded-knowledge/domains/sam-coder/al-formatting-consistency-patterns.md +10 -0
  408. package/embedded-knowledge/domains/sam-coder/al-line-comment-formatting.md +12 -2
  409. package/embedded-knowledge/domains/sam-coder/al-lonely-repeat-pattern.md +10 -0
  410. package/embedded-knowledge/domains/sam-coder/al-named-parameter-pattern.md +10 -0
  411. package/embedded-knowledge/domains/sam-coder/al-object-navigation-shortcuts.md +10 -0
  412. package/embedded-knowledge/domains/sam-coder/al-readability-optimization.md +10 -0
  413. package/embedded-knowledge/domains/sam-coder/al-record-find-early-exit.md +10 -0
  414. package/embedded-knowledge/domains/sam-coder/command-queue-pattern-al.md +10 -0
  415. package/embedded-knowledge/domains/sam-coder/deleteall-alternative-implementation.md +12 -2
  416. package/embedded-knowledge/domains/sam-coder/deleteall-method-usage.md +10 -0
  417. package/embedded-knowledge/domains/sam-coder/deleteall-trigger-execution.md +10 -0
  418. package/embedded-knowledge/domains/sam-coder/event-bridge-pattern-al.md +10 -0
  419. package/embedded-knowledge/domains/sam-coder/event-payload-design-patterns.md +10 -0
  420. package/embedded-knowledge/domains/sam-coder/generic-method-patterns-al.md +10 -0
  421. package/embedded-knowledge/domains/sam-coder/manual-binding-conditional-subscribers.md +10 -0
  422. package/embedded-knowledge/domains/sam-coder/nested-compound-best-practices.md +10 -0
  423. package/embedded-knowledge/domains/sam-coder/single-to-compound-conversion.md +12 -2
  424. package/embedded-knowledge/domains/sam-coder/template-method-pattern-al.md +10 -0
  425. package/embedded-knowledge/domains/sam-coder/testfield-patterns.md +12 -2
  426. package/embedded-knowledge/domains/sam-coder/type-safe-operations-al.md +10 -0
  427. package/embedded-knowledge/domains/sam-coder/vs-code-al-keyboard-shortcuts.md +10 -0
  428. package/embedded-knowledge/domains/seth-security/al-temporary-table-safety.md +10 -0
  429. package/embedded-knowledge/domains/seth-security/api-permission-model.md +12 -2
  430. package/embedded-knowledge/domains/seth-security/istemporary-safeguard-pattern.md +12 -2
  431. package/embedded-knowledge/domains/shared/al-file-naming-conventions.md +155 -145
  432. package/embedded-knowledge/domains/taylor-docs/al-xml-documentation-structure.md +10 -0
  433. package/embedded-knowledge/domains/uma-ux/bc-action-shortcuts-syntax.md +12 -2
  434. package/embedded-knowledge/domains/uma-ux/shortcut-key-user-experience-design.md +12 -2
  435. package/embedded-knowledge/scripts/frontmatter_validator.ps1 +330 -0
  436. package/embedded-knowledge/specialists/sam-coder.md +29 -20
  437. package/embedded-knowledge/workflows/bc-version-upgrade.yaml +160 -0
  438. package/embedded-knowledge/workflows/code-review.yaml +148 -0
  439. package/embedded-knowledge/workflows/error-to-errorinfo-migration.yaml +137 -0
  440. package/embedded-knowledge/workflows/onboarding.yaml +124 -0
  441. package/embedded-knowledge/workflows/performance-audit.yaml +148 -0
  442. package/embedded-knowledge/workflows/proposal-review.yaml +117 -0
  443. package/embedded-knowledge/workflows/security-audit.yaml +139 -0
  444. package/package.json +83 -81
  445. package/dist/cache/cache-manager.d.ts +0 -95
  446. package/dist/cache/cache-manager.d.ts.map +0 -1
  447. package/dist/cache/cache-manager.js +0 -328
  448. package/dist/cache/cache-manager.js.map +0 -1
  449. package/dist/cli/bc-code-intel-cli.d.ts +0 -9
  450. package/dist/cli/bc-code-intel-cli.d.ts.map +0 -1
  451. package/dist/cli/bc-code-intel-cli.js +0 -440
  452. package/dist/cli/bc-code-intel-cli.js.map +0 -1
  453. package/dist/config/test-config-loader.d.ts +0 -10
  454. package/dist/config/test-config-loader.d.ts.map +0 -1
  455. package/dist/config/test-config-loader.js +0 -135
  456. package/dist/config/test-config-loader.js.map +0 -1
  457. package/dist/config/test-enhanced-layer-service.d.ts +0 -7
  458. package/dist/config/test-enhanced-layer-service.d.ts.map +0 -1
  459. package/dist/config/test-enhanced-layer-service.js +0 -104
  460. package/dist/config/test-enhanced-layer-service.js.map +0 -1
  461. package/dist/config/test-git-layer.d.ts +0 -7
  462. package/dist/config/test-git-layer.d.ts.map +0 -1
  463. package/dist/config/test-git-layer.js +0 -68
  464. package/dist/config/test-git-layer.js.map +0 -1
  465. package/dist/dev/hot-reload.d.ts +0 -91
  466. package/dist/dev/hot-reload.d.ts.map +0 -1
  467. package/dist/dev/hot-reload.js +0 -358
  468. package/dist/dev/hot-reload.js.map +0 -1
  469. package/dist/layers/layer-service.d.ts +0 -135
  470. package/dist/layers/layer-service.d.ts.map +0 -1
  471. package/dist/layers/layer-service.js +0 -586
  472. package/dist/layers/layer-service.js.map +0 -1
  473. package/dist/monitoring/production-monitor.d.ts +0 -148
  474. package/dist/monitoring/production-monitor.d.ts.map +0 -1
  475. package/dist/monitoring/production-monitor.js +0 -463
  476. package/dist/monitoring/production-monitor.js.map +0 -1
  477. package/dist/performance/performance-monitor.d.ts +0 -99
  478. package/dist/performance/performance-monitor.d.ts.map +0 -1
  479. package/dist/performance/performance-monitor.js +0 -253
  480. package/dist/performance/performance-monitor.js.map +0 -1
  481. package/dist/sdk/bc-code-intel-client.d.ts +0 -175
  482. package/dist/sdk/bc-code-intel-client.d.ts.map +0 -1
  483. package/dist/sdk/bc-code-intel-client.js +0 -380
  484. package/dist/sdk/bc-code-intel-client.js.map +0 -1
  485. package/dist/search/intelligent-search.d.ts +0 -97
  486. package/dist/search/intelligent-search.d.ts.map +0 -1
  487. package/dist/search/intelligent-search.js +0 -358
  488. package/dist/search/intelligent-search.js.map +0 -1
  489. package/dist/security/access-control.d.ts +0 -110
  490. package/dist/security/access-control.d.ts.map +0 -1
  491. package/dist/security/access-control.js +0 -353
  492. package/dist/security/access-control.js.map +0 -1
  493. package/dist/services/enhanced-prompt-service.d.ts.map +0 -1
  494. package/dist/services/enhanced-prompt-service.js.map +0 -1
  495. package/dist/services/roleplay-engine.d.ts +0 -161
  496. package/dist/services/roleplay-engine.d.ts.map +0 -1
  497. package/dist/services/roleplay-engine.js +0 -994
  498. package/dist/services/roleplay-engine.js.map +0 -1
  499. package/dist/setup/post-install.d.ts +0 -12
  500. package/dist/setup/post-install.d.ts.map +0 -1
  501. package/dist/setup/post-install.js +0 -81
  502. package/dist/setup/post-install.js.map +0 -1
  503. package/dist/streamlined-handlers.d.ts +0 -87
  504. package/dist/streamlined-handlers.d.ts.map +0 -1
  505. package/dist/streamlined-handlers.js +0 -685
  506. package/dist/streamlined-handlers.js.map +0 -1
  507. package/dist/test-enhanced-mcp-server.d.ts +0 -7
  508. package/dist/test-enhanced-mcp-server.d.ts.map +0 -1
  509. package/dist/test-enhanced-mcp-server.js +0 -177
  510. package/dist/test-enhanced-mcp-server.js.map +0 -1
  511. package/dist/tools/config-diagnostic-tools.d.ts +0 -234
  512. package/dist/tools/config-diagnostic-tools.d.ts.map +0 -1
  513. package/dist/tools/config-diagnostic-tools.js +0 -887
  514. package/dist/tools/config-diagnostic-tools.js.map +0 -1
  515. package/dist/tools/core-tools.d.ts +0 -26
  516. package/dist/tools/core-tools.d.ts.map +0 -1
  517. package/dist/tools/core-tools.js +0 -245
  518. package/dist/tools/core-tools.js.map +0 -1
  519. package/dist/tools/handoff-tools.d.ts +0 -37
  520. package/dist/tools/handoff-tools.d.ts.map +0 -1
  521. package/dist/tools/handoff-tools.js +0 -265
  522. package/dist/tools/handoff-tools.js.map +0 -1
  523. package/dist/tools/onboarding-tools.d.ts +0 -43
  524. package/dist/tools/onboarding-tools.d.ts.map +0 -1
  525. package/dist/tools/onboarding-tools.js +0 -353
  526. package/dist/tools/onboarding-tools.js.map +0 -1
  527. package/dist/tools/specialist-discovery-tools.d.ts +0 -27
  528. package/dist/tools/specialist-discovery-tools.d.ts.map +0 -1
  529. package/dist/tools/specialist-discovery-tools.js +0 -281
  530. package/dist/tools/specialist-discovery-tools.js.map +0 -1
  531. package/dist/tools/specialist-tools.d.ts +0 -43
  532. package/dist/tools/specialist-tools.d.ts.map +0 -1
  533. package/dist/tools/specialist-tools.js +0 -378
  534. package/dist/tools/specialist-tools.js.map +0 -1
  535. package/dist/tools/workspace-tools.d.ts.map +0 -1
  536. package/dist/tools/workspace-tools.js +0 -188
  537. package/dist/tools/workspace-tools.js.map +0 -1
  538. package/dist/types/roleplay-types.d.ts +0 -156
  539. package/dist/types/roleplay-types.d.ts.map +0 -1
  540. package/dist/types/roleplay-types.js +0 -8
  541. package/dist/types/roleplay-types.js.map +0 -1
  542. package/dist/utils/path-utils.d.ts +0 -5
  543. package/dist/utils/path-utils.d.ts.map +0 -1
  544. package/dist/utils/path-utils.js +0 -14
  545. package/dist/utils/path-utils.js.map +0 -1
  546. package/dist/workflows/domain-workflows.d.ts +0 -8
  547. package/dist/workflows/domain-workflows.d.ts.map +0 -1
  548. package/dist/workflows/domain-workflows.js +0 -360
  549. package/dist/workflows/domain-workflows.js.map +0 -1
  550. package/embedded-knowledge/methodologies/index.json +0 -81
  551. package/embedded-knowledge/methodologies/phases/analysis-full.md +0 -208
  552. package/embedded-knowledge/methodologies/phases/analysis-quick.md +0 -44
  553. package/embedded-knowledge/methodologies/phases/analysis.md +0 -182
  554. package/embedded-knowledge/methodologies/phases/execution-validation-full.md +0 -174
  555. package/embedded-knowledge/methodologies/phases/execution-validation-quick.md +0 -31
  556. package/embedded-knowledge/methodologies/phases/execution-validation.md +0 -174
  557. package/embedded-knowledge/methodologies/phases/performance-full.md +0 -211
  558. package/embedded-knowledge/methodologies/phases/performance-quick.md +0 -32
  559. package/embedded-knowledge/methodologies/phases/performance.md +0 -211
  560. package/embedded-knowledge/methodologies/phases/verification-full.md +0 -162
  561. package/embedded-knowledge/methodologies/phases/verification-quick.md +0 -48
  562. package/embedded-knowledge/methodologies/phases/verification.md +0 -146
  563. package/embedded-knowledge/methodologies/workflow-enforcement.md +0 -142
  564. package/embedded-knowledge/methodologies/workflows/code-review-workflow.md +0 -99
  565. package/embedded-knowledge/methodologies/workflows/proposal-review-workflow.md +0 -535
@@ -1,378 +0,0 @@
1
- /**
2
- * MCP Tools for BC Specialist Interactions
3
- *
4
- * Provides a focused set of tools for AI-assisted Business Central development
5
- * through personality-driven specialist consultations.
6
- */
7
- import { BCSpecialistRoleplayEngine } from '../services/roleplay-engine.js';
8
- import { z } from 'zod';
9
- // Input validation schemas
10
- const SuggestSpecialistSchema = z.object({
11
- question: z.string().min(10, 'Question must be at least 10 characters'),
12
- context: z.string().optional().describe('Additional context about the problem')
13
- });
14
- const GetSpecialistAdviceSchema = z.object({
15
- specialist_id: z.string().min(1, 'Specialist ID is required'),
16
- message: z.string().min(1, 'Message is required'),
17
- session_id: z.string().optional().describe('Session ID for multi-turn conversations'),
18
- problem_context: z.string().optional().describe('Overall problem being solved')
19
- });
20
- const ListSpecialistsSchema = z.object({
21
- domain: z.string().optional().describe('Filter by domain (e.g., performance, security)'),
22
- expertise: z.string().optional().describe('Filter by expertise area')
23
- });
24
- export class SpecialistTools {
25
- layerService;
26
- sessionManager;
27
- knowledgeService;
28
- roleplayEngine;
29
- constructor(layerService, sessionManager, knowledgeService) {
30
- this.layerService = layerService;
31
- this.sessionManager = sessionManager;
32
- this.knowledgeService = knowledgeService;
33
- this.roleplayEngine = new BCSpecialistRoleplayEngine(layerService, knowledgeService);
34
- }
35
- /**
36
- * Get all specialist tool definitions for MCP registration
37
- */
38
- getToolDefinitions() {
39
- return [
40
- {
41
- name: 'suggest_specialist',
42
- description: 'Find the most appropriate BC specialist for your question. IMPORTANT: When user wants to "talk to" or "chat with" a specific specialist, use get_specialist_advice directly instead. This tool is for discovering which specialist to use when unsure.',
43
- inputSchema: {
44
- type: 'object',
45
- properties: {
46
- question: {
47
- type: 'string',
48
- description: 'Your question or problem description',
49
- minLength: 10
50
- },
51
- context: {
52
- type: 'string',
53
- description: 'Additional context about your project or situation (optional)'
54
- }
55
- },
56
- required: ['question']
57
- }
58
- },
59
- {
60
- name: 'get_specialist_advice',
61
- description: `Connect directly with a BC specialist who responds authentically as themselves. CRITICAL FOR AGENTS: Respond AS the specialist, not as an AI describing roleplay. No menus, no explanations - dive straight into the specialist persona and expertise. Perfect for "Talk to Sam", "Chat with Dean", etc.
62
-
63
- ⚠️ **MANDATORY KNOWLEDGE LOOKUP**: Before generating ANY BC development advice or code, ALWAYS search the knowledge base first using find_bc_knowledge. The knowledge base contains authoritative BC standards, patterns, and conventions that override general AI training. Never rely solely on training data for BC development guidance.
64
-
65
- Example: find_bc_knowledge({ query: "AL file naming conventions" }) before writing AL code.
66
-
67
- 🔧 **AL/BC Platform Constraints**: All specialist advice MUST respect Business Central and AL language limitations:
68
- • Security specialists: Focus on AL permission objects, user groups, BC security framework - NOT external auth systems
69
- • UX specialists: Work within AL page/report constraints - BC controls rendering, NOT custom CSS/HTML
70
- • Performance specialists: AL optimization patterns, table design, BC server constraints - NOT generic frameworks
71
- • API specialists: BC API pages, web services, AL integration - NOT generic REST frameworks
72
- • All specialists: Prioritize AL language capabilities and BC platform limitations over generic programming`,
73
- inputSchema: {
74
- type: 'object',
75
- properties: {
76
- specialist_id: {
77
- type: 'string',
78
- description: 'ID of the specialist (e.g., dean-debug, alex-architect)',
79
- minLength: 1
80
- },
81
- message: {
82
- type: 'string',
83
- description: 'Your question or message to the specialist',
84
- minLength: 1
85
- },
86
- session_id: {
87
- type: 'string',
88
- description: 'Session ID for ongoing conversations (optional - will create new session if not provided)'
89
- },
90
- problem_context: {
91
- type: 'string',
92
- description: 'Overall problem context to help the specialist understand the bigger picture (optional)'
93
- }
94
- },
95
- required: ['specialist_id', 'message']
96
- }
97
- },
98
- {
99
- name: 'list_specialists',
100
- description: 'Discover available BC specialists and their expertise areas. Useful for understanding the team capabilities.',
101
- inputSchema: {
102
- type: 'object',
103
- properties: {
104
- domain: {
105
- type: 'string',
106
- description: 'Filter by domain (e.g., performance, security, api-design) - optional'
107
- },
108
- expertise: {
109
- type: 'string',
110
- description: 'Filter by expertise area (e.g., caching, authentication) - optional'
111
- }
112
- },
113
- required: []
114
- }
115
- }
116
- ];
117
- }
118
- /**
119
- * Handle specialist tool calls
120
- */
121
- async handleToolCall(request) {
122
- try {
123
- switch (request.params.name) {
124
- case 'suggest_specialist':
125
- return await this.handleSuggestSpecialist(request);
126
- case 'get_specialist_advice':
127
- return await this.handleGetSpecialistAdvice(request);
128
- case 'list_specialists':
129
- return await this.handleListSpecialists(request);
130
- default:
131
- return {
132
- content: [{
133
- type: 'text',
134
- text: `Unknown specialist tool: ${request.params.name}`
135
- }],
136
- isError: true
137
- };
138
- }
139
- }
140
- catch (error) {
141
- return {
142
- content: [{
143
- type: 'text',
144
- text: `Error in ${request.params.name}: ${error instanceof Error ? error.message : 'Unknown error'}`
145
- }],
146
- isError: true
147
- };
148
- }
149
- }
150
- /**
151
- * Find the best specialist for a question
152
- */
153
- async handleSuggestSpecialist(request) {
154
- const validated = SuggestSpecialistSchema.parse(request.params.arguments);
155
- // Create basic session context for suggestion
156
- const sessionContext = validated.context ? {
157
- problem: validated.context,
158
- solutions: [],
159
- recommendations: [],
160
- nextSteps: [],
161
- userPreferences: {}
162
- } : undefined;
163
- const suggestions = await this.roleplayEngine.suggestSpecialist(validated.question, sessionContext);
164
- if (suggestions.length === 0) {
165
- return {
166
- content: [{
167
- type: 'text',
168
- text: '🤔 No specialists found for this question. Try rephrasing or providing more context about your BC development challenge.'
169
- }]
170
- };
171
- }
172
- // Format suggestions with personality
173
- let response = `🎯 **Specialist Recommendations for your question:**\n\n`;
174
- for (let i = 0; i < suggestions.length; i++) {
175
- const suggestion = suggestions[i];
176
- const specialist = await this.layerService.getSpecialist(suggestion.specialist_id);
177
- if (specialist) {
178
- const confidence = Math.round(suggestion.confidence * 100);
179
- response += `**${i + 1}. ${specialist.title}** (${suggestion.specialist_id}) - ${confidence}% match\n`;
180
- response += `${specialist.persona.greeting}\n`;
181
- response += `💡 **Why ${specialist.title}:** ${suggestion.reasoning}\n`;
182
- response += `🔧 **Expertise:** ${specialist.expertise.primary.join(', ')}\n\n`;
183
- }
184
- }
185
- response += `💬 **Next step:** Use \`get_specialist_advice\` with your chosen specialist_id to start the conversation!`;
186
- return {
187
- content: [{ type: 'text', text: response }]
188
- };
189
- }
190
- /**
191
- * Get advice from a specialist with automatic session management
192
- */
193
- async handleGetSpecialistAdvice(request) {
194
- const validated = GetSpecialistAdviceSchema.parse(request.params.arguments);
195
- // Try exact ID match first
196
- let specialist = await this.layerService.getSpecialist(validated.specialist_id);
197
- // If not found, try fuzzy matching
198
- if (!specialist) {
199
- specialist = await this.findSpecialistByFuzzyName(validated.specialist_id);
200
- }
201
- if (!specialist) {
202
- return {
203
- content: [{
204
- type: 'text',
205
- text: `❌ Specialist '${validated.specialist_id}' not found. Tried exact ID match and fuzzy name matching. Use 'list_specialists' to see available experts.`
206
- }],
207
- isError: true
208
- };
209
- }
210
- // Handle session management
211
- let sessionId = validated.session_id;
212
- let session;
213
- if (sessionId) {
214
- // Get existing session with auto-recovery
215
- session = await this.sessionManager.getSession(sessionId);
216
- if (!session) {
217
- // Auto-recover: create new session instead of failing
218
- console.warn(`Session '${sessionId}' not found. Creating recovery session.`);
219
- session = await this.sessionManager.startSession(validated.specialist_id, 'default-user', `Recovery session. Original session ${sessionId} was lost. Context: ${validated.problem_context || validated.message}`);
220
- sessionId = session.sessionId;
221
- }
222
- }
223
- else {
224
- // Create new session
225
- session = await this.sessionManager.startSession(validated.specialist_id, 'default-user', // TODO: Get actual user ID from context
226
- validated.problem_context || validated.message);
227
- sessionId = session.sessionId;
228
- }
229
- // Determine if this is a new session or handoff requiring introduction
230
- const isNewSession = !validated.session_id || session.messages.length === 0;
231
- const isHandoff = validated.session_id && session.context.current_specialist !== validated.specialist_id;
232
- // Generate specialist response using conversation history
233
- const roleplayContext = {
234
- specialist,
235
- userMessage: validated.message,
236
- session: session.context,
237
- conversationHistory: session.messages.map(m => ({
238
- role: m.type === 'user' ? 'user' : 'assistant',
239
- content: m.content,
240
- timestamp: m.timestamp
241
- })),
242
- requiresIntroduction: isNewSession || isHandoff
243
- };
244
- const response = await this.roleplayEngine.generateResponse(roleplayContext);
245
- // Add user and specialist messages to session
246
- await this.sessionManager.continueSession(sessionId, validated.message);
247
- // Update session with specialist response - we'll add this via continueSession flow
248
- const updatedSession = await this.sessionManager.getSession(sessionId);
249
- // Update context if provided
250
- if (response.context_updates && updatedSession) {
251
- await this.sessionManager.updateContext(sessionId, response.context_updates);
252
- }
253
- // Return agent roleplay instructions (NOT formatted user response)
254
- let agentInstructions = '';
255
- // **CRITICAL**: Include full specialist markdown content as instructions
256
- agentInstructions += `SPECIALIST DEFINITION AND INSTRUCTIONS:\n\n`;
257
- agentInstructions += specialist.content; // Full markdown content including Phase 0, workflows, etc.
258
- agentInstructions += `\n\n${'='.repeat(80)}\n\n`;
259
- agentInstructions += `CURRENT CONTEXT:\n\n`;
260
- agentInstructions += response.content;
261
- // Add knowledge context for the agent
262
- if (response.topics_referenced.length > 0) {
263
- agentInstructions += `\n\nKNOWLEDGE CONTEXT FOR RESPONSE:\n`;
264
- agentInstructions += `- Referenced Topics: ${response.topics_referenced.join(', ')}\n`;
265
- agentInstructions += `- Use this knowledge to provide specific, accurate guidance\n`;
266
- }
267
- // Add handoff guidance for the agent
268
- if (response.suggested_handoffs && response.suggested_handoffs.length > 0) {
269
- agentInstructions += `\n\nHANDOFF GUIDANCE:\n`;
270
- for (const handoff of response.suggested_handoffs) {
271
- const handoffSpecialist = await this.layerService.getSpecialist(handoff.specialist_id);
272
- if (handoffSpecialist) {
273
- agentInstructions += `- If user needs ${handoff.reason}, suggest consulting ${handoffSpecialist.title}\n`;
274
- }
275
- }
276
- }
277
- agentInstructions += `\n\nRemember: You ARE ${specialist.title}. Respond directly as this character, not as an AI assistant.`;
278
- // Add recommendations as agent guidance
279
- if (response.recommendations_added && response.recommendations_added.length > 0) {
280
- agentInstructions += `\n\nRECOMMENDATIONS TO INCLUDE:\n`;
281
- response.recommendations_added.forEach((rec, i) => {
282
- agentInstructions += `${i + 1}. ${rec}\n`;
283
- });
284
- }
285
- return {
286
- content: [{ type: 'text', text: agentInstructions }]
287
- };
288
- }
289
- /**
290
- * List available specialists with filtering
291
- */
292
- async handleListSpecialists(request) {
293
- const validated = ListSpecialistsSchema.parse(request.params.arguments || {});
294
- const specialists = await this.layerService.getAllSpecialists();
295
- // Apply filters
296
- let filteredSpecialists = specialists;
297
- if (validated.domain) {
298
- filteredSpecialists = specialists.filter(s => s.domains.some(d => d.toLowerCase().includes(validated.domain.toLowerCase())));
299
- }
300
- if (validated.expertise) {
301
- filteredSpecialists = filteredSpecialists.filter(s => [...s.expertise.primary, ...s.expertise.secondary].some(e => e.toLowerCase().includes(validated.expertise.toLowerCase())));
302
- }
303
- if (filteredSpecialists.length === 0) {
304
- return {
305
- content: [{
306
- type: 'text',
307
- text: '❌ No specialists found matching your criteria. Try different filters or remove them to see all specialists.'
308
- }]
309
- };
310
- }
311
- // Group by domain for better organization
312
- const specialistsByDomain = new Map();
313
- filteredSpecialists.forEach(specialist => {
314
- specialist.domains.forEach(domain => {
315
- if (!specialistsByDomain.has(domain)) {
316
- specialistsByDomain.set(domain, []);
317
- }
318
- if (!specialistsByDomain.get(domain).includes(specialist)) {
319
- specialistsByDomain.get(domain).push(specialist);
320
- }
321
- });
322
- });
323
- let response = `👥 **BC Code Intelligence Specialists** ${validated.domain || validated.expertise ? '(filtered)' : ''}\n\n`;
324
- // Show specialists organized by domain
325
- for (const [domain, domainSpecialists] of specialistsByDomain.entries()) {
326
- response += `## 🏷️ ${domain.charAt(0).toUpperCase() + domain.slice(1)}\n\n`;
327
- for (const specialist of domainSpecialists) {
328
- response += `**${specialist.title}** (\`${specialist.specialist_id}\`)\n`;
329
- response += `💬 ${specialist.persona.greeting}\n`;
330
- response += `🎯 **Primary Expertise:** ${specialist.expertise.primary.join(', ')}\n`;
331
- if (specialist.expertise.secondary.length > 0) {
332
- response += `🔧 **Also helps with:** ${specialist.expertise.secondary.slice(0, 3).join(', ')}\n`;
333
- }
334
- response += `\n`;
335
- }
336
- }
337
- response += `\n💡 **Getting Started:**\n`;
338
- response += `• Use \`suggest_specialist\` with your question to get personalized recommendations\n`;
339
- response += `• Use \`get_specialist_advice\` with a specialist_id to start a conversation\n`;
340
- response += `• Sessions are automatically managed for multi-turn conversations`;
341
- // Check if workspace is configured - company/project specialists might be missing
342
- const layersInfo = this.layerService.getLayers();
343
- const hasProjectOrCompanyLayers = layersInfo.some(layer => layer.name.includes('company') || layer.name.includes('project') || layer.name.includes('team'));
344
- if (!hasProjectOrCompanyLayers) {
345
- response += `\n\n⚠️ **Note:** Only embedded specialists shown. Company/project specialists require \`set_workspace_info\` to load custom layers.`;
346
- }
347
- return {
348
- content: [{ type: 'text', text: response }]
349
- };
350
- }
351
- /**
352
- * Find specialist by partial/fuzzy name matching
353
- * Handles cases like "Sam" -> "sam-coder", "Dean" -> "dean-debug", etc.
354
- */
355
- async findSpecialistByFuzzyName(partialName) {
356
- const allSpecialists = await this.layerService.getAllSpecialists();
357
- const searchTerm = partialName.toLowerCase().trim();
358
- // First try exact specialist_id match (case insensitive)
359
- let match = allSpecialists.find(specialist => specialist.specialist_id.toLowerCase() === searchTerm);
360
- if (match)
361
- return match;
362
- // Try partial match in specialist_id
363
- match = allSpecialists.find(specialist => specialist.specialist_id.toLowerCase().includes(searchTerm));
364
- if (match)
365
- return match;
366
- // Try matching first part of specialist_id (before the dash)
367
- match = allSpecialists.find(specialist => {
368
- const firstName = specialist.specialist_id.split('-')[0].toLowerCase();
369
- return firstName === searchTerm;
370
- });
371
- if (match)
372
- return match;
373
- // Try matching in title
374
- match = allSpecialists.find(specialist => specialist.title?.toLowerCase().includes(searchTerm));
375
- return match || null;
376
- }
377
- }
378
- //# sourceMappingURL=specialist-tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"specialist-tools.js","sourceRoot":"","sources":["../../src/tools/specialist-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-tools.d.ts","sourceRoot":"","sources":["../../src/tools/workspace-tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;CAYhB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;CAiCtB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,aAAa,CAAC;AAE1D,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAChI,gBAAgB,EAAE,MAAM,aAAa,CAAC;CACvC;AAED,qBAAa,cAAc;IACb,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,qBAAqB;IAElD,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4CZ,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;YAe9C,sBAAsB;YAwDtB,sBAAsB;CA4BrC"}
@@ -1,188 +0,0 @@
1
- /**
2
- * Workspace management tools
3
- * Handles workspace root configuration and MCP ecosystem awareness
4
- */
5
- /**
6
- * Known Business Central MCP servers and their capabilities
7
- */
8
- export const KNOWN_BC_MCPS = {
9
- // AL & Business Central MCPs
10
- 'bc-code-intelligence-mcp': 'BC development knowledge with 14 specialist AI personas',
11
- 'al-dependency-mcp-server': 'AL workspace symbol and dependency analysis from .app files',
12
- 'serena-mcp': 'Multi-language LSP-based coding assistant with AL Language Server support',
13
- 'al-objid-mcp-server': 'AL object ID collision prevention and management (Object ID Ninja)',
14
- 'bc-telemetry-buddy': 'BC telemetry collection, KQL query generation, and performance analysis',
15
- // DevOps & Productivity MCPs
16
- 'azure-devops-mcp': 'Azure DevOps integration (work items, repos, pipelines, wiki)',
17
- 'clockify-mcp': 'Clockify time tracking and project management integration',
18
- 'nab-al-tools-mcp': 'XLIFF/XLF translation tooling for AL projects'
19
- };
20
- /**
21
- * Map of signature tools to their MCP server
22
- * Use this to discover which MCP servers are available by checking for these tools
23
- */
24
- export const MCP_TOOL_SIGNATURES = {
25
- // BC Telemetry Buddy
26
- 'search_telemetry_traces': 'bc-telemetry-buddy',
27
- 'generate_kql_query': 'bc-telemetry-buddy',
28
- 'analyze_performance_traces': 'bc-telemetry-buddy',
29
- // AL Object ID Ninja
30
- 'reserve_object_ids': 'al-objid-mcp-server',
31
- 'check_object_id_collision': 'al-objid-mcp-server',
32
- 'get_next_object_id': 'al-objid-mcp-server',
33
- // AL Dependency MCP Server
34
- 'analyze_dependencies': 'al-dependency-mcp-server',
35
- 'get_workspace_symbols': 'al-dependency-mcp-server',
36
- 'find_references': 'al-dependency-mcp-server',
37
- // Serena MCP
38
- 'get_lsp_diagnostics': 'serena-mcp',
39
- 'format_document': 'serena-mcp',
40
- 'get_code_actions': 'serena-mcp',
41
- // Azure DevOps MCP
42
- 'create_work_item': 'azure-devops-mcp',
43
- 'query_work_items': 'azure-devops-mcp',
44
- 'get_pipeline_runs': 'azure-devops-mcp',
45
- // Clockify MCP
46
- 'track_time_entry': 'clockify-mcp',
47
- 'get_time_entries': 'clockify-mcp',
48
- // NAB AL Tools MCP
49
- 'translate_xliff': 'nab-al-tools-mcp',
50
- 'export_translations': 'nab-al-tools-mcp'
51
- };
52
- export class WorkspaceTools {
53
- context;
54
- constructor(context) {
55
- this.context = context;
56
- }
57
- getToolDefinitions() {
58
- return [
59
- {
60
- name: 'set_workspace_info',
61
- description: `Set workspace root directory and list of available MCP servers discovered from your tool inventory.
62
-
63
- CRITICAL: You MUST discover available BC MCP servers by examining the tools available in your MCP context:
64
- - If you see 'search_telemetry_traces' → include "bc-telemetry-buddy"
65
- - If you see 'reserve_object_ids' → include "al-objid-mcp-server"
66
- - If you see 'analyze_dependencies' → include "al-dependency-mcp-server"
67
- - If you see 'get_lsp_diagnostics' → include "serena-mcp"
68
- - If you see 'create_work_item' → include "azure-devops-mcp"
69
- - If you see 'track_time_entry' → include "clockify-mcp"
70
- - If you see 'translate_xliff' → include "nab-al-tools-mcp"
71
-
72
- This enables specialists to provide ecosystem-aware recommendations and tool delegation. Call this before other tools if you need project-specific knowledge layers or ecosystem-aware guidance.`,
73
- inputSchema: {
74
- type: 'object',
75
- properties: {
76
- workspace_root: {
77
- type: 'string',
78
- description: 'Absolute path to the workspace/project root directory (e.g., C:/projects/my-bc-app or /home/user/projects/my-bc-app)'
79
- },
80
- available_mcps: {
81
- type: 'array',
82
- items: { type: 'string' },
83
- description: 'List of MCP server IDs discovered by examining available tools in your MCP context (e.g., ["bc-telemetry-buddy", "al-objid-mcp-server"]). REQUIRED - check which tools are available and infer the MCP servers from them.'
84
- }
85
- },
86
- required: ['workspace_root', 'available_mcps']
87
- }
88
- },
89
- {
90
- name: 'get_workspace_info',
91
- description: 'Get the currently configured workspace root directory and available MCP servers, if any.',
92
- inputSchema: {
93
- type: 'object',
94
- properties: {},
95
- required: []
96
- }
97
- }
98
- ];
99
- }
100
- async handleToolCall(request) {
101
- const { name, arguments: args } = request.params;
102
- switch (name) {
103
- case 'set_workspace_info':
104
- return await this.handleSetWorkspaceInfo(args);
105
- case 'get_workspace_info':
106
- return await this.handleGetWorkspaceInfo();
107
- default:
108
- throw new Error(`Unknown workspace tool: ${name}`);
109
- }
110
- }
111
- async handleSetWorkspaceInfo(args) {
112
- const { workspace_root, available_mcps } = args;
113
- if (!workspace_root) {
114
- return {
115
- content: [{
116
- type: 'text',
117
- text: JSON.stringify({
118
- success: false,
119
- error: 'workspace_root is required'
120
- }, null, 2)
121
- }]
122
- };
123
- }
124
- if (available_mcps === undefined) {
125
- return {
126
- content: [{
127
- type: 'text',
128
- text: JSON.stringify({
129
- success: false,
130
- error: 'available_mcps is required'
131
- }, null, 2)
132
- }]
133
- };
134
- }
135
- // Validate and categorize MCPs
136
- const knownMcps = available_mcps.filter(mcp => mcp in KNOWN_BC_MCPS);
137
- const unknownMcps = available_mcps.filter(mcp => !(mcp in KNOWN_BC_MCPS));
138
- const result = await this.context.setWorkspaceInfo(workspace_root, available_mcps);
139
- return {
140
- content: [{
141
- type: 'text',
142
- text: JSON.stringify({
143
- success: result.success,
144
- message: result.message,
145
- reloaded: result.reloaded,
146
- workspace_root,
147
- mcp_ecosystem: {
148
- total_available: available_mcps.length,
149
- known_bc_mcps: knownMcps.length,
150
- unknown_mcps: unknownMcps.length,
151
- known: knownMcps.map(id => ({
152
- id,
153
- description: KNOWN_BC_MCPS[id]
154
- })),
155
- unknown: unknownMcps
156
- }
157
- }, null, 2)
158
- }]
159
- };
160
- }
161
- async handleGetWorkspaceInfo() {
162
- const info = this.context.getWorkspaceInfo();
163
- const knownMcps = info.available_mcps.filter(mcp => mcp in KNOWN_BC_MCPS);
164
- const unknownMcps = info.available_mcps.filter(mcp => !(mcp in KNOWN_BC_MCPS));
165
- return {
166
- content: [{
167
- type: 'text',
168
- text: JSON.stringify({
169
- workspace_root: info.workspace_root,
170
- is_set: info.workspace_root !== null,
171
- available_mcps: info.available_mcps,
172
- mcp_ecosystem: {
173
- total_available: info.available_mcps.length,
174
- known_bc_mcps: knownMcps.map(id => ({
175
- id,
176
- description: KNOWN_BC_MCPS[id]
177
- })),
178
- unknown_mcps: unknownMcps
179
- },
180
- message: info.workspace_root
181
- ? `Workspace root: ${info.workspace_root}${info.available_mcps.length > 0 ? ` | Available MCPs: ${info.available_mcps.length}` : ''}`
182
- : 'No workspace configured. Use set_workspace_info to configure project-local layers and MCP ecosystem.'
183
- }, null, 2)
184
- }]
185
- };
186
- }
187
- }
188
- //# sourceMappingURL=workspace-tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-tools.js","sourceRoot":"","sources":["../../src/tools/workspace-tools.ts"],"names":[],"mappings":"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"}