@switchbot/openapi-cli 3.2.0 → 3.2.1

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 (331) hide show
  1. package/dist/api/client.d.ts +31 -0
  2. package/dist/api/client.js +236 -0
  3. package/dist/api/client.js.map +1 -0
  4. package/dist/auth.d.ts +1 -0
  5. package/dist/auth.js +21 -0
  6. package/dist/auth.js.map +1 -0
  7. package/dist/commands/agent-bootstrap.d.ts +10 -0
  8. package/dist/commands/agent-bootstrap.js +200 -0
  9. package/dist/commands/agent-bootstrap.js.map +1 -0
  10. package/dist/commands/auth.d.ts +18 -0
  11. package/dist/commands/auth.js +355 -0
  12. package/dist/commands/auth.js.map +1 -0
  13. package/dist/commands/batch.d.ts +2 -0
  14. package/dist/commands/batch.js +414 -0
  15. package/dist/commands/batch.js.map +1 -0
  16. package/dist/commands/cache.d.ts +2 -0
  17. package/dist/commands/cache.js +127 -0
  18. package/dist/commands/cache.js.map +1 -0
  19. package/dist/commands/capabilities.d.ts +31 -0
  20. package/dist/commands/capabilities.js +383 -0
  21. package/dist/commands/capabilities.js.map +1 -0
  22. package/dist/commands/catalog.d.ts +2 -0
  23. package/dist/commands/catalog.js +360 -0
  24. package/dist/commands/catalog.js.map +1 -0
  25. package/dist/commands/completion.d.ts +2 -0
  26. package/dist/commands/completion.js +386 -0
  27. package/dist/commands/completion.js.map +1 -0
  28. package/dist/commands/config.d.ts +21 -0
  29. package/dist/commands/config.js +377 -0
  30. package/dist/commands/config.js.map +1 -0
  31. package/dist/commands/daemon.d.ts +2 -0
  32. package/dist/commands/daemon.js +411 -0
  33. package/dist/commands/daemon.js.map +1 -0
  34. package/dist/commands/device-meta.d.ts +2 -0
  35. package/dist/commands/device-meta.js +160 -0
  36. package/dist/commands/device-meta.js.map +1 -0
  37. package/dist/commands/devices.d.ts +2 -0
  38. package/dist/commands/devices.js +949 -0
  39. package/dist/commands/devices.js.map +1 -0
  40. package/dist/commands/doctor.d.ts +3 -0
  41. package/dist/commands/doctor.js +1016 -0
  42. package/dist/commands/doctor.js.map +1 -0
  43. package/dist/commands/events.d.ts +31 -0
  44. package/dist/commands/events.js +564 -0
  45. package/dist/commands/events.js.map +1 -0
  46. package/dist/commands/expand.d.ts +2 -0
  47. package/dist/commands/expand.js +131 -0
  48. package/dist/commands/expand.js.map +1 -0
  49. package/dist/commands/explain.d.ts +2 -0
  50. package/dist/commands/explain.js +140 -0
  51. package/dist/commands/explain.js.map +1 -0
  52. package/dist/commands/health.d.ts +8 -0
  53. package/dist/commands/health.js +114 -0
  54. package/dist/commands/health.js.map +1 -0
  55. package/dist/commands/history.d.ts +2 -0
  56. package/dist/commands/history.js +321 -0
  57. package/dist/commands/history.js.map +1 -0
  58. package/dist/commands/identity.d.ts +45 -0
  59. package/dist/commands/identity.js +60 -0
  60. package/dist/commands/identity.js.map +1 -0
  61. package/dist/commands/install.d.ts +20 -0
  62. package/dist/commands/install.js +247 -0
  63. package/dist/commands/install.js.map +1 -0
  64. package/dist/commands/mcp.d.ts +14 -0
  65. package/dist/commands/mcp.js +2018 -0
  66. package/dist/commands/mcp.js.map +1 -0
  67. package/dist/commands/plan.d.ts +51 -0
  68. package/dist/commands/plan.js +654 -0
  69. package/dist/commands/plan.js.map +1 -0
  70. package/dist/commands/policy.d.ts +24 -0
  71. package/dist/commands/policy.js +587 -0
  72. package/dist/commands/policy.js.map +1 -0
  73. package/dist/commands/quota.d.ts +2 -0
  74. package/dist/commands/quota.js +79 -0
  75. package/dist/commands/quota.js.map +1 -0
  76. package/dist/commands/rules.d.ts +2 -0
  77. package/dist/commands/rules.js +876 -0
  78. package/dist/commands/rules.js.map +1 -0
  79. package/dist/commands/scenes.d.ts +2 -0
  80. package/dist/commands/scenes.js +265 -0
  81. package/dist/commands/scenes.js.map +1 -0
  82. package/dist/commands/schema.d.ts +2 -0
  83. package/dist/commands/schema.js +185 -0
  84. package/dist/commands/schema.js.map +1 -0
  85. package/dist/commands/status-sync.d.ts +2 -0
  86. package/dist/commands/status-sync.js +132 -0
  87. package/dist/commands/status-sync.js.map +1 -0
  88. package/dist/commands/uninstall.d.ts +20 -0
  89. package/dist/commands/uninstall.js +238 -0
  90. package/dist/commands/uninstall.js.map +1 -0
  91. package/dist/commands/upgrade-check.d.ts +2 -0
  92. package/dist/commands/upgrade-check.js +107 -0
  93. package/dist/commands/upgrade-check.js.map +1 -0
  94. package/dist/commands/watch.d.ts +2 -0
  95. package/dist/commands/watch.js +195 -0
  96. package/dist/commands/watch.js.map +1 -0
  97. package/dist/commands/webhook.d.ts +2 -0
  98. package/dist/commands/webhook.js +183 -0
  99. package/dist/commands/webhook.js.map +1 -0
  100. package/dist/config.d.ts +57 -0
  101. package/dist/config.js +259 -0
  102. package/dist/config.js.map +1 -0
  103. package/dist/credentials/backends/file.d.ts +18 -0
  104. package/dist/credentials/backends/file.js +102 -0
  105. package/dist/credentials/backends/file.js.map +1 -0
  106. package/dist/credentials/backends/linux.d.ts +16 -0
  107. package/dist/credentials/backends/linux.js +130 -0
  108. package/dist/credentials/backends/linux.js.map +1 -0
  109. package/dist/credentials/backends/macos.d.ts +18 -0
  110. package/dist/credentials/backends/macos.js +130 -0
  111. package/dist/credentials/backends/macos.js.map +1 -0
  112. package/dist/credentials/backends/windows.d.ts +23 -0
  113. package/dist/credentials/backends/windows.js +216 -0
  114. package/dist/credentials/backends/windows.js.map +1 -0
  115. package/dist/credentials/keychain.d.ts +83 -0
  116. package/dist/credentials/keychain.js +89 -0
  117. package/dist/credentials/keychain.js.map +1 -0
  118. package/dist/credentials/prime.d.ts +32 -0
  119. package/dist/credentials/prime.js +53 -0
  120. package/dist/credentials/prime.js.map +1 -0
  121. package/dist/devices/cache.d.ts +79 -0
  122. package/dist/devices/cache.js +294 -0
  123. package/dist/devices/cache.js.map +1 -0
  124. package/dist/devices/catalog.d.ts +138 -0
  125. package/dist/devices/catalog.js +768 -0
  126. package/dist/devices/catalog.js.map +1 -0
  127. package/dist/devices/device-meta.d.ts +15 -0
  128. package/dist/devices/device-meta.js +57 -0
  129. package/dist/devices/device-meta.js.map +1 -0
  130. package/dist/devices/history-agg.d.ts +37 -0
  131. package/dist/devices/history-agg.js +139 -0
  132. package/dist/devices/history-agg.js.map +1 -0
  133. package/dist/devices/history-query.d.ts +45 -0
  134. package/dist/devices/history-query.js +182 -0
  135. package/dist/devices/history-query.js.map +1 -0
  136. package/dist/devices/param-validator.d.ts +40 -0
  137. package/dist/devices/param-validator.js +434 -0
  138. package/dist/devices/param-validator.js.map +1 -0
  139. package/dist/devices/resources.d.ts +74 -0
  140. package/dist/devices/resources.js +271 -0
  141. package/dist/devices/resources.js.map +1 -0
  142. package/dist/index.d.ts +1 -0
  143. package/dist/index.js +170 -56946
  144. package/dist/index.js.map +1 -0
  145. package/dist/install/default-steps.d.ts +66 -0
  146. package/dist/install/default-steps.js +258 -0
  147. package/dist/install/default-steps.js.map +1 -0
  148. package/dist/install/preflight.d.ts +60 -0
  149. package/dist/install/preflight.js +213 -0
  150. package/dist/install/preflight.js.map +1 -0
  151. package/dist/install/steps.d.ts +61 -0
  152. package/dist/install/steps.js +68 -0
  153. package/dist/install/steps.js.map +1 -0
  154. package/dist/lib/command-keywords.d.ts +5 -0
  155. package/dist/lib/command-keywords.js +18 -0
  156. package/dist/lib/command-keywords.js.map +1 -0
  157. package/dist/lib/daemon-state.d.ts +24 -0
  158. package/dist/lib/daemon-state.js +47 -0
  159. package/dist/lib/daemon-state.js.map +1 -0
  160. package/dist/lib/destructive-mode.d.ts +2 -0
  161. package/dist/lib/destructive-mode.js +13 -0
  162. package/dist/lib/destructive-mode.js.map +1 -0
  163. package/dist/lib/devices.d.ts +151 -0
  164. package/dist/lib/devices.js +383 -0
  165. package/dist/lib/devices.js.map +1 -0
  166. package/dist/lib/idempotency.d.ts +46 -0
  167. package/dist/lib/idempotency.js +107 -0
  168. package/dist/lib/idempotency.js.map +1 -0
  169. package/dist/lib/plan-store.d.ts +19 -0
  170. package/dist/lib/plan-store.js +69 -0
  171. package/dist/lib/plan-store.js.map +1 -0
  172. package/dist/lib/request-context.d.ts +7 -0
  173. package/dist/lib/request-context.js +13 -0
  174. package/dist/lib/request-context.js.map +1 -0
  175. package/dist/lib/scenes.d.ts +7 -0
  176. package/dist/lib/scenes.js +11 -0
  177. package/dist/lib/scenes.js.map +1 -0
  178. package/dist/logger.d.ts +4 -0
  179. package/dist/logger.js +17 -0
  180. package/dist/logger.js.map +1 -0
  181. package/dist/mcp/device-history.d.ts +36 -0
  182. package/dist/mcp/device-history.js +146 -0
  183. package/dist/mcp/device-history.js.map +1 -0
  184. package/dist/mcp/events-subscription.d.ts +45 -0
  185. package/dist/mcp/events-subscription.js +214 -0
  186. package/dist/mcp/events-subscription.js.map +1 -0
  187. package/dist/mqtt/client.d.ts +25 -0
  188. package/dist/mqtt/client.js +181 -0
  189. package/dist/mqtt/client.js.map +1 -0
  190. package/dist/mqtt/credential.d.ts +16 -0
  191. package/dist/mqtt/credential.js +31 -0
  192. package/dist/mqtt/credential.js.map +1 -0
  193. package/dist/policy/add-rule.d.ts +21 -0
  194. package/dist/policy/add-rule.js +125 -0
  195. package/dist/policy/add-rule.js.map +1 -0
  196. package/dist/policy/diff.d.ts +21 -0
  197. package/dist/policy/diff.js +92 -0
  198. package/dist/policy/diff.js.map +1 -0
  199. package/dist/policy/format.d.ts +6 -0
  200. package/dist/policy/format.js +58 -0
  201. package/dist/policy/format.js.map +1 -0
  202. package/dist/policy/load.d.ts +32 -0
  203. package/dist/policy/load.js +62 -0
  204. package/dist/policy/load.js.map +1 -0
  205. package/dist/policy/migrate.d.ts +21 -0
  206. package/dist/policy/migrate.js +68 -0
  207. package/dist/policy/migrate.js.map +1 -0
  208. package/dist/policy/schema.d.ts +5 -0
  209. package/dist/policy/schema.js +19 -0
  210. package/dist/policy/schema.js.map +1 -0
  211. package/dist/policy/validate.d.ts +19 -0
  212. package/dist/policy/validate.js +263 -0
  213. package/dist/policy/validate.js.map +1 -0
  214. package/dist/rules/action.d.ts +65 -0
  215. package/dist/rules/action.js +217 -0
  216. package/dist/rules/action.js.map +1 -0
  217. package/dist/rules/audit-query.d.ts +51 -0
  218. package/dist/rules/audit-query.js +90 -0
  219. package/dist/rules/audit-query.js.map +1 -0
  220. package/dist/rules/conflict-analyzer.d.ts +57 -0
  221. package/dist/rules/conflict-analyzer.js +215 -0
  222. package/dist/rules/conflict-analyzer.js.map +1 -0
  223. package/dist/rules/cron-scheduler.d.ts +62 -0
  224. package/dist/rules/cron-scheduler.js +187 -0
  225. package/dist/rules/cron-scheduler.js.map +1 -0
  226. package/dist/rules/destructive.d.ts +20 -0
  227. package/dist/rules/destructive.js +53 -0
  228. package/dist/rules/destructive.js.map +1 -0
  229. package/dist/rules/engine.d.ts +193 -0
  230. package/dist/rules/engine.js +758 -0
  231. package/dist/rules/engine.js.map +1 -0
  232. package/dist/rules/matcher.d.ts +56 -0
  233. package/dist/rules/matcher.js +231 -0
  234. package/dist/rules/matcher.js.map +1 -0
  235. package/dist/rules/pid-file.d.ts +43 -0
  236. package/dist/rules/pid-file.js +96 -0
  237. package/dist/rules/pid-file.js.map +1 -0
  238. package/dist/rules/quiet-hours.d.ts +26 -0
  239. package/dist/rules/quiet-hours.js +46 -0
  240. package/dist/rules/quiet-hours.js.map +1 -0
  241. package/dist/rules/suggest.d.ts +20 -0
  242. package/dist/rules/suggest.js +96 -0
  243. package/dist/rules/suggest.js.map +1 -0
  244. package/dist/rules/throttle.d.ts +61 -0
  245. package/dist/rules/throttle.js +117 -0
  246. package/dist/rules/throttle.js.map +1 -0
  247. package/dist/rules/types.d.ts +117 -0
  248. package/dist/rules/types.js +35 -0
  249. package/dist/rules/types.js.map +1 -0
  250. package/dist/rules/webhook-listener.d.ts +63 -0
  251. package/dist/rules/webhook-listener.js +224 -0
  252. package/dist/rules/webhook-listener.js.map +1 -0
  253. package/dist/rules/webhook-token.d.ts +50 -0
  254. package/dist/rules/webhook-token.js +91 -0
  255. package/dist/rules/webhook-token.js.map +1 -0
  256. package/dist/schema/field-aliases.d.ts +34 -0
  257. package/dist/schema/field-aliases.js +132 -0
  258. package/dist/schema/field-aliases.js.map +1 -0
  259. package/dist/sinks/dispatcher.d.ts +7 -0
  260. package/dist/sinks/dispatcher.js +13 -0
  261. package/dist/sinks/dispatcher.js.map +1 -0
  262. package/dist/sinks/file.d.ts +6 -0
  263. package/dist/sinks/file.js +20 -0
  264. package/dist/sinks/file.js.map +1 -0
  265. package/dist/sinks/format.d.ts +20 -0
  266. package/dist/sinks/format.js +57 -0
  267. package/dist/sinks/format.js.map +1 -0
  268. package/dist/sinks/homeassistant.d.ts +18 -0
  269. package/dist/sinks/homeassistant.js +45 -0
  270. package/dist/sinks/homeassistant.js.map +1 -0
  271. package/dist/sinks/openclaw.d.ts +13 -0
  272. package/dist/sinks/openclaw.js +34 -0
  273. package/dist/sinks/openclaw.js.map +1 -0
  274. package/dist/sinks/stdout.d.ts +4 -0
  275. package/dist/sinks/stdout.js +6 -0
  276. package/dist/sinks/stdout.js.map +1 -0
  277. package/dist/sinks/telegram.d.ts +11 -0
  278. package/dist/sinks/telegram.js +29 -0
  279. package/dist/sinks/telegram.js.map +1 -0
  280. package/dist/sinks/types.d.ts +13 -0
  281. package/dist/sinks/types.js +2 -0
  282. package/dist/sinks/types.js.map +1 -0
  283. package/dist/sinks/webhook.d.ts +6 -0
  284. package/dist/sinks/webhook.js +23 -0
  285. package/dist/sinks/webhook.js.map +1 -0
  286. package/dist/status-sync/manager.d.ts +48 -0
  287. package/dist/status-sync/manager.js +269 -0
  288. package/dist/status-sync/manager.js.map +1 -0
  289. package/dist/utils/arg-parsers.d.ts +16 -0
  290. package/dist/utils/arg-parsers.js +67 -0
  291. package/dist/utils/arg-parsers.js.map +1 -0
  292. package/dist/utils/audit.d.ts +69 -0
  293. package/dist/utils/audit.js +122 -0
  294. package/dist/utils/audit.js.map +1 -0
  295. package/dist/utils/filter.d.ts +81 -0
  296. package/dist/utils/filter.js +190 -0
  297. package/dist/utils/filter.js.map +1 -0
  298. package/dist/utils/flags.d.ts +72 -0
  299. package/dist/utils/flags.js +187 -0
  300. package/dist/utils/flags.js.map +1 -0
  301. package/dist/utils/format.d.ts +9 -0
  302. package/dist/utils/format.js +118 -0
  303. package/dist/utils/format.js.map +1 -0
  304. package/dist/utils/health.d.ts +48 -0
  305. package/dist/utils/health.js +102 -0
  306. package/dist/utils/health.js.map +1 -0
  307. package/dist/utils/help-json.d.ts +39 -0
  308. package/dist/utils/help-json.js +55 -0
  309. package/dist/utils/help-json.js.map +1 -0
  310. package/dist/utils/name-resolver.d.ts +26 -0
  311. package/dist/utils/name-resolver.js +138 -0
  312. package/dist/utils/name-resolver.js.map +1 -0
  313. package/dist/utils/output.d.ts +73 -0
  314. package/dist/utils/output.js +405 -0
  315. package/dist/utils/output.js.map +1 -0
  316. package/dist/utils/quota.d.ts +61 -0
  317. package/dist/utils/quota.js +228 -0
  318. package/dist/utils/quota.js.map +1 -0
  319. package/dist/utils/redact.d.ts +23 -0
  320. package/dist/utils/redact.js +69 -0
  321. package/dist/utils/redact.js.map +1 -0
  322. package/dist/utils/retry.d.ts +72 -0
  323. package/dist/utils/retry.js +141 -0
  324. package/dist/utils/retry.js.map +1 -0
  325. package/dist/utils/string.d.ts +2 -0
  326. package/dist/utils/string.js +23 -0
  327. package/dist/utils/string.js.map +1 -0
  328. package/dist/version.d.ts +2 -0
  329. package/dist/version.js +5 -0
  330. package/dist/version.js.map +1 -0
  331. package/package.json +2 -2
