@switchbot/openapi-cli 3.1.1 → 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 (333) hide show
  1. package/README.md +3 -3
  2. package/dist/api/client.d.ts +31 -0
  3. package/dist/api/client.js +1 -0
  4. package/dist/api/client.js.map +1 -0
  5. package/dist/auth.d.ts +1 -0
  6. package/dist/auth.js +1 -0
  7. package/dist/auth.js.map +1 -0
  8. package/dist/commands/agent-bootstrap.d.ts +10 -0
  9. package/dist/commands/agent-bootstrap.js +23 -5
  10. package/dist/commands/agent-bootstrap.js.map +1 -0
  11. package/dist/commands/auth.d.ts +18 -0
  12. package/dist/commands/auth.js +1 -0
  13. package/dist/commands/auth.js.map +1 -0
  14. package/dist/commands/batch.d.ts +2 -0
  15. package/dist/commands/batch.js +1 -0
  16. package/dist/commands/batch.js.map +1 -0
  17. package/dist/commands/cache.d.ts +2 -0
  18. package/dist/commands/cache.js +1 -0
  19. package/dist/commands/cache.js.map +1 -0
  20. package/dist/commands/capabilities.d.ts +31 -0
  21. package/dist/commands/capabilities.js +5 -7
  22. package/dist/commands/capabilities.js.map +1 -0
  23. package/dist/commands/catalog.d.ts +2 -0
  24. package/dist/commands/catalog.js +1 -0
  25. package/dist/commands/catalog.js.map +1 -0
  26. package/dist/commands/completion.d.ts +2 -0
  27. package/dist/commands/completion.js +1 -0
  28. package/dist/commands/completion.js.map +1 -0
  29. package/dist/commands/config.d.ts +21 -0
  30. package/dist/commands/config.js +1 -0
  31. package/dist/commands/config.js.map +1 -0
  32. package/dist/commands/daemon.d.ts +2 -0
  33. package/dist/commands/daemon.js +1 -0
  34. package/dist/commands/daemon.js.map +1 -0
  35. package/dist/commands/device-meta.d.ts +2 -0
  36. package/dist/commands/device-meta.js +1 -0
  37. package/dist/commands/device-meta.js.map +1 -0
  38. package/dist/commands/devices.d.ts +2 -0
  39. package/dist/commands/devices.js +1 -0
  40. package/dist/commands/devices.js.map +1 -0
  41. package/dist/commands/doctor.d.ts +3 -0
  42. package/dist/commands/doctor.js +1 -0
  43. package/dist/commands/doctor.js.map +1 -0
  44. package/dist/commands/events.d.ts +31 -0
  45. package/dist/commands/events.js +1 -0
  46. package/dist/commands/events.js.map +1 -0
  47. package/dist/commands/expand.d.ts +2 -0
  48. package/dist/commands/expand.js +1 -0
  49. package/dist/commands/expand.js.map +1 -0
  50. package/dist/commands/explain.d.ts +2 -0
  51. package/dist/commands/explain.js +1 -0
  52. package/dist/commands/explain.js.map +1 -0
  53. package/dist/commands/health.d.ts +8 -0
  54. package/dist/commands/health.js +1 -0
  55. package/dist/commands/health.js.map +1 -0
  56. package/dist/commands/history.d.ts +2 -0
  57. package/dist/commands/history.js +1 -0
  58. package/dist/commands/history.js.map +1 -0
  59. package/dist/commands/identity.d.ts +45 -0
  60. package/dist/commands/identity.js +1 -0
  61. package/dist/commands/identity.js.map +1 -0
  62. package/dist/commands/install.d.ts +20 -0
  63. package/dist/commands/install.js +1 -0
  64. package/dist/commands/install.js.map +1 -0
  65. package/dist/commands/mcp.d.ts +14 -0
  66. package/dist/commands/mcp.js +1 -0
  67. package/dist/commands/mcp.js.map +1 -0
  68. package/dist/commands/plan.d.ts +51 -0
  69. package/dist/commands/plan.js +1 -0
  70. package/dist/commands/plan.js.map +1 -0
  71. package/dist/commands/policy.d.ts +24 -0
  72. package/dist/commands/policy.js +1 -0
  73. package/dist/commands/policy.js.map +1 -0
  74. package/dist/commands/quota.d.ts +2 -0
  75. package/dist/commands/quota.js +1 -0
  76. package/dist/commands/quota.js.map +1 -0
  77. package/dist/commands/rules.d.ts +2 -0
  78. package/dist/commands/rules.js +1 -0
  79. package/dist/commands/rules.js.map +1 -0
  80. package/dist/commands/scenes.d.ts +2 -0
  81. package/dist/commands/scenes.js +1 -0
  82. package/dist/commands/scenes.js.map +1 -0
  83. package/dist/commands/schema.d.ts +2 -0
  84. package/dist/commands/schema.js +10 -2
  85. package/dist/commands/schema.js.map +1 -0
  86. package/dist/commands/status-sync.d.ts +2 -0
  87. package/dist/commands/status-sync.js +1 -0
  88. package/dist/commands/status-sync.js.map +1 -0
  89. package/dist/commands/uninstall.d.ts +20 -0
  90. package/dist/commands/uninstall.js +1 -0
  91. package/dist/commands/uninstall.js.map +1 -0
  92. package/dist/commands/upgrade-check.d.ts +2 -0
  93. package/dist/commands/upgrade-check.js +3 -3
  94. package/dist/commands/upgrade-check.js.map +1 -0
  95. package/dist/commands/watch.d.ts +2 -0
  96. package/dist/commands/watch.js +1 -0
  97. package/dist/commands/watch.js.map +1 -0
  98. package/dist/commands/webhook.d.ts +2 -0
  99. package/dist/commands/webhook.js +1 -0
  100. package/dist/commands/webhook.js.map +1 -0
  101. package/dist/config.d.ts +57 -0
  102. package/dist/config.js +1 -0
  103. package/dist/config.js.map +1 -0
  104. package/dist/credentials/backends/file.d.ts +18 -0
  105. package/dist/credentials/backends/file.js +1 -0
  106. package/dist/credentials/backends/file.js.map +1 -0
  107. package/dist/credentials/backends/linux.d.ts +16 -0
  108. package/dist/credentials/backends/linux.js +1 -0
  109. package/dist/credentials/backends/linux.js.map +1 -0
  110. package/dist/credentials/backends/macos.d.ts +18 -0
  111. package/dist/credentials/backends/macos.js +1 -0
  112. package/dist/credentials/backends/macos.js.map +1 -0
  113. package/dist/credentials/backends/windows.d.ts +23 -0
  114. package/dist/credentials/backends/windows.js +1 -0
  115. package/dist/credentials/backends/windows.js.map +1 -0
  116. package/dist/credentials/keychain.d.ts +83 -0
  117. package/dist/credentials/keychain.js +1 -0
  118. package/dist/credentials/keychain.js.map +1 -0
  119. package/dist/credentials/prime.d.ts +32 -0
  120. package/dist/credentials/prime.js +1 -0
  121. package/dist/credentials/prime.js.map +1 -0
  122. package/dist/devices/cache.d.ts +79 -0
  123. package/dist/devices/cache.js +1 -0
  124. package/dist/devices/cache.js.map +1 -0
  125. package/dist/devices/catalog.d.ts +138 -0
  126. package/dist/devices/catalog.js +1 -0
  127. package/dist/devices/catalog.js.map +1 -0
  128. package/dist/devices/device-meta.d.ts +15 -0
  129. package/dist/devices/device-meta.js +1 -0
  130. package/dist/devices/device-meta.js.map +1 -0
  131. package/dist/devices/history-agg.d.ts +37 -0
  132. package/dist/devices/history-agg.js +1 -0
  133. package/dist/devices/history-agg.js.map +1 -0
  134. package/dist/devices/history-query.d.ts +45 -0
  135. package/dist/devices/history-query.js +1 -0
  136. package/dist/devices/history-query.js.map +1 -0
  137. package/dist/devices/param-validator.d.ts +40 -0
  138. package/dist/devices/param-validator.js +1 -0
  139. package/dist/devices/param-validator.js.map +1 -0
  140. package/dist/devices/resources.d.ts +74 -0
  141. package/dist/devices/resources.js +1 -0
  142. package/dist/devices/resources.js.map +1 -0
  143. package/dist/index.d.ts +1 -0
  144. package/dist/index.js +1 -1
  145. package/dist/index.js.map +1 -0
  146. package/dist/install/default-steps.d.ts +66 -0
  147. package/dist/install/default-steps.js +1 -0
  148. package/dist/install/default-steps.js.map +1 -0
  149. package/dist/install/preflight.d.ts +60 -0
  150. package/dist/install/preflight.js +1 -0
  151. package/dist/install/preflight.js.map +1 -0
  152. package/dist/install/steps.d.ts +61 -0
  153. package/dist/install/steps.js +1 -0
  154. package/dist/install/steps.js.map +1 -0
  155. package/dist/lib/command-keywords.d.ts +5 -0
  156. package/dist/lib/command-keywords.js +1 -0
  157. package/dist/lib/command-keywords.js.map +1 -0
  158. package/dist/lib/daemon-state.d.ts +24 -0
  159. package/dist/lib/daemon-state.js +1 -0
  160. package/dist/lib/daemon-state.js.map +1 -0
  161. package/dist/lib/destructive-mode.d.ts +2 -0
  162. package/dist/lib/destructive-mode.js +1 -0
  163. package/dist/lib/destructive-mode.js.map +1 -0
  164. package/dist/lib/devices.d.ts +151 -0
  165. package/dist/lib/devices.js +1 -0
  166. package/dist/lib/devices.js.map +1 -0
  167. package/dist/lib/idempotency.d.ts +46 -0
  168. package/dist/lib/idempotency.js +1 -0
  169. package/dist/lib/idempotency.js.map +1 -0
  170. package/dist/lib/plan-store.d.ts +19 -0
  171. package/dist/lib/plan-store.js +1 -0
  172. package/dist/lib/plan-store.js.map +1 -0
  173. package/dist/lib/request-context.d.ts +7 -0
  174. package/dist/lib/request-context.js +1 -0
  175. package/dist/lib/request-context.js.map +1 -0
  176. package/dist/lib/scenes.d.ts +7 -0
  177. package/dist/lib/scenes.js +1 -0
  178. package/dist/lib/scenes.js.map +1 -0
  179. package/dist/logger.d.ts +4 -0
  180. package/dist/logger.js +1 -0
  181. package/dist/logger.js.map +1 -0
  182. package/dist/mcp/device-history.d.ts +36 -0
  183. package/dist/mcp/device-history.js +1 -0
  184. package/dist/mcp/device-history.js.map +1 -0
  185. package/dist/mcp/events-subscription.d.ts +45 -0
  186. package/dist/mcp/events-subscription.js +1 -0
  187. package/dist/mcp/events-subscription.js.map +1 -0
  188. package/dist/mqtt/client.d.ts +25 -0
  189. package/dist/mqtt/client.js +1 -0
  190. package/dist/mqtt/client.js.map +1 -0
  191. package/dist/mqtt/credential.d.ts +16 -0
  192. package/dist/mqtt/credential.js +1 -0
  193. package/dist/mqtt/credential.js.map +1 -0
  194. package/dist/policy/add-rule.d.ts +21 -0
  195. package/dist/policy/add-rule.js +1 -0
  196. package/dist/policy/add-rule.js.map +1 -0
  197. package/dist/policy/diff.d.ts +21 -0
  198. package/dist/policy/diff.js +1 -0
  199. package/dist/policy/diff.js.map +1 -0
  200. package/dist/policy/format.d.ts +6 -0
  201. package/dist/policy/format.js +1 -0
  202. package/dist/policy/format.js.map +1 -0
  203. package/dist/policy/load.d.ts +32 -0
  204. package/dist/policy/load.js +1 -0
  205. package/dist/policy/load.js.map +1 -0
  206. package/dist/policy/migrate.d.ts +21 -0
  207. package/dist/policy/migrate.js +1 -0
  208. package/dist/policy/migrate.js.map +1 -0
  209. package/dist/policy/schema/v0.2.json +1 -1
  210. package/dist/policy/schema.d.ts +5 -0
  211. package/dist/policy/schema.js +1 -0
  212. package/dist/policy/schema.js.map +1 -0
  213. package/dist/policy/validate.d.ts +19 -0
  214. package/dist/policy/validate.js +1 -0
  215. package/dist/policy/validate.js.map +1 -0
  216. package/dist/rules/action.d.ts +65 -0
  217. package/dist/rules/action.js +1 -0
  218. package/dist/rules/action.js.map +1 -0
  219. package/dist/rules/audit-query.d.ts +51 -0
  220. package/dist/rules/audit-query.js +1 -0
  221. package/dist/rules/audit-query.js.map +1 -0
  222. package/dist/rules/conflict-analyzer.d.ts +57 -0
  223. package/dist/rules/conflict-analyzer.js +1 -0
  224. package/dist/rules/conflict-analyzer.js.map +1 -0
  225. package/dist/rules/cron-scheduler.d.ts +62 -0
  226. package/dist/rules/cron-scheduler.js +1 -0
  227. package/dist/rules/cron-scheduler.js.map +1 -0
  228. package/dist/rules/destructive.d.ts +20 -0
  229. package/dist/rules/destructive.js +1 -0
  230. package/dist/rules/destructive.js.map +1 -0
  231. package/dist/rules/engine.d.ts +193 -0
  232. package/dist/rules/engine.js +1 -0
  233. package/dist/rules/engine.js.map +1 -0
  234. package/dist/rules/matcher.d.ts +56 -0
  235. package/dist/rules/matcher.js +1 -0
  236. package/dist/rules/matcher.js.map +1 -0
  237. package/dist/rules/pid-file.d.ts +43 -0
  238. package/dist/rules/pid-file.js +1 -0
  239. package/dist/rules/pid-file.js.map +1 -0
  240. package/dist/rules/quiet-hours.d.ts +26 -0
  241. package/dist/rules/quiet-hours.js +1 -0
  242. package/dist/rules/quiet-hours.js.map +1 -0
  243. package/dist/rules/suggest.d.ts +20 -0
  244. package/dist/rules/suggest.js +1 -0
  245. package/dist/rules/suggest.js.map +1 -0
  246. package/dist/rules/throttle.d.ts +61 -0
  247. package/dist/rules/throttle.js +1 -0
  248. package/dist/rules/throttle.js.map +1 -0
  249. package/dist/rules/types.d.ts +117 -0
  250. package/dist/rules/types.js +1 -0
  251. package/dist/rules/types.js.map +1 -0
  252. package/dist/rules/webhook-listener.d.ts +63 -0
  253. package/dist/rules/webhook-listener.js +1 -0
  254. package/dist/rules/webhook-listener.js.map +1 -0
  255. package/dist/rules/webhook-token.d.ts +50 -0
  256. package/dist/rules/webhook-token.js +1 -0
  257. package/dist/rules/webhook-token.js.map +1 -0
  258. package/dist/schema/field-aliases.d.ts +34 -0
  259. package/dist/schema/field-aliases.js +1 -0
  260. package/dist/schema/field-aliases.js.map +1 -0
  261. package/dist/sinks/dispatcher.d.ts +7 -0
  262. package/dist/sinks/dispatcher.js +1 -0
  263. package/dist/sinks/dispatcher.js.map +1 -0
  264. package/dist/sinks/file.d.ts +6 -0
  265. package/dist/sinks/file.js +1 -0
  266. package/dist/sinks/file.js.map +1 -0
  267. package/dist/sinks/format.d.ts +20 -0
  268. package/dist/sinks/format.js +1 -0
  269. package/dist/sinks/format.js.map +1 -0
  270. package/dist/sinks/homeassistant.d.ts +18 -0
  271. package/dist/sinks/homeassistant.js +1 -0
  272. package/dist/sinks/homeassistant.js.map +1 -0
  273. package/dist/sinks/openclaw.d.ts +13 -0
  274. package/dist/sinks/openclaw.js +1 -0
  275. package/dist/sinks/openclaw.js.map +1 -0
  276. package/dist/sinks/stdout.d.ts +4 -0
  277. package/dist/sinks/stdout.js +1 -0
  278. package/dist/sinks/stdout.js.map +1 -0
  279. package/dist/sinks/telegram.d.ts +11 -0
  280. package/dist/sinks/telegram.js +1 -0
  281. package/dist/sinks/telegram.js.map +1 -0
  282. package/dist/sinks/types.d.ts +13 -0
  283. package/dist/sinks/types.js +1 -0
  284. package/dist/sinks/types.js.map +1 -0
  285. package/dist/sinks/webhook.d.ts +6 -0
  286. package/dist/sinks/webhook.js +1 -0
  287. package/dist/sinks/webhook.js.map +1 -0
  288. package/dist/status-sync/manager.d.ts +48 -0
  289. package/dist/status-sync/manager.js +1 -0
  290. package/dist/status-sync/manager.js.map +1 -0
  291. package/dist/utils/arg-parsers.d.ts +16 -0
  292. package/dist/utils/arg-parsers.js +1 -0
  293. package/dist/utils/arg-parsers.js.map +1 -0
  294. package/dist/utils/audit.d.ts +69 -0
  295. package/dist/utils/audit.js +1 -0
  296. package/dist/utils/audit.js.map +1 -0
  297. package/dist/utils/filter.d.ts +81 -0
  298. package/dist/utils/filter.js +1 -0
  299. package/dist/utils/filter.js.map +1 -0
  300. package/dist/utils/flags.d.ts +72 -0
  301. package/dist/utils/flags.js +1 -0
  302. package/dist/utils/flags.js.map +1 -0
  303. package/dist/utils/format.d.ts +9 -0
  304. package/dist/utils/format.js +1 -0
  305. package/dist/utils/format.js.map +1 -0
  306. package/dist/utils/health.d.ts +48 -0
  307. package/dist/utils/health.js +1 -0
  308. package/dist/utils/health.js.map +1 -0
  309. package/dist/utils/help-json.d.ts +39 -0
  310. package/dist/utils/help-json.js +1 -0
  311. package/dist/utils/help-json.js.map +1 -0
  312. package/dist/utils/name-resolver.d.ts +26 -0
  313. package/dist/utils/name-resolver.js +1 -0
  314. package/dist/utils/name-resolver.js.map +1 -0
  315. package/dist/utils/output.d.ts +73 -0
  316. package/dist/utils/output.js +1 -0
  317. package/dist/utils/output.js.map +1 -0
  318. package/dist/utils/quota.d.ts +61 -0
  319. package/dist/utils/quota.js +1 -0
  320. package/dist/utils/quota.js.map +1 -0
  321. package/dist/utils/redact.d.ts +23 -0
  322. package/dist/utils/redact.js +1 -0
  323. package/dist/utils/redact.js.map +1 -0
  324. package/dist/utils/retry.d.ts +72 -0
  325. package/dist/utils/retry.js +1 -0
  326. package/dist/utils/retry.js.map +1 -0
  327. package/dist/utils/string.d.ts +2 -0
  328. package/dist/utils/string.js +1 -0
  329. package/dist/utils/string.js.map +1 -0
  330. package/dist/version.d.ts +2 -0
  331. package/dist/version.js +1 -0
  332. package/dist/version.js.map +1 -0
  333. package/package.json +4 -3
