@coffeerunhobby/mcp-ha-connect 0.9.0 → 1.1.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/Dockerfile +6 -8
- package/README.md +163 -29
- package/dist/config.d.ts +15 -3
- package/dist/config.js +53 -30
- package/dist/config.js.map +1 -1
- package/dist/haClient/index.d.ts +7 -2
- package/dist/haClient/index.js.map +1 -1
- package/dist/index.js +85 -33
- package/dist/index.js.map +1 -1
- package/dist/omadaClient/auth.d.ts +43 -0
- package/dist/omadaClient/auth.js +157 -0
- package/dist/omadaClient/auth.js.map +1 -0
- package/dist/omadaClient/client.d.ts +82 -0
- package/dist/omadaClient/client.js +173 -0
- package/dist/omadaClient/client.js.map +1 -0
- package/dist/omadaClient/device.d.ts +32 -0
- package/dist/omadaClient/device.js +80 -0
- package/dist/omadaClient/device.js.map +1 -0
- package/dist/omadaClient/index.d.ts +57 -0
- package/dist/omadaClient/index.js +136 -0
- package/dist/omadaClient/index.js.map +1 -0
- package/dist/omadaClient/network.d.ts +63 -0
- package/dist/omadaClient/network.js +114 -0
- package/dist/omadaClient/network.js.map +1 -0
- package/dist/omadaClient/request.d.ts +69 -0
- package/dist/omadaClient/request.js +266 -0
- package/dist/omadaClient/request.js.map +1 -0
- package/dist/omadaClient/security.d.ts +19 -0
- package/dist/omadaClient/security.js +44 -0
- package/dist/omadaClient/security.js.map +1 -0
- package/dist/omadaClient/site.d.ts +20 -0
- package/dist/omadaClient/site.js +33 -0
- package/dist/omadaClient/site.js.map +1 -0
- package/dist/permissions/index.d.ts +49 -0
- package/dist/permissions/index.js +77 -0
- package/dist/permissions/index.js.map +1 -0
- package/dist/server/auth.d.ts +12 -3
- package/dist/server/auth.js +46 -29
- package/dist/server/auth.js.map +1 -1
- package/dist/server/common.d.ts +7 -1
- package/dist/server/common.js +23 -5
- package/dist/server/common.js.map +1 -1
- package/dist/server/http.d.ts +8 -1
- package/dist/server/http.js +14 -10
- package/dist/server/http.js.map +1 -1
- package/dist/server/instructions.d.ts +19 -0
- package/dist/server/instructions.js +69 -0
- package/dist/server/instructions.js.map +1 -0
- package/dist/server/stdio.d.ts +7 -1
- package/dist/server/stdio.js +2 -2
- package/dist/server/stdio.js.map +1 -1
- package/dist/server/stream.d.ts +9 -2
- package/dist/server/stream.js +6 -4
- package/dist/server/stream.js.map +1 -1
- package/dist/tools/{analyzeSensors.d.ts → ai/analyzeSensors.d.ts} +1 -1
- package/dist/tools/{analyzeSensors.js → ai/analyzeSensors.js} +2 -2
- package/dist/tools/ai/analyzeSensors.js.map +1 -0
- package/dist/tools/ai/index.d.ts +6 -0
- package/dist/tools/ai/index.js +14 -0
- package/dist/tools/ai/index.js.map +1 -0
- package/dist/tools/common.d.ts +107 -6
- package/dist/tools/common.js +78 -2
- package/dist/tools/common.js.map +1 -1
- package/dist/tools/{automationControls.d.ts → homeassistant/automationControls.d.ts} +1 -1
- package/dist/tools/{automationControls.js → homeassistant/automationControls.js} +5 -5
- package/dist/tools/homeassistant/automationControls.js.map +1 -0
- package/dist/tools/{calendar.d.ts → homeassistant/calendar.d.ts} +1 -1
- package/dist/tools/{calendar.js → homeassistant/calendar.js} +3 -3
- package/dist/tools/homeassistant/calendar.js.map +1 -0
- package/dist/tools/{callService.d.ts → homeassistant/callService.d.ts} +1 -1
- package/dist/tools/{callService.js → homeassistant/callService.js} +2 -2
- package/dist/tools/homeassistant/callService.js.map +1 -0
- package/dist/tools/{controlClimate.d.ts → homeassistant/controlClimate.d.ts} +1 -1
- package/dist/tools/{controlClimate.js → homeassistant/controlClimate.js} +2 -2
- package/dist/tools/homeassistant/controlClimate.js.map +1 -0
- package/dist/tools/{controlCover.d.ts → homeassistant/controlCover.d.ts} +1 -1
- package/dist/tools/{controlCover.js → homeassistant/controlCover.js} +2 -2
- package/dist/tools/homeassistant/controlCover.js.map +1 -0
- package/dist/tools/{controlFan.d.ts → homeassistant/controlFan.d.ts} +1 -1
- package/dist/tools/{controlFan.js → homeassistant/controlFan.js} +2 -2
- package/dist/tools/homeassistant/controlFan.js.map +1 -0
- package/dist/tools/{controlLight.d.ts → homeassistant/controlLight.d.ts} +1 -1
- package/dist/tools/{controlLight.js → homeassistant/controlLight.js} +2 -2
- package/dist/tools/homeassistant/controlLight.js.map +1 -0
- package/dist/tools/{controlMediaPlayer.d.ts → homeassistant/controlMediaPlayer.d.ts} +1 -1
- package/dist/tools/{controlMediaPlayer.js → homeassistant/controlMediaPlayer.js} +2 -2
- package/dist/tools/homeassistant/controlMediaPlayer.js.map +1 -0
- package/dist/tools/{createAutomation.d.ts → homeassistant/createAutomation.d.ts} +1 -1
- package/dist/tools/{createAutomation.js → homeassistant/createAutomation.js} +2 -2
- package/dist/tools/homeassistant/createAutomation.js.map +1 -0
- package/dist/tools/{deleteAutomation.d.ts → homeassistant/deleteAutomation.d.ts} +1 -1
- package/dist/tools/{deleteAutomation.js → homeassistant/deleteAutomation.js} +2 -2
- package/dist/tools/homeassistant/deleteAutomation.js.map +1 -0
- package/dist/tools/{entityAction.d.ts → homeassistant/entityAction.d.ts} +1 -1
- package/dist/tools/{entityAction.js → homeassistant/entityAction.js} +2 -2
- package/dist/tools/homeassistant/entityAction.js.map +1 -0
- package/dist/tools/{getAllSensors.d.ts → homeassistant/getAllSensors.d.ts} +2 -1
- package/dist/tools/homeassistant/getAllSensors.js +37 -0
- package/dist/tools/homeassistant/getAllSensors.js.map +1 -0
- package/dist/tools/{getAutomationTrace.d.ts → homeassistant/getAutomationTrace.d.ts} +1 -1
- package/dist/tools/{getAutomationTrace.js → homeassistant/getAutomationTrace.js} +2 -2
- package/dist/tools/homeassistant/getAutomationTrace.js.map +1 -0
- package/dist/tools/{getDomainSummary.d.ts → homeassistant/getDomainSummary.d.ts} +1 -1
- package/dist/tools/{getDomainSummary.js → homeassistant/getDomainSummary.js} +2 -2
- package/dist/tools/homeassistant/getDomainSummary.js.map +1 -0
- package/dist/tools/{getEntitiesByDomain.d.ts → homeassistant/getEntitiesByDomain.d.ts} +2 -1
- package/dist/tools/homeassistant/getEntitiesByDomain.js +46 -0
- package/dist/tools/homeassistant/getEntitiesByDomain.js.map +1 -0
- package/dist/tools/{getHistory.d.ts → homeassistant/getHistory.d.ts} +1 -1
- package/dist/tools/{getHistory.js → homeassistant/getHistory.js} +2 -2
- package/dist/tools/homeassistant/getHistory.js.map +1 -0
- package/dist/tools/{getState.d.ts → homeassistant/getState.d.ts} +1 -1
- package/dist/tools/{getState.js → homeassistant/getState.js} +2 -2
- package/dist/tools/homeassistant/getState.js.map +1 -0
- package/dist/tools/{getStates.d.ts → homeassistant/getStates.d.ts} +2 -1
- package/dist/tools/homeassistant/getStates.js +37 -0
- package/dist/tools/homeassistant/getStates.js.map +1 -0
- package/dist/tools/{getVersion.d.ts → homeassistant/getVersion.d.ts} +1 -1
- package/dist/tools/{getVersion.js → homeassistant/getVersion.js} +2 -2
- package/dist/tools/homeassistant/getVersion.js.map +1 -0
- package/dist/tools/homeassistant/index.d.ts +6 -0
- package/dist/tools/homeassistant/index.js +94 -0
- package/dist/tools/homeassistant/index.js.map +1 -0
- package/dist/tools/{listAutomations.d.ts → homeassistant/listAutomations.d.ts} +1 -1
- package/dist/tools/{listAutomations.js → homeassistant/listAutomations.js} +2 -2
- package/dist/tools/homeassistant/listAutomations.js.map +1 -0
- package/dist/tools/{listEntities.d.ts → homeassistant/listEntities.d.ts} +2 -1
- package/dist/tools/homeassistant/listEntities.js +32 -0
- package/dist/tools/homeassistant/listEntities.js.map +1 -0
- package/dist/tools/{listPersons.d.ts → homeassistant/listPersons.d.ts} +1 -1
- package/dist/tools/{listPersons.js → homeassistant/listPersons.js} +2 -2
- package/dist/tools/homeassistant/listPersons.js.map +1 -0
- package/dist/tools/{sceneAndScript.d.ts → homeassistant/sceneAndScript.d.ts} +1 -1
- package/dist/tools/{sceneAndScript.js → homeassistant/sceneAndScript.js} +3 -3
- package/dist/tools/homeassistant/sceneAndScript.js.map +1 -0
- package/dist/tools/{searchEntities.d.ts → homeassistant/searchEntities.d.ts} +2 -1
- package/dist/tools/homeassistant/searchEntities.js +48 -0
- package/dist/tools/homeassistant/searchEntities.js.map +1 -0
- package/dist/tools/{sendNotification.d.ts → homeassistant/sendNotification.d.ts} +1 -1
- package/dist/tools/{sendNotification.js → homeassistant/sendNotification.js} +3 -3
- package/dist/tools/homeassistant/sendNotification.js.map +1 -0
- package/dist/tools/{systemTools.d.ts → homeassistant/systemTools.d.ts} +1 -1
- package/dist/tools/{systemTools.js → homeassistant/systemTools.js} +4 -4
- package/dist/tools/homeassistant/systemTools.js.map +1 -0
- package/dist/tools/{triggerAutomation.d.ts → homeassistant/triggerAutomation.d.ts} +1 -1
- package/dist/tools/{triggerAutomation.js → homeassistant/triggerAutomation.js} +2 -2
- package/dist/tools/homeassistant/triggerAutomation.js.map +1 -0
- package/dist/tools/index.d.ts +16 -3
- package/dist/tools/index.js +35 -93
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/omada/disableClientRateLimit.d.ts +3 -0
- package/dist/tools/omada/disableClientRateLimit.js +13 -0
- package/dist/tools/omada/disableClientRateLimit.js.map +1 -0
- package/dist/tools/omada/getClient.d.ts +3 -0
- package/dist/tools/omada/getClient.js +8 -0
- package/dist/tools/omada/getClient.js.map +1 -0
- package/dist/tools/omada/getDevice.d.ts +3 -0
- package/dist/tools/omada/getDevice.js +8 -0
- package/dist/tools/omada/getDevice.js.map +1 -0
- package/dist/tools/omada/getFirewallSetting.d.ts +3 -0
- package/dist/tools/omada/getFirewallSetting.js +8 -0
- package/dist/tools/omada/getFirewallSetting.js.map +1 -0
- package/dist/tools/omada/getInternetInfo.d.ts +3 -0
- package/dist/tools/omada/getInternetInfo.js +8 -0
- package/dist/tools/omada/getInternetInfo.js.map +1 -0
- package/dist/tools/omada/getLanNetworkList.d.ts +3 -0
- package/dist/tools/omada/getLanNetworkList.js +8 -0
- package/dist/tools/omada/getLanNetworkList.js.map +1 -0
- package/dist/tools/omada/getLanProfileList.d.ts +3 -0
- package/dist/tools/omada/getLanProfileList.js +8 -0
- package/dist/tools/omada/getLanProfileList.js.map +1 -0
- package/dist/tools/omada/getPortForwardingStatus.d.ts +3 -0
- package/dist/tools/omada/getPortForwardingStatus.js +15 -0
- package/dist/tools/omada/getPortForwardingStatus.js.map +1 -0
- package/dist/tools/omada/getRateLimitProfiles.d.ts +3 -0
- package/dist/tools/omada/getRateLimitProfiles.js +8 -0
- package/dist/tools/omada/getRateLimitProfiles.js.map +1 -0
- package/dist/tools/omada/getSsidDetail.d.ts +3 -0
- package/dist/tools/omada/getSsidDetail.js +14 -0
- package/dist/tools/omada/getSsidDetail.js.map +1 -0
- package/dist/tools/omada/getSsidList.d.ts +3 -0
- package/dist/tools/omada/getSsidList.js +13 -0
- package/dist/tools/omada/getSsidList.js.map +1 -0
- package/dist/tools/omada/getSwitchStackDetail.d.ts +3 -0
- package/dist/tools/omada/getSwitchStackDetail.js +8 -0
- package/dist/tools/omada/getSwitchStackDetail.js.map +1 -0
- package/dist/tools/omada/getThreatList.d.ts +3 -0
- package/dist/tools/omada/getThreatList.js +33 -0
- package/dist/tools/omada/getThreatList.js.map +1 -0
- package/dist/tools/omada/getWlanGroupList.d.ts +3 -0
- package/dist/tools/omada/getWlanGroupList.js +8 -0
- package/dist/tools/omada/getWlanGroupList.js.map +1 -0
- package/dist/tools/omada/index.d.ts +6 -0
- package/dist/tools/omada/index.js +71 -0
- package/dist/tools/omada/index.js.map +1 -0
- package/dist/tools/omada/listClients.d.ts +3 -0
- package/dist/tools/omada/listClients.js +8 -0
- package/dist/tools/omada/listClients.js.map +1 -0
- package/dist/tools/omada/listClientsActivity.d.ts +3 -0
- package/dist/tools/omada/listClientsActivity.js +14 -0
- package/dist/tools/omada/listClientsActivity.js.map +1 -0
- package/dist/tools/omada/listClientsPastConnections.d.ts +3 -0
- package/dist/tools/omada/listClientsPastConnections.js +31 -0
- package/dist/tools/omada/listClientsPastConnections.js.map +1 -0
- package/dist/tools/omada/listDevices.d.ts +3 -0
- package/dist/tools/omada/listDevices.js +8 -0
- package/dist/tools/omada/listDevices.js.map +1 -0
- package/dist/tools/omada/listDevicesStats.d.ts +3 -0
- package/dist/tools/omada/listDevicesStats.js +28 -0
- package/dist/tools/omada/listDevicesStats.js.map +1 -0
- package/dist/tools/omada/listMostActiveClients.d.ts +3 -0
- package/dist/tools/omada/listMostActiveClients.js +8 -0
- package/dist/tools/omada/listMostActiveClients.js.map +1 -0
- package/dist/tools/omada/listSites.d.ts +3 -0
- package/dist/tools/omada/listSites.js +10 -0
- package/dist/tools/omada/listSites.js.map +1 -0
- package/dist/tools/omada/searchDevices.d.ts +3 -0
- package/dist/tools/omada/searchDevices.js +12 -0
- package/dist/tools/omada/searchDevices.js.map +1 -0
- package/dist/tools/omada/setClientRateLimit.d.ts +3 -0
- package/dist/tools/omada/setClientRateLimit.js +15 -0
- package/dist/tools/omada/setClientRateLimit.js.map +1 -0
- package/dist/tools/omada/setClientRateLimitProfile.d.ts +3 -0
- package/dist/tools/omada/setClientRateLimitProfile.js +14 -0
- package/dist/tools/omada/setClientRateLimitProfile.js.map +1 -0
- package/dist/tools/types.d.ts +9 -0
- package/dist/tools/types.js +5 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/utils/pagination-schema.d.ts +23 -0
- package/dist/tools/utils/pagination-schema.js +19 -0
- package/dist/tools/utils/pagination-schema.js.map +1 -0
- package/dist/types/ai/index.d.ts +4 -0
- package/dist/types/ai/index.js +5 -0
- package/dist/types/ai/index.js.map +1 -0
- package/dist/types/ai/types.d.ts +60 -0
- package/dist/types/ai/types.js +6 -0
- package/dist/types/ai/types.js.map +1 -0
- package/dist/types/homeassistant/automations.js.map +1 -0
- package/dist/types/homeassistant/calendars.js.map +1 -0
- package/dist/types/homeassistant/config.js.map +1 -0
- package/dist/types/homeassistant/entities.js.map +1 -0
- package/dist/types/homeassistant/errors.js.map +1 -0
- package/dist/types/homeassistant/haConfig.js.map +1 -0
- package/dist/types/homeassistant/history.js.map +1 -0
- package/dist/types/homeassistant/index.d.ts +15 -0
- package/dist/types/homeassistant/index.js +7 -0
- package/dist/types/homeassistant/index.js.map +1 -0
- package/dist/types/homeassistant/request.js.map +1 -0
- package/dist/types/homeassistant/serviceCall.js.map +1 -0
- package/dist/types/homeassistant/states.d.ts +45 -0
- package/dist/types/homeassistant/states.js +17 -0
- package/dist/types/homeassistant/states.js.map +1 -0
- package/dist/types/homeassistant/updates.js.map +1 -0
- package/dist/types/index.d.ts +6 -11
- package/dist/types/index.js +9 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/omada/activeClientInfo.d.ts +17 -0
- package/dist/types/omada/activeClientInfo.js +2 -0
- package/dist/types/omada/activeClientInfo.js.map +1 -0
- package/dist/types/omada/clientActivity.d.ts +31 -0
- package/dist/types/omada/clientActivity.js +2 -0
- package/dist/types/omada/clientActivity.js.map +1 -0
- package/dist/types/omada/clientPastConnection.d.ts +59 -0
- package/dist/types/omada/clientPastConnection.js +2 -0
- package/dist/types/omada/clientPastConnection.js.map +1 -0
- package/dist/types/omada/index.d.ts +13 -0
- package/dist/types/omada/index.js +2 -0
- package/dist/types/omada/index.js.map +1 -0
- package/dist/types/omada/omadaApiResponse.d.ts +5 -0
- package/dist/types/omada/omadaApiResponse.js +2 -0
- package/dist/types/omada/omadaApiResponse.js.map +1 -0
- package/dist/types/omada/omadaClientInfo.d.ts +11 -0
- package/dist/types/omada/omadaClientInfo.js +2 -0
- package/dist/types/omada/omadaClientInfo.js.map +1 -0
- package/dist/types/omada/omadaDeviceInfo.d.ts +11 -0
- package/dist/types/omada/omadaDeviceInfo.js +2 -0
- package/dist/types/omada/omadaDeviceInfo.js.map +1 -0
- package/dist/types/omada/omadaDeviceStats.d.ts +29 -0
- package/dist/types/omada/omadaDeviceStats.js +2 -0
- package/dist/types/omada/omadaDeviceStats.js.map +1 -0
- package/dist/types/omada/omadaSiteSummary.d.ts +5 -0
- package/dist/types/omada/omadaSiteSummary.js +2 -0
- package/dist/types/omada/omadaSiteSummary.js.map +1 -0
- package/dist/types/omada/oswStackDetail.d.ts +11 -0
- package/dist/types/omada/oswStackDetail.js +2 -0
- package/dist/types/omada/oswStackDetail.js.map +1 -0
- package/dist/types/omada/paginatedResult.d.ts +6 -0
- package/dist/types/omada/paginatedResult.js +2 -0
- package/dist/types/omada/paginatedResult.js.map +1 -0
- package/dist/types/omada/rateLimitProfile.d.ts +56 -0
- package/dist/types/omada/rateLimitProfile.js +2 -0
- package/dist/types/omada/rateLimitProfile.js.map +1 -0
- package/dist/types/omada/threatInfo.d.ts +37 -0
- package/dist/types/omada/threatInfo.js +2 -0
- package/dist/types/omada/threatInfo.js.map +1 -0
- package/dist/types/omada/tokenResult.d.ts +6 -0
- package/dist/types/omada/tokenResult.js +2 -0
- package/dist/types/omada/tokenResult.js.map +1 -0
- package/dist/utils/jwt.d.ts +18 -0
- package/dist/utils/jwt.js +47 -0
- package/dist/utils/jwt.js.map +1 -0
- package/dist/utils/logger.d.ts +4 -5
- package/dist/utils/logger.js +70 -59
- package/dist/utils/logger.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/wrapper.js +1 -1
- package/dist/wrapper.js.map +1 -1
- package/docker-compose.yml +3 -0
- package/docs/CHANGELOG.md +56 -6
- package/docs/COVERAGE.md +219 -0
- package/docs/{Quick_Start.md → QUICK_START.md} +32 -7
- package/package.json +7 -6
- package/scripts/generate-jwt.ts +122 -0
- package/src/config.ts +78 -38
- package/src/haClient/index.ts +8 -2
- package/src/index.ts +81 -33
- package/src/omadaClient/auth.ts +185 -0
- package/src/omadaClient/client.ts +225 -0
- package/src/omadaClient/device.ts +91 -0
- package/src/omadaClient/index.ts +206 -0
- package/src/omadaClient/network.ts +129 -0
- package/src/omadaClient/request.ts +332 -0
- package/src/omadaClient/security.ts +51 -0
- package/src/omadaClient/site.ts +37 -0
- package/src/permissions/index.ts +101 -0
- package/src/server/auth.ts +59 -31
- package/src/server/common.ts +38 -8
- package/src/server/http.ts +23 -8
- package/src/server/instructions.ts +94 -0
- package/src/server/stdio.ts +9 -2
- package/src/server/stream.ts +15 -7
- package/src/tools/{analyzeSensors.ts → ai/analyzeSensors.ts} +3 -3
- package/src/tools/ai/index.ts +20 -0
- package/src/tools/common.ts +108 -2
- package/src/tools/{automationControls.ts → homeassistant/automationControls.ts} +6 -6
- package/src/tools/{calendar.ts → homeassistant/calendar.ts} +4 -4
- package/src/tools/{callService.ts → homeassistant/callService.ts} +4 -4
- package/src/tools/{controlClimate.ts → homeassistant/controlClimate.ts} +3 -3
- package/src/tools/{controlCover.ts → homeassistant/controlCover.ts} +3 -3
- package/src/tools/{controlFan.ts → homeassistant/controlFan.ts} +3 -3
- package/src/tools/{controlLight.ts → homeassistant/controlLight.ts} +3 -3
- package/src/tools/{controlMediaPlayer.ts → homeassistant/controlMediaPlayer.ts} +3 -3
- package/src/tools/{createAutomation.ts → homeassistant/createAutomation.ts} +4 -4
- package/src/tools/{deleteAutomation.ts → homeassistant/deleteAutomation.ts} +3 -3
- package/src/tools/{entityAction.ts → homeassistant/entityAction.ts} +3 -3
- package/src/tools/homeassistant/getAllSensors.ts +46 -0
- package/src/tools/{getAutomationTrace.ts → homeassistant/getAutomationTrace.ts} +3 -3
- package/src/tools/{getDomainSummary.ts → homeassistant/getDomainSummary.ts} +3 -3
- package/src/tools/homeassistant/getEntitiesByDomain.ts +56 -0
- package/src/tools/{getHistory.ts → homeassistant/getHistory.ts} +3 -3
- package/src/tools/{getState.ts → homeassistant/getState.ts} +3 -3
- package/src/tools/homeassistant/getStates.ts +46 -0
- package/src/tools/{getVersion.ts → homeassistant/getVersion.ts} +3 -3
- package/src/tools/homeassistant/index.ts +121 -0
- package/src/tools/{listAutomations.ts → homeassistant/listAutomations.ts} +3 -3
- package/src/tools/homeassistant/listEntities.ts +44 -0
- package/src/tools/{listPersons.ts → homeassistant/listPersons.ts} +3 -3
- package/src/tools/{sceneAndScript.ts → homeassistant/sceneAndScript.ts} +4 -4
- package/src/tools/homeassistant/searchEntities.ts +58 -0
- package/src/tools/{sendNotification.ts → homeassistant/sendNotification.ts} +4 -4
- package/src/tools/{systemTools.ts → homeassistant/systemTools.ts} +5 -5
- package/src/tools/{triggerAutomation.ts → homeassistant/triggerAutomation.ts} +3 -3
- package/src/tools/index.ts +47 -116
- package/src/tools/omada/disableClientRateLimit.ts +23 -0
- package/src/tools/omada/getClient.ts +15 -0
- package/src/tools/omada/getDevice.ts +15 -0
- package/src/tools/omada/getFirewallSetting.ts +15 -0
- package/src/tools/omada/getInternetInfo.ts +15 -0
- package/src/tools/omada/getLanNetworkList.ts +15 -0
- package/src/tools/omada/getLanProfileList.ts +15 -0
- package/src/tools/omada/getPortForwardingStatus.ts +26 -0
- package/src/tools/omada/getRateLimitProfiles.ts +15 -0
- package/src/tools/omada/getSsidDetail.ts +22 -0
- package/src/tools/omada/getSsidList.ts +21 -0
- package/src/tools/omada/getSwitchStackDetail.ts +15 -0
- package/src/tools/omada/getThreatList.ts +42 -0
- package/src/tools/omada/getWlanGroupList.ts +15 -0
- package/src/tools/omada/index.ts +82 -0
- package/src/tools/omada/listClients.ts +15 -0
- package/src/tools/omada/listClientsActivity.ts +25 -0
- package/src/tools/omada/listClientsPastConnections.ts +44 -0
- package/src/tools/omada/listDevices.ts +15 -0
- package/src/tools/omada/listDevicesStats.ts +41 -0
- package/src/tools/omada/listMostActiveClients.ts +15 -0
- package/src/tools/omada/listSites.ts +18 -0
- package/src/tools/omada/searchDevices.ts +20 -0
- package/src/tools/omada/setClientRateLimit.ts +26 -0
- package/src/tools/omada/setClientRateLimitProfile.ts +25 -0
- package/src/tools/types.ts +11 -0
- package/src/tools/utils/pagination-schema.ts +27 -0
- package/src/types/ai/index.ts +11 -0
- package/src/types/ai/types.ts +67 -0
- package/src/types/homeassistant/index.ts +46 -0
- package/src/types/homeassistant/states.ts +58 -0
- package/src/types/index.ts +9 -38
- package/src/types/omada/activeClientInfo.ts +17 -0
- package/src/types/omada/clientActivity.ts +32 -0
- package/src/types/omada/clientPastConnection.ts +82 -0
- package/src/types/omada/index.ts +13 -0
- package/src/types/omada/omadaApiResponse.ts +5 -0
- package/src/types/omada/omadaClientInfo.ts +11 -0
- package/src/types/omada/omadaDeviceInfo.ts +11 -0
- package/src/types/omada/omadaDeviceStats.ts +31 -0
- package/src/types/omada/omadaSiteSummary.ts +5 -0
- package/src/types/omada/oswStackDetail.ts +11 -0
- package/src/types/omada/paginatedResult.ts +6 -0
- package/src/types/omada/rateLimitProfile.ts +58 -0
- package/src/types/omada/threatInfo.ts +38 -0
- package/src/types/omada/tokenResult.ts +6 -0
- package/src/utils/jwt.ts +69 -0
- package/src/utils/logger.ts +72 -66
- package/src/version.ts +1 -1
- package/src/wrapper.ts +1 -1
- package/tests/bdd/configuration.spec.ts +10 -8
- package/tests/config.test.ts +8 -4
- package/tests/features/configuration.feature +4 -4
- package/tests/haClient/index.test.ts +3 -13
- package/tests/integration/homeassistant.test.ts +136 -0
- package/tests/integration/omada.test.ts +152 -0
- package/tests/integration/server.test.ts +148 -0
- package/tests/permissions/index.test.ts +173 -0
- package/tests/resources/index.test.ts +288 -0
- package/tests/server/auth.test.ts +64 -46
- package/tests/server/common.test.ts +49 -29
- package/tests/server/instructions.test.ts +150 -0
- package/tests/server/stdio.test.ts +27 -28
- package/tests/tools/ai/analyzeSensors.test.ts +235 -0
- package/tests/tools/common.test.ts +124 -0
- package/tests/tools/homeassistant/handlers.test.ts +826 -0
- package/tests/tools/omada/handlers.test.ts +854 -0
- package/tests/tools/registry.test.ts +32 -26
- package/tests/utils/jwt.test.ts +115 -0
- package/dist/autonomic/index.d.ts +0 -6
- package/dist/autonomic/index.js +0 -7
- package/dist/autonomic/index.js.map +0 -1
- package/dist/autonomic/priority.d.ts +0 -60
- package/dist/autonomic/priority.js +0 -97
- package/dist/autonomic/priority.js.map +0 -1
- package/dist/haClient/labels.d.ts +0 -64
- package/dist/haClient/labels.js +0 -177
- package/dist/haClient/labels.js.map +0 -1
- package/dist/organism/index.d.ts +0 -5
- package/dist/organism/index.js +0 -6
- package/dist/organism/index.js.map +0 -1
- package/dist/organism/priority.d.ts +0 -60
- package/dist/organism/priority.js +0 -97
- package/dist/organism/priority.js.map +0 -1
- package/dist/server/sse.d.ts +0 -31
- package/dist/server/sse.js +0 -76
- package/dist/server/sse.js.map +0 -1
- package/dist/tools/analyzeSensors.js.map +0 -1
- package/dist/tools/automationControls.js.map +0 -1
- package/dist/tools/calendar.js.map +0 -1
- package/dist/tools/callService.js.map +0 -1
- package/dist/tools/controlClimate.js.map +0 -1
- package/dist/tools/controlCover.js.map +0 -1
- package/dist/tools/controlFan.js.map +0 -1
- package/dist/tools/controlLight.js.map +0 -1
- package/dist/tools/controlMediaPlayer.js.map +0 -1
- package/dist/tools/createAutomation.js.map +0 -1
- package/dist/tools/deleteAutomation.js.map +0 -1
- package/dist/tools/entityAction.js.map +0 -1
- package/dist/tools/getAllSensors.js +0 -14
- package/dist/tools/getAllSensors.js.map +0 -1
- package/dist/tools/getAutomationTrace.js.map +0 -1
- package/dist/tools/getDomainSummary.js.map +0 -1
- package/dist/tools/getEntitiesByDomain.js +0 -14
- package/dist/tools/getEntitiesByDomain.js.map +0 -1
- package/dist/tools/getHistory.js.map +0 -1
- package/dist/tools/getState.js.map +0 -1
- package/dist/tools/getStates.js +0 -14
- package/dist/tools/getStates.js.map +0 -1
- package/dist/tools/getVersion.js.map +0 -1
- package/dist/tools/labels.d.ts +0 -12
- package/dist/tools/labels.js +0 -139
- package/dist/tools/labels.js.map +0 -1
- package/dist/tools/listAutomations.js.map +0 -1
- package/dist/tools/listEntities.js +0 -14
- package/dist/tools/listEntities.js.map +0 -1
- package/dist/tools/listPersons.js.map +0 -1
- package/dist/tools/sceneAndScript.js.map +0 -1
- package/dist/tools/searchEntities.js +0 -16
- package/dist/tools/searchEntities.js.map +0 -1
- package/dist/tools/sendNotification.js.map +0 -1
- package/dist/tools/systemTools.js.map +0 -1
- package/dist/tools/triggerAutomation.js.map +0 -1
- package/dist/types/automations.js.map +0 -1
- package/dist/types/calendars.js.map +0 -1
- package/dist/types/config.js.map +0 -1
- package/dist/types/entities.js.map +0 -1
- package/dist/types/entity.d.ts +0 -119
- package/dist/types/entity.js +0 -2
- package/dist/types/entity.js.map +0 -1
- package/dist/types/errors.js.map +0 -1
- package/dist/types/haConfig.js.map +0 -1
- package/dist/types/history.js.map +0 -1
- package/dist/types/labels.d.ts +0 -34
- package/dist/types/labels.js +0 -5
- package/dist/types/labels.js.map +0 -1
- package/dist/types/request.js.map +0 -1
- package/dist/types/serviceCall.js.map +0 -1
- package/dist/types/states.d.ts +0 -19
- package/dist/types/states.js +0 -5
- package/dist/types/states.js.map +0 -1
- package/dist/types/updates.js.map +0 -1
- package/dist/utils/sanitize.d.ts +0 -25
- package/dist/utils/sanitize.js +0 -92
- package/dist/utils/sanitize.js.map +0 -1
- package/docs/LOCAL_CLIENT.md +0 -572
- package/docs/SSE_API.md +0 -341
- package/src/autonomic/index.ts +0 -16
- package/src/autonomic/priority.ts +0 -109
- package/src/tools/getAllSensors.ts +0 -21
- package/src/tools/getEntitiesByDomain.ts +0 -21
- package/src/tools/getStates.ts +0 -21
- package/src/tools/listEntities.ts +0 -24
- package/src/tools/searchEntities.ts +0 -23
- package/src/types/states.ts +0 -21
- package/tests/autonomic/priority.test.ts +0 -171
- /package/dist/types/{automations.d.ts → homeassistant/automations.d.ts} +0 -0
- /package/dist/types/{automations.js → homeassistant/automations.js} +0 -0
- /package/dist/types/{calendars.d.ts → homeassistant/calendars.d.ts} +0 -0
- /package/dist/types/{calendars.js → homeassistant/calendars.js} +0 -0
- /package/dist/types/{config.d.ts → homeassistant/config.d.ts} +0 -0
- /package/dist/types/{config.js → homeassistant/config.js} +0 -0
- /package/dist/types/{entities.d.ts → homeassistant/entities.d.ts} +0 -0
- /package/dist/types/{entities.js → homeassistant/entities.js} +0 -0
- /package/dist/types/{errors.d.ts → homeassistant/errors.d.ts} +0 -0
- /package/dist/types/{errors.js → homeassistant/errors.js} +0 -0
- /package/dist/types/{haConfig.d.ts → homeassistant/haConfig.d.ts} +0 -0
- /package/dist/types/{haConfig.js → homeassistant/haConfig.js} +0 -0
- /package/dist/types/{history.d.ts → homeassistant/history.d.ts} +0 -0
- /package/dist/types/{history.js → homeassistant/history.js} +0 -0
- /package/dist/types/{request.d.ts → homeassistant/request.d.ts} +0 -0
- /package/dist/types/{request.js → homeassistant/request.js} +0 -0
- /package/dist/types/{serviceCall.d.ts → homeassistant/serviceCall.d.ts} +0 -0
- /package/dist/types/{serviceCall.js → homeassistant/serviceCall.js} +0 -0
- /package/dist/types/{updates.d.ts → homeassistant/updates.d.ts} +0 -0
- /package/dist/types/{updates.js → homeassistant/updates.js} +0 -0
- /package/src/types/{automations.ts → homeassistant/automations.ts} +0 -0
- /package/src/types/{calendars.ts → homeassistant/calendars.ts} +0 -0
- /package/src/types/{config.ts → homeassistant/config.ts} +0 -0
- /package/src/types/{entities.ts → homeassistant/entities.ts} +0 -0
- /package/src/types/{errors.ts → homeassistant/errors.ts} +0 -0
- /package/src/types/{haConfig.ts → homeassistant/haConfig.ts} +0 -0
- /package/src/types/{history.ts → homeassistant/history.ts} +0 -0
- /package/src/types/{request.ts → homeassistant/request.ts} +0 -0
- /package/src/types/{serviceCall.ts → homeassistant/serviceCall.ts} +0 -0
- /package/src/types/{updates.ts → homeassistant/updates.ts} +0 -0
package/Dockerfile
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
# syntax=docker/dockerfile:1.7
|
|
2
2
|
|
|
3
|
-
FROM node:25-
|
|
3
|
+
FROM node:25-alpine AS deps
|
|
4
4
|
WORKDIR /app
|
|
5
5
|
COPY package*.json ./
|
|
6
6
|
RUN npm install
|
|
7
7
|
|
|
8
|
-
FROM node:25-
|
|
8
|
+
FROM node:25-alpine AS build
|
|
9
9
|
WORKDIR /app
|
|
10
10
|
COPY --from=deps /app/node_modules ./node_modules
|
|
11
11
|
COPY . .
|
|
12
12
|
RUN npm run build
|
|
13
13
|
|
|
14
|
-
FROM node:25-
|
|
14
|
+
FROM node:25-alpine AS runtime
|
|
15
15
|
|
|
16
16
|
# OCI metadata labels
|
|
17
|
-
LABEL org.opencontainers.image.title="
|
|
18
|
-
LABEL org.opencontainers.image.description="
|
|
17
|
+
LABEL org.opencontainers.image.title="MCP-HA-Connect"
|
|
18
|
+
LABEL org.opencontainers.image.description="MCP server for Home Assistant + TP-Link Omada + Local AI integration"
|
|
19
19
|
LABEL org.opencontainers.image.authors="Coffee Run Hobby"
|
|
20
20
|
LABEL org.opencontainers.image.url="https://github.com/coffeerunhobby/mcp-ha-connect"
|
|
21
21
|
LABEL org.opencontainers.image.source="https://github.com/coffeerunhobby/mcp-ha-connect"
|
|
@@ -24,9 +24,7 @@ LABEL org.opencontainers.image.licenses="MIT"
|
|
|
24
24
|
|
|
25
25
|
WORKDIR /app
|
|
26
26
|
ENV NODE_ENV=production
|
|
27
|
-
RUN
|
|
28
|
-
&& apt-get install -y --no-install-recommends curl \
|
|
29
|
-
&& rm -rf /var/lib/apt/lists/*
|
|
27
|
+
RUN apk add --no-cache curl
|
|
30
28
|
COPY package*.json ./
|
|
31
29
|
RUN npm install --omit=dev
|
|
32
30
|
COPY --from=build /app/dist ./dist
|
package/README.md
CHANGED
|
@@ -5,17 +5,6 @@ A production-ready Model Context Protocol (MCP) server for Home Assistant integr
|
|
|
5
5
|
[](https://www.npmjs.com/package/@coffeerunhobby/mcp-ha-connect)
|
|
6
6
|
[](https://github.com/coffeerunhobby/mcp-ha-connect/pkgs/container/mcp-ha-connect)
|
|
7
7
|
|
|
8
|
-
## Autonomous Safety Monitoring System
|
|
9
|
-
|
|
10
|
-
1. **JS Pre-filter**: Tier A triggers + basic anomaly detection
|
|
11
|
-
2. **Issue Objects**: Structured alerts (entity, area, threshold, observed, last_changed)
|
|
12
|
-
3. **LLM Decision**: Single JSON verdict from local model
|
|
13
|
-
4. **Smart Notifications**: Dedupe + cooldown to prevent alert fatigue
|
|
14
|
-
5. **Acknowledgment**: HA notification, Telegram, mobile app action, or voice
|
|
15
|
-
6. **Auto-Response**: Water/gas shutoff via HA valves/switches
|
|
16
|
-
|
|
17
|
-
See [docs/SSE_API.md](docs/SSE_API.md) for complete documentation of the SSE system.
|
|
18
|
-
|
|
19
8
|
See [docs/QUICK_START.md](docs/QUICK_START.md) for Docker, HTTP server mode, n8n integration, and more installation options.
|
|
20
9
|
|
|
21
10
|
## Key Features
|
|
@@ -55,35 +44,39 @@ See [docs/QUICK_START.md](docs/QUICK_START.md) for Docker, HTTP server mode, n8n
|
|
|
55
44
|
- Multiple transport modes (stdio, Streamable HTTP)
|
|
56
45
|
- HTTP server with health checks
|
|
57
46
|
- CORS support for browser-based clients
|
|
58
|
-
- Structured logging
|
|
47
|
+
- Structured logging (plain, JSON, GCP-JSON formats)
|
|
59
48
|
- Comprehensive configuration validation with Zod
|
|
60
49
|
- Full type safety with TypeScript
|
|
61
50
|
- Stateful and stateless session support
|
|
51
|
+
- JWT authentication with role-based access control
|
|
52
|
+
- MCP Server Instructions for improved LLM tool selection
|
|
53
|
+
|
|
54
|
+
## Available Tools (60 Total)
|
|
62
55
|
|
|
63
|
-
|
|
56
|
+
### Home Assistant Tools (35)
|
|
64
57
|
|
|
65
|
-
|
|
58
|
+
#### State & Entity Tools
|
|
66
59
|
|
|
67
60
|
| Tool | Description |
|
|
68
61
|
|------|-------------|
|
|
69
|
-
| `getStates` | Get all entity states
|
|
62
|
+
| `getStates` | Get all entity states (paginated, 50/page default). Use `includeAttributes=true` for full data |
|
|
70
63
|
| `getState` | Get the state of a specific entity by entity_id |
|
|
71
|
-
| `getEntitiesByDomain` | Get
|
|
72
|
-
| `searchEntities` | Search
|
|
73
|
-
| `getAllSensors` | Get all
|
|
74
|
-
| `listEntities` | List entities with filtering (domain, state, search, limit) |
|
|
64
|
+
| `getEntitiesByDomain` | Get entities for a domain (paginated, 50/page default). Use `includeAttributes=true` for full data |
|
|
65
|
+
| `searchEntities` | Search entities by name/entity_id (paginated, 50/page default). Use `includeAttributes=true` for full data |
|
|
66
|
+
| `getAllSensors` | Get all sensors (paginated, 50/page default). Use `includeAttributes=true` for full data |
|
|
67
|
+
| `listEntities` | List entities with filtering (domain, state, search, limit). Use `includeAttributes=true` for full data |
|
|
75
68
|
| `getDomainSummary` | Get summary statistics for a domain |
|
|
76
69
|
| `getHistory` | Get historical data for an entity |
|
|
77
70
|
| `listPersons` | List all household members with location state (home/away) |
|
|
78
71
|
|
|
79
|
-
|
|
72
|
+
#### Service & Control Tools
|
|
80
73
|
|
|
81
74
|
| Tool | Description |
|
|
82
75
|
|------|-------------|
|
|
83
76
|
| `callService` | Call any Home Assistant service |
|
|
84
77
|
| `entityAction` | Simple turn_on/turn_off/toggle actions |
|
|
85
78
|
|
|
86
|
-
|
|
79
|
+
#### Device Control Tools
|
|
87
80
|
|
|
88
81
|
| Tool | Description |
|
|
89
82
|
|------|-------------|
|
|
@@ -97,7 +90,7 @@ See [docs/QUICK_START.md](docs/QUICK_START.md) for Docker, HTTP server mode, n8n
|
|
|
97
90
|
| `sendNotification` | Send notifications with full mobile app support (actions, priority, images) |
|
|
98
91
|
| `listNotificationTargets` | Discover available mobile app notification targets |
|
|
99
92
|
|
|
100
|
-
|
|
93
|
+
#### Automation Tools
|
|
101
94
|
|
|
102
95
|
| Tool | Description |
|
|
103
96
|
|------|-------------|
|
|
@@ -111,7 +104,7 @@ See [docs/QUICK_START.md](docs/QUICK_START.md) for Docker, HTTP server mode, n8n
|
|
|
111
104
|
| `deleteAutomation` | Delete an automation |
|
|
112
105
|
| `getAutomationTrace` | Get automation execution history |
|
|
113
106
|
|
|
114
|
-
|
|
107
|
+
#### System Tools
|
|
115
108
|
|
|
116
109
|
| Tool | Description |
|
|
117
110
|
|------|-------------|
|
|
@@ -119,15 +112,76 @@ See [docs/QUICK_START.md](docs/QUICK_START.md) for Docker, HTTP server mode, n8n
|
|
|
119
112
|
| `restartHomeAssistant` | Restart the Home Assistant server |
|
|
120
113
|
| `getSystemLog` | Get system log entries from logbook |
|
|
121
114
|
| `checkUpdates` | Check for available updates |
|
|
122
|
-
| `analyzeSensors` | AI-powered sensor analysis using Ollama |
|
|
123
115
|
|
|
124
|
-
|
|
116
|
+
#### Calendar Tools
|
|
125
117
|
|
|
126
118
|
| Tool | Description |
|
|
127
119
|
|------|-------------|
|
|
128
120
|
| `listCalendars` | List all calendar entities |
|
|
129
121
|
| `getCalendarEvents` | Get events from one or all calendars |
|
|
130
122
|
|
|
123
|
+
### Omada Network Tools (24)
|
|
124
|
+
|
|
125
|
+
#### Site Tools
|
|
126
|
+
|
|
127
|
+
| Tool | Description |
|
|
128
|
+
|------|-------------|
|
|
129
|
+
| `omada_listSites` | List all sites configured on the Omada controller |
|
|
130
|
+
|
|
131
|
+
#### Device Tools
|
|
132
|
+
|
|
133
|
+
| Tool | Description |
|
|
134
|
+
|------|-------------|
|
|
135
|
+
| `omada_listDevices` | List all network devices (APs, switches, gateways) in a site |
|
|
136
|
+
| `omada_getDevice` | Get detailed information about a specific network device |
|
|
137
|
+
| `omada_searchDevices` | Search for devices globally across all sites |
|
|
138
|
+
| `omada_getSwitchStackDetail` | Get detailed information about a switch stack |
|
|
139
|
+
| `omada_listDevicesStats` | Get statistics for global adopted devices with filtering |
|
|
140
|
+
|
|
141
|
+
#### Client Tools
|
|
142
|
+
|
|
143
|
+
| Tool | Description |
|
|
144
|
+
|------|-------------|
|
|
145
|
+
| `omada_listClients` | List all connected clients (devices/users) in a site |
|
|
146
|
+
| `omada_getClient` | Get detailed information about a specific connected client |
|
|
147
|
+
| `omada_listMostActiveClients` | Get the most active clients sorted by total traffic |
|
|
148
|
+
| `omada_listClientsActivity` | Get client activity statistics over time |
|
|
149
|
+
| `omada_listClientsPastConnections` | Get historical client connection data |
|
|
150
|
+
|
|
151
|
+
#### Rate Limit Tools
|
|
152
|
+
|
|
153
|
+
| Tool | Description |
|
|
154
|
+
|------|-------------|
|
|
155
|
+
| `omada_getRateLimitProfiles` | Get available rate limit profiles for a site |
|
|
156
|
+
| `omada_setClientRateLimit` | Set custom bandwidth limits for a client (download/upload in Kbps) |
|
|
157
|
+
| `omada_setClientRateLimitProfile` | Apply a rate limit profile to a client |
|
|
158
|
+
| `omada_disableClientRateLimit` | Remove bandwidth limits from a client |
|
|
159
|
+
|
|
160
|
+
#### Security Tools
|
|
161
|
+
|
|
162
|
+
| Tool | Description |
|
|
163
|
+
|------|-------------|
|
|
164
|
+
| `omada_getThreatList` | Get security threat management list |
|
|
165
|
+
|
|
166
|
+
#### Network Configuration Tools
|
|
167
|
+
|
|
168
|
+
| Tool | Description |
|
|
169
|
+
|------|-------------|
|
|
170
|
+
| `omada_getInternetInfo` | Get internet connection configuration for a site |
|
|
171
|
+
| `omada_getPortForwardingStatus` | Get port forwarding rules (User or UPnP) |
|
|
172
|
+
| `omada_getLanNetworkList` | Get LAN network configuration list |
|
|
173
|
+
| `omada_getLanProfileList` | Get LAN profile configuration list |
|
|
174
|
+
| `omada_getWlanGroupList` | Get WLAN group configuration list |
|
|
175
|
+
| `omada_getSsidList` | Get SSID list for a WLAN group |
|
|
176
|
+
| `omada_getSsidDetail` | Get detailed SSID configuration |
|
|
177
|
+
| `omada_getFirewallSetting` | Get firewall configuration for a site |
|
|
178
|
+
|
|
179
|
+
### AI Tools (1)
|
|
180
|
+
|
|
181
|
+
| Tool | Description |
|
|
182
|
+
|------|-------------|
|
|
183
|
+
| `analyzeSensors` | Analyze sensor data using AI (Ollama) to detect issues and provide recommendations |
|
|
184
|
+
|
|
131
185
|
### MCP Resources
|
|
132
186
|
|
|
133
187
|
| Resource URI | Description |
|
|
@@ -169,6 +223,7 @@ See [docs/QUICK_START.md](docs/QUICK_START.md) for Docker, HTTP server mode, n8n
|
|
|
169
223
|
|
|
170
224
|
| Variable | Default | Description |
|
|
171
225
|
|----------|---------|-------------|
|
|
226
|
+
| `HA_PLUGIN_ENABLED` | `true` | Enable Home Assistant plugin |
|
|
172
227
|
| `HA_STRICT_SSL` | `true` | Validate SSL certificates |
|
|
173
228
|
| `HA_TIMEOUT` | `30000` | API request timeout (ms) |
|
|
174
229
|
|
|
@@ -213,17 +268,86 @@ See [docs/QUICK_START.md](docs/QUICK_START.md) for Docker, HTTP server mode, n8n
|
|
|
213
268
|
| Variable | Default | Description |
|
|
214
269
|
|----------|---------|-------------|
|
|
215
270
|
| `MCP_AUTH_METHOD` | `none` | Auth method: `none` or `bearer` |
|
|
216
|
-
| `
|
|
271
|
+
| `MCP_AUTH_SECRET` | - | JWT signing secret (min 32 chars, required for `bearer` method) |
|
|
272
|
+
| `MCP_PERMISSIONS_CONFIG` | - | JSON config for user roles and permissions |
|
|
273
|
+
|
|
274
|
+
#### JWT Authentication
|
|
275
|
+
|
|
276
|
+
When `MCP_AUTH_METHOD=bearer`, clients must provide a JWT token in the Authorization header:
|
|
277
|
+
|
|
278
|
+
```
|
|
279
|
+
Authorization: Bearer <jwt-token>
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
Generate tokens with your `MCP_AUTH_SECRET` using HS256 algorithm. The JWT payload should include:
|
|
283
|
+
- `sub` (subject): User identifier for permission lookup
|
|
284
|
+
- `exp` (optional): Expiration timestamp
|
|
285
|
+
|
|
286
|
+
#### Permission System
|
|
287
|
+
|
|
288
|
+
The server uses role-based access control with binary permission masks:
|
|
289
|
+
|
|
290
|
+
| Permission | Flag | Description |
|
|
291
|
+
|------------|------|-------------|
|
|
292
|
+
| `ADMIN` | 1 | System operations (restart, updates) |
|
|
293
|
+
| `CONFIGURE` | 2 | Create/modify automations, scripts |
|
|
294
|
+
| `CONTROL` | 4 | Control devices (lights, climate, etc.) |
|
|
295
|
+
| `QUERY` | 8 | Read entity states, history, lists |
|
|
296
|
+
| `NOTIFY` | 16 | Send notifications |
|
|
297
|
+
| `AI` | 32 | Use AI analysis features |
|
|
298
|
+
|
|
299
|
+
**Predefined Roles:**
|
|
300
|
+
|
|
301
|
+
| Role | Permissions |
|
|
302
|
+
|------|-------------|
|
|
303
|
+
| `NONE` | No permissions |
|
|
304
|
+
| `READONLY` | QUERY only |
|
|
305
|
+
| `OPERATOR` | QUERY + CONTROL + NOTIFY |
|
|
306
|
+
| `CONTRIBUTOR` | QUERY + CONTROL + NOTIFY + CONFIGURE |
|
|
307
|
+
| `ADMIN` | All except AI |
|
|
308
|
+
| `SUPERUSER` | All permissions |
|
|
309
|
+
|
|
310
|
+
**Configuration Example:**
|
|
311
|
+
|
|
312
|
+
```json
|
|
313
|
+
{
|
|
314
|
+
"users": [
|
|
315
|
+
{ "sub": "admin@example.com", "role": "admin" },
|
|
316
|
+
{ "sub": "user@example.com", "role": "operator" },
|
|
317
|
+
{ "sub": "viewer@example.com", "role": "readonly" }
|
|
318
|
+
],
|
|
319
|
+
"defaultRole": "NONE"
|
|
320
|
+
}
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
Set via environment variable (escape quotes for shell):
|
|
324
|
+
```bash
|
|
325
|
+
MCP_PERMISSIONS_CONFIG='{"users":[{"sub":"admin","role":"admin"}],"defaultRole":"NONE"}'
|
|
326
|
+
```
|
|
217
327
|
|
|
218
328
|
### Optional - AI Provider
|
|
219
329
|
|
|
220
330
|
| Variable | Default | Description |
|
|
221
331
|
|----------|---------|-------------|
|
|
332
|
+
| `AI_PLUGIN_ENABLED` | `true` | Enable AI plugin |
|
|
222
333
|
| `AI_PROVIDER` | `ollama` | AI provider: `ollama`, `openai`, or `none` |
|
|
223
|
-
| `AI_URL` | `http://
|
|
334
|
+
| `AI_URL` | `http://localhost:11434` | AI server URL (Ollama) |
|
|
224
335
|
| `AI_MODEL` | `llama2` | AI model name |
|
|
225
336
|
| `AI_TIMEOUT` | `60000` | AI request timeout (ms) |
|
|
226
337
|
|
|
338
|
+
### Optional - Omada Network Controller
|
|
339
|
+
|
|
340
|
+
| Variable | Default | Description |
|
|
341
|
+
|----------|---------|-------------|
|
|
342
|
+
| `OMADA_PLUGIN_ENABLED` | `false` | Enable Omada plugin |
|
|
343
|
+
| `OMADA_BASE_URL` | - | Omada controller URL (e.g., `https://192.168.0.1:8043`) |
|
|
344
|
+
| `OMADA_CLIENT_ID` | - | OAuth2 client ID from Omada controller |
|
|
345
|
+
| `OMADA_CLIENT_SECRET` | - | OAuth2 client secret from Omada controller |
|
|
346
|
+
| `OMADA_OMADAC_ID` | - | Omada controller ID |
|
|
347
|
+
| `OMADA_SITE_ID` | - | Default site ID for operations |
|
|
348
|
+
| `OMADA_STRICT_SSL` | `true` | Validate SSL certificates |
|
|
349
|
+
| `OMADA_TIMEOUT` | `30000` | API request timeout (ms) |
|
|
350
|
+
|
|
227
351
|
## Advanced Configuration Examples
|
|
228
352
|
|
|
229
353
|
### With AI Analysis (Ollama)
|
|
@@ -481,6 +605,18 @@ Connect to a remote MCP server using mcp-remote:
|
|
|
481
605
|
- Using environment variable substitution if supported by your client
|
|
482
606
|
- Never committing config files with real tokens to version control
|
|
483
607
|
|
|
608
|
+
## Server Instructions
|
|
609
|
+
|
|
610
|
+
The server provides MCP Server Instructions during initialization to help LLMs understand how to optimally use the available tools. Instructions are dynamically generated based on enabled plugins and include:
|
|
611
|
+
|
|
612
|
+
- **Entity Queries**: Guidance on pagination, attribute inclusion, and using specialized tools like `listPersons`
|
|
613
|
+
- **Device Control**: When to use specialized control tools vs generic `callService`
|
|
614
|
+
- **Automation Workflows**: Best practices for creating and testing automations
|
|
615
|
+
- **Omada Operations**: Site context requirements, client vs device distinction, rate limiting safety
|
|
616
|
+
- **Cross-Plugin Integration**: How HA presence detection correlates with Omada network clients
|
|
617
|
+
|
|
618
|
+
Instructions follow MCP best practices: concise, actionable, and focused on tool relationships rather than repeating individual tool descriptions.
|
|
619
|
+
|
|
484
620
|
## Troubleshooting
|
|
485
621
|
|
|
486
622
|
### Claude Desktop / LM Studio Not Connecting
|
|
@@ -585,8 +721,6 @@ Coffee Run Hobby ([github.com/coffeerunhobby](https://github.com/coffeerunhobby)
|
|
|
585
721
|
|
|
586
722
|
- [Quick Start Guide](docs/QUICK_START.md)
|
|
587
723
|
- [Changelog](docs/CHANGELOG.md)
|
|
588
|
-
- [Local Client Configuration](docs/LOCAL_CLIENT.md)
|
|
589
|
-
- [SSE Event API](docs/SSE_API.md)
|
|
590
724
|
|
|
591
725
|
## Contributing
|
|
592
726
|
|
package/dist/config.d.ts
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
|
+
import { type PermissionsConfig } from './permissions/index.js';
|
|
1
2
|
import type { AIProviderType } from './localAI/types.js';
|
|
2
3
|
export interface EnvironmentConfig {
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
haPluginEnabled: boolean;
|
|
5
|
+
aiPluginEnabled: boolean;
|
|
6
|
+
omadaPluginEnabled: boolean;
|
|
7
|
+
baseUrl?: string;
|
|
8
|
+
token?: string;
|
|
5
9
|
strictSsl: boolean;
|
|
6
10
|
timeout: number;
|
|
11
|
+
omadaBaseUrl?: string;
|
|
12
|
+
omadaClientId?: string;
|
|
13
|
+
omadaClientSecret?: string;
|
|
14
|
+
omadacId?: string;
|
|
15
|
+
siteId?: string;
|
|
16
|
+
omadaStrictSsl: boolean;
|
|
17
|
+
requestTimeout?: number;
|
|
7
18
|
aiProvider: AIProviderType;
|
|
8
19
|
aiUrl: string;
|
|
9
20
|
aiModel: string;
|
|
@@ -26,7 +37,8 @@ export interface EnvironmentConfig {
|
|
|
26
37
|
rateLimitWindowMs: number;
|
|
27
38
|
rateLimitMaxRequests: number;
|
|
28
39
|
authMethod: 'none' | 'bearer';
|
|
29
|
-
|
|
40
|
+
authSecret?: string;
|
|
41
|
+
permissions: PermissionsConfig;
|
|
30
42
|
}
|
|
31
43
|
export declare function loadConfig(env?: NodeJS.ProcessEnv): EnvironmentConfig;
|
|
32
44
|
export declare function validateConfig(config: EnvironmentConfig): void;
|
package/dist/config.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { isValidBindAddress, isValidOrigin } from './utils/config-validations.js';
|
|
3
|
+
import { parsePermissionsConfig } from './permissions/index.js';
|
|
3
4
|
import { logger } from './utils/logger.js';
|
|
4
5
|
const createBooleanStringSchema = (defaultValue) => z
|
|
5
6
|
.union([z.literal('true'), z.literal('false')])
|
|
@@ -14,22 +15,25 @@ const numericStringSchema = z
|
|
|
14
15
|
.optional()
|
|
15
16
|
.transform((value) => (value ? Number.parseInt(value, 10) : undefined))
|
|
16
17
|
.pipe(z.number().positive().optional());
|
|
17
|
-
const listStringSchema = z
|
|
18
|
-
.string()
|
|
19
|
-
.optional()
|
|
20
|
-
.transform((value) => value
|
|
21
|
-
? value
|
|
22
|
-
.split(',')
|
|
23
|
-
.map((s) => s.trim())
|
|
24
|
-
.filter(Boolean)
|
|
25
|
-
: undefined);
|
|
26
18
|
const envSchema = z
|
|
27
19
|
.object({
|
|
28
|
-
//
|
|
29
|
-
|
|
30
|
-
|
|
20
|
+
// Plugin Enable Flags (default: false)
|
|
21
|
+
haPluginEnabled: createBooleanStringSchema(false),
|
|
22
|
+
aiPluginEnabled: createBooleanStringSchema(false),
|
|
23
|
+
omadaPluginEnabled: createBooleanStringSchema(false),
|
|
24
|
+
// Home Assistant Client Configuration (optional if using Omada only)
|
|
25
|
+
haUrl: z.string().url({ message: 'HA_URL must be a valid URL' }).optional(),
|
|
26
|
+
haToken: z.string().min(1).optional(),
|
|
31
27
|
haStrictSsl: createBooleanStringSchema(true),
|
|
32
28
|
haTimeout: numericStringSchema,
|
|
29
|
+
// Omada Client Configuration (optional)
|
|
30
|
+
omadaBaseUrl: z.string().url({ message: 'OMADA_BASE_URL must be a valid URL' }).optional(),
|
|
31
|
+
omadaClientId: z.string().min(1).optional(),
|
|
32
|
+
omadaClientSecret: z.string().min(1).optional(),
|
|
33
|
+
omadaOmadacId: z.string().min(1).optional(),
|
|
34
|
+
omadaSiteId: z.string().min(1).optional(),
|
|
35
|
+
omadaStrictSsl: createBooleanStringSchema(true),
|
|
36
|
+
omadaTimeout: numericStringSchema,
|
|
33
37
|
// AI Provider Configuration (use 'none' to disable AI features)
|
|
34
38
|
aiProvider: z.enum(['ollama', 'openai', 'none']).optional(),
|
|
35
39
|
aiUrl: z.string().url().optional(),
|
|
@@ -48,7 +52,7 @@ const envSchema = z
|
|
|
48
52
|
httpEnableHealthcheck: createBooleanStringSchema(true),
|
|
49
53
|
httpHealthcheckPath: z.string().optional(),
|
|
50
54
|
httpAllowCors: createBooleanStringSchema(true),
|
|
51
|
-
httpAllowedOrigins:
|
|
55
|
+
httpAllowedOrigins: z.string().optional().transform((v) => v?.split(',').map((s) => s.trim()).filter(Boolean)),
|
|
52
56
|
// SSE Event Subscription Configuration
|
|
53
57
|
sseEventsEnabled: createBooleanStringSchema(true),
|
|
54
58
|
sseEventsPath: z.string().optional(),
|
|
@@ -58,10 +62,10 @@ const envSchema = z
|
|
|
58
62
|
rateLimitMaxRequests: numericStringSchema,
|
|
59
63
|
// Authentication Configuration
|
|
60
64
|
authMethod: z.enum(['none', 'bearer']).optional().default('none'),
|
|
61
|
-
|
|
65
|
+
authSecret: z.string().optional(),
|
|
66
|
+
permissionsConfig: z.string().optional(),
|
|
62
67
|
})
|
|
63
68
|
.refine((data) => {
|
|
64
|
-
// Validate httpBindAddr if provided
|
|
65
69
|
if (data.httpBindAddr && !isValidBindAddress(data.httpBindAddr)) {
|
|
66
70
|
return false;
|
|
67
71
|
}
|
|
@@ -71,7 +75,6 @@ const envSchema = z
|
|
|
71
75
|
path: ['httpBindAddr'],
|
|
72
76
|
})
|
|
73
77
|
.refine((data) => {
|
|
74
|
-
// Validate httpAllowedOrigins if provided
|
|
75
78
|
if (data.httpAllowedOrigins) {
|
|
76
79
|
for (const origin of data.httpAllowedOrigins) {
|
|
77
80
|
if (!isValidOrigin(origin)) {
|
|
@@ -88,22 +91,33 @@ const envSchema = z
|
|
|
88
91
|
};
|
|
89
92
|
})
|
|
90
93
|
.refine((data) => {
|
|
91
|
-
|
|
92
|
-
if (data.authMethod === 'bearer' && !data.authToken) {
|
|
94
|
+
if (data.authMethod === 'bearer' && !data.authSecret) {
|
|
93
95
|
return false;
|
|
94
96
|
}
|
|
95
97
|
return true;
|
|
96
98
|
}, {
|
|
97
|
-
message: '
|
|
98
|
-
path: ['
|
|
99
|
+
message: 'MCP_AUTH_SECRET is required when MCP_AUTH_METHOD is "bearer"',
|
|
100
|
+
path: ['authSecret'],
|
|
99
101
|
});
|
|
100
102
|
export function loadConfig(env = process.env) {
|
|
101
103
|
const parsed = envSchema.safeParse({
|
|
104
|
+
// Plugin Enable Flags
|
|
105
|
+
haPluginEnabled: env.HA_PLUGIN_ENABLED,
|
|
106
|
+
aiPluginEnabled: env.AI_PLUGIN_ENABLED,
|
|
107
|
+
omadaPluginEnabled: env.OMADA_PLUGIN_ENABLED,
|
|
102
108
|
// Home Assistant Client Configuration
|
|
103
109
|
haUrl: env.HA_URL,
|
|
104
110
|
haToken: env.HA_TOKEN,
|
|
105
111
|
haStrictSsl: env.HA_STRICT_SSL,
|
|
106
112
|
haTimeout: env.HA_TIMEOUT,
|
|
113
|
+
// Omada Client Configuration
|
|
114
|
+
omadaBaseUrl: env.OMADA_BASE_URL,
|
|
115
|
+
omadaClientId: env.OMADA_CLIENT_ID,
|
|
116
|
+
omadaClientSecret: env.OMADA_CLIENT_SECRET,
|
|
117
|
+
omadaOmadacId: env.OMADA_OMADAC_ID,
|
|
118
|
+
omadaSiteId: env.OMADA_SITE_ID,
|
|
119
|
+
omadaStrictSsl: env.OMADA_STRICT_SSL,
|
|
120
|
+
omadaTimeout: env.OMADA_TIMEOUT,
|
|
107
121
|
// AI Provider Configuration
|
|
108
122
|
aiProvider: env.AI_PROVIDER,
|
|
109
123
|
aiUrl: env.AI_URL,
|
|
@@ -132,28 +146,38 @@ export function loadConfig(env = process.env) {
|
|
|
132
146
|
rateLimitMaxRequests: env.MCP_RATE_LIMIT_MAX_REQUESTS,
|
|
133
147
|
// Authentication Configuration
|
|
134
148
|
authMethod: env.MCP_AUTH_METHOD,
|
|
135
|
-
|
|
149
|
+
authSecret: env.MCP_AUTH_SECRET,
|
|
150
|
+
permissionsConfig: env.MCP_PERMISSIONS_CONFIG,
|
|
136
151
|
});
|
|
137
152
|
if (!parsed.success) {
|
|
138
153
|
const messages = parsed.error.issues.map((issue) => issue.message);
|
|
139
154
|
throw new Error(`Invalid environment configuration:\n${messages.join('\n')}`);
|
|
140
155
|
}
|
|
141
|
-
// Default MCP endpoint path
|
|
142
156
|
const httpPath = parsed.data.httpPath ?? '/mcp';
|
|
143
|
-
// Set default bind address and allowed origins for security
|
|
144
157
|
const httpBindAddr = parsed.data.httpBindAddr ?? '127.0.0.1';
|
|
145
158
|
let httpAllowedOrigins = parsed.data.httpAllowedOrigins ?? ['127.0.0.1', 'localhost'];
|
|
146
|
-
// If wildcard is present, use empty array to disable SDK origin validation
|
|
147
159
|
if (httpAllowedOrigins.includes('*')) {
|
|
148
|
-
logger.warn('Wildcard (*) origin allowed - origin validation
|
|
160
|
+
logger.warn('Wildcard (*) origin allowed - origin validation disabled');
|
|
149
161
|
httpAllowedOrigins = [];
|
|
150
162
|
}
|
|
151
163
|
return {
|
|
152
|
-
//
|
|
153
|
-
|
|
164
|
+
// Plugin Enable Flags
|
|
165
|
+
haPluginEnabled: parsed.data.haPluginEnabled,
|
|
166
|
+
aiPluginEnabled: parsed.data.aiPluginEnabled,
|
|
167
|
+
omadaPluginEnabled: parsed.data.omadaPluginEnabled,
|
|
168
|
+
// Home Assistant Client Configuration (optional)
|
|
169
|
+
baseUrl: parsed.data.haUrl?.replace(/\/$/, ''),
|
|
154
170
|
token: parsed.data.haToken,
|
|
155
171
|
strictSsl: parsed.data.haStrictSsl,
|
|
156
172
|
timeout: parsed.data.haTimeout ?? 30000,
|
|
173
|
+
// Omada Client Configuration (optional)
|
|
174
|
+
omadaBaseUrl: parsed.data.omadaBaseUrl?.replace(/\/$/, ''),
|
|
175
|
+
omadaClientId: parsed.data.omadaClientId,
|
|
176
|
+
omadaClientSecret: parsed.data.omadaClientSecret,
|
|
177
|
+
omadacId: parsed.data.omadaOmadacId,
|
|
178
|
+
siteId: parsed.data.omadaSiteId,
|
|
179
|
+
omadaStrictSsl: parsed.data.omadaStrictSsl,
|
|
180
|
+
requestTimeout: parsed.data.omadaTimeout,
|
|
157
181
|
// AI Provider Configuration
|
|
158
182
|
aiProvider: (parsed.data.aiProvider ?? 'ollama'),
|
|
159
183
|
aiUrl: parsed.data.aiUrl ?? 'http://localhost:11434',
|
|
@@ -182,12 +206,11 @@ export function loadConfig(env = process.env) {
|
|
|
182
206
|
rateLimitMaxRequests: parsed.data.rateLimitMaxRequests ?? 100,
|
|
183
207
|
// Authentication Configuration
|
|
184
208
|
authMethod: parsed.data.authMethod,
|
|
185
|
-
|
|
209
|
+
authSecret: parsed.data.authSecret,
|
|
210
|
+
permissions: parsePermissionsConfig(parsed.data.permissionsConfig),
|
|
186
211
|
};
|
|
187
212
|
}
|
|
188
|
-
// Legacy compatibility functions
|
|
189
213
|
export function validateConfig(config) {
|
|
190
|
-
// Config is already validated by Zod, this is for compatibility
|
|
191
214
|
if (!config.baseUrl || !config.token) {
|
|
192
215
|
throw new Error('Invalid configuration: missing baseUrl or token');
|
|
193
216
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,MAAM,yBAAyB,GAAG,CAChC,YAAqB,EAC0G,EAAE,CACjI,CAAC;KACE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;KAC9C,QAAQ,EAAE;KACV,SAAS,CAAC,CAAC,KAAmC,EAAE,EAAE;IACjD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IAC7C,OAAO,KAAK,KAAK,MAAM,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEP,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,QAAQ,EAAE;KACV,SAAS,CAAC,CAAC,KAAyB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;KAC1F,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AAE1C,MAAM,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/haClient/index.d.ts
CHANGED
|
@@ -2,9 +2,14 @@
|
|
|
2
2
|
* Home Assistant API Client
|
|
3
3
|
* Main client class that composes all operation modules
|
|
4
4
|
*/
|
|
5
|
-
import type { EnvironmentConfig } from '../config.js';
|
|
6
5
|
import type { Entity, ServiceCallData, ServiceCallResponse, Automation, AutomationConfig, DomainSummary, HaVersion, LogbookEntry, UpdateInfo, Calendar, CalendarEvent } from '../types/index.js';
|
|
7
6
|
import { DeviceOperations } from './devices.js';
|
|
7
|
+
export interface HaClientOptions {
|
|
8
|
+
baseUrl: string;
|
|
9
|
+
token: string;
|
|
10
|
+
timeout: number;
|
|
11
|
+
strictSsl: boolean;
|
|
12
|
+
}
|
|
8
13
|
/**
|
|
9
14
|
* Main client for interacting with the Home Assistant API.
|
|
10
15
|
* Organized with dedicated operation classes for each domain.
|
|
@@ -20,7 +25,7 @@ export declare class HaClient {
|
|
|
20
25
|
private readonly configOps;
|
|
21
26
|
private readonly calendarOps;
|
|
22
27
|
readonly devices: DeviceOperations;
|
|
23
|
-
constructor(config:
|
|
28
|
+
constructor(config: HaClientOptions);
|
|
24
29
|
/**
|
|
25
30
|
* Get all states (entities)
|
|
26
31
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/haClient/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/haClient/index.ts"],"names":[],"mappings":"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"}
|