d365fo-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1055) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +205 -0
  3. package/dist/bridge/bridgeAdapter.d.ts +319 -0
  4. package/dist/bridge/bridgeAdapter.d.ts.map +1 -0
  5. package/dist/bridge/bridgeAdapter.js +2003 -0
  6. package/dist/bridge/bridgeAdapter.js.map +1 -0
  7. package/dist/bridge/bridgeClient.d.ts +255 -0
  8. package/dist/bridge/bridgeClient.d.ts.map +1 -0
  9. package/dist/bridge/bridgeClient.js +741 -0
  10. package/dist/bridge/bridgeClient.js.map +1 -0
  11. package/dist/bridge/bridgeTypes.d.ts +561 -0
  12. package/dist/bridge/bridgeTypes.d.ts.map +1 -0
  13. package/dist/bridge/bridgeTypes.js +6 -0
  14. package/dist/bridge/bridgeTypes.js.map +1 -0
  15. package/dist/bridge/debouncedRefresh.d.ts +16 -0
  16. package/dist/bridge/debouncedRefresh.d.ts.map +1 -0
  17. package/dist/bridge/debouncedRefresh.js +77 -0
  18. package/dist/bridge/debouncedRefresh.js.map +1 -0
  19. package/dist/bridge/index.d.ts +21 -0
  20. package/dist/bridge/index.d.ts.map +1 -0
  21. package/dist/bridge/index.js +20 -0
  22. package/dist/bridge/index.js.map +1 -0
  23. package/dist/cli/commands/config.d.ts +8 -0
  24. package/dist/cli/commands/config.d.ts.map +1 -0
  25. package/dist/cli/commands/config.js +77 -0
  26. package/dist/cli/commands/config.js.map +1 -0
  27. package/dist/cli/commands/doctor.d.ts +2 -0
  28. package/dist/cli/commands/doctor.d.ts.map +1 -0
  29. package/dist/cli/commands/doctor.js +177 -0
  30. package/dist/cli/commands/doctor.js.map +1 -0
  31. package/dist/cli/commands/indexCmd.d.ts +8 -0
  32. package/dist/cli/commands/indexCmd.d.ts.map +1 -0
  33. package/dist/cli/commands/indexCmd.js +78 -0
  34. package/dist/cli/commands/indexCmd.js.map +1 -0
  35. package/dist/cli/commands/instance.d.ts +4 -0
  36. package/dist/cli/commands/instance.d.ts.map +1 -0
  37. package/dist/cli/commands/instance.js +183 -0
  38. package/dist/cli/commands/instance.js.map +1 -0
  39. package/dist/cli/commands/setup.d.ts +4 -0
  40. package/dist/cli/commands/setup.d.ts.map +1 -0
  41. package/dist/cli/commands/setup.js +246 -0
  42. package/dist/cli/commands/setup.js.map +1 -0
  43. package/dist/cli/commands/start.d.ts +2 -0
  44. package/dist/cli/commands/start.d.ts.map +1 -0
  45. package/dist/cli/commands/start.js +49 -0
  46. package/dist/cli/commands/start.js.map +1 -0
  47. package/dist/cli/commands/update.d.ts +4 -0
  48. package/dist/cli/commands/update.d.ts.map +1 -0
  49. package/dist/cli/commands/update.js +55 -0
  50. package/dist/cli/commands/update.js.map +1 -0
  51. package/dist/cli/context.d.ts +26 -0
  52. package/dist/cli/context.d.ts.map +1 -0
  53. package/dist/cli/context.js +38 -0
  54. package/dist/cli/context.js.map +1 -0
  55. package/dist/cli/envFile.d.ts +23 -0
  56. package/dist/cli/envFile.d.ts.map +1 -0
  57. package/dist/cli/envFile.js +79 -0
  58. package/dist/cli/envFile.js.map +1 -0
  59. package/dist/cli/exec.d.ts +13 -0
  60. package/dist/cli/exec.d.ts.map +1 -0
  61. package/dist/cli/exec.js +47 -0
  62. package/dist/cli/exec.js.map +1 -0
  63. package/dist/cli/index.d.ts +3 -0
  64. package/dist/cli/index.d.ts.map +1 -0
  65. package/dist/cli/index.js +122 -0
  66. package/dist/cli/index.js.map +1 -0
  67. package/dist/cli/instances.d.ts +19 -0
  68. package/dist/cli/instances.d.ts.map +1 -0
  69. package/dist/cli/instances.js +60 -0
  70. package/dist/cli/instances.js.map +1 -0
  71. package/dist/cli/mcpJson.d.ts +15 -0
  72. package/dist/cli/mcpJson.d.ts.map +1 -0
  73. package/dist/cli/mcpJson.js +44 -0
  74. package/dist/cli/mcpJson.js.map +1 -0
  75. package/dist/cli/settingsPrompt.d.ts +20 -0
  76. package/dist/cli/settingsPrompt.d.ts.map +1 -0
  77. package/dist/cli/settingsPrompt.js +150 -0
  78. package/dist/cli/settingsPrompt.js.map +1 -0
  79. package/dist/cli/settingsStore.d.ts +47 -0
  80. package/dist/cli/settingsStore.d.ts.map +1 -0
  81. package/dist/cli/settingsStore.js +144 -0
  82. package/dist/cli/settingsStore.js.map +1 -0
  83. package/dist/cli/target.d.ts +23 -0
  84. package/dist/cli/target.d.ts.map +1 -0
  85. package/dist/cli/target.js +62 -0
  86. package/dist/cli/target.js.map +1 -0
  87. package/dist/cli/ui.d.ts +26 -0
  88. package/dist/cli/ui.d.ts.map +1 -0
  89. package/dist/cli/ui.js +48 -0
  90. package/dist/cli/ui.js.map +1 -0
  91. package/dist/cli/xppConfig.d.ts +35 -0
  92. package/dist/cli/xppConfig.d.ts.map +1 -0
  93. package/dist/cli/xppConfig.js +97 -0
  94. package/dist/cli/xppConfig.js.map +1 -0
  95. package/dist/config/configFile.d.ts +50 -0
  96. package/dist/config/configFile.d.ts.map +1 -0
  97. package/dist/config/configFile.js +152 -0
  98. package/dist/config/configFile.js.map +1 -0
  99. package/dist/config/settings.d.ts +58 -0
  100. package/dist/config/settings.d.ts.map +1 -0
  101. package/dist/config/settings.js +641 -0
  102. package/dist/config/settings.js.map +1 -0
  103. package/dist/database/download.d.ts +27 -0
  104. package/dist/database/download.d.ts.map +1 -0
  105. package/dist/database/download.js +241 -0
  106. package/dist/database/download.js.map +1 -0
  107. package/dist/eval/audit/knowledgeAudit.d.ts +66 -0
  108. package/dist/eval/audit/knowledgeAudit.d.ts.map +1 -0
  109. package/dist/eval/audit/knowledgeAudit.js +117 -0
  110. package/dist/eval/audit/knowledgeAudit.js.map +1 -0
  111. package/dist/eval/audit/knowledgeAuditCli.d.ts +17 -0
  112. package/dist/eval/audit/knowledgeAuditCli.d.ts.map +1 -0
  113. package/dist/eval/audit/knowledgeAuditCli.js +83 -0
  114. package/dist/eval/audit/knowledgeAuditCli.js.map +1 -0
  115. package/dist/eval/audit/knowledgeRefs.d.ts +37 -0
  116. package/dist/eval/audit/knowledgeRefs.d.ts.map +1 -0
  117. package/dist/eval/audit/knowledgeRefs.js +150 -0
  118. package/dist/eval/audit/knowledgeRefs.js.map +1 -0
  119. package/dist/eval/audit/symbolLookup.d.ts +23 -0
  120. package/dist/eval/audit/symbolLookup.d.ts.map +1 -0
  121. package/dist/eval/audit/symbolLookup.js +80 -0
  122. package/dist/eval/audit/symbolLookup.js.map +1 -0
  123. package/dist/eval/coverage/coverage.d.ts +65 -0
  124. package/dist/eval/coverage/coverage.d.ts.map +1 -0
  125. package/dist/eval/coverage/coverage.js +136 -0
  126. package/dist/eval/coverage/coverage.js.map +1 -0
  127. package/dist/eval/coverage/coverageCli.d.ts +13 -0
  128. package/dist/eval/coverage/coverageCli.d.ts.map +1 -0
  129. package/dist/eval/coverage/coverageCli.js +106 -0
  130. package/dist/eval/coverage/coverageCli.js.map +1 -0
  131. package/dist/eval/coverage/sources.d.ts +17 -0
  132. package/dist/eval/coverage/sources.d.ts.map +1 -0
  133. package/dist/eval/coverage/sources.js +40 -0
  134. package/dist/eval/coverage/sources.js.map +1 -0
  135. package/dist/eval/coverage/taxonomy.d.ts +59 -0
  136. package/dist/eval/coverage/taxonomy.d.ts.map +1 -0
  137. package/dist/eval/coverage/taxonomy.js +400 -0
  138. package/dist/eval/coverage/taxonomy.js.map +1 -0
  139. package/dist/eval/improver/caseMining.d.ts +55 -0
  140. package/dist/eval/improver/caseMining.d.ts.map +1 -0
  141. package/dist/eval/improver/caseMining.js +64 -0
  142. package/dist/eval/improver/caseMining.js.map +1 -0
  143. package/dist/eval/improver/caseMiningCli.d.ts +10 -0
  144. package/dist/eval/improver/caseMiningCli.d.ts.map +1 -0
  145. package/dist/eval/improver/caseMiningCli.js +50 -0
  146. package/dist/eval/improver/caseMiningCli.js.map +1 -0
  147. package/dist/eval/improver/cli.d.ts +11 -0
  148. package/dist/eval/improver/cli.d.ts.map +1 -0
  149. package/dist/eval/improver/cli.js +73 -0
  150. package/dist/eval/improver/cli.js.map +1 -0
  151. package/dist/eval/improver/cluster.d.ts +47 -0
  152. package/dist/eval/improver/cluster.d.ts.map +1 -0
  153. package/dist/eval/improver/cluster.js +0 -0
  154. package/dist/eval/improver/cluster.js.map +1 -0
  155. package/dist/eval/improver/corpusIO.d.ts +26 -0
  156. package/dist/eval/improver/corpusIO.d.ts.map +1 -0
  157. package/dist/eval/improver/corpusIO.js +50 -0
  158. package/dist/eval/improver/corpusIO.js.map +1 -0
  159. package/dist/eval/improver/fixBrief.d.ts +34 -0
  160. package/dist/eval/improver/fixBrief.d.ts.map +1 -0
  161. package/dist/eval/improver/fixBrief.js +69 -0
  162. package/dist/eval/improver/fixBrief.js.map +1 -0
  163. package/dist/eval/improver/fixBriefCli.d.ts +11 -0
  164. package/dist/eval/improver/fixBriefCli.d.ts.map +1 -0
  165. package/dist/eval/improver/fixBriefCli.js +46 -0
  166. package/dist/eval/improver/fixBriefCli.js.map +1 -0
  167. package/dist/eval/improver/flakeDetection.d.ts +50 -0
  168. package/dist/eval/improver/flakeDetection.d.ts.map +1 -0
  169. package/dist/eval/improver/flakeDetection.js +0 -0
  170. package/dist/eval/improver/flakeDetection.js.map +1 -0
  171. package/dist/eval/improver/flakeDetectionCli.d.ts +8 -0
  172. package/dist/eval/improver/flakeDetectionCli.d.ts.map +1 -0
  173. package/dist/eval/improver/flakeDetectionCli.js +27 -0
  174. package/dist/eval/improver/flakeDetectionCli.js.map +1 -0
  175. package/dist/eval/improver/heldout.d.ts +44 -0
  176. package/dist/eval/improver/heldout.d.ts.map +1 -0
  177. package/dist/eval/improver/heldout.js +52 -0
  178. package/dist/eval/improver/heldout.js.map +1 -0
  179. package/dist/eval/improver/knowledgeFeedback.d.ts +56 -0
  180. package/dist/eval/improver/knowledgeFeedback.d.ts.map +1 -0
  181. package/dist/eval/improver/knowledgeFeedback.js +88 -0
  182. package/dist/eval/improver/knowledgeFeedback.js.map +1 -0
  183. package/dist/eval/improver/knowledgeFeedbackCli.d.ts +8 -0
  184. package/dist/eval/improver/knowledgeFeedbackCli.d.ts.map +1 -0
  185. package/dist/eval/improver/knowledgeFeedbackCli.js +28 -0
  186. package/dist/eval/improver/knowledgeFeedbackCli.js.map +1 -0
  187. package/dist/eval/improver/report.d.ts +36 -0
  188. package/dist/eval/improver/report.d.ts.map +1 -0
  189. package/dist/eval/improver/report.js +61 -0
  190. package/dist/eval/improver/report.js.map +1 -0
  191. package/dist/eval/improver/reportCli.d.ts +7 -0
  192. package/dist/eval/improver/reportCli.d.ts.map +1 -0
  193. package/dist/eval/improver/reportCli.js +27 -0
  194. package/dist/eval/improver/reportCli.js.map +1 -0
  195. package/dist/eval/oracle/actualArtifactResolution.d.ts +49 -0
  196. package/dist/eval/oracle/actualArtifactResolution.d.ts.map +1 -0
  197. package/dist/eval/oracle/actualArtifactResolution.js +73 -0
  198. package/dist/eval/oracle/actualArtifactResolution.js.map +1 -0
  199. package/dist/eval/oracle/cli.d.ts +30 -0
  200. package/dist/eval/oracle/cli.d.ts.map +1 -0
  201. package/dist/eval/oracle/cli.js +179 -0
  202. package/dist/eval/oracle/cli.js.map +1 -0
  203. package/dist/eval/oracle/diff.d.ts +26 -0
  204. package/dist/eval/oracle/diff.d.ts.map +1 -0
  205. package/dist/eval/oracle/diff.js +51 -0
  206. package/dist/eval/oracle/diff.js.map +1 -0
  207. package/dist/eval/oracle/index.d.ts +81 -0
  208. package/dist/eval/oracle/index.d.ts.map +1 -0
  209. package/dist/eval/oracle/index.js +55 -0
  210. package/dist/eval/oracle/index.js.map +1 -0
  211. package/dist/eval/oracle/normalize.d.ts +85 -0
  212. package/dist/eval/oracle/normalize.d.ts.map +1 -0
  213. package/dist/eval/oracle/normalize.js +321 -0
  214. package/dist/eval/oracle/normalize.js.map +1 -0
  215. package/dist/eval/oracle/score.d.ts +26 -0
  216. package/dist/eval/oracle/score.d.ts.map +1 -0
  217. package/dist/eval/oracle/score.js +15 -0
  218. package/dist/eval/oracle/score.js.map +1 -0
  219. package/dist/eval/oracle/systest.d.ts +30 -0
  220. package/dist/eval/oracle/systest.d.ts.map +1 -0
  221. package/dist/eval/oracle/systest.js +98 -0
  222. package/dist/eval/oracle/systest.js.map +1 -0
  223. package/dist/index.d.ts +6 -0
  224. package/dist/index.d.ts.map +1 -0
  225. package/dist/index.js +753 -0
  226. package/dist/index.js.map +1 -0
  227. package/dist/knowledge/formPatterns/catalog/subPatterns/customFilters.d.ts +10 -0
  228. package/dist/knowledge/formPatterns/catalog/subPatterns/customFilters.d.ts.map +1 -0
  229. package/dist/knowledge/formPatterns/catalog/subPatterns/customFilters.js +38 -0
  230. package/dist/knowledge/formPatterns/catalog/subPatterns/customFilters.js.map +1 -0
  231. package/dist/knowledge/formPatterns/catalog/subPatterns/fields.d.ts +21 -0
  232. package/dist/knowledge/formPatterns/catalog/subPatterns/fields.d.ts.map +1 -0
  233. package/dist/knowledge/formPatterns/catalog/subPatterns/fields.js +168 -0
  234. package/dist/knowledge/formPatterns/catalog/subPatterns/fields.js.map +1 -0
  235. package/dist/knowledge/formPatterns/catalog/subPatterns/panels.d.ts +9 -0
  236. package/dist/knowledge/formPatterns/catalog/subPatterns/panels.d.ts.map +1 -0
  237. package/dist/knowledge/formPatterns/catalog/subPatterns/panels.js +47 -0
  238. package/dist/knowledge/formPatterns/catalog/subPatterns/panels.js.map +1 -0
  239. package/dist/knowledge/formPatterns/catalog/subPatterns/toolbar.d.ts +16 -0
  240. package/dist/knowledge/formPatterns/catalog/subPatterns/toolbar.d.ts.map +1 -0
  241. package/dist/knowledge/formPatterns/catalog/subPatterns/toolbar.js +124 -0
  242. package/dist/knowledge/formPatterns/catalog/subPatterns/toolbar.js.map +1 -0
  243. package/dist/knowledge/formPatterns/catalog/subPatterns/workspaceSections.d.ts +12 -0
  244. package/dist/knowledge/formPatterns/catalog/subPatterns/workspaceSections.d.ts.map +1 -0
  245. package/dist/knowledge/formPatterns/catalog/subPatterns/workspaceSections.js +36 -0
  246. package/dist/knowledge/formPatterns/catalog/subPatterns/workspaceSections.js.map +1 -0
  247. package/dist/knowledge/formPatterns/catalog/topLevel/common.d.ts +11 -0
  248. package/dist/knowledge/formPatterns/catalog/topLevel/common.d.ts.map +1 -0
  249. package/dist/knowledge/formPatterns/catalog/topLevel/common.js +37 -0
  250. package/dist/knowledge/formPatterns/catalog/topLevel/common.js.map +1 -0
  251. package/dist/knowledge/formPatterns/catalog/topLevel/detailsMaster.d.ts +8 -0
  252. package/dist/knowledge/formPatterns/catalog/topLevel/detailsMaster.d.ts.map +1 -0
  253. package/dist/knowledge/formPatterns/catalog/topLevel/detailsMaster.js +86 -0
  254. package/dist/knowledge/formPatterns/catalog/topLevel/detailsMaster.js.map +1 -0
  255. package/dist/knowledge/formPatterns/catalog/topLevel/detailsTransaction.d.ts +7 -0
  256. package/dist/knowledge/formPatterns/catalog/topLevel/detailsTransaction.d.ts.map +1 -0
  257. package/dist/knowledge/formPatterns/catalog/topLevel/detailsTransaction.js +69 -0
  258. package/dist/knowledge/formPatterns/catalog/topLevel/detailsTransaction.js.map +1 -0
  259. package/dist/knowledge/formPatterns/catalog/topLevel/dialog.d.ts +14 -0
  260. package/dist/knowledge/formPatterns/catalog/topLevel/dialog.d.ts.map +1 -0
  261. package/dist/knowledge/formPatterns/catalog/topLevel/dialog.js +187 -0
  262. package/dist/knowledge/formPatterns/catalog/topLevel/dialog.js.map +1 -0
  263. package/dist/knowledge/formPatterns/catalog/topLevel/factBox.d.ts +10 -0
  264. package/dist/knowledge/formPatterns/catalog/topLevel/factBox.d.ts.map +1 -0
  265. package/dist/knowledge/formPatterns/catalog/topLevel/factBox.js +54 -0
  266. package/dist/knowledge/formPatterns/catalog/topLevel/factBox.js.map +1 -0
  267. package/dist/knowledge/formPatterns/catalog/topLevel/listPage.d.ts +7 -0
  268. package/dist/knowledge/formPatterns/catalog/topLevel/listPage.d.ts.map +1 -0
  269. package/dist/knowledge/formPatterns/catalog/topLevel/listPage.js +33 -0
  270. package/dist/knowledge/formPatterns/catalog/topLevel/listPage.js.map +1 -0
  271. package/dist/knowledge/formPatterns/catalog/topLevel/lookup.d.ts +10 -0
  272. package/dist/knowledge/formPatterns/catalog/topLevel/lookup.d.ts.map +1 -0
  273. package/dist/knowledge/formPatterns/catalog/topLevel/lookup.js +95 -0
  274. package/dist/knowledge/formPatterns/catalog/topLevel/lookup.js.map +1 -0
  275. package/dist/knowledge/formPatterns/catalog/topLevel/simpleDetails.d.ts +16 -0
  276. package/dist/knowledge/formPatterns/catalog/topLevel/simpleDetails.d.ts.map +1 -0
  277. package/dist/knowledge/formPatterns/catalog/topLevel/simpleDetails.js +158 -0
  278. package/dist/knowledge/formPatterns/catalog/topLevel/simpleDetails.js.map +1 -0
  279. package/dist/knowledge/formPatterns/catalog/topLevel/simpleList.d.ts +7 -0
  280. package/dist/knowledge/formPatterns/catalog/topLevel/simpleList.d.ts.map +1 -0
  281. package/dist/knowledge/formPatterns/catalog/topLevel/simpleList.js +34 -0
  282. package/dist/knowledge/formPatterns/catalog/topLevel/simpleList.js.map +1 -0
  283. package/dist/knowledge/formPatterns/catalog/topLevel/simpleListDetails.d.ts +9 -0
  284. package/dist/knowledge/formPatterns/catalog/topLevel/simpleListDetails.d.ts.map +1 -0
  285. package/dist/knowledge/formPatterns/catalog/topLevel/simpleListDetails.js +99 -0
  286. package/dist/knowledge/formPatterns/catalog/topLevel/simpleListDetails.js.map +1 -0
  287. package/dist/knowledge/formPatterns/catalog/topLevel/tableOfContents.d.ts +8 -0
  288. package/dist/knowledge/formPatterns/catalog/topLevel/tableOfContents.d.ts.map +1 -0
  289. package/dist/knowledge/formPatterns/catalog/topLevel/tableOfContents.js +95 -0
  290. package/dist/knowledge/formPatterns/catalog/topLevel/tableOfContents.js.map +1 -0
  291. package/dist/knowledge/formPatterns/catalog/topLevel/task.d.ts +9 -0
  292. package/dist/knowledge/formPatterns/catalog/topLevel/task.d.ts.map +1 -0
  293. package/dist/knowledge/formPatterns/catalog/topLevel/task.js +42 -0
  294. package/dist/knowledge/formPatterns/catalog/topLevel/task.js.map +1 -0
  295. package/dist/knowledge/formPatterns/catalog/topLevel/wizard.d.ts +7 -0
  296. package/dist/knowledge/formPatterns/catalog/topLevel/wizard.d.ts.map +1 -0
  297. package/dist/knowledge/formPatterns/catalog/topLevel/wizard.js +42 -0
  298. package/dist/knowledge/formPatterns/catalog/topLevel/wizard.js.map +1 -0
  299. package/dist/knowledge/formPatterns/catalog/topLevel/workspace.d.ts +17 -0
  300. package/dist/knowledge/formPatterns/catalog/topLevel/workspace.d.ts.map +1 -0
  301. package/dist/knowledge/formPatterns/catalog/topLevel/workspace.js +157 -0
  302. package/dist/knowledge/formPatterns/catalog/topLevel/workspace.js.map +1 -0
  303. package/dist/knowledge/formPatterns/crossCheck.d.ts +44 -0
  304. package/dist/knowledge/formPatterns/crossCheck.d.ts.map +1 -0
  305. package/dist/knowledge/formPatterns/crossCheck.js +109 -0
  306. package/dist/knowledge/formPatterns/crossCheck.js.map +1 -0
  307. package/dist/knowledge/formPatterns/index.d.ts +30 -0
  308. package/dist/knowledge/formPatterns/index.d.ts.map +1 -0
  309. package/dist/knowledge/formPatterns/index.js +158 -0
  310. package/dist/knowledge/formPatterns/index.js.map +1 -0
  311. package/dist/knowledge/formPatterns/methodStubs.d.ts +45 -0
  312. package/dist/knowledge/formPatterns/methodStubs.d.ts.map +1 -0
  313. package/dist/knowledge/formPatterns/methodStubs.js +257 -0
  314. package/dist/knowledge/formPatterns/methodStubs.js.map +1 -0
  315. package/dist/knowledge/formPatterns/types.d.ts +115 -0
  316. package/dist/knowledge/formPatterns/types.d.ts.map +1 -0
  317. package/dist/knowledge/formPatterns/types.js +44 -0
  318. package/dist/knowledge/formPatterns/types.js.map +1 -0
  319. package/dist/metadata/enhancedParser.d.ts +91 -0
  320. package/dist/metadata/enhancedParser.d.ts.map +1 -0
  321. package/dist/metadata/enhancedParser.js +379 -0
  322. package/dist/metadata/enhancedParser.js.map +1 -0
  323. package/dist/metadata/formPatternMiner.d.ts +78 -0
  324. package/dist/metadata/formPatternMiner.d.ts.map +1 -0
  325. package/dist/metadata/formPatternMiner.js +220 -0
  326. package/dist/metadata/formPatternMiner.js.map +1 -0
  327. package/dist/metadata/labelParser.d.ts +71 -0
  328. package/dist/metadata/labelParser.d.ts.map +1 -0
  329. package/dist/metadata/labelParser.js +258 -0
  330. package/dist/metadata/labelParser.js.map +1 -0
  331. package/dist/metadata/symbolCountsWorker.d.ts +16 -0
  332. package/dist/metadata/symbolCountsWorker.d.ts.map +1 -0
  333. package/dist/metadata/symbolCountsWorker.js +42 -0
  334. package/dist/metadata/symbolCountsWorker.js.map +1 -0
  335. package/dist/metadata/symbolIndex.d.ts +474 -0
  336. package/dist/metadata/symbolIndex.d.ts.map +1 -0
  337. package/dist/metadata/symbolIndex.js +3152 -0
  338. package/dist/metadata/symbolIndex.js.map +1 -0
  339. package/dist/metadata/types.d.ts +267 -0
  340. package/dist/metadata/types.d.ts.map +1 -0
  341. package/dist/metadata/types.js +5 -0
  342. package/dist/metadata/types.js.map +1 -0
  343. package/dist/metadata/xmlParser.d.ts +232 -0
  344. package/dist/metadata/xmlParser.d.ts.map +1 -0
  345. package/dist/metadata/xmlParser.js +1021 -0
  346. package/dist/metadata/xmlParser.js.map +1 -0
  347. package/dist/metadata/xppDeclaration.d.ts +116 -0
  348. package/dist/metadata/xppDeclaration.d.ts.map +1 -0
  349. package/dist/metadata/xppDeclaration.js +350 -0
  350. package/dist/metadata/xppDeclaration.js.map +1 -0
  351. package/dist/middleware/apiKeyAuth.d.ts +7 -0
  352. package/dist/middleware/apiKeyAuth.d.ts.map +1 -0
  353. package/dist/middleware/apiKeyAuth.js +70 -0
  354. package/dist/middleware/apiKeyAuth.js.map +1 -0
  355. package/dist/middleware/rateLimiter.d.ts +7 -0
  356. package/dist/middleware/rateLimiter.d.ts.map +1 -0
  357. package/dist/middleware/rateLimiter.js +78 -0
  358. package/dist/middleware/rateLimiter.js.map +1 -0
  359. package/dist/prompts/codeReview.d.ts +8 -0
  360. package/dist/prompts/codeReview.d.ts.map +1 -0
  361. package/dist/prompts/codeReview.js +619 -0
  362. package/dist/prompts/codeReview.js.map +1 -0
  363. package/dist/prompts/index.d.ts +6 -0
  364. package/dist/prompts/index.d.ts.map +1 -0
  365. package/dist/prompts/index.js +6 -0
  366. package/dist/prompts/index.js.map +1 -0
  367. package/dist/prompts/systemInstructions.d.ts +33 -0
  368. package/dist/prompts/systemInstructions.d.ts.map +1 -0
  369. package/dist/prompts/systemInstructions.js +154 -0
  370. package/dist/prompts/systemInstructions.js.map +1 -0
  371. package/dist/resources/classResource.d.ts +17 -0
  372. package/dist/resources/classResource.d.ts.map +1 -0
  373. package/dist/resources/classResource.js +33 -0
  374. package/dist/resources/classResource.js.map +1 -0
  375. package/dist/resources/index.d.ts +20 -0
  376. package/dist/resources/index.d.ts.map +1 -0
  377. package/dist/resources/index.js +154 -0
  378. package/dist/resources/index.js.map +1 -0
  379. package/dist/server/mcpServer.d.ts +11 -0
  380. package/dist/server/mcpServer.d.ts.map +1 -0
  381. package/dist/server/mcpServer.js +185 -0
  382. package/dist/server/mcpServer.js.map +1 -0
  383. package/dist/server/serverMode.d.ts +53 -0
  384. package/dist/server/serverMode.d.ts.map +1 -0
  385. package/dist/server/serverMode.js +72 -0
  386. package/dist/server/serverMode.js.map +1 -0
  387. package/dist/server/toolAnnotations.d.ts +28 -0
  388. package/dist/server/toolAnnotations.d.ts.map +1 -0
  389. package/dist/server/toolAnnotations.js +70 -0
  390. package/dist/server/toolAnnotations.js.map +1 -0
  391. package/dist/server/toolSchemas/analyzeCode.d.ts +71 -0
  392. package/dist/server/toolSchemas/analyzeCode.d.ts.map +1 -0
  393. package/dist/server/toolSchemas/analyzeCode.js +50 -0
  394. package/dist/server/toolSchemas/analyzeCode.js.map +1 -0
  395. package/dist/server/toolSchemas/batchGetInfo.d.ts +32 -0
  396. package/dist/server/toolSchemas/batchGetInfo.d.ts.map +1 -0
  397. package/dist/server/toolSchemas/batchGetInfo.js +35 -0
  398. package/dist/server/toolSchemas/batchGetInfo.js.map +1 -0
  399. package/dist/server/toolSchemas/buildD365foProject.d.ts +44 -0
  400. package/dist/server/toolSchemas/buildD365foProject.d.ts.map +1 -0
  401. package/dist/server/toolSchemas/buildD365foProject.js +47 -0
  402. package/dist/server/toolSchemas/buildD365foProject.js.map +1 -0
  403. package/dist/server/toolSchemas/d365foFile.d.ts +99 -0
  404. package/dist/server/toolSchemas/d365foFile.d.ts.map +1 -0
  405. package/dist/server/toolSchemas/d365foFile.js +163 -0
  406. package/dist/server/toolSchemas/d365foFile.js.map +1 -0
  407. package/dist/server/toolSchemas/extensionInfo.d.ts +65 -0
  408. package/dist/server/toolSchemas/extensionInfo.d.ts.map +1 -0
  409. package/dist/server/toolSchemas/extensionInfo.js +73 -0
  410. package/dist/server/toolSchemas/extensionInfo.js.map +1 -0
  411. package/dist/server/toolSchemas/findReferences.d.ts +35 -0
  412. package/dist/server/toolSchemas/findReferences.d.ts.map +1 -0
  413. package/dist/server/toolSchemas/findReferences.js +35 -0
  414. package/dist/server/toolSchemas/findReferences.js.map +1 -0
  415. package/dist/server/toolSchemas/generateObject.d.ts +246 -0
  416. package/dist/server/toolSchemas/generateObject.d.ts.map +1 -0
  417. package/dist/server/toolSchemas/generateObject.js +158 -0
  418. package/dist/server/toolSchemas/generateObject.js.map +1 -0
  419. package/dist/server/toolSchemas/getKnowledge.d.ts +39 -0
  420. package/dist/server/toolSchemas/getKnowledge.d.ts.map +1 -0
  421. package/dist/server/toolSchemas/getKnowledge.js +46 -0
  422. package/dist/server/toolSchemas/getKnowledge.js.map +1 -0
  423. package/dist/server/toolSchemas/getMethod.d.ts +30 -0
  424. package/dist/server/toolSchemas/getMethod.d.ts.map +1 -0
  425. package/dist/server/toolSchemas/getMethod.js +34 -0
  426. package/dist/server/toolSchemas/getMethod.js.map +1 -0
  427. package/dist/server/toolSchemas/getObjectInfo.d.ts +24 -0
  428. package/dist/server/toolSchemas/getObjectInfo.d.ts.map +1 -0
  429. package/dist/server/toolSchemas/getObjectInfo.js +30 -0
  430. package/dist/server/toolSchemas/getObjectInfo.js.map +1 -0
  431. package/dist/server/toolSchemas/getWorkspaceInfo.d.ts +29 -0
  432. package/dist/server/toolSchemas/getWorkspaceInfo.d.ts.map +1 -0
  433. package/dist/server/toolSchemas/getWorkspaceInfo.js +29 -0
  434. package/dist/server/toolSchemas/getWorkspaceInfo.js.map +1 -0
  435. package/dist/server/toolSchemas/index.d.ts +1142 -0
  436. package/dist/server/toolSchemas/index.d.ts.map +1 -0
  437. package/dist/server/toolSchemas/index.js +60 -0
  438. package/dist/server/toolSchemas/index.js.map +1 -0
  439. package/dist/server/toolSchemas/labels.d.ts +172 -0
  440. package/dist/server/toolSchemas/labels.d.ts.map +1 -0
  441. package/dist/server/toolSchemas/labels.js +159 -0
  442. package/dist/server/toolSchemas/labels.js.map +1 -0
  443. package/dist/server/toolSchemas/objectPatterns.d.ts +93 -0
  444. package/dist/server/toolSchemas/objectPatterns.d.ts.map +1 -0
  445. package/dist/server/toolSchemas/objectPatterns.js +104 -0
  446. package/dist/server/toolSchemas/objectPatterns.js.map +1 -0
  447. package/dist/server/toolSchemas/prepare.d.ts +49 -0
  448. package/dist/server/toolSchemas/prepare.d.ts.map +1 -0
  449. package/dist/server/toolSchemas/prepare.js +57 -0
  450. package/dist/server/toolSchemas/prepare.js.map +1 -0
  451. package/dist/server/toolSchemas/reviewWorkspaceChanges.d.ts +20 -0
  452. package/dist/server/toolSchemas/reviewWorkspaceChanges.d.ts.map +1 -0
  453. package/dist/server/toolSchemas/reviewWorkspaceChanges.js +19 -0
  454. package/dist/server/toolSchemas/reviewWorkspaceChanges.js.map +1 -0
  455. package/dist/server/toolSchemas/runBpCheck.d.ts +36 -0
  456. package/dist/server/toolSchemas/runBpCheck.d.ts.map +1 -0
  457. package/dist/server/toolSchemas/runBpCheck.js +21 -0
  458. package/dist/server/toolSchemas/runBpCheck.js.map +1 -0
  459. package/dist/server/toolSchemas/runSystestClass.d.ts +32 -0
  460. package/dist/server/toolSchemas/runSystestClass.d.ts.map +1 -0
  461. package/dist/server/toolSchemas/runSystestClass.js +20 -0
  462. package/dist/server/toolSchemas/runSystestClass.js.map +1 -0
  463. package/dist/server/toolSchemas/search.d.ts +109 -0
  464. package/dist/server/toolSchemas/search.d.ts.map +1 -0
  465. package/dist/server/toolSchemas/search.js +123 -0
  466. package/dist/server/toolSchemas/search.js.map +1 -0
  467. package/dist/server/toolSchemas/securityInfo.d.ts +45 -0
  468. package/dist/server/toolSchemas/securityInfo.d.ts.map +1 -0
  469. package/dist/server/toolSchemas/securityInfo.js +39 -0
  470. package/dist/server/toolSchemas/securityInfo.js.map +1 -0
  471. package/dist/server/toolSchemas/suggestEdt.d.ts +29 -0
  472. package/dist/server/toolSchemas/suggestEdt.d.ts.map +1 -0
  473. package/dist/server/toolSchemas/suggestEdt.js +29 -0
  474. package/dist/server/toolSchemas/suggestEdt.js.map +1 -0
  475. package/dist/server/toolSchemas/triggerDbSync.d.ts +47 -0
  476. package/dist/server/toolSchemas/triggerDbSync.d.ts.map +1 -0
  477. package/dist/server/toolSchemas/triggerDbSync.js +31 -0
  478. package/dist/server/toolSchemas/triggerDbSync.js.map +1 -0
  479. package/dist/server/toolSchemas/undoLastModification.d.ts +20 -0
  480. package/dist/server/toolSchemas/undoLastModification.d.ts.map +1 -0
  481. package/dist/server/toolSchemas/undoLastModification.js +17 -0
  482. package/dist/server/toolSchemas/undoLastModification.js.map +1 -0
  483. package/dist/server/toolSchemas/updateSymbolIndex.d.ts +19 -0
  484. package/dist/server/toolSchemas/updateSymbolIndex.d.ts.map +1 -0
  485. package/dist/server/toolSchemas/updateSymbolIndex.js +18 -0
  486. package/dist/server/toolSchemas/updateSymbolIndex.js.map +1 -0
  487. package/dist/server/toolSchemas/validateCode.d.ts +35 -0
  488. package/dist/server/toolSchemas/validateCode.d.ts.map +1 -0
  489. package/dist/server/toolSchemas/validateCode.js +38 -0
  490. package/dist/server/toolSchemas/validateCode.js.map +1 -0
  491. package/dist/server/toolSchemas/validateObjectNaming.d.ts +33 -0
  492. package/dist/server/toolSchemas/validateObjectNaming.d.ts.map +1 -0
  493. package/dist/server/toolSchemas/validateObjectNaming.js +32 -0
  494. package/dist/server/toolSchemas/validateObjectNaming.js.map +1 -0
  495. package/dist/server/toolSchemas/verifyD365foProject.d.ts +50 -0
  496. package/dist/server/toolSchemas/verifyD365foProject.d.ts.map +1 -0
  497. package/dist/server/toolSchemas/verifyD365foProject.js +46 -0
  498. package/dist/server/toolSchemas/verifyD365foProject.js.map +1 -0
  499. package/dist/server/transport.d.ts +30 -0
  500. package/dist/server/transport.d.ts.map +1 -0
  501. package/dist/server/transport.js +391 -0
  502. package/dist/server/transport.js.map +1 -0
  503. package/dist/tools/analyzeCode.d.ts +17 -0
  504. package/dist/tools/analyzeCode.d.ts.map +1 -0
  505. package/dist/tools/analyzeCode.js +63 -0
  506. package/dist/tools/analyzeCode.js.map +1 -0
  507. package/dist/tools/analyzeCompleteness.d.ts +20 -0
  508. package/dist/tools/analyzeCompleteness.d.ts.map +1 -0
  509. package/dist/tools/analyzeCompleteness.js +103 -0
  510. package/dist/tools/analyzeCompleteness.js.map +1 -0
  511. package/dist/tools/analyzeExtensionPoints.d.ts +21 -0
  512. package/dist/tools/analyzeExtensionPoints.d.ts.map +1 -0
  513. package/dist/tools/analyzeExtensionPoints.js +343 -0
  514. package/dist/tools/analyzeExtensionPoints.js.map +1 -0
  515. package/dist/tools/analyzePatterns.d.ts +20 -0
  516. package/dist/tools/analyzePatterns.d.ts.map +1 -0
  517. package/dist/tools/analyzePatterns.js +71 -0
  518. package/dist/tools/analyzePatterns.js.map +1 -0
  519. package/dist/tools/apiUsagePatterns.d.ts +20 -0
  520. package/dist/tools/apiUsagePatterns.d.ts.map +1 -0
  521. package/dist/tools/apiUsagePatterns.js +136 -0
  522. package/dist/tools/apiUsagePatterns.js.map +1 -0
  523. package/dist/tools/batchGetInfo.d.ts +50 -0
  524. package/dist/tools/batchGetInfo.d.ts.map +1 -0
  525. package/dist/tools/batchGetInfo.js +52 -0
  526. package/dist/tools/batchGetInfo.js.map +1 -0
  527. package/dist/tools/batchSearch.d.ts +64 -0
  528. package/dist/tools/batchSearch.d.ts.map +1 -0
  529. package/dist/tools/batchSearch.js +265 -0
  530. package/dist/tools/batchSearch.js.map +1 -0
  531. package/dist/tools/buildProject.d.ts +28 -0
  532. package/dist/tools/buildProject.d.ts.map +1 -0
  533. package/dist/tools/buildProject.js +929 -0
  534. package/dist/tools/buildProject.js.map +1 -0
  535. package/dist/tools/classInfo.d.ts +8 -0
  536. package/dist/tools/classInfo.d.ts.map +1 -0
  537. package/dist/tools/classInfo.js +235 -0
  538. package/dist/tools/classInfo.js.map +1 -0
  539. package/dist/tools/codeGen.d.ts +19 -0
  540. package/dist/tools/codeGen.d.ts.map +1 -0
  541. package/dist/tools/codeGen.js +1956 -0
  542. package/dist/tools/codeGen.js.map +1 -0
  543. package/dist/tools/completion.d.ts +8 -0
  544. package/dist/tools/completion.d.ts.map +1 -0
  545. package/dist/tools/completion.js +272 -0
  546. package/dist/tools/completion.js.map +1 -0
  547. package/dist/tools/configKeyInfo.d.ts +22 -0
  548. package/dist/tools/configKeyInfo.d.ts.map +1 -0
  549. package/dist/tools/configKeyInfo.js +74 -0
  550. package/dist/tools/configKeyInfo.js.map +1 -0
  551. package/dist/tools/createD365File.d.ts +479 -0
  552. package/dist/tools/createD365File.d.ts.map +1 -0
  553. package/dist/tools/createD365File.js +4185 -0
  554. package/dist/tools/createD365File.js.map +1 -0
  555. package/dist/tools/createLabel.d.ts +51 -0
  556. package/dist/tools/createLabel.d.ts.map +1 -0
  557. package/dist/tools/createLabel.js +761 -0
  558. package/dist/tools/createLabel.js.map +1 -0
  559. package/dist/tools/d365foErrorHelp.d.ts +29 -0
  560. package/dist/tools/d365foErrorHelp.d.ts.map +1 -0
  561. package/dist/tools/d365foErrorHelp.js +389 -0
  562. package/dist/tools/d365foErrorHelp.js.map +1 -0
  563. package/dist/tools/d365foFile.d.ts +20 -0
  564. package/dist/tools/d365foFile.d.ts.map +1 -0
  565. package/dist/tools/d365foFile.js +58 -0
  566. package/dist/tools/d365foFile.js.map +1 -0
  567. package/dist/tools/d365foFileOpSpecs.d.ts +41 -0
  568. package/dist/tools/d365foFileOpSpecs.d.ts.map +1 -0
  569. package/dist/tools/d365foFileOpSpecs.js +336 -0
  570. package/dist/tools/d365foFileOpSpecs.js.map +1 -0
  571. package/dist/tools/dataEntityInfo.d.ts +23 -0
  572. package/dist/tools/dataEntityInfo.d.ts.map +1 -0
  573. package/dist/tools/dataEntityInfo.js +45 -0
  574. package/dist/tools/dataEntityInfo.js.map +1 -0
  575. package/dist/tools/dataEntityXml.d.ts +31 -0
  576. package/dist/tools/dataEntityXml.d.ts.map +1 -0
  577. package/dist/tools/dataEntityXml.js +131 -0
  578. package/dist/tools/dataEntityXml.js.map +1 -0
  579. package/dist/tools/dbSync.d.ts +8 -0
  580. package/dist/tools/dbSync.d.ts.map +1 -0
  581. package/dist/tools/dbSync.js +285 -0
  582. package/dist/tools/dbSync.js.map +1 -0
  583. package/dist/tools/edtInfo.d.ts +23 -0
  584. package/dist/tools/edtInfo.d.ts.map +1 -0
  585. package/dist/tools/edtInfo.js +122 -0
  586. package/dist/tools/edtInfo.js.map +1 -0
  587. package/dist/tools/enumInfo.d.ts +17 -0
  588. package/dist/tools/enumInfo.d.ts.map +1 -0
  589. package/dist/tools/enumInfo.js +44 -0
  590. package/dist/tools/enumInfo.js.map +1 -0
  591. package/dist/tools/extensionInfo.d.ts +26 -0
  592. package/dist/tools/extensionInfo.d.ts.map +1 -0
  593. package/dist/tools/extensionInfo.js +73 -0
  594. package/dist/tools/extensionInfo.js.map +1 -0
  595. package/dist/tools/extensionSearch.d.ts +20 -0
  596. package/dist/tools/extensionSearch.d.ts.map +1 -0
  597. package/dist/tools/extensionSearch.js +72 -0
  598. package/dist/tools/extensionSearch.js.map +1 -0
  599. package/dist/tools/extensionStrategyAdvisor.d.ts +15 -0
  600. package/dist/tools/extensionStrategyAdvisor.d.ts.map +1 -0
  601. package/dist/tools/extensionStrategyAdvisor.js +519 -0
  602. package/dist/tools/extensionStrategyAdvisor.js.map +1 -0
  603. package/dist/tools/findCocExtensions.d.ts +20 -0
  604. package/dist/tools/findCocExtensions.d.ts.map +1 -0
  605. package/dist/tools/findCocExtensions.js +285 -0
  606. package/dist/tools/findCocExtensions.js.map +1 -0
  607. package/dist/tools/findEventHandlers.d.ts +21 -0
  608. package/dist/tools/findEventHandlers.d.ts.map +1 -0
  609. package/dist/tools/findEventHandlers.js +196 -0
  610. package/dist/tools/findEventHandlers.js.map +1 -0
  611. package/dist/tools/findReferences.d.ts +30 -0
  612. package/dist/tools/findReferences.d.ts.map +1 -0
  613. package/dist/tools/findReferences.js +551 -0
  614. package/dist/tools/findReferences.js.map +1 -0
  615. package/dist/tools/formInfo.d.ts +13 -0
  616. package/dist/tools/formInfo.d.ts.map +1 -0
  617. package/dist/tools/formInfo.js +407 -0
  618. package/dist/tools/formInfo.js.map +1 -0
  619. package/dist/tools/formPattern.d.ts +19 -0
  620. package/dist/tools/formPattern.d.ts.map +1 -0
  621. package/dist/tools/formPattern.js +52 -0
  622. package/dist/tools/formPattern.js.map +1 -0
  623. package/dist/tools/generateD365Xml.d.ts +12 -0
  624. package/dist/tools/generateD365Xml.d.ts.map +1 -0
  625. package/dist/tools/generateD365Xml.js +1454 -0
  626. package/dist/tools/generateD365Xml.js.map +1 -0
  627. package/dist/tools/generateFindMethods.d.ts +69 -0
  628. package/dist/tools/generateFindMethods.d.ts.map +1 -0
  629. package/dist/tools/generateFindMethods.js +207 -0
  630. package/dist/tools/generateFindMethods.js.map +1 -0
  631. package/dist/tools/generateMetadata.d.ts +37 -0
  632. package/dist/tools/generateMetadata.d.ts.map +1 -0
  633. package/dist/tools/generateMetadata.js +213 -0
  634. package/dist/tools/generateMetadata.js.map +1 -0
  635. package/dist/tools/generateObject.d.ts +34 -0
  636. package/dist/tools/generateObject.d.ts.map +1 -0
  637. package/dist/tools/generateObject.js +47 -0
  638. package/dist/tools/generateObject.js.map +1 -0
  639. package/dist/tools/generateRelationXpp.d.ts +45 -0
  640. package/dist/tools/generateRelationXpp.d.ts.map +1 -0
  641. package/dist/tools/generateRelationXpp.js +129 -0
  642. package/dist/tools/generateRelationXpp.js.map +1 -0
  643. package/dist/tools/generateSmart.d.ts +32 -0
  644. package/dist/tools/generateSmart.d.ts.map +1 -0
  645. package/dist/tools/generateSmart.js +52 -0
  646. package/dist/tools/generateSmart.js.map +1 -0
  647. package/dist/tools/generateSmartForm.d.ts +82 -0
  648. package/dist/tools/generateSmartForm.d.ts.map +1 -0
  649. package/dist/tools/generateSmartForm.js +996 -0
  650. package/dist/tools/generateSmartForm.js.map +1 -0
  651. package/dist/tools/generateSmartReport.d.ts +90 -0
  652. package/dist/tools/generateSmartReport.d.ts.map +1 -0
  653. package/dist/tools/generateSmartReport.js +1254 -0
  654. package/dist/tools/generateSmartReport.js.map +1 -0
  655. package/dist/tools/generateSmartTable.d.ts +138 -0
  656. package/dist/tools/generateSmartTable.d.ts.map +1 -0
  657. package/dist/tools/generateSmartTable.js +1305 -0
  658. package/dist/tools/generateSmartTable.js.map +1 -0
  659. package/dist/tools/generateTableFields.d.ts +48 -0
  660. package/dist/tools/generateTableFields.d.ts.map +1 -0
  661. package/dist/tools/generateTableFields.js +186 -0
  662. package/dist/tools/generateTableFields.js.map +1 -0
  663. package/dist/tools/generateTableRelation.d.ts +35 -0
  664. package/dist/tools/generateTableRelation.d.ts.map +1 -0
  665. package/dist/tools/generateTableRelation.js +161 -0
  666. package/dist/tools/generateTableRelation.js.map +1 -0
  667. package/dist/tools/getFormPatternSpec.d.ts +13 -0
  668. package/dist/tools/getFormPatternSpec.d.ts.map +1 -0
  669. package/dist/tools/getFormPatternSpec.js +290 -0
  670. package/dist/tools/getFormPatternSpec.js.map +1 -0
  671. package/dist/tools/getFormPatterns.d.ts +68 -0
  672. package/dist/tools/getFormPatterns.d.ts.map +1 -0
  673. package/dist/tools/getFormPatterns.js +471 -0
  674. package/dist/tools/getFormPatterns.js.map +1 -0
  675. package/dist/tools/getKnowledge.d.ts +27 -0
  676. package/dist/tools/getKnowledge.d.ts.map +1 -0
  677. package/dist/tools/getKnowledge.js +50 -0
  678. package/dist/tools/getKnowledge.js.map +1 -0
  679. package/dist/tools/getLabelInfo.d.ts +21 -0
  680. package/dist/tools/getLabelInfo.d.ts.map +1 -0
  681. package/dist/tools/getLabelInfo.js +138 -0
  682. package/dist/tools/getLabelInfo.js.map +1 -0
  683. package/dist/tools/getMethod.d.ts +19 -0
  684. package/dist/tools/getMethod.d.ts.map +1 -0
  685. package/dist/tools/getMethod.js +77 -0
  686. package/dist/tools/getMethod.js.map +1 -0
  687. package/dist/tools/getMethodSource.d.ts +17 -0
  688. package/dist/tools/getMethodSource.d.ts.map +1 -0
  689. package/dist/tools/getMethodSource.js +161 -0
  690. package/dist/tools/getMethodSource.js.map +1 -0
  691. package/dist/tools/getObjectInfo.d.ts +17 -0
  692. package/dist/tools/getObjectInfo.d.ts.map +1 -0
  693. package/dist/tools/getObjectInfo.js +88 -0
  694. package/dist/tools/getObjectInfo.js.map +1 -0
  695. package/dist/tools/getTablePatterns.d.ts +45 -0
  696. package/dist/tools/getTablePatterns.d.ts.map +1 -0
  697. package/dist/tools/getTablePatterns.js +235 -0
  698. package/dist/tools/getTablePatterns.js.map +1 -0
  699. package/dist/tools/index.d.ts +11 -0
  700. package/dist/tools/index.d.ts.map +1 -0
  701. package/dist/tools/index.js +11 -0
  702. package/dist/tools/index.js.map +1 -0
  703. package/dist/tools/labels.d.ts +25 -0
  704. package/dist/tools/labels.d.ts.map +1 -0
  705. package/dist/tools/labels.js +111 -0
  706. package/dist/tools/labels.js.map +1 -0
  707. package/dist/tools/macroInfo.d.ts +23 -0
  708. package/dist/tools/macroInfo.d.ts.map +1 -0
  709. package/dist/tools/macroInfo.js +62 -0
  710. package/dist/tools/macroInfo.js.map +1 -0
  711. package/dist/tools/mapInfo.d.ts +21 -0
  712. package/dist/tools/mapInfo.d.ts.map +1 -0
  713. package/dist/tools/mapInfo.js +54 -0
  714. package/dist/tools/mapInfo.js.map +1 -0
  715. package/dist/tools/mapXml.d.ts +26 -0
  716. package/dist/tools/mapXml.d.ts.map +1 -0
  717. package/dist/tools/mapXml.js +88 -0
  718. package/dist/tools/mapXml.js.map +1 -0
  719. package/dist/tools/menuItemInfo.d.ts +20 -0
  720. package/dist/tools/menuItemInfo.d.ts.map +1 -0
  721. package/dist/tools/menuItemInfo.js +185 -0
  722. package/dist/tools/menuItemInfo.js.map +1 -0
  723. package/dist/tools/methodSignature.d.ts +33 -0
  724. package/dist/tools/methodSignature.d.ts.map +1 -0
  725. package/dist/tools/methodSignature.js +348 -0
  726. package/dist/tools/methodSignature.js.map +1 -0
  727. package/dist/tools/modifyD365File.d.ts +130 -0
  728. package/dist/tools/modifyD365File.d.ts.map +1 -0
  729. package/dist/tools/modifyD365File.js +2179 -0
  730. package/dist/tools/modifyD365File.js.map +1 -0
  731. package/dist/tools/objectInfoRegistry.d.ts +36 -0
  732. package/dist/tools/objectInfoRegistry.d.ts.map +1 -0
  733. package/dist/tools/objectInfoRegistry.js +98 -0
  734. package/dist/tools/objectInfoRegistry.js.map +1 -0
  735. package/dist/tools/objectPatterns.d.ts +16 -0
  736. package/dist/tools/objectPatterns.d.ts.map +1 -0
  737. package/dist/tools/objectPatterns.js +84 -0
  738. package/dist/tools/objectPatterns.js.map +1 -0
  739. package/dist/tools/prepare.d.ts +18 -0
  740. package/dist/tools/prepare.d.ts.map +1 -0
  741. package/dist/tools/prepare.js +47 -0
  742. package/dist/tools/prepare.js.map +1 -0
  743. package/dist/tools/prepareChange.d.ts +43 -0
  744. package/dist/tools/prepareChange.d.ts.map +1 -0
  745. package/dist/tools/prepareChange.js +327 -0
  746. package/dist/tools/prepareChange.js.map +1 -0
  747. package/dist/tools/prepareCreate.d.ts +45 -0
  748. package/dist/tools/prepareCreate.d.ts.map +1 -0
  749. package/dist/tools/prepareCreate.js +263 -0
  750. package/dist/tools/prepareCreate.js.map +1 -0
  751. package/dist/tools/queryInfo.d.ts +17 -0
  752. package/dist/tools/queryInfo.d.ts.map +1 -0
  753. package/dist/tools/queryInfo.js +46 -0
  754. package/dist/tools/queryInfo.js.map +1 -0
  755. package/dist/tools/queryViewXml.d.ts +36 -0
  756. package/dist/tools/queryViewXml.d.ts.map +1 -0
  757. package/dist/tools/queryViewXml.js +129 -0
  758. package/dist/tools/queryViewXml.js.map +1 -0
  759. package/dist/tools/renameLabel.d.ts +29 -0
  760. package/dist/tools/renameLabel.d.ts.map +1 -0
  761. package/dist/tools/renameLabel.js +377 -0
  762. package/dist/tools/renameLabel.js.map +1 -0
  763. package/dist/tools/repairFormControls.d.ts +21 -0
  764. package/dist/tools/repairFormControls.d.ts.map +1 -0
  765. package/dist/tools/repairFormControls.js +151 -0
  766. package/dist/tools/repairFormControls.js.map +1 -0
  767. package/dist/tools/reportInfo.d.ts +14 -0
  768. package/dist/tools/reportInfo.d.ts.map +1 -0
  769. package/dist/tools/reportInfo.js +302 -0
  770. package/dist/tools/reportInfo.js.map +1 -0
  771. package/dist/tools/resolveReferences.d.ts +89 -0
  772. package/dist/tools/resolveReferences.d.ts.map +1 -0
  773. package/dist/tools/resolveReferences.js +791 -0
  774. package/dist/tools/resolveReferences.js.map +1 -0
  775. package/dist/tools/reviewWorkspaceChanges.d.ts +14 -0
  776. package/dist/tools/reviewWorkspaceChanges.d.ts.map +1 -0
  777. package/dist/tools/reviewWorkspaceChanges.js +73 -0
  778. package/dist/tools/reviewWorkspaceChanges.js.map +1 -0
  779. package/dist/tools/runBpCheck.d.ts +14 -0
  780. package/dist/tools/runBpCheck.d.ts.map +1 -0
  781. package/dist/tools/runBpCheck.js +241 -0
  782. package/dist/tools/runBpCheck.js.map +1 -0
  783. package/dist/tools/search.d.ts +20 -0
  784. package/dist/tools/search.d.ts.map +1 -0
  785. package/dist/tools/search.js +246 -0
  786. package/dist/tools/search.js.map +1 -0
  787. package/dist/tools/searchLabels.d.ts +26 -0
  788. package/dist/tools/searchLabels.d.ts.map +1 -0
  789. package/dist/tools/searchLabels.js +91 -0
  790. package/dist/tools/searchLabels.js.map +1 -0
  791. package/dist/tools/searchUnified.d.ts +28 -0
  792. package/dist/tools/searchUnified.d.ts.map +1 -0
  793. package/dist/tools/searchUnified.js +48 -0
  794. package/dist/tools/searchUnified.js.map +1 -0
  795. package/dist/tools/securityArtifactInfo.d.ts +14 -0
  796. package/dist/tools/securityArtifactInfo.d.ts.map +1 -0
  797. package/dist/tools/securityArtifactInfo.js +192 -0
  798. package/dist/tools/securityArtifactInfo.js.map +1 -0
  799. package/dist/tools/securityCoverageInfo.d.ts +21 -0
  800. package/dist/tools/securityCoverageInfo.d.ts.map +1 -0
  801. package/dist/tools/securityCoverageInfo.js +248 -0
  802. package/dist/tools/securityCoverageInfo.js.map +1 -0
  803. package/dist/tools/securityInfo.d.ts +22 -0
  804. package/dist/tools/securityInfo.d.ts.map +1 -0
  805. package/dist/tools/securityInfo.js +43 -0
  806. package/dist/tools/securityInfo.js.map +1 -0
  807. package/dist/tools/securityPolicyInfo.d.ts +22 -0
  808. package/dist/tools/securityPolicyInfo.d.ts.map +1 -0
  809. package/dist/tools/securityPolicyInfo.js +49 -0
  810. package/dist/tools/securityPolicyInfo.js.map +1 -0
  811. package/dist/tools/securityPrivilegeXml.d.ts +21 -0
  812. package/dist/tools/securityPrivilegeXml.d.ts.map +1 -0
  813. package/dist/tools/securityPrivilegeXml.js +61 -0
  814. package/dist/tools/securityPrivilegeXml.js.map +1 -0
  815. package/dist/tools/serviceInfo.d.ts +25 -0
  816. package/dist/tools/serviceInfo.d.ts.map +1 -0
  817. package/dist/tools/serviceInfo.js +93 -0
  818. package/dist/tools/serviceInfo.js.map +1 -0
  819. package/dist/tools/suggestEdt.d.ts +15 -0
  820. package/dist/tools/suggestEdt.d.ts.map +1 -0
  821. package/dist/tools/suggestEdt.js +348 -0
  822. package/dist/tools/suggestEdt.js.map +1 -0
  823. package/dist/tools/suggestImplementation.d.ts +20 -0
  824. package/dist/tools/suggestImplementation.d.ts.map +1 -0
  825. package/dist/tools/suggestImplementation.js +144 -0
  826. package/dist/tools/suggestImplementation.js.map +1 -0
  827. package/dist/tools/sysTestRunner.d.ts +14 -0
  828. package/dist/tools/sysTestRunner.d.ts.map +1 -0
  829. package/dist/tools/sysTestRunner.js +145 -0
  830. package/dist/tools/sysTestRunner.js.map +1 -0
  831. package/dist/tools/tableExtensionInfo.d.ts +91 -0
  832. package/dist/tools/tableExtensionInfo.d.ts.map +1 -0
  833. package/dist/tools/tableExtensionInfo.js +305 -0
  834. package/dist/tools/tableExtensionInfo.js.map +1 -0
  835. package/dist/tools/tableInfo.d.ts +23 -0
  836. package/dist/tools/tableInfo.d.ts.map +1 -0
  837. package/dist/tools/tableInfo.js +125 -0
  838. package/dist/tools/tableInfo.js.map +1 -0
  839. package/dist/tools/toolHandler.d.ts +4 -0
  840. package/dist/tools/toolHandler.d.ts.map +1 -0
  841. package/dist/tools/toolHandler.js +508 -0
  842. package/dist/tools/toolHandler.js.map +1 -0
  843. package/dist/tools/undoLastModification.d.ts +15 -0
  844. package/dist/tools/undoLastModification.d.ts.map +1 -0
  845. package/dist/tools/undoLastModification.js +147 -0
  846. package/dist/tools/undoLastModification.js.map +1 -0
  847. package/dist/tools/updateSymbolIndex.d.ts +15 -0
  848. package/dist/tools/updateSymbolIndex.d.ts.map +1 -0
  849. package/dist/tools/updateSymbolIndex.js +520 -0
  850. package/dist/tools/updateSymbolIndex.js.map +1 -0
  851. package/dist/tools/validateCode.d.ts +24 -0
  852. package/dist/tools/validateCode.d.ts.map +1 -0
  853. package/dist/tools/validateCode.js +201 -0
  854. package/dist/tools/validateCode.js.map +1 -0
  855. package/dist/tools/validateFormPattern.d.ts +51 -0
  856. package/dist/tools/validateFormPattern.d.ts.map +1 -0
  857. package/dist/tools/validateFormPattern.js +201 -0
  858. package/dist/tools/validateFormPattern.js.map +1 -0
  859. package/dist/tools/validateObjectNaming.d.ts +21 -0
  860. package/dist/tools/validateObjectNaming.d.ts.map +1 -0
  861. package/dist/tools/validateObjectNaming.js +319 -0
  862. package/dist/tools/validateObjectNaming.js.map +1 -0
  863. package/dist/tools/validateXpp.d.ts +79 -0
  864. package/dist/tools/validateXpp.d.ts.map +1 -0
  865. package/dist/tools/validateXpp.js +705 -0
  866. package/dist/tools/validateXpp.js.map +1 -0
  867. package/dist/tools/verifyD365Project.d.ts +21 -0
  868. package/dist/tools/verifyD365Project.d.ts.map +1 -0
  869. package/dist/tools/verifyD365Project.js +299 -0
  870. package/dist/tools/verifyD365Project.js.map +1 -0
  871. package/dist/tools/viewInfo.d.ts +17 -0
  872. package/dist/tools/viewInfo.d.ts.map +1 -0
  873. package/dist/tools/viewInfo.js +46 -0
  874. package/dist/tools/viewInfo.js.map +1 -0
  875. package/dist/tools/xppKnowledge.d.ts +45 -0
  876. package/dist/tools/xppKnowledge.d.ts.map +1 -0
  877. package/dist/tools/xppKnowledge.js +2815 -0
  878. package/dist/tools/xppKnowledge.js.map +1 -0
  879. package/dist/types/context.d.ts +56 -0
  880. package/dist/types/context.d.ts.map +1 -0
  881. package/dist/types/context.js +5 -0
  882. package/dist/types/context.js.map +1 -0
  883. package/dist/utils/callDedup.d.ts +29 -0
  884. package/dist/utils/callDedup.d.ts.map +1 -0
  885. package/dist/utils/callDedup.js +87 -0
  886. package/dist/utils/callDedup.js.map +1 -0
  887. package/dist/utils/configManager.d.ts +307 -0
  888. package/dist/utils/configManager.d.ts.map +1 -0
  889. package/dist/utils/configManager.js +1169 -0
  890. package/dist/utils/configManager.js.map +1 -0
  891. package/dist/utils/d365XmlNormalizer.d.ts +9 -0
  892. package/dist/utils/d365XmlNormalizer.d.ts.map +1 -0
  893. package/dist/utils/d365XmlNormalizer.js +24 -0
  894. package/dist/utils/d365XmlNormalizer.js.map +1 -0
  895. package/dist/utils/edtExtensionValidator.d.ts +110 -0
  896. package/dist/utils/edtExtensionValidator.d.ts.map +1 -0
  897. package/dist/utils/edtExtensionValidator.js +367 -0
  898. package/dist/utils/edtExtensionValidator.js.map +1 -0
  899. package/dist/utils/eolUtils.d.ts +15 -0
  900. package/dist/utils/eolUtils.d.ts.map +1 -0
  901. package/dist/utils/eolUtils.js +21 -0
  902. package/dist/utils/eolUtils.js.map +1 -0
  903. package/dist/utils/extractManifest.d.ts +34 -0
  904. package/dist/utils/extractManifest.d.ts.map +1 -0
  905. package/dist/utils/extractManifest.js +43 -0
  906. package/dist/utils/extractManifest.js.map +1 -0
  907. package/dist/utils/fieldControlTypes.d.ts +44 -0
  908. package/dist/utils/fieldControlTypes.d.ts.map +1 -0
  909. package/dist/utils/fieldControlTypes.js +97 -0
  910. package/dist/utils/fieldControlTypes.js.map +1 -0
  911. package/dist/utils/formCloner.d.ts +77 -0
  912. package/dist/utils/formCloner.d.ts.map +1 -0
  913. package/dist/utils/formCloner.js +364 -0
  914. package/dist/utils/formCloner.js.map +1 -0
  915. package/dist/utils/formControlExpander.d.ts +68 -0
  916. package/dist/utils/formControlExpander.d.ts.map +1 -0
  917. package/dist/utils/formControlExpander.js +207 -0
  918. package/dist/utils/formControlExpander.js.map +1 -0
  919. package/dist/utils/formControlRepair.d.ts +81 -0
  920. package/dist/utils/formControlRepair.d.ts.map +1 -0
  921. package/dist/utils/formControlRepair.js +203 -0
  922. package/dist/utils/formControlRepair.js.map +1 -0
  923. package/dist/utils/formExtensionShapeValidator.d.ts +44 -0
  924. package/dist/utils/formExtensionShapeValidator.d.ts.map +1 -0
  925. package/dist/utils/formExtensionShapeValidator.js +99 -0
  926. package/dist/utils/formExtensionShapeValidator.js.map +1 -0
  927. package/dist/utils/formPatternTemplates.d.ts +77 -0
  928. package/dist/utils/formPatternTemplates.d.ts.map +1 -0
  929. package/dist/utils/formPatternTemplates.js +1917 -0
  930. package/dist/utils/formPatternTemplates.js.map +1 -0
  931. package/dist/utils/fsExtensionScanner.d.ts +76 -0
  932. package/dist/utils/fsExtensionScanner.d.ts.map +1 -0
  933. package/dist/utils/fsExtensionScanner.js +271 -0
  934. package/dist/utils/fsExtensionScanner.js.map +1 -0
  935. package/dist/utils/fuzzyMatching.d.ts +41 -0
  936. package/dist/utils/fuzzyMatching.d.ts.map +1 -0
  937. package/dist/utils/fuzzyMatching.js +186 -0
  938. package/dist/utils/fuzzyMatching.js.map +1 -0
  939. package/dist/utils/indexStaleness.d.ts +30 -0
  940. package/dist/utils/indexStaleness.d.ts.map +1 -0
  941. package/dist/utils/indexStaleness.js +104 -0
  942. package/dist/utils/indexStaleness.js.map +1 -0
  943. package/dist/utils/loadEnv.d.ts +32 -0
  944. package/dist/utils/loadEnv.d.ts.map +1 -0
  945. package/dist/utils/loadEnv.js +83 -0
  946. package/dist/utils/loadEnv.js.map +1 -0
  947. package/dist/utils/logger.d.ts +4 -0
  948. package/dist/utils/logger.d.ts.map +1 -0
  949. package/dist/utils/logger.js +11 -0
  950. package/dist/utils/logger.js.map +1 -0
  951. package/dist/utils/metadataResolver.d.ts +155 -0
  952. package/dist/utils/metadataResolver.d.ts.map +1 -0
  953. package/dist/utils/metadataResolver.js +277 -0
  954. package/dist/utils/metadataResolver.js.map +1 -0
  955. package/dist/utils/modelClassifier.d.ts +180 -0
  956. package/dist/utils/modelClassifier.d.ts.map +1 -0
  957. package/dist/utils/modelClassifier.js +373 -0
  958. package/dist/utils/modelClassifier.js.map +1 -0
  959. package/dist/utils/operationLocks.d.ts +26 -0
  960. package/dist/utils/operationLocks.d.ts.map +1 -0
  961. package/dist/utils/operationLocks.js +182 -0
  962. package/dist/utils/operationLocks.js.map +1 -0
  963. package/dist/utils/packageResolver.d.ts +52 -0
  964. package/dist/utils/packageResolver.d.ts.map +1 -0
  965. package/dist/utils/packageResolver.js +174 -0
  966. package/dist/utils/packageResolver.js.map +1 -0
  967. package/dist/utils/pathContainment.d.ts +60 -0
  968. package/dist/utils/pathContainment.d.ts.map +1 -0
  969. package/dist/utils/pathContainment.js +270 -0
  970. package/dist/utils/pathContainment.js.map +1 -0
  971. package/dist/utils/projectUtils.d.ts +14 -0
  972. package/dist/utils/projectUtils.d.ts.map +1 -0
  973. package/dist/utils/projectUtils.js +48 -0
  974. package/dist/utils/projectUtils.js.map +1 -0
  975. package/dist/utils/provenanceStore.d.ts +54 -0
  976. package/dist/utils/provenanceStore.d.ts.map +1 -0
  977. package/dist/utils/provenanceStore.js +203 -0
  978. package/dist/utils/provenanceStore.js.map +1 -0
  979. package/dist/utils/richContext.d.ts +45 -0
  980. package/dist/utils/richContext.d.ts.map +1 -0
  981. package/dist/utils/richContext.js +316 -0
  982. package/dist/utils/richContext.js.map +1 -0
  983. package/dist/utils/smartXmlBuilder.d.ts +187 -0
  984. package/dist/utils/smartXmlBuilder.d.ts.map +1 -0
  985. package/dist/utils/smartXmlBuilder.js +504 -0
  986. package/dist/utils/smartXmlBuilder.js.map +1 -0
  987. package/dist/utils/stdioSessionInfo.d.ts +53 -0
  988. package/dist/utils/stdioSessionInfo.d.ts.map +1 -0
  989. package/dist/utils/stdioSessionInfo.js +47 -0
  990. package/dist/utils/stdioSessionInfo.js.map +1 -0
  991. package/dist/utils/suggestionEngine.d.ts +20 -0
  992. package/dist/utils/suggestionEngine.d.ts.map +1 -0
  993. package/dist/utils/suggestionEngine.js +145 -0
  994. package/dist/utils/suggestionEngine.js.map +1 -0
  995. package/dist/utils/symbolLookup.d.ts +60 -0
  996. package/dist/utils/symbolLookup.d.ts.map +1 -0
  997. package/dist/utils/symbolLookup.js +0 -0
  998. package/dist/utils/symbolLookup.js.map +1 -0
  999. package/dist/utils/terminalUi.d.ts +85 -0
  1000. package/dist/utils/terminalUi.d.ts.map +1 -0
  1001. package/dist/utils/terminalUi.js +182 -0
  1002. package/dist/utils/terminalUi.js.map +1 -0
  1003. package/dist/utils/toolMetrics.d.ts +32 -0
  1004. package/dist/utils/toolMetrics.d.ts.map +1 -0
  1005. package/dist/utils/toolMetrics.js +89 -0
  1006. package/dist/utils/toolMetrics.js.map +1 -0
  1007. package/dist/utils/toolProgressMessage.d.ts +8 -0
  1008. package/dist/utils/toolProgressMessage.d.ts.map +1 -0
  1009. package/dist/utils/toolProgressMessage.js +182 -0
  1010. package/dist/utils/toolProgressMessage.js.map +1 -0
  1011. package/dist/utils/workspaceDetector.d.ts +51 -0
  1012. package/dist/utils/workspaceDetector.d.ts.map +1 -0
  1013. package/dist/utils/workspaceDetector.js +328 -0
  1014. package/dist/utils/workspaceDetector.js.map +1 -0
  1015. package/dist/utils/xppConfigProvider.d.ts +48 -0
  1016. package/dist/utils/xppConfigProvider.d.ts.map +1 -0
  1017. package/dist/utils/xppConfigProvider.js +121 -0
  1018. package/dist/utils/xppConfigProvider.js.map +1 -0
  1019. package/dist/utils/xppDocGen.d.ts +39 -0
  1020. package/dist/utils/xppDocGen.d.ts.map +1 -0
  1021. package/dist/utils/xppDocGen.js +518 -0
  1022. package/dist/utils/xppDocGen.js.map +1 -0
  1023. package/dist/utils/xppFormat.d.ts +21 -0
  1024. package/dist/utils/xppFormat.d.ts.map +1 -0
  1025. package/dist/utils/xppFormat.js +102 -0
  1026. package/dist/utils/xppFormat.js.map +1 -0
  1027. package/dist/utils/xppSelectLint.d.ts +18 -0
  1028. package/dist/utils/xppSelectLint.d.ts.map +1 -0
  1029. package/dist/utils/xppSelectLint.js +80 -0
  1030. package/dist/utils/xppSelectLint.js.map +1 -0
  1031. package/dist/validation/formPatternValidator.d.ts +53 -0
  1032. package/dist/validation/formPatternValidator.d.ts.map +1 -0
  1033. package/dist/validation/formPatternValidator.js +454 -0
  1034. package/dist/validation/formPatternValidator.js.map +1 -0
  1035. package/dist/workspace/contextRanker.d.ts +58 -0
  1036. package/dist/workspace/contextRanker.d.ts.map +1 -0
  1037. package/dist/workspace/contextRanker.js +216 -0
  1038. package/dist/workspace/contextRanker.js.map +1 -0
  1039. package/dist/workspace/contextSnapshot.d.ts +68 -0
  1040. package/dist/workspace/contextSnapshot.d.ts.map +1 -0
  1041. package/dist/workspace/contextSnapshot.js +193 -0
  1042. package/dist/workspace/contextSnapshot.js.map +1 -0
  1043. package/dist/workspace/hybridSearch.d.ts +39 -0
  1044. package/dist/workspace/hybridSearch.d.ts.map +1 -0
  1045. package/dist/workspace/hybridSearch.js +96 -0
  1046. package/dist/workspace/hybridSearch.js.map +1 -0
  1047. package/dist/workspace/workspaceScanner.d.ts +95 -0
  1048. package/dist/workspace/workspaceScanner.d.ts.map +1 -0
  1049. package/dist/workspace/workspaceScanner.js +247 -0
  1050. package/dist/workspace/workspaceScanner.js.map +1 -0
  1051. package/dist/workspace/workspaceUtils.d.ts +23 -0
  1052. package/dist/workspace/workspaceUtils.d.ts.map +1 -0
  1053. package/dist/workspace/workspaceUtils.js +77 -0
  1054. package/dist/workspace/workspaceUtils.js.map +1 -0
  1055. package/package.json +94 -0
