@camstack/addon-import-alexa 0.2.154 → 0.2.155

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.2.155] - 2026-10-27
11
+
10
12
  ### Changed
11
13
 
12
14
  - Echo speech signs in as the import broker (its refresh token) instead of a
@@ -15,7 +17,3 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
15
17
  single broker, or is dropped with a named state when there are none or several.
16
18
  - The Alexa target form picks the Echo from the account's device list.
17
19
  - The Alexa kind serves the Alexa brand mark as its icon.
18
-
19
- ### Added
20
-
21
- - Package README and changelog, included in the published files list.
package/README.md CHANGED
@@ -1,18 +1,40 @@
1
- # @camstack/addon-import-alexa
1
+ # Alexa
2
2
 
3
- Alexa device-import provider for CamStack — imports the smart-home devices in a user's Alexa account via the unofficial alexa-remote2 cookie/token client (the inverse of the Alexa exporter)
3
+ Alexa device-import provider for CamStack — imports the smart-home devices in a user's Alexa account via the unofficial alexa-remote2 cookie/token client (the inverse of the Alexa exporter).
4
4
 
5
- ## What it does
5
+ <!-- readme:generated:start (derived from the manifest; edit outside this block) -->
6
6
 
7
- - **Alexa Import** (`import-alexa`): Import smart-home devices from an Amazon Alexa account (unofficial cookie/token client; poll-based state sync). Maps Alexa capability interfaces onto typed CamStack device caps.
8
- - Node placement: `any-node`.
9
- - Capabilities: `device-provider`, `broker`, `device-adoption`, `addon-routes`.
7
+ Package `@camstack/addon-import-alexa` on npm.
10
8
 
11
- ## Settings
9
+ ## What it provides
12
10
 
