@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.
Files changed (550) hide show
  1. package/Dockerfile +6 -8
  2. package/README.md +163 -29
  3. package/dist/config.d.ts +15 -3
  4. package/dist/config.js +53 -30
  5. package/dist/config.js.map +1 -1
  6. package/dist/haClient/index.d.ts +7 -2
  7. package/dist/haClient/index.js.map +1 -1
  8. package/dist/index.js +85 -33
  9. package/dist/index.js.map +1 -1
  10. package/dist/omadaClient/auth.d.ts +43 -0
  11. package/dist/omadaClient/auth.js +157 -0
  12. package/dist/omadaClient/auth.js.map +1 -0
  13. package/dist/omadaClient/client.d.ts +82 -0
  14. package/dist/omadaClient/client.js +173 -0
  15. package/dist/omadaClient/client.js.map +1 -0
  16. package/dist/omadaClient/device.d.ts +32 -0
  17. package/dist/omadaClient/device.js +80 -0
  18. package/dist/omadaClient/device.js.map +1 -0
  19. package/dist/omadaClient/index.d.ts +57 -0
  20. package/dist/omadaClient/index.js +136 -0
  21. package/dist/omadaClient/index.js.map +1 -0
  22. package/dist/omadaClient/network.d.ts +63 -0
  23. package/dist/omadaClient/network.js +114 -0
  24. package/dist/omadaClient/network.js.map +1 -0
  25. package/dist/omadaClient/request.d.ts +69 -0
  26. package/dist/omadaClient/request.js +266 -0
  27. package/dist/omadaClient/request.js.map +1 -0
  28. package/dist/omadaClient/security.d.ts +19 -0
  29. package/dist/omadaClient/security.js +44 -0
  30. package/dist/omadaClient/security.js.map +1 -0
  31. package/dist/omadaClient/site.d.ts +20 -0
  32. package/dist/omadaClient/site.js +33 -0
  33. package/dist/omadaClient/site.js.map +1 -0
  34. package/dist/permissions/index.d.ts +49 -0
  35. package/dist/permissions/index.js +77 -0
  36. package/dist/permissions/index.js.map +1 -0
  37. package/dist/server/auth.d.ts +12 -3
  38. package/dist/server/auth.js +46 -29
  39. package/dist/server/auth.js.map +1 -1
  40. package/dist/server/common.d.ts +7 -1
  41. package/dist/server/common.js +23 -5
  42. package/dist/server/common.js.map +1 -1
  43. package/dist/server/http.d.ts +8 -1
  44. package/dist/server/http.js +14 -10
  45. package/dist/server/http.js.map +1 -1
  46. package/dist/server/instructions.d.ts +19 -0
  47. package/dist/server/instructions.js +69 -0
  48. package/dist/server/instructions.js.map +1 -0
  49. package/dist/server/stdio.d.ts +7 -1
  50. package/dist/server/stdio.js +2 -2
  51. package/dist/server/stdio.js.map +1 -1
  52. package/dist/server/stream.d.ts +9 -2
  53. package/dist/server/stream.js +6 -4
  54. package/dist/server/stream.js.map +1 -1
  55. package/dist/tools/{analyzeSensors.d.ts → ai/analyzeSensors.d.ts} +1 -1
  56. package/dist/tools/{analyzeSensors.js → ai/analyzeSensors.js} +2 -2
  57. package/dist/tools/ai/analyzeSensors.js.map +1 -0
  58. package/dist/tools/ai/index.d.ts +6 -0
  59. package/dist/tools/ai/index.js +14 -0
  60. package/dist/tools/ai/index.js.map +1 -0
  61. package/dist/tools/common.d.ts +107 -6
  62. package/dist/tools/common.js +78 -2
  63. package/dist/tools/common.js.map +1 -1
  64. package/dist/tools/{automationControls.d.ts → homeassistant/automationControls.d.ts} +1 -1
  65. package/dist/tools/{automationControls.js → homeassistant/automationControls.js} +5 -5
  66. package/dist/tools/homeassistant/automationControls.js.map +1 -0
  67. package/dist/tools/{calendar.d.ts → homeassistant/calendar.d.ts} +1 -1
  68. package/dist/tools/{calendar.js → homeassistant/calendar.js} +3 -3
  69. package/dist/tools/homeassistant/calendar.js.map +1 -0
  70. package/dist/tools/{callService.d.ts → homeassistant/callService.d.ts} +1 -1
  71. package/dist/tools/{callService.js → homeassistant/callService.js} +2 -2
  72. package/dist/tools/homeassistant/callService.js.map +1 -0
  73. package/dist/tools/{controlClimate.d.ts → homeassistant/controlClimate.d.ts} +1 -1
  74. package/dist/tools/{controlClimate.js → homeassistant/controlClimate.js} +2 -2
  75. package/dist/tools/homeassistant/controlClimate.js.map +1 -0
  76. package/dist/tools/{controlCover.d.ts → homeassistant/controlCover.d.ts} +1 -1
  77. package/dist/tools/{controlCover.js → homeassistant/controlCover.js} +2 -2
  78. package/dist/tools/homeassistant/controlCover.js.map +1 -0
  79. package/dist/tools/{controlFan.d.ts → homeassistant/controlFan.d.ts} +1 -1
  80. package/dist/tools/{controlFan.js → homeassistant/controlFan.js} +2 -2
  81. package/dist/tools/homeassistant/controlFan.js.map +1 -0
  82. package/dist/tools/{controlLight.d.ts → homeassistant/controlLight.d.ts} +1 -1
  83. package/dist/tools/{controlLight.js → homeassistant/controlLight.js} +2 -2
  84. package/dist/tools/homeassistant/controlLight.js.map +1 -0
  85. package/dist/tools/{controlMediaPlayer.d.ts → homeassistant/controlMediaPlayer.d.ts} +1 -1
  86. package/dist/tools/{controlMediaPlayer.js → homeassistant/controlMediaPlayer.js} +2 -2
  87. package/dist/tools/homeassistant/controlMediaPlayer.js.map +1 -0
  88. package/dist/tools/{createAutomation.d.ts → homeassistant/createAutomation.d.ts} +1 -1
  89. package/dist/tools/{createAutomation.js → homeassistant/createAutomation.js} +2 -2
  90. package/dist/tools/homeassistant/createAutomation.js.map +1 -0
  91. package/dist/tools/{deleteAutomation.d.ts → homeassistant/deleteAutomation.d.ts} +1 -1
  92. package/dist/tools/{deleteAutomation.js → homeassistant/deleteAutomation.js} +2 -2
  93. package/dist/tools/homeassistant/deleteAutomation.js.map +1 -0
  94. package/dist/tools/{entityAction.d.ts → homeassistant/entityAction.d.ts} +1 -1
  95. package/dist/tools/{entityAction.js → homeassistant/entityAction.js} +2 -2
  96. package/dist/tools/homeassistant/entityAction.js.map +1 -0
  97. package/dist/tools/{getAllSensors.d.ts → homeassistant/getAllSensors.d.ts} +2 -1
  98. package/dist/tools/homeassistant/getAllSensors.js +37 -0
  99. package/dist/tools/homeassistant/getAllSensors.js.map +1 -0
  100. package/dist/tools/{getAutomationTrace.d.ts → homeassistant/getAutomationTrace.d.ts} +1 -1
  101. package/dist/tools/{getAutomationTrace.js → homeassistant/getAutomationTrace.js} +2 -2
  102. package/dist/tools/homeassistant/getAutomationTrace.js.map +1 -0
  103. package/dist/tools/{getDomainSummary.d.ts → homeassistant/getDomainSummary.d.ts} +1 -1
  104. package/dist/tools/{getDomainSummary.js → homeassistant/getDomainSummary.js} +2 -2
  105. package/dist/tools/homeassistant/getDomainSummary.js.map +1 -0
  106. package/dist/tools/{getEntitiesByDomain.d.ts → homeassistant/getEntitiesByDomain.d.ts} +2 -1
  107. package/dist/tools/homeassistant/getEntitiesByDomain.js +46 -0
  108. package/dist/tools/homeassistant/getEntitiesByDomain.js.map +1 -0
  109. package/dist/tools/{getHistory.d.ts → homeassistant/getHistory.d.ts} +1 -1
  110. package/dist/tools/{getHistory.js → homeassistant/getHistory.js} +2 -2
  111. package/dist/tools/homeassistant/getHistory.js.map +1 -0
  112. package/dist/tools/{getState.d.ts → homeassistant/getState.d.ts} +1 -1
  113. package/dist/tools/{getState.js → homeassistant/getState.js} +2 -2
  114. package/dist/tools/homeassistant/getState.js.map +1 -0
  115. package/dist/tools/{getStates.d.ts → homeassistant/getStates.d.ts} +2 -1
  116. package/dist/tools/homeassistant/getStates.js +37 -0
  117. package/dist/tools/homeassistant/getStates.js.map +1 -0
  118. package/dist/tools/{getVersion.d.ts → homeassistant/getVersion.d.ts} +1 -1
  119. package/dist/tools/{getVersion.js → homeassistant/getVersion.js} +2 -2
  120. package/dist/tools/homeassistant/getVersion.js.map +1 -0
  121. package/dist/tools/homeassistant/index.d.ts +6 -0
  122. package/dist/tools/homeassistant/index.js +94 -0
  123. package/dist/tools/homeassistant/index.js.map +1 -0
  124. package/dist/tools/{listAutomations.d.ts → homeassistant/listAutomations.d.ts} +1 -1
  125. package/dist/tools/{listAutomations.js → homeassistant/listAutomations.js} +2 -2
  126. package/dist/tools/homeassistant/listAutomations.js.map +1 -0
  127. package/dist/tools/{listEntities.d.ts → homeassistant/listEntities.d.ts} +2 -1
  128. package/dist/tools/homeassistant/listEntities.js +32 -0
  129. package/dist/tools/homeassistant/listEntities.js.map +1 -0
  130. package/dist/tools/{listPersons.d.ts → homeassistant/listPersons.d.ts} +1 -1
  131. package/dist/tools/{listPersons.js → homeassistant/listPersons.js} +2 -2
  132. package/dist/tools/homeassistant/listPersons.js.map +1 -0
  133. package/dist/tools/{sceneAndScript.d.ts → homeassistant/sceneAndScript.d.ts} +1 -1
  134. package/dist/tools/{sceneAndScript.js → homeassistant/sceneAndScript.js} +3 -3
  135. package/dist/tools/homeassistant/sceneAndScript.js.map +1 -0
  136. package/dist/tools/{searchEntities.d.ts → homeassistant/searchEntities.d.ts} +2 -1
  137. package/dist/tools/homeassistant/searchEntities.js +48 -0
  138. package/dist/tools/homeassistant/searchEntities.js.map +1 -0
  139. package/dist/tools/{sendNotification.d.ts → homeassistant/sendNotification.d.ts} +1 -1
  140. package/dist/tools/{sendNotification.js → homeassistant/sendNotification.js} +3 -3
  141. package/dist/tools/homeassistant/sendNotification.js.map +1 -0
  142. package/dist/tools/{systemTools.d.ts → homeassistant/systemTools.d.ts} +1 -1
  143. package/dist/tools/{systemTools.js → homeassistant/systemTools.js} +4 -4
  144. package/dist/tools/homeassistant/systemTools.js.map +1 -0
  145. package/dist/tools/{triggerAutomation.d.ts → homeassistant/triggerAutomation.d.ts} +1 -1
  146. package/dist/tools/{triggerAutomation.js → homeassistant/triggerAutomation.js} +2 -2
  147. package/dist/tools/homeassistant/triggerAutomation.js.map +1 -0
  148. package/dist/tools/index.d.ts +16 -3
  149. package/dist/tools/index.js +35 -93
  150. package/dist/tools/index.js.map +1 -1
  151. package/dist/tools/omada/disableClientRateLimit.d.ts +3 -0
  152. package/dist/tools/omada/disableClientRateLimit.js +13 -0
  153. package/dist/tools/omada/disableClientRateLimit.js.map +1 -0
  154. package/dist/tools/omada/getClient.d.ts +3 -0
  155. package/dist/tools/omada/getClient.js +8 -0
  156. package/dist/tools/omada/getClient.js.map +1 -0
  157. package/dist/tools/omada/getDevice.d.ts +3 -0
  158. package/dist/tools/omada/getDevice.js +8 -0
  159. package/dist/tools/omada/getDevice.js.map +1 -0
  160. package/dist/tools/omada/getFirewallSetting.d.ts +3 -0
  161. package/dist/tools/omada/getFirewallSetting.js +8 -0
  162. package/dist/tools/omada/getFirewallSetting.js.map +1 -0
  163. package/dist/tools/omada/getInternetInfo.d.ts +3 -0
  164. package/dist/tools/omada/getInternetInfo.js +8 -0
  165. package/dist/tools/omada/getInternetInfo.js.map +1 -0
  166. package/dist/tools/omada/getLanNetworkList.d.ts +3 -0
  167. package/dist/tools/omada/getLanNetworkList.js +8 -0
  168. package/dist/tools/omada/getLanNetworkList.js.map +1 -0
  169. package/dist/tools/omada/getLanProfileList.d.ts +3 -0
  170. package/dist/tools/omada/getLanProfileList.js +8 -0
  171. package/dist/tools/omada/getLanProfileList.js.map +1 -0
  172. package/dist/tools/omada/getPortForwardingStatus.d.ts +3 -0
  173. package/dist/tools/omada/getPortForwardingStatus.js +15 -0
  174. package/dist/tools/omada/getPortForwardingStatus.js.map +1 -0
  175. package/dist/tools/omada/getRateLimitProfiles.d.ts +3 -0
  176. package/dist/tools/omada/getRateLimitProfiles.js +8 -0
  177. package/dist/tools/omada/getRateLimitProfiles.js.map +1 -0
  178. package/dist/tools/omada/getSsidDetail.d.ts +3 -0
  179. package/dist/tools/omada/getSsidDetail.js +14 -0
  180. package/dist/tools/omada/getSsidDetail.js.map +1 -0
  181. package/dist/tools/omada/getSsidList.d.ts +3 -0
  182. package/dist/tools/omada/getSsidList.js +13 -0
  183. package/dist/tools/omada/getSsidList.js.map +1 -0
  184. package/dist/tools/omada/getSwitchStackDetail.d.ts +3 -0
  185. package/dist/tools/omada/getSwitchStackDetail.js +8 -0
  186. package/dist/tools/omada/getSwitchStackDetail.js.map +1 -0
  187. package/dist/tools/omada/getThreatList.d.ts +3 -0
  188. package/dist/tools/omada/getThreatList.js +33 -0
  189. package/dist/tools/omada/getThreatList.js.map +1 -0
  190. package/dist/tools/omada/getWlanGroupList.d.ts +3 -0
  191. package/dist/tools/omada/getWlanGroupList.js +8 -0
  192. package/dist/tools/omada/getWlanGroupList.js.map +1 -0
  193. package/dist/tools/omada/index.d.ts +6 -0
  194. package/dist/tools/omada/index.js +71 -0
  195. package/dist/tools/omada/index.js.map +1 -0
  196. package/dist/tools/omada/listClients.d.ts +3 -0
  197. package/dist/tools/omada/listClients.js +8 -0
  198. package/dist/tools/omada/listClients.js.map +1 -0
  199. package/dist/tools/omada/listClientsActivity.d.ts +3 -0
  200. package/dist/tools/omada/listClientsActivity.js +14 -0
  201. package/dist/tools/omada/listClientsActivity.js.map +1 -0
  202. package/dist/tools/omada/listClientsPastConnections.d.ts +3 -0
  203. package/dist/tools/omada/listClientsPastConnections.js +31 -0
  204. package/dist/tools/omada/listClientsPastConnections.js.map +1 -0
  205. package/dist/tools/omada/listDevices.d.ts +3 -0
  206. package/dist/tools/omada/listDevices.js +8 -0
  207. package/dist/tools/omada/listDevices.js.map +1 -0
  208. package/dist/tools/omada/listDevicesStats.d.ts +3 -0
  209. package/dist/tools/omada/listDevicesStats.js +28 -0
  210. package/dist/tools/omada/listDevicesStats.js.map +1 -0
  211. package/dist/tools/omada/listMostActiveClients.d.ts +3 -0
  212. package/dist/tools/omada/listMostActiveClients.js +8 -0
  213. package/dist/tools/omada/listMostActiveClients.js.map +1 -0
  214. package/dist/tools/omada/listSites.d.ts +3 -0
  215. package/dist/tools/omada/listSites.js +10 -0
  216. package/dist/tools/omada/listSites.js.map +1 -0
  217. package/dist/tools/omada/searchDevices.d.ts +3 -0
  218. package/dist/tools/omada/searchDevices.js +12 -0
  219. package/dist/tools/omada/searchDevices.js.map +1 -0
  220. package/dist/tools/omada/setClientRateLimit.d.ts +3 -0
  221. package/dist/tools/omada/setClientRateLimit.js +15 -0
  222. package/dist/tools/omada/setClientRateLimit.js.map +1 -0
  223. package/dist/tools/omada/setClientRateLimitProfile.d.ts +3 -0
  224. package/dist/tools/omada/setClientRateLimitProfile.js +14 -0
  225. package/dist/tools/omada/setClientRateLimitProfile.js.map +1 -0
  226. package/dist/tools/types.d.ts +9 -0
  227. package/dist/tools/types.js +5 -0
  228. package/dist/tools/types.js.map +1 -0
  229. package/dist/tools/utils/pagination-schema.d.ts +23 -0
  230. package/dist/tools/utils/pagination-schema.js +19 -0
  231. package/dist/tools/utils/pagination-schema.js.map +1 -0
  232. package/dist/types/ai/index.d.ts +4 -0
  233. package/dist/types/ai/index.js +5 -0
  234. package/dist/types/ai/index.js.map +1 -0
  235. package/dist/types/ai/types.d.ts +60 -0
  236. package/dist/types/ai/types.js +6 -0
  237. package/dist/types/ai/types.js.map +1 -0
  238. package/dist/types/homeassistant/automations.js.map +1 -0
  239. package/dist/types/homeassistant/calendars.js.map +1 -0
  240. package/dist/types/homeassistant/config.js.map +1 -0
  241. package/dist/types/homeassistant/entities.js.map +1 -0
  242. package/dist/types/homeassistant/errors.js.map +1 -0
  243. package/dist/types/homeassistant/haConfig.js.map +1 -0
  244. package/dist/types/homeassistant/history.js.map +1 -0
  245. package/dist/types/homeassistant/index.d.ts +15 -0
  246. package/dist/types/homeassistant/index.js +7 -0
  247. package/dist/types/homeassistant/index.js.map +1 -0
  248. package/dist/types/homeassistant/request.js.map +1 -0
  249. package/dist/types/homeassistant/serviceCall.js.map +1 -0
  250. package/dist/types/homeassistant/states.d.ts +45 -0
  251. package/dist/types/homeassistant/states.js +17 -0
  252. package/dist/types/homeassistant/states.js.map +1 -0
  253. package/dist/types/homeassistant/updates.js.map +1 -0
  254. package/dist/types/index.d.ts +6 -11
  255. package/dist/types/index.js +9 -2
  256. package/dist/types/index.js.map +1 -1
  257. package/dist/types/omada/activeClientInfo.d.ts +17 -0
  258. package/dist/types/omada/activeClientInfo.js +2 -0
  259. package/dist/types/omada/activeClientInfo.js.map +1 -0
  260. package/dist/types/omada/clientActivity.d.ts +31 -0
  261. package/dist/types/omada/clientActivity.js +2 -0
  262. package/dist/types/omada/clientActivity.js.map +1 -0
  263. package/dist/types/omada/clientPastConnection.d.ts +59 -0
  264. package/dist/types/omada/clientPastConnection.js +2 -0
  265. package/dist/types/omada/clientPastConnection.js.map +1 -0
  266. package/dist/types/omada/index.d.ts +13 -0
  267. package/dist/types/omada/index.js +2 -0
  268. package/dist/types/omada/index.js.map +1 -0
  269. package/dist/types/omada/omadaApiResponse.d.ts +5 -0
  270. package/dist/types/omada/omadaApiResponse.js +2 -0
  271. package/dist/types/omada/omadaApiResponse.js.map +1 -0
  272. package/dist/types/omada/omadaClientInfo.d.ts +11 -0
  273. package/dist/types/omada/omadaClientInfo.js +2 -0
  274. package/dist/types/omada/omadaClientInfo.js.map +1 -0
  275. package/dist/types/omada/omadaDeviceInfo.d.ts +11 -0
  276. package/dist/types/omada/omadaDeviceInfo.js +2 -0
  277. package/dist/types/omada/omadaDeviceInfo.js.map +1 -0
  278. package/dist/types/omada/omadaDeviceStats.d.ts +29 -0
  279. package/dist/types/omada/omadaDeviceStats.js +2 -0
  280. package/dist/types/omada/omadaDeviceStats.js.map +1 -0
  281. package/dist/types/omada/omadaSiteSummary.d.ts +5 -0
  282. package/dist/types/omada/omadaSiteSummary.js +2 -0
  283. package/dist/types/omada/omadaSiteSummary.js.map +1 -0
  284. package/dist/types/omada/oswStackDetail.d.ts +11 -0
  285. package/dist/types/omada/oswStackDetail.js +2 -0
  286. package/dist/types/omada/oswStackDetail.js.map +1 -0
  287. package/dist/types/omada/paginatedResult.d.ts +6 -0
  288. package/dist/types/omada/paginatedResult.js +2 -0
  289. package/dist/types/omada/paginatedResult.js.map +1 -0
  290. package/dist/types/omada/rateLimitProfile.d.ts +56 -0
  291. package/dist/types/omada/rateLimitProfile.js +2 -0
  292. package/dist/types/omada/rateLimitProfile.js.map +1 -0
  293. package/dist/types/omada/threatInfo.d.ts +37 -0
  294. package/dist/types/omada/threatInfo.js +2 -0
  295. package/dist/types/omada/threatInfo.js.map +1 -0
  296. package/dist/types/omada/tokenResult.d.ts +6 -0
  297. package/dist/types/omada/tokenResult.js +2 -0
  298. package/dist/types/omada/tokenResult.js.map +1 -0
  299. package/dist/utils/jwt.d.ts +18 -0
  300. package/dist/utils/jwt.js +47 -0
  301. package/dist/utils/jwt.js.map +1 -0
  302. package/dist/utils/logger.d.ts +4 -5
  303. package/dist/utils/logger.js +70 -59
  304. package/dist/utils/logger.js.map +1 -1
  305. package/dist/version.d.ts +1 -1
  306. package/dist/version.js +1 -1
  307. package/dist/wrapper.js +1 -1
  308. package/dist/wrapper.js.map +1 -1
  309. package/docker-compose.yml +3 -0
  310. package/docs/CHANGELOG.md +56 -6
  311. package/docs/COVERAGE.md +219 -0
  312. package/docs/{Quick_Start.md → QUICK_START.md} +32 -7
  313. package/package.json +7 -6
  314. package/scripts/generate-jwt.ts +122 -0
  315. package/src/config.ts +78 -38
  316. package/src/haClient/index.ts +8 -2
  317. package/src/index.ts +81 -33
  318. package/src/omadaClient/auth.ts +185 -0
  319. package/src/omadaClient/client.ts +225 -0
  320. package/src/omadaClient/device.ts +91 -0
  321. package/src/omadaClient/index.ts +206 -0
  322. package/src/omadaClient/network.ts +129 -0
  323. package/src/omadaClient/request.ts +332 -0
  324. package/src/omadaClient/security.ts +51 -0
  325. package/src/omadaClient/site.ts +37 -0
  326. package/src/permissions/index.ts +101 -0
  327. package/src/server/auth.ts +59 -31
  328. package/src/server/common.ts +38 -8
  329. package/src/server/http.ts +23 -8
  330. package/src/server/instructions.ts +94 -0
  331. package/src/server/stdio.ts +9 -2
  332. package/src/server/stream.ts +15 -7
  333. package/src/tools/{analyzeSensors.ts → ai/analyzeSensors.ts} +3 -3
  334. package/src/tools/ai/index.ts +20 -0
  335. package/src/tools/common.ts +108 -2
  336. package/src/tools/{automationControls.ts → homeassistant/automationControls.ts} +6 -6
  337. package/src/tools/{calendar.ts → homeassistant/calendar.ts} +4 -4
  338. package/src/tools/{callService.ts → homeassistant/callService.ts} +4 -4
  339. package/src/tools/{controlClimate.ts → homeassistant/controlClimate.ts} +3 -3
  340. package/src/tools/{controlCover.ts → homeassistant/controlCover.ts} +3 -3
  341. package/src/tools/{controlFan.ts → homeassistant/controlFan.ts} +3 -3
  342. package/src/tools/{controlLight.ts → homeassistant/controlLight.ts} +3 -3
  343. package/src/tools/{controlMediaPlayer.ts → homeassistant/controlMediaPlayer.ts} +3 -3
  344. package/src/tools/{createAutomation.ts → homeassistant/createAutomation.ts} +4 -4
  345. package/src/tools/{deleteAutomation.ts → homeassistant/deleteAutomation.ts} +3 -3
  346. package/src/tools/{entityAction.ts → homeassistant/entityAction.ts} +3 -3
  347. package/src/tools/homeassistant/getAllSensors.ts +46 -0
  348. package/src/tools/{getAutomationTrace.ts → homeassistant/getAutomationTrace.ts} +3 -3
  349. package/src/tools/{getDomainSummary.ts → homeassistant/getDomainSummary.ts} +3 -3
  350. package/src/tools/homeassistant/getEntitiesByDomain.ts +56 -0
  351. package/src/tools/{getHistory.ts → homeassistant/getHistory.ts} +3 -3
  352. package/src/tools/{getState.ts → homeassistant/getState.ts} +3 -3
  353. package/src/tools/homeassistant/getStates.ts +46 -0
  354. package/src/tools/{getVersion.ts → homeassistant/getVersion.ts} +3 -3
  355. package/src/tools/homeassistant/index.ts +121 -0
  356. package/src/tools/{listAutomations.ts → homeassistant/listAutomations.ts} +3 -3
  357. package/src/tools/homeassistant/listEntities.ts +44 -0
  358. package/src/tools/{listPersons.ts → homeassistant/listPersons.ts} +3 -3
  359. package/src/tools/{sceneAndScript.ts → homeassistant/sceneAndScript.ts} +4 -4
  360. package/src/tools/homeassistant/searchEntities.ts +58 -0
  361. package/src/tools/{sendNotification.ts → homeassistant/sendNotification.ts} +4 -4
  362. package/src/tools/{systemTools.ts → homeassistant/systemTools.ts} +5 -5
  363. package/src/tools/{triggerAutomation.ts → homeassistant/triggerAutomation.ts} +3 -3
  364. package/src/tools/index.ts +47 -116
  365. package/src/tools/omada/disableClientRateLimit.ts +23 -0
  366. package/src/tools/omada/getClient.ts +15 -0
  367. package/src/tools/omada/getDevice.ts +15 -0
  368. package/src/tools/omada/getFirewallSetting.ts +15 -0
  369. package/src/tools/omada/getInternetInfo.ts +15 -0
  370. package/src/tools/omada/getLanNetworkList.ts +15 -0
  371. package/src/tools/omada/getLanProfileList.ts +15 -0
  372. package/src/tools/omada/getPortForwardingStatus.ts +26 -0
  373. package/src/tools/omada/getRateLimitProfiles.ts +15 -0
  374. package/src/tools/omada/getSsidDetail.ts +22 -0
  375. package/src/tools/omada/getSsidList.ts +21 -0
  376. package/src/tools/omada/getSwitchStackDetail.ts +15 -0
  377. package/src/tools/omada/getThreatList.ts +42 -0
  378. package/src/tools/omada/getWlanGroupList.ts +15 -0
  379. package/src/tools/omada/index.ts +82 -0
  380. package/src/tools/omada/listClients.ts +15 -0
  381. package/src/tools/omada/listClientsActivity.ts +25 -0
  382. package/src/tools/omada/listClientsPastConnections.ts +44 -0
  383. package/src/tools/omada/listDevices.ts +15 -0
  384. package/src/tools/omada/listDevicesStats.ts +41 -0
  385. package/src/tools/omada/listMostActiveClients.ts +15 -0
  386. package/src/tools/omada/listSites.ts +18 -0
  387. package/src/tools/omada/searchDevices.ts +20 -0
  388. package/src/tools/omada/setClientRateLimit.ts +26 -0
  389. package/src/tools/omada/setClientRateLimitProfile.ts +25 -0
  390. package/src/tools/types.ts +11 -0
  391. package/src/tools/utils/pagination-schema.ts +27 -0
  392. package/src/types/ai/index.ts +11 -0
  393. package/src/types/ai/types.ts +67 -0
  394. package/src/types/homeassistant/index.ts +46 -0
  395. package/src/types/homeassistant/states.ts +58 -0
  396. package/src/types/index.ts +9 -38
  397. package/src/types/omada/activeClientInfo.ts +17 -0
  398. package/src/types/omada/clientActivity.ts +32 -0
  399. package/src/types/omada/clientPastConnection.ts +82 -0
  400. package/src/types/omada/index.ts +13 -0
  401. package/src/types/omada/omadaApiResponse.ts +5 -0
  402. package/src/types/omada/omadaClientInfo.ts +11 -0
  403. package/src/types/omada/omadaDeviceInfo.ts +11 -0
  404. package/src/types/omada/omadaDeviceStats.ts +31 -0
  405. package/src/types/omada/omadaSiteSummary.ts +5 -0
  406. package/src/types/omada/oswStackDetail.ts +11 -0
  407. package/src/types/omada/paginatedResult.ts +6 -0
  408. package/src/types/omada/rateLimitProfile.ts +58 -0
  409. package/src/types/omada/threatInfo.ts +38 -0
  410. package/src/types/omada/tokenResult.ts +6 -0
  411. package/src/utils/jwt.ts +69 -0
  412. package/src/utils/logger.ts +72 -66
  413. package/src/version.ts +1 -1
  414. package/src/wrapper.ts +1 -1
  415. package/tests/bdd/configuration.spec.ts +10 -8
  416. package/tests/config.test.ts +8 -4
  417. package/tests/features/configuration.feature +4 -4
  418. package/tests/haClient/index.test.ts +3 -13
  419. package/tests/integration/homeassistant.test.ts +136 -0
  420. package/tests/integration/omada.test.ts +152 -0
  421. package/tests/integration/server.test.ts +148 -0
  422. package/tests/permissions/index.test.ts +173 -0
  423. package/tests/resources/index.test.ts +288 -0
  424. package/tests/server/auth.test.ts +64 -46
  425. package/tests/server/common.test.ts +49 -29
  426. package/tests/server/instructions.test.ts +150 -0
  427. package/tests/server/stdio.test.ts +27 -28
  428. package/tests/tools/ai/analyzeSensors.test.ts +235 -0
  429. package/tests/tools/common.test.ts +124 -0
  430. package/tests/tools/homeassistant/handlers.test.ts +826 -0
  431. package/tests/tools/omada/handlers.test.ts +854 -0
  432. package/tests/tools/registry.test.ts +32 -26
  433. package/tests/utils/jwt.test.ts +115 -0
  434. package/dist/autonomic/index.d.ts +0 -6
  435. package/dist/autonomic/index.js +0 -7
  436. package/dist/autonomic/index.js.map +0 -1
  437. package/dist/autonomic/priority.d.ts +0 -60
  438. package/dist/autonomic/priority.js +0 -97
  439. package/dist/autonomic/priority.js.map +0 -1
  440. package/dist/haClient/labels.d.ts +0 -64
  441. package/dist/haClient/labels.js +0 -177
  442. package/dist/haClient/labels.js.map +0 -1
  443. package/dist/organism/index.d.ts +0 -5
  444. package/dist/organism/index.js +0 -6
  445. package/dist/organism/index.js.map +0 -1
  446. package/dist/organism/priority.d.ts +0 -60
  447. package/dist/organism/priority.js +0 -97
  448. package/dist/organism/priority.js.map +0 -1
  449. package/dist/server/sse.d.ts +0 -31
  450. package/dist/server/sse.js +0 -76
  451. package/dist/server/sse.js.map +0 -1
  452. package/dist/tools/analyzeSensors.js.map +0 -1
  453. package/dist/tools/automationControls.js.map +0 -1
  454. package/dist/tools/calendar.js.map +0 -1
  455. package/dist/tools/callService.js.map +0 -1
  456. package/dist/tools/controlClimate.js.map +0 -1
  457. package/dist/tools/controlCover.js.map +0 -1
  458. package/dist/tools/controlFan.js.map +0 -1
  459. package/dist/tools/controlLight.js.map +0 -1
  460. package/dist/tools/controlMediaPlayer.js.map +0 -1
  461. package/dist/tools/createAutomation.js.map +0 -1
  462. package/dist/tools/deleteAutomation.js.map +0 -1
  463. package/dist/tools/entityAction.js.map +0 -1
  464. package/dist/tools/getAllSensors.js +0 -14
  465. package/dist/tools/getAllSensors.js.map +0 -1
  466. package/dist/tools/getAutomationTrace.js.map +0 -1
  467. package/dist/tools/getDomainSummary.js.map +0 -1
  468. package/dist/tools/getEntitiesByDomain.js +0 -14
  469. package/dist/tools/getEntitiesByDomain.js.map +0 -1
  470. package/dist/tools/getHistory.js.map +0 -1
  471. package/dist/tools/getState.js.map +0 -1
  472. package/dist/tools/getStates.js +0 -14
  473. package/dist/tools/getStates.js.map +0 -1
  474. package/dist/tools/getVersion.js.map +0 -1
  475. package/dist/tools/labels.d.ts +0 -12
  476. package/dist/tools/labels.js +0 -139
  477. package/dist/tools/labels.js.map +0 -1
  478. package/dist/tools/listAutomations.js.map +0 -1
  479. package/dist/tools/listEntities.js +0 -14
  480. package/dist/tools/listEntities.js.map +0 -1
  481. package/dist/tools/listPersons.js.map +0 -1
  482. package/dist/tools/sceneAndScript.js.map +0 -1
  483. package/dist/tools/searchEntities.js +0 -16
  484. package/dist/tools/searchEntities.js.map +0 -1
  485. package/dist/tools/sendNotification.js.map +0 -1
  486. package/dist/tools/systemTools.js.map +0 -1
  487. package/dist/tools/triggerAutomation.js.map +0 -1
  488. package/dist/types/automations.js.map +0 -1
  489. package/dist/types/calendars.js.map +0 -1
  490. package/dist/types/config.js.map +0 -1
  491. package/dist/types/entities.js.map +0 -1
  492. package/dist/types/entity.d.ts +0 -119
  493. package/dist/types/entity.js +0 -2
  494. package/dist/types/entity.js.map +0 -1
  495. package/dist/types/errors.js.map +0 -1
  496. package/dist/types/haConfig.js.map +0 -1
  497. package/dist/types/history.js.map +0 -1
  498. package/dist/types/labels.d.ts +0 -34
  499. package/dist/types/labels.js +0 -5
  500. package/dist/types/labels.js.map +0 -1
  501. package/dist/types/request.js.map +0 -1
  502. package/dist/types/serviceCall.js.map +0 -1
  503. package/dist/types/states.d.ts +0 -19
  504. package/dist/types/states.js +0 -5
  505. package/dist/types/states.js.map +0 -1
  506. package/dist/types/updates.js.map +0 -1
  507. package/dist/utils/sanitize.d.ts +0 -25
  508. package/dist/utils/sanitize.js +0 -92
  509. package/dist/utils/sanitize.js.map +0 -1
  510. package/docs/LOCAL_CLIENT.md +0 -572
  511. package/docs/SSE_API.md +0 -341
  512. package/src/autonomic/index.ts +0 -16
  513. package/src/autonomic/priority.ts +0 -109
  514. package/src/tools/getAllSensors.ts +0 -21
  515. package/src/tools/getEntitiesByDomain.ts +0 -21
  516. package/src/tools/getStates.ts +0 -21
  517. package/src/tools/listEntities.ts +0 -24
  518. package/src/tools/searchEntities.ts +0 -23
  519. package/src/types/states.ts +0 -21
  520. package/tests/autonomic/priority.test.ts +0 -171
  521. /package/dist/types/{automations.d.ts → homeassistant/automations.d.ts} +0 -0
  522. /package/dist/types/{automations.js → homeassistant/automations.js} +0 -0
  523. /package/dist/types/{calendars.d.ts → homeassistant/calendars.d.ts} +0 -0
  524. /package/dist/types/{calendars.js → homeassistant/calendars.js} +0 -0
  525. /package/dist/types/{config.d.ts → homeassistant/config.d.ts} +0 -0
  526. /package/dist/types/{config.js → homeassistant/config.js} +0 -0
  527. /package/dist/types/{entities.d.ts → homeassistant/entities.d.ts} +0 -0
  528. /package/dist/types/{entities.js → homeassistant/entities.js} +0 -0
  529. /package/dist/types/{errors.d.ts → homeassistant/errors.d.ts} +0 -0
  530. /package/dist/types/{errors.js → homeassistant/errors.js} +0 -0
  531. /package/dist/types/{haConfig.d.ts → homeassistant/haConfig.d.ts} +0 -0
  532. /package/dist/types/{haConfig.js → homeassistant/haConfig.js} +0 -0
  533. /package/dist/types/{history.d.ts → homeassistant/history.d.ts} +0 -0
  534. /package/dist/types/{history.js → homeassistant/history.js} +0 -0
  535. /package/dist/types/{request.d.ts → homeassistant/request.d.ts} +0 -0
  536. /package/dist/types/{request.js → homeassistant/request.js} +0 -0
  537. /package/dist/types/{serviceCall.d.ts → homeassistant/serviceCall.d.ts} +0 -0
  538. /package/dist/types/{serviceCall.js → homeassistant/serviceCall.js} +0 -0
  539. /package/dist/types/{updates.d.ts → homeassistant/updates.d.ts} +0 -0
  540. /package/dist/types/{updates.js → homeassistant/updates.js} +0 -0
  541. /package/src/types/{automations.ts → homeassistant/automations.ts} +0 -0
  542. /package/src/types/{calendars.ts → homeassistant/calendars.ts} +0 -0
  543. /package/src/types/{config.ts → homeassistant/config.ts} +0 -0
  544. /package/src/types/{entities.ts → homeassistant/entities.ts} +0 -0
  545. /package/src/types/{errors.ts → homeassistant/errors.ts} +0 -0
  546. /package/src/types/{haConfig.ts → homeassistant/haConfig.ts} +0 -0
  547. /package/src/types/{history.ts → homeassistant/history.ts} +0 -0
  548. /package/src/types/{request.ts → homeassistant/request.ts} +0 -0
  549. /package/src/types/{serviceCall.ts → homeassistant/serviceCall.ts} +0 -0
  550. /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-bookworm-slim AS deps
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-bookworm-slim AS build
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-bookworm-slim AS runtime
14
+ FROM node:25-alpine AS runtime
15
15
 