@@ -0,0 +1,929 @@
1
+ import { execFile, spawn } from 'child_process';
2
+ import util from 'util';
3
+ import path from 'path';
4
+ import { access, writeFile, readFile, unlink, appendFile, readdir } from 'fs/promises';
5
+ import { openSync as openSyncFs, closeSync as closeSyncFs } from 'fs';
6
+ import os from 'os';
7
+ import crypto from 'crypto';
8
+ import { getConfigManager } from '../utils/configManager.js';
9
+ import { forceReleaseLock } from '../utils/operationLocks.js';
10
+ import { lookupErrorFix } from './d365foErrorHelp.js';
11
+ import { generateRuntimeMetadata } from './generateMetadata.js';
12
+ const execFileAsync = util.promisify(execFile);
13
+ // Build-tool file logger
14
+ async function buildLog(level, message) {
15
+ console.error(`[build_d365fo_project] ${message}`);
16
+ try {
17
+ const configManager = getConfigManager();
18
+ const logFile = configManager.getContext()?.bridgeLogFile;
19
+ if (!logFile)
20
+ return;
21
+ const line = `[${new Date().toISOString()}] [BuildTool] [${level}] ${message}\n`;
22
+ await appendFile(logFile, line, 'utf-8');
23
+ }
24
+ catch {
25
+ // Best-effort — never throw from logging
26
+ }
27
+ }
28
+ function assertSafePath(value, label) {
29
+ if (/[&|<>^`!;$%"'\n\r]/.test(value)) {
30
+ throw new Error(`${label} contains potentially dangerous characters and cannot be used in a build command: ${value}`);
31
+ }
32
+ }
33
+ // xppc.exe writes this prefix on error lines in the -log file (standalone/non-VS mode)
34
+ const XPPC_COMPILE_ERROR_RE = /^Compile Error:/m;
35
+ // When xppc reports stale symbols from a previous incremental build, a full build is needed
36
+ const XPPC_STALE_SYMBOL_RE = /has not been successfully compiled since it was last changed|Do a Full Build/i;
37
+ const XPPC_DIAG_LINE_RE = /^(Compile Fatal Error|Compile Error|Compile Warning|Generation Warning|Best Practice Warning):\s*(?:(.*?)\s+)?dynamics:\/\/([^/\s:]+)\/([^/\s:]+)(?:\/([^\s:]+))?\s*:?\s*\[\((\d+),(\d+)\)(?:,\(\d+,\d+\))?\]\s*:\s*(.*)$/;
38
+ /** Parse xppc log content into structured diagnostics. */
39
+ export function parseXppcDiagnostics(logContent) {
40
+ const diagnostics = [];
41
+ for (const rawLine of logContent.split(/\r?\n/)) {
42
+ const line = rawLine.trim();
43
+ const m = XPPC_DIAG_LINE_RE.exec(line);
44
+ if (m) {
45
+ diagnostics.push({
46
+ severity: m[1].includes('Error') ? 'error' : 'warning',
47
+ kind: m[2] || undefined,
48
+ model: m[3],
49
+ object: m[4],
50
+ member: m[5] || undefined,
51
+ line: Number(m[6]),
52
+ column: Number(m[7]),
53
+ message: m[8].trim(),
54
+ });
55
+ continue;
56
+ }
57
+ // Fallback: severity prefix without the dynamics:// location part
58
+ const simple = /^(Compile Fatal Error|Compile Error|Compile Warning|Generation Warning):\s*(.+)$/.exec(line);
59
+ if (simple) {
60
+ diagnostics.push({
61
+ severity: simple[1].includes('Error') ? 'error' : 'warning',
62
+ message: simple[2].trim(),
63
+ });
64
+ }
65
+ }
66
+ return diagnostics;
67
+ }
68
+ /**
69
+ * Render diagnostics as a numbered, machine-actionable block. Errors come
70
+ * first; duplicate messages are collapsed; the first few distinct errors are
71
+ * enriched with a fix hint from the get_d365fo_error_help knowledge base so
72
+ * the model can correct everything in one round.
73
+ */
74
+ export function formatStructuredDiagnostics(diagnostics, maxItems = 25) {
75
+ if (diagnostics.length === 0)
76
+ return '';
77
+ const errors = diagnostics.filter(d => d.severity === 'error');
78
+ const warnings = diagnostics.filter(d => d.severity === 'warning');
79
+ const ordered = [...errors, ...warnings];
80
+ const seen = new Set();
81
+ const lines = [
82
+ `📋 Structured diagnostics: ${errors.length} error(s), ${warnings.length} warning(s)`,
83
+ '',
84
+ ];
85
+ let shown = 0;
86
+ let enriched = 0;
87
+ for (const d of ordered) {
88
+ const key = `${d.object ?? ''}|${d.member ?? ''}|${d.line ?? ''}|${d.message}`;
89
+ if (seen.has(key))
90
+ continue;
91
+ seen.add(key);
92
+ if (shown >= maxItems) {
93
+ lines.push(`… and ${ordered.length - shown} more (see raw log below).`);
94
+ break;
95
+ }
96
+ shown++;
97
+ const location = d.object
98
+ ? `${d.object}${d.member ? `.${d.member}` : ''}${d.line ? ` (line ${d.line}, col ${d.column})` : ''}`
99
+ : '(no location)';
100
+ lines.push(`${shown}. ${d.severity === 'error' ? '🔴' : '🟡'} ${location}: ${d.message}`);
101
+ // Enrich the first few distinct errors with a known fix
102
+ if (d.severity === 'error' && enriched < 3) {
103
+ const help = lookupErrorFix(d.message);
104
+ if (help) {
105
+ enriched++;
106
+ lines.push(` 💡 ${help.title}: ${help.fix[0]}`);
107
+ }
108
+ }
109
+ }
110
+ if (errors.length > 0) {
111
+ lines.push('');
112
+ lines.push('Fix the errors with d365fo_file(action="modify") (use the object/line references above), then rebuild.');
113
+ }
114
+ return lines.join('\n');
115
+ }
116
+ // State file is keyed by targetModel so it remains findable throughout a
117
+ // multi-model build even while a dependency is building. Each model in the
118
+ // queue gets its own log file (keyed by targetModel + index).
119
+ function stateFilePath(targetModel, customPackagesPath) {
120
+ const hash = crypto
121
+ .createHash('md5')
122
+ .update(`${targetModel.toLowerCase()}|${customPackagesPath.toLowerCase()}`)
123
+ .digest('hex')
124
+ .slice(0, 10);
125
+ return path.join(os.tmpdir(), `d365build_state_${hash}.json`);
126
+ }
127
+ function logFilePath(targetModel, queueIndex, customPackagesPath) {
128
+ const hash = crypto
129
+ .createHash('md5')
130
+ .update(`log:${targetModel.toLowerCase()}|${queueIndex}|${customPackagesPath.toLowerCase()}`)
131
+ .digest('hex')
132
+ .slice(0, 10);
133
+ return path.join(os.tmpdir(), `d365build_log_${hash}.log`);
134
+ }
135
+ async function readBuildState(targetModel, customPackagesPath) {
136
+ try {
137
+ const raw = await readFile(stateFilePath(targetModel, customPackagesPath), 'utf-8');
138
+ return JSON.parse(raw);
139
+ }
140
+ catch {
141
+ return null;
142
+ }
143
+ }
144
+ async function writeBuildState(state, customPackagesPath) {
145
+ await writeFile(stateFilePath(state.targetModel, customPackagesPath), JSON.stringify(state, null, 2), 'utf-8');
146
+ }
147
+ async function clearBuildState(targetModel, customPackagesPath) {
148
+ await unlink(stateFilePath(targetModel, customPackagesPath)).catch(() => { });
149
+ }
150
+ function isProcessAlive(pid) {
151
+ try {
152
+ process.kill(pid, 0);
153
+ return true;
154
+ }
155
+ catch {
156
+ return false;
157
+ }
158
+ }
159
+ /** Last N lines of a log file (used while a build is running). */
160
+ async function readLogTail(logFile, lines = 60) {
161
+ try {
162
+ const content = await readFile(logFile, 'utf-8');
163
+ const all = content.split(/\r?\n/);
164
+ return all.slice(-lines).join('\n').trim();
165
+ }
166
+ catch {
167
+ return '(log not yet available)';
168
+ }
169
+ }
170
+ /** Read the entire log without truncation — used for diagnostics parsing only. */
171
+ async function readWholeLog(logFile) {
172
+ try {
173
+ return await readFile(logFile, 'utf-8');
174
+ }
175
+ catch {
176
+ return '';
177
+ }
178
+ }
179
+ /**
180
+ * Log excerpt for a failed build that always includes diagnostic lines. A
181
+ * naive head+tail can miss errors when long phase-timing tables precede them,
182
+ * so instead: find every diagnostic line, include a context window around
183
+ * each, always include the trailing summary lines, and cap the number of
184
+ * diagnostic windows shown (MAX_DIAGS) to bound the response size.
185
+ */
186
+ async function readFullLog(logFile, maxLines = 300) {
187
+ const CONTEXT = 3; // lines before/after each diagnostic
188
+ const TAIL_LINES = 30; // always-included trailing lines
189
+ const MAX_DIAGS = 30; // cap on diagnostic windows to bound response size
190
+ try {
191
+ const content = await readFile(logFile, 'utf-8');
192
+ const all = content.split(/\r?\n/);
193
+ if (all.length <= maxLines)
194
+ return content.trim();
195
+ const DIAG_RE = /^(Compile Fatal Error|Compile Error|Compile Warning|Generation Warning|Best Practice Warning):/;
196
+ const diagIndices = [];
197
+ for (let i = 0; i < all.length; i++) {
198
+ if (DIAG_RE.test(all[i].trim()))
199
+ diagIndices.push(i);
200
+ }
201
+ if (diagIndices.length > 0) {
202
+ const totalDiags = diagIndices.length;
203
+ const shownDiags = diagIndices.slice(0, MAX_DIAGS);
204
+ const included = new Set();
205
+ for (const idx of shownDiags) {
206
+ for (let i = Math.max(0, idx - CONTEXT); i <= Math.min(all.length - 1, idx + CONTEXT); i++) {
207
+ included.add(i);
208
+ }
209
+ }
210
+ for (let i = Math.max(0, all.length - TAIL_LINES); i < all.length; i++) {
211
+ included.add(i);
212
+ }
213
+ const sorted = [...included].sort((a, b) => a - b);
214
+ const header = totalDiags > shownDiags.length
215
+ ? `[Phase table omitted — first ${shownDiags.length} of ${totalDiags} diagnostic line(s) with context shown below]\n`
216
+ : `[Phase table omitted — ${totalDiags} diagnostic line(s) with context shown below]\n`;
217
+ const out = [header];
218
+ let prev = -1;
219
+ for (const i of sorted) {
220
+ if (prev !== -1 && i > prev + 1) {
221
+ out.push(`... (${i - prev - 1} lines omitted) ...`);
222
+ }
223
+ out.push(all[i]);
224
+ prev = i;
225
+ }
226
+ return out.join('\n').trim();
227
+ }
228
+ // No diagnostic lines found — fall back to head+tail.
229
+ const half = Math.floor(maxLines / 2);
230
+ return (`[First ${half} lines]\n` +
231
+ all.slice(0, half).join('\n') +
232
+ `\n\n... (${all.length - maxLines} lines omitted) ...\n\n` +
233
+ `[Last ${half} lines]\n` +
234
+ all.slice(-half).join('\n').trim());
235
+ }
236
+ catch {
237
+ return '(log not available)';
238
+ }
239
+ }
240
+ async function getModelFromRnrproj(projectPath) {
241
+ try {
242
+ const content = await readFile(projectPath, 'utf-8');
243
+ const match = content.match(/<Model>\s*([^<]+)\s*<\/Model>/i);
244
+ return match ? match[1].trim() : null;
245
+ }
246
+ catch {
247
+ return null;
248
+ }
249
+ }
250
+ async function findXppcExe(microsoftPackagesPath) {
251
+ const candidates = [];
252
+ if (microsoftPackagesPath) {
253
+ candidates.push(path.join(microsoftPackagesPath, 'bin', 'xppc.exe'));
254
+ }
255
+ // Search AppData for any installed UDE version
256
+ const appDataLocal = process.env.LOCALAPPDATA ||
257
+ path.join(process.env.USERPROFILE || 'C:\\Users\\Default', 'AppData', 'Local');
258
+ const d365Base = path.join(appDataLocal, 'Microsoft', 'Dynamics365');
259
+ try {
260
+ const versions = await readdir(d365Base);
261
+ for (const ver of versions.sort().reverse()) {
262
+ candidates.push(path.join(d365Base, ver, 'PackagesLocalDirectory', 'bin', 'xppc.exe'));
263
+ }
264
+ }
265
+ catch { /* ignore */ }
266
+ // CHE well-known locations
267
+ candidates.push('C:\\AOSService\\PackagesLocalDirectory\\bin\\xppc.exe', 'K:\\AOSService\\PackagesLocalDirectory\\bin\\xppc.exe', 'J:\\AOSService\\PackagesLocalDirectory\\bin\\xppc.exe', 'I:\\AOSService\\PackagesLocalDirectory\\bin\\xppc.exe');
268
+ for (const c of candidates) {
269
+ try {
270
+ await access(c);
271
+ return c;
272
+ }
273
+ catch { /* next */ }
274
+ }
275
+ return null;
276
+ }
277
+ /**
278
+ * Reads <ModuleReferences> from the target model's descriptor, recursively
279
+ * follows custom/ISV dependencies (models present in customPackagesPath), and
280
+ * returns a topologically sorted build order (deepest dep first, target
281
+ * last). Microsoft standard models (only in microsoftPackagesPath) are
282
+ * silently skipped.
283
+ */
284
+ async function resolveBuildQueue(targetModel, customPackagesPath, _microsoftPackagesPath) {
285
+ const visited = new Set();
286
+ const order = [];
287
+ async function visit(modelName) {
288
+ if (visited.has(modelName.toLowerCase()))
289
+ return;
290
+ visited.add(modelName.toLowerCase());
291
+ // Read descriptor
292
+ const descriptorPath = path.join(customPackagesPath, modelName, 'Descriptor', `${modelName}.xml`);
293
+ let content;
294
+ try {
295
+ content = await readFile(descriptorPath, 'utf-8');
296
+ }
297
+ catch {
298
+ // No descriptor — still include this model but can't follow its deps
299
+ order.push(modelName);
300
+ return;
301
+ }
302
+ // Extract all <d2p1:string> entries inside <ModuleReferences>
303
+ const refs = Array.from(content.matchAll(/<d2p1:string>\s*([^<\s]+)\s*<\/d2p1:string>/g))
304
+ .map(m => m[1].trim())
305
+ .filter(Boolean);
306
+ // Visit custom/ISV dependencies first (skip Microsoft standard models)
307
+ for (const ref of refs) {
308
+ if (visited.has(ref.toLowerCase()))
309
+ continue;
310
+ try {
311
+ await access(path.join(customPackagesPath, ref));
312
+ await visit(ref); // Recurse into custom dep
313
+ }
314
+ catch {
315
+ // Not found in customPackagesPath → Microsoft standard → skip
316
+ }
317
+ }
318
+ order.push(modelName); // Post-order DFS = topological sort
319
+ }
320
+ await visit(targetModel);
321
+ return order; // Dependencies first, targetModel last
322
+ }
323
+ async function killOrphanedBuildProcesses() {
324
+ await execFileAsync('taskkill', ['/F', '/IM', 'xppc.exe'], { timeout: 10_000, windowsHide: true })
325
+ .then(({ stdout }) => console.error(`[build_d365fo_project] killed xppc.exe: ${stdout.trim() || '(no output)'}`))
326
+ .catch(() => { });
327
+ }
328
+ /**
329
+ * Spawns xppc.exe for state.modelName, writes the updated state (with real
330
+ * PID) to disk, and wires up close/error handlers. The close handler
331
+ * automatically advances the queue when a dependency finishes successfully.
332
+ * Returns the PID of the spawned process.
333
+ */
334
+ async function spawnXppcForState(ctx, state) {
335
+ const { xppcExe, customPackagesPath, microsoftPackagesPath, extraReferenceFolders } = ctx;
336
+ const { modelName, fullBuild, targetModel } = state;
337
+ // fullBuild only applies to the TARGET model — dependencies always run
338
+ // incremental. They are already compiled; a full rebuild of every dep in
339
+ // the chain would be very slow and is only needed when a dep itself has
340
+ // stale symbols, which the user can fix by building that model directly.
341
+ const useFullBuild = fullBuild && modelName === targetModel;
342
+ assertSafePath(xppcExe, 'xppc.exe path');
343
+ assertSafePath(modelName, 'Model name');
344
+ assertSafePath(customPackagesPath, 'Custom packages path');
345
+ assertSafePath(microsoftPackagesPath, 'Microsoft packages path');
346
+ const outputPath = path.join(customPackagesPath, modelName, 'bin');
347
+ const xppcErrLog = state.logFile.replace('.log', '.xppc.err');
348
+ await unlink(xppcErrLog).catch(() => { });
349
+ // Deduplicate reference folders
350
+ const seenRefFolders = new Set();
351
+ const referenceFolderArgs = [];
352
+ for (const folder of [microsoftPackagesPath, customPackagesPath, ...extraReferenceFolders]) {
353
+ const norm = folder.toLowerCase();
354
+ if (!seenRefFolders.has(norm)) {
355
+ seenRefFolders.add(norm);
356
+ referenceFolderArgs.push(`-referenceFolder=${folder}`);
357
+ }
358
+ }
359
+ const xppcArgs = [
360
+ `-metadata=${customPackagesPath}`,
361
+ `-compilermetadata=${microsoftPackagesPath}`,
362
+ `-modelmodule=${modelName}`,
363
+ ...referenceFolderArgs,
364
+ `-output=${outputPath}`,
365
+ // Full build = omit -incremental (xppc recompiles all elements).
366
+ // Only applied to the target model — deps always run incremental.
367
+ ...(useFullBuild ? [] : ['-incremental']),
368
+ `-log=${xppcErrLog}`,
369
+ // -verbose surfaces metadata loading errors (XML failures, missing refs)
370
+ // that are otherwise silently swallowed in non-VS standalone mode.
371
+ '-verbose',
372
+ ];
373
+ await buildLog('INFO', `xppc.exe args: ${xppcArgs.join(' ')}`);
374
+ const logFd = openSyncFs(state.logFile, 'w');
375
+ const child = spawn(xppcExe, xppcArgs, {
376
+ detached: false,
377
+ windowsHide: true,
378
+ stdio: ['ignore', logFd, logFd],
379
+ });
380
+ child.unref();
381
+ const pid = child.pid;
382
+ // Write state with actual PID immediately so polls see it
383
+ const liveState = { ...state, pid };
384
+ await writeBuildState(liveState, customPackagesPath);
385
+ await buildLog('INFO', `xppc.exe launched — PID: ${pid} | model: ${modelName} | log: ${state.logFile}`);
386
+ child.on('error', async (err) => {
387
+ closeSyncFs(logFd);
388
+ const failed = { ...liveState, status: 'failed', exitCode: -1, endTime: new Date().toISOString() };
389
+ await writeBuildState(failed, customPackagesPath).catch(() => { });
390
+ await buildLog('ERROR', `xppc.exe spawn error — PID: ${pid}: ${err.message}`);
391
+ });
392
+ child.on('close', async (code) => {
393
+ closeSyncFs(logFd);
394
+ const exitCode = code ?? -1;
395
+ // Read the -log file (authoritative source of X++ compiler errors)
396
+ let xppcErrContent = '';
397
+ try {
398
+ xppcErrContent = await readFile(xppcErrLog, 'utf-8');
399
+ }
400
+ catch { /* no -log file = no diagnostics */ }
401
+ const hasCompileErrors = XPPC_COMPILE_ERROR_RE.test(xppcErrContent);
402
+ const hasStaleSymbol = XPPC_STALE_SYMBOL_RE.test(xppcErrContent);
403
+ // xppc can exit 0 while still emitting Compile Error lines, so success
404
+ // requires both exit 0 AND no Compile Error lines in the -log.
405
+ const succeeded = exitCode === 0 && !hasCompileErrors;
406
+ // Append compiler diagnostics to the main log so a single tail read finds everything
407
+ if (xppcErrContent.trim()) {
408
+ let diagnostics = '\n--- xppc compiler diagnostics ---\n' + xppcErrContent + '\n';
409
+ if (hasStaleSymbol) {
410
+ diagnostics +=
411
+ '\n💡 STALE SYMBOL DETECTED: Call build_d365fo_project with fullBuild: true\n' +
412
+ ' to recompile all symbols from scratch.\n';
413
+ }
414
+ await appendFile(state.logFile, diagnostics, 'utf-8').catch(() => { });
415
+ }
416
+ else if (!succeeded) {
417
+ // No diagnostics at all — the failure happened before the compiler ran
418
+ await appendFile(state.logFile, '\n⚠️ No compiler diagnostics from xppc — build failed before compilation started.\n' +
419
+ ' Possible causes: missing metadata path, missing referenced model, or a\n' +
420
+ ' malformed XML file that slipped past pre-validation (e.g. in the Descriptor).\n', 'utf-8').catch(() => { });
421
+ }
422
+ const duration = Math.round((Date.now() - new Date(liveState.startTime).getTime()) / 1000);
423
+ const newResult = {
424
+ modelName,
425
+ status: succeeded ? 'succeeded' : 'failed',
426
+ duration,
427
+ logFile: state.logFile,
428
+ };
429
+ const allResults = [...(liveState.queueResults ?? []), newResult];
430
+ if (!succeeded) {
431
+ // Failure — stop the queue and finalise
432
+ const final = {
433
+ ...liveState,
434
+ status: 'failed',
435
+ exitCode,
436
+ endTime: new Date().toISOString(),
437
+ queueResults: allResults,
438
+ };
439
+ await writeBuildState(final, customPackagesPath).catch(() => { });
440
+ await buildLog('ERROR', `xppc.exe FAILED — PID: ${pid} | model: ${modelName} | exit: ${exitCode} | compileErrors: ${hasCompileErrors}`);
441
+ return;
442
+ }
443
+ // Success — advance queue if there are more models
444
+ if (liveState.buildQueue &&
445
+ liveState.queueIndex !== undefined &&
446
+ liveState.queueIndex + 1 < liveState.buildQueue.length) {
447
+ const nextIdx = liveState.queueIndex + 1;
448
+ const nextModel = liveState.buildQueue[nextIdx];
449
+ const nextLog = logFilePath(liveState.targetModel, nextIdx, customPackagesPath);
450
+ const nextState = {
451
+ ...liveState,
452
+ pid: 0, // will be updated by the recursive spawnXppcForState call
453
+ modelName: nextModel,
454
+ queueIndex: nextIdx,
455
+ queueResults: allResults,
456
+ logFile: nextLog,
457
+ status: 'running',
458
+ startTime: new Date().toISOString(),
459
+ exitCode: undefined,
460
+ endTime: undefined,
461
+ };
462
+ await writeBuildState(nextState, customPackagesPath);
463
+ await buildLog('INFO', `Queue advancing: ${nextIdx + 1}/${liveState.buildQueue.length} — ${nextModel}`);
464
+ spawnXppcForState(ctx, nextState).catch(async (err) => {
465
+ await buildLog('ERROR', `Failed to spawn next model ${nextModel}: ${err.message}`);
466
+ const errState = {
467
+ ...nextState,
468
+ status: 'failed',
469
+ exitCode: -1,
470
+ endTime: new Date().toISOString(),
471
+ queueResults: [...allResults, { modelName: nextModel, status: 'failed', duration: 0, logFile: nextLog }],
472
+ };
473
+ await writeBuildState(errState, customPackagesPath).catch(() => { });
474
+ });
475
+ return;
476
+ }
477
+ // xppc produces the compiled .netmodule but does not update the binary .md
478
+ // manifests the AOS uses to resolve class names at runtime — regenerate them
479
+ // here, otherwise newly added classes stay invisible to D365 after deployment.
480
+ const metaResult = await generateRuntimeMetadata(microsoftPackagesPath, customPackagesPath, liveState.targetModel);
481
+ if (metaResult.skipped) {
482
+ await buildLog('WARN', `Runtime metadata regeneration skipped: ${metaResult.message}`);
483
+ }
484
+ else if (metaResult.success) {
485
+ await buildLog('INFO', `Runtime metadata regenerated: ${metaResult.message}`);
486
+ await appendFile(state.logFile, `\n✅ Runtime metadata (.md) regenerated for ${liveState.targetModel}\n`, 'utf-8').catch(() => { });
487
+ }
488
+ else {
489
+ await buildLog('WARN', `Runtime metadata regeneration failed (build still succeeded): ${metaResult.message}`);
490
+ await appendFile(state.logFile, `\n⚠️ Runtime metadata (.md) regeneration failed — VS build required for deployment of new classes:\n${metaResult.message}\n`, 'utf-8').catch(() => { });
491
+ }
492
+ // All models built — finalise as succeeded
493
+ const final = {
494
+ ...liveState,
495
+ status: 'succeeded',
496
+ exitCode,
497
+ endTime: new Date().toISOString(),
498
+ queueResults: allResults,
499
+ };
500
+ await writeBuildState(final, customPackagesPath).catch(() => { });
501
+ await buildLog('INFO', `xppc.exe SUCCEEDED — PID: ${pid} | model: ${modelName} | ${duration}s`);
502
+ });
503
+ return pid;
504
+ }
505
+ // ---------------------------------------------------------------------------
506
+ // Tool definition
507
+ // ---------------------------------------------------------------------------
508
+ // Tool registration (name, description, inputSchema) lives inline in
509
+ // src/server/mcpServer.ts - the single source of truth for tool instructions.
510
+ // ---------------------------------------------------------------------------
511
+ // Render the final result of a finished build (succeeded or failed) as the
512
+ // MCP response payload. Shared between the "existing finished state" branch
513
+ // and the wait-for-completion branch so both code paths produce identical
514
+ // output. Caller is responsible for calling clearBuildState() afterwards
515
+ // when appropriate.
516
+ // ---------------------------------------------------------------------------
517
+ async function renderFinishedBuildResult(finalState, targetModel) {
518
+ const succeeded = finalState.status === 'succeeded';
519
+ const isQueued = !!(finalState.buildQueue && finalState.buildQueue.length > 1);
520
+ const allResults = finalState.queueResults ?? [];
521
+ if (isQueued) {
522
+ const totalDuration = allResults.reduce((sum, r) => sum + r.duration, 0);
523
+ const statusIcon = succeeded ? '✅ Build complete' : '❌ Build failed';
524
+ const modelLines = allResults
525
+ .map(r => ` ${r.status === 'succeeded' ? '✅' : '❌'} ${r.modelName}: ${r.duration}s`)
526
+ .join('\n');
527
+ const relevantResult = succeeded
528
+ ? allResults[allResults.length - 1]
529
+ : allResults.find(r => r.status === 'failed');
530
+ const relevantLogFile = relevantResult?.logFile ?? finalState.logFile;
531
+ const logContent = succeeded
532
+ ? await readLogTail(relevantLogFile)
533
+ : await readFullLog(relevantLogFile);
534
+ const structured = succeeded
535
+ ? ''
536
+ : formatStructuredDiagnostics(parseXppcDiagnostics(await readWholeLog(relevantLogFile)));
537
+ return {
538
+ content: [{
539
+ type: 'text',
540
+ text: `${statusIcon} — ${allResults.length} models, ${totalDuration}s total\n\n${modelLines}\n\n` +
541
+ (structured ? `${structured}\n\n` : '') +
542
+ `--- Log (${relevantResult?.modelName ?? targetModel}) ---\n${logContent}`,
543
+ }],
544
+ ...(succeeded ? {} : { isError: true }),
545
+ };
546
+ }
547
+ const logTail = await readLogTail(finalState.logFile);
548
+ const logContent = succeeded ? logTail : await readFullLog(finalState.logFile);
549
+ const hasWarnings = succeeded && /^(Generation Warning|Compile Warning):/m.test(logTail);
550
+ const statusIcon = !succeeded ? '❌ Build FAILED' : hasWarnings ? '⚠️ Build succeeded with warnings' : '✅ Build succeeded';
551
+ const buildMode = finalState.fullBuild ? 'full build (target), incremental (deps)' : 'incremental';
552
+ const duration = finalState.endTime
553
+ ? Math.round((new Date(finalState.endTime).getTime() - new Date(finalState.startTime).getTime()) / 1000)
554
+ : '?';
555
+ const structured = succeeded
556
+ ? ''
557
+ : formatStructuredDiagnostics(parseXppcDiagnostics(await readWholeLog(finalState.logFile)));
558
+ return {
559
+ content: [{
560
+ type: 'text',
561
+ text: `${statusIcon} (${finalState.tool}, ${buildMode}, ${duration}s)\n\nModel: ${targetModel}\n\n` +
562
+ (structured ? `${structured}\n\n--- Raw log ---\n` : '') +
563
+ `${logContent || '(no output)'}`,
564
+ }],
565
+ ...((!succeeded) ? { isError: true } : {}),
566
+ };
567
+ }
568
+ // ---------------------------------------------------------------------------
569
+ // Block until the build for `targetModel` reaches a non-running state, the
570
+ // tracked process is no longer alive, or `timeoutMs` elapses. Returns the
571
+ // final state when finished, or null when the timeout was hit.
572
+ // ---------------------------------------------------------------------------
573
+ async function waitForBuildCompletion(targetModel, customPackagesPath, timeoutMs) {
574
+ const deadline = Date.now() + timeoutMs;
575
+ // Poll roughly every second; xppc builds typically take many seconds to
576
+ // many minutes, so a 1 s cadence is fine and keeps responsiveness high.
577
+ const pollIntervalMs = 1000;
578
+ let lastState = null;
579
+ while (Date.now() < deadline) {
580
+ const state = await readBuildState(targetModel, customPackagesPath);
581
+ if (state) {
582
+ lastState = state;
583
+ if (state.status !== 'running')
584
+ return state;
585
+ // Process disappeared without writing a final state — give the close
586
+ // handler up to ~2 s to settle, then return whatever we have so the
587
+ // caller can surface a sensible "exited unexpectedly" message.
588
+ if (state.pid && !isProcessAlive(state.pid)) {
589
+ for (let i = 0; i < 4; i++) {
590
+ await new Promise(r => setTimeout(r, 500));
591
+ const refreshed = await readBuildState(targetModel, customPackagesPath);
592
+ if (refreshed && refreshed.status !== 'running')
593
+ return refreshed;
594
+ }
595
+ return state;
596
+ }
597
+ }
598
+ await new Promise(r => setTimeout(r, pollIntervalMs));
599
+ }
600
+ // Timed out — return null so the caller emits a "still running" snapshot.
601
+ return lastState && lastState.status !== 'running' ? lastState : null;
602
+ }
603
+ // ---------------------------------------------------------------------------
604
+ // Tool handler
605
+ // ---------------------------------------------------------------------------
606
+ export const buildProjectTool = async (params, _context) => {
607
+ try {
608
+ const force = params.force === true;
609
+ const fullBuild = params.fullBuild === true;
610
+ const buildReferencedModels = params.buildReferencedModels === true;
611
+ const configManager = getConfigManager();
612
+ await configManager.ensureLoaded();
613
+ // ------------------------------------------------------------------
614
+ // Resolve D365FO package paths
615
+ // Supports UDE (Unified Developer Experience) and CHE (Cloud-Hosted Env).
616
+ // ------------------------------------------------------------------
617
+ let customPackagesPath = null;
618
+ let microsoftPackagesPath = null;
619
+ let extraReferenceFolders = [];
620
+ // Priority 1: XPP config (UDE) — authoritative source for all paths
621
+ const xppConfig = await configManager.getActiveXppConfig();
622
+ if (xppConfig) {
623
+ customPackagesPath = xppConfig.customPackagesPath;
624
+ microsoftPackagesPath = xppConfig.microsoftPackagesPath;
625
+ extraReferenceFolders = xppConfig.referencePackagesPaths ?? [];
626
+ }
627
+ // Priority 2: configManager explicit methods (.mcp.json overrides)
628
+ if (!customPackagesPath)
629
+ customPackagesPath = await configManager.getCustomPackagesPath();
630
+ if (!microsoftPackagesPath)
631
+ microsoftPackagesPath = await configManager.getMicrosoftPackagesPath() ?? configManager.getPackagePath();
632
+ // Priority 3: CHE fallback — probe well-known PackagesLocalDirectory locations
633
+ if (!microsoftPackagesPath) {
634
+ for (const candidate of [
635
+ 'C:\\AOSService\\PackagesLocalDirectory',
636
+ 'K:\\AOSService\\PackagesLocalDirectory',
637
+ 'J:\\AOSService\\PackagesLocalDirectory',
638
+ 'I:\\AOSService\\PackagesLocalDirectory',
639
+ ]) {
640
+ try {
641
+ await access(candidate);
642
+ microsoftPackagesPath = candidate;
643
+ break;
644
+ }
645
+ catch { /* next */ }
646
+ }
647
+ }
648
+ // In CHE, custom and Microsoft packages share the same PackagesLocalDirectory
649
+ if (!customPackagesPath && microsoftPackagesPath)
650
+ customPackagesPath = microsoftPackagesPath;
651
+ if (!customPackagesPath || !microsoftPackagesPath) {
652
+ return {
653
+ content: [{
654
+ type: 'text',
655
+ text: [
656
+ `❌ Cannot resolve D365FO package paths.`,
657
+ ``,
658
+ `Custom packages path: ${customPackagesPath ?? '(not found)'}`,
659
+ `Microsoft packages path: ${microsoftPackagesPath ?? '(not found)'}`,
660
+ ``,
661
+ `For UDE: ensure an XPP config is present at %LOCALAPPDATA%\\Microsoft\\Dynamics365\\XPPConfig\\`,
662
+ `For CHE: ensure PackagesLocalDirectory exists at C:\\AOSService\\PackagesLocalDirectory (or K:\\, J:\\, I:\\)`,
663
+ ].join('\n'),
664
+ }],
665
+ isError: true,
666
+ };
667
+ }
668
+ // ------------------------------------------------------------------
669
+ // Resolve model name
670
+ // ------------------------------------------------------------------
671
+ let modelName = params.modelName || configManager.getModelName();
672
+ if (!modelName && params.projectPath) {
673
+ modelName = await getModelFromRnrproj(params.projectPath);
674
+ }
675
+ if (!modelName) {
676
+ return {
677
+ content: [{
678
+ type: 'text',
679
+ text: [
680
+ `❌ Cannot determine model name.`,
681
+ ``,
682
+ `Provide modelName parameter, or configure it in .mcp.json / D365FO_MODEL_NAME env var.`,
683
+ ].join('\n'),
684
+ }],
685
+ isError: true,
686
+ };
687
+ }
688
+ const targetModel = modelName;
689
+ // ------------------------------------------------------------------
690
+ // Check for an existing background build (keyed by targetModel)
691
+ // ------------------------------------------------------------------
692
+ const existingState = await readBuildState(targetModel, customPackagesPath);
693
+ if (existingState && !force) {
694
+ // If the caller requests a DIFFERENT build mode than what's cached (e.g. incremental → fullBuild),
695
+ // and the build is not currently running, discard the stale cached state and fall through
696
+ // to start a fresh build with the requested mode.
697
+ const buildModeChanged = existingState.status !== 'running' && fullBuild && !existingState.fullBuild;
698
+ if (buildModeChanged) {
699
+ await clearBuildState(targetModel, customPackagesPath);
700
+ // intentional fall-through to "start new build" below
701
+ }
702
+ else {
703
+ const alive = isProcessAlive(existingState.pid);
704
+ const logTail = await readLogTail(existingState.logFile);
705
+ if (existingState.status === 'running' && alive) {
706
+ const elapsed = Math.round((Date.now() - new Date(existingState.startTime).getTime()) / 1000);
707
+ const isQueued = !!(existingState.buildQueue && existingState.buildQueue.length > 1);
708
+ const queueProgress = isQueued
709
+ ? `Building ${(existingState.queueIndex ?? 0) + 1}/${existingState.buildQueue.length}: ${existingState.modelName}`
710
+ : `Model: ${existingState.modelName}`;
711
+ const completedLine = (existingState.queueResults ?? []).length > 0
712
+ ? '\nCompleted: ' + existingState.queueResults
713
+ .map(r => `${r.status === 'succeeded' ? '✅' : '❌'} ${r.modelName} (${r.duration}s)`)
714
+ .join(', ')
715
+ : '';
716
+ // When wait:true (default) and a build is already running for this
717
+ // model, attach to it and block until completion instead of returning
718
+ // a snapshot — this matches the "single call per build" contract.
719
+ const waitForFinish = params.wait !== false;
720
+ if (waitForFinish) {
721
+ const timeoutMs = (typeof params.waitTimeoutMs === 'number' && params.waitTimeoutMs > 0)
722
+ ? params.waitTimeoutMs
723
+ : 30 * 60 * 1000;
724
+ const finalState = await waitForBuildCompletion(targetModel, customPackagesPath, timeoutMs);
725
+ if (finalState && finalState.status !== 'running') {
726
+ await clearBuildState(targetModel, customPackagesPath);
727
+ return await renderFinishedBuildResult(finalState, targetModel);
728
+ }
729
+ // Timed out — emit a "still running" snapshot so the caller can choose
730
+ // to extend the wait window with another call.
731
+ const tailLog = await readLogTail(existingState.logFile);
732
+ return {
733
+ content: [{
734
+ type: 'text',
735
+ text: `⏳ ${queueProgress} (PID: ${existingState.pid}, running ${elapsed}s; wait timeout reached)${completedLine}\n\n` +
736
+ `Build continues in background. Call again to collect the final result, ` +
737
+ `or pass waitTimeoutMs to extend the wait window.\n\n` +
738
+ `--- Latest log ---\n${tailLog}`,
739
+ }],
740
+ };
741
+ }
742
+ return {
743
+ content: [{
744
+ type: 'text',
745
+ text: `⏳ ${queueProgress} (PID: ${existingState.pid}, running ${elapsed}s)${completedLine}\n\nCall again to refresh.\n\n--- Latest log ---\n${logTail}`,
746
+ }],
747
+ };
748
+ }
749
+ if (existingState.status === 'running' && !alive) {
750
+ // Process has exited but the async close handler may still be writing the final state.
751
+ // Wait up to 2 s for it to settle.
752
+ let finalState = existingState;
753
+ for (let i = 0; i < 4; i++) {
754
+ await new Promise(resolve => setTimeout(resolve, 500));
755
+ const refreshed = await readBuildState(targetModel, customPackagesPath);
756
+ if (refreshed && refreshed.status !== 'running') {
757
+ finalState = refreshed;
758
+ break;
759
+ }
760
+ }
761
+ if (finalState.status !== 'running') {
762
+ existingState.status = finalState.status;
763
+ existingState.exitCode = finalState.exitCode;
764
+ existingState.endTime = finalState.endTime;
765
+ existingState.queueResults = finalState.queueResults;
766
+ }
767
+ else {
768
+ await clearBuildState(targetModel, customPackagesPath);
769
+ return {
770
+ content: [{
771
+ type: 'text',
772
+ text: `❌ Build process (PID: ${existingState.pid}) exited unexpectedly without reporting a result.\n\nModel: ${targetModel}\n\n--- Log ---\n${logTail}`,
773
+ }],
774
+ isError: true,
775
+ };
776
+ }
777
+ }
778
+ // Build finished — return result and clear state
779
+ await clearBuildState(targetModel, customPackagesPath);
780
+ return await renderFinishedBuildResult(existingState, targetModel);
781
+ } // end else (buildModeChanged)
782
+ }
783
+ // ------------------------------------------------------------------
784
+ // force=true: kill existing processes and clear state
785
+ // ------------------------------------------------------------------
786
+ if (force) {
787
+ await buildLog('WARN', `force=true — killing orphaned build processes for model: ${targetModel}`);
788
+ if (existingState?.pid) {
789
+ try {
790
+ process.kill(existingState.pid, 'SIGTERM');
791
+ }
792
+ catch { /* already gone */ }
793
+ }
794
+ await killOrphanedBuildProcesses();
795
+ await clearBuildState(targetModel, customPackagesPath);
796
+ await forceReleaseLock(`build:${targetModel}`);
797
+ }
798
+ // ------------------------------------------------------------------
799
+ // Find xppc.exe
800
+ // ------------------------------------------------------------------
801
+ const xppcExe = await findXppcExe(microsoftPackagesPath);
802
+ if (!xppcExe) {
803
+ return {
804
+ content: [{
805
+ type: 'text',
806
+ text: `❌ Cannot find xppc.exe.\n\nLooked in: ${microsoftPackagesPath}\\bin\\xppc.exe\n\nEnsure the D365FO UDE tools are installed.`,
807
+ }],
808
+ isError: true,
809
+ };
810
+ }
811
+ // ------------------------------------------------------------------
812
+ // Resolve build queue
813
+ // ------------------------------------------------------------------
814
+ let buildQueue;
815
+ if (buildReferencedModels) {
816
+ buildQueue = await resolveBuildQueue(targetModel, customPackagesPath, microsoftPackagesPath);
817
+ await buildLog('INFO', `Build queue (${buildQueue.length}): ${buildQueue.join(' → ')}`);
818
+ }
819
+ else {
820
+ buildQueue = [targetModel];
821
+ }
822
+ const firstModel = buildQueue[0];
823
+ const firstLogFile = logFilePath(targetModel, 0, customPackagesPath);
824
+ // ------------------------------------------------------------------
825
+ // Log build parameters
826
+ // ------------------------------------------------------------------
827
+ await buildLog('INFO', `Starting build — model: ${targetModel} | fullBuild: ${fullBuild} | queue: ${buildQueue.length}`);
828
+ await buildLog('INFO', ` xppc.exe: ${xppcExe}`);
829
+ await buildLog('INFO', ` customPackagesPath: ${customPackagesPath}`);
830
+ await buildLog('INFO', ` microsoftPackagesPath: ${microsoftPackagesPath}`);
831
+ if (extraReferenceFolders.length > 0) {
832
+ await buildLog('INFO', ` extraReferenceFolders: ${extraReferenceFolders.join(', ')}`);
833
+ }
834
+ // ------------------------------------------------------------------
835
+ // Build context (shared across the entire queue)
836
+ // ------------------------------------------------------------------
837
+ const ctx = {
838
+ xppcExe,
839
+ customPackagesPath,
840
+ microsoftPackagesPath,
841
+ extraReferenceFolders,
842
+ };
843
+ // ------------------------------------------------------------------
844
+ // Initial state
845
+ // ------------------------------------------------------------------
846
+ const initState = {
847
+ pid: 0, // updated by spawnXppcForState
848
+ modelName: firstModel,
849
+ targetModel,
850
+ tool: 'xppc.exe',
851
+ startTime: new Date().toISOString(),
852
+ logFile: firstLogFile,
853
+ status: 'running',
854
+ fullBuild,
855
+ buildQueue: buildQueue.length > 1 ? buildQueue : undefined,
856
+ queueIndex: buildQueue.length > 1 ? 0 : undefined,
857
+ queueResults: [],
858
+ };
859
+ await writeBuildState(initState, customPackagesPath);
860
+ const pid = await spawnXppcForState(ctx, initState);
861
+ // ------------------------------------------------------------------
862
+ // Return "build started" message OR wait for completion
863
+ // ------------------------------------------------------------------
864
+ // When deps are included: full build applies only to the target model
865
+ const modeLabel = fullBuild
866
+ ? (buildQueue.length > 1 ? 'Full build (target), incremental (deps)' : 'Full build')
867
+ : 'Incremental build';
868
+ const queueDetail = buildQueue.length > 1
869
+ ? `\n\nBuilding ${buildQueue.length} models in order:\n` +
870
+ buildQueue.map((m, i) => ` ${i + 1}. ${m}${m === targetModel ? ' (target)' : ' (dependency)'}`).join('\n')
871
+ : '';
872
+ // wait defaults to true — single call returns the final result. When the
873
+ // caller passes wait:false explicitly we keep the legacy fire-and-forget
874
+ // behaviour for compatibility with callers that intentionally poll.
875
+ const waitForFinish = params.wait !== false;
876
+ if (waitForFinish) {
877
+ const timeoutMs = (typeof params.waitTimeoutMs === 'number' && params.waitTimeoutMs > 0)
878
+ ? params.waitTimeoutMs
879
+ : 30 * 60 * 1000; // 30 minutes default — covers full builds with referenced models
880
+ const finalState = await waitForBuildCompletion(targetModel, customPackagesPath, timeoutMs);
881
+ if (finalState && finalState.status !== 'running') {
882
+ await clearBuildState(targetModel, customPackagesPath);
883
+ return await renderFinishedBuildResult(finalState, targetModel);
884
+ }
885
+ // Timed out — leave the build running so a follow-up call can collect it.
886
+ const elapsed = Math.round((Date.now() - new Date(initState.startTime).getTime()) / 1000);
887
+ const tailLog = await readLogTail(firstLogFile);
888
+ return {
889
+ content: [{
890
+ type: 'text',
891
+ text: [
892
+ `⏳ ${modeLabel} still running after ${elapsed}s (timeout reached, build continues in background)`,
893
+ ``,
894
+ `Target: ${targetModel}${queueDetail}`,
895
+ `Log: ${firstLogFile}`,
896
+ ``,
897
+ `Call **build_d365fo_project** again to collect the final result. ` +
898
+ `Or pass waitTimeoutMs to extend the wait window in a single call.`,
899
+ ``,
900
+ `--- Latest log ---`,
901
+ tailLog,
902
+ ].join('\n'),
903
+ }],
904
+ };
905
+ }
906
+ // Legacy fire-and-forget mode: return immediately after spawning.
907
+ return {
908
+ content: [{
909
+ type: 'text',
910
+ text: [
911
+ `🔨 ${modeLabel} started (xppc.exe PID: ${pid})`,
912
+ ``,
913
+ `Target: ${targetModel}${queueDetail}`,
914
+ `Log: ${firstLogFile}`,
915
+ ``,
916
+ `Call **build_d365fo_project** again to check status and see output.`,
917
+ ].join('\n'),
918
+ }],
919
+ };
920
+ }
921
+ catch (error) {
922
+ await buildLog('ERROR', `Unhandled error in build_d365fo_project: ${error?.message}`);
923
+ return {
924
+ content: [{ type: 'text', text: `❌ Internal error: ${error?.message ?? String(error)}` }],
925
+ isError: true,
926
+ };
927
+ }
928
+ };
929
+ //# sourceMappingURL=buildProject.js.map