@@ -0,0 +1,20 @@
1
+ /**
2
+ * `switchbot uninstall` — reverse of `switchbot install`.
3
+ *
4
+ * Unlike install, uninstall is not rollback-safe (there's nothing to
5
+ * roll back to). It removes individual pieces independently and keeps
6
+ * going if any single removal fails — the user gets a report and can
7
+ * clean up leftovers manually. Every destructive step defaults to
8
+ * confirmation; `--yes` skips the prompt.
9
+ *
10
+ * What it removes, from least to most destructive:
11
+ * 1. skill symlink (~/.claude/skills/switchbot) — default: yes
12
+ * 2. credentials (keychain entry for the profile) — default: yes (requires --remove-creds OR --yes)
13
+ * 3. policy.yaml (only on --remove-policy) — default: no (user edits may live here)
14
+ *
15
+ * The CLI itself is never uninstalled: install did not install it,
16
+ * and yanking your own binary mid-run is impolite. Users who want it
17
+ * gone run `npm rm -g @switchbot/openapi-cli`.
18
+ */
19
+ import { Command } from 'commander';
20
+ export declare function registerUninstallCommand(program: Command): void;
@@ -235,3 +235,4 @@ Examples:
235
235
  process.exit(3);
236
236
  });
237
237
  }
238
+ //# sourceMappingURL=uninstall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerUpgradeCheckCommand(program: Command): void;
@@ -1,9 +1,8 @@
1
- import { createRequire } from 'node:module';
2
1
  import https from 'node:https';