16
16
  # OCI metadata labels
17
- LABEL org.opencontainers.image.title="Smart HomeAssistant MCP Server"
18
- LABEL org.opencontainers.image.description="Smart home MCP server for Home Assistant plus Local AI integration"
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 apt-get update \
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
  [![npm version](https://badge.fury.io/js/%40coffeerunhobby%2Fmcp-ha-connect.svg)](https://www.npmjs.com/package/@coffeerunhobby/mcp-ha-connect)
6
6
  [![Docker](https://img.shields.io/badge/docker-ghcr.io-blue)](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 with pino (plain, JSON, GCP-JSON formats)
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
- ## Available Tools (37 Total)
56
+ ### Home Assistant Tools (35)
64
57
 
65
- ### State & Entity Tools
58
+ #### State & Entity Tools
66
59
 
67
60
  | Tool | Description |
68
61
  |------|-------------|
69
- | `getStates` | Get all entity states from Home Assistant |
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 all entities for a specific domain |
72
- | `searchEntities` | Search for entities by name or entity_id |
73
- | `getAllSensors` | Get all sensor and binary_sensor entities |
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
- ### Service & Control Tools
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
- ### Device Control Tools
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
- ### Automation Tools
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
- ### System Tools
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
- ### Calendar Tools
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
- | `MCP_AUTH_TOKEN` | - | Bearer token(s), can be comma-separated for multiple clients |
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://ollama.10.0.0.17.nip.io:11434` | AI server URL (Ollama) |
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
- baseUrl: string;
4
- token: string;
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
- authToken?: Set<string>;
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
- // Home Assistant Client Configuration
29
- haUrl: z.string().url({ message: 'HA_URL must be a valid URL' }),
30
- haToken: z.string().min(1, 'HA_TOKEN is required'),
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: listStringSchema,
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
- authToken: listStringSchema,
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
- // If bearer auth is enabled, token must be provided
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: 'MCP_AUTH_TOKEN is required when MCP_AUTH_METHOD is "bearer"',
98
- path: ['authToken'],
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
- authToken: env.MCP_AUTH_TOKEN,
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 is disabled. This should only be used in development.');
160
+ logger.warn('Wildcard (*) origin allowed - origin validation disabled');
149
161
  httpAllowedOrigins = [];
150
162
  }
151
163
  return {
152
- // Home Assistant Client Configuration
153
- baseUrl: parsed.data.haUrl.replace(/\/$/, ''),
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
- authToken: parsed.data.authToken ? new Set(parsed.data.authToken) : undefined,
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
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,sBAAsB,EAA0B,MAAM,wBAAwB,CAAC;AACxF,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,SAAS,GAAG,CAAC;KAChB,MAAM,CAAC;IACN,uCAAuC;IACvC,eAAe,EAAE,yBAAyB,CAAC,KAAK,CAAC;IACjD,eAAe,EAAE,yBAAyB,CAAC,KAAK,CAAC;IACjD,kBAAkB,EAAE,yBAAyB,CAAC,KAAK,CAAC;IAEpD,qEAAqE;IACrE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrC,WAAW,EAAE,yBAAyB,CAAC,IAAI,CAAC;IAC5C,SAAS,EAAE,mBAAmB;IAE9B,wCAAwC;IACxC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1F,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3C,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzC,cAAc,EAAE,yBAAyB,CAAC,IAAI,CAAC;IAC/C,YAAY,EAAE,mBAAmB;IAEjC,gEAAgE;IAChE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE/B,mCAAmC;IACnC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/E,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IAC5E,OAAO,EAAE,yBAAyB,CAAC,KAAK,CAAC;IACzC,QAAQ,EAAE,yBAAyB,CAAC,KAAK,CAAC;IAE1C,gCAAgC;IAChC,QAAQ,EAAE,mBAAmB;IAC7B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,qBAAqB,EAAE,yBAAyB,CAAC,IAAI,CAAC;IACtD,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,aAAa,EAAE,yBAAyB,CAAC,IAAI,CAAC;IAC9C,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE9G,uCAAuC;IACvC,gBAAgB,EAAE,yBAAyB,CAAC,IAAI,CAAC;IACjD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEpC,8BAA8B;IAC9B,gBAAgB,EAAE,yBAAyB,CAAC,IAAI,CAAC;IACjD,iBAAiB,EAAE,mBAAmB;IACtC,oBAAoB,EAAE,mBAAmB;IAEzC,+BAA+B;IAC/B,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACjE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC;KACD,MAAM,CACL,CAAC,IAAI,EAAE,EAAE;IACP,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,EACD;IACE,OAAO,EAAE,yDAAyD;IAClE,IAAI,EAAE,CAAC,cAAc,CAAC;CACvB,CACF;KACA,MAAM,CACL,CAAC,IAAI,EAAE,EAAE;IACP,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IACxF,OAAO;QACL,OAAO,EAAE,qDAAqD,aAAa,EAAE;QAC7E,IAAI,EAAE,CAAC,oBAAoB,CAAC;KAC7B,CAAC;AACJ,CAAC,CACF;KACA,MAAM,CACL,CAAC,IAAI,EAAE,EAAE;IACP,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,EACD;IACE,OAAO,EAAE,8DAA8D;IACvE,IAAI,EAAE,CAAC,YAAY,CAAC;CACrB,CACF,CAAC;AA4DJ,MAAM,UAAU,UAAU,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC7D,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC;QACjC,sBAAsB;QACtB,eAAe,EAAE,GAAG,CAAC,iBAAiB;QACtC,eAAe,EAAE,GAAG,CAAC,iBAAiB;QACtC,kBAAkB,EAAE,GAAG,CAAC,oBAAoB;QAE5C,sCAAsC;QACtC,KAAK,EAAE,GAAG,CAAC,MAAM;QACjB,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,WAAW,EAAE,GAAG,CAAC,aAAa;QAC9B,SAAS,EAAE,GAAG,CAAC,UAAU;QAEzB,6BAA6B;QAC7B,YAAY,EAAE,GAAG,CAAC,cAAc;QAChC,aAAa,EAAE,GAAG,CAAC,eAAe;QAClC,iBAAiB,EAAE,GAAG,CAAC,mBAAmB;QAC1C,aAAa,EAAE,GAAG,CAAC,eAAe;QAClC,WAAW,EAAE,GAAG,CAAC,aAAa;QAC9B,cAAc,EAAE,GAAG,CAAC,gBAAgB;QACpC,YAAY,EAAE,GAAG,CAAC,aAAa;QAE/B,4BAA4B;QAC5B,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,KAAK,EAAE,GAAG,CAAC,MAAM;QACjB,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,QAAQ,EAAE,GAAG,CAAC,UAAU;QAExB,mCAAmC;QACnC,QAAQ,EAAE,GAAG,CAAC,oBAAoB;QAClC,SAAS,EAAE,GAAG,CAAC,qBAAqB;QACpC,OAAO,EAAE,GAAG,CAAC,mBAAmB;QAChC,QAAQ,EAAE,GAAG,CAAC,mBAAmB;QAEjC,gCAAgC;QAChC,QAAQ,EAAE,GAAG,CAAC,aAAa;QAC3B,YAAY,EAAE,GAAG,CAAC,kBAAkB;QACpC,QAAQ,EAAE,GAAG,CAAC,aAAa;QAC3B,qBAAqB,EAAE,GAAG,CAAC,2BAA2B;QACtD,mBAAmB,EAAE,GAAG,CAAC,yBAAyB;QAClD,aAAa,EAAE,GAAG,CAAC,mBAAmB;QACtC,kBAAkB,EAAE,GAAG,CAAC,wBAAwB;QAEhD,uCAAuC;QACvC,gBAAgB,EAAE,GAAG,CAAC,sBAAsB;QAC5C,aAAa,EAAE,GAAG,CAAC,mBAAmB;QAEtC,8BAA8B;QAC9B,gBAAgB,EAAE,GAAG,CAAC,sBAAsB;QAC5C,iBAAiB,EAAE,GAAG,CAAC,wBAAwB;QAC/C,oBAAoB,EAAE,GAAG,CAAC,2BAA2B;QAErD,+BAA+B;QAC/B,UAAU,EAAE,GAAG,CAAC,eAAe;QAC/B,UAAU,EAAE,GAAG,CAAC,eAAe;QAC/B,iBAAiB,EAAE,GAAG,CAAC,sBAAsB;KAC9C,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAiB,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC;IAChD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,WAAW,CAAC;IAC7D,IAAI,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAEtF,IAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QACxE,kBAAkB,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,OAAO;QACL,sBAAsB;QACtB,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe;QAC5C,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe;QAC5C,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB;QAElD,iDAAiD;QACjD,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QAC9C,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;QAC1B,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;QAClC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK;QAEvC,wCAAwC;QACxC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QAC1D,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa;QACxC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB;QAChD,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa;QACnC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;QAC/B,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc;QAC1C,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY;QAExC,4BAA4B;QAC5B,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAmB;QAClE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,wBAAwB;QACpD,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,WAAW;QAC3C,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK;QACzC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;QAE9B,mCAAmC;QACnC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;QAC9B,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS;QAChC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;QAC5B,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;QAE9B,gCAAgC;QAChC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;QAC9B,YAAY;QACZ,QAAQ;QACR,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,qBAAqB;QACxD,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB;QACpD,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa;QACxC,kBAAkB;QAElB,uCAAuC;QACvC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB;QAC9C,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,mBAAmB;QAE/D,8BAA8B;QAC9B,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB;QAC9C,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,KAAK;QACzD,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,GAAG;QAE7D,+BAA+B;QAC/B,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;QAClC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;QAClC,WAAW,EAAE,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAyB;IACtD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC"}
@@ -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: EnvironmentConfig);
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/haClient/index.ts"],"names":[],"mappings":"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"}