@@ -0,0 +1,271 @@
1
+ /**
2
+ * Declarative metadata for non-device resources exposed by the SwitchBot API:
3
+ * scenes, webhooks, and keypad credentials ("keys").
4
+ *
5
+ * Consumed by `capabilities --json` and `schema export` so AI agents can
6
+ * discover these surfaces the same way they discover device commands.
7
+ *
8
+ * Scope:
9
+ * - Descriptive metadata only (no runtime execution — CLI/MCP handlers stay
10
+ * source-of-truth for behavior).
11
+ * - Webhook event list is derived from the device catalog and is advisory —
12
+ * not every SwitchBot device actually pushes every listed event; refer to
13
+ * the SwitchBot webhook docs for authoritative shapes.
14
+ */
15
+ const COMMON_WEBHOOK_FIELDS = [
16
+ { name: 'deviceType', type: 'string', description: 'SwitchBot device type string', example: 'WoMeter' },
17
+ { name: 'deviceMac', type: 'string', description: 'Bluetooth MAC address (uppercase, colon-separated)', example: 'AA:BB:CC:11:22:33' },
18
+ { name: 'timeOfSample', type: 'timestamp', description: 'Millisecond Unix timestamp when the sample was taken', example: 1700000000000 },
19
+ ];
20
+ export const RESOURCE_CATALOG = {
21
+ scenes: {
22
+ description: 'Manual scenes (IFTTT-style rules) authored in the SwitchBot app. Execution is fire-and-forget from the cloud — side-effects happen on the user\'s devices.',
23
+ operations: [
24
+ {
25
+ verb: 'list',
26
+ method: 'GET',
27
+ endpoint: '/v1.1/scenes',
28
+ params: [],
29
+ safetyTier: 'read',
30
+ },
31
+ {
32
+ verb: 'execute',
33
+ method: 'POST',
34
+ endpoint: '/v1.1/scenes/{sceneId}/execute',
35
+ params: [{ name: 'sceneId', required: true, type: 'string' }],
36
+ safetyTier: 'mutation',
37
+ },
38
+ {
39
+ verb: 'describe',
40
+ method: 'GET',
41
+ endpoint: '/v1.1/scenes/{sceneId}',
42
+ params: [{ name: 'sceneId', required: true, type: 'string' }],
43
+ safetyTier: 'read',
44
+ },
45
+ ],
46
+ },
47
+ webhooks: {
48
+ endpoints: [
49
+ {
50
+ verb: 'setup',
51
+ method: 'POST',
52
+ path: '/v1.1/webhook/setupWebhook',
53
+ safetyTier: 'mutation',
54
+ requiredParams: ['url'],
55
+ },
56
+ {
57
+ verb: 'query',
58
+ method: 'POST',
59
+ path: '/v1.1/webhook/queryWebhook',
60
+ safetyTier: 'read',
61
+ requiredParams: ['action'],
62
+ },
63
+ {
64
+ verb: 'update',
65
+ method: 'POST',
66
+ path: '/v1.1/webhook/updateWebhook',
67
+ safetyTier: 'mutation',
68
+ requiredParams: ['url', 'enable'],
69
+ },
70
+ {
71
+ verb: 'delete',
72
+ method: 'POST',
73
+ path: '/v1.1/webhook/deleteWebhook',
74
+ safetyTier: 'destructive',
75
+ requiredParams: ['url'],
76
+ },
77
+ ],
78
+ events: [
79
+ {
80
+ eventType: 'WoMeter',
81
+ devicePattern: 'Meter / Meter Plus / Indoor-Outdoor Meter',
82
+ fields: [
83
+ ...COMMON_WEBHOOK_FIELDS,
84
+ { name: 'temperature', type: 'number', description: 'Ambient temperature in Celsius', example: 22.5 },
85
+ { name: 'humidity', type: 'number', description: 'Relative humidity (%)', example: 45 },
86
+ { name: 'battery', type: 'number', description: 'Battery remaining (%)', example: 88 },
87
+ ],
88
+ },
89
+ {
90
+ eventType: 'WoCO2Sensor',
91
+ devicePattern: 'CO2 Monitor',
92
+ fields: [
93
+ ...COMMON_WEBHOOK_FIELDS,
94
+ { name: 'CO2', type: 'number', description: 'CO2 concentration in ppm', example: 520 },
95
+ { name: 'temperature', type: 'number', description: 'Ambient temperature in Celsius' },
96
+ { name: 'humidity', type: 'number', description: 'Relative humidity (%)' },
97
+ ],
98
+ },
99
+ {
100
+ eventType: 'WoPresence',
101
+ devicePattern: 'Motion Sensor / Video Doorbell motion',
102
+ fields: [
103
+ ...COMMON_WEBHOOK_FIELDS,
104
+ { name: 'detectionState', type: 'string', description: 'Detection result word', example: 'DETECTED' },
105
+ ],
106
+ },
107
+ {
108
+ eventType: 'WoContact',
109
+ devicePattern: 'Contact Sensor',
110
+ fields: [
111
+ ...COMMON_WEBHOOK_FIELDS,
112
+ { name: 'openState', type: 'string', description: 'Door/window state', example: 'open' },
113
+ { name: 'moveDetected', type: 'boolean', description: 'Motion detected during this sample' },
114
+ ],
115
+ },
116
+ {
117
+ eventType: 'WoLock',
118
+ devicePattern: 'Smart Lock / Smart Lock Lite / Smart Lock Pro',
119
+ fields: [
120
+ ...COMMON_WEBHOOK_FIELDS,
121
+ { name: 'lockState', type: 'string', description: 'Lock state: locked, unlocked, jammed', example: 'locked' },
122
+ { name: 'battery', type: 'number', description: 'Battery remaining (%)' },
123
+ ],
124
+ },
125
+ {
126
+ eventType: 'WoPlug',
127
+ devicePattern: 'Plug Mini / Plug / Relay Switch',
128
+ fields: [
129
+ ...COMMON_WEBHOOK_FIELDS,
130
+ { name: 'power', type: 'string', description: 'Power state (on/off)', example: 'on' },
131
+ { name: 'voltage', type: 'number', description: 'Instantaneous voltage (V)' },
132
+ { name: 'electricCurrent', type: 'number', description: 'Instantaneous current (A)' },
133
+ ],
134
+ },
135
+ {
136
+ eventType: 'WoBot',
137
+ devicePattern: 'Bot',
138
+ fields: [
139
+ ...COMMON_WEBHOOK_FIELDS,
140
+ { name: 'power', type: 'string', description: 'Power state (on/off)' },
141
+ { name: 'battery', type: 'number', description: 'Battery remaining (%)' },
142
+ ],
143
+ },
144
+ {
145
+ eventType: 'WoCurtain',
146
+ devicePattern: 'Curtain / Blind Tilt / Roller Shade',
147
+ fields: [
148
+ ...COMMON_WEBHOOK_FIELDS,
149
+ { name: 'slidePosition', type: 'number', description: 'Current slide position (0–100)' },
150
+ { name: 'calibrate', type: 'boolean', description: 'True if device is calibrated' },
151
+ ],
152
+ },
153
+ {
154
+ eventType: 'WoDoorbell',
155
+ devicePattern: 'Video Doorbell button press',
156
+ fields: [
157
+ ...COMMON_WEBHOOK_FIELDS,
158
+ { name: 'buttonName', type: 'string', description: 'Identifier of the pressed button' },
159
+ { name: 'pressedAt', type: 'timestamp', description: 'Press timestamp in milliseconds' },
160
+ ],
161
+ },
162
+ {
163
+ eventType: 'WoKeypad',
164
+ devicePattern: 'Keypad scan / createKey result / deleteKey result',
165
+ fields: [
166
+ ...COMMON_WEBHOOK_FIELDS,
167
+ { name: 'eventType', type: 'string', description: 'Sub-event (createKey / deleteKey / invalidCode)' },
168
+ { name: 'commandId', type: 'string', description: 'Correlation id returned by the original command' },
169
+ { name: 'result', type: 'string', description: 'Outcome (success / failed / timeout)' },
170
+ ],
171
+ },
172
+ {
173
+ eventType: 'WoColorBulb',
174
+ devicePattern: 'Color Bulb',
175
+ fields: [
176
+ ...COMMON_WEBHOOK_FIELDS,
177
+ { name: 'power', type: 'string', description: 'Power state (on/off)' },
178
+ { name: 'brightness', type: 'number', description: 'Brightness (0–100)' },
179
+ { name: 'color', type: 'string', description: 'RGB triplet "r:g:b"' },
180
+ { name: 'colorTemperature', type: 'number', description: 'Color temperature in Kelvin' },
181
+ ],
182
+ },
183
+ {
184
+ eventType: 'WoStrip',
185
+ devicePattern: 'Strip Light',
186
+ fields: [
187
+ ...COMMON_WEBHOOK_FIELDS,
188
+ { name: 'power', type: 'string', description: 'Power state (on/off)' },
189
+ { name: 'brightness', type: 'number', description: 'Brightness (0–100)' },
190
+ { name: 'color', type: 'string', description: 'RGB triplet "r:g:b"' },
191
+ ],
192
+ },
193
+ {
194
+ eventType: 'WoSweeper',
195
+ devicePattern: 'Robot Vacuum',
196
+ fields: [
197
+ ...COMMON_WEBHOOK_FIELDS,
198
+ { name: 'workingStatus', type: 'string', description: 'Cleaning state' },
199
+ { name: 'battery', type: 'number', description: 'Battery remaining (%)' },
200
+ { name: 'taskType', type: 'string', description: 'Current task (standby / clean / charge)' },
201
+ ],
202
+ },
203
+ {
204
+ eventType: 'WoWaterLeakDetect',
205
+ devicePattern: 'Water Leak Detector',
206
+ fields: [
207
+ ...COMMON_WEBHOOK_FIELDS,
208
+ { name: 'waterLeakDetect', type: 'number', description: 'Leak flag (0 = dry, 1 = leak detected)' },
209
+ { name: 'battery', type: 'number', description: 'Battery remaining (%)' },
210
+ ],
211
+ },
212
+ {
213
+ eventType: 'WoHub',
214
+ devicePattern: 'Hub 2 / Hub 3 (ambient sensors)',
215
+ fields: [
216
+ ...COMMON_WEBHOOK_FIELDS,
217
+ { name: 'temperature', type: 'number', description: 'Ambient temperature in Celsius' },
218
+ { name: 'humidity', type: 'number', description: 'Relative humidity (%)' },
219
+ { name: 'lightLevel', type: 'number', description: 'Illuminance level' },
220
+ ],
221
+ },
222
+ ],
223
+ constraints: {
224
+ maxUrlLength: 2048,
225
+ maxWebhooksPerAccount: 1,
226
+ },
227
+ },
228
+ keys: [
229
+ {
230
+ keyType: 'permanent',
231
+ description: 'Passcode that never expires — valid until manually deleted.',
232
+ requiredParams: ['name', 'password'],
233
+ optionalParams: [],
234
+ supportedDevices: ['Keypad', 'Keypad Touch'],
235
+ safetyTier: 'destructive',
236
+ },
237
+ {
238
+ keyType: 'timeLimit',
239
+ description: 'Passcode valid only between startTime and endTime (Unix seconds).',
240
+ requiredParams: ['name', 'password', 'startTime', 'endTime'],
241
+ optionalParams: [],
242
+ supportedDevices: ['Keypad', 'Keypad Touch'],
243
+ safetyTier: 'destructive',
244
+ },
245
+ {
246
+ keyType: 'disposable',
247
+ description: 'Passcode that can be used once and then auto-expires.',
248
+ requiredParams: ['name', 'password'],
249
+ optionalParams: ['startTime', 'endTime'],
250
+ supportedDevices: ['Keypad', 'Keypad Touch'],
251
+ safetyTier: 'destructive',
252
+ },
253
+ {
254
+ keyType: 'urgent',
255
+ description: 'Emergency passcode (typically tied to panic / audit workflow).',
256
+ requiredParams: ['name', 'password'],
257
+ optionalParams: [],
258
+ supportedDevices: ['Keypad', 'Keypad Touch'],
259
+ safetyTier: 'destructive',
260
+ },
261
+ ],
262
+ };
263
+ /** Convenience: return the list of known webhook event types. */
264
+ export function listWebhookEventTypes() {
265
+ return RESOURCE_CATALOG.webhooks.events.map((e) => e.eventType);
266
+ }
267
+ /** Convenience: return the list of supported keypad key types. */
268
+ export function listKeyTypes() {
269
+ return RESOURCE_CATALOG.keys.map((k) => k.keyType);
270
+ }
271
+ //# sourceMappingURL=resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/devices/resources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};