@coffeerunhobby/mcp-ha-connect 0.8.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +0 -43
- package/Dockerfile +7 -9
- package/README.md +159 -130
- package/dist/autonomic/index.d.ts +6 -0
- package/dist/autonomic/index.js +7 -0
- package/dist/autonomic/index.js.map +1 -0
- package/dist/autonomic/priority.d.ts +60 -0
- package/dist/autonomic/priority.js +97 -0
- package/dist/autonomic/priority.js.map +1 -0
- package/dist/config.d.ts +15 -4
- package/dist/config.js +54 -35
- package/dist/config.js.map +1 -1
- package/dist/env.d.ts +5 -0
- package/dist/env.js +13 -0
- package/dist/env.js.map +1 -0
- package/dist/haClient/config.d.ts +1 -0
- package/dist/haClient/config.js +11 -1
- package/dist/haClient/config.js.map +1 -1
- package/dist/haClient/history.d.ts +1 -0
- package/dist/haClient/history.js +7 -4
- package/dist/haClient/history.js.map +1 -1
- package/dist/haClient/index.d.ts +8 -2
- package/dist/haClient/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +77 -34
- package/dist/index.js.map +1 -1
- package/dist/omadaClient/auth.d.ts +43 -0
- package/dist/omadaClient/auth.js +148 -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/http.d.ts +88 -0
- package/dist/omadaClient/http.js +176 -0
- package/dist/omadaClient/http.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/organism/index.d.ts +5 -0
- package/dist/organism/index.js +6 -0
- package/dist/organism/index.js.map +1 -0
- package/dist/organism/priority.d.ts +60 -0
- package/dist/organism/priority.js +97 -0
- package/dist/organism/priority.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/plugins/homeassistant.d.ts +44 -0
- package/dist/plugins/homeassistant.js +101 -0
- package/dist/plugins/homeassistant.js.map +1 -0
- package/dist/plugins/index.d.ts +22 -0
- package/dist/plugins/index.js +91 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/localai.d.ts +48 -0
- package/dist/plugins/localai.js +111 -0
- package/dist/plugins/localai.js.map +1 -0
- package/dist/plugins/omada.d.ts +45 -0
- package/dist/plugins/omada.js +367 -0
- package/dist/plugins/omada.js.map +1 -0
- package/dist/plugins/registry.d.ts +93 -0
- package/dist/plugins/registry.js +196 -0
- package/dist/plugins/registry.js.map +1 -0
- package/dist/plugins/types.d.ts +101 -0
- package/dist/plugins/types.js +6 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/security/audit.d.ts +70 -0
- package/dist/security/audit.js +66 -0
- package/dist/security/audit.js.map +1 -0
- package/dist/security/guardrails.d.ts +66 -0
- package/dist/security/guardrails.js +263 -0
- package/dist/security/guardrails.js.map +1 -0
- package/dist/security/guardrails.test.d.ts +4 -0
- package/dist/security/guardrails.test.js +119 -0
- package/dist/security/guardrails.test.js.map +1 -0
- package/dist/security/index.d.ts +8 -0
- package/dist/security/index.js +17 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/ip-blocklist.d.ts +66 -0
- package/dist/security/ip-blocklist.js +283 -0
- package/dist/security/ip-blocklist.js.map +1 -0
- package/dist/security/ip-blocklist.test.d.ts +4 -0
- package/dist/security/ip-blocklist.test.js +173 -0
- package/dist/security/ip-blocklist.test.js.map +1 -0
- package/dist/security/policy.d.ts +287 -0
- package/dist/security/policy.js +316 -0
- package/dist/security/policy.js.map +1 -0
- package/dist/security/policy.test.d.ts +4 -0
- package/dist/security/policy.test.js +360 -0
- package/dist/security/policy.test.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/authConfig.d.ts +100 -0
- package/dist/server/authConfig.js +206 -0
- package/dist/server/authConfig.js.map +1 -0
- package/dist/server/common.d.ts +7 -1
- package/dist/server/common.js +13 -5
- package/dist/server/common.js.map +1 -1
- package/dist/server/http.d.ts +9 -2
- package/dist/server/http.js +101 -60
- package/dist/server/http.js.map +1 -1
- package/dist/server/jwt.d.ts +35 -0
- package/dist/server/jwt.js +123 -0
- package/dist/server/jwt.js.map +1 -0
- package/dist/server/sse.js +1 -1
- package/dist/server/sse.js.map +1 -1
- 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 +12 -4
- package/dist/server/stream.js.map +1 -1
- package/dist/tools/ai/analyzeSensors.d.ts +6 -0
- package/dist/tools/ai/analyzeSensors.js +23 -0
- 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/allMetadata.d.ts +47 -0
- package/dist/tools/allMetadata.js +373 -0
- package/dist/tools/allMetadata.js.map +1 -0
- package/dist/tools/analyzeSensors.js +2 -2
- package/dist/tools/analyzeSensors.js.map +1 -1
- package/dist/tools/automationControls.js +5 -5
- package/dist/tools/automationControls.js.map +1 -1
- package/dist/tools/calendar.js +3 -3
- package/dist/tools/calendar.js.map +1 -1
- package/dist/tools/callService.js +2 -2
- package/dist/tools/callService.js.map +1 -1
- package/dist/tools/common.d.ts +76 -6
- package/dist/tools/common.js +54 -4
- package/dist/tools/common.js.map +1 -1
- package/dist/tools/controlClimate.js +2 -2
- package/dist/tools/controlClimate.js.map +1 -1
- package/dist/tools/controlCover.js +2 -2
- package/dist/tools/controlCover.js.map +1 -1
- package/dist/tools/controlFan.js +2 -2
- package/dist/tools/controlFan.js.map +1 -1
- package/dist/tools/controlLight.js +2 -2
- package/dist/tools/controlLight.js.map +1 -1
- package/dist/tools/controlMediaPlayer.js +2 -2
- package/dist/tools/controlMediaPlayer.js.map +1 -1
- package/dist/tools/createAutomation.js +2 -2
- package/dist/tools/createAutomation.js.map +1 -1
- package/dist/tools/deleteAutomation.js +2 -2
- package/dist/tools/deleteAutomation.js.map +1 -1
- package/dist/tools/entityAction.js +2 -2
- package/dist/tools/entityAction.js.map +1 -1
- package/dist/tools/getAllSensors.js +2 -2
- package/dist/tools/getAllSensors.js.map +1 -1
- package/dist/tools/getAutomationTrace.js +2 -2
- package/dist/tools/getAutomationTrace.js.map +1 -1
- package/dist/tools/getDomainSummary.js +2 -2
- package/dist/tools/getDomainSummary.js.map +1 -1
- package/dist/tools/getEntitiesByDomain.js +2 -2
- package/dist/tools/getEntitiesByDomain.js.map +1 -1
- package/dist/tools/getHistory.js +2 -2
- package/dist/tools/getHistory.js.map +1 -1
- package/dist/tools/getState.js +2 -2
- package/dist/tools/getState.js.map +1 -1
- package/dist/tools/getStates.js +2 -2
- package/dist/tools/getStates.js.map +1 -1
- package/dist/tools/getVersion.js +2 -2
- package/dist/tools/getVersion.js.map +1 -1
- package/dist/tools/homeassistant/automationControls.d.ts +9 -0
- package/dist/tools/homeassistant/automationControls.js +41 -0
- package/dist/tools/homeassistant/automationControls.js.map +1 -0
- package/dist/tools/homeassistant/calendar.d.ts +7 -0
- package/dist/tools/homeassistant/calendar.js +82 -0
- package/dist/tools/homeassistant/calendar.js.map +1 -0
- package/dist/tools/homeassistant/callService.d.ts +6 -0
- package/dist/tools/homeassistant/callService.js +17 -0
- package/dist/tools/homeassistant/callService.js.map +1 -0
- package/dist/tools/homeassistant/controlClimate.d.ts +6 -0
- package/dist/tools/homeassistant/controlClimate.js +50 -0
- package/dist/tools/homeassistant/controlClimate.js.map +1 -0
- package/dist/tools/homeassistant/controlCover.d.ts +6 -0
- package/dist/tools/homeassistant/controlCover.js +33 -0
- package/dist/tools/homeassistant/controlCover.js.map +1 -0
- package/dist/tools/homeassistant/controlFan.d.ts +6 -0
- package/dist/tools/homeassistant/controlFan.js +34 -0
- package/dist/tools/homeassistant/controlFan.js.map +1 -0
- package/dist/tools/homeassistant/controlLight.d.ts +6 -0
- package/dist/tools/homeassistant/controlLight.js +28 -0
- package/dist/tools/homeassistant/controlLight.js.map +1 -0
- package/dist/tools/homeassistant/controlMediaPlayer.d.ts +6 -0
- package/dist/tools/homeassistant/controlMediaPlayer.js +35 -0
- package/dist/tools/homeassistant/controlMediaPlayer.js.map +1 -0
- package/dist/tools/homeassistant/createAutomation.d.ts +6 -0
- package/dist/tools/homeassistant/createAutomation.js +24 -0
- package/dist/tools/homeassistant/createAutomation.js.map +1 -0
- package/dist/tools/homeassistant/deleteAutomation.d.ts +6 -0
- package/dist/tools/homeassistant/deleteAutomation.js +14 -0
- package/dist/tools/homeassistant/deleteAutomation.js.map +1 -0
- package/dist/tools/homeassistant/entityAction.d.ts +6 -0
- package/dist/tools/homeassistant/entityAction.js +22 -0
- package/dist/tools/homeassistant/entityAction.js.map +1 -0
- package/dist/tools/homeassistant/getAllSensors.d.ts +6 -0
- package/dist/tools/homeassistant/getAllSensors.js +14 -0
- package/dist/tools/homeassistant/getAllSensors.js.map +1 -0
- package/dist/tools/homeassistant/getAutomationTrace.d.ts +6 -0
- package/dist/tools/homeassistant/getAutomationTrace.js +14 -0
- package/dist/tools/homeassistant/getAutomationTrace.js.map +1 -0
- package/dist/tools/homeassistant/getDomainSummary.d.ts +6 -0
- package/dist/tools/homeassistant/getDomainSummary.js +14 -0
- package/dist/tools/homeassistant/getDomainSummary.js.map +1 -0
- package/dist/tools/homeassistant/getEntitiesByDomain.d.ts +6 -0
- package/dist/tools/homeassistant/getEntitiesByDomain.js +14 -0
- package/dist/tools/homeassistant/getEntitiesByDomain.js.map +1 -0
- package/dist/tools/homeassistant/getHistory.d.ts +6 -0
- package/dist/tools/homeassistant/getHistory.js +14 -0
- package/dist/tools/homeassistant/getHistory.js.map +1 -0
- package/dist/tools/homeassistant/getState.d.ts +6 -0
- package/dist/tools/homeassistant/getState.js +17 -0
- package/dist/tools/homeassistant/getState.js.map +1 -0
- package/dist/tools/homeassistant/getStates.d.ts +6 -0
- package/dist/tools/homeassistant/getStates.js +14 -0
- package/dist/tools/homeassistant/getStates.js.map +1 -0
- package/dist/tools/homeassistant/getVersion.d.ts +6 -0
- package/dist/tools/homeassistant/getVersion.js +14 -0
- 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/homeassistant/listAutomations.d.ts +6 -0
- package/dist/tools/homeassistant/listAutomations.js +17 -0
- package/dist/tools/homeassistant/listAutomations.js.map +1 -0
- package/dist/tools/homeassistant/listEntities.d.ts +6 -0
- package/dist/tools/homeassistant/listEntities.js +14 -0
- package/dist/tools/homeassistant/listEntities.js.map +1 -0
- package/dist/tools/homeassistant/listPersons.d.ts +6 -0
- package/dist/tools/homeassistant/listPersons.js +36 -0
- package/dist/tools/homeassistant/listPersons.js.map +1 -0
- package/dist/tools/homeassistant/sceneAndScript.d.ts +7 -0
- package/dist/tools/homeassistant/sceneAndScript.js +32 -0
- package/dist/tools/homeassistant/sceneAndScript.js.map +1 -0
- package/dist/tools/homeassistant/searchEntities.d.ts +6 -0
- package/dist/tools/homeassistant/searchEntities.js +16 -0
- package/dist/tools/homeassistant/searchEntities.js.map +1 -0
- package/dist/tools/homeassistant/sendNotification.d.ts +8 -0
- package/dist/tools/homeassistant/sendNotification.js +160 -0
- package/dist/tools/homeassistant/sendNotification.js.map +1 -0
- package/dist/tools/homeassistant/systemTools.d.ts +8 -0
- package/dist/tools/homeassistant/systemTools.js +32 -0
- package/dist/tools/homeassistant/systemTools.js.map +1 -0
- package/dist/tools/homeassistant/triggerAutomation.d.ts +6 -0
- package/dist/tools/homeassistant/triggerAutomation.js +14 -0
- 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/lazyLoader.d.ts +50 -0
- package/dist/tools/lazyLoader.js +140 -0
- package/dist/tools/lazyLoader.js.map +1 -0
- package/dist/tools/listAutomations.js +2 -2
- package/dist/tools/listAutomations.js.map +1 -1
- package/dist/tools/listEntities.js +2 -2
- package/dist/tools/listEntities.js.map +1 -1
- package/dist/tools/listPersons.js +2 -2
- package/dist/tools/listPersons.js.map +1 -1
- package/dist/tools/localai/analyzeSensors.d.ts +6 -0
- package/dist/tools/localai/analyzeSensors.js +23 -0
- package/dist/tools/localai/analyzeSensors.js.map +1 -0
- package/dist/tools/localai/index.d.ts +5 -0
- package/dist/tools/localai/index.js +6 -0
- package/dist/tools/localai/index.js.map +1 -0
- package/dist/tools/metaTools.d.ts +74 -0
- package/dist/tools/metaTools.js +347 -0
- package/dist/tools/metaTools.js.map +1 -0
- 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/metadata.d.ts +18 -0
- package/dist/tools/omada/metadata.js +336 -0
- package/dist/tools/omada/metadata.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/registry.d.ts +105 -0
- package/dist/tools/registry.js +79 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/sceneAndScript.js +3 -3
- package/dist/tools/sceneAndScript.js.map +1 -1
- package/dist/tools/searchEntities.js +2 -2
- package/dist/tools/searchEntities.js.map +1 -1
- package/dist/tools/sendNotification.js +3 -3
- package/dist/tools/sendNotification.js.map +1 -1
- package/dist/tools/systemTools.js +8 -8
- package/dist/tools/systemTools.js.map +1 -1
- package/dist/tools/triggerAutomation.js +2 -2
- package/dist/tools/triggerAutomation.js.map +1 -1
- 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/config.d.ts +1 -1
- package/dist/types/config.js +1 -0
- package/dist/types/config.js.map +1 -1
- package/dist/types/homeassistant/automations.d.ts +38 -0
- package/dist/types/homeassistant/automations.js +5 -0
- package/dist/types/homeassistant/automations.js.map +1 -0
- package/dist/types/homeassistant/calendars.d.ts +24 -0
- package/dist/types/homeassistant/calendars.js +5 -0
- package/dist/types/homeassistant/calendars.js.map +1 -0
- package/dist/types/homeassistant/config.d.ts +10 -0
- package/dist/types/homeassistant/config.js +6 -0
- package/dist/types/homeassistant/config.js.map +1 -0
- package/dist/types/homeassistant/entities.d.ts +13 -0
- package/dist/types/homeassistant/entities.js +5 -0
- package/dist/types/homeassistant/entities.js.map +1 -0
- package/dist/types/homeassistant/errors.d.ts +15 -0
- package/dist/types/homeassistant/errors.js +32 -0
- package/dist/types/homeassistant/errors.js.map +1 -0
- package/dist/types/homeassistant/haConfig.d.ts +7 -0
- package/dist/types/homeassistant/haConfig.js +2 -0
- package/dist/types/homeassistant/haConfig.js.map +1 -0
- package/dist/types/homeassistant/history.d.ts +12 -0
- package/dist/types/homeassistant/history.js +5 -0
- package/dist/types/homeassistant/history.js.map +1 -0
- package/dist/types/homeassistant/index.d.ts +14 -0
- package/dist/types/homeassistant/index.js +6 -0
- package/dist/types/homeassistant/index.js.map +1 -0
- package/dist/types/homeassistant/request.d.ts +6 -0
- package/dist/types/homeassistant/request.js +2 -0
- package/dist/types/homeassistant/request.js.map +1 -0
- package/dist/types/homeassistant/serviceCall.d.ts +17 -0
- package/dist/types/homeassistant/serviceCall.js +2 -0
- package/dist/types/homeassistant/serviceCall.js.map +1 -0
- package/dist/types/homeassistant/states.d.ts +19 -0
- package/dist/types/homeassistant/states.js +5 -0
- package/dist/types/homeassistant/states.js.map +1 -0
- package/dist/types/homeassistant/updates.d.ts +24 -0
- package/dist/types/homeassistant/updates.js +5 -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/localai/index.d.ts +5 -0
- package/dist/types/localai/index.js +6 -0
- package/dist/types/localai/index.js.map +1 -0
- package/dist/types/localai/types.d.ts +60 -0
- package/dist/types/localai/types.js +6 -0
- package/dist/types/localai/types.js.map +1 -0
- 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/types/permissions.d.ts +92 -0
- package/dist/types/permissions.js +136 -0
- package/dist/types/permissions.js.map +1 -0
- package/dist/utils/config-validations.d.ts +9 -1
- package/dist/utils/config-validations.js +29 -20
- package/dist/utils/config-validations.js.map +1 -1
- 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 +3 -3
- package/dist/version.js +3 -14
- package/dist/version.js.map +1 -1
- package/dist/wrapper.js +1 -1
- package/dist/wrapper.js.map +1 -1
- package/docs/CHANGELOG.md +42 -0
- package/docs/COVERAGE.md +219 -0
- package/docs/QUICK_START.md +240 -0
- package/package.json +6 -6
- package/scripts/generate-jwt.ts +122 -0
- package/src/config.ts +79 -44
- package/src/haClient/config.ts +13 -2
- package/src/haClient/history.ts +9 -4
- package/src/haClient/index.ts +9 -2
- package/src/index.ts +75 -35
- package/src/omadaClient/auth.ts +176 -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 +20 -5
- package/src/server/http.ts +117 -64
- package/src/server/stdio.ts +9 -2
- package/src/server/stream.ts +22 -7
- package/src/tools/{analyzeSensors.ts → ai/analyzeSensors.ts} +3 -3
- package/src/tools/ai/index.ts +20 -0
- package/src/tools/common.ts +65 -4
- 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/{getAllSensors.ts → homeassistant/getAllSensors.ts} +3 -3
- package/src/tools/{getAutomationTrace.ts → homeassistant/getAutomationTrace.ts} +3 -3
- package/src/tools/{getDomainSummary.ts → homeassistant/getDomainSummary.ts} +3 -3
- package/src/tools/{getEntitiesByDomain.ts → homeassistant/getEntitiesByDomain.ts} +3 -3
- package/src/tools/{getHistory.ts → homeassistant/getHistory.ts} +3 -3
- package/src/tools/{getState.ts → homeassistant/getState.ts} +3 -3
- package/src/tools/{getStates.ts → homeassistant/getStates.ts} +3 -3
- 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/{listEntities.ts → homeassistant/listEntities.ts} +3 -3
- package/src/tools/{listPersons.ts → homeassistant/listPersons.ts} +3 -3
- package/src/tools/{sceneAndScript.ts → homeassistant/sceneAndScript.ts} +4 -4
- package/src/tools/{searchEntities.ts → homeassistant/searchEntities.ts} +3 -3
- package/src/tools/{sendNotification.ts → homeassistant/sendNotification.ts} +4 -4
- package/src/tools/{systemTools.ts → homeassistant/systemTools.ts} +9 -9
- 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/config.ts +14 -0
- package/src/types/homeassistant/index.ts +45 -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/config-validations.ts +29 -22
- package/src/utils/jwt.ts +69 -0
- package/src/utils/logger.ts +72 -66
- package/src/version.ts +3 -14
- package/src/wrapper.ts +1 -1
- package/tests/bdd/configuration.spec.ts +10 -13
- package/tests/config.test.ts +14 -36
- package/tests/features/configuration.feature +4 -5
- package/tests/haClient/config.test.ts +33 -12
- package/tests/haClient/history.test.ts +58 -0
- package/tests/haClient/index.test.ts +3 -13
- package/tests/index.test.ts +5 -9
- package/tests/localAI/index.test.ts +1 -1
- 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/http.test.ts +6 -32
- package/tests/server/stdio.test.ts +27 -28
- package/tests/server/stream.test.ts +1 -2
- package/tests/tools/ai/analyzeSensors.test.ts +235 -0
- package/tests/tools/common.test.ts +124 -0
- package/tests/tools/homeassistant/handlers.test.ts +815 -0
- package/tests/tools/omada/handlers.test.ts +854 -0
- package/tests/tools/registry.test.ts +32 -26
- package/tests/utils/config-validations.test.ts +69 -6
- package/tests/utils/jwt.test.ts +115 -0
- package/docs/LOCAL_CLIENT.md +0 -572
- package/docs/SSE_API.md +0 -341
- package/src/server/sse.ts +0 -120
- package/src/types/config.ts +0 -11
- package/tests/server/sse.test.ts +0 -240
- /package/src/types/{automations.ts → homeassistant/automations.ts} +0 -0
- /package/src/types/{calendars.ts → homeassistant/calendars.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/{states.ts → homeassistant/states.ts} +0 -0
- /package/src/types/{updates.ts → homeassistant/updates.ts} +0 -0
package/.env.example
CHANGED
|
@@ -73,12 +73,6 @@ MCP_SERVER_STATEFUL=false
|
|
|
73
73
|
# Default: 3000
|
|
74
74
|
MCP_HTTP_PORT=3000
|
|
75
75
|
|
|
76
|
-
# Transport protocol: stream or sse
|
|
77
|
-
# - stream: Modern MCP protocol (recommended)
|
|
78
|
-
# - sse: Legacy MCP protocol with Server-Sent Events
|
|
79
|
-
# Default: stream
|
|
80
|
-
MCP_HTTP_TRANSPORT=stream
|
|
81
|
-
|
|
82
76
|
# Bind address (use 0.0.0.0 to listen on all interfaces)
|
|
83
77
|
# Default: 127.0.0.1 (localhost only)
|
|
84
78
|
MCP_HTTP_BIND_ADDR=127.0.0.1
|
|
@@ -119,43 +113,6 @@ MCP_AUTH_METHOD=none
|
|
|
119
113
|
# Example: MCP_AUTH_TOKEN=token1,token2,token3
|
|
120
114
|
# MCP_AUTH_TOKEN=your-secret-token-here
|
|
121
115
|
|
|
122
|
-
# =============================================================================
|
|
123
|
-
# Usage Examples
|
|
124
|
-
# =============================================================================
|
|
125
|
-
|
|
126
|
-
# Example 1: Claude Desktop (Stdio Mode)
|
|
127
|
-
# ----------------------------------------
|
|
128
|
-
# MCP_SERVER_USE_HTTP=false
|
|
129
|
-
# MCP_SERVER_LOG_LEVEL=info
|
|
130
|
-
# Then configure claude_desktop_config.json to run: node dist/index.js
|
|
131
|
-
|
|
132
|
-
# Example 2: HTTP Server with Stream Transport (Recommended)
|
|
133
|
-
# -----------------------------------------------------------
|
|
134
|
-
# MCP_SERVER_USE_HTTP=true
|
|
135
|
-
# MCP_HTTP_TRANSPORT=stream
|
|
136
|
-
# MCP_HTTP_PORT=3000
|
|
137
|
-
# MCP_HTTP_BIND_ADDR=127.0.0.1
|
|
138
|
-
# Access at: http://mcpserver.10.0.0.18.nip.io:3000/mcp
|
|
139
|
-
|
|
140
|
-
# Example 3: HTTP Server with SSE (Legacy Clients)
|
|
141
|
-
# -------------------------------------------------
|
|
142
|
-
# MCP_SERVER_USE_HTTP=true
|
|
143
|
-
# MCP_HTTP_TRANSPORT=sse
|
|
144
|
-
# MCP_HTTP_PORT=3000
|
|
145
|
-
# Access at: http://mcpserver.10.0.0.18.nip.io:3000/sse
|
|
146
|
-
|
|
147
|
-
# Example 4: Production HTTP Server
|
|
148
|
-
# ----------------------------------
|
|
149
|
-
# MCP_SERVER_USE_HTTP=true
|
|
150
|
-
# MCP_SERVER_LOG_FORMAT=json
|
|
151
|
-
# MCP_HTTP_TRANSPORT=stream
|
|
152
|
-
# MCP_HTTP_PORT=3000
|
|
153
|
-
# MCP_HTTP_BIND_ADDR=0.0.0.0
|
|
154
|
-
# MCP_HTTP_ALLOWED_ORIGINS=https://your-app.com
|
|
155
|
-
# MCP_SERVER_STATEFUL=true
|
|
156
|
-
# MCP_AUTH_METHOD=bearer
|
|
157
|
-
# MCP_AUTH_TOKEN=n8n-token,openwebui-token,cli-token
|
|
158
|
-
|
|
159
116
|
# =============================================================================
|
|
160
117
|
# Security Notes
|
|
161
118
|
# =============================================================================
|
package/Dockerfile
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
# syntax=docker/dockerfile:1.7
|
|
2
2
|
|
|
3
|
-
FROM node:
|
|
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:
|
|
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:
|
|
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,10 +24,8 @@ 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
|
|
33
|
-
CMD ["node", "dist/index.js"]
|
|
31
|
+
CMD ["node", "--experimental-quic", "dist/index.js"]
|
package/README.md
CHANGED
|
@@ -5,122 +5,23 @@ 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
|
-
|
|
9
|
-
|
|
10
|
-
Choose your preferred installation method:
|
|
11
|
-
|
|
12
|
-
### Option 1: npx (Recommended - No Installation Required)
|
|
13
|
-
|
|
14
|
-
```json
|
|
15
|
-
{
|
|
16
|
-
"mcpServers": {
|
|
17
|
-
"homeassistant": {
|
|
18
|
-
"command": "npx",
|
|
19
|
-
"args": ["-y", "@coffeerunhobby/mcp-ha-connect"],
|
|
20
|
-
"env": {
|
|
21
|
-
"HA_URL": "http://homeassistant.10.0.0.19.nip.io:8123",
|
|
22
|
-
"HA_TOKEN": "your_long_lived_access_token"
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### Option 2: Global npm Install
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
npm install -g @coffeerunhobby/mcp-ha-connect
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
```json
|
|
36
|
-
{
|
|
37
|
-
"mcpServers": {
|
|
38
|
-
"homeassistant": {
|
|
39
|
-
"command": "mcp-ha-connect",
|
|
40
|
-
"env": {
|
|
41
|
-
"HA_URL": "http://homeassistant.10.0.0.19.nip.io:8123",
|
|
42
|
-
"HA_TOKEN": "your_token"
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
### Option 3: Docker
|
|
50
|
-
|
|
51
|
-
```json
|
|
52
|
-
{
|
|
53
|
-
"mcpServers": {
|
|
54
|
-
"homeassistant": {
|
|
55
|
-
"command": "docker",
|
|
56
|
-
"args": [
|
|
57
|
-
"run",
|
|
58
|
-
"--rm",
|
|
59
|
-
"-i",
|
|
60
|
-
"-e", "HA_URL=http://host.docker.internal:8123",
|
|
61
|
-
"-e", "HA_TOKEN=your_token",
|
|
62
|
-
"ghcr.io/coffeerunhobby/mcp-ha-connect:latest"
|
|
63
|
-
]
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
### Option 4: Local Development
|
|
70
|
-
|
|
71
|
-
```json
|
|
72
|
-
{
|
|
73
|
-
"mcpServers": {
|
|
74
|
-
"homeassistant": {
|
|
75
|
-
"command": "node",
|
|
76
|
-
"args": ["C:\\workspace\\mcp-homeassistant\\dist\\index.js"],
|
|
77
|
-
"env": {
|
|
78
|
-
"HA_URL": "http://homeassistant.10.0.0.19.nip.io:8123",
|
|
79
|
-
"HA_TOKEN": "your_token"
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
## Configuration Locations
|
|
87
|
-
|
|
88
|
-
### Claude Desktop
|
|
89
|
-
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
90
|
-
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
91
|
-
- **Linux:** `~/.config/Claude/claude_desktop_config.json`
|
|
92
|
-
|
|
93
|
-
### LM Studio
|
|
94
|
-
- **Windows:** `%USERPROFILE%\.lmstudio\config.json`
|
|
95
|
-
- **macOS:** `~/Library/Application Support/LM Studio/config.json`
|
|
96
|
-
- **Linux:** `~/.config/lmstudio/config.json`
|
|
97
|
-
|
|
98
|
-
## Autonomous Safety Monitoring System
|
|
99
|
-
|
|
100
|
-
1. **JS Pre-filter**: Tier A triggers + basic anomaly detection
|
|
101
|
-
2. **Issue Objects**: Structured alerts (entity, area, threshold, observed, last_changed)
|
|
102
|
-
3. **LLM Decision**: Single JSON verdict from local model
|
|
103
|
-
4. **Smart Notifications**: Dedupe + cooldown to prevent alert fatigue
|
|
104
|
-
5. **Acknowledgment**: HA notification, Telegram, mobile app action, or voice
|
|
105
|
-
6. **Auto-Response**: Water/gas shutoff via HA valves/switches
|
|
106
|
-
|
|
107
|
-
See [docs/SSE_API.md](docs/SSE_API.md) for complete documentation of the SSE system.
|
|
8
|
+
See [docs/QUICK_START.md](docs/QUICK_START.md) for Docker, HTTP server mode, n8n integration, and more installation options.
|
|
108
9
|
|
|
109
10
|
## Key Features
|
|
110
11
|
|
|
111
12
|
### Core Functionality
|
|
112
13
|
|
|
113
|
-
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
14
|
+
- Smart Device Control
|
|
15
|
+
- Lights: Brightness, color temperature, RGB color, transitions
|
|
16
|
+
- Climate: Temperature, HVAC modes, fan modes, humidity
|
|
17
|
+
- Covers: Position and tilt control
|
|
18
|
+
- Switches: On/off control
|
|
19
|
+
- Sensors & Contacts: State monitoring
|
|
20
|
+
- Media Players: Playback control, volume, source selection
|
|
21
|
+
- Fans: Speed, oscillation, direction
|
|
22
|
+
- Locks: Lock/unlock control
|
|
23
|
+
- Vacuums: Start, stop, return to base
|
|
24
|
+
- Cameras: Motion detection, snapshots
|
|
124
25
|
|
|
125
26
|
### Automation Management
|
|
126
27
|
|
|
@@ -140,17 +41,20 @@ See [docs/SSE_API.md](docs/SSE_API.md) for complete documentation of the SSE sys
|
|
|
140
41
|
- Service call support
|
|
141
42
|
- Advanced entity search
|
|
142
43
|
- AI-powered sensor analysis with Ollama
|
|
143
|
-
- Multiple transport modes (stdio,
|
|
44
|
+
- Multiple transport modes (stdio, Streamable HTTP)
|
|
144
45
|
- HTTP server with health checks
|
|
145
46
|
- CORS support for browser-based clients
|
|
146
|
-
- Structured logging
|
|
47
|
+
- Structured logging (plain, JSON, GCP-JSON formats)
|
|
147
48
|
- Comprehensive configuration validation with Zod
|
|
148
49
|
- Full type safety with TypeScript
|
|
149
50
|
- Stateful and stateless session support
|
|
51
|
+
- JWT authentication with role-based access control
|
|
150
52
|
|
|
151
|
-
## Available Tools (
|
|
53
|
+
## Available Tools (60 Total)
|
|
152
54
|
|
|
153
|
-
###
|
|
55
|
+
### Home Assistant Tools (35)
|
|
56
|
+
|
|
57
|
+
#### State & Entity Tools
|
|
154
58
|
|
|
155
59
|
| Tool | Description |
|
|
156
60
|
|------|-------------|
|
|
@@ -164,14 +68,14 @@ See [docs/SSE_API.md](docs/SSE_API.md) for complete documentation of the SSE sys
|
|
|
164
68
|
| `getHistory` | Get historical data for an entity |
|
|
165
69
|
| `listPersons` | List all household members with location state (home/away) |
|
|
166
70
|
|
|
167
|
-
|
|
71
|
+
#### Service & Control Tools
|
|
168
72
|
|
|
169
73
|
| Tool | Description |
|
|
170
74
|
|------|-------------|
|
|
171
75
|
| `callService` | Call any Home Assistant service |
|
|
172
76
|
| `entityAction` | Simple turn_on/turn_off/toggle actions |
|
|
173
77
|
|
|
174
|
-
|
|
78
|
+
#### Device Control Tools
|
|
175
79
|
|
|
176
80
|
| Tool | Description |
|
|
177
81
|
|------|-------------|
|
|
@@ -185,7 +89,7 @@ See [docs/SSE_API.md](docs/SSE_API.md) for complete documentation of the SSE sys
|
|
|
185
89
|
| `sendNotification` | Send notifications with full mobile app support (actions, priority, images) |
|
|
186
90
|
| `listNotificationTargets` | Discover available mobile app notification targets |
|
|
187
91
|
|
|
188
|
-
|
|
92
|
+
#### Automation Tools
|
|
189
93
|
|
|
190
94
|
| Tool | Description |
|
|
191
95
|
|------|-------------|
|
|
@@ -199,7 +103,7 @@ See [docs/SSE_API.md](docs/SSE_API.md) for complete documentation of the SSE sys
|
|
|
199
103
|
| `deleteAutomation` | Delete an automation |
|
|
200
104
|
| `getAutomationTrace` | Get automation execution history |
|
|
201
105
|
|
|
202
|
-
|
|
106
|
+
#### System Tools
|
|
203
107
|
|
|
204
108
|
| Tool | Description |
|
|
205
109
|
|------|-------------|
|
|
@@ -207,15 +111,76 @@ See [docs/SSE_API.md](docs/SSE_API.md) for complete documentation of the SSE sys
|
|
|
207
111
|
| `restartHomeAssistant` | Restart the Home Assistant server |
|
|
208
112
|
| `getSystemLog` | Get system log entries from logbook |
|
|
209
113
|
| `checkUpdates` | Check for available updates |
|
|
210
|
-
| `analyzeSensors` | AI-powered sensor analysis using Ollama |
|
|
211
114
|
|
|
212
|
-
|
|
115
|
+
#### Calendar Tools
|
|
213
116
|
|
|
214
117
|
| Tool | Description |
|
|
215
118
|
|------|-------------|
|
|
216
119
|
| `listCalendars` | List all calendar entities |
|
|
217
120
|
| `getCalendarEvents` | Get events from one or all calendars |
|
|
218
121
|
|
|
122
|
+
### Omada Network Tools (24)
|
|
123
|
+
|
|
124
|
+
#### Site Tools
|
|
125
|
+
|
|
126
|
+
| Tool | Description |
|
|
127
|
+
|------|-------------|
|
|
128
|
+
| `omada_listSites` | List all sites configured on the Omada controller |
|
|
129
|
+
|
|
130
|
+
#### Device Tools
|
|
131
|
+
|
|
132
|
+
| Tool | Description |
|
|
133
|
+
|------|-------------|
|
|
134
|
+
| `omada_listDevices` | List all network devices (APs, switches, gateways) in a site |
|
|
135
|
+
| `omada_getDevice` | Get detailed information about a specific network device |
|
|
136
|
+
| `omada_searchDevices` | Search for devices globally across all sites |
|
|
137
|
+
| `omada_getSwitchStackDetail` | Get detailed information about a switch stack |
|
|
138
|
+
| `omada_listDevicesStats` | Get statistics for global adopted devices with filtering |
|
|
139
|
+
|
|
140
|
+
#### Client Tools
|
|
141
|
+
|
|
142
|
+
| Tool | Description |
|
|
143
|
+
|------|-------------|
|
|
144
|
+
| `omada_listClients` | List all connected clients (devices/users) in a site |
|
|
145
|
+
| `omada_getClient` | Get detailed information about a specific connected client |
|
|
146
|
+
| `omada_listMostActiveClients` | Get the most active clients sorted by total traffic |
|
|
147
|
+
| `omada_listClientsActivity` | Get client activity statistics over time |
|
|
148
|
+
| `omada_listClientsPastConnections` | Get historical client connection data |
|
|
149
|
+
|
|
150
|
+
#### Rate Limit Tools
|
|
151
|
+
|
|
152
|
+
| Tool | Description |
|
|
153
|
+
|------|-------------|
|
|
154
|
+
| `omada_getRateLimitProfiles` | Get available rate limit profiles for a site |
|
|
155
|
+
| `omada_setClientRateLimit` | Set custom bandwidth limits for a client (download/upload in Kbps) |
|
|
156
|
+
| `omada_setClientRateLimitProfile` | Apply a rate limit profile to a client |
|
|
157
|
+
| `omada_disableClientRateLimit` | Remove bandwidth limits from a client |
|
|
158
|
+
|
|
159
|
+
#### Security Tools
|
|
160
|
+
|
|
161
|
+
| Tool | Description |
|
|
162
|
+
|------|-------------|
|
|
163
|
+
| `omada_getThreatList` | Get security threat management list |
|
|
164
|
+
|
|
165
|
+
#### Network Configuration Tools
|
|
166
|
+
|
|
167
|
+
| Tool | Description |
|
|
168
|
+
|------|-------------|
|
|
169
|
+
| `omada_getInternetInfo` | Get internet connection configuration for a site |
|
|
170
|
+
| `omada_getPortForwardingStatus` | Get port forwarding rules (User or UPnP) |
|
|
171
|
+
| `omada_getLanNetworkList` | Get LAN network configuration list |
|
|
172
|
+
| `omada_getLanProfileList` | Get LAN profile configuration list |
|
|
173
|
+
| `omada_getWlanGroupList` | Get WLAN group configuration list |
|
|
174
|
+
| `omada_getSsidList` | Get SSID list for a WLAN group |
|
|
175
|
+
| `omada_getSsidDetail` | Get detailed SSID configuration |
|
|
176
|
+
| `omada_getFirewallSetting` | Get firewall configuration for a site |
|
|
177
|
+
|
|
178
|
+
### AI Tools (1)
|
|
179
|
+
|
|
180
|
+
| Tool | Description |
|
|
181
|
+
|------|-------------|
|
|
182
|
+
| `analyzeSensors` | Analyze sensor data using AI (Ollama) to detect issues and provide recommendations |
|
|
183
|
+
|
|
219
184
|
### MCP Resources
|
|
220
185
|
|
|
221
186
|
| Resource URI | Description |
|
|
@@ -257,6 +222,7 @@ See [docs/SSE_API.md](docs/SSE_API.md) for complete documentation of the SSE sys
|
|
|
257
222
|
|
|
258
223
|
| Variable | Default | Description |
|
|
259
224
|
|----------|---------|-------------|
|
|
225
|
+
| `HA_PLUGIN_ENABLED` | `true` | Enable Home Assistant plugin |
|
|
260
226
|
| `HA_STRICT_SSL` | `true` | Validate SSL certificates |
|
|
261
227
|
| `HA_TIMEOUT` | `30000` | API request timeout (ms) |
|
|
262
228
|
|
|
@@ -274,7 +240,6 @@ See [docs/SSE_API.md](docs/SSE_API.md) for complete documentation of the SSE sys
|
|
|
274
240
|
| Variable | Default | Description |
|
|
275
241
|
|----------|---------|-------------|
|
|
276
242
|
| `MCP_HTTP_PORT` | `3000` | HTTP server port |
|
|
277
|
-
| `MCP_HTTP_TRANSPORT` | `stream` | Transport: `stream` or `sse` |
|
|
278
243
|
| `MCP_HTTP_BIND_ADDR` | `127.0.0.1` | Bind address |
|
|
279
244
|
| `MCP_HTTP_PATH` | `/mcp` | MCP endpoint path |
|
|
280
245
|
| `MCP_HTTP_ENABLE_HEALTHCHECK` | `true` | Enable health check endpoint |
|
|
@@ -302,17 +267,86 @@ See [docs/SSE_API.md](docs/SSE_API.md) for complete documentation of the SSE sys
|
|
|
302
267
|
| Variable | Default | Description |
|
|
303
268
|
|----------|---------|-------------|
|
|
304
269
|
| `MCP_AUTH_METHOD` | `none` | Auth method: `none` or `bearer` |
|
|
305
|
-
| `
|
|
270
|
+
| `MCP_AUTH_SECRET` | - | JWT signing secret (min 32 chars, required for `bearer` method) |
|
|
271
|
+
| `MCP_PERMISSIONS_CONFIG` | - | JSON config for user roles and permissions |
|
|
272
|
+
|
|
273
|
+
#### JWT Authentication
|
|
274
|
+
|
|
275
|
+
When `MCP_AUTH_METHOD=bearer`, clients must provide a JWT token in the Authorization header:
|
|
276
|
+
|
|
277
|
+
```
|
|
278
|
+
Authorization: Bearer <jwt-token>
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
Generate tokens with your `MCP_AUTH_SECRET` using HS256 algorithm. The JWT payload should include:
|
|
282
|
+
- `sub` (subject): User identifier for permission lookup
|
|
283
|
+
- `exp` (optional): Expiration timestamp
|
|
284
|
+
|
|
285
|
+
#### Permission System
|
|
286
|
+
|
|
287
|
+
The server uses role-based access control with binary permission masks:
|
|
288
|
+
|
|
289
|
+
| Permission | Flag | Description |
|
|
290
|
+
|------------|------|-------------|
|
|
291
|
+
| `ADMIN` | 1 | System operations (restart, updates) |
|
|
292
|
+
| `CONFIGURE` | 2 | Create/modify automations, scripts |
|
|
293
|
+
| `CONTROL` | 4 | Control devices (lights, climate, etc.) |
|
|
294
|
+
| `QUERY` | 8 | Read entity states, history, lists |
|
|
295
|
+
| `NOTIFY` | 16 | Send notifications |
|
|
296
|
+
| `AI` | 32 | Use AI analysis features |
|
|
297
|
+
|
|
298
|
+
**Predefined Roles:**
|
|
299
|
+
|
|
300
|
+
| Role | Permissions |
|
|
301
|
+
|------|-------------|
|
|
302
|
+
| `NONE` | No permissions |
|
|
303
|
+
| `READONLY` | QUERY only |
|
|
304
|
+
| `OPERATOR` | QUERY + CONTROL + NOTIFY |
|
|
305
|
+
| `CONTRIBUTOR` | QUERY + CONTROL + NOTIFY + CONFIGURE |
|
|
306
|
+
| `ADMIN` | All except AI |
|
|
307
|
+
| `SUPERUSER` | All permissions |
|
|
308
|
+
|
|
309
|
+
**Configuration Example:**
|
|
310
|
+
|
|
311
|
+
```json
|
|
312
|
+
{
|
|
313
|
+
"users": [
|
|
314
|
+
{ "sub": "admin@example.com", "role": "admin" },
|
|
315
|
+
{ "sub": "user@example.com", "role": "operator" },
|
|
316
|
+
{ "sub": "viewer@example.com", "role": "readonly" }
|
|
317
|
+
],
|
|
318
|
+
"defaultRole": "NONE"
|
|
319
|
+
}
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
Set via environment variable (escape quotes for shell):
|
|
323
|
+
```bash
|
|
324
|
+
MCP_PERMISSIONS_CONFIG='{"users":[{"sub":"admin","role":"admin"}],"defaultRole":"NONE"}'
|
|
325
|
+
```
|
|
306
326
|
|
|
307
327
|
### Optional - AI Provider
|
|
308
328
|
|
|
309
329
|
| Variable | Default | Description |
|
|
310
330
|
|----------|---------|-------------|
|
|
331
|
+
| `AI_PLUGIN_ENABLED` | `true` | Enable AI plugin |
|
|
311
332
|
| `AI_PROVIDER` | `ollama` | AI provider: `ollama`, `openai`, or `none` |
|
|
312
|
-
| `AI_URL` | `http://
|
|
333
|
+
| `AI_URL` | `http://localhost:11434` | AI server URL (Ollama) |
|
|
313
334
|
| `AI_MODEL` | `llama2` | AI model name |
|
|
314
335
|
| `AI_TIMEOUT` | `60000` | AI request timeout (ms) |
|
|
315
336
|
|
|
337
|
+
### Optional - Omada Network Controller
|
|
338
|
+
|
|
339
|
+
| Variable | Default | Description |
|
|
340
|
+
|----------|---------|-------------|
|
|
341
|
+
| `OMADA_PLUGIN_ENABLED` | `false` | Enable Omada plugin |
|
|
342
|
+
| `OMADA_BASE_URL` | - | Omada controller URL (e.g., `https://192.168.0.1:8043`) |
|
|
343
|
+
| `OMADA_CLIENT_ID` | - | OAuth2 client ID from Omada controller |
|
|
344
|
+
| `OMADA_CLIENT_SECRET` | - | OAuth2 client secret from Omada controller |
|
|
345
|
+
| `OMADA_OMADAC_ID` | - | Omada controller ID |
|
|
346
|
+
| `OMADA_SITE_ID` | - | Default site ID for operations |
|
|
347
|
+
| `OMADA_STRICT_SSL` | `true` | Validate SSL certificates |
|
|
348
|
+
| `OMADA_TIMEOUT` | `30000` | API request timeout (ms) |
|
|
349
|
+
|
|
316
350
|
## Advanced Configuration Examples
|
|
317
351
|
|
|
318
352
|
### With AI Analysis (Ollama)
|
|
@@ -664,10 +698,6 @@ MIT
|
|
|
664
698
|
|
|
665
699
|
Coffee Run Hobby ([github.com/coffeerunhobby](https://github.com/coffeerunhobby))
|
|
666
700
|
|
|
667
|
-
## Version
|
|
668
|
-
|
|
669
|
-
0.7.0
|
|
670
|
-
|
|
671
701
|
## Links
|
|
672
702
|
|
|
673
703
|
- **GitHub**: [https://github.com/coffeerunhobby/mcp-ha-connect](https://github.com/coffeerunhobby/mcp-ha-connect)
|
|
@@ -676,9 +706,8 @@ Coffee Run Hobby ([github.com/coffeerunhobby](https://github.com/coffeerunhobby)
|
|
|
676
706
|
|
|
677
707
|
## Documentation
|
|
678
708
|
|
|
709
|
+
- [Quick Start Guide](docs/QUICK_START.md)
|
|
679
710
|
- [Changelog](docs/CHANGELOG.md)
|
|
680
|
-
- [Local Client Configuration](docs/LOCAL_CLIENT.md)
|
|
681
|
-
- [SSE Event API](docs/SSE_API.md)
|
|
682
711
|
|
|
683
712
|
## Contributing
|
|
684
713
|
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Autonomic Module
|
|
3
|
+
* Implements the autonomic nervous system architecture for home automation
|
|
4
|
+
* with tiered response system (reflex, supervised, informational)
|
|
5
|
+
*/
|
|
6
|
+
export { Priority, PriorityMask, matchesPriority, getPriorityName, getPriorityTier, bypassesQuietHours, requiresImmediateAction, requiresApproval, } from './priority.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Autonomic Module
|
|
3
|
+
* Implements the autonomic nervous system architecture for home automation
|
|
4
|
+
* with tiered response system (reflex, supervised, informational)
|
|
5
|
+
*/
|
|
6
|
+
export { Priority, PriorityMask, matchesPriority, getPriorityName, getPriorityTier, bypassesQuietHours, requiresImmediateAction, requiresApproval, } from './priority.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/autonomic/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Autonomic Priority System
|
|
3
|
+
* Uses powers of 2 for bitwise operations - can combine with OR, check with AND
|
|
4
|
+
*
|
|
5
|
+
* Based on MOQT priority model adapted for home automation tiers:
|
|
6
|
+
* - REFLEX (Tier 0): Immediate autonomous response, no AI delay
|
|
7
|
+
* - SUPERVISED (Tier 1): Quick decision with timeout + default action
|
|
8
|
+
* - INFORMATIONAL (Tier 2): Passive awareness, respects quiet hours
|
|
9
|
+
* - LOG: Debug/metrics, lowest priority
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Priority levels as powers of 2 for bitwise operations
|
|
13
|
+
*/
|
|
14
|
+
export declare enum Priority {
|
|
15
|
+
/** Tier 0: Immediate reflex - smoke, gas, intrusion. No confirmation needed. */
|
|
16
|
+
REFLEX = 1,
|
|
17
|
+
/** Tier 1: Supervised action - requires approval within timeout window */
|
|
18
|
+
SUPERVISED = 32,
|
|
19
|
+
/** Tier 2: Informational alert - passive, respects quiet hours */
|
|
20
|
+
INFORMATIONAL = 64,
|
|
21
|
+
/** Logging/metrics - lowest priority */
|
|
22
|
+
LOG = 128
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Priority masks for filtering
|
|
26
|
+
*/
|
|
27
|
+
export declare const PriorityMask: {
|
|
28
|
+
/** All critical priorities (REFLEX only) */
|
|
29
|
+
readonly CRITICAL: Priority.REFLEX;
|
|
30
|
+
/** Action priorities (REFLEX + SUPERVISED) */
|
|
31
|
+
readonly ACTIONABLE: number;
|
|
32
|
+
/** User-facing priorities (everything except LOG) */
|
|
33
|
+
readonly USER_FACING: number;
|
|
34
|
+
/** All priorities */
|
|
35
|
+
readonly ALL: number;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Check if a priority matches a mask
|
|
39
|
+
*/
|
|
40
|
+
export declare function matchesPriority(priority: Priority, mask: number): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Get human-readable priority name
|
|
43
|
+
*/
|
|
44
|
+
export declare function getPriorityName(priority: Priority): string;
|
|
45
|
+
/**
|
|
46
|
+
* Get tier number from priority
|
|
47
|
+
*/
|
|
48
|
+
export declare function getPriorityTier(priority: Priority): 0 | 1 | 2 | 3;
|
|
49
|
+
/**
|
|
50
|
+
* Check if priority should bypass quiet hours
|
|
51
|
+
*/
|
|
52
|
+
export declare function bypassesQuietHours(priority: Priority): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Check if priority requires immediate action (no AI delay)
|
|
55
|
+
*/
|
|
56
|
+
export declare function requiresImmediateAction(priority: Priority): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Check if priority requires user approval
|
|
59
|
+
*/
|
|
60
|
+
export declare function requiresApproval(priority: Priority): boolean;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Autonomic Priority System
|
|
3
|
+
* Uses powers of 2 for bitwise operations - can combine with OR, check with AND
|
|
4
|
+
*
|
|
5
|
+
* Based on MOQT priority model adapted for home automation tiers:
|
|
6
|
+
* - REFLEX (Tier 0): Immediate autonomous response, no AI delay
|
|
7
|
+
* - SUPERVISED (Tier 1): Quick decision with timeout + default action
|
|
8
|
+
* - INFORMATIONAL (Tier 2): Passive awareness, respects quiet hours
|
|
9
|
+
* - LOG: Debug/metrics, lowest priority
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Priority levels as powers of 2 for bitwise operations
|
|
13
|
+
*/
|
|
14
|
+
export var Priority;
|
|
15
|
+
(function (Priority) {
|
|
16
|
+
/** Tier 0: Immediate reflex - smoke, gas, intrusion. No confirmation needed. */
|
|
17
|
+
Priority[Priority["REFLEX"] = 1] = "REFLEX";
|
|
18
|
+
/** Tier 1: Supervised action - requires approval within timeout window */
|
|
19
|
+
Priority[Priority["SUPERVISED"] = 32] = "SUPERVISED";
|
|
20
|
+
/** Tier 2: Informational alert - passive, respects quiet hours */
|
|
21
|
+
Priority[Priority["INFORMATIONAL"] = 64] = "INFORMATIONAL";
|
|
22
|
+
/** Logging/metrics - lowest priority */
|
|
23
|
+
Priority[Priority["LOG"] = 128] = "LOG";
|
|
24
|
+
})(Priority || (Priority = {}));
|
|
25
|
+
/**
|
|
26
|
+
* Priority masks for filtering
|
|
27
|
+
*/
|
|
28
|
+
export const PriorityMask = {
|
|
29
|
+
/** All critical priorities (REFLEX only) */
|
|
30
|
+
CRITICAL: Priority.REFLEX,
|
|
31
|
+
/** Action priorities (REFLEX + SUPERVISED) */
|
|
32
|
+
ACTIONABLE: Priority.REFLEX | Priority.SUPERVISED,
|
|
33
|
+
/** User-facing priorities (everything except LOG) */
|
|
34
|
+
USER_FACING: Priority.REFLEX | Priority.SUPERVISED | Priority.INFORMATIONAL,
|
|
35
|
+
/** All priorities */
|
|
36
|
+
ALL: Priority.REFLEX | Priority.SUPERVISED | Priority.INFORMATIONAL | Priority.LOG,
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Check if a priority matches a mask
|
|
40
|
+
*/
|
|
41
|
+
export function matchesPriority(priority, mask) {
|
|
42
|
+
return (priority & mask) !== 0;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get human-readable priority name
|
|
46
|
+
*/
|
|
47
|
+
export function getPriorityName(priority) {
|
|
48
|
+
switch (priority) {
|
|
49
|
+
case Priority.REFLEX:
|
|
50
|
+
return 'reflex';
|
|
51
|
+
case Priority.SUPERVISED:
|
|
52
|
+
return 'supervised';
|
|
53
|
+
case Priority.INFORMATIONAL:
|
|
54
|
+
return 'informational';
|
|
55
|
+
case Priority.LOG:
|
|
56
|
+
return 'log';
|
|
57
|
+
default:
|
|
58
|
+
return 'unknown';
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get tier number from priority
|
|
63
|
+
*/
|
|
64
|
+
export function getPriorityTier(priority) {
|
|
65
|
+
switch (priority) {
|
|
66
|
+
case Priority.REFLEX:
|
|
67
|
+
return 0;
|
|
68
|
+
case Priority.SUPERVISED:
|
|
69
|
+
return 1;
|
|
70
|
+
case Priority.INFORMATIONAL:
|
|
71
|
+
return 2;
|
|
72
|
+
case Priority.LOG:
|
|
73
|
+
return 3;
|
|
74
|
+
default:
|
|
75
|
+
return 3;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Check if priority should bypass quiet hours
|
|
80
|
+
*/
|
|
81
|
+
export function bypassesQuietHours(priority) {
|
|
82
|
+
// Only REFLEX bypasses quiet hours
|
|
83
|
+
return priority === Priority.REFLEX;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Check if priority requires immediate action (no AI delay)
|
|
87
|
+
*/
|
|
88
|
+
export function requiresImmediateAction(priority) {
|
|
89
|
+
return priority === Priority.REFLEX;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Check if priority requires user approval
|
|
93
|
+
*/
|
|
94
|
+
export function requiresApproval(priority) {
|
|
95
|
+
return priority === Priority.SUPERVISED;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=priority.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"priority.js","sourceRoot":"","sources":["../../src/autonomic/priority.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,QAYX;AAZD,WAAY,QAAQ;IAClB,gFAAgF;IAChF,2CAAU,CAAA;IAEV,0EAA0E;IAC1E,oDAAe,CAAA;IAEf,kEAAkE;IAClE,0DAAkB,CAAA;IAElB,wCAAwC;IACxC,uCAAS,CAAA;AACX,CAAC,EAZW,QAAQ,KAAR,QAAQ,QAYnB;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,4CAA4C;IAC5C,QAAQ,EAAE,QAAQ,CAAC,MAAM;IAEzB,8CAA8C;IAC9C,UAAU,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,UAAU;IAEjD,qDAAqD;IACrD,WAAW,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa;IAE3E,qBAAqB;IACrB,GAAG,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,GAAG;CAC1E,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAkB,EAAE,IAAY;IAC9D,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAkB;IAChD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ,CAAC,MAAM;YAClB,OAAO,QAAQ,CAAC;QAClB,KAAK,QAAQ,CAAC,UAAU;YACtB,OAAO,YAAY,CAAC;QACtB,KAAK,QAAQ,CAAC,aAAa;YACzB,OAAO,eAAe,CAAC;QACzB,KAAK,QAAQ,CAAC,GAAG;YACf,OAAO,KAAK,CAAC;QACf;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAkB;IAChD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ,CAAC,MAAM;YAClB,OAAO,CAAC,CAAC;QACX,KAAK,QAAQ,CAAC,UAAU;YACtB,OAAO,CAAC,CAAC;QACX,KAAK,QAAQ,CAAC,aAAa;YACzB,OAAO,CAAC,CAAC;QACX,KAAK,QAAQ,CAAC,GAAG;YACf,OAAO,CAAC,CAAC;QACX;YACE,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAkB;IACnD,mCAAmC;IACnC,OAAO,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAkB;IACxD,OAAO,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAkB;IACjD,OAAO,QAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC;AAC1C,CAAC"}
|