3
2
  import { isJsonMode, printJson } from '../utils/output.js';
4
3
  import chalk from 'chalk';
5
- const require = createRequire(import.meta.url);
6
- const { name: pkgName, version: currentVersion } = require('../../package.json');
4
+ import { VERSION as currentVersion } from '../version.js';
5
+ const pkgName = '@switchbot/openapi-cli';
7
6
  function fetchLatestVersion(packageName, timeoutMs = 8000) {
8
7
  const encoded = packageName.replace('/', '%2F');
9
8
  // /latest is shorthand for dist-tags.latest — always the current stable
@@ -105,3 +104,4 @@ export function registerUpgradeCheckCommand(program) {
105
104
  }
106
105
  });
107
106
  }
107
+ //# sourceMappingURL=upgrade-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-check.js","sourceRoot":"","sources":["../../src/commands/upgrade-check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerWatchCommand(devices: Command): void;
@@ -192,3 +192,4 @@ Examples:
192
192
  }
193
193
  });
194
194
  }
195
+ //# sourceMappingURL=watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerWebhookCommand(program: Command): void;
@@ -180,3 +180,4 @@ Example:
180
180
  }
181
181
  });
182
182
  }
183
+ //# sourceMappingURL=webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/commands/webhook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ export interface SwitchBotConfig {
2
+ token: string;
3
+ secret: string;
4
+ label?: string;
5
+ description?: string;
6
+ limits?: {
7
+ dailyCap?: number;
8
+ };
9
+ defaults?: {
10
+ flags?: string[];
11
+ };
12
+ }
13
+ export interface ConfigSummary {
14
+ source: 'env' | 'file' | 'none' | 'invalid';
15
+ path?: string;
16
+ token?: string;
17
+ secret?: string;
18
+ label?: string;
19
+ description?: string;
20
+ dailyCap?: number;
21
+ defaultFlags?: string[];
22
+ }
23
+ /**
24
+ * Credential file resolution priority:
25
+ * 1. --config <path> (absolute override — wins over everything)
26
+ * 2. active profile (ALS request context, else --profile flag) → ~/.switchbot/profiles/<name>.json
27
+ * 3. default → ~/.switchbot/config.json
28
+ *
29
+ * Env SWITCHBOT_TOKEN+SWITCHBOT_SECRET still take priority inside loadConfig.
30
+ */
31
+ export declare function configFilePath(): string;
32
+ export declare function profileFilePath(profile: string): string;
33
+ export declare function listProfiles(): string[];
34
+ export declare function loadConfig(): SwitchBotConfig;
35
+ /**
36
+ * Like loadConfig but returns null instead of exiting. Use this in code paths
37
+ * that want graceful degradation (e.g. optional MQTT init in `mcp serve`).
38
+ */
39
+ export declare function tryLoadConfig(): SwitchBotConfig | null;
40
+ export declare function saveConfig(token: string, secret: string, extras?: Partial<SwitchBotConfig>): void;
41
+ /**
42
+ * Read a profile's metadata (label / description / limits / defaults) without
43
+ * exposing the token/secret. Returns null when the file is missing or invalid.
44
+ */
45
+ export declare function readProfileMeta(profile?: string): {
46
+ label?: string;
47
+ description?: string;
48
+ limits?: {
49
+ dailyCap?: number;
50
+ };
51
+ defaults?: {
52
+ flags?: string[];
53
+ };
54
+ path: string;
55
+ } | null;
56
+ export declare function showConfig(): void;
57
+ export declare function getConfigSummary(): ConfigSummary;
package/dist/config.js CHANGED
@@ -256,3 +256,4 @@ function maskSecret(secret) {
256
256
  return '****';
257
257
  return secret.slice(0, 2) + '*'.repeat(secret.length - 4) + secret.slice(-2);
258
258
  }
