@camstack/system 1.1.36 → 1.1.37

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 (50) hide show
  1. package/dist/addon-runner.js +1 -1
  2. package/dist/addon-runner.mjs +1 -1
  3. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts +8 -4
  4. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +22 -10
  5. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +23 -11
  6. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts +4 -0
  7. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +23 -9
  8. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +24 -10
  9. package/dist/builtins/alerts/alerts.addon.js +1 -1
  10. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  11. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  12. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  13. package/dist/builtins/console-logging/index.js +1 -1
  14. package/dist/builtins/console-logging/index.mjs +1 -1
  15. package/dist/builtins/device-manager/device-manager.addon.js +1 -1
  16. package/dist/builtins/device-manager/device-manager.addon.mjs +1 -1
  17. package/dist/builtins/hub-forwarder/index.js +1 -1
  18. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  19. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  20. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  21. package/dist/builtins/local-network/local-network.addon.js +1 -1
  22. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  23. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  24. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  25. package/dist/builtins/platform-probe/index.js +1 -1
  26. package/dist/builtins/platform-probe/index.mjs +1 -1
  27. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  28. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  29. package/dist/builtins/snapshot/index.js +1 -1
  30. package/dist/builtins/snapshot/index.mjs +1 -1
  31. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  32. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  33. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +1 -1
  34. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +1 -1
  35. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  36. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  37. package/dist/builtins/system-config/system-config.addon.js +1 -1
  38. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  39. package/dist/builtins/winston-logging/index.js +1 -1
  40. package/dist/builtins/winston-logging/index.mjs +1 -1
  41. package/dist/{dist-C7oOY4iL.mjs → dist-CU3lb_Ys.mjs} +322 -8
  42. package/dist/{dist-COIhbSao.js → dist-fRVWwrkF.js} +322 -8
  43. package/dist/index.js +26 -7
  44. package/dist/index.mjs +26 -7
  45. package/dist/kernel/index.d.ts +1 -1
  46. package/dist/kernel/moleculer/node-registry.d.ts +22 -1
  47. package/dist/kernel/moleculer/register-node-client.d.ts +8 -5
  48. package/dist/{manifest-python-deps-BYIV8-rc.mjs → manifest-python-deps-4QvOLiBn.mjs} +1 -1
  49. package/dist/{manifest-python-deps-CZFqI4wp.js → manifest-python-deps-B6ahe90k.js} +1 -1
  50. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- //#region ../types/dist/sleep-DiQ8xW1M.mjs
2
+ //#region ../types/dist/sleep-DJaTV2D7.mjs
3
3
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4
4
  EventCategory["SystemBoot"] = "system.boot";
5
5
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -721,10 +721,6 @@ function hydrateField(field, values) {
721
721
  };
722
722
  }
723
723
  const rawValue = storedValue !== void 0 ? storedValue : defaultValue !== void 0 ? defaultValue : null;
724
- if (field.type === "password") return {
725
- ...field,
726
- value: ""
727
- };
728
724
  const value = field.type === "textarea" && field.isJson && rawValue !== null && typeof rawValue === "object" ? JSON.stringify(rawValue, null, 2) : rawValue;
