@likec4/language-server 1.38.0 → 1.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/LikeC4LanguageServices.d.ts +8 -0
  2. package/dist/LikeC4LanguageServices.js +25 -4
  3. package/dist/Rpc.js +11 -4
  4. package/dist/ast.d.ts +1 -1
  5. package/dist/ast.js +2 -1
  6. package/dist/bundled.d.ts +8 -0
  7. package/dist/bundled.js +40 -0
  8. package/dist/bundled.mjs +3612 -3512
  9. package/dist/filesystem/ChokidarWatcher.js +12 -9
  10. package/dist/filesystem/LikeC4FileSystem.d.ts +0 -2
  11. package/dist/filesystem/LikeC4FileSystem.js +7 -5
  12. package/dist/filesystem/index.d.ts +7 -0
  13. package/dist/filesystem/index.js +3 -0
  14. package/dist/generated/ast.d.ts +1 -0
  15. package/dist/generated/ast.js +2 -1
  16. package/dist/generated/grammar.js +1 -1
  17. package/dist/generated-lib/icons.js +1 -1
  18. package/dist/index.d.ts +1 -0
  19. package/dist/logger.js +1 -1
  20. package/dist/mcp/MCPServerFactory.js +6 -5
  21. package/dist/mcp/server/StreamableLikeC4MCPServer.d.ts +2 -2
  22. package/dist/mcp/server/StreamableLikeC4MCPServer.js +97 -100
  23. package/dist/mcp/server/WithMCPServer.d.ts +3 -1
  24. package/dist/mcp/server/WithMCPServer.js +6 -5
  25. package/dist/mcp/tools/search-element.js +26 -11
  26. package/dist/mcp/utils.js +2 -2
  27. package/dist/model/builder/MergedSpecification.d.ts +3 -3
  28. package/dist/model/builder/MergedSpecification.js +4 -7
  29. package/dist/model/builder/assignTagColors.js +1 -1
  30. package/dist/model/builder/buildModel.d.ts +3 -8
  31. package/dist/model/builder/buildModel.js +14 -11
  32. package/dist/model/model-builder.d.ts +1 -1
  33. package/dist/model/model-locator.js +2 -1
  34. package/dist/model/model-parser.d.ts +19 -46
  35. package/dist/model/model-parser.js +13 -3
  36. package/dist/model/parser/Base.d.ts +4 -7
  37. package/dist/model/parser/Base.js +19 -0
  38. package/dist/model/parser/DeploymentModelParser.d.ts +2 -5
  39. package/dist/model/parser/DeploymentViewParser.d.ts +2 -5
  40. package/dist/model/parser/FqnRefParser.d.ts +2 -5
  41. package/dist/model/parser/GlobalsParser.d.ts +2 -5
  42. package/dist/model/parser/ImportsParser.d.ts +2 -5
  43. package/dist/model/parser/ModelParser.d.ts +2 -5
  44. package/dist/model/parser/PredicatesParser.d.ts +2 -5
  45. package/dist/model/parser/SpecificationParser.d.ts +2 -5
  46. package/dist/model/parser/ViewsParser.d.ts +2 -5
  47. package/dist/protocol.d.ts +16 -2
  48. package/dist/protocol.js +4 -0
  49. package/dist/test/testServices.d.ts +5 -1
  50. package/dist/test/testServices.js +18 -3
  51. package/dist/utils/disposable.d.ts +1 -1
  52. package/dist/utils/stringHash.js +1 -1
  53. package/dist/view-utils/resolve-relative-paths.js +1 -1
  54. package/dist/workspace/LangiumDocuments.d.ts +4 -1
  55. package/dist/workspace/LangiumDocuments.js +15 -0
  56. package/dist/workspace/ProjectsManager.d.ts +25 -11
  57. package/dist/workspace/ProjectsManager.js +85 -44
  58. package/dist/workspace/WorkspaceManager.js +5 -4
  59. package/package.json +22 -28
  60. package/dist/config/index.d.ts +0 -1
  61. package/dist/config/index.js +0 -1
  62. package/dist/config/schema.d.ts +0 -10
  63. package/dist/config/schema.js +0 -39