259
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * File-backed credential store.
3
+ *
4
+ * Reads/writes the same `~/.switchbot/config.json` shape the CLI has
5
+ * used since v1.0, so a fresh install on a machine without a keychain
6
+ * still works and legacy users can migrate in-place via
7
+ * `switchbot auth keychain migrate` without data loss.
8
+ *
9
+ * Profile layout (inherited from `src/config.ts`):
10
+ * - default profile → `~/.switchbot/config.json`
11
+ * - named profile → `~/.switchbot/profiles/<name>.json`
12
+ *
13
+ * This backend only owns the `token` and `secret` fields — label /
14
+ * description / limits / defaults are preserved on write by merging
15
+ * with the existing JSON, keeping parity with `saveConfig()`.
16
+ */
17
+ import { CredentialStore } from '../keychain.js';
18
+ export declare function createFileBackend(): CredentialStore;
@@ -99,3 +99,4 @@ export function createFileBackend() {
99
99
  },
100
100
  };
101
101
  }
102
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/credentials/backends/file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Linux libsecret backend.
3
+ *
4
+ * Shells out to `secret-tool(1)` — the libsecret CLI shipped by most
5
+ * distros when GNOME Keyring or KWallet is available. We intentionally
6
+ * avoid a native binding so `npm install` doesn't drag in a build
7
+ * toolchain on minimal CI images.
8
+ *
9
+ * On a fresh Linux box without secret-tool installed (or without a
10
+ * secret service daemon running), `linuxAvailable()` returns false and
11
+ * `selectCredentialStore()` falls back to the file backend. We do NOT
12
+ * try to `apt install libsecret-tools` on the user's behalf.
13
+ */
14
+ import { CredentialStore } from '../keychain.js';
15
+ export declare function linuxAvailable(): Promise<boolean>;
16
+ export declare function createLinuxBackend(): CredentialStore;
@@ -127,3 +127,4 @@ export function createLinuxBackend() {
127
127
  },
