bc-code-intelligence-mcp 1.5.9 → 1.6.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.
- package/dist/index.d.ts +9 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +93 -211
- package/dist/index.js.map +1 -1
- package/dist/layers/base-layer.d.ts +6 -6
- package/dist/layers/base-layer.d.ts.map +1 -1
- package/dist/layers/base-layer.js +15 -15
- package/dist/layers/base-layer.js.map +1 -1
- package/dist/layers/embedded-layer.d.ts +2 -2
- package/dist/layers/embedded-layer.d.ts.map +1 -1
- package/dist/layers/embedded-layer.js +32 -16
- package/dist/layers/embedded-layer.js.map +1 -1
- package/dist/layers/git-layer.d.ts +2 -2
- package/dist/layers/git-layer.d.ts.map +1 -1
- package/dist/layers/git-layer.js +23 -9
- package/dist/layers/git-layer.js.map +1 -1
- package/dist/layers/project-layer.d.ts +2 -2
- package/dist/layers/project-layer.d.ts.map +1 -1
- package/dist/layers/project-layer.js +25 -11
- package/dist/layers/project-layer.js.map +1 -1
- package/dist/services/code-analysis-service.d.ts +100 -2
- package/dist/services/code-analysis-service.d.ts.map +1 -1
- package/dist/services/code-analysis-service.js +274 -8
- package/dist/services/code-analysis-service.js.map +1 -1
- package/dist/services/knowledge-service.d.ts.map +1 -1
- package/dist/services/knowledge-service.js.map +1 -1
- package/dist/services/methodology-service.d.ts +34 -2
- package/dist/services/methodology-service.d.ts.map +1 -1
- package/dist/services/methodology-service.js +279 -24
- package/dist/services/methodology-service.js.map +1 -1
- package/dist/services/multi-content-layer-service.d.ts.map +1 -1
- package/dist/services/multi-content-layer-service.js +26 -9
- package/dist/services/multi-content-layer-service.js.map +1 -1
- package/dist/services/relevance-index-service.d.ts +95 -0
- package/dist/services/relevance-index-service.d.ts.map +1 -0
- package/dist/services/relevance-index-service.js +321 -0
- package/dist/services/relevance-index-service.js.map +1 -0
- package/dist/services/roleplay-engine.d.ts +8 -0
- package/dist/services/roleplay-engine.d.ts.map +1 -1
- package/dist/services/roleplay-engine.js +35 -3
- package/dist/services/roleplay-engine.js.map +1 -1
- package/dist/services/specialist-loader.d.ts +1 -0
- package/dist/services/specialist-loader.d.ts.map +1 -1
- package/dist/services/specialist-loader.js +1 -0
- package/dist/services/specialist-loader.js.map +1 -1
- package/dist/services/workflow-service.d.ts +12 -0
- package/dist/services/workflow-service.d.ts.map +1 -1
- package/dist/services/workflow-service.js +30 -0
- package/dist/services/workflow-service.js.map +1 -1
- package/dist/services/{enhanced-prompt-service.d.ts → workflow-specialist-router.d.ts} +41 -4
- package/dist/services/workflow-specialist-router.d.ts.map +1 -0
- package/dist/services/{enhanced-prompt-service.js → workflow-specialist-router.js} +150 -24
- package/dist/services/workflow-specialist-router.js.map +1 -0
- package/dist/services/workflow-v2/index.d.ts +6 -0
- package/dist/services/workflow-v2/index.d.ts.map +1 -0
- package/dist/services/workflow-v2/index.js +6 -0
- package/dist/services/workflow-v2/index.js.map +1 -0
- package/dist/services/workflow-v2/workflow-definitions.d.ts +53 -0
- package/dist/services/workflow-v2/workflow-definitions.d.ts.map +1 -0
- package/dist/services/workflow-v2/workflow-definitions.js +722 -0
- package/dist/services/workflow-v2/workflow-definitions.js.map +1 -0
- package/dist/services/workflow-v2/workflow-session-manager.d.ts +140 -0
- package/dist/services/workflow-v2/workflow-session-manager.d.ts.map +1 -0
- package/dist/services/workflow-v2/workflow-session-manager.js +820 -0
- package/dist/services/workflow-v2/workflow-session-manager.js.map +1 -0
- package/dist/streamlined-handlers.d.ts +7 -86
- package/dist/streamlined-handlers.d.ts.map +1 -1
- package/dist/streamlined-handlers.js +23 -679
- package/dist/streamlined-handlers.js.map +1 -1
- package/dist/tools/_shared/workspace-constants.d.ts +49 -0
- package/dist/tools/_shared/workspace-constants.d.ts.map +1 -0
- package/dist/tools/_shared/workspace-constants.js +53 -0
- package/dist/tools/_shared/workspace-constants.js.map +1 -0
- package/dist/tools/advance_workflow/handler.d.ts +21 -0
- package/dist/tools/advance_workflow/handler.d.ts.map +1 -0
- package/dist/tools/advance_workflow/handler.js +58 -0
- package/dist/tools/advance_workflow/handler.js.map +1 -0
- package/dist/tools/advance_workflow/schema.d.ts +8 -0
- package/dist/tools/advance_workflow/schema.d.ts.map +1 -0
- package/dist/tools/advance_workflow/schema.js +28 -0
- package/dist/tools/advance_workflow/schema.js.map +1 -0
- package/dist/tools/analyze_al_code/handler.d.ts +12 -0
- package/dist/tools/analyze_al_code/handler.d.ts.map +1 -0
- package/dist/tools/analyze_al_code/handler.js +312 -0
- package/dist/tools/analyze_al_code/handler.js.map +1 -0
- package/dist/tools/analyze_al_code/schema.d.ts +8 -0
- package/dist/tools/analyze_al_code/schema.d.ts.map +1 -0
- package/dist/tools/analyze_al_code/schema.js +54 -0
- package/dist/tools/analyze_al_code/schema.js.map +1 -0
- package/dist/tools/ask_bc_expert/handler.d.ts +21 -0
- package/dist/tools/ask_bc_expert/handler.d.ts.map +1 -0
- package/dist/tools/ask_bc_expert/handler.js +118 -0
- package/dist/tools/ask_bc_expert/handler.js.map +1 -0
- package/dist/tools/ask_bc_expert/schema.d.ts +8 -0
- package/dist/tools/ask_bc_expert/schema.d.ts.map +1 -0
- package/dist/tools/ask_bc_expert/schema.js +33 -0
- package/dist/tools/ask_bc_expert/schema.js.map +1 -0
- package/dist/tools/context-snapshot/handler.d.ts +14 -0
- package/dist/tools/context-snapshot/handler.d.ts.map +1 -0
- package/dist/tools/context-snapshot/handler.js +143 -0
- package/dist/tools/context-snapshot/handler.js.map +1 -0
- package/dist/tools/context-snapshot/schema.d.ts +11 -0
- package/dist/tools/context-snapshot/schema.d.ts.map +1 -0
- package/dist/tools/context-snapshot/schema.js +46 -0
- package/dist/tools/context-snapshot/schema.js.map +1 -0
- package/dist/tools/core-tools.d.ts +1 -1
- package/dist/tools/core-tools.d.ts.map +1 -1
- package/dist/tools/core-tools.js +26 -9
- package/dist/tools/core-tools.js.map +1 -1
- package/dist/tools/create_layer_content/handler.d.ts +17 -0
- package/dist/tools/create_layer_content/handler.d.ts.map +1 -0
- package/dist/tools/create_layer_content/handler.js +248 -0
- package/dist/tools/create_layer_content/handler.js.map +1 -0
- package/dist/tools/create_layer_content/schema.d.ts +9 -0
- package/dist/tools/create_layer_content/schema.d.ts.map +1 -0
- package/dist/tools/create_layer_content/schema.js +42 -0
- package/dist/tools/create_layer_content/schema.js.map +1 -0
- package/dist/tools/debug/diagnose_git_layer/handler.d.ts +6 -0
- package/dist/tools/debug/diagnose_git_layer/handler.d.ts.map +1 -0
- package/dist/tools/debug/diagnose_git_layer/handler.js +286 -0
- package/dist/tools/debug/diagnose_git_layer/handler.js.map +1 -0
- package/dist/tools/debug/diagnose_git_layer/schema.d.ts +6 -0
- package/dist/tools/debug/diagnose_git_layer/schema.d.ts.map +1 -0
- package/dist/tools/debug/diagnose_git_layer/schema.js +35 -0
- package/dist/tools/debug/diagnose_git_layer/schema.js.map +1 -0
- package/dist/tools/debug/diagnose_local_layer/handler.d.ts +6 -0
- package/dist/tools/debug/diagnose_local_layer/handler.d.ts.map +1 -0
- package/dist/tools/debug/diagnose_local_layer/handler.js +285 -0
- package/dist/tools/debug/diagnose_local_layer/handler.js.map +1 -0
- package/dist/tools/debug/diagnose_local_layer/schema.d.ts +6 -0
- package/dist/tools/debug/diagnose_local_layer/schema.d.ts.map +1 -0
- package/dist/tools/debug/diagnose_local_layer/schema.js +16 -0
- package/dist/tools/debug/diagnose_local_layer/schema.js.map +1 -0
- package/dist/tools/debug/get_layer_diagnostics/handler.d.ts +7 -0
- package/dist/tools/debug/get_layer_diagnostics/handler.d.ts.map +1 -0
- package/dist/tools/debug/get_layer_diagnostics/handler.js +46 -0
- package/dist/tools/debug/get_layer_diagnostics/handler.js.map +1 -0
- package/dist/tools/debug/get_layer_diagnostics/schema.d.ts +6 -0
- package/dist/tools/debug/get_layer_diagnostics/schema.d.ts.map +1 -0
- package/dist/tools/debug/get_layer_diagnostics/schema.js +20 -0
- package/dist/tools/debug/get_layer_diagnostics/schema.js.map +1 -0
- package/dist/tools/debug/reload_layers/handler.d.ts +8 -0
- package/dist/tools/debug/reload_layers/handler.d.ts.map +1 -0
- package/dist/tools/debug/reload_layers/handler.js +83 -0
- package/dist/tools/debug/reload_layers/handler.js.map +1 -0
- package/dist/tools/debug/reload_layers/schema.d.ts +6 -0
- package/dist/tools/debug/reload_layers/schema.d.ts.map +1 -0
- package/dist/tools/debug/reload_layers/schema.js +20 -0
- package/dist/tools/debug/reload_layers/schema.js.map +1 -0
- package/dist/tools/debug/test_azure_devops_pat/handler.d.ts +6 -0
- package/dist/tools/debug/test_azure_devops_pat/handler.d.ts.map +1 -0
- package/dist/tools/debug/test_azure_devops_pat/handler.js +16 -0
- package/dist/tools/debug/test_azure_devops_pat/handler.js.map +1 -0
- package/dist/tools/debug/test_azure_devops_pat/schema.d.ts +6 -0
- package/dist/tools/debug/test_azure_devops_pat/schema.d.ts.map +1 -0
- package/dist/tools/debug/test_azure_devops_pat/schema.js +27 -0
- package/dist/tools/debug/test_azure_devops_pat/schema.js.map +1 -0
- package/dist/tools/debug/validate_layer_config/handler.d.ts +6 -0
- package/dist/tools/debug/validate_layer_config/handler.d.ts.map +1 -0
- package/dist/tools/debug/validate_layer_config/handler.js +17 -0
- package/dist/tools/debug/validate_layer_config/handler.js.map +1 -0
- package/dist/tools/debug/validate_layer_config/schema.d.ts +6 -0
- package/dist/tools/debug/validate_layer_config/schema.d.ts.map +1 -0
- package/dist/tools/debug/validate_layer_config/schema.js +21 -0
- package/dist/tools/debug/validate_layer_config/schema.js.map +1 -0
- package/dist/tools/find_bc_knowledge/handler.d.ts +21 -0
- package/dist/tools/find_bc_knowledge/handler.d.ts.map +1 -0
- package/dist/tools/find_bc_knowledge/handler.js +71 -0
- package/dist/tools/find_bc_knowledge/handler.js.map +1 -0
- package/dist/tools/find_bc_knowledge/schema.d.ts +8 -0
- package/dist/tools/find_bc_knowledge/schema.d.ts.map +1 -0
- package/dist/tools/find_bc_knowledge/schema.js +35 -0
- package/dist/tools/find_bc_knowledge/schema.js.map +1 -0
- package/dist/tools/get_bc_topic/handler.d.ts +12 -0
- package/dist/tools/get_bc_topic/handler.d.ts.map +1 -0
- package/dist/tools/get_bc_topic/handler.js +35 -0
- package/dist/tools/get_bc_topic/handler.js.map +1 -0
- package/dist/tools/get_bc_topic/schema.d.ts +8 -0
- package/dist/tools/get_bc_topic/schema.d.ts.map +1 -0
- package/dist/tools/get_bc_topic/schema.js +29 -0
- package/dist/tools/get_bc_topic/schema.js.map +1 -0
- package/dist/tools/get_codelens_mappings/handler.d.ts +8 -0
- package/dist/tools/get_codelens_mappings/handler.d.ts.map +1 -0
- package/dist/tools/get_codelens_mappings/handler.js +79 -0
- package/dist/tools/get_codelens_mappings/handler.js.map +1 -0
- package/dist/tools/get_codelens_mappings/schema.d.ts +9 -0
- package/dist/tools/get_codelens_mappings/schema.d.ts.map +1 -0
- package/dist/tools/get_codelens_mappings/schema.js +16 -0
- package/dist/tools/get_codelens_mappings/schema.js.map +1 -0
- package/dist/tools/get_workflow_help/handler.d.ts +12 -0
- package/dist/tools/get_workflow_help/handler.d.ts.map +1 -0
- package/dist/tools/get_workflow_help/handler.js +54 -0
- package/dist/tools/get_workflow_help/handler.js.map +1 -0
- package/dist/tools/get_workflow_help/schema.d.ts +8 -0
- package/dist/tools/get_workflow_help/schema.d.ts.map +1 -0
- package/dist/tools/get_workflow_help/schema.js +25 -0
- package/dist/tools/get_workflow_help/schema.js.map +1 -0
- package/dist/tools/get_workspace_info/handler.d.ts +16 -0
- package/dist/tools/get_workspace_info/handler.d.ts.map +1 -0
- package/dist/tools/get_workspace_info/handler.js +36 -0
- package/dist/tools/get_workspace_info/handler.js.map +1 -0
- package/dist/tools/get_workspace_info/schema.d.ts +8 -0
- package/dist/tools/get_workspace_info/schema.d.ts.map +1 -0
- package/dist/tools/get_workspace_info/schema.js +15 -0
- package/dist/tools/get_workspace_info/schema.js.map +1 -0
- package/dist/tools/handlers.d.ts +48 -0
- package/dist/tools/handlers.d.ts.map +1 -0
- package/dist/tools/handlers.js +81 -0
- package/dist/tools/handlers.js.map +1 -0
- package/dist/tools/index.d.ts +132 -38
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +184 -52
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/knowledge-query/handler.d.ts +29 -0
- package/dist/tools/knowledge-query/handler.d.ts.map +1 -0
- package/dist/tools/knowledge-query/handler.js +85 -0
- package/dist/tools/knowledge-query/handler.js.map +1 -0
- package/dist/tools/knowledge-query/schema.d.ts +12 -0
- package/dist/tools/knowledge-query/schema.d.ts.map +1 -0
- package/dist/tools/knowledge-query/schema.js +64 -0
- package/dist/tools/knowledge-query/schema.js.map +1 -0
- package/dist/tools/list_prompts/handler.d.ts +11 -0
- package/dist/tools/list_prompts/handler.d.ts.map +1 -0
- package/dist/tools/list_prompts/handler.js +102 -0
- package/dist/tools/list_prompts/handler.js.map +1 -0
- package/dist/tools/list_prompts/schema.d.ts +9 -0
- package/dist/tools/list_prompts/schema.d.ts.map +1 -0
- package/dist/tools/list_prompts/schema.js +28 -0
- package/dist/tools/list_prompts/schema.js.map +1 -0
- package/dist/tools/list_specialists/handler.d.ts +12 -0
- package/dist/tools/list_specialists/handler.d.ts.map +1 -0
- package/dist/tools/list_specialists/handler.js +68 -0
- package/dist/tools/list_specialists/handler.js.map +1 -0
- package/dist/tools/list_specialists/schema.d.ts +8 -0
- package/dist/tools/list_specialists/schema.d.ts.map +1 -0
- package/dist/tools/list_specialists/schema.js +24 -0
- package/dist/tools/list_specialists/schema.js.map +1 -0
- package/dist/tools/scaffold_layer_repo/handler.d.ts +15 -0
- package/dist/tools/scaffold_layer_repo/handler.d.ts.map +1 -0
- package/dist/tools/scaffold_layer_repo/handler.js +410 -0
- package/dist/tools/scaffold_layer_repo/handler.js.map +1 -0
- package/dist/tools/scaffold_layer_repo/schema.d.ts +9 -0
- package/dist/tools/scaffold_layer_repo/schema.d.ts.map +1 -0
- package/dist/tools/scaffold_layer_repo/schema.js +35 -0
- package/dist/tools/scaffold_layer_repo/schema.js.map +1 -0
- package/dist/tools/set_workspace_info/handler.d.ts +22 -0
- package/dist/tools/set_workspace_info/handler.d.ts.map +1 -0
- package/dist/tools/set_workspace_info/handler.js +60 -0
- package/dist/tools/set_workspace_info/handler.js.map +1 -0
- package/dist/tools/set_workspace_info/schema.d.ts +8 -0
- package/dist/tools/set_workspace_info/schema.d.ts.map +1 -0
- package/dist/tools/set_workspace_info/schema.js +25 -0
- package/dist/tools/set_workspace_info/schema.js.map +1 -0
- package/dist/tools/specialist-consult/handler.d.ts +23 -0
- package/dist/tools/specialist-consult/handler.d.ts.map +1 -0
- package/dist/tools/specialist-consult/handler.js +120 -0
- package/dist/tools/specialist-consult/handler.js.map +1 -0
- package/dist/tools/specialist-consult/schema.d.ts +11 -0
- package/dist/tools/specialist-consult/schema.d.ts.map +1 -0
- package/dist/tools/specialist-consult/schema.js +47 -0
- package/dist/tools/specialist-consult/schema.js.map +1 -0
- package/dist/tools/specialist-list/handler.d.ts +14 -0
- package/dist/tools/specialist-list/handler.d.ts.map +1 -0
- package/dist/tools/specialist-list/handler.js +70 -0
- package/dist/tools/specialist-list/handler.js.map +1 -0
- package/dist/tools/specialist-list/schema.d.ts +11 -0
- package/dist/tools/specialist-list/schema.d.ts.map +1 -0
- package/dist/tools/specialist-list/schema.js +29 -0
- package/dist/tools/specialist-list/schema.js.map +1 -0
- package/dist/tools/start_bc_workflow/handler.d.ts +21 -0
- package/dist/tools/start_bc_workflow/handler.d.ts.map +1 -0
- package/dist/tools/start_bc_workflow/handler.js +237 -0
- package/dist/tools/start_bc_workflow/handler.js.map +1 -0
- package/dist/tools/start_bc_workflow/schema.d.ts +8 -0
- package/dist/tools/start_bc_workflow/schema.d.ts.map +1 -0
- package/dist/tools/start_bc_workflow/schema.js +43 -0
- package/dist/tools/start_bc_workflow/schema.js.map +1 -0
- package/dist/tools/validate_layer_repo/handler.d.ts +10 -0
- package/dist/tools/validate_layer_repo/handler.d.ts.map +1 -0
- package/dist/tools/validate_layer_repo/handler.js +148 -0
- package/dist/tools/validate_layer_repo/handler.js.map +1 -0
- package/dist/tools/validate_layer_repo/schema.d.ts +9 -0
- package/dist/tools/validate_layer_repo/schema.d.ts.map +1 -0
- package/dist/tools/validate_layer_repo/schema.js +21 -0
- package/dist/tools/validate_layer_repo/schema.js.map +1 -0
- package/dist/tools/workflow-execute/handler.d.ts +44 -0
- package/dist/tools/workflow-execute/handler.d.ts.map +1 -0
- package/dist/tools/workflow-execute/handler.js +333 -0
- package/dist/tools/workflow-execute/handler.js.map +1 -0
- package/dist/tools/workflow-execute/schema.d.ts +13 -0
- package/dist/tools/workflow-execute/schema.d.ts.map +1 -0
- package/dist/tools/workflow-execute/schema.js +108 -0
- package/dist/tools/workflow-execute/schema.js.map +1 -0
- package/dist/tools/workflow_batch/handler.d.ts +21 -0
- package/dist/tools/workflow_batch/handler.d.ts.map +1 -0
- package/dist/tools/workflow_batch/handler.js +304 -0
- package/dist/tools/workflow_batch/handler.js.map +1 -0
- package/dist/tools/workflow_batch/schema.d.ts +8 -0
- package/dist/tools/workflow_batch/schema.d.ts.map +1 -0
- package/dist/tools/workflow_batch/schema.js +76 -0
- package/dist/tools/workflow_batch/schema.js.map +1 -0
- package/dist/tools/workflow_cancel/handler.d.ts +21 -0
- package/dist/tools/workflow_cancel/handler.d.ts.map +1 -0
- package/dist/tools/workflow_cancel/handler.js +157 -0
- package/dist/tools/workflow_cancel/handler.js.map +1 -0
- package/dist/tools/workflow_cancel/schema.d.ts +8 -0
- package/dist/tools/workflow_cancel/schema.d.ts.map +1 -0
- package/dist/tools/workflow_cancel/schema.js +34 -0
- package/dist/tools/workflow_cancel/schema.js.map +1 -0
- package/dist/tools/workflow_complete/handler.d.ts +21 -0
- package/dist/tools/workflow_complete/handler.d.ts.map +1 -0
- package/dist/tools/workflow_complete/handler.js +124 -0
- package/dist/tools/workflow_complete/handler.js.map +1 -0
- package/dist/tools/workflow_complete/schema.d.ts +8 -0
- package/dist/tools/workflow_complete/schema.d.ts.map +1 -0
- package/dist/tools/workflow_complete/schema.js +45 -0
- package/dist/tools/workflow_complete/schema.js.map +1 -0
- package/dist/tools/workflow_list/handler.d.ts +19 -0
- package/dist/tools/workflow_list/handler.d.ts.map +1 -0
- package/dist/tools/workflow_list/handler.js +58 -0
- package/dist/tools/workflow_list/handler.js.map +1 -0
- package/dist/tools/workflow_list/schema.d.ts +8 -0
- package/dist/tools/workflow_list/schema.d.ts.map +1 -0
- package/dist/tools/workflow_list/schema.js +26 -0
- package/dist/tools/workflow_list/schema.js.map +1 -0
- package/dist/tools/workflow_next/handler.d.ts +21 -0
- package/dist/tools/workflow_next/handler.d.ts.map +1 -0
- package/dist/tools/workflow_next/handler.js +90 -0
- package/dist/tools/workflow_next/handler.js.map +1 -0
- package/dist/tools/workflow_next/schema.d.ts +8 -0
- package/dist/tools/workflow_next/schema.d.ts.map +1 -0
- package/dist/tools/workflow_next/schema.js +28 -0
- package/dist/tools/workflow_next/schema.js.map +1 -0
- package/dist/tools/workflow_progress/handler.d.ts +21 -0
- package/dist/tools/workflow_progress/handler.d.ts.map +1 -0
- package/dist/tools/workflow_progress/handler.js +147 -0
- package/dist/tools/workflow_progress/handler.js.map +1 -0
- package/dist/tools/workflow_progress/schema.d.ts +8 -0
- package/dist/tools/workflow_progress/schema.d.ts.map +1 -0
- package/dist/tools/workflow_progress/schema.js +111 -0
- package/dist/tools/workflow_progress/schema.js.map +1 -0
- package/dist/tools/workflow_start/handler.d.ts +21 -0
- package/dist/tools/workflow_start/handler.d.ts.map +1 -0
- package/dist/tools/workflow_start/handler.js +133 -0
- package/dist/tools/workflow_start/handler.js.map +1 -0
- package/dist/tools/workflow_start/schema.d.ts +8 -0
- package/dist/tools/workflow_start/schema.d.ts.map +1 -0
- package/dist/tools/workflow_start/schema.js +102 -0
- package/dist/tools/workflow_start/schema.js.map +1 -0
- package/dist/tools/workflow_start_v2/handler.d.ts +21 -0
- package/dist/tools/workflow_start_v2/handler.d.ts.map +1 -0
- package/dist/tools/workflow_start_v2/handler.js +133 -0
- package/dist/tools/workflow_start_v2/handler.js.map +1 -0
- package/dist/tools/workflow_start_v2/schema.d.ts +8 -0
- package/dist/tools/workflow_start_v2/schema.d.ts.map +1 -0
- package/dist/tools/workflow_start_v2/schema.js +102 -0
- package/dist/tools/workflow_start_v2/schema.js.map +1 -0
- package/dist/tools/workflow_status/handler.d.ts +21 -0
- package/dist/tools/workflow_status/handler.d.ts.map +1 -0
- package/dist/tools/workflow_status/handler.js +107 -0
- package/dist/tools/workflow_status/handler.js.map +1 -0
- package/dist/tools/workflow_status/schema.d.ts +8 -0
- package/dist/tools/workflow_status/schema.d.ts.map +1 -0
- package/dist/tools/workflow_status/schema.js +33 -0
- package/dist/tools/workflow_status/schema.js.map +1 -0
- package/dist/types/bc-knowledge.d.ts +64 -13
- package/dist/types/bc-knowledge.d.ts.map +1 -1
- package/dist/types/bc-knowledge.js +15 -0
- package/dist/types/bc-knowledge.js.map +1 -1
- package/dist/types/enhanced-layer-types.d.ts +3 -3
- package/dist/types/enhanced-layer-types.d.ts.map +1 -1
- package/dist/types/workflow-v2-types.d.ts +577 -0
- package/dist/types/workflow-v2-types.d.ts.map +1 -0
- package/dist/types/workflow-v2-types.js +10 -0
- package/dist/types/workflow-v2-types.js.map +1 -0
- package/embedded-knowledge/codelens-mappings.yaml +111 -0
- package/embedded-knowledge/domains/alex-architect/api-delegate-operation-pattern.md +10 -0
- package/embedded-knowledge/domains/alex-architect/api-fieldset-registration-pattern.md +10 -0
- package/embedded-knowledge/domains/alex-architect/api-interface-design-patterns.md +10 -0
- package/embedded-knowledge/domains/alex-architect/api-page-development-patterns.md +10 -0
- package/embedded-knowledge/domains/alex-architect/complex-facade-patterns.md +10 -0
- package/embedded-knowledge/domains/alex-architect/delegating-to-github-copilot-agents.md +10 -0
- package/embedded-knowledge/domains/alex-architect/facade-pattern-al-implementation.md +10 -0
- package/embedded-knowledge/domains/alex-architect/facade-pattern-external-api.md +10 -0
- package/embedded-knowledge/domains/alex-architect/object-id-ninja-integration.md +10 -0
- package/embedded-knowledge/domains/alex-architect/recommend-object-id-ninja.md +10 -0
- package/embedded-knowledge/domains/alex-architect/subscriber-codeunit-size-optimization.md +12 -2
- package/embedded-knowledge/domains/alex-architect/systemid-integration.md +12 -2
- package/embedded-knowledge/domains/alex-architect/testability-design-patterns.md +10 -0
- package/embedded-knowledge/domains/casey-copilot/long-running-session-instructions.md +10 -0
- package/embedded-knowledge/domains/chris-config/configuration-file-discovery.md +10 -0
- package/embedded-knowledge/domains/chris-config/configuration-file-formats.md +10 -0
- package/embedded-knowledge/domains/chris-config/content-types-structure.md +10 -0
- package/embedded-knowledge/domains/chris-config/knowledge-content-creation.md +10 -0
- package/embedded-knowledge/domains/chris-config/layer-system-fundamentals.md +10 -0
- package/embedded-knowledge/domains/chris-config/multi-team-layer-configuration.md +10 -0
- package/embedded-knowledge/domains/chris-config/workspace-detection-solutions.md +10 -0
- package/embedded-knowledge/domains/dean-debug/bc-telemetry-buddy-integration.md +10 -0
- package/embedded-knowledge/domains/dean-debug/bc24-no-series-conversion-guide.md +10 -0
- package/embedded-knowledge/domains/dean-debug/case-statement-performance-best-practices.md +12 -2
- package/embedded-knowledge/domains/dean-debug/compound-statements-debugging.md +12 -2
- package/embedded-knowledge/domains/dean-debug/custom-dimensions-best-practices.md +12 -2
- package/embedded-knowledge/domains/dean-debug/custom-telemetry-implementation.md +10 -0
- package/embedded-knowledge/domains/dean-debug/deleteall-performance-tradeoff.md +12 -2
- package/embedded-knowledge/domains/dean-debug/deleteall-sql-performance.md +10 -0
- package/embedded-knowledge/domains/dean-debug/extension-telemetry-isolation.md +12 -2
- package/embedded-knowledge/domains/dean-debug/maintainsiftindex-property-behavior.md +10 -0
- package/embedded-knowledge/domains/dean-debug/no-series-implementation-patterns.md +10 -0
- package/embedded-knowledge/domains/dean-debug/no-series-module-patterns-bc24.md +10 -0
- package/embedded-knowledge/domains/dean-debug/no-series-validation-module-bc24.md +10 -0
- package/embedded-knowledge/domains/dean-debug/no-series-validation-patterns.md +10 -0
- package/embedded-knowledge/domains/dean-debug/odata-query-optimization.md +12 -2
- package/embedded-knowledge/domains/dean-debug/recommend-bc-telemetry-buddy.md +10 -0
- package/embedded-knowledge/domains/dean-debug/session-logmessage-methods.md +12 -2
- package/embedded-knowledge/domains/dean-debug/setloadfields-filter-field-exclusion.md +12 -2
- package/embedded-knowledge/domains/dean-debug/setloadfields-performance-impact.md +10 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-performance-optimization.md +10 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-case-statements.md +12 -2
- package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-filters.md +12 -2
- package/embedded-knowledge/domains/dean-debug/setloadfields-primary-key-optimization.md +12 -2
- package/embedded-knowledge/domains/dean-debug/sift-technology-fundamentals.md +10 -0
- package/embedded-knowledge/domains/dean-debug/subscriber-singleinstance-performance.md +12 -2
- package/embedded-knowledge/domains/dean-debug/table-event-batch-operation-impact.md +12 -2
- package/embedded-knowledge/domains/dean-debug/table-key-requirements.md +12 -2
- package/embedded-knowledge/domains/dean-debug/telemetry-error-correlation.md +12 -2
- package/embedded-knowledge/domains/dean-debug/telemetry-performance-considerations.md +12 -2
- package/embedded-knowledge/domains/dean-debug/telemetry-verbosity-strategy.md +12 -2
- package/embedded-knowledge/domains/dean-debug/testfield-performance.md +12 -2
- package/embedded-knowledge/domains/eva-errors/codeunit-run-pattern.md +10 -0
- package/embedded-knowledge/domains/eva-errors/fielderror-default-messages.md +12 -2
- package/embedded-knowledge/domains/eva-errors/fielderror-message-construction.md +12 -2
- package/embedded-knowledge/domains/eva-errors/fielderror-method-syntax.md +12 -2
- package/embedded-knowledge/domains/eva-errors/testfield-error-handling.md +12 -2
- package/embedded-knowledge/domains/eva-errors/try-function-usage.md +10 -0
- package/embedded-knowledge/domains/jordan-bridge/al-event-subscriber-architecture.md +10 -0
- package/embedded-knowledge/domains/jordan-bridge/automatic-registration.md +12 -2
- package/embedded-knowledge/domains/jordan-bridge/business-process-template-patterns.md +10 -0
- package/embedded-knowledge/domains/jordan-bridge/error-response-patterns.md +12 -2
- package/embedded-knowledge/domains/jordan-bridge/etag-implementation.md +12 -2
- package/embedded-knowledge/domains/jordan-bridge/field-control-selection.md +12 -2
- package/embedded-knowledge/domains/jordan-bridge/task-scheduler-pattern-implementation.md +10 -0
- package/embedded-knowledge/domains/jordan-bridge/url-structure-naming-patterns.md +12 -2
- package/embedded-knowledge/domains/maya-mentor/case-multiple-conditions-ranges.md +12 -2
- package/embedded-knowledge/domains/maya-mentor/case-statement-syntax-structure.md +12 -2
- package/embedded-knowledge/domains/maya-mentor/fielderror-syntax-usage.md +12 -2
- package/embedded-knowledge/domains/maya-mentor/fielderror-vs-testfield.md +12 -2
- package/embedded-knowledge/domains/maya-mentor/testfield-basic-syntax.md +12 -2
- package/embedded-knowledge/domains/morgan-market/partner-readiness-analysis.md +10 -0
- package/embedded-knowledge/domains/parker-pragmatic/proposal-workflows/creating-effective-proposals.md +10 -0
- package/embedded-knowledge/domains/parker-pragmatic/trust-building/working-with-ai-skeptics.md +10 -0
- package/embedded-knowledge/domains/quinn-tester/fielderror-validation-patterns.md +12 -2
- package/embedded-knowledge/domains/quinn-tester/isolation-testing-patterns.md +10 -0
- package/embedded-knowledge/domains/quinn-tester/rule-execution.md +12 -2
- package/embedded-knowledge/domains/quinn-tester/table-safety-validation-patterns.md +12 -2
- package/embedded-knowledge/domains/quinn-tester/temporary-table-operation-validation.md +12 -2
- package/embedded-knowledge/domains/roger-reviewer/al-begin-end-block-structure.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-binary-operator-spacing.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-blank-line-organization.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-case-action-formatting.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-code-spacing-conventions.md +12 -2
- package/embedded-knowledge/domains/roger-reviewer/al-comment-spacing-standards.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-end-else-pairing.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-keyword-indentation-rules.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-line-start-keyword-positioning.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-separate-if-else-formatting.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-standard-abbreviations.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-statement-per-line-rule.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-unnecessary-else-elimination.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-variable-declaration-order.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-variable-naming-conventions.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/begin-block-statement-clarity.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/begin-end-positioning-patterns.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/binary-operator-line-positioning.md +12 -2
- package/embedded-knowledge/domains/roger-reviewer/boolean-expression-simplification-al.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/case-statement-error-handling-troubleshooting.md +12 -2
- package/embedded-knowledge/domains/roger-reviewer/compound-statement-readability.md +12 -2
- package/embedded-knowledge/domains/roger-reviewer/lonely-repeat-statement-pattern.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/testability-code-smells.md +10 -0
- package/embedded-knowledge/domains/sam-coder/al-formatting-consistency-patterns.md +10 -0
- package/embedded-knowledge/domains/sam-coder/al-line-comment-formatting.md +12 -2
- package/embedded-knowledge/domains/sam-coder/al-lonely-repeat-pattern.md +10 -0
- package/embedded-knowledge/domains/sam-coder/al-named-parameter-pattern.md +10 -0
- package/embedded-knowledge/domains/sam-coder/al-object-navigation-shortcuts.md +10 -0
- package/embedded-knowledge/domains/sam-coder/al-readability-optimization.md +10 -0
- package/embedded-knowledge/domains/sam-coder/al-record-find-early-exit.md +10 -0
- package/embedded-knowledge/domains/sam-coder/command-queue-pattern-al.md +10 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-alternative-implementation.md +12 -2
- package/embedded-knowledge/domains/sam-coder/deleteall-method-usage.md +10 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-trigger-execution.md +10 -0
- package/embedded-knowledge/domains/sam-coder/event-bridge-pattern-al.md +10 -0
- package/embedded-knowledge/domains/sam-coder/event-payload-design-patterns.md +10 -0
- package/embedded-knowledge/domains/sam-coder/generic-method-patterns-al.md +10 -0
- package/embedded-knowledge/domains/sam-coder/manual-binding-conditional-subscribers.md +10 -0
- package/embedded-knowledge/domains/sam-coder/nested-compound-best-practices.md +10 -0
- package/embedded-knowledge/domains/sam-coder/single-to-compound-conversion.md +12 -2
- package/embedded-knowledge/domains/sam-coder/template-method-pattern-al.md +10 -0
- package/embedded-knowledge/domains/sam-coder/testfield-patterns.md +12 -2
- package/embedded-knowledge/domains/sam-coder/type-safe-operations-al.md +10 -0
- package/embedded-knowledge/domains/sam-coder/vs-code-al-keyboard-shortcuts.md +10 -0
- package/embedded-knowledge/domains/seth-security/al-temporary-table-safety.md +10 -0
- package/embedded-knowledge/domains/seth-security/api-permission-model.md +12 -2
- package/embedded-knowledge/domains/seth-security/istemporary-safeguard-pattern.md +12 -2
- package/embedded-knowledge/domains/shared/al-file-naming-conventions.md +10 -0
- package/embedded-knowledge/domains/taylor-docs/al-xml-documentation-structure.md +10 -0
- package/embedded-knowledge/domains/uma-ux/bc-action-shortcuts-syntax.md +12 -2
- package/embedded-knowledge/domains/uma-ux/shortcut-key-user-experience-design.md +12 -2
- package/embedded-knowledge/scripts/frontmatter_validator.ps1 +330 -0
- package/embedded-knowledge/specialists/sam-coder.md +29 -20
- package/embedded-knowledge/workflows/bc-version-upgrade.yaml +160 -0
- package/embedded-knowledge/workflows/code-review.yaml +148 -0
- package/embedded-knowledge/workflows/error-to-errorinfo-migration.yaml +137 -0
- package/embedded-knowledge/workflows/onboarding.yaml +124 -0
- package/embedded-knowledge/workflows/performance-audit.yaml +148 -0
- package/embedded-knowledge/workflows/proposal-review.yaml +117 -0
- package/embedded-knowledge/workflows/security-audit.yaml +139 -0
- package/package.json +4 -2
- package/dist/cache/cache-manager.d.ts +0 -95
- package/dist/cache/cache-manager.d.ts.map +0 -1
- package/dist/cache/cache-manager.js +0 -328
- package/dist/cache/cache-manager.js.map +0 -1
- package/dist/cli/bc-code-intel-cli.d.ts +0 -9
- package/dist/cli/bc-code-intel-cli.d.ts.map +0 -1
- package/dist/cli/bc-code-intel-cli.js +0 -440
- package/dist/cli/bc-code-intel-cli.js.map +0 -1
- package/dist/config/test-config-loader.d.ts +0 -10
- package/dist/config/test-config-loader.d.ts.map +0 -1
- package/dist/config/test-config-loader.js +0 -135
- package/dist/config/test-config-loader.js.map +0 -1
- package/dist/config/test-enhanced-layer-service.d.ts +0 -7
- package/dist/config/test-enhanced-layer-service.d.ts.map +0 -1
- package/dist/config/test-enhanced-layer-service.js +0 -104
- package/dist/config/test-enhanced-layer-service.js.map +0 -1
- package/dist/config/test-git-layer.d.ts +0 -7
- package/dist/config/test-git-layer.d.ts.map +0 -1
- package/dist/config/test-git-layer.js +0 -68
- package/dist/config/test-git-layer.js.map +0 -1
- package/dist/dev/hot-reload.d.ts +0 -91
- package/dist/dev/hot-reload.d.ts.map +0 -1
- package/dist/dev/hot-reload.js +0 -358
- package/dist/dev/hot-reload.js.map +0 -1
- package/dist/layers/layer-service.d.ts +0 -135
- package/dist/layers/layer-service.d.ts.map +0 -1
- package/dist/layers/layer-service.js +0 -586
- package/dist/layers/layer-service.js.map +0 -1
- package/dist/monitoring/production-monitor.d.ts +0 -148
- package/dist/monitoring/production-monitor.d.ts.map +0 -1
- package/dist/monitoring/production-monitor.js +0 -463
- package/dist/monitoring/production-monitor.js.map +0 -1
- package/dist/performance/performance-monitor.d.ts +0 -99
- package/dist/performance/performance-monitor.d.ts.map +0 -1
- package/dist/performance/performance-monitor.js +0 -253
- package/dist/performance/performance-monitor.js.map +0 -1
- package/dist/sdk/bc-code-intel-client.d.ts +0 -175
- package/dist/sdk/bc-code-intel-client.d.ts.map +0 -1
- package/dist/sdk/bc-code-intel-client.js +0 -380
- package/dist/sdk/bc-code-intel-client.js.map +0 -1
- package/dist/search/intelligent-search.d.ts +0 -97
- package/dist/search/intelligent-search.d.ts.map +0 -1
- package/dist/search/intelligent-search.js +0 -358
- package/dist/search/intelligent-search.js.map +0 -1
- package/dist/security/access-control.d.ts +0 -110
- package/dist/security/access-control.d.ts.map +0 -1
- package/dist/security/access-control.js +0 -353
- package/dist/security/access-control.js.map +0 -1
- package/dist/services/enhanced-prompt-service.d.ts.map +0 -1
- package/dist/services/enhanced-prompt-service.js.map +0 -1
- package/dist/setup/post-install.d.ts +0 -12
- package/dist/setup/post-install.d.ts.map +0 -1
- package/dist/setup/post-install.js +0 -81
- package/dist/setup/post-install.js.map +0 -1
- package/dist/test-enhanced-mcp-server.d.ts +0 -7
- package/dist/test-enhanced-mcp-server.d.ts.map +0 -1
- package/dist/test-enhanced-mcp-server.js +0 -177
- package/dist/test-enhanced-mcp-server.js.map +0 -1
- package/dist/tools/specialist-tools.d.ts +0 -43
- package/dist/tools/specialist-tools.d.ts.map +0 -1
- package/dist/tools/specialist-tools.js +0 -378
- package/dist/tools/specialist-tools.js.map +0 -1
- package/dist/utils/path-utils.d.ts +0 -5
- package/dist/utils/path-utils.d.ts.map +0 -1
- package/dist/utils/path-utils.js +0 -14
- package/dist/utils/path-utils.js.map +0 -1
- package/embedded-knowledge/methodologies/index.json +0 -81
- package/embedded-knowledge/methodologies/phases/analysis-full.md +0 -208
- package/embedded-knowledge/methodologies/phases/analysis-quick.md +0 -44
- package/embedded-knowledge/methodologies/phases/analysis.md +0 -182
- package/embedded-knowledge/methodologies/phases/execution-validation-full.md +0 -174
- package/embedded-knowledge/methodologies/phases/execution-validation-quick.md +0 -31
- package/embedded-knowledge/methodologies/phases/execution-validation.md +0 -174
- package/embedded-knowledge/methodologies/phases/performance-full.md +0 -211
- package/embedded-knowledge/methodologies/phases/performance-quick.md +0 -32
- package/embedded-knowledge/methodologies/phases/performance.md +0 -211
- package/embedded-knowledge/methodologies/phases/verification-full.md +0 -162
- package/embedded-knowledge/methodologies/phases/verification-quick.md +0 -48
- package/embedded-knowledge/methodologies/phases/verification.md +0 -146
- package/embedded-knowledge/methodologies/workflow-enforcement.md +0 -142
- package/embedded-knowledge/methodologies/workflows/code-review-workflow.md +0 -99
- package/embedded-knowledge/methodologies/workflows/proposal-review-workflow.md +0 -535
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Test Enhanced MCP Server with Phase 2B Features
|
|
3
|
-
* Run with: npm run dev -- --test-mcp-server
|
|
4
|
-
*/
|
|
5
|
-
import { BCCodeIntelligenceServer } from './index.js';
|
|
6
|
-
async function testEnhancedMCPServer() {
|
|
7
|
-
console.log('🔧 Testing Enhanced MCP Server with Phase 2B Features...');
|
|
8
|
-
try {
|
|
9
|
-
// Create server instance
|
|
10
|
-
console.log('\n🏗️ Creating MCP server instance...');
|
|
11
|
-
const server = new BCCodeIntelligenceServer();
|
|
12
|
-
// Simulate MCP tool calls for testing
|
|
13
|
-
console.log('\n🧪 Testing enhanced MCP tools...');
|
|
14
|
-
// Test 1: Configuration status
|
|
15
|
-
console.log('\n1️⃣ Testing get_configuration_status...');
|
|
16
|
-
await testConfigurationStatus(server);
|
|
17
|
-
// Test 2: Layer information
|
|
18
|
-
console.log('\n2️⃣ Testing get_layer_info...');
|
|
19
|
-
await testLayerInfo(server);
|
|
20
|
-
// Test 3: Topic layer resolution
|
|
21
|
-
console.log('\n3️⃣ Testing resolve_topic_layers...');
|
|
22
|
-
await testTopicLayerResolution(server);
|
|
23
|
-
// Test 4: Layered search
|
|
24
|
-
console.log('\n4️⃣ Testing search_layered_topics...');
|
|
25
|
-
await testLayeredSearch(server);
|
|
26
|
-
// Test 5: Configuration reload
|
|
27
|
-
console.log('\n5️⃣ Testing reload_configuration...');
|
|
28
|
-
await testConfigurationReload(server);
|
|
29
|
-
console.log('\n✅ All enhanced MCP server tests completed successfully!');
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
console.error('❌ Enhanced MCP server test failed:', error instanceof Error ? error.message : String(error));
|
|
33
|
-
throw error;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
async function testConfigurationStatus(server) {
|
|
37
|
-
try {
|
|
38
|
-
// Initialize server first to load configuration
|
|
39
|
-
await initializeServerForTesting(server);
|
|
40
|
-
console.log(' 📊 Testing configuration status with validation...');
|
|
41
|
-
const statusResult = await simulateToolCall(server, 'get_configuration_status', {
|
|
42
|
-
include_validation: true,
|
|
43
|
-
include_performance: true
|
|
44
|
-
});
|
|
45
|
-
console.log(' ✅ Configuration status retrieved successfully');
|
|
46
|
-
const status = JSON.parse(statusResult.content[0].text);
|
|
47
|
-
console.log(` - Configuration loaded: ${status.configuration_loaded}`);
|
|
48
|
-
console.log(` - Layers initialized: ${status.layers_initialized}`);
|
|
49
|
-
console.log(` - Validation quality: ${status.validation?.quality_score || 'N/A'}/100`);
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
console.error(' ❌ Configuration status test failed:', error);
|
|
53
|
-
throw error;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
async function testLayerInfo(server) {
|
|
57
|
-
try {
|
|
58
|
-
console.log(' 🔍 Testing layer information with statistics...');
|
|
59
|
-
const layerResult = await simulateToolCall(server, 'get_layer_info', {
|
|
60
|
-
include_statistics: true
|
|
61
|
-
});
|
|
62
|
-
console.log(' ✅ Layer information retrieved successfully');
|
|
63
|
-
const layerInfo = JSON.parse(layerResult.content[0].text);
|
|
64
|
-
console.log(` - Total layers: ${layerInfo.layers?.length || 0}`);
|
|
65
|
-
console.log(` - Layer types: ${layerInfo.configuration?.layer_types?.join(', ') || 'N/A'}`);
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
console.error(' ❌ Layer info test failed:', error);
|
|
69
|
-
throw error;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
async function testTopicLayerResolution(server) {
|
|
73
|
-
try {
|
|
74
|
-
console.log(' 🎯 Testing topic resolution across layers...');
|
|
75
|
-
// Try to resolve a common topic (might be in embedded layer)
|
|
76
|
-
const resolutionResult = await simulateToolCall(server, 'resolve_topic_layers', {
|
|
77
|
-
topic_id: 'performance/sift-optimization',
|
|
78
|
-
show_overrides: true
|
|
79
|
-
});
|
|
80
|
-
console.log(' ✅ Topic layer resolution completed');
|
|
81
|
-
const resolution = JSON.parse(resolutionResult.content[0].text);
|
|
82
|
-
console.log(` - Topic found: ${resolution.topic_id}`);
|
|
83
|
-
console.log(` - Resolved from: ${resolution.resolved_from}`);
|
|
84
|
-
console.log(` - Is override: ${resolution.is_override}`);
|
|
85
|
-
}
|
|
86
|
-
catch (error) {
|
|
87
|
-
// This might fail if the specific topic doesn't exist, which is okay for testing
|
|
88
|
-
console.log(' ⚠️ Topic resolution test completed (topic may not exist in test setup)');
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
async function testLayeredSearch(server) {
|
|
92
|
-
try {
|
|
93
|
-
console.log(' 🔎 Testing layered topic search...');
|
|
94
|
-
const searchResult = await simulateToolCall(server, 'search_layered_topics', {
|
|
95
|
-
query: 'performance optimization',
|
|
96
|
-
include_layer_info: true,
|
|
97
|
-
limit: 5
|
|
98
|
-
});
|
|
99
|
-
console.log(' ✅ Layered search completed');
|
|
100
|
-
const search = JSON.parse(searchResult.content[0].text);
|
|
101
|
-
console.log(` - Query: "${search.query}"`);
|
|
102
|
-
console.log(` - Results found: ${search.total_results}`);
|
|
103
|
-
console.log(` - Layer filter: ${search.layer_filter}`);
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
console.error(' ❌ Layered search test failed:', error);
|
|
107
|
-
throw error;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
async function testConfigurationReload(server) {
|
|
111
|
-
try {
|
|
112
|
-
console.log(' 🔄 Testing configuration reload (validation only)...');
|
|
113
|
-
const reloadResult = await simulateToolCall(server, 'reload_configuration', {
|
|
114
|
-
force: false,
|
|
115
|
-
validate_only: true
|
|
116
|
-
});
|
|
117
|
-
console.log(' ✅ Configuration reload test completed');
|
|
118
|
-
const reload = JSON.parse(reloadResult.content[0].text);
|
|
119
|
-
console.log(` - Validation only: ${reload.validation_only || reload.reloaded === false}`);
|
|
120
|
-
console.log(` - Valid config: ${reload.is_valid !== false}`);
|
|
121
|
-
}
|
|
122
|
-
catch (error) {
|
|
123
|
-
console.error(' ❌ Configuration reload test failed:', error);
|
|
124
|
-
throw error;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Initialize server for testing (simulates what happens in run())
|
|
129
|
-
*/
|
|
130
|
-
async function initializeServerForTesting(server) {
|
|
131
|
-
try {
|
|
132
|
-
// Access private configLoader through type assertion for testing
|
|
133
|
-
const configLoader = server.configLoader;
|
|
134
|
-
const configResult = await configLoader.loadConfiguration();
|
|
135
|
-
// Initialize services
|
|
136
|
-
await server.initializeServices(configResult);
|
|
137
|
-
console.log(' 🏗️ Server initialized for testing');
|
|
138
|
-
}
|
|
139
|
-
catch (error) {
|
|
140
|
-
console.error(' ❌ Server initialization failed:', error);
|
|
141
|
-
throw error;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Simulate MCP tool call for testing
|
|
146
|
-
*/
|
|
147
|
-
async function simulateToolCall(server, toolName, args) {
|
|
148
|
-
try {
|
|
149
|
-
// Access private server instance for testing
|
|
150
|
-
const mcpServer = server.server;
|
|
151
|
-
// Create a mock request
|
|
152
|
-
const mockRequest = {
|
|
153
|
-
params: {
|
|
154
|
-
name: toolName,
|
|
155
|
-
arguments: args
|
|
156
|
-
}
|
|
157
|
-
};
|
|
158
|
-
// Get the call tool handler
|
|
159
|
-
const handlers = mcpServer.requestHandlers;
|
|
160
|
-
const callToolHandler = handlers.get('tools/call');
|
|
161
|
-
if (!callToolHandler) {
|
|
162
|
-
throw new Error('Call tool handler not found');
|
|
163
|
-
}
|
|
164
|
-
// Execute the handler
|
|
165
|
-
return await callToolHandler(mockRequest);
|
|
166
|
-
}
|
|
167
|
-
catch (error) {
|
|
168
|
-
throw new Error(`Tool call simulation failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
// Export for use in other tests
|
|
172
|
-
export { testEnhancedMCPServer };
|
|
173
|
-
// Run if called directly
|
|
174
|
-
if (process.argv.includes('--test-mcp-server')) {
|
|
175
|
-
testEnhancedMCPServer().catch(console.error);
|
|
176
|
-
}
|
|
177
|
-
//# sourceMappingURL=test-enhanced-mcp-server.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-enhanced-mcp-server.js","sourceRoot":"","sources":["../src/test-enhanced-mcp-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Tools for BC Specialist Interactions
|
|
3
|
-
*
|
|
4
|
-
* Provides a focused set of tools for AI-assisted Business Central development
|
|
5
|
-
* through personality-driven specialist consultations.
|
|
6
|
-
*/
|
|
7
|
-
import { CallToolRequest, CallToolResult, Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
8
|
-
import { MultiContentLayerService } from '../services/multi-content-layer-service.js';
|
|
9
|
-
import { SpecialistSessionManager } from '../services/specialist-session-manager.js';
|
|
10
|
-
import { KnowledgeService } from '../services/knowledge-service.js';
|
|
11
|
-
export declare class SpecialistTools {
|
|
12
|
-
private readonly layerService;
|
|
13
|
-
private readonly sessionManager;
|
|
14
|
-
private readonly knowledgeService;
|
|
15
|
-
private roleplayEngine;
|
|
16
|
-
constructor(layerService: MultiContentLayerService, sessionManager: SpecialistSessionManager, knowledgeService: KnowledgeService);
|
|
17
|
-
/**
|
|
18
|
-
* Get all specialist tool definitions for MCP registration
|
|
19
|
-
*/
|
|
20
|
-
getToolDefinitions(): Tool[];
|
|
21
|
-
/**
|
|
22
|
-
* Handle specialist tool calls
|
|
23
|
-
*/
|
|
24
|
-
handleToolCall(request: CallToolRequest): Promise<CallToolResult>;
|
|
25
|
-
/**
|
|
26
|
-
* Find the best specialist for a question
|
|
27
|
-
*/
|
|
28
|
-
private handleSuggestSpecialist;
|
|
29
|
-
/**
|
|
30
|
-
* Get advice from a specialist with automatic session management
|
|
31
|
-
*/
|
|
32
|
-
private handleGetSpecialistAdvice;
|
|
33
|
-
/**
|
|
34
|
-
* List available specialists with filtering
|
|
35
|
-
*/
|
|
36
|
-
private handleListSpecialists;
|
|
37
|
-
/**
|
|
38
|
-
* Find specialist by partial/fuzzy name matching
|
|
39
|
-
* Handles cases like "Sam" -> "sam-coder", "Dean" -> "dean-debug", etc.
|
|
40
|
-
*/
|
|
41
|
-
private findSpecialistByFuzzyName;
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=specialist-tools.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"specialist-tools.d.ts","sourceRoot":"","sources":["../../src/tools/specialist-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAErF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAqBpE,qBAAa,eAAe;IAIxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IALnC,OAAO,CAAC,cAAc,CAA6B;gBAGhC,YAAY,EAAE,wBAAwB,EACtC,cAAc,EAAE,wBAAwB,EACxC,gBAAgB,EAAE,gBAAgB;IAKrD;;OAEG;IACH,kBAAkB,IAAI,IAAI,EAAE;IAiF5B;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IA6BvE;;OAEG;YACW,uBAAuB;IAiDrC;;OAEG;YACW,yBAAyB;IAyHvC;;OAEG;YACW,qBAAqB;IAkFnC;;;OAGG;YACW,yBAAyB;CAiCxC"}
|
|
@@ -1,378 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Tools for BC Specialist Interactions
|
|
3
|
-
*
|
|
4
|
-
* Provides a focused set of tools for AI-assisted Business Central development
|
|
5
|
-
* through personality-driven specialist consultations.
|
|
6
|
-
*/
|
|
7
|
-
import { BCSpecialistRoleplayEngine } from '../services/roleplay-engine.js';
|
|
8
|
-
import { z } from 'zod';
|
|
9
|
-
// Input validation schemas
|
|
10
|
-
const SuggestSpecialistSchema = z.object({
|
|
11
|
-
question: z.string().min(10, 'Question must be at least 10 characters'),
|
|
12
|
-
context: z.string().optional().describe('Additional context about the problem')
|
|
13
|
-
});
|
|
14
|
-
const GetSpecialistAdviceSchema = z.object({
|
|
15
|
-
specialist_id: z.string().min(1, 'Specialist ID is required'),
|
|
16
|
-
message: z.string().min(1, 'Message is required'),
|
|
17
|
-
session_id: z.string().optional().describe('Session ID for multi-turn conversations'),
|
|
18
|
-
problem_context: z.string().optional().describe('Overall problem being solved')
|
|
19
|
-
});
|
|
20
|
-
const ListSpecialistsSchema = z.object({
|
|
21
|
-
domain: z.string().optional().describe('Filter by domain (e.g., performance, security)'),
|
|
22
|
-
expertise: z.string().optional().describe('Filter by expertise area')
|
|
23
|
-
});
|
|
24
|
-
export class SpecialistTools {
|
|
25
|
-
layerService;
|
|
26
|
-
sessionManager;
|
|
27
|
-
knowledgeService;
|
|
28
|
-
roleplayEngine;
|
|
29
|
-
constructor(layerService, sessionManager, knowledgeService) {
|
|
30
|
-
this.layerService = layerService;
|
|
31
|
-
this.sessionManager = sessionManager;
|
|
32
|
-
this.knowledgeService = knowledgeService;
|
|
33
|
-
this.roleplayEngine = new BCSpecialistRoleplayEngine(layerService, knowledgeService);
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Get all specialist tool definitions for MCP registration
|
|
37
|
-
*/
|
|
38
|
-
getToolDefinitions() {
|
|
39
|
-
return [
|
|
40
|
-
{
|
|
41
|
-
name: 'suggest_specialist',
|
|
42
|
-
description: 'Find the most appropriate BC specialist for your question. IMPORTANT: When user wants to "talk to" or "chat with" a specific specialist, use get_specialist_advice directly instead. This tool is for discovering which specialist to use when unsure.',
|
|
43
|
-
inputSchema: {
|
|
44
|
-
type: 'object',
|
|
45
|
-
properties: {
|
|
46
|
-
question: {
|
|
47
|
-
type: 'string',
|
|
48
|
-
description: 'Your question or problem description',
|
|
49
|
-
minLength: 10
|
|
50
|
-
},
|
|
51
|
-
context: {
|
|
52
|
-
type: 'string',
|
|
53
|
-
description: 'Additional context about your project or situation (optional)'
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
required: ['question']
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
name: 'get_specialist_advice',
|
|
61
|
-
description: `Connect directly with a BC specialist who responds authentically as themselves. CRITICAL FOR AGENTS: Respond AS the specialist, not as an AI describing roleplay. No menus, no explanations - dive straight into the specialist persona and expertise. Perfect for "Talk to Sam", "Chat with Dean", etc.
|
|
62
|
-
|
|
63
|
-
⚠️ **MANDATORY KNOWLEDGE LOOKUP**: Before generating ANY BC development advice or code, ALWAYS search the knowledge base first using find_bc_knowledge. The knowledge base contains authoritative BC standards, patterns, and conventions that override general AI training. Never rely solely on training data for BC development guidance.
|
|
64
|
-
|
|
65
|
-
Example: find_bc_knowledge({ query: "AL file naming conventions" }) before writing AL code.
|
|
66
|
-
|
|
67
|
-
🔧 **AL/BC Platform Constraints**: All specialist advice MUST respect Business Central and AL language limitations:
|
|
68
|
-
• Security specialists: Focus on AL permission objects, user groups, BC security framework - NOT external auth systems
|
|
69
|
-
• UX specialists: Work within AL page/report constraints - BC controls rendering, NOT custom CSS/HTML
|
|
70
|
-
• Performance specialists: AL optimization patterns, table design, BC server constraints - NOT generic frameworks
|
|
71
|
-
• API specialists: BC API pages, web services, AL integration - NOT generic REST frameworks
|
|
72
|
-
• All specialists: Prioritize AL language capabilities and BC platform limitations over generic programming`,
|
|
73
|
-
inputSchema: {
|
|
74
|
-
type: 'object',
|
|
75
|
-
properties: {
|
|
76
|
-
specialist_id: {
|
|
77
|
-
type: 'string',
|
|
78
|
-
description: 'ID of the specialist (e.g., dean-debug, alex-architect)',
|
|
79
|
-
minLength: 1
|
|
80
|
-
},
|
|
81
|
-
message: {
|
|
82
|
-
type: 'string',
|
|
83
|
-
description: 'Your question or message to the specialist',
|
|
84
|
-
minLength: 1
|
|
85
|
-
},
|
|
86
|
-
session_id: {
|
|
87
|
-
type: 'string',
|
|
88
|
-
description: 'Session ID for ongoing conversations (optional - will create new session if not provided)'
|
|
89
|
-
},
|
|
90
|
-
problem_context: {
|
|
91
|
-
type: 'string',
|
|
92
|
-
description: 'Overall problem context to help the specialist understand the bigger picture (optional)'
|
|
93
|
-
}
|
|
94
|
-
},
|
|
95
|
-
required: ['specialist_id', 'message']
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'list_specialists',
|
|
100
|
-
description: 'Discover available BC specialists and their expertise areas. Useful for understanding the team capabilities.',
|
|
101
|
-
inputSchema: {
|
|
102
|
-
type: 'object',
|
|
103
|
-
properties: {
|
|
104
|
-
domain: {
|
|
105
|
-
type: 'string',
|
|
106
|
-
description: 'Filter by domain (e.g., performance, security, api-design) - optional'
|
|
107
|
-
},
|
|
108
|
-
expertise: {
|
|
109
|
-
type: 'string',
|
|
110
|
-
description: 'Filter by expertise area (e.g., caching, authentication) - optional'
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
required: []
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
];
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Handle specialist tool calls
|
|
120
|
-
*/
|
|
121
|
-
async handleToolCall(request) {
|
|
122
|
-
try {
|
|
123
|
-
switch (request.params.name) {
|
|
124
|
-
case 'suggest_specialist':
|
|
125
|
-
return await this.handleSuggestSpecialist(request);
|
|
126
|
-
case 'get_specialist_advice':
|
|
127
|
-
return await this.handleGetSpecialistAdvice(request);
|
|
128
|
-
case 'list_specialists':
|
|
129
|
-
return await this.handleListSpecialists(request);
|
|
130
|
-
default:
|
|
131
|
-
return {
|
|
132
|
-
content: [{
|
|
133
|
-
type: 'text',
|
|
134
|
-
text: `Unknown specialist tool: ${request.params.name}`
|
|
135
|
-
}],
|
|
136
|
-
isError: true
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
catch (error) {
|
|
141
|
-
return {
|
|
142
|
-
content: [{
|
|
143
|
-
type: 'text',
|
|
144
|
-
text: `Error in ${request.params.name}: ${error instanceof Error ? error.message : 'Unknown error'}`
|
|
145
|
-
}],
|
|
146
|
-
isError: true
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Find the best specialist for a question
|
|
152
|
-
*/
|
|
153
|
-
async handleSuggestSpecialist(request) {
|
|
154
|
-
const validated = SuggestSpecialistSchema.parse(request.params.arguments);
|
|
155
|
-
// Create basic session context for suggestion
|
|
156
|
-
const sessionContext = validated.context ? {
|
|
157
|
-
problem: validated.context,
|
|
158
|
-
solutions: [],
|
|
159
|
-
recommendations: [],
|
|
160
|
-
nextSteps: [],
|
|
161
|
-
userPreferences: {}
|
|
162
|
-
} : undefined;
|
|
163
|
-
const suggestions = await this.roleplayEngine.suggestSpecialist(validated.question, sessionContext);
|
|
164
|
-
if (suggestions.length === 0) {
|
|
165
|
-
return {
|
|
166
|
-
content: [{
|
|
167
|
-
type: 'text',
|
|
168
|
-
text: '🤔 No specialists found for this question. Try rephrasing or providing more context about your BC development challenge.'
|
|
169
|
-
}]
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
// Format suggestions with personality
|
|
173
|
-
let response = `🎯 **Specialist Recommendations for your question:**\n\n`;
|
|
174
|
-
for (let i = 0; i < suggestions.length; i++) {
|
|
175
|
-
const suggestion = suggestions[i];
|
|
176
|
-
const specialist = await this.layerService.getSpecialist(suggestion.specialist_id);
|
|
177
|
-
if (specialist) {
|
|
178
|
-
const confidence = Math.round(suggestion.confidence * 100);
|
|
179
|
-
response += `**${i + 1}. ${specialist.title}** (${suggestion.specialist_id}) - ${confidence}% match\n`;
|
|
180
|
-
response += `${specialist.persona.greeting}\n`;
|
|
181
|
-
response += `💡 **Why ${specialist.title}:** ${suggestion.reasoning}\n`;
|
|
182
|
-
response += `🔧 **Expertise:** ${specialist.expertise.primary.join(', ')}\n\n`;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
response += `💬 **Next step:** Use \`get_specialist_advice\` with your chosen specialist_id to start the conversation!`;
|
|
186
|
-
return {
|
|
187
|
-
content: [{ type: 'text', text: response }]
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Get advice from a specialist with automatic session management
|
|
192
|
-
*/
|
|
193
|
-
async handleGetSpecialistAdvice(request) {
|
|
194
|
-
const validated = GetSpecialistAdviceSchema.parse(request.params.arguments);
|
|
195
|
-
// Try exact ID match first
|
|
196
|
-
let specialist = await this.layerService.getSpecialist(validated.specialist_id);
|
|
197
|
-
// If not found, try fuzzy matching
|
|
198
|
-
if (!specialist) {
|
|
199
|
-
specialist = await this.findSpecialistByFuzzyName(validated.specialist_id);
|
|
200
|
-
}
|
|
201
|
-
if (!specialist) {
|
|
202
|
-
return {
|
|
203
|
-
content: [{
|
|
204
|
-
type: 'text',
|
|
205
|
-
text: `❌ Specialist '${validated.specialist_id}' not found. Tried exact ID match and fuzzy name matching. Use 'list_specialists' to see available experts.`
|
|
206
|
-
}],
|
|
207
|
-
isError: true
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
// Handle session management
|
|
211
|
-
let sessionId = validated.session_id;
|
|
212
|
-
let session;
|
|
213
|
-
if (sessionId) {
|
|
214
|
-
// Get existing session with auto-recovery
|
|
215
|
-
session = await this.sessionManager.getSession(sessionId);
|
|
216
|
-
if (!session) {
|
|
217
|
-
// Auto-recover: create new session instead of failing
|
|
218
|
-
console.warn(`Session '${sessionId}' not found. Creating recovery session.`);
|
|
219
|
-
session = await this.sessionManager.startSession(validated.specialist_id, 'default-user', `Recovery session. Original session ${sessionId} was lost. Context: ${validated.problem_context || validated.message}`);
|
|
220
|
-
sessionId = session.sessionId;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
else {
|
|
224
|
-
// Create new session
|
|
225
|
-
session = await this.sessionManager.startSession(validated.specialist_id, 'default-user', // TODO: Get actual user ID from context
|
|
226
|
-
validated.problem_context || validated.message);
|
|
227
|
-
sessionId = session.sessionId;
|
|
228
|
-
}
|
|
229
|
-
// Determine if this is a new session or handoff requiring introduction
|
|
230
|
-
const isNewSession = !validated.session_id || session.messages.length === 0;
|
|
231
|
-
const isHandoff = validated.session_id && session.context.current_specialist !== validated.specialist_id;
|
|
232
|
-
// Generate specialist response using conversation history
|
|
233
|
-
const roleplayContext = {
|
|
234
|
-
specialist,
|
|
235
|
-
userMessage: validated.message,
|
|
236
|
-
session: session.context,
|
|
237
|
-
conversationHistory: session.messages.map(m => ({
|
|
238
|
-
role: m.type === 'user' ? 'user' : 'assistant',
|
|
239
|
-
content: m.content,
|
|
240
|
-
timestamp: m.timestamp
|
|
241
|
-
})),
|
|
242
|
-
requiresIntroduction: isNewSession || isHandoff
|
|
243
|
-
};
|
|
244
|
-
const response = await this.roleplayEngine.generateResponse(roleplayContext);
|
|
245
|
-
// Add user and specialist messages to session
|
|
246
|
-
await this.sessionManager.continueSession(sessionId, validated.message);
|
|
247
|
-
// Update session with specialist response - we'll add this via continueSession flow
|
|
248
|
-
const updatedSession = await this.sessionManager.getSession(sessionId);
|
|
249
|
-
// Update context if provided
|
|
250
|
-
if (response.context_updates && updatedSession) {
|
|
251
|
-
await this.sessionManager.updateContext(sessionId, response.context_updates);
|
|
252
|
-
}
|
|
253
|
-
// Return agent roleplay instructions (NOT formatted user response)
|
|
254
|
-
let agentInstructions = '';
|
|
255
|
-
// **CRITICAL**: Include full specialist markdown content as instructions
|
|
256
|
-
agentInstructions += `SPECIALIST DEFINITION AND INSTRUCTIONS:\n\n`;
|
|
257
|
-
agentInstructions += specialist.content; // Full markdown content including Phase 0, workflows, etc.
|
|
258
|
-
agentInstructions += `\n\n${'='.repeat(80)}\n\n`;
|
|
259
|
-
agentInstructions += `CURRENT CONTEXT:\n\n`;
|
|
260
|
-
agentInstructions += response.content;
|
|
261
|
-
// Add knowledge context for the agent
|
|
262
|
-
if (response.topics_referenced.length > 0) {
|
|
263
|
-
agentInstructions += `\n\nKNOWLEDGE CONTEXT FOR RESPONSE:\n`;
|
|
264
|
-
agentInstructions += `- Referenced Topics: ${response.topics_referenced.join(', ')}\n`;
|
|
265
|
-
agentInstructions += `- Use this knowledge to provide specific, accurate guidance\n`;
|
|
266
|
-
}
|
|
267
|
-
// Add handoff guidance for the agent
|
|
268
|
-
if (response.suggested_handoffs && response.suggested_handoffs.length > 0) {
|
|
269
|
-
agentInstructions += `\n\nHANDOFF GUIDANCE:\n`;
|
|
270
|
-
for (const handoff of response.suggested_handoffs) {
|
|
271
|
-
const handoffSpecialist = await this.layerService.getSpecialist(handoff.specialist_id);
|
|
272
|
-
if (handoffSpecialist) {
|
|
273
|
-
agentInstructions += `- If user needs ${handoff.reason}, suggest consulting ${handoffSpecialist.title}\n`;
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
agentInstructions += `\n\nRemember: You ARE ${specialist.title}. Respond directly as this character, not as an AI assistant.`;
|
|
278
|
-
// Add recommendations as agent guidance
|
|
279
|
-
if (response.recommendations_added && response.recommendations_added.length > 0) {
|
|
280
|
-
agentInstructions += `\n\nRECOMMENDATIONS TO INCLUDE:\n`;
|
|
281
|
-
response.recommendations_added.forEach((rec, i) => {
|
|
282
|
-
agentInstructions += `${i + 1}. ${rec}\n`;
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
return {
|
|
286
|
-
content: [{ type: 'text', text: agentInstructions }]
|
|
287
|
-
};
|
|
288
|
-
}
|
|
289
|
-
/**
|
|
290
|
-
* List available specialists with filtering
|
|
291
|
-
*/
|
|
292
|
-
async handleListSpecialists(request) {
|
|
293
|
-
const validated = ListSpecialistsSchema.parse(request.params.arguments || {});
|
|
294
|
-
const specialists = await this.layerService.getAllSpecialists();
|
|
295
|
-
// Apply filters
|
|
296
|
-
let filteredSpecialists = specialists;
|
|
297
|
-
if (validated.domain) {
|
|
298
|
-
filteredSpecialists = specialists.filter(s => s.domains.some(d => d.toLowerCase().includes(validated.domain.toLowerCase())));
|
|
299
|
-
}
|
|
300
|
-
if (validated.expertise) {
|
|
301
|
-
filteredSpecialists = filteredSpecialists.filter(s => [...s.expertise.primary, ...s.expertise.secondary].some(e => e.toLowerCase().includes(validated.expertise.toLowerCase())));
|
|
302
|
-
}
|
|
303
|
-
if (filteredSpecialists.length === 0) {
|
|
304
|
-
return {
|
|
305
|
-
content: [{
|
|
306
|
-
type: 'text',
|
|
307
|
-
text: '❌ No specialists found matching your criteria. Try different filters or remove them to see all specialists.'
|
|
308
|
-
}]
|
|
309
|
-
};
|
|
310
|
-
}
|
|
311
|
-
// Group by domain for better organization
|
|
312
|
-
const specialistsByDomain = new Map();
|
|
313
|
-
filteredSpecialists.forEach(specialist => {
|
|
314
|
-
specialist.domains.forEach(domain => {
|
|
315
|
-
if (!specialistsByDomain.has(domain)) {
|
|
316
|
-
specialistsByDomain.set(domain, []);
|
|
317
|
-
}
|
|
318
|
-
if (!specialistsByDomain.get(domain).includes(specialist)) {
|
|
319
|
-
specialistsByDomain.get(domain).push(specialist);
|
|
320
|
-
}
|
|
321
|
-
});
|
|
322
|
-
});
|
|
323
|
-
let response = `👥 **BC Code Intelligence Specialists** ${validated.domain || validated.expertise ? '(filtered)' : ''}\n\n`;
|
|
324
|
-
// Show specialists organized by domain
|
|
325
|
-
for (const [domain, domainSpecialists] of specialistsByDomain.entries()) {
|
|
326
|
-
response += `## 🏷️ ${domain.charAt(0).toUpperCase() + domain.slice(1)}\n\n`;
|
|
327
|
-
for (const specialist of domainSpecialists) {
|
|
328
|
-
response += `**${specialist.title}** (\`${specialist.specialist_id}\`)\n`;
|
|
329
|
-
response += `💬 ${specialist.persona.greeting}\n`;
|
|
330
|
-
response += `🎯 **Primary Expertise:** ${specialist.expertise.primary.join(', ')}\n`;
|
|
331
|
-
if (specialist.expertise.secondary.length > 0) {
|
|
332
|
-
response += `🔧 **Also helps with:** ${specialist.expertise.secondary.slice(0, 3).join(', ')}\n`;
|
|
333
|
-
}
|
|
334
|
-
response += `\n`;
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
response += `\n💡 **Getting Started:**\n`;
|
|
338
|
-
response += `• Use \`suggest_specialist\` with your question to get personalized recommendations\n`;
|
|
339
|
-
response += `• Use \`get_specialist_advice\` with a specialist_id to start a conversation\n`;
|
|
340
|
-
response += `• Sessions are automatically managed for multi-turn conversations`;
|
|
341
|
-
// Check if workspace is configured - company/project specialists might be missing
|
|
342
|
-
const layersInfo = this.layerService.getLayers();
|
|
343
|
-
const hasProjectOrCompanyLayers = layersInfo.some(layer => layer.name.includes('company') || layer.name.includes('project') || layer.name.includes('team'));
|
|
344
|
-
if (!hasProjectOrCompanyLayers) {
|
|
345
|
-
response += `\n\n⚠️ **Note:** Only embedded specialists shown. Company/project specialists require \`set_workspace_info\` to load custom layers.`;
|
|
346
|
-
}
|
|
347
|
-
return {
|
|
348
|
-
content: [{ type: 'text', text: response }]
|
|
349
|
-
};
|
|
350
|
-
}
|
|
351
|
-
/**
|
|
352
|
-
* Find specialist by partial/fuzzy name matching
|
|
353
|
-
* Handles cases like "Sam" -> "sam-coder", "Dean" -> "dean-debug", etc.
|
|
354
|
-
*/
|
|
355
|
-
async findSpecialistByFuzzyName(partialName) {
|
|
356
|
-
const allSpecialists = await this.layerService.getAllSpecialists();
|
|
357
|
-
const searchTerm = partialName.toLowerCase().trim();
|
|
358
|
-
// First try exact specialist_id match (case insensitive)
|
|
359
|
-
let match = allSpecialists.find(specialist => specialist.specialist_id.toLowerCase() === searchTerm);
|
|
360
|
-
if (match)
|
|
361
|
-
return match;
|
|
362
|
-
// Try partial match in specialist_id
|
|
363
|
-
match = allSpecialists.find(specialist => specialist.specialist_id.toLowerCase().includes(searchTerm));
|
|
364
|
-
if (match)
|
|
365
|
-
return match;
|
|
366
|
-
// Try matching first part of specialist_id (before the dash)
|
|
367
|
-
match = allSpecialists.find(specialist => {
|
|
368
|
-
const firstName = specialist.specialist_id.split('-')[0].toLowerCase();
|
|
369
|
-
return firstName === searchTerm;
|
|
370
|
-
});
|
|
371
|
-
if (match)
|
|
372
|
-
return match;
|
|
373
|
-
// Try matching in title
|
|
374
|
-
match = allSpecialists.find(specialist => specialist.title?.toLowerCase().includes(searchTerm));
|
|
375
|
-
return match || null;
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
//# sourceMappingURL=specialist-tools.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"specialist-tools.js","sourceRoot":"","sources":["../../src/tools/specialist-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"path-utils.d.ts","sourceRoot":"","sources":["../../src/utils/path-utils.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CASjD"}
|