@@ -1,4 +1,4 @@
1
- const icons = [...Object.entries({ "aws": ["activate", "alexa-for-business", "amplify", "apache-mxnet-on-aws", "api-gateway", "app-config", "app-flow", "app-mesh", "app-runner", "app-stream", "app-sync", "application-auto-scaling", "application-composer", "application-cost-profiler", "application-discovery-service", "application-migration-service", "artifact", "athena", "audit-manager", "augmented-ai-a2i", "aurora", "auto-scaling", "backint-agent", "backup", "batch", "billing-conductor", "bottlerocket", "braket", "budgets", "certificate-manager", "chatbot", "chime", "chime-sdk", "chime-voice-connector", "clean-rooms", "client-vpn", "cloud-control-api", "cloud-development-kit", "cloud-directory", "cloud-formation", "cloud-front", "cloud-hsm", "cloud-map", "cloud-search", "cloud-shell", "cloud-trail", "cloud-wan", "cloud-watch", "cloud9", "code-artifact", "code-build", "code-catalyst", "code-commit", "code-deploy", "code-guru", "code-pipeline", "code-star", "code-whisperer", "cognito", "command-line-interface", "comprehend", "comprehend-medical", "compute-optimizer", "config", "connect", "console-mobile-application", "control-tower", "corretto", "cost-and-usage-report", "cost-explorer", "data-exchange", "data-pipeline", "data-sync", "data-zone", "database-migration-service", "deep-composer", "deep-learning-amis", "deep-learning-containers", "deep-lens", "deep-racer", "detective", "dev-ops-guru", "device-farm", "direct-connect", "directory-service", "distro-for-open-telemetry", "document-db", "dynamo-db", "ec2", "ec2-auto-scaling", "ec2-image-builder", "ecs-anywhere", "efs", "eks-anywhere", "eks-cloud", "eks-distro", "elasti-cache", "elastic-beanstalk", "elastic-block-store", "elastic-container-registry", "elastic-container-service", "elastic-disaster-recovery", "elastic-fabric-adapter", "elastic-inference", "elastic-kubernetes-service", "elastic-load-balancing", "elastic-transcoder", "elemental-appliances-software", "elemental-conductor", "elemental-delta", "elemental-link", "elemental-live", "elemental-media-connect", "elemental-media-convert", "elemental-media-live", "elemental-media-package", "elemental-media-store", "elemental-media-tailor", "elemental-server", "emr", "event-bridge", "express-workflows", "fargate", "fault-injection-simulator", "file-cache", "fin-space", "firewall-manager", "forecast", "fraud-detector", "free-rtos", "fsx", "fsx-for-lustre", "fsx-for-net-app-ontap", "fsx-for-open-zfs", "fsx-for-wfs", "game-kit", "game-lift", "game-sparks", "genomics-cli", "global-accelerator", "glue", "glue-data-brew", "glue-elastic-views", "ground-station", "guard-duty", "health-lake", "honeycode", "iam-identity-center", "identity-and-access-management", "inspector", "interactive-video-service", "io-t-1-click", "io-t-analytics", "io-t-button", "io-t-core", "io-t-device-defender", "io-t-device-management", "io-t-edu-kit", "io-t-events", "io-t-express-link", "io-t-fleet-wise", "io-t-greengrass", "io-t-robo-runner", "io-t-site-wise", "io-t-things-graph", "io-t-twin-maker", "iq", "kendra", "key-management-service", "keyspaces", "kinesis", "kinesis-data-analytics", "kinesis-data-streams", "kinesis-firehose", "kinesis-video-streams", "lake-formation", "lambda", "launch-wizard", "lex", "license-manager", "lightsail", "local-zones", "location-service", "lookout-for-equipment", "lookout-for-metrics", "lookout-for-vision", "lumberyard", "macie", "mainframe-modernization", "managed-blockchain", "managed-grafana", "managed-service-for-prometheus", "managed-services", "managed-streaming-for-apache-kafka", "managed-workflows-for-apache-airflow", "management-console", "marketplace-dark", "marketplace-light", "memory-db-for-redis", "migration-evaluator", "migration-hub", "monitron", "mq", "neptune", "network-firewall", "neuron", "nice-dcv", "nice-engin-frame", "nimble-studio", "nitro-enclaves", "omics", "open-3d-engine", "open-search-service", "ops-works", "organizations", "outposts-family", "outposts-rack", "outposts-servers", "panorama", "parallel-cluster", "personal-health-dashboard", "personalize", "pinpoint", "pinpoint-apis", "polly", "private-5g", "private-certificate-authority", "private-link", "professional-services", "proton", "quantum-ledger-database", "quick-sight", "rds", "rds-on-vmware", "re-post", "red-hat-open-shift-service-on-aws", "redshift", "rekognition", "reserved-instance-reporting", "resilience-hub", "resource-access-manager", "resource-explorer", "robo-maker", "route-53", "s3-on-outposts", "sage-maker", "sage-maker-ground-truth", "sage-maker-studio-lab", "savings-plans", "secrets-manager", "security-hub", "security-lake", "server-migration-service", "serverless-application-repository", "service-catalog", "service-management-connector", "shield", "signer", "sim-space-weaver", "simple-email-service", "simple-notification-service", "simple-queue-service", "simple-storage-service", "simple-storage-service-glacier", "site-to-site-vpn", "snowball", "snowball-edge", "snowcone", "snowmobile", "step-functions", "storage-gateway", "sumerian", "supply-chain", "support", "systems-manager", "tensor-flow-on-aws", "textract", "thinkbox-deadline", "thinkbox-frost", "thinkbox-krakatoa", "thinkbox-sequoia", "thinkbox-stoke", "thinkbox-xmesh", "timestream", "tools-and-sdks", "torch-serve", "training-certification", "transcribe", "transfer-family", "transit-gateway", "translate", "trusted-advisor", "verified-access", "verified-permissions", "virtual-private-cloud", "vmware-cloud-on-aws", "vpc-lattice", "waf", "wavelength", "well-architected-tool", "wickr", "work-docs", "work-docs-sdk", "work-link", "work-mail", "work-spaces-family", "x-ray"], "azure": ["abs-member", "active-directory-connect-health", "activity-log", "administrative-units", "advisor", "ai-studio", "aks-automatic", "aks-istio", "alerts", "all-resources", "analysis-services", "anomaly-detector", "api-center", "api-connections", "api-management-services", "api-proxy", "app-compliance-automation", "app-configuration", "app-registrations", "app-service-certificates", "app-service-domains", "app-service-environments", "app-service-plans", "app-services", "app-space", "app-space-component", "applens", "application-gateway-containers", "application-gateways", "application-group", "application-insights", "application-security-groups", "aquila", "arc-data-services", "arc-kubernetes", "arc-machines", "arc-postgre-sql", "arc-sql-managed-instance", "arc-sql-server", "atm-multistack", "auto-scale", "automanaged-vm", "automation-accounts", "availability-sets", "avs-vm", "azure-a", "azure-ad-b2c", "azure-api-for-fhir", "azure-applied-ai-services", "azure-arc", "azure-attestation", "azure-backup-center", "azure-blockchain-service", "azure-center-for-sap", "azure-chaos-studio", "azure-cloud-shell", "azure-communication-services", "azure-communications-gateway", "azure-compute-galleries", "azure-cosmos-db", "azure-data-catalog", "azure-data-explorer-clusters", "azure-database-maria-db-server", "azure-database-migration-services", "azure-database-my-sql-server", "azure-database-postgre-sql-server", "azure-database-postgre-sql-server-group", "azure-databox-gateway", "azure-databricks", "azure-deployment-environments", "azure-dev-ops", "azure-dev-tunnels", "azure-edge-hardware-center", "azure-experimentation-studio", "azure-fileshares", "azure-firewall-manager", "azure-firewall-policy", "azure-hcp-cache", "azure-hpc-workbenches", "azure-hybrid-center", "azure-information-protection", "azure-io-t-operations", "azure-lighthouse", "azure-load-testing", "azure-managed-grafana", "azure-maps-accounts", "azure-media-service", "azure-migrate", "azure-monitor-dashboard", "azure-monitor-pipeline", "azure-monitors-for-sap-solutions", "azure-net-app-files", "azure-network-function-manager", "azure-network-function-manager-functions", "azure-object-understanding", "azure-open-ai", "azure-operator-5g-core", "azure-operator-insights", "azure-operator-nexus", "azure-operator-service-manager", "azure-orbital", "azure-programmable-connectivity", "azure-purview-accounts", "azure-quotas", "azure-red-hat-open-shift", "azure-sentinel", "azure-service-bus", "azure-sphere", "azure-spring-apps", "azure-sql", "azure-sql-edge", "azure-sql-server-stretch-databases", "azure-sql-vm", "azure-stack", "azure-stack-edge", "azure-stack-hci-sizer", "azure-storage-mover", "azure-support-center-blue", "azure-sustainability", "azure-synapse-analytics", "azure-token-service", "azure-video-indexer", "azure-virtual-desktop", "azure-vmware-solution", "azure-workbooks", "azurite", "backlog", "backup-vault", "bare-metal-infrastructure", "bastions", "batch-accounts", "batch-ai", "biz-talk", "blob-block", "blob-page", "blockchain-applications", "blueprints", "bonsai", "bot-services", "branch", "browser", "bug", "builds", "business-process-tracking", "cache", "cache-redis", "capacity", "capacity-reservation-groups", "cdn-profiles", "central-service-instance-for-sap", "ceres", "change-analysis", "client-apps", "cloud-services-classic", "cloud-services-extended-support", "cloud-test", "code", "code-optimization", "cognitive-search", "cognitive-services", "cognitive-services-decisions", "collaborative-service", "commit", "community-images", "compliance", "compliance-center", "compute-fleet", "computer-vision", "conditional-access", "confidential-ledgers", "connected-cache", "connected-vehicle-platform", "connections", "consortium", "container-apps-environments", "container-instances", "container-registries", "container-services-deprecated", "content-moderators", "content-safety", "controls", "controls-horizontal", "cost-alerts", "cost-analysis", "cost-budgets", "cost-export", "cost-management", "cost-management-and-billing", "counter", "cubes", "custom-ip-prefix", "custom-vision", "customer-lockbox-for-microsoft-azure", "dashboard", "dashboard-hub", "data-box", "data-collection-rules", "data-factories", "data-lake-analytics", "data-lake-storage-gen1", "data-lake-store-gen1", "data-share-invitations", "data-shares", "database-instance-for-sap", "ddo-s-protection-plans", "dedicated-hsm", "defender-cm-local-manager", "defender-dcs-controller", "defender-distributer-control-system", "defender-engineering-station", "defender-external-management", "defender-freezer-monitor", "defender-historian", "defender-hmi", "defender-industrial-packaging-system", "defender-industrial-printer", "defender-industrial-robot", "defender-industrial-scale-system", "defender-marquee", "defender-meter", "defender-plc", "defender-pneumatic-device", "defender-programable-board", "defender-relay", "defender-robot-controller", "defender-rtu", "defender-sensor", "defender-slot", "defender-web-guiding-system", "detonation", "dev-console", "dev-ops-starter", "dev-test-labs", "device-compliance", "device-configuration", "device-enrollment", "device-provisioning-services", "device-security-apple", "device-security-google", "device-security-windows", "device-update-io-t-hub", "devices", "diagnostics-settings", "digital-twins", "disk-encryption-sets", "disk-pool", "disks", "disks-classic", "disks-snapshots", "dns-multistack", "dns-private-resolver", "dns-security-policy", "dns-zones", "download", "e-books", "edge-management", "education", "elastic-job-agents", "elastic-san", "endpoint-analytics", "enterprise-applications", "entra-connect", "entra-connect-health", "entra-connect-sync", "entra-domain-services", "entra-global-secure-access", "entra-id-protection", "entra-identity-custom-roles", "entra-identity-licenses", "entra-identity-risky-signins", "entra-identity-risky-users", "entra-identity-roles-and-administrators", "entra-internet-access", "entra-managed-identities", "entra-private-access", "entra-privleged-identity-management", "entra-verified-id", "error", "event-grid-domains", "event-grid-subscriptions", "event-grid-topics", "event-hub-clusters", "event-hubs", "exchange-access", "exchange-on-premises-access", "express-route-circuits", "express-route-direct", "express-route-traffic-collector", "extended-security-updates", "extensions", "external-identities", "face-apis", "feature-previews", "fhir-service", "fiji", "file", "files", "firewalls", "folder-blank", "folder-website", "form-recognizers", "free-services", "front-door-and-cdn-profiles", "ftp", "function-apps", "gear", "genomics", "genomics-accounts", "globe-error", "globe-success", "globe-warning", "groups", "guide", "hd-insight-clusters", "hdi-aks-cluster", "heart", "help-and-support", "host-groups", "host-pools", "hosts", "ic-m-troubleshooting", "identity-governance", "identity-multi-factor-authentication", "identity-secure-score", "image", "image-definitions", "image-templates", "image-versions", "images", "immersive-readers", "import-export-jobs", "industrial-io-t", "information", "infrastructure-backup", "input-output", "instance-pools", "integration-accounts", "integration-environments", "integration-service-environments", "internet-analyzer-profiles", "intune", "intune-app-protection", "intune-for-education", "intune-trends", "io-t-central-applications", "io-t-edge", "io-t-hub", "ip-address-manager", "ip-groups", "journey-hub", "key-vaults", "keys", "kubernetes-fleet-manager", "kubernetes-services", "lab-accounts", "lab-services", "language", "language-understanding", "launch-portal", "learn", "load-balancer-hub", "load-balancers", "load-test", "load-testing", "local-network-gateways", "location", "log-analytics-query-pack", "log-analytics-workspaces", "log-streaming", "logic-apps", "logic-apps-custom-connector", "machine-learning", "machine-learning-studio-classic-web-services", "machine-learning-studio-web-service-plans", "machine-learning-studio-workspaces", "machines-azure-arc", "maintenance-configuration", "managed-applications-center", "managed-database", "managed-desktop", "managed-dev-ops-pools", "managed-file-shares", "managed-identities", "managed-instance-apache-cassandra", "managed-service-fabric", "management-groups", "management-portal", "marketplace", "marketplace-management", "med-tech-service", "media", "media-file", "mesh-applications", "metrics", "metrics-advisor", "microsoft-defender-easm", "microsoft-defender-for-cloud", "microsoft-defender-for-io-t", "microsoft-dev-box", "mindaro", "mission-landing-zone", "mobile", "mobile-engagement", "mobile-networks", "modular-data-center", "module", "monitor", "monitor-health-models", "multi-tenancy", "multifactor-authentication", "my-customers", "nat", "network-interfaces", "network-managers", "network-security-groups", "network-security-perimeters", "network-watcher", "notification-hub-namespaces", "notification-hubs", "offers", "on-premises-data-gateways", "open-supply-chain-platform", "operation-log-classic", "oracle-database", "os-images-classic", "osconfig", "outbound-connection", "partner-namespace", "partner-registration", "partner-topic", "peering-service", "peerings", "personalizers", "plans", "policy", "power", "power-bi-embedded", "power-platform", "power-up", "powershell", "preview-features", "private-endpoints", "private-link", "private-link-service", "private-link-services", "process-explorer", "production-ready-database", "proximity-placement-groups", "public-ip-addresses", "public-ip-addresses-classic", "public-ip-prefixes", "qn-a-makers", "quickstart-center", "recent", "recovery-services-vaults", "region-management", "relays", "remote-rendering", "reservations", "reserved-capacity", "reserved-ip-addresses-classic", "resource-explorer", "resource-graph-explorer", "resource-group-list", "resource-groups", "resource-guard", "resource-linked", "resource-management-private-link", "resource-mover", "resources-provider", "restore-points", "restore-points-collections", "route-filters", "route-tables", "rtos", "savings-plans", "scheduler", "scheduler-job-collections", "scvmm-management-servers", "search", "search-grid", "security", "security-baselines", "send-grid-accounts", "server-farm", "serverless-search", "service-catalog-mad", "service-endpoint-policies", "service-fabric-clusters", "service-health", "service-providers", "shared-image-galleries", "signal-r", "software-as-a-service", "software-updates", "solutions", "sonic-dash", "spatial-anchor-accounts", "speech-services", "spot-vm", "spot-vmss", "sql-data-warehouses", "sql-database", "sql-elastic-pools", "sql-managed-instance", "sql-server", "sql-server-registries", "ssd", "ssh-keys", "ssis-lift-and-shift-ir", "stack-hci-premium", "static-apps", "stor-simple-data-managers", "stor-simple-device-managers", "storage-accounts", "storage-accounts-classic", "storage-actions", "storage-azure-files", "storage-container", "storage-explorer", "storage-functions", "storage-queue", "storage-sync-services", "stream-analytics-jobs", "subnet", "subscriptions", "system-topic", "table", "tag", "tags", "targets-management", "template-specs", "templates", "tenant-properties", "tenant-status", "test-base", "tfs-vc-repository", "time-series-data-sets", "time-series-insights-access-policies", "time-series-insights-environments", "time-series-insights-event-sources", "toolbox", "traffic-manager-profiles", "translator-text", "troubleshoot", "universal-print", "update-management-center", "updates", "user-privacy", "user-settings", "user-subscriptions", "users", "verifiable-credentials", "verification-as-a-service", "versions", "video-analyzers", "virtual-clusters", "virtual-enclaves", "virtual-instance-for-sap", "virtual-machine", "virtual-machines-classic", "virtual-network-gateways", "virtual-networks", "virtual-networks-classic", "virtual-router", "virtual-visits-builder", "virtual-wan-hub", "virtual-wans", "vm-app-definitions", "vm-app-versions", "vm-image-version", "vm-images-classic", "vm-scale-sets", "wac", "wac-installer", "web-app-database", "web-application-firewall-policies-waf", "web-jobs", "web-slots", "web-test", "website-power", "website-staging", "windows-notification-services", "windows10-core-services", "workbooks", "worker-container-app", "workflow", "workspace-gateway", "workspaces"], "gcp": ["access-context-manager", "administration", "advanced-agent-modeling", "advanced-solutions-lab", "agent-assist", "ai-hub", "ai-platform", "ai-platform-unified", "analytics-hub", "anthos", "anthos-config-management", "anthos-service-mesh", "api", "api-analytics", "api-monetization", "apigee-api-platform", "apigee-sense", "app-engine", "artifact-registry", "asset-inventory", "assured-workloads", "auto-ml", "auto-ml-natural-language", "auto-ml-tables", "auto-ml-translation", "auto-ml-video-intelligence", "auto-ml-vision", "bare-metal-solutions", "batch", "beyondcorp", "big-query", "bigtable", "billing", "binary-authorization", "catalog", "certificate-authority-service", "certificate-manager", "cloud-api-gateway", "cloud-apis", "cloud-armor", "cloud-asset-inventory", "cloud-audit-logs", "cloud-build", "cloud-cdn", "cloud-code", "cloud-composer", "cloud-data-fusion", "cloud-deploy", "cloud-deployment-manager", "cloud-dns", "cloud-domains", "cloud-ekm", "cloud-endpoints", "cloud-external-ip-addresses", "cloud-firewall-rules", "cloud-for-marketing", "cloud-functions", "cloud-generic", "cloud-gpu", "cloud-healthcare-api", "cloud-healthcare-marketplace", "cloud-hsm", "cloud-ids", "cloud-inference-api", "cloud-interconnect", "cloud-jobs-api", "cloud-load-balancing", "cloud-logging", "cloud-media-edge", "cloud-monitoring", "cloud-nat", "cloud-natural-language-api", "cloud-network", "cloud-ops", "cloud-optimization-ai", "cloud-optimization-ai-fleet-routing-api", "cloud-router", "cloud-routes", "cloud-run", "cloud-run-for-anthos", "cloud-scheduler", "cloud-security-scanner", "cloud-shell", "cloud-spanner", "cloud-sql", "cloud-storage", "cloud-tasks", "cloud-test-lab", "cloud-tpu", "cloud-translation-api", "cloud-vision-api", "cloud-vpn", "compute-engine", "configuration-management", "connectivity-test", "connectors", "contact-center-ai", "container-optimized-os", "container-registry", "data-catalog", "data-labeling", "data-layers", "data-loss-prevention-api", "data-qn-a", "data-studio", "data-transfer", "database-migration-service", "dataflow", "datalab", "dataplex", "datapol", "dataprep", "dataproc", "dataproc-metastore", "datashare", "datastore", "datastream", "debugger", "developer-portal", "dialogflow", "dialogflow-cx", "dialogflow-insights", "document-ai", "early-access-center", "error-reporting", "eventarc", "filestore", "financial-services-marketplace", "firestore", "fleet-engine", "free-trial", "game-servers", "gce-systems-management", "genomics", "gke-on-prem", "google-cloud-marketplace", "google-kubernetes-engine", "google-maps-platform", "healthcare-nlp-api", "home", "identity-and-access-management", "identity-aware-proxy", "identity-platform", "iot-core", "iot-edge", "key-access-justifications", "key-management-service", "kuberun", "launcher", "local-ssd", "looker", "managed-service-for-microsoft-active-directory", "media-translation-api", "memorystore", "migrate-for-anthos", "migrate-for-compute-engine", "my-cloud", "network-connectivity-center", "network-intelligence-center", "network-security", "network-tiers", "network-topology", "onboarding", "os-configuration-management", "os-inventory-management", "os-patch-management", "partner-interconnect", "partner-portal", "performance-dashboard", "permissions", "persistent-disk", "phishing-protection", "policy-analyzer", "premium-network-tier", "private-connectivity", "private-service-connect", "producer-portal", "profiler", "project", "pub-sub", "quantum-engine", "quotas", "real-world-insights", "recommendations-ai", "release-notes", "retail-api", "risk-manager", "runtime-config", "secret-manager", "security", "security-command-center", "security-health-advisor", "security-key-enforcement", "service-discovery", "speech-to-text", "stackdriver", "standard-network-tier", "stream-suite", "support", "tensorflow-enterprise", "text-to-speech", "tools-for-powershell", "trace", "traffic-director", "transfer", "transfer-appliance", "user-preferences", "vertex-ai", "video-intelligence-api", "virtual-private-cloud", "visual-inspection", "vmware-engine", "web-risk", "web-security-scanner", "workflows", "workload-identity-pool"], "tech": ["aarch64", "adobe-illustrator", "adobe-photoshop", "adobe-premiere-pro", "adobe-xd", "adonis-js", "after-effects", "airflow", "akka", "algolia", "alpine-js", "amazon-web-services", "anaconda", "android", "android-studio", "angular", "angular-js", "ansible", "ant-design", "apache", "apl", "appcelerator", "apple", "apple-safari", "appwrite", "arch-linux", "arduino", "argo-cd", "astro", "atom", "autodesk-maya", "autodesk-shot-grid", "awk", "azios", "azure", "azure-devops", "azure-sql-database", "babel", "backbone-js", "ballerina", "bamboo", "bash", "behance", "bitbucket", "blender", "bootstrap", "bower", "browserstack", "bulma", "bun", "c", "cairo-graphics", "cake-php", "canva", "capacitor", "cassandra", "cent-os", "chrome", "circle-ci", "clarity", "clion", "clojure", "clojure-script", "cloudflare", "cloudflare-workers", "cmake", "code-igniter", "code-pen", "codeac", "codecov", "coffee-script", "composer", "confluence", "consul", "contao", "corejs", "cosmosdb", "couchdb", "cplusplus", "crystal", "csharp", "css3", "cucumber", "cypress", "d3js", "dart", "data-grip", "data-spell", "dbeaver", "debian", "deno", "devicon", "digital-ocean", "discord-js", "django", "django-rest", "docker", "doctrine", "dropwizard", "drupal", "eclipse-ceylon", "eclipse-ide", "eclipse-vert-x", "elasticbeats", "elasticsearch", "electron", "eleventy-11ty", "elixir", "elm", "embedded-c", "ember-js", "envoy", "erlang", "eslint", "express", "facebook", "fast-api", "fastify", "fauna", "feathers", "fedora", "figma", "file-zilla", "firebase", "firefox", "flask", "flutter", "fortran", "foundation", "fsharp", "gatling", "gatsby", "gazebo", "gcc", "gentoo", "ghost", "gimp", "git", "gitbook", "github", "github-actions", "github-codespaces", "gitlab", "gitpod", "gitter", "gnu-emacs", "go", "go-land", "godot-engine", "google", "google-cloud", "gradle", "grafana", "grails", "graphql", "groovy", "grunt-js", "gulp-js", "hadoop", "handlebars", "hardhat", "harvester", "hashicorp-vault", "haskell", "haxe", "helm", "heroku", "hibernate", "homebrew", "html5", "hugo", "ibm-spss-statistics", "ie10", "ifttt", "influxdb", "inkscape", "insomnia", "intellij-idea", "ionic", "jaeger", "jamstack", "jasmine", "java", "javascript", "jeet", "jekyll", "jenkins", "jest", "jetbrains", "jira", "jira-align", "jquery", "json", "jule", "julia", "junit", "jupyter", "k3os", "k3s", "kafka", "kaggle", "karate", "karma", "keras", "kibana", "knex-js", "knockout", "kotlin", "krakenjs", "ktor", "kubernetes", "labview", "laravel", "latex", "less-js", "linkedin", "linux", "liquibase", "livewire", "llvm", "logstash", "lua", "lumen", "magento", "markdown", "material-ui", "materialize", "matlab", "matplotlib", "maven", "meteor-js", "microsoft-sql-server", "minitab", "mob-x", "mocha", "modx", "moleculer", "mongodb", "mongoose-js", "moodle", "ms-dos", "mysql", "nano", "nerog", "nestjs", "net", "net-core", "network-x", "new4j", "nextjs", "nginx", "nhibernate", "nim", "nimble", "nix", "nodejs", "nodemon", "nodewebkit", "npm", "nuget", "num-py", "nuxt-js", "objective-c", "ocaml", "oh-my-zsh", "okta", "open-al", "open-api", "open-cl", "open-cv", "open-gl", "open-stack", "open-suse", "open-telemetry", "opera", "oracle", "p5js", "packer", "pandas", "perl", "pf-sense", "phalcon", "phoenix-framework", "photon-engine", "php", "php-storm", "playwrite", "ploty", "podman", "polygon", "portainer", "postcss", "postgresql", "postman", "powershell", "processing", "prometheus", "protractor", "purescript", "putty", "pycharm", "pyscript", "pytest", "python", "python-poetry", "pytorch", "qodana", "qt", "quarkus", "quasar", "qwik", "r", "rabbitmq", "rancher", "raspberrypi", "reach", "react", "react-bootstrap", "realm", "red-cube-s-epic-compiler-thingy-programming-re-ct", "redhat", "redis", "redux", "ren-py", "rider", "robot-operating-system-ros", "rocksdb", "rollup-js", "rspec", "rstudio", "ruby", "ruby-mine", "ruby-on-rails", "rust", "salesforce", "sanity", "sass", "scala", "scalingo", "sdl", "selenium", "sema-software", "sequelize", "shopware", "sketch", "slack", "socket-io", "solid-js", "solidity", "sonarqube", "sourcetree", "spark", "splunk", "spring", "sql-developer", "sqlalchemy", "sqlite", "ssh", "stackoverflow", "stata", "storybook", "streamlit", "stylus", "subversion", "svelte", "swagger", "swift", "symfony", "tailwind-css", "tauri", "tensorflow", "terraform", "tex", "the-algorithms", "three-js", "titanium-sdk", "tomcat", "tortoise-git", "tower", "traefik-mesh", "traefik-proxy", "travis-ci", "trello", "twitter", "typescript", "typo3", "ubuntu", "uml", "unity", "unix", "unreal-engine", "uwsgi", "v8", "vagrant", "vala", "vercel", "veutify", "vim", "visualstudio", "vite", "vitejs", "vscode", "vsphere", "vue", "vue-storefront", "vyper", "webassembly", "webflow", "weblate", "webpack", "webstorm", "windows8", "windows11", "woo-commerce", "wordpress", "xamarin", "xcode", "xml", "yaml", "yarn", "yii-framework", "yuno-host", "zend-framework", "zig"] })].flatMap(([group, names]) => names.map((name) => group + ":" + name));
1
+ const icons = [...Object.entries({ "aws": ["activate", "alexa-for-business", "amplify", "apache-mxnet-on-aws", "api-gateway", "app-config", "app-flow", "app-mesh", "app-runner", "app-stream", "app-sync", "application-auto-scaling", "application-composer", "application-cost-profiler", "application-discovery-service", "application-migration-service", "artifact", "athena", "audit-manager", "augmented-ai-a2i", "aurora", "auto-scaling", "backint-agent", "backup", "batch", "billing-conductor", "bottlerocket", "braket", "budgets", "certificate-manager", "chatbot", "chime", "chime-sdk", "chime-voice-connector", "clean-rooms", "client-vpn", "cloud-control-api", "cloud-development-kit", "cloud-directory", "cloud-formation", "cloud-front", "cloud-hsm", "cloud-map", "cloud-search", "cloud-shell", "cloud-trail", "cloud-wan", "cloud-watch", "cloud9", "code-artifact", "code-build", "code-catalyst", "code-commit", "code-deploy", "code-guru", "code-pipeline", "code-star", "code-whisperer", "cognito", "command-line-interface", "comprehend", "comprehend-medical", "compute-optimizer", "config", "connect", "console-mobile-application", "control-tower", "corretto", "cost-and-usage-report", "cost-explorer", "data-exchange", "data-pipeline", "data-sync", "data-zone", "database-migration-service", "deep-composer", "deep-learning-amis", "deep-learning-containers", "deep-lens", "deep-racer", "detective", "dev-ops-guru", "device-farm", "direct-connect", "directory-service", "distro-for-open-telemetry", "document-db", "dynamo-db", "ec2", "ec2-auto-scaling", "ec2-image-builder", "ecs-anywhere", "efs", "eks-anywhere", "eks-cloud", "eks-distro", "elasti-cache", "elastic-beanstalk", "elastic-block-store", "elastic-container-registry", "elastic-container-service", "elastic-disaster-recovery", "elastic-fabric-adapter", "elastic-inference", "elastic-kubernetes-service", "elastic-load-balancing", "elastic-transcoder", "elemental-appliances-software", "elemental-conductor", "elemental-delta", "elemental-link", "elemental-live", "elemental-media-connect", "elemental-media-convert", "elemental-media-live", "elemental-media-package", "elemental-media-store", "elemental-media-tailor", "elemental-server", "emr", "event-bridge", "express-workflows", "fargate", "fault-injection-simulator", "file-cache", "fin-space", "firewall-manager", "forecast", "fraud-detector", "free-rtos", "fsx", "fsx-for-lustre", "fsx-for-net-app-ontap", "fsx-for-open-zfs", "fsx-for-wfs", "game-kit", "game-lift", "game-sparks", "genomics-cli", "global-accelerator", "glue", "glue-data-brew", "glue-elastic-views", "ground-station", "guard-duty", "health-lake", "honeycode", "iam-identity-center", "identity-and-access-management", "inspector", "interactive-video-service", "io-t-1-click", "io-t-analytics", "io-t-button", "io-t-core", "io-t-device-defender", "io-t-device-management", "io-t-edu-kit", "io-t-events", "io-t-express-link", "io-t-fleet-wise", "io-t-greengrass", "io-t-robo-runner", "io-t-site-wise", "io-t-things-graph", "io-t-twin-maker", "iq", "kendra", "key-management-service", "keyspaces", "kinesis", "kinesis-data-analytics", "kinesis-data-streams", "kinesis-firehose", "kinesis-video-streams", "lake-formation", "lambda", "launch-wizard", "lex", "license-manager", "lightsail", "local-zones", "location-service", "lookout-for-equipment", "lookout-for-metrics", "lookout-for-vision", "lumberyard", "macie", "mainframe-modernization", "managed-blockchain", "managed-grafana", "managed-service-for-prometheus", "managed-services", "managed-streaming-for-apache-kafka", "managed-workflows-for-apache-airflow", "management-console", "marketplace-dark", "marketplace-light", "memory-db-for-redis", "migration-evaluator", "migration-hub", "monitron", "mq", "neptune", "network-firewall", "neuron", "nice-dcv", "nice-engin-frame", "nimble-studio", "nitro-enclaves", "omics", "open-3d-engine", "open-search-service", "ops-works", "organizations", "outposts-family", "outposts-rack", "outposts-servers", "panorama", "parallel-cluster", "personal-health-dashboard", "personalize", "pinpoint", "pinpoint-apis", "polly", "private-5g", "private-certificate-authority", "private-link", "professional-services", "proton", "quantum-ledger-database", "quick-sight", "rds", "rds-on-vmware", "re-post", "red-hat-open-shift-service-on-aws", "redshift", "rekognition", "reserved-instance-reporting", "resilience-hub", "resource-access-manager", "resource-explorer", "robo-maker", "route-53", "s3-on-outposts", "sage-maker", "sage-maker-ground-truth", "sage-maker-studio-lab", "savings-plans", "secrets-manager", "security-hub", "security-lake", "server-migration-service", "serverless-application-repository", "service-catalog", "service-management-connector", "shield", "signer", "sim-space-weaver", "simple-email-service", "simple-notification-service", "simple-queue-service", "simple-storage-service", "simple-storage-service-glacier", "site-to-site-vpn", "snowball", "snowball-edge", "snowcone", "snowmobile", "step-functions", "storage-gateway", "sumerian", "supply-chain", "support", "systems-manager", "tensor-flow-on-aws", "textract", "thinkbox-deadline", "thinkbox-frost", "thinkbox-krakatoa", "thinkbox-sequoia", "thinkbox-stoke", "thinkbox-xmesh", "timestream", "tools-and-sdks", "torch-serve", "training-certification", "transcribe", "transfer-family", "transit-gateway", "translate", "trusted-advisor", "verified-access", "verified-permissions", "virtual-private-cloud", "vmware-cloud-on-aws", "vpc-lattice", "waf", "wavelength", "well-architected-tool", "wickr", "work-docs", "work-docs-sdk", "work-link", "work-mail", "work-spaces-family", "x-ray"], "azure": ["abs-member", "active-directory-connect-health", "activity-log", "administrative-units", "advisor", "ai-at-edge", "ai-studio", "aks-automatic", "aks-istio", "alerts", "all-resources", "analysis-services", "anomaly-detector", "api-center", "api-connections", "api-management-services", "api-proxy", "app-compliance-automation", "app-configuration", "app-registrations", "app-service-certificates", "app-service-domains", "app-service-environments", "app-service-plans", "app-services", "app-space", "app-space-component", "applens", "application-gateway-containers", "application-gateways", "application-group", "application-insights", "application-security-groups", "aquila", "arc-data-services", "arc-kubernetes", "arc-machines", "arc-postgre-sql", "arc-sql-managed-instance", "arc-sql-server", "atm-multistack", "auto-scale", "automanaged-vm", "automation-accounts", "availability-sets", "avs-vm", "azure-a", "azure-ad-b2c", "azure-api-for-fhir", "azure-applied-ai-services", "azure-arc", "azure-attestation", "azure-backup-center", "azure-blockchain-service", "azure-center-for-sap", "azure-chaos-studio", "azure-cloud-shell", "azure-communication-services", "azure-communications-gateway", "azure-compute-galleries", "azure-consumption-commitment", "azure-cosmos-db", "azure-data-catalog", "azure-data-explorer-clusters", "azure-database-maria-db-server", "azure-database-migration-services", "azure-database-my-sql-server", "azure-database-postgre-sql-server", "azure-database-postgre-sql-server-group", "azure-databox-gateway", "azure-databricks", "azure-deployment-environments", "azure-dev-ops", "azure-dev-tunnels", "azure-edge-hardware-center", "azure-experimentation-studio", "azure-fileshares", "azure-firewall-manager", "azure-firewall-policy", "azure-hcp-cache", "azure-hpc-workbenches", "azure-hybrid-center", "azure-information-protection", "azure-io-t-operations", "azure-lighthouse", "azure-load-testing", "azure-managed-grafana", "azure-managed-redis", "azure-maps-accounts", "azure-media-service", "azure-migrate", "azure-monitor-dashboard", "azure-monitor-pipeline", "azure-monitors-for-sap-solutions", "azure-net-app-files", "azure-network-function-manager", "azure-network-function-manager-functions", "azure-object-understanding", "azure-open-ai", "azure-operator-5g-core", "azure-operator-insights", "azure-operator-nexus", "azure-operator-service-manager", "azure-orbital", "azure-programmable-connectivity", "azure-purview-accounts", "azure-quotas", "azure-red-hat-open-shift", "azure-sentinel", "azure-service-bus", "azure-sphere", "azure-spring-apps", "azure-sql", "azure-sql-edge", "azure-sql-server-stretch-databases", "azure-sql-vm", "azure-stack", "azure-stack-edge", "azure-stack-hci-sizer", "azure-storage-mover", "azure-support-center-blue", "azure-sustainability", "azure-synapse-analytics", "azure-token-service", "azure-video-indexer", "azure-virtual-desktop", "azure-vmware-solution", "azure-workbooks", "azurite", "backlog", "backup-vault", "bare-metal-infrastructure", "bastions", "batch-accounts", "batch-ai", "biz-talk", "blob-block", "blob-page", "blockchain-applications", "blueprints", "bonsai", "bot-services", "branch", "breeze", "browser", "bug", "builds", "business-process-tracking", "cache", "cache-redis", "capacity", "capacity-reservation-groups", "cdn-profiles", "central-service-instance-for-sap", "ceres", "change-analysis", "client-apps", "cloud-services-classic", "cloud-services-extended-support", "cloud-test", "code", "code-optimization", "cognitive-search", "cognitive-services", "cognitive-services-decisions", "collaborative-service", "commit", "community-images", "compliance", "compliance-center", "compute-fleet", "computer-vision", "conditional-access", "confidential-ledgers", "connected-cache", "connected-vehicle-platform", "connections", "consortium", "container-apps-environments", "container-instances", "container-registries", "container-services-deprecated", "content-moderators", "content-safety", "controls", "controls-horizontal", "cost-alerts", "cost-analysis", "cost-budgets", "cost-export", "cost-management", "cost-management-and-billing", "counter", "cubes", "custom-ip-prefix", "custom-vision", "customer-lockbox-for-microsoft-azure", "dashboard", "dashboard-hub", "data-box", "data-collection-rules", "data-factories", "data-lake-analytics", "data-lake-storage-gen1", "data-lake-store-gen1", "data-share-invitations", "data-shares", "data-virtualization", "database-instance-for-sap", "ddo-s-protection-plans", "dedicated-hsm", "defender-cm-local-manager", "defender-dcs-controller", "defender-distributer-control-system", "defender-engineering-station", "defender-external-management", "defender-freezer-monitor", "defender-historian", "defender-hmi", "defender-industrial-packaging-system", "defender-industrial-printer", "defender-industrial-robot", "defender-industrial-scale-system", "defender-marquee", "defender-meter", "defender-plc", "defender-pneumatic-device", "defender-programable-board", "defender-relay", "defender-robot-controller", "defender-rtu", "defender-sensor", "defender-slot", "defender-web-guiding-system", "detonation", "dev-console", "dev-ops-starter", "dev-test-labs", "device-compliance", "device-configuration", "device-enrollment", "device-provisioning-services", "device-security-apple", "device-security-google", "device-security-windows", "device-update-io-t-hub", "devices", "diagnostics-settings", "digital-twins", "disk-encryption-sets", "disk-pool", "disks", "disks-classic", "disks-snapshots", "dns-multistack", "dns-private-resolver", "dns-security-policy", "dns-zones", "download", "e-books", "edge-actions", "edge-management", "edge-storage-accelerator", "education", "elastic-job-agents", "elastic-san", "endpoint-analytics", "engage-center-connect", "enterprise-applications", "entra-connect", "entra-connect-health", "entra-connect-sync", "entra-domain-services", "entra-global-secure-access", "entra-id-protection", "entra-identity-custom-roles", "entra-identity-licenses", "entra-identity-risky-signins", "entra-identity-risky-users", "entra-identity-roles-and-administrators", "entra-internet-access", "entra-managed-identities", "entra-private-access", "entra-privleged-identity-management", "entra-verified-id", "error", "event-grid-domains", "event-grid-subscriptions", "event-grid-topics", "event-hub-clusters", "event-hubs", "exchange-access", "exchange-on-premises-access", "express-route-circuits", "express-route-direct", "express-route-traffic-collector", "extended-security-updates", "extensions", "external-id", "external-id-modified", "external-identities", "face-apis", "feature-previews", "fhir-service", "fiji", "file", "files", "firewalls", "folder-blank", "folder-website", "form-recognizers", "frd-qa", "free-services", "front-door-and-cdn-profiles", "ftp", "function-apps", "gear", "genomics", "genomics-accounts", "globe-error", "globe-success", "globe-warning", "groups", "guide", "hd-insight-clusters", "hdi-aks-cluster", "heart", "help-and-support", "host-groups", "host-pools", "hosts", "hybrid-connectivity-hub", "ic-m-troubleshooting", "identity-governance", "identity-multi-factor-authentication", "identity-secure-score", "image", "image-definitions", "image-templates", "image-versions", "images", "immersive-readers", "import-export-jobs", "industrial-io-t", "information", "infrastructure-backup", "input-output", "instance-pools", "integration-accounts", "integration-environments", "integration-service-environments", "internet-analyzer-profiles", "intune", "intune-app-protection", "intune-for-education", "intune-trends", "io-t-central-applications", "io-t-edge", "io-t-hub", "ip-address-manager", "ip-groups", "journey-hub", "key-vaults", "keys", "kubernetes-fleet-manager", "kubernetes-services", "lab-accounts", "lab-services", "landing-zone", "language", "language-understanding", "launch-portal", "learn", "load-balancer-hub", "load-balancers", "load-test", "load-testing", "local-network-gateways", "location", "log-analytics-query-pack", "log-analytics-workspaces", "log-streaming", "logic-apps", "logic-apps-custom-connector", "logic-apps-template", "machine-learning", "machine-learning-studio-classic-web-services", "machine-learning-studio-web-service-plans", "machine-learning-studio-workspaces", "machines-azure-arc", "maintenance-configuration", "managed-applications-center", "managed-database", "managed-desktop", "managed-dev-ops-pools", "managed-file-shares", "managed-identities", "managed-instance-apache-cassandra", "managed-service-fabric", "management-groups", "management-portal", "marketplace", "marketplace-management", "med-tech-service", "media", "media-file", "mesh-applications", "metrics", "metrics-advisor", "microsoft-defender-easm", "microsoft-defender-for-cloud", "microsoft-defender-for-io-t", "microsoft-dev-box", "mindaro", "mission-landing-zone", "mobile", "mobile-engagement", "mobile-networks", "modular-data-center", "module", "monitor", "monitor-health-models", "multi-tenancy", "multifactor-authentication", "my-customers", "nat", "network-foundation-hub", "network-interfaces", "network-managers", "network-security-groups", "network-security-hub", "network-security-perimeters", "network-watcher", "notification-hub-namespaces", "notification-hubs", "offers", "on-premises-data-gateways", "open-supply-chain-platform", "operation-log-classic", "oracle-database", "os-images-classic", "osconfig", "outbound-connection", "partner-namespace", "partner-registration", "partner-topic", "peering-service", "peerings", "personalizers", "planetary-computer-pro", "plans", "policy", "power", "power-bi-embedded", "power-platform", "power-up", "powershell", "preview-features", "private-endpoints", "private-link", "private-link-service", "private-link-services", "process-explorer", "production-ready-database", "promethus", "proximity-placement-groups", "public-ip-addresses", "public-ip-addresses-classic", "public-ip-prefixes", "qn-a-makers", "quickstart-center", "recent", "recovery-services-vaults", "region-management", "relays", "remote-rendering", "reservations", "reserved-capacity", "reserved-ip-addresses-classic", "resource-explorer", "resource-graph-explorer", "resource-group-list", "resource-groups", "resource-guard", "resource-linked", "resource-management-private-link", "resource-mover", "resources-provider", "restore-points", "restore-points-collections", "route-filters", "route-tables", "rtos", "savings-plans", "scheduler", "scheduler-job-collections", "scvmm-management-servers", "search", "search-grid", "security", "security-baselines", "send-grid-accounts", "server-farm", "serverless-search", "service-catalog-mad", "service-endpoint-policies", "service-fabric-clusters", "service-group-relationships", "service-groups", "service-health", "service-providers", "shared-image-galleries", "signal-r", "software-as-a-service", "software-updates", "solutions", "sonic-dash", "spatial-anchor-accounts", "speech-services", "spot-vm", "spot-vmss", "sql-data-warehouses", "sql-database", "sql-database-fleet-manager", "sql-elastic-pools", "sql-managed-instance", "sql-server", "sql-server-registries", "ssd", "ssh-keys", "ssis-lift-and-shift-ir", "stack-hci-premium", "static-apps", "stor-simple-data-managers", "stor-simple-device-managers", "storage-accounts", "storage-accounts-classic", "storage-actions", "storage-azure-files", "storage-container", "storage-explorer", "storage-functions", "storage-hubs", "storage-queue", "storage-sync-services", "stream-analytics-jobs", "subnet", "subscriptions", "system-topic", "table", "tag", "tags", "targets-management", "template-specs", "templates", "tenant-properties", "tenant-status", "test-base", "tfs-vc-repository", "time-series-data-sets", "time-series-insights-access-policies", "time-series-insights-environments", "time-series-insights-event-sources", "toolbox", "toolchain-orchestrator", "traffic-manager-profiles", "translator-text", "troubleshoot", "universal-print", "update-management-center", "updates", "user-privacy", "user-settings", "user-subscriptions", "users", "verifiable-credentials", "verification-as-a-service", "versions", "video-analyzers", "virtual-clusters", "virtual-enclaves", "virtual-instance-for-sap", "virtual-machine", "virtual-machines-classic", "virtual-network-gateways", "virtual-networks", "virtual-networks-classic", "virtual-router", "virtual-visits-builder", "virtual-wan-hub", "virtual-wans", "vm-app-definitions", "vm-app-versions", "vm-image-version", "vm-images-classic", "vm-scale-sets", "vpnclient-windows", "wac", "wac-installer", "web-app-database", "web-application-firewall-policies-waf", "web-jobs", "web-slots", "web-test", "website-power", "website-staging", "windows-notification-services", "windows10-core-services", "workbooks", "worker-container-app", "workflow", "workload-orchestration", "workspace-gateway", "workspaces"], "gcp": ["access-context-manager", "administration", "advanced-agent-modeling", "advanced-solutions-lab", "agent-assist", "ai-hub", "ai-platform", "ai-platform-unified", "analytics-hub", "anthos", "anthos-config-management", "anthos-service-mesh", "api", "api-analytics", "api-monetization", "apigee-api-platform", "apigee-sense", "app-engine", "artifact-registry", "asset-inventory", "assured-workloads", "auto-ml", "auto-ml-natural-language", "auto-ml-tables", "auto-ml-translation", "auto-ml-video-intelligence", "auto-ml-vision", "bare-metal-solutions", "batch", "beyondcorp", "big-query", "bigtable", "billing", "binary-authorization", "catalog", "certificate-authority-service", "certificate-manager", "cloud-api-gateway", "cloud-apis", "cloud-armor", "cloud-asset-inventory", "cloud-audit-logs", "cloud-build", "cloud-cdn", "cloud-code", "cloud-composer", "cloud-data-fusion", "cloud-deploy", "cloud-deployment-manager", "cloud-dns", "cloud-domains", "cloud-ekm", "cloud-endpoints", "cloud-external-ip-addresses", "cloud-firewall-rules", "cloud-for-marketing", "cloud-functions", "cloud-generic", "cloud-gpu", "cloud-healthcare-api", "cloud-healthcare-marketplace", "cloud-hsm", "cloud-ids", "cloud-inference-api", "cloud-interconnect", "cloud-jobs-api", "cloud-load-balancing", "cloud-logging", "cloud-media-edge", "cloud-monitoring", "cloud-nat", "cloud-natural-language-api", "cloud-network", "cloud-ops", "cloud-optimization-ai", "cloud-optimization-ai-fleet-routing-api", "cloud-router", "cloud-routes", "cloud-run", "cloud-run-for-anthos", "cloud-scheduler", "cloud-security-scanner", "cloud-shell", "cloud-spanner", "cloud-sql", "cloud-storage", "cloud-tasks", "cloud-test-lab", "cloud-tpu", "cloud-translation-api", "cloud-vision-api", "cloud-vpn", "compute-engine", "configuration-management", "connectivity-test", "connectors", "contact-center-ai", "container-optimized-os", "container-registry", "data-catalog", "data-labeling", "data-layers", "data-loss-prevention-api", "data-qn-a", "data-studio", "data-transfer", "database-migration-service", "dataflow", "datalab", "dataplex", "datapol", "dataprep", "dataproc", "dataproc-metastore", "datashare", "datastore", "datastream", "debugger", "developer-portal", "dialogflow", "dialogflow-cx", "dialogflow-insights", "document-ai", "early-access-center", "error-reporting", "eventarc", "filestore", "financial-services-marketplace", "firestore", "fleet-engine", "free-trial", "game-servers", "gce-systems-management", "genomics", "gke-on-prem", "google-cloud-marketplace", "google-kubernetes-engine", "google-maps-platform", "healthcare-nlp-api", "home", "identity-and-access-management", "identity-aware-proxy", "identity-platform", "iot-core", "iot-edge", "key-access-justifications", "key-management-service", "kuberun", "launcher", "local-ssd", "looker", "managed-service-for-microsoft-active-directory", "media-translation-api", "memorystore", "migrate-for-anthos", "migrate-for-compute-engine", "my-cloud", "network-connectivity-center", "network-intelligence-center", "network-security", "network-tiers", "network-topology", "onboarding", "os-configuration-management", "os-inventory-management", "os-patch-management", "partner-interconnect", "partner-portal", "performance-dashboard", "permissions", "persistent-disk", "phishing-protection", "policy-analyzer", "premium-network-tier", "private-connectivity", "private-service-connect", "producer-portal", "profiler", "project", "pub-sub", "quantum-engine", "quotas", "real-world-insights", "recommendations-ai", "release-notes", "retail-api", "risk-manager", "runtime-config", "secret-manager", "security", "security-command-center", "security-health-advisor", "security-key-enforcement", "service-discovery", "speech-to-text", "stackdriver", "standard-network-tier", "stream-suite", "support", "tensorflow-enterprise", "text-to-speech", "tools-for-powershell", "trace", "traffic-director", "transfer", "transfer-appliance", "user-preferences", "vertex-ai", "video-intelligence-api", "virtual-private-cloud", "visual-inspection", "vmware-engine", "web-risk", "web-security-scanner", "workflows", "workload-identity-pool"], "tech": ["aarch64", "adobe-illustrator", "adobe-photoshop", "adobe-premiere-pro", "adobe-xd", "adonis-js", "after-effects", "airflow", "akka", "algolia", "alpine-js", "amazon-web-services", "anaconda", "android", "android-studio", "angular", "angular-js", "ansible", "ant-design", "apache", "apl", "appcelerator", "apple", "apple-safari", "appwrite", "arch-linux", "arduino", "argo-cd", "astro", "atom", "autodesk-maya", "autodesk-shot-grid", "awk", "azios", "azure", "azure-devops", "azure-sql-database", "babel", "backbone-js", "ballerina", "bamboo", "bash", "behance", "bitbucket", "blender", "bootstrap", "bower", "browserstack", "bulma", "bun", "c", "cairo-graphics", "cake-php", "canva", "capacitor", "cassandra", "cent-os", "chrome", "circle-ci", "clarity", "clion", "clojure", "clojure-script", "cloudflare", "cloudflare-workers", "cmake", "code-igniter", "code-pen", "codeac", "codecov", "coffee-script", "composer", "confluence", "consul", "contao", "corejs", "cosmosdb", "couchdb", "cplusplus", "crystal", "csharp", "css3", "cucumber", "cypress", "d3js", "dart", "data-grip", "data-spell", "dbeaver", "debian", "deno", "devicon", "digital-ocean", "discord-js", "django", "django-rest", "docker", "doctrine", "dropwizard", "drupal", "eclipse-ceylon", "eclipse-ide", "eclipse-vert-x", "elasticbeats", "elasticsearch", "electron", "eleventy-11ty", "elixir", "elm", "embedded-c", "ember-js", "envoy", "erlang", "eslint", "express", "facebook", "fast-api", "fastify", "fauna", "feathers", "fedora", "figma", "file-zilla", "firebase", "firefox", "flask", "flutter", "fortran", "foundation", "fsharp", "gatling", "gatsby", "gazebo", "gcc", "gentoo", "ghost", "gimp", "git", "gitbook", "github", "github-actions", "github-codespaces", "gitlab", "gitpod", "gitter", "gnu-emacs", "go", "go-land", "godot-engine", "google", "google-cloud", "gradle", "grafana", "grails", "graphql", "groovy", "grunt-js", "gulp-js", "hadoop", "handlebars", "hardhat", "harvester", "hashicorp-vault", "haskell", "haxe", "helm", "heroku", "hibernate", "homebrew", "html5", "hugo", "ibm-spss-statistics", "ie10", "ifttt", "influxdb", "inkscape", "insomnia", "intellij-idea", "ionic", "jaeger", "jamstack", "jasmine", "java", "javascript", "jeet", "jekyll", "jenkins", "jest", "jetbrains", "jira", "jira-align", "jquery", "json", "jule", "julia", "junit", "jupyter", "k3os", "k3s", "kafka", "kaggle", "karate", "karma", "keras", "kibana", "knex-js", "knockout", "kotlin", "krakenjs", "ktor", "kubernetes", "labview", "laravel", "latex", "less-js", "linkedin", "linux", "liquibase", "livewire", "llvm", "logstash", "lua", "lumen", "magento", "markdown", "material-ui", "materialize", "matlab", "matplotlib", "maven", "meteor-js", "microsoft-sql-server", "minitab", "mob-x", "mocha", "modx", "moleculer", "mongodb", "mongoose-js", "moodle", "ms-dos", "mysql", "nano", "nerog", "nestjs", "net", "net-core", "network-x", "new4j", "nextjs", "nginx", "nhibernate", "nim", "nimble", "nix", "nodejs", "nodemon", "nodewebkit", "npm", "nuget", "num-py", "nuxt-js", "objective-c", "ocaml", "oh-my-zsh", "okta", "open-al", "open-api", "open-cl", "open-cv", "open-gl", "open-stack", "open-suse", "open-telemetry", "opera", "oracle", "p5js", "packer", "pandas", "perl", "pf-sense", "phalcon", "phoenix-framework", "photon-engine", "php", "php-storm", "playwrite", "ploty", "podman", "polygon", "portainer", "postcss", "postgresql", "postman", "powershell", "processing", "prometheus", "protractor", "purescript", "putty", "pycharm", "pyscript", "pytest", "python", "python-poetry", "pytorch", "qodana", "qt", "quarkus", "quasar", "qwik", "r", "rabbitmq", "rancher", "raspberrypi", "reach", "react", "react-bootstrap", "realm", "red-cube-s-epic-compiler-thingy-programming-re-ct", "redhat", "redis", "redux", "ren-py", "rider", "robot-operating-system-ros", "rocksdb", "rollup-js", "rspec", "rstudio", "ruby", "ruby-mine", "ruby-on-rails", "rust", "salesforce", "sanity", "sass", "scala", "scalingo", "sdl", "selenium", "sema-software", "sequelize", "shopware", "sketch", "slack", "socket-io", "solid-js", "solidity", "sonarqube", "sourcetree", "spark", "splunk", "spring", "sql-developer", "sqlalchemy", "sqlite", "ssh", "stackoverflow", "stata", "storybook", "streamlit", "stylus", "subversion", "svelte", "swagger", "swift", "symfony", "tailwind-css", "tauri", "tensorflow", "terraform", "tex", "the-algorithms", "three-js", "titanium-sdk", "tomcat", "tortoise-git", "tower", "traefik-mesh", "traefik-proxy", "travis-ci", "trello", "twitter", "typescript", "typo3", "ubuntu", "uml", "unity", "unix", "unreal-engine", "uwsgi", "v8", "vagrant", "vala", "vercel", "veutify", "vim", "visualstudio", "vite", "vitejs", "vscode", "vsphere", "vue", "vue-storefront", "vyper", "webassembly", "webflow", "weblate", "webpack", "webstorm", "windows8", "windows11", "woo-commerce", "wordpress", "xamarin", "xcode", "xml", "yaml", "yarn", "yii-framework", "yuno-host", "zend-framework", "zig"] })].flatMap(([group, names]) => names.map((name) => group + ":" + name));
2
2
  export const LibIcons = [
3
3
  "likec4lib {",
4
4
  " icons {",
package/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ export { isLikeC4Builtin } from './likec4lib';
9
9
  export { createLanguageServices } from './module';
10
10
  export type { LikeC4Services, LikeC4SharedServices } from './module';
11
11
  export type { LikeC4Views } from './views';
12
+ export type { ProjectsManager } from './workspace';
12
13
  export { LikeC4FileSystem, NoopFileSystem, WithMCPServer };
13
14
  type StartLanguageServerOptions = {
14
15
  /**
package/dist/logger.js CHANGED
@@ -1,4 +1,4 @@
1
- import { nonexhaustive } from "@likec4/core";
1
+ import { nonexhaustive } from "@likec4/core/utils";
2
2
  import {
3
3
  errorFromLogRecord,
4
4
  getMessageOnlyFormatter,
@@ -29,8 +29,8 @@ Conventions:
29
29
  Available tools:
30
30
  - list-projects \u2014 List all LikeC4 projects in the workspace.
31
31
  - read-project-summary \u2014 Project specification (element kinds, deployment node kinds, tags, metadata keys), all elements, deployment nodes and views. Input: { project? }.
32
- - search-element \u2014 Search elements and deployment nodes across all projects by id/title/kind/shape/tags. Input: { search }.
33
- - read-element \u2014 Full element details including relationships, includedInViews, deployedInstances, and sourceLocation. Input: { id, project? }.
32
+ - search-element \u2014 Search elements and deployment nodes across all projects by id/title/kind/shape/tags/metadata. Input: { search }.
33
+ - read-element \u2014 Full element details including relationships, includedInViews, deployedInstances, metadata and sourceLocation. Input: { id, project? }.
34
34
  - read-deployment \u2014 Details of a deployment node or deployed instance. Input: { id, project? }.
35
35
  - read-view \u2014 Full view details (nodes/edges) and sourceLocation. Input: { viewId, project? }.
36
36
  - find-relationships \u2014 Direct and indirect relationships between two elements in a project. Input: { element1, element2, project? }.
@@ -38,13 +38,14 @@ ${isInEditor ? "- open-view \u2014 Opens the LikeC4 view panel in the editor. Tr
38
38
 
39
39
  Instructions:
40
40
  - Identify the project first
41
- - Use "search-element" to find elements by id/title/kind/shape/tags and select the project
41
+ - Use "search-element" to find elements by id/title/kind/shape/tags/metadata and select the project
42
42
  - Use "read-project-summary" to find all elements and deployment nodes inside the project, what kinds, tags, metadata keys are available
43
43
  - Use "list-projects" to list all available projects
44
- - If resource returns "sourceLocation", provide link to this location in the editor
44
+ - If response returns "sourceLocation", provide link to this location in the editor
45
45
 
46
- Docs: https://likec4.dev/llms-full.txt
46
+ Full documentation: https://likec4.dev/llms-full.txt
47
47
  `,
48
+ enforceStrictCapabilities: true,
48
49
  ...options,
49
50
  capabilities: {
50
51
  tools: {},
@@ -4,9 +4,9 @@ import type { LikeC4Services } from '../../module';
4
4
  import type { LikeC4MCPServer } from '../interfaces';
5
5
  export declare class StreamableLikeC4MCPServer implements LikeC4MCPServer, AsyncDisposable {
6
6
  private services;
7
- private server;
8
7
  private _port;
9
- constructor(services: LikeC4Services);
8
+ private server;
9
+ constructor(services: LikeC4Services, _port?: number);
10
10
  get mcp(): McpServer;
11
11
  get isStarted(): boolean;
12
12
  get port(): number;
@@ -1,17 +1,17 @@
1
1
  import { serve } from "@hono/node-server";
2
+ import { promiseNextTick } from "@likec4/core/utils";
2
3
  import { loggable } from "@likec4/log";
3
4
  import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
4
5
  import { toFetchResponse, toReqRes } from "fetch-to-node";
5
6
  import { Hono } from "hono";
6
- import { createServer } from "node:http";
7
7
  import { logger } from "../utils.js";
8
8
  export class StreamableLikeC4MCPServer {
9
- constructor(services) {
9
+ constructor(services, _port = 33335) {
10
10
  this.services = services;
11
+ this._port = _port;
11
12
  }
12
13
  // Store transports by session ID to send notifications
13
14
  server = void 0;
14
- _port = 33335;
15
15
  get mcp() {
16
16
  throw new Error("StreamableLikeC4MCPServer has access to McpServer only during the request");
17
17
  }
@@ -24,34 +24,89 @@ export class StreamableLikeC4MCPServer {
24
24
  async dispose() {
25
25
  await this.stop();
26
26
  }
27
- async start(port = 33335) {
28
- if (this.server) {
29
- if (this.port === port) {
30
- return;
27
+ async start(port = this._port) {
28
+ try {
29
+ if (this.server) {
30
+ if (this.port === port) {
31
+ return;
32
+ }
33
+ await this.stop();
31
34
  }
32
- await this.stop();
33
- }
34
- logger.info("Starting MCP server on port {port}", { port });
35
- this._port = port;
36
- const app = new Hono().post("/mcp", async (c) => {
37
- const { req, res } = toReqRes(c.req.raw);
38
- const server = this.services.mcp.ServerFactory.create();
39
- try {
40
- const transport = new StreamableHTTPServerTransport({
41
- sessionIdGenerator: void 0
42
- });
43
- transport.onerror = (err) => {
44
- logger.error(loggable(err));
45
- };
46
- await server.connect(transport);
47
- await transport.handleRequest(req, res, await c.req.json());
48
- res.on("close", () => {
49
- logger.debug("Request closed");
50
- transport.close();
51
- server.close();
52
- });
53
- return toFetchResponse(res);
54
- } catch (e) {
35
+ logger.info("Starting MCP server on port {port}", { port });
36
+ this._port = port;
37
+ await promiseNextTick();
38
+ const app = new Hono().post("/mcp", async (c) => {
39
+ const { req, res } = toReqRes(c.req.raw);
40
+ const server = this.services.mcp.ServerFactory.create();
41
+ try {
42
+ const transport = new StreamableHTTPServerTransport({
43
+ sessionIdGenerator: void 0
44
+ });
45
+ transport.onerror = (err) => {
46
+ logger.error(loggable(err));
47
+ };
48
+ await server.connect(transport);
49
+ await transport.handleRequest(req, res, await c.req.json());
50
+ res.on("close", () => {
51
+ logger.debug("Request closed");
52
+ transport.close();
53
+ server.close();
54
+ });
55
+ return toFetchResponse(res);
56
+ } catch (e) {
57
+ logger.error(loggable(e));
58
+ return c.json(
59
+ {
60
+ jsonrpc: "2.0",
61
+ error: {
62
+ code: -32603,
63
+ message: "Internal server error"
64
+ },
65
+ id: null
66
+ },
67
+ { status: 500 }
68
+ );
69
+ }
70
+ }).get("/mcp", async (c) => {
71
+ logger.debug("Received GET MCP request");
72
+ return c.json(
73
+ {
74
+ jsonrpc: "2.0",
75
+ error: {
76
+ code: -32e3,
77
+ message: "Method not allowed."
78
+ },
79
+ id: null
80
+ },
81
+ { status: 405 }
82
+ );
83
+ }).delete("/mcp", async (c) => {
84
+ logger.debug("Received DELETE MCP request");
85
+ return c.json(
86
+ {
87
+ jsonrpc: "2.0",
88
+ error: {
89
+ code: -32e3,
90
+ message: "Method not allowed."
91
+ },
92
+ id: null
93
+ },
94
+ { status: 405 }
95
+ );
96
+ }).notFound((c) => {
97
+ logger.debug(`${c.req.method} ${c.req.url} not found`);
98
+ return c.json(
99
+ {
100
+ jsonrpc: "2.0",
101
+ error: {
102
+ code: -32e3,
103
+ message: "Method not found."
104
+ },
105
+ id: null
106
+ },
107
+ { status: 404 }
108
+ );
109
+ }).onError((e, c) => {
55
110
  logger.error(loggable(e));
56
111
  return c.json(
57
112
  {
@@ -64,82 +119,24 @@ export class StreamableLikeC4MCPServer {
64
119
  },
65
120
  { status: 500 }
66
121
  );
67
- }
68
- }).get("/mcp", async (c) => {
69
- logger.debug("Received GET MCP request");
70
- return c.json(
71
- {
72
- jsonrpc: "2.0",
73
- error: {
74
- code: -32e3,
75
- message: "Method not allowed."
76
- },
77
- id: null
78
- },
79
- { status: 405 }
80
- );
81
- }).delete("/mcp", async (c) => {
82
- logger.debug("Received DELETE MCP request");
83
- return c.json(
84
- {
85
- jsonrpc: "2.0",
86
- error: {
87
- code: -32e3,
88
- message: "Method not allowed."
89
- },
90
- id: null
91
- },
92
- { status: 405 }
93
- );
94
- }).notFound((c) => {
95
- logger.debug(`${c.req.method} ${c.req.url} not found`);
96
- return c.json(
97
- {
98
- jsonrpc: "2.0",
99
- error: {
100
- code: -32e3,
101
- message: "Method not found."
102
- },
103
- id: null
104
- },
105
- { status: 404 }
106
- );
107
- }).onError((e, c) => {
108
- logger.error(loggable(e));
109
- return c.json(
122
+ });
123
+ this.server = serve(
110
124
  {
111
- jsonrpc: "2.0",
112
- error: {
113
- code: -32603,
114
- message: "Internal server error"
115
- },
116
- id: null
125
+ fetch: app.fetch,
126
+ hostname: "0.0.0.0",
127
+ port: this._port
117
128
  },
118
- { status: 500 }
129
+ (info) => logger.info("MCP server ready at http://0.0.0.0:{port}/mcp", { port: info.port })
119
130
  );
120
- });
121
- return new Promise((resolve, reject) => {
122
- try {
123
- this.server = serve(
124
- {
125
- fetch: app.fetch,
126
- port: this._port,
127
- createServer
128
- },
129
- (info) => {
130
- logger.info("MCP server listening on port {port}", { port: info.port });
131
- resolve();
132
- }
133
- );
134
- } catch (err) {
135
- reject(err);
136
- }
137
- });
131
+ } catch (err) {
132
+ logger.warn("Failed to start MCP server", { err });
133
+ return Promise.reject(err);
134
+ }
138
135
  }
139
- async stop() {
136
+ stop() {
140
137
  const server = this.server;
141
138
  if (!server) {
142
- return;
139
+ return Promise.resolve();
143
140
  }
144
141
  logger.info("Stopping MCP server");
145
142
  this.server = void 0;
@@ -1,2 +1,4 @@
1
1
  import type { LikeC4MCPServerModuleContext } from '../interfaces';
2
- export declare const WithMCPServer: (type?: "stdio" | "sse") => LikeC4MCPServerModuleContext;
2
+ export declare const WithMCPServer: (type?: "stdio" | "sse" | {
3
+ port: number;
4
+ }) => LikeC4MCPServerModuleContext;
@@ -1,11 +1,11 @@
1
1
  import { loggable } from "@likec4/log";
2
2
  import { isError } from "remeda";
3
- import { logger } from "../../logger.js";
3
+ import { logger } from "../utils.js";
4
4
  import { StdioLikeC4MCPServer } from "./StdioLikeC4MCPServer.js";
5
5
  import { StreamableLikeC4MCPServer } from "./StreamableLikeC4MCPServer.js";
6
- const streamableLikeC4MCPServer = (services) => {
6
+ const streamableLikeC4MCPServer = (services, defaultPort = 33335) => {
7
7
  logger.debug("Creating StreamableLikeC4MCPServer");
8
- const server = new StreamableLikeC4MCPServer(services);
8
+ const server = new StreamableLikeC4MCPServer(services, defaultPort);
9
9
  const langId = services.LanguageMetaData.languageId;
10
10
  const connection = services.shared.lsp.Connection;
11
11
  services.shared.workspace.ConfigurationProvider.onConfigurationSectionUpdate((update) => {
@@ -16,7 +16,7 @@ const streamableLikeC4MCPServer = (services) => {
16
16
  logger.debug("Configuration update: {update}", { update });
17
17
  const {
18
18
  enabled = false,
19
- port = 33335
19
+ port = defaultPort
20
20
  } = update.configuration.mcp;
21
21
  if (!enabled) {
22
22
  server.stop();
@@ -52,6 +52,7 @@ export const WithMCPServer = (type = "sse") => ({
52
52
  if (type === "stdio") {
53
53
  return stdioLikeC4MCPServer(services);
54
54
  }
55
- return streamableLikeC4MCPServer(services);
55
+ const port = typeof type === "object" ? type.port : 33335;
56
+ return streamableLikeC4MCPServer(services, port);
56
57
  }
57
58
  });