128
128
  };
129
129
  }
130
+ //# sourceMappingURL=linux.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linux.js","sourceRoot":"","sources":["../../../src/credentials/backends/linux.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * macOS Keychain backend.
3
+ *
4
+ * Wraps the built-in `security(1)` CLI so `npm install` stays free of
5
+ * native compile steps. Service name is shared with the Linux and
6
+ * Windows backends (`com.openclaw.switchbot`), so a user migrating a
7
+ * config between machines sees the same lookup shape.
8
+ *
9
+ * Errors never leak credential material — `add-generic-password`
10
+ * receives the password via `-w <value>` on argv, which is visible in
11
+ * `ps` to the current user but not persisted anywhere, and any stderr
12
+ * we surface back up is bounded to the library's own messages
13
+ * (`password not found`, `could not be added`, etc.) rather than our
14
+ * input values.
15
+ */
16
+ import { CredentialStore } from '../keychain.js';
17
+ export declare function macOsAvailable(): Promise<boolean>;
18
+ export declare function createMacOsBackend(): CredentialStore;
@@ -127,3 +127,4 @@ export function createMacOsBackend() {
127
127
  },
128
128
  };
129
129
  }
130
+ //# sourceMappingURL=macos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"macos.js","sourceRoot":"","sources":["../../../src/credentials/backends/macos.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Windows Credential Manager backend.
3
+ *
4
+ * Uses PowerShell + Win32 P/Invoke (`CredReadW` / `CredWriteW` /
5
+ * `CredDeleteW`) instead of a native binding so `npm install` stays
6
+ * toolchain-free on Windows runners. `cmdkey.exe` could create and
7
+ * delete credentials but can't read the password back — reading is the
8
+ * whole point, so PowerShell is mandatory.
9
+ *
10
+ * Target-name shape is `com.openclaw.switchbot:<profile>:<field>` so
11
+ * `rundll32.exe keymgr.dll,KRShowKeyMgr` displays our entries in a
12
+ * clear, groupable list.
13
+ *
14
+ * Credential values are passed to the child process via environment
15
+ * variables, not argv — this keeps them out of any process listing
16
+ * and out of the PowerShell command history. Env blocks on Windows
17
+ * are only visible to the current user (and admins), so this is a
18
+ * reasonable trade versus the alternatives (stdin requires a second
19
+ * round-trip; temp files leave disk residue).
20
+ */
21
+ import { CredentialStore } from '../keychain.js';
22
+ export declare function windowsAvailable(): Promise<boolean>;
23
+ export declare function createWindowsBackend(): CredentialStore;
@@ -213,3 +213,4 @@ export function createWindowsBackend() {
213
213
  },
