bc-code-intelligence-mcp 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +107 -0
- package/dist/cache/cache-manager.d.ts +95 -0
- package/dist/cache/cache-manager.d.ts.map +1 -0
- package/dist/cache/cache-manager.js +328 -0
- package/dist/cache/cache-manager.js.map +1 -0
- package/dist/cli/bc-code-intel-cli.d.ts +9 -0
- package/dist/cli/bc-code-intel-cli.d.ts.map +1 -0
- package/dist/cli/bc-code-intel-cli.js +441 -0
- package/dist/cli/bc-code-intel-cli.js.map +1 -0
- package/dist/config/config-loader.d.ts +21 -0
- package/dist/config/config-loader.d.ts.map +1 -0
- package/dist/config/config-loader.js +402 -0
- package/dist/config/config-loader.js.map +1 -0
- package/dist/config/config-validator.d.ts +84 -0
- package/dist/config/config-validator.d.ts.map +1 -0
- package/dist/config/config-validator.js +604 -0
- package/dist/config/config-validator.js.map +1 -0
- package/dist/config/test-config-loader.d.ts +10 -0
- package/dist/config/test-config-loader.d.ts.map +1 -0
- package/dist/config/test-config-loader.js +135 -0
- package/dist/config/test-config-loader.js.map +1 -0
- package/dist/config/test-enhanced-layer-service.d.ts +7 -0
- package/dist/config/test-enhanced-layer-service.d.ts.map +1 -0
- package/dist/config/test-enhanced-layer-service.js +104 -0
- package/dist/config/test-enhanced-layer-service.js.map +1 -0
- package/dist/config/test-git-layer.d.ts +7 -0
- package/dist/config/test-git-layer.d.ts.map +1 -0
- package/dist/config/test-git-layer.js +68 -0
- package/dist/config/test-git-layer.js.map +1 -0
- package/dist/dev/hot-reload.d.ts +91 -0
- package/dist/dev/hot-reload.d.ts.map +1 -0
- package/dist/dev/hot-reload.js +358 -0
- package/dist/dev/hot-reload.js.map +1 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +673 -0
- package/dist/index.js.map +1 -0
- package/dist/layers/base-layer.d.ts +83 -0
- package/dist/layers/base-layer.d.ts.map +1 -0
- package/dist/layers/base-layer.js +166 -0
- package/dist/layers/base-layer.js.map +1 -0
- package/dist/layers/embedded-layer.d.ts +53 -0
- package/dist/layers/embedded-layer.d.ts.map +1 -0
- package/dist/layers/embedded-layer.js +238 -0
- package/dist/layers/embedded-layer.js.map +1 -0
- package/dist/layers/git-layer.d.ts +54 -0
- package/dist/layers/git-layer.d.ts.map +1 -0
- package/dist/layers/git-layer.js +369 -0
- package/dist/layers/git-layer.js.map +1 -0
- package/dist/layers/index.d.ts +12 -0
- package/dist/layers/index.d.ts.map +1 -0
- package/dist/layers/index.js +11 -0
- package/dist/layers/index.js.map +1 -0
- package/dist/layers/layer-service.d.ts +129 -0
- package/dist/layers/layer-service.d.ts.map +1 -0
- package/dist/layers/layer-service.js +570 -0
- package/dist/layers/layer-service.js.map +1 -0
- package/dist/layers/project-layer.d.ts +50 -0
- package/dist/layers/project-layer.d.ts.map +1 -0
- package/dist/layers/project-layer.js +256 -0
- package/dist/layers/project-layer.js.map +1 -0
- package/dist/monitoring/production-monitor.d.ts +148 -0
- package/dist/monitoring/production-monitor.d.ts.map +1 -0
- package/dist/monitoring/production-monitor.js +463 -0
- package/dist/monitoring/production-monitor.js.map +1 -0
- package/dist/performance/performance-monitor.d.ts +99 -0
- package/dist/performance/performance-monitor.d.ts.map +1 -0
- package/dist/performance/performance-monitor.js +253 -0
- package/dist/performance/performance-monitor.js.map +1 -0
- package/dist/sdk/bc-code-intel-client.d.ts +175 -0
- package/dist/sdk/bc-code-intel-client.d.ts.map +1 -0
- package/dist/sdk/bc-code-intel-client.js +380 -0
- package/dist/sdk/bc-code-intel-client.js.map +1 -0
- package/dist/search/intelligent-search.d.ts +97 -0
- package/dist/search/intelligent-search.d.ts.map +1 -0
- package/dist/search/intelligent-search.js +355 -0
- package/dist/search/intelligent-search.js.map +1 -0
- package/dist/security/access-control.d.ts +110 -0
- package/dist/security/access-control.d.ts.map +1 -0
- package/dist/security/access-control.js +353 -0
- package/dist/security/access-control.js.map +1 -0
- package/dist/services/code-analysis-service.d.ts +72 -0
- package/dist/services/code-analysis-service.d.ts.map +1 -0
- package/dist/services/code-analysis-service.js +811 -0
- package/dist/services/code-analysis-service.js.map +1 -0
- package/dist/services/knowledge-service.d.ts +91 -0
- package/dist/services/knowledge-service.d.ts.map +1 -0
- package/dist/services/knowledge-service.js +370 -0
- package/dist/services/knowledge-service.js.map +1 -0
- package/dist/services/methodology-service.d.ts +91 -0
- package/dist/services/methodology-service.d.ts.map +1 -0
- package/dist/services/methodology-service.js +408 -0
- package/dist/services/methodology-service.js.map +1 -0
- package/dist/services/workflow-service.d.ts +132 -0
- package/dist/services/workflow-service.d.ts.map +1 -0
- package/dist/services/workflow-service.js +277 -0
- package/dist/services/workflow-service.js.map +1 -0
- package/dist/setup/post-install.d.ts +12 -0
- package/dist/setup/post-install.d.ts.map +1 -0
- package/dist/setup/post-install.js +81 -0
- package/dist/setup/post-install.js.map +1 -0
- package/dist/streamlined-handlers.d.ts +51 -0
- package/dist/streamlined-handlers.d.ts.map +1 -0
- package/dist/streamlined-handlers.js +287 -0
- package/dist/streamlined-handlers.js.map +1 -0
- package/dist/streamlined-tools.d.ts +316 -0
- package/dist/streamlined-tools.d.ts.map +1 -0
- package/dist/streamlined-tools.js +189 -0
- package/dist/streamlined-tools.js.map +1 -0
- package/dist/test-enhanced-mcp-server.d.ts +7 -0
- package/dist/test-enhanced-mcp-server.d.ts.map +1 -0
- package/dist/test-enhanced-mcp-server.js +177 -0
- package/dist/test-enhanced-mcp-server.js.map +1 -0
- package/dist/types/bc-knowledge.d.ts +294 -0
- package/dist/types/bc-knowledge.d.ts.map +1 -0
- package/dist/types/bc-knowledge.js +44 -0
- package/dist/types/bc-knowledge.js.map +1 -0
- package/dist/types/config-types.d.ts +180 -0
- package/dist/types/config-types.d.ts.map +1 -0
- package/dist/types/config-types.js +104 -0
- package/dist/types/config-types.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/layer-types.d.ts +171 -0
- package/dist/types/layer-types.d.ts.map +1 -0
- package/dist/types/layer-types.js +27 -0
- package/dist/types/layer-types.js.map +1 -0
- package/dist/types/persona-types.d.ts +77 -0
- package/dist/types/persona-types.d.ts.map +1 -0
- package/dist/types/persona-types.js +341 -0
- package/dist/types/persona-types.js.map +1 -0
- package/dist/utils/path-utils.d.ts +5 -0
- package/dist/utils/path-utils.d.ts.map +1 -0
- package/dist/utils/path-utils.js +14 -0
- package/dist/utils/path-utils.js.map +1 -0
- package/dist/workflows/domain-workflows.d.ts +8 -0
- package/dist/workflows/domain-workflows.d.ts.map +1 -0
- package/dist/workflows/domain-workflows.js +360 -0
- package/dist/workflows/domain-workflows.js.map +1 -0
- package/embedded-knowledge/.github/ISSUE_TEMPLATE/bug-report.md +24 -0
- package/embedded-knowledge/.github/ISSUE_TEMPLATE/content-improvement.md +24 -0
- package/embedded-knowledge/.github/ISSUE_TEMPLATE/knowledge-request.md +30 -0
- package/embedded-knowledge/AGENTS.md +69 -0
- package/embedded-knowledge/CONTRIBUTING.md +58 -0
- package/embedded-knowledge/LICENSE +21 -0
- package/embedded-knowledge/README.md +15 -0
- package/embedded-knowledge/domains/alex-architect/api-delegate-operation-pattern.md +90 -0
- package/embedded-knowledge/domains/alex-architect/api-fieldset-registration-pattern.md +113 -0
- package/embedded-knowledge/domains/alex-architect/api-interface-design-patterns.md +101 -0
- package/embedded-knowledge/domains/alex-architect/api-page-development-patterns.md +87 -0
- package/embedded-knowledge/domains/alex-architect/complex-facade-patterns.md +155 -0
- package/embedded-knowledge/domains/alex-architect/facade-pattern-al-implementation.md +138 -0
- package/embedded-knowledge/domains/alex-architect/facade-pattern-external-api.md +79 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-delegate-operation.md +280 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-fieldset-registration.md +200 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-interface-design.md +565 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-page-implementation.md +665 -0
- package/embedded-knowledge/domains/alex-architect/samples/complex-facade-patterns.md +325 -0
- package/embedded-knowledge/domains/alex-architect/samples/facade-pattern-al.md +696 -0
- package/embedded-knowledge/domains/alex-architect/samples/facade-pattern.md +320 -0
- package/embedded-knowledge/domains/alex-architect/samples/subscriber-organization.md +102 -0
- package/embedded-knowledge/domains/alex-architect/samples/systemid-integration.md +433 -0
- package/embedded-knowledge/domains/alex-architect/subscriber-codeunit-size-optimization.md +66 -0
- package/embedded-knowledge/domains/alex-architect/systemid-integration.md +115 -0
- package/embedded-knowledge/domains/dean-debug/bc24-no-series-conversion-guide.md +295 -0
- package/embedded-knowledge/domains/dean-debug/case-statement-performance-best-practices.md +86 -0
- package/embedded-knowledge/domains/dean-debug/compound-statements-debugging.md +96 -0
- package/embedded-knowledge/domains/dean-debug/custom-dimensions-best-practices.md +70 -0
- package/embedded-knowledge/domains/dean-debug/custom-telemetry-implementation.md +84 -0
- package/embedded-knowledge/domains/dean-debug/deleteall-performance-tradeoff.md +93 -0
- package/embedded-knowledge/domains/dean-debug/deleteall-sql-performance.md +73 -0
- package/embedded-knowledge/domains/dean-debug/extension-telemetry-isolation.md +78 -0
- package/embedded-knowledge/domains/dean-debug/maintainsiftindex-property-behavior.md +79 -0
- package/embedded-knowledge/domains/dean-debug/no-series-implementation-patterns.md +87 -0
- package/embedded-knowledge/domains/dean-debug/no-series-module-patterns-bc24.md +209 -0
- package/embedded-knowledge/domains/dean-debug/no-series-validation-module-bc24.md +246 -0
- package/embedded-knowledge/domains/dean-debug/no-series-validation-patterns.md +107 -0
- package/embedded-knowledge/domains/dean-debug/odata-query-optimization.md +105 -0
- package/embedded-knowledge/domains/dean-debug/samples/bc24-no-series-conversion.md +186 -0
- package/embedded-knowledge/domains/dean-debug/samples/case-performance-optimization.md +60 -0
- package/embedded-knowledge/domains/dean-debug/samples/compound-statements-debugging.md +139 -0
- package/embedded-knowledge/domains/dean-debug/samples/custom-dimensions.md +190 -0
- package/embedded-knowledge/domains/dean-debug/samples/custom-telemetry.md +516 -0
- package/embedded-knowledge/domains/dean-debug/samples/deleteall-performance.md +298 -0
- package/embedded-knowledge/domains/dean-debug/samples/error-correlation.md +324 -0
- package/embedded-knowledge/domains/dean-debug/samples/extension-isolation.md +344 -0
- package/embedded-knowledge/domains/dean-debug/samples/logmessage-methods.md +137 -0
- package/embedded-knowledge/domains/dean-debug/samples/maintainsiftindex-examples.md +340 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-implementation.md +810 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-module-bc24.md +86 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-validation-module-bc24.md +110 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-validation.md +758 -0
- package/embedded-knowledge/domains/dean-debug/samples/odata-query-optimization.md +665 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-case.md +316 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-filters.md +223 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-filter-exclusion.md +149 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-optimization.md +412 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-performance.md +211 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-primary-key.md +155 -0
- package/embedded-knowledge/domains/dean-debug/samples/sift-technology-fundamentals.md +475 -0
- package/embedded-knowledge/domains/dean-debug/samples/singleinstance-subscribers.md +238 -0
- package/embedded-knowledge/domains/dean-debug/samples/table-event-batching.md +97 -0
- package/embedded-knowledge/domains/dean-debug/samples/table-key-requirements.md +666 -0
- package/embedded-knowledge/domains/dean-debug/samples/telemetry-performance.md +319 -0
- package/embedded-knowledge/domains/dean-debug/samples/verbosity-strategy.md +236 -0
- package/embedded-knowledge/domains/dean-debug/session-logmessage-methods.md +59 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-filter-field-exclusion.md +67 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-performance-impact.md +70 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-performance-optimization.md +90 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-case-statements.md +87 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-filters.md +70 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-primary-key-optimization.md +74 -0
- package/embedded-knowledge/domains/dean-debug/sift-technology-fundamentals.md +81 -0
- package/embedded-knowledge/domains/dean-debug/subscriber-singleinstance-performance.md +56 -0
- package/embedded-knowledge/domains/dean-debug/table-event-batch-operation-impact.md +66 -0
- package/embedded-knowledge/domains/dean-debug/table-key-requirements.md +79 -0
- package/embedded-knowledge/domains/dean-debug/telemetry-error-correlation.md +78 -0
- package/embedded-knowledge/domains/dean-debug/telemetry-performance-considerations.md +83 -0
- package/embedded-knowledge/domains/dean-debug/telemetry-verbosity-strategy.md +76 -0
- package/embedded-knowledge/domains/dean-debug/testfield-performance.md +104 -0
- package/embedded-knowledge/domains/eva-errors/fielderror-default-messages.md +145 -0
- package/embedded-knowledge/domains/eva-errors/fielderror-message-construction.md +104 -0
- package/embedded-knowledge/domains/eva-errors/fielderror-method-syntax.md +114 -0
- package/embedded-knowledge/domains/eva-errors/samples/fielderror-default-messages.md +356 -0
- package/embedded-knowledge/domains/eva-errors/samples/fielderror-syntax.md +256 -0
- package/embedded-knowledge/domains/eva-errors/samples/table-safety-validation-patterns.md +101 -0
- package/embedded-knowledge/domains/eva-errors/samples/testfield-error-handling.md +108 -0
- package/embedded-knowledge/domains/eva-errors/testfield-error-handling.md +80 -0
- package/embedded-knowledge/domains/jordan-bridge/al-event-subscriber-architecture.md +98 -0
- package/embedded-knowledge/domains/jordan-bridge/automatic-registration.md +123 -0
- package/embedded-knowledge/domains/jordan-bridge/business-process-template-patterns.md +96 -0
- package/embedded-knowledge/domains/jordan-bridge/error-response-patterns.md +115 -0
- package/embedded-knowledge/domains/jordan-bridge/etag-implementation.md +115 -0
- package/embedded-knowledge/domains/jordan-bridge/field-control-selection.md +114 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/al-event-subscriber-architecture.md +395 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/api-error-responses.md +479 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/api-field-control.md +548 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/api-url-naming.md +287 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/business-process-templates.md +434 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/etag-implementation.md +508 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/task-scheduler-pattern.md +615 -0
- package/embedded-knowledge/domains/jordan-bridge/task-scheduler-pattern-implementation.md +144 -0
- package/embedded-knowledge/domains/jordan-bridge/url-structure-naming-patterns.md +96 -0
- package/embedded-knowledge/domains/maya-mentor/case-multiple-conditions-ranges.md +124 -0
- package/embedded-knowledge/domains/maya-mentor/case-statement-syntax-structure.md +84 -0
- package/embedded-knowledge/domains/maya-mentor/fielderror-syntax-usage.md +75 -0
- package/embedded-knowledge/domains/maya-mentor/fielderror-vs-testfield.md +96 -0
- package/embedded-knowledge/domains/maya-mentor/samples/case-statement-multiple-conditions.md +385 -0
- package/embedded-knowledge/domains/maya-mentor/samples/case-statement-syntax-structure.md +72 -0
- package/embedded-knowledge/domains/maya-mentor/samples/fielderror-syntax-usage.md +48 -0
- package/embedded-knowledge/domains/maya-mentor/samples/testfield-basic-syntax.md +49 -0
- package/embedded-knowledge/domains/maya-mentor/testfield-basic-syntax.md +67 -0
- package/embedded-knowledge/domains/quinn-tester/fielderror-validation-patterns.md +119 -0
- package/embedded-knowledge/domains/quinn-tester/rule-execution.md +123 -0
- package/embedded-knowledge/domains/quinn-tester/samples/case-error-handling.md +64 -0
- package/embedded-knowledge/domains/quinn-tester/samples/fielderror-message-construction.md +60 -0
- package/embedded-knowledge/domains/quinn-tester/samples/fielderror-validation-patterns.md +83 -0
- package/embedded-knowledge/domains/quinn-tester/samples/rule-execution.md +716 -0
- package/embedded-knowledge/domains/quinn-tester/samples/table-safety-validation-patterns.md +101 -0
- package/embedded-knowledge/domains/quinn-tester/samples/temporary-table-operation-validation.md +91 -0
- package/embedded-knowledge/domains/quinn-tester/table-safety-validation-patterns.md +79 -0
- package/embedded-knowledge/domains/quinn-tester/temporary-table-operation-validation.md +79 -0
- package/embedded-knowledge/domains/roger-reviewer/al-begin-end-block-structure.md +89 -0
- package/embedded-knowledge/domains/roger-reviewer/al-binary-operator-spacing.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-blank-line-organization.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-case-action-formatting.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-code-spacing-conventions.md +81 -0
- package/embedded-knowledge/domains/roger-reviewer/al-comment-spacing-standards.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-end-else-pairing.md +75 -0
- package/embedded-knowledge/domains/roger-reviewer/al-keyword-indentation-rules.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-line-start-keyword-positioning.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-separate-if-else-formatting.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-standard-abbreviations.md +96 -0
- package/embedded-knowledge/domains/roger-reviewer/al-statement-per-line-rule.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-unnecessary-else-elimination.md +86 -0
- package/embedded-knowledge/domains/roger-reviewer/al-variable-declaration-order.md +90 -0
- package/embedded-knowledge/domains/roger-reviewer/al-variable-naming-conventions.md +82 -0
- package/embedded-knowledge/domains/roger-reviewer/begin-block-statement-clarity.md +78 -0
- package/embedded-knowledge/domains/roger-reviewer/begin-end-positioning-patterns.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/binary-operator-line-positioning.md +78 -0
- package/embedded-knowledge/domains/roger-reviewer/boolean-expression-simplification-al.md +100 -0
- package/embedded-knowledge/domains/roger-reviewer/case-statement-error-handling-troubleshooting.md +115 -0
- package/embedded-knowledge/domains/roger-reviewer/compound-statement-readability.md +124 -0
- package/embedded-knowledge/domains/roger-reviewer/lonely-repeat-statement-pattern.md +110 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-begin-end-blocks.md +438 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-binary-operator-spacing.md +255 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-comment-spacing-standards.md +209 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-keyword-indentation-rules.md +218 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-line-start-keyword-positioning.md +218 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-separate-if-else-formatting.md +280 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-statement-per-line-rule.md +188 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-unnecessary-else-elimination.md +245 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-variable-declaration-order.md +244 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/begin-end-positioning.md +278 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/boolean-simplification-examples.md +484 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/case-error-handling.md +64 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/compound-statement-readability.md +107 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/lonely-repeat-examples.md +280 -0
- package/embedded-knowledge/domains/sam-coder/al-formatting-consistency-patterns.md +75 -0
- package/embedded-knowledge/domains/sam-coder/al-line-comment-formatting.md +67 -0
- package/embedded-knowledge/domains/sam-coder/al-lonely-repeat-pattern.md +76 -0
- package/embedded-knowledge/domains/sam-coder/al-named-parameter-pattern.md +98 -0
- package/embedded-knowledge/domains/sam-coder/al-object-navigation-shortcuts.md +128 -0
- package/embedded-knowledge/domains/sam-coder/al-readability-optimization.md +75 -0
- package/embedded-knowledge/domains/sam-coder/al-record-find-early-exit.md +95 -0
- package/embedded-knowledge/domains/sam-coder/command-queue-pattern-al.md +141 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-alternative-implementation.md +91 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-method-usage.md +118 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-trigger-execution.md +111 -0
- package/embedded-knowledge/domains/sam-coder/event-bridge-pattern-al.md +113 -0
- package/embedded-knowledge/domains/sam-coder/event-payload-design-patterns.md +127 -0
- package/embedded-knowledge/domains/sam-coder/generic-method-patterns-al.md +141 -0
- package/embedded-knowledge/domains/sam-coder/manual-binding-conditional-subscribers.md +66 -0
- package/embedded-knowledge/domains/sam-coder/nested-compound-best-practices.md +96 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-blank-line-organization.md +161 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-case-action-formatting.md +177 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-lonely-repeat-pattern.md +239 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-named-parameter-pattern.md +346 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-record-find-early-exit.md +298 -0
- package/embedded-knowledge/domains/sam-coder/samples/command-queue-pattern.md +677 -0
- package/embedded-knowledge/domains/sam-coder/samples/deleteall-alternative-implementation.md +117 -0
- package/embedded-knowledge/domains/sam-coder/samples/deleteall-triggers.md +75 -0
- package/embedded-knowledge/domains/sam-coder/samples/deleteall-usage.md +169 -0
- package/embedded-knowledge/domains/sam-coder/samples/event-bridge-pattern.md +399 -0
- package/embedded-knowledge/domains/sam-coder/samples/event-payload-design.md +356 -0
- package/embedded-knowledge/domains/sam-coder/samples/generic-method-patterns.md +889 -0
- package/embedded-knowledge/domains/sam-coder/samples/manual-binding.md +84 -0
- package/embedded-knowledge/domains/sam-coder/samples/nested-compound-best-practices.md +127 -0
- package/embedded-knowledge/domains/sam-coder/samples/single-to-compound-conversion.md +89 -0
- package/embedded-knowledge/domains/sam-coder/samples/template-method-pattern.md +516 -0
- package/embedded-knowledge/domains/sam-coder/samples/testfield-patterns.md +61 -0
- package/embedded-knowledge/domains/sam-coder/samples/type-safe-operations.md +427 -0
- package/embedded-knowledge/domains/sam-coder/single-to-compound-conversion.md +122 -0
- package/embedded-knowledge/domains/sam-coder/template-method-pattern-al.md +96 -0
- package/embedded-knowledge/domains/sam-coder/testfield-patterns.md +101 -0
- package/embedded-knowledge/domains/sam-coder/type-safe-operations-al.md +149 -0
- package/embedded-knowledge/domains/sam-coder/vs-code-al-keyboard-shortcuts.md +107 -0
- package/embedded-knowledge/domains/seth-security/al-temporary-table-safety.md +95 -0
- package/embedded-knowledge/domains/seth-security/api-permission-model.md +115 -0
- package/embedded-knowledge/domains/seth-security/istemporary-safeguard-pattern.md +78 -0
- package/embedded-knowledge/domains/seth-security/samples/al-temporary-table-safety.md +373 -0
- package/embedded-knowledge/domains/seth-security/samples/api-permission-model.md +308 -0
- package/embedded-knowledge/domains/taylor-docs/al-xml-documentation-structure.md +79 -0
- package/embedded-knowledge/domains/uma-ux/bc-action-shortcuts-syntax.md +78 -0
- package/embedded-knowledge/domains/uma-ux/shortcut-key-user-experience-design.md +81 -0
- package/embedded-knowledge/indexes/bc-version-matrix.json +188 -0
- package/embedded-knowledge/indexes/domain-catalog.json +106 -0
- package/embedded-knowledge/indexes/tags/abbreviations.json +1 -0
- package/embedded-knowledge/indexes/tags/abstraction.json +1 -0
- package/embedded-knowledge/indexes/tags/access-control.json +1 -0
- package/embedded-knowledge/indexes/tags/accessibility.json +1 -0
- package/embedded-knowledge/indexes/tags/actions.json +1 -0
- package/embedded-knowledge/indexes/tags/advanced-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/advanced.json +1 -0
- package/embedded-knowledge/indexes/tags/al-extension.json +1 -0
- package/embedded-knowledge/indexes/tags/al-generics.json +1 -0
- package/embedded-knowledge/indexes/tags/al-objects.json +1 -0
- package/embedded-knowledge/indexes/tags/al-syntax.json +1 -0
- package/embedded-knowledge/indexes/tags/algorithm-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/alternatives.json +1 -0
- package/embedded-knowledge/indexes/tags/analytics.json +1 -0
- package/embedded-knowledge/indexes/tags/api-delegates.json +1 -0
- package/embedded-knowledge/indexes/tags/api-design.json +1 -0
- package/embedded-knowledge/indexes/tags/api-documentation.json +1 -0
- package/embedded-knowledge/indexes/tags/api-endpoints.json +1 -0
- package/embedded-knowledge/indexes/tags/api-extensibility.json +1 -0
- package/embedded-knowledge/indexes/tags/api-fieldsets.json +1 -0
- package/embedded-knowledge/indexes/tags/api-integration.json +1 -0
- package/embedded-knowledge/indexes/tags/api-interfaces.json +1 -0
- package/embedded-knowledge/indexes/tags/api-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/api-pages.json +1 -0
- package/embedded-knowledge/indexes/tags/api-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/api-permissions.json +1 -0
- package/embedded-knowledge/indexes/tags/api-responses.json +1 -0
- package/embedded-knowledge/indexes/tags/api-simplification.json +1 -0
- package/embedded-knowledge/indexes/tags/api.json +1 -0
- package/embedded-knowledge/indexes/tags/architecture.json +1 -0
- package/embedded-knowledge/indexes/tags/async-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/async-processing.json +1 -0
- package/embedded-knowledge/indexes/tags/automatic-registration.json +1 -0
- package/embedded-knowledge/indexes/tags/batch-operations.json +1 -0
- package/embedded-knowledge/indexes/tags/bc24-migration.json +1 -0
- package/embedded-knowledge/indexes/tags/begin-blocks.json +1 -0
- package/embedded-knowledge/indexes/tags/begin-end.json +1 -0
- package/embedded-knowledge/indexes/tags/behavioral-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/best-practices.json +1 -0
- package/embedded-knowledge/indexes/tags/binding.json +1 -0
- package/embedded-knowledge/indexes/tags/block-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/blocks.json +1 -0
- package/embedded-knowledge/indexes/tags/boolean-expressions.json +1 -0
- package/embedded-knowledge/indexes/tags/branching.json +1 -0
- package/embedded-knowledge/indexes/tags/breaking-changes.json +1 -0
- package/embedded-knowledge/indexes/tags/breakpoints.json +1 -0
- package/embedded-knowledge/indexes/tags/business-foundation.json +1 -0
- package/embedded-knowledge/indexes/tags/business-infrastructure.json +1 -0
- package/embedded-knowledge/indexes/tags/business-process.json +1 -0
- package/embedded-knowledge/indexes/tags/business-rules.json +1 -0
- package/embedded-knowledge/indexes/tags/caching.json +1 -0
- package/embedded-knowledge/indexes/tags/case-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/case.json +1 -0
- package/embedded-knowledge/indexes/tags/code-analysis.json +1 -0
- package/embedded-knowledge/indexes/tags/code-clarity.json +1 -0
- package/embedded-knowledge/indexes/tags/code-comprehension.json +1 -0
- package/embedded-knowledge/indexes/tags/code-conversion.json +1 -0
- package/embedded-knowledge/indexes/tags/code-formatting.json +1 -0
- package/embedded-knowledge/indexes/tags/code-organization.json +1 -0
- package/embedded-knowledge/indexes/tags/code-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/code-quality.json +1 -0
- package/embedded-knowledge/indexes/tags/code-reuse.json +1 -0
- package/embedded-knowledge/indexes/tags/code-simplification.json +1 -0
- package/embedded-knowledge/indexes/tags/code-standards.json +1 -0
- package/embedded-knowledge/indexes/tags/code-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/code-style.json +1 -0
- package/embedded-knowledge/indexes/tags/codeunit-design.json +1 -0
- package/embedded-knowledge/indexes/tags/command-queue.json +1 -0
- package/embedded-knowledge/indexes/tags/comments.json +1 -0
- package/embedded-knowledge/indexes/tags/compile-time-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/complex-facade.json +1 -0
- package/embedded-knowledge/indexes/tags/complexity-hiding.json +1 -0
- package/embedded-knowledge/indexes/tags/complexity-management.json +1 -0
- package/embedded-knowledge/indexes/tags/compound-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/concurrency.json +1 -0
- package/embedded-knowledge/indexes/tags/conditional-logic.json +1 -0
- package/embedded-knowledge/indexes/tags/conditional.json +1 -0
- package/embedded-knowledge/indexes/tags/conflict-resolution.json +1 -0
- package/embedded-knowledge/indexes/tags/consistency.json +1 -0
- package/embedded-knowledge/indexes/tags/contract-design.json +1 -0
- package/embedded-knowledge/indexes/tags/control-flow.json +1 -0
- package/embedded-knowledge/indexes/tags/conversion-guide.json +1 -0
- package/embedded-knowledge/indexes/tags/correlation.json +1 -0
- package/embedded-knowledge/indexes/tags/custom-messages.json +1 -0
- package/embedded-knowledge/indexes/tags/data-access.json +1 -0
- package/embedded-knowledge/indexes/tags/data-exposure.json +1 -0
- package/embedded-knowledge/indexes/tags/data-integrity.json +1 -0
- package/embedded-knowledge/indexes/tags/data-loading.json +1 -0
- package/embedded-knowledge/indexes/tags/data-manipulation.json +1 -0
- package/embedded-knowledge/indexes/tags/data-modeling.json +1 -0
- package/embedded-knowledge/indexes/tags/data-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/data-protection.json +1 -0
- package/embedded-knowledge/indexes/tags/data-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/database.json +1 -0
- package/embedded-knowledge/indexes/tags/debugging.json +1 -0
- package/embedded-knowledge/indexes/tags/decision-making.json +1 -0
- package/embedded-knowledge/indexes/tags/declaration.json +1 -0
- package/embedded-knowledge/indexes/tags/default-messages.json +1 -0
- package/embedded-knowledge/indexes/tags/defensive-programming.json +1 -0
- package/embedded-knowledge/indexes/tags/deleteall.json +1 -0
- package/embedded-knowledge/indexes/tags/dependencies.json +1 -0
- package/embedded-knowledge/indexes/tags/deployment.json +1 -0
- package/embedded-knowledge/indexes/tags/developer-productivity.json +1 -0
- package/embedded-knowledge/indexes/tags/development-workflow.json +1 -0
- package/embedded-knowledge/indexes/tags/diagnostics.json +1 -0
- package/embedded-knowledge/indexes/tags/dimensions.json +1 -0
- package/embedded-knowledge/indexes/tags/documentation.json +1 -0
- package/embedded-knowledge/indexes/tags/early-exit.json +1 -0
- package/embedded-knowledge/indexes/tags/else-clauses.json +1 -0
- package/embedded-knowledge/indexes/tags/end-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/enterprise-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/entity-relationships.json +1 -0
- package/embedded-knowledge/indexes/tags/error-handling.json +1 -0
- package/embedded-knowledge/indexes/tags/error-messages.json +1 -0
- package/embedded-knowledge/indexes/tags/error-prevention.json +1 -0
- package/embedded-knowledge/indexes/tags/error-text.json +1 -0
- package/embedded-knowledge/indexes/tags/etag.json +1 -0
- package/embedded-knowledge/indexes/tags/event-bridge.json +1 -0
- package/embedded-knowledge/indexes/tags/event-payload.json +1 -0
- package/embedded-knowledge/indexes/tags/event-routing.json +1 -0
- package/embedded-knowledge/indexes/tags/events.json +1 -0
- package/embedded-knowledge/indexes/tags/execution-flow.json +1 -0
- package/embedded-knowledge/indexes/tags/expressions.json +1 -0
- package/embedded-knowledge/indexes/tags/extensibility.json +1 -0
- package/embedded-knowledge/indexes/tags/extensions.json +1 -0
- package/embedded-knowledge/indexes/tags/facade-composition.json +1 -0
- package/embedded-knowledge/indexes/tags/facade-pattern.json +1 -0
- package/embedded-knowledge/indexes/tags/field-control.json +1 -0
- package/embedded-knowledge/indexes/tags/field-exclusion.json +1 -0
- package/embedded-knowledge/indexes/tags/field-registration.json +1 -0
- package/embedded-knowledge/indexes/tags/field-state.json +1 -0
- package/embedded-knowledge/indexes/tags/field-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/fielderror.json +1 -0
- package/embedded-knowledge/indexes/tags/fields.json +1 -0
- package/embedded-knowledge/indexes/tags/filtering.json +1 -0
- package/embedded-knowledge/indexes/tags/filters.json +1 -0
- package/embedded-knowledge/indexes/tags/formatting.json +1 -0
- package/embedded-knowledge/indexes/tags/generic-methods.json +1 -0
- package/embedded-knowledge/indexes/tags/http-status.json +1 -0
- package/embedded-knowledge/indexes/tags/if-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/implementation.json +1 -0
- package/embedded-knowledge/indexes/tags/indentation.json +1 -0
- package/embedded-knowledge/indexes/tags/index-summary.json +277 -0
- package/embedded-knowledge/indexes/tags/indexing.json +1 -0
- package/embedded-knowledge/indexes/tags/inheritance.json +1 -0
- package/embedded-knowledge/indexes/tags/integration.json +1 -0
- package/embedded-knowledge/indexes/tags/integrity-checking.json +1 -0
- package/embedded-knowledge/indexes/tags/intellisense.json +1 -0
- package/embedded-knowledge/indexes/tags/interface-design.json +1 -0
- package/embedded-knowledge/indexes/tags/interface-segregation.json +1 -0
- package/embedded-knowledge/indexes/tags/isolation.json +1 -0
- package/embedded-knowledge/indexes/tags/job-processing.json +1 -0
- package/embedded-knowledge/indexes/tags/keyboard-navigation.json +1 -0
- package/embedded-knowledge/indexes/tags/keywords.json +1 -0
- package/embedded-knowledge/indexes/tags/legacy-modernization.json +1 -0
- package/embedded-knowledge/indexes/tags/line-breaks.json +1 -0
- package/embedded-knowledge/indexes/tags/line-organization.json +1 -0
- package/embedded-knowledge/indexes/tags/line-positioning.json +1 -0
- package/embedded-knowledge/indexes/tags/localization.json +1 -0
- package/embedded-knowledge/indexes/tags/logging.json +1 -0
- package/embedded-knowledge/indexes/tags/loose-coupling.json +1 -0
- package/embedded-knowledge/indexes/tags/maintainability.json +1 -0
- package/embedded-knowledge/indexes/tags/memory-management.json +1 -0
- package/embedded-knowledge/indexes/tags/memory-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/memory.json +1 -0
- package/embedded-knowledge/indexes/tags/message-design.json +1 -0
- package/embedded-knowledge/indexes/tags/message-formatting.json +1 -0
- package/embedded-knowledge/indexes/tags/message-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/metadata-driven.json +1 -0
- package/embedded-knowledge/indexes/tags/method-comparison.json +1 -0
- package/embedded-knowledge/indexes/tags/module-architecture.json +1 -0
- package/embedded-knowledge/indexes/tags/module-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/monitoring.json +1 -0
- package/embedded-knowledge/indexes/tags/multi-layer-facade.json +1 -0
- package/embedded-knowledge/indexes/tags/multi-tenancy.json +1 -0
- package/embedded-knowledge/indexes/tags/multiple-values.json +1 -0
- package/embedded-knowledge/indexes/tags/naming-conventions.json +1 -0
- package/embedded-knowledge/indexes/tags/naming.json +1 -0
- package/embedded-knowledge/indexes/tags/navigation.json +1 -0
- package/embedded-knowledge/indexes/tags/nested-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/no-series-conversion.json +1 -0
- package/embedded-knowledge/indexes/tags/no-series-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/no-series.json +1 -0
- package/embedded-knowledge/indexes/tags/number-generation.json +1 -0
- package/embedded-knowledge/indexes/tags/object-documentation.json +1 -0
- package/embedded-knowledge/indexes/tags/odata.json +1 -0
- package/embedded-knowledge/indexes/tags/ondelete.json +1 -0
- package/embedded-knowledge/indexes/tags/onvalidate.json +1 -0
- package/embedded-knowledge/indexes/tags/operation-delegation.json +1 -0
- package/embedded-knowledge/indexes/tags/operation-safety.json +1 -0
- package/embedded-knowledge/indexes/tags/operators.json +1 -0
- package/embedded-knowledge/indexes/tags/optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/order.json +1 -0
- package/embedded-knowledge/indexes/tags/organization.json +1 -0
- package/embedded-knowledge/indexes/tags/pages.json +1 -0
- package/embedded-knowledge/indexes/tags/parameters.json +1 -0
- package/embedded-knowledge/indexes/tags/patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/performance-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/performance.json +1 -0
- package/embedded-knowledge/indexes/tags/placement.json +1 -0
- package/embedded-knowledge/indexes/tags/posting-codeunits.json +1 -0
- package/embedded-knowledge/indexes/tags/posting.json +1 -0
- package/embedded-knowledge/indexes/tags/preconditions.json +1 -0
- package/embedded-knowledge/indexes/tags/primary-key.json +1 -0
- package/embedded-knowledge/indexes/tags/privacy.json +1 -0
- package/embedded-knowledge/indexes/tags/process-automation.json +1 -0
- package/embedded-knowledge/indexes/tags/production.json +1 -0
- package/embedded-knowledge/indexes/tags/productivity.json +1 -0
- package/embedded-knowledge/indexes/tags/query-performance.json +1 -0
- package/embedded-knowledge/indexes/tags/queue-management.json +1 -0
- package/embedded-knowledge/indexes/tags/ranges.json +1 -0
- package/embedded-knowledge/indexes/tags/readability.json +1 -0
- package/embedded-knowledge/indexes/tags/record-access.json +1 -0
- package/embedded-knowledge/indexes/tags/record-methods.json +1 -0
- package/embedded-knowledge/indexes/tags/refactoring.json +1 -0
- package/embedded-knowledge/indexes/tags/reference.json +1 -0
- package/embedded-knowledge/indexes/tags/repeat-loops.json +1 -0
- package/embedded-knowledge/indexes/tags/repeat-statement.json +1 -0
- package/embedded-knowledge/indexes/tags/runtime-errors.json +1 -0
- package/embedded-knowledge/indexes/tags/runtime.json +1 -0
- package/embedded-knowledge/indexes/tags/safeguards.json +1 -0
- package/embedded-knowledge/indexes/tags/security.json +1 -0
- package/embedded-knowledge/indexes/tags/sequence-management.json +1 -0
- package/embedded-knowledge/indexes/tags/serialization.json +1 -0
- package/embedded-knowledge/indexes/tags/session-logmessage.json +1 -0
- package/embedded-knowledge/indexes/tags/session.json +1 -0
- package/embedded-knowledge/indexes/tags/setloadfields.json +1 -0
- package/embedded-knowledge/indexes/tags/shortcuts.json +1 -0
- package/embedded-knowledge/indexes/tags/sift.json +1 -0
- package/embedded-knowledge/indexes/tags/singleinstance.json +1 -0
- package/embedded-knowledge/indexes/tags/spacing.json +1 -0
- package/embedded-knowledge/indexes/tags/sql-translation.json +1 -0
- package/embedded-knowledge/indexes/tags/standards.json +1 -0
- package/embedded-knowledge/indexes/tags/statements.json +1 -0
- package/embedded-knowledge/indexes/tags/streaming.json +1 -0
- package/embedded-knowledge/indexes/tags/strong-typing.json +1 -0
- package/embedded-knowledge/indexes/tags/structural-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/structure.json +1 -0
- package/embedded-knowledge/indexes/tags/subscribers.json +1 -0
- package/embedded-knowledge/indexes/tags/switch.json +1 -0
- package/embedded-knowledge/indexes/tags/symbol-search.json +1 -0
- package/embedded-knowledge/indexes/tags/syntax.json +1 -0
- package/embedded-knowledge/indexes/tags/systemid.json +1 -0
- package/embedded-knowledge/indexes/tags/table-configuration.json +1 -0
- package/embedded-knowledge/indexes/tags/table-events.json +1 -0
- package/embedded-knowledge/indexes/tags/table-keys.json +1 -0
- package/embedded-knowledge/indexes/tags/table-safety.json +1 -0
- package/embedded-knowledge/indexes/tags/task-scheduler.json +1 -0
- package/embedded-knowledge/indexes/tags/telemetry.json +1 -0
- package/embedded-knowledge/indexes/tags/template-method.json +1 -0
- package/embedded-knowledge/indexes/tags/temporary-tables.json +1 -0
- package/embedded-knowledge/indexes/tags/testfield.json +1 -0
- package/embedded-knowledge/indexes/tags/tradeoffs.json +1 -0
- package/embedded-knowledge/indexes/tags/triggers.json +1 -0
- package/embedded-knowledge/indexes/tags/troubleshooting.json +1 -0
- package/embedded-knowledge/indexes/tags/type-safety.json +1 -0
- package/embedded-knowledge/indexes/tags/url-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/user-experience.json +1 -0
- package/embedded-knowledge/indexes/tags/user-feedback.json +1 -0
- package/embedded-knowledge/indexes/tags/user-interface.json +1 -0
- package/embedded-knowledge/indexes/tags/validation-feedback.json +1 -0
- package/embedded-knowledge/indexes/tags/validation.json +1 -0
- package/embedded-knowledge/indexes/tags/variables.json +1 -0
- package/embedded-knowledge/indexes/tags/verbosity.json +1 -0
- package/embedded-knowledge/indexes/tags/vs-code.json +1 -0
- package/embedded-knowledge/indexes/tags/web-services.json +1 -0
- package/embedded-knowledge/indexes/tags/workflow-management.json +1 -0
- package/embedded-knowledge/indexes/tags/workflow-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/workflow-templates.json +1 -0
- package/embedded-knowledge/indexes/tags/workspace.json +1 -0
- package/embedded-knowledge/indexes/tags/xml-documentation.json +1 -0
- package/embedded-knowledge/indexes/topic-relationships.json +128 -0
- package/embedded-knowledge/methodologies/index.json +81 -0
- package/embedded-knowledge/methodologies/phases/analysis-full.md +208 -0
- package/embedded-knowledge/methodologies/phases/analysis-quick.md +44 -0
- package/embedded-knowledge/methodologies/phases/analysis.md +182 -0
- package/embedded-knowledge/methodologies/phases/execution-validation-full.md +174 -0
- package/embedded-knowledge/methodologies/phases/execution-validation-quick.md +31 -0
- package/embedded-knowledge/methodologies/phases/execution-validation.md +174 -0
- package/embedded-knowledge/methodologies/phases/performance-full.md +211 -0
- package/embedded-knowledge/methodologies/phases/performance-quick.md +32 -0
- package/embedded-knowledge/methodologies/phases/performance.md +211 -0
- package/embedded-knowledge/methodologies/phases/verification-full.md +162 -0
- package/embedded-knowledge/methodologies/phases/verification-quick.md +48 -0
- package/embedded-knowledge/methodologies/phases/verification.md +146 -0
- package/embedded-knowledge/methodologies/workflow-enforcement.md +142 -0
- package/embedded-knowledge/methodologies/workflows/code-review-workflow.md +99 -0
- package/package.json +74 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Type exports for BC Code Intelligence MCP server
|
|
2
|
+
export * from './bc-knowledge.js';
|
|
3
|
+
// Export layer types with prefixes to avoid conflicts
|
|
4
|
+
export * from './layer-types.js';
|
|
5
|
+
// Export config types (these take precedence for configuration system)
|
|
6
|
+
export { LayerSourceType, AuthType, DEFAULT_BC_CODE_INTEL_CONFIG, ENV_VAR_MAPPINGS } from './config-types.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,mDAAmD;AAEnD,cAAc,mBAAmB,CAAC;AAElC,sDAAsD;AACtD,cAAc,kBAAkB,CAAC;AAEjC,uEAAuE;AACvE,OAAO,EACL,eAAe,EACf,QAAQ,EACR,4BAA4B,EAC5B,gBAAgB,EACjB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layer System Types
|
|
3
|
+
*
|
|
4
|
+
* Defines interfaces for the layered knowledge architecture where different
|
|
5
|
+
* sources can provide and override knowledge content.
|
|
6
|
+
*/
|
|
7
|
+
import { AtomicTopic } from './bc-knowledge.js';
|
|
8
|
+
/**
|
|
9
|
+
* Layer priorities - lower numbers = higher priority (override earlier layers)
|
|
10
|
+
*/
|
|
11
|
+
export declare const enum LayerPriority {
|
|
12
|
+
EMBEDDED = 0,// Embedded knowledge from submodule (base layer)
|
|
13
|
+
COMPANY = 100,// Company-wide standards from git repo
|
|
14
|
+
TEAM = 200,// Team-specific overrides from git repo
|
|
15
|
+
PROJECT = 300
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Layer source configuration
|
|
19
|
+
*/
|
|
20
|
+
export interface LayerSource {
|
|
21
|
+
name: string;
|
|
22
|
+
priority: LayerPriority;
|
|
23
|
+
type: 'embedded' | 'git' | 'local' | 'http';
|
|
24
|
+
enabled: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Embedded layer source (git submodule)
|
|
28
|
+
*/
|
|
29
|
+
export interface EmbeddedLayerSource extends LayerSource {
|
|
30
|
+
type: 'embedded';
|
|
31
|
+
path: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Git repository layer source
|
|
35
|
+
*/
|
|
36
|
+
export interface GitLayerSource extends LayerSource {
|
|
37
|
+
type: 'git';
|
|
38
|
+
url: string;
|
|
39
|
+
branch?: string;
|
|
40
|
+
path?: string;
|
|
41
|
+
credentials?: {
|
|
42
|
+
username?: string;
|
|
43
|
+
token?: string;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Local directory layer source
|
|
48
|
+
*/
|
|
49
|
+
export interface LocalLayerSource extends LayerSource {
|
|
50
|
+
type: 'local';
|
|
51
|
+
path: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* HTTP endpoint layer source
|
|
55
|
+
*/
|
|
56
|
+
export interface HttpLayerSource extends LayerSource {
|
|
57
|
+
type: 'http';
|
|
58
|
+
baseUrl: string;
|
|
59
|
+
headers?: Record<string, string>;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Union of all layer source types
|
|
63
|
+
*/
|
|
64
|
+
export type AnyLayerSource = EmbeddedLayerSource | GitLayerSource | LocalLayerSource | HttpLayerSource;
|
|
65
|
+
/**
|
|
66
|
+
* Layer resolution result
|
|
67
|
+
*/
|
|
68
|
+
export interface LayerResolutionResult {
|
|
69
|
+
topic: AtomicTopic;
|
|
70
|
+
sourceLayer: string;
|
|
71
|
+
isOverride: boolean;
|
|
72
|
+
overriddenLayers: string[];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Layer loading result
|
|
76
|
+
*/
|
|
77
|
+
export interface LayerLoadResult {
|
|
78
|
+
layerName: string;
|
|
79
|
+
success: boolean;
|
|
80
|
+
topicsLoaded: number;
|
|
81
|
+
indexesLoaded: number;
|
|
82
|
+
error?: string;
|
|
83
|
+
loadTimeMs: number;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Base interface for knowledge layer implementations
|
|
87
|
+
*/
|
|
88
|
+
export interface IKnowledgeLayer {
|
|
89
|
+
readonly name: string;
|
|
90
|
+
readonly priority: LayerPriority;
|
|
91
|
+
readonly enabled: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Initialize the layer (load topics, indexes, etc.)
|
|
94
|
+
*/
|
|
95
|
+
initialize(): Promise<LayerLoadResult>;
|
|
96
|
+
/**
|
|
97
|
+
* Check if the layer has a specific topic
|
|
98
|
+
*/
|
|
99
|
+
hasTopic(topicId: string): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Get a topic from this layer
|
|
102
|
+
*/
|
|
103
|
+
getTopic(topicId: string): Promise<AtomicTopic | null>;
|
|
104
|
+
/**
|
|
105
|
+
* Get a topic from this layer synchronously (for already loaded topics)
|
|
106
|
+
*/
|
|
107
|
+
getTopicSync(topicId: string): AtomicTopic | null;
|
|
108
|
+
/**
|
|
109
|
+
* Get all topic IDs available in this layer
|
|
110
|
+
*/
|
|
111
|
+
getTopicIds(): string[];
|
|
112
|
+
/**
|
|
113
|
+
* Search for topics within this layer
|
|
114
|
+
*/
|
|
115
|
+
searchTopics(query: string, limit?: number): AtomicTopic[];
|
|
116
|
+
/**
|
|
117
|
+
* Get layer statistics
|
|
118
|
+
*/
|
|
119
|
+
getStatistics(): LayerStatistics;
|
|
120
|
+
/**
|
|
121
|
+
* Cleanup resources
|
|
122
|
+
*/
|
|
123
|
+
dispose(): Promise<void>;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Layer statistics
|
|
127
|
+
*/
|
|
128
|
+
export interface LayerStatistics {
|
|
129
|
+
name: string;
|
|
130
|
+
priority: LayerPriority;
|
|
131
|
+
enabled: boolean;
|
|
132
|
+
topicCount: number;
|
|
133
|
+
indexCount: number;
|
|
134
|
+
lastLoaded?: Date;
|
|
135
|
+
loadTimeMs?: number;
|
|
136
|
+
memoryUsage?: {
|
|
137
|
+
topics: number;
|
|
138
|
+
indexes: number;
|
|
139
|
+
total: number;
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Layer system configuration
|
|
144
|
+
*/
|
|
145
|
+
export interface LayerSystemConfig {
|
|
146
|
+
layers: AnyLayerSource[];
|
|
147
|
+
defaultSearchLimit: number;
|
|
148
|
+
cacheEnabled: boolean;
|
|
149
|
+
cacheTtlMs: number;
|
|
150
|
+
enableParallelLoading: boolean;
|
|
151
|
+
loadTimeoutMs: number;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Override resolution strategy
|
|
155
|
+
*/
|
|
156
|
+
export declare const enum OverrideStrategy {
|
|
157
|
+
REPLACE = "replace",// Higher priority layer completely replaces lower
|
|
158
|
+
MERGE_CONTENT = "merge_content",// Merge markdown content sections
|
|
159
|
+
MERGE_FRONTMATTER = "merge_frontmatter",// Merge YAML frontmatter fields
|
|
160
|
+
APPEND_CONTENT = "append_content"
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Override configuration for specific topics or domains
|
|
164
|
+
*/
|
|
165
|
+
export interface OverrideConfig {
|
|
166
|
+
topicPattern?: string;
|
|
167
|
+
domain?: string;
|
|
168
|
+
strategy: OverrideStrategy;
|
|
169
|
+
preserveOriginal?: boolean;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=layer-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layer-types.d.ts","sourceRoot":"","sources":["../../src/types/layer-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layer System Types
|
|
3
|
+
*
|
|
4
|
+
* Defines interfaces for the layered knowledge architecture where different
|
|
5
|
+
* sources can provide and override knowledge content.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Layer priorities - lower numbers = higher priority (override earlier layers)
|
|
9
|
+
*/
|
|
10
|
+
export var LayerPriority;
|
|
11
|
+
(function (LayerPriority) {
|
|
12
|
+
LayerPriority[LayerPriority["EMBEDDED"] = 0] = "EMBEDDED";
|
|
13
|
+
LayerPriority[LayerPriority["COMPANY"] = 100] = "COMPANY";
|
|
14
|
+
LayerPriority[LayerPriority["TEAM"] = 200] = "TEAM";
|
|
15
|
+
LayerPriority[LayerPriority["PROJECT"] = 300] = "PROJECT"; // Project-local overrides from ./bc-code-intel-overrides/
|
|
16
|
+
})(LayerPriority || (LayerPriority = {}));
|
|
17
|
+
/**
|
|
18
|
+
* Override resolution strategy
|
|
19
|
+
*/
|
|
20
|
+
export var OverrideStrategy;
|
|
21
|
+
(function (OverrideStrategy) {
|
|
22
|
+
OverrideStrategy["REPLACE"] = "replace";
|
|
23
|
+
OverrideStrategy["MERGE_CONTENT"] = "merge_content";
|
|
24
|
+
OverrideStrategy["MERGE_FRONTMATTER"] = "merge_frontmatter";
|
|
25
|
+
OverrideStrategy["APPEND_CONTENT"] = "append_content"; // Append content to existing topic
|
|
26
|
+
})(OverrideStrategy || (OverrideStrategy = {}));
|
|
27
|
+
//# sourceMappingURL=layer-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layer-types.js","sourceRoot":"","sources":["../../src/types/layer-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,CAAN,IAAkB,aAKjB;AALD,WAAkB,aAAa;IAC7B,yDAAY,CAAA;IACZ,yDAAa,CAAA;IACb,mDAAU,CAAA;IACV,yDAAa,CAAA,CAAM,0DAA0D;AAC/E,CAAC,EALiB,aAAa,KAAb,aAAa,QAK9B;AA6JD;;GAEG;AACH,MAAM,CAAN,IAAkB,gBAKjB;AALD,WAAkB,gBAAgB;IAChC,uCAAmB,CAAA;IACnB,mDAA+B,CAAA;IAC/B,2DAAuC,CAAA;IACvC,qDAAiC,CAAA,CAAE,mCAAmC;AACxE,CAAC,EALiB,gBAAgB,KAAhB,gBAAgB,QAKjC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Business Central Specialist Personas
|
|
3
|
+
*
|
|
4
|
+
* Defines the 14 BC specialist personas that guide knowledge discovery
|
|
5
|
+
* and consultation in the Business Central Knowledge Base system.
|
|
6
|
+
*/
|
|
7
|
+
export interface BCSpecialist {
|
|
8
|
+
/** Unique specialist identifier (matches domain folder name) */
|
|
9
|
+
id: string;
|
|
10
|
+
/** Human-readable specialist name */
|
|
11
|
+
name: string;
|
|
12
|
+
/** Role description */
|
|
13
|
+
role: string;
|
|
14
|
+
/** Areas of expertise for this specialist */
|
|
15
|
+
expertise_areas: string[];
|
|
16
|
+
/** How this specialist approaches consultation */
|
|
17
|
+
consultation_style: string;
|
|
18
|
+
/** Common questions developers ask this specialist */
|
|
19
|
+
typical_questions: string[];
|
|
20
|
+
/** AI prompting guidance for this specialist's perspective */
|
|
21
|
+
ai_prompting_style: string;
|
|
22
|
+
/** Specialist's preferred communication tone */
|
|
23
|
+
communication_tone: 'analytical' | 'practical' | 'strategic' | 'cautious' | 'creative' | 'systematic';
|
|
24
|
+
}
|
|
25
|
+
export interface SpecialistConsultation {
|
|
26
|
+
topic: any;
|
|
27
|
+
specialist: BCSpecialist;
|
|
28
|
+
consultation_approach: string;
|
|
29
|
+
related_topics: any[];
|
|
30
|
+
expertise_context: string;
|
|
31
|
+
}
|
|
32
|
+
export interface SpecialistResponse {
|
|
33
|
+
specialist: BCSpecialist;
|
|
34
|
+
question: string;
|
|
35
|
+
relevant_knowledge: any[];
|
|
36
|
+
consultation_guidance: string;
|
|
37
|
+
follow_up_suggestions: string[];
|
|
38
|
+
confidence_level: 'high' | 'medium' | 'low';
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Complete BC Specialist Registry
|
|
42
|
+
* Based on actual persona folders in knowledge base
|
|
43
|
+
*/
|
|
44
|
+
export declare const BC_SPECIALISTS: Record<string, BCSpecialist>;
|
|
45
|
+
/**
|
|
46
|
+
* Persona Registry Implementation
|
|
47
|
+
*/
|
|
48
|
+
export declare class PersonaRegistry {
|
|
49
|
+
private static instance;
|
|
50
|
+
private specialists;
|
|
51
|
+
private expertiseIndex;
|
|
52
|
+
constructor();
|
|
53
|
+
static getInstance(): PersonaRegistry;
|
|
54
|
+
/**
|
|
55
|
+
* Get specialist by ID
|
|
56
|
+
*/
|
|
57
|
+
getSpecialist(specialistId: string): BCSpecialist | null;
|
|
58
|
+
/**
|
|
59
|
+
* Get all specialists
|
|
60
|
+
*/
|
|
61
|
+
getAllSpecialists(): BCSpecialist[];
|
|
62
|
+
/**
|
|
63
|
+
* Find specialists by expertise area
|
|
64
|
+
*/
|
|
65
|
+
getSpecialistsByExpertise(expertiseArea: string): BCSpecialist[];
|
|
66
|
+
/**
|
|
67
|
+
* Infer specialist from natural language question
|
|
68
|
+
*/
|
|
69
|
+
inferSpecialistFromQuestion(question: string): BCSpecialist | null;
|
|
70
|
+
/**
|
|
71
|
+
* Get specialists that could collaborate on a question
|
|
72
|
+
*/
|
|
73
|
+
getCollaboratingSpecialists(primarySpecialist: BCSpecialist, question: string): BCSpecialist[];
|
|
74
|
+
private buildExpertiseIndex;
|
|
75
|
+
private matchesKeywords;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=persona-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persona-types.d.ts","sourceRoot":"","sources":["../../src/types/persona-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,YAAY;IAC3B,gEAAgE;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,kDAAkD;IAClD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sDAAsD;IACtD,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,8DAA8D;IAC9D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,kBAAkB,EAAE,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;CACvG;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,YAAY,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,GAAG,EAAE,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,YAAY,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,GAAG,EAAE,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,gBAAgB,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CAC7C;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAgOvD,CAAC;AAEF;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IACzC,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,cAAc,CAA2B;;IAOjD,MAAM,CAAC,WAAW,IAAI,eAAe;IAOrC;;OAEG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAIxD;;OAEG;IACH,iBAAiB,IAAI,YAAY,EAAE;IAInC;;OAEG;IACH,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY,EAAE;IAKhE;;OAEG;IACH,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAwDlE;;OAEG;IACH,2BAA2B,CAAC,iBAAiB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE;IAqB9F,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,eAAe;CAGxB"}
|
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Business Central Specialist Personas
|
|
3
|
+
*
|
|
4
|
+
* Defines the 14 BC specialist personas that guide knowledge discovery
|
|
5
|
+
* and consultation in the Business Central Knowledge Base system.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Complete BC Specialist Registry
|
|
9
|
+
* Based on actual persona folders in knowledge base
|
|
10
|
+
*/
|
|
11
|
+
export const BC_SPECIALISTS = {
|
|
12
|
+
"alex-architect": {
|
|
13
|
+
id: "alex-architect",
|
|
14
|
+
name: "Alex Architect",
|
|
15
|
+
role: "Architecture & Design Specialist",
|
|
16
|
+
expertise_areas: ["data-models", "system-design", "table-relationships", "api-interfaces", "facade-patterns", "complex-patterns"],
|
|
17
|
+
consultation_style: "Strategic architectural guidance focusing on scalability, maintainability, and design patterns",
|
|
18
|
+
typical_questions: [
|
|
19
|
+
"How should I structure my data model?",
|
|
20
|
+
"What's the best table relationship pattern?",
|
|
21
|
+
"How do I design clean API interfaces?",
|
|
22
|
+
"What architectural pattern should I use?"
|
|
23
|
+
],
|
|
24
|
+
ai_prompting_style: "Focus on high-level design decisions, architectural trade-offs, and long-term maintainability",
|
|
25
|
+
communication_tone: "strategic"
|
|
26
|
+
},
|
|
27
|
+
"dean-debug": {
|
|
28
|
+
id: "dean-debug",
|
|
29
|
+
name: "Dean Debug",
|
|
30
|
+
role: "Performance & Troubleshooting Specialist",
|
|
31
|
+
expertise_areas: ["sift", "performance", "sql-optimization", "telemetry", "debugging", "setloadfields", "deleteall"],
|
|
32
|
+
consultation_style: "Systematic performance analysis with actionable optimization recommendations and debugging strategies",
|
|
33
|
+
typical_questions: [
|
|
34
|
+
"Why is my code slow?",
|
|
35
|
+
"How do I optimize this query?",
|
|
36
|
+
"What's causing this performance issue?",
|
|
37
|
+
"How do I implement SIFT properly?"
|
|
38
|
+
],
|
|
39
|
+
ai_prompting_style: "Focus on performance metrics, bottleneck identification, optimization techniques, and debugging workflows",
|
|
40
|
+
communication_tone: "analytical"
|
|
41
|
+
},
|
|
42
|
+
"sam-coder": {
|
|
43
|
+
id: "sam-coder",
|
|
44
|
+
name: "Sam Coder",
|
|
45
|
+
role: "Expert Implementation Specialist",
|
|
46
|
+
expertise_areas: ["code-quality", "best-practices", "patterns", "refactoring", "clean-code", "implementation"],
|
|
47
|
+
consultation_style: "Practical implementation guidance focusing on clean, maintainable, and efficient code",
|
|
48
|
+
typical_questions: [
|
|
49
|
+
"What's the best way to implement this?",
|
|
50
|
+
"How do I refactor this code?",
|
|
51
|
+
"Is this implementation following best practices?",
|
|
52
|
+
"How can I make this code cleaner?"
|
|
53
|
+
],
|
|
54
|
+
ai_prompting_style: "Focus on implementation patterns, code quality principles, and practical development techniques",
|
|
55
|
+
communication_tone: "practical"
|
|
56
|
+
},
|
|
57
|
+
"seth-security": {
|
|
58
|
+
id: "seth-security",
|
|
59
|
+
name: "Seth Security",
|
|
60
|
+
role: "Security & Access Control Specialist",
|
|
61
|
+
expertise_areas: ["permissions", "data-safety", "access-control", "security-patterns", "user-security", "data-protection"],
|
|
62
|
+
consultation_style: "Security-first guidance with focus on data protection, access control, and risk mitigation",
|
|
63
|
+
typical_questions: [
|
|
64
|
+
"How do I secure this data?",
|
|
65
|
+
"What permissions should I set?",
|
|
66
|
+
"Is this approach secure?",
|
|
67
|
+
"How do I implement proper access control?"
|
|
68
|
+
],
|
|
69
|
+
ai_prompting_style: "Focus on security implications, risk assessment, protection patterns, and compliance considerations",
|
|
70
|
+
communication_tone: "cautious"
|
|
71
|
+
},
|
|
72
|
+
"casey-copilot": {
|
|
73
|
+
id: "casey-copilot",
|
|
74
|
+
name: "Casey Copilot",
|
|
75
|
+
role: "AI Enhancement & Workflow Specialist",
|
|
76
|
+
expertise_areas: ["ai-workflows", "automation", "copilot-optimization", "workflow-patterns", "ai-integration"],
|
|
77
|
+
consultation_style: "AI-powered workflow optimization and automation guidance for enhanced developer productivity",
|
|
78
|
+
typical_questions: [
|
|
79
|
+
"How can AI help with this task?",
|
|
80
|
+
"What workflow should I use?",
|
|
81
|
+
"How do I optimize for AI assistance?",
|
|
82
|
+
"What automation patterns work best?"
|
|
83
|
+
],
|
|
84
|
+
ai_prompting_style: "Focus on AI-assisted development patterns, workflow optimization, and productivity enhancement",
|
|
85
|
+
communication_tone: "creative"
|
|
86
|
+
},
|
|
87
|
+
"eva-errors": {
|
|
88
|
+
id: "eva-errors",
|
|
89
|
+
name: "Eva Errors",
|
|
90
|
+
role: "Error Handling & Recovery Specialist",
|
|
91
|
+
expertise_areas: ["error-handling", "exception-management", "error-recovery", "validation", "errorinfo-patterns"],
|
|
92
|
+
consultation_style: "Comprehensive error handling strategies focusing on graceful failure and user experience",
|
|
93
|
+
typical_questions: [
|
|
94
|
+
"How should I handle this error?",
|
|
95
|
+
"What's the best error recovery pattern?",
|
|
96
|
+
"How do I validate this properly?",
|
|
97
|
+
"How do I provide good error messages?"
|
|
98
|
+
],
|
|
99
|
+
ai_prompting_style: "Focus on error scenarios, recovery strategies, user-friendly messaging, and robust validation",
|
|
100
|
+
communication_tone: "systematic"
|
|
101
|
+
},
|
|
102
|
+
"jordan-bridge": {
|
|
103
|
+
id: "jordan-bridge",
|
|
104
|
+
name: "Jordan Bridge",
|
|
105
|
+
role: "Integration & Events Specialist",
|
|
106
|
+
expertise_areas: ["integration", "events", "api-design", "external-systems", "data-exchange", "webhooks"],
|
|
107
|
+
consultation_style: "Integration architecture guidance focusing on reliable data exchange and event-driven patterns",
|
|
108
|
+
typical_questions: [
|
|
109
|
+
"How do I integrate with this system?",
|
|
110
|
+
"What's the best event pattern?",
|
|
111
|
+
"How do I handle data synchronization?",
|
|
112
|
+
"How do I design reliable integrations?"
|
|
113
|
+
],
|
|
114
|
+
ai_prompting_style: "Focus on integration patterns, event handling, data consistency, and external system communication",
|
|
115
|
+
communication_tone: "systematic"
|
|
116
|
+
},
|
|
117
|
+
"logan-legacy": {
|
|
118
|
+
id: "logan-legacy",
|
|
119
|
+
name: "Logan Legacy",
|
|
120
|
+
role: "Legacy Analysis & Migration Specialist",
|
|
121
|
+
expertise_areas: ["legacy-systems", "migration", "modernization", "compatibility", "upgrade-patterns"],
|
|
122
|
+
consultation_style: "Legacy system analysis and migration strategies with focus on minimizing disruption",
|
|
123
|
+
typical_questions: [
|
|
124
|
+
"How do I migrate this legacy code?",
|
|
125
|
+
"What's the modernization strategy?",
|
|
126
|
+
"How do I maintain compatibility?",
|
|
127
|
+
"What are the migration risks?"
|
|
128
|
+
],
|
|
129
|
+
ai_prompting_style: "Focus on migration strategies, compatibility concerns, risk mitigation, and modernization approaches",
|
|
130
|
+
communication_tone: "cautious"
|
|
131
|
+
},
|
|
132
|
+
"maya-mentor": {
|
|
133
|
+
id: "maya-mentor",
|
|
134
|
+
name: "Maya Mentor",
|
|
135
|
+
role: "Fundamentals & Learning Specialist",
|
|
136
|
+
expertise_areas: ["fundamentals", "learning", "concepts", "basics", "education", "skill-development"],
|
|
137
|
+
consultation_style: "Educational guidance focusing on building strong foundational knowledge and progressive learning",
|
|
138
|
+
typical_questions: [
|
|
139
|
+
"How do I learn this concept?",
|
|
140
|
+
"What are the fundamentals?",
|
|
141
|
+
"Where should I start?",
|
|
142
|
+
"What's the learning progression?"
|
|
143
|
+
],
|
|
144
|
+
ai_prompting_style: "Focus on foundational concepts, learning progression, educational examples, and skill building",
|
|
145
|
+
communication_tone: "systematic"
|
|
146
|
+
},
|
|
147
|
+
"morgan-market": {
|
|
148
|
+
id: "morgan-market",
|
|
149
|
+
name: "Morgan Market",
|
|
150
|
+
role: "AppSource & Business Specialist",
|
|
151
|
+
expertise_areas: ["appsource", "business-logic", "market-requirements", "breaking-changes", "business-patterns"],
|
|
152
|
+
consultation_style: "Business-focused guidance for AppSource development and market-ready solutions",
|
|
153
|
+
typical_questions: [
|
|
154
|
+
"How do I prepare for AppSource?",
|
|
155
|
+
"What are the business requirements?",
|
|
156
|
+
"How do I handle breaking changes?",
|
|
157
|
+
"What market patterns should I follow?"
|
|
158
|
+
],
|
|
159
|
+
ai_prompting_style: "Focus on business requirements, market considerations, AppSource compliance, and commercial viability",
|
|
160
|
+
communication_tone: "strategic"
|
|
161
|
+
},
|
|
162
|
+
"quinn-tester": {
|
|
163
|
+
id: "quinn-tester",
|
|
164
|
+
name: "Quinn Tester",
|
|
165
|
+
role: "Testing & Validation Specialist",
|
|
166
|
+
expertise_areas: ["testing", "validation", "quality-assurance", "test-patterns", "automation", "verification"],
|
|
167
|
+
consultation_style: "Comprehensive testing strategies focusing on quality assurance and automated validation",
|
|
168
|
+
typical_questions: [
|
|
169
|
+
"How should I test this?",
|
|
170
|
+
"What testing pattern should I use?",
|
|
171
|
+
"How do I validate this functionality?",
|
|
172
|
+
"What's the testing strategy?"
|
|
173
|
+
],
|
|
174
|
+
ai_prompting_style: "Focus on testing methodologies, validation patterns, quality metrics, and automated testing approaches",
|
|
175
|
+
communication_tone: "systematic"
|
|
176
|
+
},
|
|
177
|
+
"roger-reviewer": {
|
|
178
|
+
id: "roger-reviewer",
|
|
179
|
+
name: "Roger Reviewer",
|
|
180
|
+
role: "Code Quality & Standards Specialist",
|
|
181
|
+
expertise_areas: ["code-review", "standards", "formatting", "conventions", "quality-metrics", "maintainability"],
|
|
182
|
+
consultation_style: "Code quality guidance focusing on standards compliance, readability, and maintainability",
|
|
183
|
+
typical_questions: [
|
|
184
|
+
"Does this code meet standards?",
|
|
185
|
+
"How should I format this?",
|
|
186
|
+
"What are the coding conventions?",
|
|
187
|
+
"Is this code maintainable?"
|
|
188
|
+
],
|
|
189
|
+
ai_prompting_style: "Focus on coding standards, quality metrics, maintainability principles, and review criteria",
|
|
190
|
+
communication_tone: "analytical"
|
|
191
|
+
},
|
|
192
|
+
"taylor-docs": {
|
|
193
|
+
id: "taylor-docs",
|
|
194
|
+
name: "Taylor Docs",
|
|
195
|
+
role: "Documentation & Knowledge Management Specialist",
|
|
196
|
+
expertise_areas: ["documentation", "knowledge-management", "communication", "technical-writing", "information-architecture"],
|
|
197
|
+
consultation_style: "Documentation strategy focusing on clear communication and knowledge preservation",
|
|
198
|
+
typical_questions: [
|
|
199
|
+
"How should I document this?",
|
|
200
|
+
"What's the documentation strategy?",
|
|
201
|
+
"How do I organize knowledge?",
|
|
202
|
+
"What's the best way to communicate this?"
|
|
203
|
+
],
|
|
204
|
+
ai_prompting_style: "Focus on documentation patterns, knowledge organization, clear communication, and information design",
|
|
205
|
+
communication_tone: "systematic"
|
|
206
|
+
},
|
|
207
|
+
"uma-ux": {
|
|
208
|
+
id: "uma-ux",
|
|
209
|
+
name: "Uma UX",
|
|
210
|
+
role: "User Experience & Interface Specialist",
|
|
211
|
+
expertise_areas: ["user-experience", "interface-design", "usability", "role-centers", "user-interface", "accessibility"],
|
|
212
|
+
consultation_style: "User-centered design guidance focusing on usability, accessibility, and excellent user experience",
|
|
213
|
+
typical_questions: [
|
|
214
|
+
"How do I improve the user experience?",
|
|
215
|
+
"What's the best interface pattern?",
|
|
216
|
+
"How do I make this more usable?",
|
|
217
|
+
"What are the UX best practices?"
|
|
218
|
+
],
|
|
219
|
+
ai_prompting_style: "Focus on user experience principles, interface design patterns, usability guidelines, and accessibility",
|
|
220
|
+
communication_tone: "creative"
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
/**
|
|
224
|
+
* Persona Registry Implementation
|
|
225
|
+
*/
|
|
226
|
+
export class PersonaRegistry {
|
|
227
|
+
static instance;
|
|
228
|
+
specialists;
|
|
229
|
+
expertiseIndex;
|
|
230
|
+
constructor() {
|
|
231
|
+
this.specialists = BC_SPECIALISTS;
|
|
232
|
+
this.expertiseIndex = this.buildExpertiseIndex();
|
|
233
|
+
}
|
|
234
|
+
static getInstance() {
|
|
235
|
+
if (!PersonaRegistry.instance) {
|
|
236
|
+
PersonaRegistry.instance = new PersonaRegistry();
|
|
237
|
+
}
|
|
238
|
+
return PersonaRegistry.instance;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Get specialist by ID
|
|
242
|
+
*/
|
|
243
|
+
getSpecialist(specialistId) {
|
|
244
|
+
return this.specialists[specialistId] || null;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Get all specialists
|
|
248
|
+
*/
|
|
249
|
+
getAllSpecialists() {
|
|
250
|
+
return Object.values(this.specialists);
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Find specialists by expertise area
|
|
254
|
+
*/
|
|
255
|
+
getSpecialistsByExpertise(expertiseArea) {
|
|
256
|
+
const specialistIds = this.expertiseIndex[expertiseArea] || [];
|
|
257
|
+
return specialistIds.map(id => this.specialists[id]).filter(Boolean);
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Infer specialist from natural language question
|
|
261
|
+
*/
|
|
262
|
+
inferSpecialistFromQuestion(question) {
|
|
263
|
+
const lowercaseQ = question.toLowerCase();
|
|
264
|
+
// Performance and debugging
|
|
265
|
+
if (this.matchesKeywords(lowercaseQ, ['performance', 'slow', 'sift', 'optimization', 'debug', 'telemetry'])) {
|
|
266
|
+
return this.specialists['dean-debug'];
|
|
267
|
+
}
|
|
268
|
+
// Architecture and design
|
|
269
|
+
if (this.matchesKeywords(lowercaseQ, ['architecture', 'design', 'table', 'model', 'structure', 'pattern', 'facade'])) {
|
|
270
|
+
return this.specialists['alex-architect'];
|
|
271
|
+
}
|
|
272
|
+
// Security
|
|
273
|
+
if (this.matchesKeywords(lowercaseQ, ['security', 'permission', 'access', 'safe', 'protect', 'secure'])) {
|
|
274
|
+
return this.specialists['seth-security'];
|
|
275
|
+
}
|
|
276
|
+
// Code quality and implementation
|
|
277
|
+
if (this.matchesKeywords(lowercaseQ, ['implement', 'code', 'refactor', 'clean', 'quality', 'best practice'])) {
|
|
278
|
+
return this.specialists['sam-coder'];
|
|
279
|
+
}
|
|
280
|
+
// Testing
|
|
281
|
+
if (this.matchesKeywords(lowercaseQ, ['test', 'validation', 'verify', 'quality assurance'])) {
|
|
282
|
+
return this.specialists['quinn-tester'];
|
|
283
|
+
}
|
|
284
|
+
// Error handling
|
|
285
|
+
if (this.matchesKeywords(lowercaseQ, ['error', 'exception', 'handle', 'fail', 'validate'])) {
|
|
286
|
+
return this.specialists['eva-errors'];
|
|
287
|
+
}
|
|
288
|
+
// Integration
|
|
289
|
+
if (this.matchesKeywords(lowercaseQ, ['integration', 'api', 'event', 'external', 'webhook'])) {
|
|
290
|
+
return this.specialists['jordan-bridge'];
|
|
291
|
+
}
|
|
292
|
+
// User experience
|
|
293
|
+
if (this.matchesKeywords(lowercaseQ, ['user', 'interface', 'ux', 'usability', 'experience'])) {
|
|
294
|
+
return this.specialists['uma-ux'];
|
|
295
|
+
}
|
|
296
|
+
// Documentation
|
|
297
|
+
if (this.matchesKeywords(lowercaseQ, ['document', 'explain', 'how to', 'guide'])) {
|
|
298
|
+
return this.specialists['taylor-docs'];
|
|
299
|
+
}
|
|
300
|
+
// Learning and fundamentals
|
|
301
|
+
if (this.matchesKeywords(lowercaseQ, ['learn', 'basic', 'fundamental', 'start', 'begin'])) {
|
|
302
|
+
return this.specialists['maya-mentor'];
|
|
303
|
+
}
|
|
304
|
+
return null; // No clear match - let user choose
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Get specialists that could collaborate on a question
|
|
308
|
+
*/
|
|
309
|
+
getCollaboratingSpecialists(primarySpecialist, question) {
|
|
310
|
+
const collaborators = [];
|
|
311
|
+
const lowercaseQ = question.toLowerCase();
|
|
312
|
+
// Add common collaboration patterns
|
|
313
|
+
if (primarySpecialist.id === 'dean-debug' && this.matchesKeywords(lowercaseQ, ['architecture', 'design'])) {
|
|
314
|
+
collaborators.push(this.specialists['alex-architect']);
|
|
315
|
+
}
|
|
316
|
+
if (primarySpecialist.id === 'alex-architect' && this.matchesKeywords(lowercaseQ, ['performance', 'optimization'])) {
|
|
317
|
+
collaborators.push(this.specialists['dean-debug']);
|
|
318
|
+
}
|
|
319
|
+
// Security is relevant to most questions
|
|
320
|
+
if (primarySpecialist.id !== 'seth-security' && this.matchesKeywords(lowercaseQ, ['data', 'user', 'access'])) {
|
|
321
|
+
collaborators.push(this.specialists['seth-security']);
|
|
322
|
+
}
|
|
323
|
+
return collaborators;
|
|
324
|
+
}
|
|
325
|
+
buildExpertiseIndex() {
|
|
326
|
+
const index = {};
|
|
327
|
+
for (const specialist of Object.values(this.specialists)) {
|
|
328
|
+
for (const expertise of specialist.expertise_areas) {
|
|
329
|
+
if (!index[expertise]) {
|
|
330
|
+
index[expertise] = [];
|
|
331
|
+
}
|
|
332
|
+
index[expertise].push(specialist.id);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
return index;
|
|
336
|
+
}
|
|
337
|
+
matchesKeywords(text, keywords) {
|
|
338
|
+
return keywords.some(keyword => text.includes(keyword));
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
//# sourceMappingURL=persona-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persona-types.js","sourceRoot":"","sources":["../../src/types/persona-types.ts"],"names":[],"mappings":"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"}
|