729
725
  return {
730
726
  ...field,
@@ -2606,13 +2602,32 @@ function event(data) {
2606
2602
  function isDeviceConfigCap(def) {
2607
2603
  return def?.deviceConfig !== void 0;
2608
2604
  }
2609
- var StaticDirOutputSchema = z.object({ staticDir: z.string() });
2610
- var VersionOutputSchema = z.object({ version: z.string() });
2605
+ var StaticDirOutputSchema$1 = z.object({ staticDir: z.string() });
2606
+ var VersionOutputSchema$1 = z.object({ version: z.string() });
2611
2607
  var adminUiCapability = {
2612
2608
  name: "admin-ui",
2613
2609
  scope: "system",
2614
2610
  mode: "singleton",
2615
2611
  internal: true,
2612
+ methods: {
2613
+ getStaticDir: method(z.void(), StaticDirOutputSchema$1),
2614
+ getVersion: method(z.void(), VersionOutputSchema$1)
2615
+ }
2616
+ };
2617
+ var StaticDirOutputSchema = z.object({ staticDir: z.string() });
2618
+ var VersionOutputSchema = z.object({ version: z.string() });
2619
+ /**
2620
+ * viewer-ui — serves the CamStack VIEWER web build (the Expo/React-Native
2621
+ * universal client's PWA export) from the hub, alongside admin-ui. Mirrors
2622
+ * `admin-ui` exactly: a singleton, server-internal cap exposing the static
2623
+ * dist directory + build version so `main.ts` can mount the SPA under a
2624
+ * dedicated prefix.
2625
+ */
2626
+ var viewerUiCapability = {
2627
+ name: "viewer-ui",
2628
+ scope: "system",
2629
+ mode: "singleton",
2630
+ internal: true,
2616
2631
  methods: {
2617
2632
  getStaticDir: method(z.void(), StaticDirOutputSchema),
2618
2633
  getVersion: method(z.void(), VersionOutputSchema)
@@ -11367,6 +11382,17 @@ var WidgetMetadataSchema = z.object({
11367
11382
  deviceContext: z.boolean().default(false),
11368
11383
  integrationContext: z.boolean().default(false)
11369
11384
  }),
11385
+ /**
11386
+ * Loadable BEFORE authentication. The normal widget registry listing
11387
+ * (`addon-widgets.listWidgets`) is auth-gated, so a pre-auth surface
11388
+ * (the login page) cannot discover a widget through it. A widget that
11389
+ * declares `preAuth: true` marks itself as safe to mount on a pre-auth
11390
+ * screen — it is surfaced through the PUBLIC `auth.listLoginMethods`
11391
+ * login-method contribution channel (see `login-method.cap.ts`) rather
11392
+ * than the authenticated registry, and its bundle is served by the
11393
+ * public `/api/addon-widgets/:addonId/*` static route. Defaults false.
11394
+ */
11395
+ preAuth: z.boolean().optional().default(false),
11370
11396
  /** Dashboard placement HINTS (operator can override per instance). */
11371
11397
  defaultSize: WidgetSizeEnum.default("md"),
11372
11398
  allowedSizes: z.array(WidgetSizeEnum).readonly().default([
@@ -11805,6 +11831,87 @@ var authProviderCapability = {
11805
11831
  mount: { kind: "skip" }
11806
11832
  };
11807
11833
  /**
11834
+ * `login-method` — collection cap through which auth addons contribute
11835
+ * their pre-auth login surfaces to the login page. This is the SINGLE,
11836
+ * generic mechanism that supersedes the dead `auth.listProviders` reader:
11837
+ * every auth addon (OIDC, magic-link, WebAuthn/passkey) registers a
11838
+ * `login-method` provider and the PUBLIC `auth.listLoginMethods`
11839
+ * procedure aggregates them for the unauthenticated login page.
11840
+ *
11841
+ * A contribution is a discriminated union on `kind`:
11842
+ *
11843
+ * - `redirect` — a declarative button. The login page renders a generic
11844
+ * button that navigates to `startUrl` (an addon-owned HTTP route).
11845
+ * Covers OIDC (`/addon/auth-oidc/<id>/start`) and magic-link with
11846
+ * ZERO shell-side JS. A future SSO addon plugs in the same way — the
11847
+ * login page needs NO change.
11848
+ *
11849
+ * - `widget` — a Module-Federation widget the login page mounts (via
11850
+ * `loadRemoteBundle`) for an in-page ceremony. Covers the passkey
11851
+ * login ceremony, which must run `@simplewebauthn/browser` INSIDE the
11852
+ * addon bundle. The referenced widget also declares `preAuth: true` in
11853
+ * its `addon-widgets-source` catalog entry. `auth.listLoginMethods`
11854
+ * stamps a public `bundleUrl` from `addonId` + `bundle`.
11855
+ *
11856
+ * Every contribution carries a `stage`:
11857
+ * - `primary` — shown on the first credentials screen (OIDC /
11858
+ * magic-link buttons; a future usernameless passkey).
11859
+ * - `second-factor` — shown AFTER the password leg, gated on the
11860
+ * returned `factors` (passkey-as-2FA today).
11861
+ *
11862
+ * `mount: skip` — the cap is read server-side by the core auth router
11863
+ * (`registry.getCollection('login-method')`), never mounted as its own
11864
+ * tRPC router.
11865
+ */
11866
+ /** When a login method renders in the two-phase login flow. */
11867
+ var LoginStageEnum = z.enum(["primary", "second-factor"]);
11868
+ /**
11869
+ * A declarative redirect button — the login page navigates to `startUrl`.
11870
+ * OIDC and magic-link contribute this; a future SSO addon does too.
11871
+ */
11872
+ var RedirectLoginMethodSchema = z.object({
11873
+ kind: z.literal("redirect"),
11874
+ /** Stable id within the login-method set (e.g. `auth-oidc/google`). */
11875
+ id: z.string(),
11876
+ /** Operator-facing button label. */
11877
+ label: z.string(),
11878
+ /** lucide-react icon name. */
11879
+ icon: z.string().optional(),
11880
+ /** Addon-owned HTTP route the button navigates to (GET). */
11881
+ startUrl: z.string(),
11882
+ stage: LoginStageEnum
11883
+ });
11884
+ /**
11885
+ * A Module-Federation widget the login page mounts for an in-page
11886
+ * ceremony. `bundle` + `addonId` let `auth.listLoginMethods` stamp a
11887
+ * public `bundleUrl`; `remote` is the MF descriptor `loadRemoteBundle`
11888
+ * consumes. No `bundleUrl` here — it is server-stamped on the public
11889
+ * output so the addon never encodes the static-route scheme.
11890
+ */
11891
+ var WidgetLoginMethodSchema = z.object({
11892
+ kind: z.literal("widget"),
11893
+ /** Stable id within the login-method set (e.g. `auth-webauthn/passkey-login`). */
11894
+ id: z.string(),
11895
+ /** Owning addon id — drives the public bundle URL + the MF namespace. */
11896
+ addonId: z.string(),
11897
+ /** Bundle filename inside the addon's dist dir (`remoteEntry.js`). */
11898
+ bundle: z.string(),
11899
+ /** MF remote descriptor — `{ remoteName, exposedModule, componentKey }`. */
11900
+ remote: WidgetRemoteSchema,
11901
+ stage: LoginStageEnum
11902
+ });
11903
+ /** One login-method contribution — redirect button OR pre-auth widget. */
11904
+ var LoginMethodContributionSchema = z.discriminatedUnion("kind", [RedirectLoginMethodSchema, WidgetLoginMethodSchema]);
11905
+ var loginMethodCapability = {
11906
+ name: "login-method",
11907
+ scope: "system",
11908
+ mode: "collection",
11909
+ internal: true,
11910
+ methods: { getLoginMethods: method(z.void(), z.array(LoginMethodContributionSchema).readonly()) },
11911
+ /** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
11912
+ mount: { kind: "skip" }
11913
+ };
11914
+ /**
11808
11915
  * Orchestrator-side destination metadata. The orchestrator computes
11809
11916
  * `id = <addonId>:<subId>` from its provider lookup so consumers
11810
11917
  * (admin UI, restore flow) see one canonical key.
@@ -15640,6 +15747,151 @@ var pipelineOrchestratorCapability = {
15640
15747
  }
15641
15748
  };
15642
15749
  /**
15750
+ * server-management — per-NODE singleton capability for a node's ROOT
15751
+ * package lifecycle (runtime-updatable node packages, phase 2: hub + docker
15752
+ * agents).
15753
+ *
15754
+ * Each node's root package (`@camstack/server` on the hub, `@camstack/agent`
15755
+ * on agents) carries the whole software stack in its npm dep tree, so ONE
15756
+ * version describes the node. Updates install into
15757
+ * `<dataDir>/server-root/versions/<v>/` and apply on restart via the baked
15758
+ * starter (probation boot + auto-rollback to N-1).
15759
+ *
15760
+ * Providers:
15761
+ * - HUB: `ServerUpdateService` behind the `server-provided` mount
15762
+ * (`buildServerProviders` in trpc.router.ts) — the default target for
15763
+ * unpinned calls.
15764
+ * - AGENT: `AgentUpdateService` registered by the agent bootstrap under
15765
+ * the synthetic `agent-runtime` addonId and declared in the agent's
15766
+ * `$hub.registerNode` manifest.
15767
+ *
15768
+ * Node routing: singleton caps get the codegen/runtime-builder `nodeId`
15769
+ * injection on every method — `input.nodeId` (or `nodePin(nodeId)` from the
15770
+ * SDK) routes the call to that node's provider via the standard remote
15771
+ * proxy (`createCapabilityProxy` → `$agent-cap-fwd` → the agent's
15772
+ * in-process provider lookup). No `nodeId` → the hub's own provider.
15773
+ *
15774
+ * Spec: docs/superpowers/specs/2026-07-12-runtime-updatable-node-packages-design.md
15775
+ */
15776
+ /**
15777
+ * Where the running hub's code was loaded from:
15778
+ * - `workspace` — dev checkout (tsx / workspace dist); the starter defers to
15779
+ * plain resolution and runtime updates are refused.
15780
+ * - `baked` — the immutable image seed closure (no data-dir root active).
15781
+ * - `data-root` — the runtime-updatable `<dataDir>/server-root` closure.
15782
+ */
15783
+ var ServerBootModeSchema = z.enum([
15784
+ "workspace",
15785
+ "baked",
15786
+ "data-root"
15787
+ ]);
15788
+ /**
15789
+ * Update lifecycle state:
15790
+ * - `idle` / `checking` / `staging` — steady / in-flight registry work.
15791
+ * - `pending-restart` — a version is staged and the node has NOT yet
15792
+ * restarted onto it (still running the OLD version).
15793
+ * - `awaiting-confirmation` — the node HAS restarted onto the staged version
15794
+ * (it is the active probation boot) and is waiting to confirm boot-health.
15795
+ * Apply/rollback are refused in this state and the node must NOT be
15796
+ * manually restarted, or the probation boot auto-rolls-back.
15797
+ */
15798
+ var ServerUpdateStateSchema = z.enum([
15799
+ "idle",
15800
+ "checking",
15801
+ "staging",
15802
+ "pending-restart",
15803
+ "awaiting-confirmation"
15804
+ ]);
15805
+ var ServerRollbackInfoSchema = z.object({
15806
+ /** The version that failed (or was manually rolled back). */
15807
+ fromVersion: z.string(),
15808
+ /** The version rolled back to; null = the baked seed. */
15809
+ toVersion: z.string().nullable(),
15810
+ atMs: z.number(),
15811
+ reason: z.string()
15812
+ });
15813
+ var ServerPackageStatusSchema = z.object({
15814
+ /** Root package name (`@camstack/server` on the hub). */
15815
+ packageName: z.string(),
15816
+ /** Version of the code the running process ACTUALLY loaded. */
15817
+ runningVersion: z.string().nullable(),
15818
+ /** Node.js runtime version the node's process runs on (`process.versions.node`). */
15819
+ nodeRuntimeVersion: z.string().nullable(),
15820
+ /** Active data-dir root version; null when booted from seed/workspace. */
15821
+ activeVersion: z.string().nullable(),
15822
+ /** N-1 version kept for rollback; null when no previous version exists. */
15823
+ previousVersion: z.string().nullable(),
15824
+ /** Version of the immutable baked seed closure (image fallback). */
15825
+ seedVersion: z.string().nullable(),
15826
+ /** Latest registry version from the most recent check (null = never checked). */
15827
+ latestVersion: z.string().nullable(),
15828
+ updateAvailable: z.boolean(),
15829
+ bootMode: ServerBootModeSchema,
15830
+ updateState: ServerUpdateStateSchema,
15831
+ /** Version staged + awaiting its probation boot, when one is pending. */
15832
+ pendingVersion: z.string().nullable(),
15833
+ /** Set when the last freshly-activated version failed its boot health-check. */
15834
+ rolledBack: ServerRollbackInfoSchema.nullable(),
15835
+ /**
15836
+ * True when `server-root/state.json` EXISTS but is unreadable/corrupt — the
15837
+ * hub is running from the baked seed (or workspace) while installed data-dir
15838
+ * versions are being IGNORED. Surfaced as a warning in the UI.
15839
+ */
15840
+ stateFileCorrupt: z.boolean(),
15841
+ lastCheckedAtMs: z.number().nullable()
15842
+ });
15843
+ var ServerUpdateCheckResultSchema = z.object({
15844
+ packageName: z.string(),
15845
+ runningVersion: z.string().nullable(),
15846
+ latestVersion: z.string().nullable(),
15847
+ updateAvailable: z.boolean(),
15848
+ checkedAtMs: z.number(),
15849
+ /** Non-null when the registry lookup failed (offline, bad registry, …). */
15850
+ error: z.string().nullable()
15851
+ });
15852
+ var ServerUpdateActionResultSchema = z.object({
15853
+ accepted: z.boolean(),
15854
+ targetVersion: z.string().nullable(),
15855
+ /** True when a graceful restart was scheduled to apply the change. */
15856
+ restarting: z.boolean(),
15857
+ message: z.string()
15858
+ });
15859
+ var serverManagementCapability = {
15860
+ name: "server-management",
15861
+ scope: "system",
15862
+ mode: "singleton",
15863
+ methods: {
15864
+ getServerPackageStatus: method(z.void(), ServerPackageStatusSchema, { auth: "admin" }),
15865
+ checkServerUpdate: method(z.void(), ServerUpdateCheckResultSchema, {
15866
+ kind: "mutation",
15867
+ auth: "admin"
15868
+ }),
15869
+ applyServerUpdate: method(z.object({
15870
+ /** Explicit target version; omitted = latest from the registry. */
15871
+ version: z.string().optional() }), ServerUpdateActionResultSchema, {
15872
+ kind: "mutation",
15873
+ auth: "admin"
15874
+ }),
15875
+ rollbackServerUpdate: method(z.void(), ServerUpdateActionResultSchema, {
15876
+ kind: "mutation",
15877
+ auth: "admin"
15878
+ }),
15879
+ /**
15880
+ * Plain process restart of the node's root process — no version change.
15881
+ * The supervisor (docker restart policy / launchd / Electron main)
15882
+ * relaunches and the starter loads the SAME active version. Refused while
15883
+ * a stage is in flight or a version is already staged awaiting restart
15884
+ * (use apply/rollback instead, so the pending version is not skipped).
15885
+ */
15886
+ restartServer: method(z.void(), ServerUpdateActionResultSchema, {
15887
+ kind: "mutation",
15888
+ auth: "admin"
15889
+ })
15890
+ },
15891
+ /** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
15892
+ mount: { kind: "server-provided" }
15893
+ };
15894
+ /**
15643
15895
  * Query filter for settings-store collections.
15644
15896
  */
15645
15897
  var QueryFilterSchema = z.object({
@@ -18505,6 +18757,16 @@ var TopologyCategorySchema = z.object({
18505
18757
  healthy: z.number(),
18506
18758
  addons: z.array(TopologyCategoryAddonSchema).readonly()
18507
18759
  });
18760
+ /**
18761
+ * The node's runtime-updatable ROOT package (`@camstack/server` on the hub,
18762
+ * `@camstack/agent` on agents) as reported by its `registerNode` manifest —
18763
+ * version visibility for the Server management surface. Nullable: offline
18764
+ * rows and pre-phase-2 nodes report none.
18765
+ */
18766
+ var TopologyRootPackageSchema = z.object({
18767
+ name: z.string(),
18768
+ version: z.string()
18769
+ });
18508
18770
  var TopologyNodeSchema = z.object({
18509
18771
  id: z.string(),
18510
18772
  name: z.string(),
@@ -18528,7 +18790,8 @@ var TopologyNodeSchema = z.object({
18528
18790
  status: z.string()
18529
18791
  })).readonly(),
18530
18792
  processes: z.array(TopologyProcessSchema).readonly(),
18531
- categories: z.array(TopologyCategorySchema).readonly()
18793
+ categories: z.array(TopologyCategorySchema).readonly(),
18794
+ rootPackage: TopologyRootPackageSchema.nullable()
18532
18795
  });
18533
18796
  var CapUsageEdgeSchema = z.object({
18534
18797
  callerAddonId: z.string(),
@@ -19991,6 +20254,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
19991
20254
  localNetworkCapability,
19992
20255
  lockControlCapability,
19993
20256
  logDestinationCapability,
20257
+ loginMethodCapability,
19994
20258
  mediaPlayerCapability,
19995
20259
  meshNetworkCapability,
19996
20260
  metricsProviderCapability,
@@ -20026,6 +20290,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
20026
20290
  rebootCapability,
20027
20291
  recordingCapability,
20028
20292
  scriptRunnerCapability,
20293
+ serverManagementCapability,
20029
20294
  settingsStoreCapability,
20030
20295
  smokeCapability,
20031
20296
  smtpProviderCapability,
@@ -20050,6 +20315,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
20050
20315
  valveCapability,
20051
20316
  vibrationCapability,
20052
20317
  videoclipsCapability,
20318
+ viewerUiCapability,
20053
20319
  waterHeaterCapability,
20054
20320
  weatherCapability,
20055
20321
  webrtcSessionCapability,
@@ -22106,6 +22372,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
22106
22372
  addonId: null,
22107
22373
  access: "create"
22108
22374
  },
22375
+ "loginMethod.getLoginMethods": {
22376
+ capName: "login-method",
22377
+ capScope: "system",
22378
+ addonId: null,
22379
+ access: "view"
22380
+ },
22109
22381
  "mediaPlayer.next": {
22110
22382
  capName: "media-player",
22111
22383
  capScope: "device",
@@ -23468,6 +23740,36 @@ var METHOD_ACCESS_MAP = Object.freeze({
23468
23740
  addonId: null,
23469
23741
  access: "create"
23470
23742
  },
23743
+ "serverManagement.applyServerUpdate": {
23744
+ capName: "server-management",
23745
+ capScope: "system",
23746
+ addonId: null,
23747
+ access: "create"
23748
+ },
23749
+ "serverManagement.checkServerUpdate": {
23750
+ capName: "server-management",
23751
+ capScope: "system",
23752
+ addonId: null,
23753
+ access: "create"
23754
+ },
23755
+ "serverManagement.getServerPackageStatus": {
23756
+ capName: "server-management",
23757
+ capScope: "system",
23758
+ addonId: null,
23759
+ access: "view"
23760
+ },
23761
+ "serverManagement.restartServer": {
23762
+ capName: "server-management",
23763
+ capScope: "system",
23764
+ addonId: null,
23765
+ access: "create"
23766
+ },
23767
+ "serverManagement.rollbackServerUpdate": {
23768
+ capName: "server-management",
23769
+ capScope: "system",
23770
+ addonId: null,
23771
+ access: "create"
23772
+ },
23471
23773
  "settingsStore.count": {
23472
23774
  capName: "settings-store",
23473
23775
  capScope: "system",
@@ -24332,6 +24634,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
24332
24634
  addonId: null,
24333
24635
  access: "view"
24334
24636
  },
24637
+ "viewerUi.getStaticDir": {
24638
+ capName: "viewer-ui",
24639
+ capScope: "system",
24640
+ addonId: null,
24641
+ access: "view"
24642
+ },
24643
+ "viewerUi.getVersion": {
24644
+ capName: "viewer-ui",
24645
+ capScope: "system",
24646
+ addonId: null,
24647
+ access: "view"
24648
+ },
24335
24649
  "waterHeater.setAway": {
24336
24650
  capName: "water-heater",
24337
24651
  capScope: "device",