214
214
  };
215
215
  }
216
+ //# sourceMappingURL=windows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windows.js","sourceRoot":"","sources":["../../../src/credentials/backends/windows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * OS-keychain credential store abstraction.
3
+ *
4
+ * F1 scope (plan: `feat/v2.8-policy-tooling`):
5
+ * - Defines the `CredentialStore` contract the rest of the CLI can
6
+ * depend on (token/secret per profile, auditable describe(), best-
7
+ * effort delete()).
8
+ * - Ships four backends: `macos` (security(1)), `linux`
9
+ * (secret-tool), `windows` (PowerShell + Win32 CredRead/CredWrite)
10
+ * and `file` (the existing `~/.switchbot/config.json` shape as
11
+ * last-resort fallback).
12
+ * - `selectCredentialStore()` picks the OS-native backend first and
13
+ * silently degrades to `file` whenever a backend is absent or
14
+ * non-writable — so a fresh Linux box without libsecret installed
15
+ * still Just Works.
16
+ *
17
+ * Out of scope here: migrating existing users off `~/.switchbot/config.json`
18
+ * into the keychain. F3's `switchbot auth keychain migrate` subcommand
19
+ * handles the explicit opt-in; F2 only wires the *read* path.
20
+ *
21
+ * Design choices:
22
+ * - No native bindings. Every native backend shells out to an
23
+ * OS-provided CLI / interpreter, which keeps `npm install` free of
24
+ * compile steps on CI machines.
25
+ * - Errors never leak credential material to logs or stderr. On any
26
+ * subprocess failure backends return `null` (read) or throw a
27
+ * `KeychainError` without the input token/secret in the message.
28
+ * - Service / account namespacing is identical across backends
29
+ * (`com.openclaw.switchbot` / `<profile>:<field>`) so a user can
30
+ * move between machines and expect `switchbot auth keychain get`
31
+ * to produce the same lookup shape.
32
+ */
33
+ export declare const CREDENTIAL_SERVICE = "com.openclaw.switchbot";
34
+ export declare const CREDENTIAL_FIELDS: readonly ["token", "secret"];
35
+ export type CredentialField = (typeof CREDENTIAL_FIELDS)[number];
36
+ export interface CredentialBundle {
37
+ token: string;
38
+ secret: string;
39
+ }
40
+ export type CredentialBackendName = 'keychain' | 'credman' | 'secret-service' | 'file';
41
+ export interface CredentialStoreDescribe {
42
+ /** User-facing short name, e.g. "macOS Keychain" or "Credential Manager (Windows)". */
43
+ backend: string;
44
+ /** Implementation tag; what `CredentialStore.name` returns. */
45
+ tag: CredentialBackendName;
46
+ /** Whether `set()`/`delete()` are expected to succeed. */
47
+ writable: boolean;
48
+ /** Optional one-line note surfaced by doctor and `auth keychain describe`. */
49
+ notes?: string;
50
+ }
51
+ export interface CredentialStore {
52
+ readonly name: CredentialBackendName;
53
+ get(profile: string): Promise<CredentialBundle | null>;
54
+ set(profile: string, creds: CredentialBundle): Promise<void>;
55
+ delete(profile: string): Promise<void>;
56
+ describe(): CredentialStoreDescribe;
57
+ }
58
+ /**
59
+ * Thrown when a backend cannot service a `set`/`delete` request even
60
+ * though it reported itself as writable. Never includes the
61
+ * credential material in the message.
62
+ */
63
+ export declare class KeychainError extends Error {
64
+ readonly backend: CredentialBackendName;
65
+ readonly operation: 'get' | 'set' | 'delete';
66
+ constructor(backend: CredentialBackendName, operation: 'get' | 'set' | 'delete', message: string);
67
+ }
68
+ /** Encode the account string used by every native backend. Kept public
69
+ * so F3's CLI can show what the underlying keychain will see. */
70
+ export declare function accountFor(profile: string, field: CredentialField): string;
71
+ /**
72
+ * Select the best backend for the current platform. The caller does
73
+ * not need to handle "no keychain available" — this function always
74
+ * returns a store, falling back to the file backend if necessary.
75
+ *
76
+ * Detection is done eagerly at call time (cheap `which` probe) so a
77
+ * long-running process reflects environment changes (e.g. user
78
+ * installs secret-tool after first run). Selection does NOT mutate
79
+ * any state; calling it twice returns fresh instances.
80
+ */
81
+ export declare function selectCredentialStore(opts?: {
82
+ preferFile?: boolean;
83
+ }): Promise<CredentialStore>;
@@ -86,3 +86,4 @@ export async function selectCredentialStore(opts = {}) {
86
86
  const { createFileBackend } = await import('./backends/file.js');
87
87
  return createFileBackend();
88
88
  }