13
- Settings this addon exposes are edited from System → Addons → this addon → Settings when they apply to the whole cluster, and from the device page when they belong to one device. A password field is stored in the keychain.
11
+ - **Alexa** (`import-alexa`): Import smart-home devices from an Amazon Alexa account (unofficial cookie/token client; poll-based state sync). The same account can speak a notification aloud on Echo devices. Category: providers.
12
+ - Capabilities: `device-provider`, `broker`, `device-adoption`, `addon-routes`, `notification-output`, `addon-pages-source`.
13
+
14
+ ## Configuration
15
+
16
+ Edit these from System, Addons, this addon, Settings (a device's own settings are on its device page). A password field is stored in the keychain.
17
+
18
+ **Addon settings**
19
+
20
+ - Amazon Alexa account: Accounts are managed separately
21
+ - Interactive login (proxy): Login proxy host/IP (blank = auto-detect), Login proxy port
22
+
23
+ **Connection**
24
+
25
+ - Amazon Alexa account: Amazon domain (region), Cookie blob (from proxy login), Refresh token (alternative to cookie), State poll interval (ms)
14
26
 
15
27
  ## Requirements
16
28
 
17
- - A CamStack hub. An agent is used only when the placement above allows it.
29
+ - Placement: default placement.
30
+ - Python: Alexa installs `python/requirements.txt` into its own environment.
31
+ - A CamStack hub. An agent is used only where the placement above allows it.
32
+
33
+ ## Documentation
34
+
35
+ - [docs/addons/addon-import-alexa.md](https://github.com/camstack/server/blob/main/docs/addons/addon-import-alexa.md)
36
+ - [packages/addon-import-alexa/AGENTS.md](https://github.com/camstack/server/blob/main/packages/addon-import-alexa/AGENTS.md)
37
+
38
+ See [CHANGELOG.md](./CHANGELOG.md) for what changed in each version.
18
39
 
40
+ <!-- readme:generated:end -->
package/dist/_stub.js CHANGED
@@ -10,7 +10,7 @@ import "./trash-2-dnzK3zvI.mjs";
10
10
  import { t as Fe } from "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.js-B3qxfxBT.mjs";
11
11
  import "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare__react_mf_2_dom__loadShare__.js-CIPmAyPi.mjs";
12
12
  import "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-Bct5qZia.mjs";
13
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_import_alexa_page__remoteEntry_js-BIrnyj0g.mjs";
13
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_import_alexa_page__remoteEntry_js-FpscgjXK.mjs";
14
14
  import "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-tXm1x5EZ.mjs";
15
15
  import "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare___mf_0_trpc_mf_1_client__loadShare__.js-BHqOw8oh.mjs";
16
16
  import "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare___mf_0_camstack_mf_1_sdk__loadShare__.js-BmoaT3cr.mjs";
@@ -1,9 +1,9 @@
1
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_import_alexa_page__remoteEntry_js-BIrnyj0g.mjs";
1
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_import_alexa_page__remoteEntry_js-FpscgjXK.mjs";
2
2
  //#region \0virtual:mf-localSharedImportMap:__mfe_internal__addon_import_alexa_page
3
3
  var e = {
4
4
  "@camstack/sdk": {
5
5
  name: "@camstack/sdk",
6
- version: "1.2.153",
6
+ version: "1.2.154",
7
7
  scope: ["default"],
8
8
  loaded: !1,
9
9
  from: "addon_import_alexa_page",
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.427",
21
+ version: "1.2.428",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_import_alexa_page",
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.2.336",
36
+ version: "1.2.337",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_import_alexa_page",
package/dist/addon.js CHANGED
@@ -44624,7 +44624,7 @@ var NetworkAccessStatusSchema = object({
44624
44624
  });
44625
44625
  /**
44626
44626
  * Optional, richer endpoint shape returned by providers that expose
44627
- * MORE than one ingress concurrently (Tailscale Ingress with mixed
44627
+ * MORE than one ingress concurrently (Tailscale Funnel with mixed
44628
44628
  * serve+funnel rules, future ngrok multi-tunnel, …). Each entry carries
44629
44629
  * the originating provider config (mode + sourcePort) so the
44630
44630
  * orchestrator UI can label rows distinctly. Providers that expose only
@@ -132921,7 +132921,7 @@ function buildAlexaBrokerProvider(deps) {
132921
132921
  addonId: ownerAddonId,
132922
132922
  kinds: [{
132923
132923
  kind: ALEXA_KIND,
132924
- label: "Alexa Import",
132924
+ label: "Alexa",
132925
132925
  signIn: { basePath: "/addon/import-alexa/login" }
132926
132926
  }]
132927
132927
  }],
@@ -135426,7 +135426,7 @@ var ALEXA_DEVICE_TYPES = [
135426
135426
  */
135427
135427
  var AlexaImportAddon = class extends BaseDeviceProvider {
135428
135428
  addonId = "import-alexa";
135429
- providerName = "Alexa Import";
135429
+ providerName = "Alexa";
135430
135430
  deviceClasses = Object.fromEntries(ALEXA_DEVICE_TYPES.map((t) => [t, AlexaDevice]));
135431
135431
  registry = null;
135432
135432
  proxyLogin = null;
package/dist/addon.mjs CHANGED
@@ -44623,7 +44623,7 @@ var NetworkAccessStatusSchema = object({
44623
44623
  });
44624
44624
  /**
44625
44625
  * Optional, richer endpoint shape returned by providers that expose
44626
- * MORE than one ingress concurrently (Tailscale Ingress with mixed
44626
+ * MORE than one ingress concurrently (Tailscale Funnel with mixed
44627
44627
  * serve+funnel rules, future ngrok multi-tunnel, …). Each entry carries
44628
44628
  * the originating provider config (mode + sourcePort) so the
44629
44629
  * orchestrator UI can label rows distinctly. Providers that expose only
@@ -132920,7 +132920,7 @@ function buildAlexaBrokerProvider(deps) {
132920
132920
  addonId: ownerAddonId,
132921
132921
  kinds: [{
132922
132922
  kind: ALEXA_KIND,
132923
- label: "Alexa Import",
132923
+ label: "Alexa",
132924
132924
  signIn: { basePath: "/addon/import-alexa/login" }
132925
132925
  }]
132926
132926
  }],
@@ -135425,7 +135425,7 @@ var ALEXA_DEVICE_TYPES = [
135425
135425
  */
135426
135426
  var AlexaImportAddon = class extends BaseDeviceProvider {
135427
135427
  addonId = "import-alexa";
135428
- providerName = "Alexa Import";
135428
+ providerName = "Alexa";
135429
135429
  deviceClasses = Object.fromEntries(ALEXA_DEVICE_TYPES.map((t) => [t, AlexaDevice]));
135430
135430
  registry = null;
135431
135431
  proxyLogin = null;
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.427",
39
+ version: "1.2.428",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -45,7 +45,7 @@ async function r() {
45
45
  }
46
46
  },
47
47
  "@camstack/sdk": {
48
- version: "1.2.153",
48
+ version: "1.2.154",
49
49
  scope: "default",
50
50
  shareConfig: {
51
51
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.336",
84
+ version: "1.2.337",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_import_alexa_page__remoteEntry_js-BIrnyj0g.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_import_alexa_page__remoteEntry_js-FpscgjXK.mjs";
2
2
  export { t as get, e as init };
@@ -2753,7 +2753,7 @@ async function rr(e) {
2753
2753
  }
2754
2754
  }
2755
2755
  async function ir() {
2756
- return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_import_alexa_page-AUGtjsp9.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_import_alexa_page-DIPd9Gv5.mjs")).catch((e) => {
2757
2757
  throw tr = void 0, e;
2758
2758
  }), tr;
2759
2759
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-import-alexa",
3
- "version": "0.2.154",
3
+ "version": "0.2.155",
4
4
  "description": "Alexa device-import provider for CamStack — imports the smart-home devices in a user's Alexa account via the unofficial alexa-remote2 cookie/token client (the inverse of the Alexa exporter)",
5
5
  "keywords": [
6
6
  "camstack",
@@ -31,12 +31,12 @@
31
31
  "./package.json": "./package.json"
32
32
  },
33
33
  "camstack": {
34
- "displayName": "Alexa Import",
34
+ "displayName": "Alexa",
35
35
  "addons": [
36
36
  {
37
37
  "id": "import-alexa",
38
38
  "category": "providers",
39
- "name": "Alexa Import",
39
+ "name": "Alexa",
40
40
  "version": "0.1.0",
41
41
  "description": "Import smart-home devices from an Amazon Alexa account (unofficial cookie/token client; poll-based state sync). The same account can speak a notification aloud on Echo devices.",
42
42
  "entry": "./dist/addon.js",