89
+ //# sourceMappingURL=keychain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keychain.js","sourceRoot":"","sources":["../../src/credentials/keychain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAC3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAU,CAAC;AA6B9D;;;;GAIG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAEpB;IACA;IAFlB,YACkB,OAA8B,EAC9B,SAAmC,EACnD,OAAe;QAEf,KAAK,CAAC,IAAI,OAAO,KAAK,SAAS,YAAY,OAAO,EAAE,CAAC,CAAC;QAJtC,YAAO,GAAP,OAAO,CAAuB;QAC9B,cAAS,GAAT,SAAS,CAA0B;QAInD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED;iEACiE;AACjE,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,KAAsB;IAChE,OAAO,GAAG,OAAO,IAAI,KAAK,EAAE,CAAC;AAC/B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAiC,EAAE;IAC7E,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACjE,OAAO,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACnF,IAAI,MAAM,cAAc,EAAE;YAAE,OAAO,kBAAkB,EAAE,CAAC;IAC1D,CAAC;SAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChC,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACnF,IAAI,MAAM,cAAc,EAAE;YAAE,OAAO,kBAAkB,EAAE,CAAC;IAC1D,CAAC;SAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChC,MAAM,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACzF,IAAI,MAAM,gBAAgB,EAAE;YAAE,OAAO,oBAAoB,EAAE,CAAC;IAC9D,CAAC;IAED,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACjE,OAAO,iBAAiB,EAAE,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Credential priming cache.
3
+ *
4
+ * `loadConfig()` runs synchronously, but every OS keychain backend is
5
+ * async (subprocess-based). We bridge the two by priming credentials
6
+ * once per command, early in the `preAction` hook, and keeping the
7
+ * result in a tiny in-process cache keyed by profile name.
8
+ *
9
+ * After priming, sync callers can consult `getPrimedCredentials()` to
10
+ * pick up keychain-stored token/secret without any await.
11
+ *
12
+ * This module intentionally swallows errors — a flaky keychain
13
+ * probe must never block the CLI from running. When the probe fails
14
+ * we behave as "nothing primed" and the existing file path is used.
15
+ */
16
+ import { CredentialBundle } from './keychain.js';
17
+ /**
18
+ * Look up the given profile in the active credential store and cache
19
+ * the result. Safe to call multiple times — subsequent calls with the
20
+ * same profile short-circuit against the cache. Swallows all errors.
21
+ */
22
+ export declare function primeCredentials(profile: string): Promise<void>;
23
+ /**
24
+ * Sync accessor for code paths that cannot be made async. Returns
25
+ * null when the cache is empty or keyed against a different profile,
26
+ * so existing file-based fallback stays the authoritative source.
27
+ */
28
+ export declare function getPrimedCredentials(profile: string): CredentialBundle | null;
29
+ /**
30
+ * Test helper. Not used by production code.
31
+ */
32
+ export declare function __resetPrimedCredentials(): void;
@@ -50,3 +50,4 @@ export function getPrimedCredentials(profile) {
50
50
  export function __resetPrimedCredentials() {
51
51
  cache = null;
52
52
  }
53
+ //# sourceMappingURL=prime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prime.js","sourceRoot":"","sources":["../../src/credentials/prime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAoB,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAOxE,IAAI,KAAK,GAAsB,IAAI,CAAC;AAEpC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAe;IACpD,IAAI,KAAK,EAAE,OAAO,KAAK,OAAO;QAAE,OAAO;IACvC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,qBAAqB,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,KAAK,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACnC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,KAAK,CAAC,KAAK,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,KAAK,GAAG,IAAI,CAAC;AACf,CAAC"}
@@ -0,0 +1,79 @@
1
+ export interface CachedDevice {
2
+ type: string;
3
+ name: string;
4
+ category: 'physical' | 'ir';
5
+ hubDeviceId?: string;
6
+ enableCloudService?: boolean;
7
+ roomID?: string;
8
+ roomName?: string | null;
9
+ familyName?: string;
10
+ controlType?: string;
11
+ }
12
+ export interface DeviceCache {
13
+ lastUpdated: string;
14
+ devices: Record<string, CachedDevice>;
15
+ }
16
+ export interface DeviceListBodyShape {
17
+ deviceList: Array<{
18
+ deviceId: string;
19
+ deviceName: string;
20
+ deviceType?: string;
21
+ hubDeviceId?: string;
22
+ enableCloudService?: boolean;
23
+ roomID?: string;
24
+ roomName?: string | null;
25
+ familyName?: string;
26
+ controlType?: string;
27
+ }>;
28
+ infraredRemoteList: Array<{
29
+ deviceId: string;
30
+ deviceName: string;
31
+ remoteType: string;
32
+ hubDeviceId?: string;
33
+ controlType?: string;
34
+ }>;
35
+ }
36
+ /** Force the next loadCache() call to re-read from disk. Used in tests. */
37
+ export declare function resetListCache(): void;
38
+ /** Force the next loadStatusCache() call to re-read from disk. Used in tests. */
39
+ export declare function resetStatusCache(): void;
40
+ export declare function loadCache(): DeviceCache | null;
41
+ export declare function getCachedDevice(deviceId: string): CachedDevice | null;
42
+ /** Build a deviceId -> type map from the metadata cache. */
43
+ export declare function getCachedTypeMap(deviceIds?: Iterable<string>): Map<string, string>;
44
+ export declare function updateCacheFromDeviceList(body: DeviceListBodyShape): void;
45
+ export declare function clearCache(): void;
46
+ /** Age of the on-disk list cache in ms, or null if there is no cache. */
47
+ export declare function listCacheAgeMs(now?: number): number | null;
48
+ /** True when the on-disk list cache is present and younger than `ttlMs`. */
49
+ export declare function isListCacheFresh(ttlMs: number, now?: number): boolean;
50
+ export interface CachedStatus {
51
+ fetchedAt: string;
52
+ body: Record<string, unknown>;
53
+ }
54
+ export interface StatusCache {
55
+ entries: Record<string, CachedStatus>;
56
+ }
57
+ export declare function loadStatusCache(): StatusCache;
58
+ /** Read a status entry; returns null when missing or older than `ttlMs`. */
59
+ export declare function getCachedStatus(deviceId: string, ttlMs: number, now?: number): Record<string, unknown> | null;
60
+ export declare function setCachedStatus(deviceId: string, body: Record<string, unknown>, now?: Date, ttlMsForGc?: number): void;
61
+ export declare function clearStatusCache(): void;
62
+ /** Summary for `switchbot cache show`. */
63
+ export interface CacheSummary {
64
+ list: {
65
+ path: string;
66
+ exists: boolean;
67
+ lastUpdated?: string;
68
+ ageMs?: number;
69
+ deviceCount?: number;
70
+ };
71
+ status: {
72
+ path: string;
73
+ exists: boolean;
74
+ entryCount: number;
75
+ oldestFetchedAt?: string;
76
+ newestFetchedAt?: string;
77
+ };
78
+ }
79
+ export declare function describeCache(now?: number): CacheSummary;
@@ -291,3 +291,4 @@ export function describeCache(now = Date.now()) {
291
291
  }
292
292
  return { list, status };
293
293
  }
294
+ //# sourceMappingURL=cache.js.map