@camstack/types 1.1.35 → 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.
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_sleep = require("./sleep-DuN1nc6O.js");
2
+ const require_sleep = require("./sleep-BtS3xMHv.js");
3
3
  const require_err_msg = require("./err-msg-COpsHMw2.js");
4
4
  let zod = require("zod");
5
5
  //#region src/health/wiring-health.ts
@@ -12624,6 +12624,13 @@ function createSystemProxy(api) {
12624
12624
  deletePlate: (input) => dispatch("plateGallery", "deletePlate", "mutation", input)
12625
12625
  },
12626
12626
  recording: { getStorageUsage: (input) => dispatch("recording", "getStorageUsage", "query", input) },
12627
+ serverManagement: {
12628
+ getServerPackageStatus: (input) => dispatch("serverManagement", "getServerPackageStatus", "query", input),
12629
+ checkServerUpdate: (input) => dispatch("serverManagement", "checkServerUpdate", "mutation", input),
12630
+ applyServerUpdate: (input) => dispatch("serverManagement", "applyServerUpdate", "mutation", input),
12631
+ rollbackServerUpdate: (input) => dispatch("serverManagement", "rollbackServerUpdate", "mutation", input),
12632
+ restartServer: (input) => dispatch("serverManagement", "restartServer", "mutation", input)
12633
+ },
12627
12634
  settingsStore: {
12628
12635
  get: (input) => dispatch("settingsStore", "get", "query", input),
12629
12636
  set: (input) => dispatch("settingsStore", "set", "mutation", input),
@@ -13731,6 +13738,17 @@ var WidgetMetadataSchema = zod.z.object({
13731
13738
  deviceContext: zod.z.boolean().default(false),
13732
13739
  integrationContext: zod.z.boolean().default(false)
13733
13740
  }),
13741
+ /**
13742
+ * Loadable BEFORE authentication. The normal widget registry listing
13743
+ * (`addon-widgets.listWidgets`) is auth-gated, so a pre-auth surface
13744
+ * (the login page) cannot discover a widget through it. A widget that
13745
+ * declares `preAuth: true` marks itself as safe to mount on a pre-auth
13746
+ * screen — it is surfaced through the PUBLIC `auth.listLoginMethods`
13747
+ * login-method contribution channel (see `login-method.cap.ts`) rather
13748
+ * than the authenticated registry, and its bundle is served by the
13749
+ * public `/api/addon-widgets/:addonId/*` static route. Defaults false.
13750
+ */
13751
+ preAuth: zod.z.boolean().optional().default(false),
13734
13752
  /** Dashboard placement HINTS (operator can override per instance). */
13735
13753
  defaultSize: WidgetSizeEnum.default("md"),
13736
13754
  allowedSizes: zod.z.array(WidgetSizeEnum).readonly().default([
@@ -14216,6 +14234,89 @@ var authProviderCapability = {
14216
14234
  /** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
14217
14235
  mount: { kind: "skip" }
14218
14236
  };
14237
+ //#endregion
14238
+ //#region src/capabilities/login-method.cap.ts
14239
+ /**
14240
+ * `login-method` — collection cap through which auth addons contribute
14241
+ * their pre-auth login surfaces to the login page. This is the SINGLE,
14242
+ * generic mechanism that supersedes the dead `auth.listProviders` reader:
14243
+ * every auth addon (OIDC, magic-link, WebAuthn/passkey) registers a
14244
+ * `login-method` provider and the PUBLIC `auth.listLoginMethods`
14245
+ * procedure aggregates them for the unauthenticated login page.
14246
+ *
14247
+ * A contribution is a discriminated union on `kind`:
14248
+ *
14249
+ * - `redirect` — a declarative button. The login page renders a generic
14250
+ * button that navigates to `startUrl` (an addon-owned HTTP route).
14251
+ * Covers OIDC (`/addon/auth-oidc/<id>/start`) and magic-link with
14252
+ * ZERO shell-side JS. A future SSO addon plugs in the same way — the
14253
+ * login page needs NO change.
14254
+ *
14255
+ * - `widget` — a Module-Federation widget the login page mounts (via
14256
+ * `loadRemoteBundle`) for an in-page ceremony. Covers the passkey
14257
+ * login ceremony, which must run `@simplewebauthn/browser` INSIDE the
14258
+ * addon bundle. The referenced widget also declares `preAuth: true` in
14259
+ * its `addon-widgets-source` catalog entry. `auth.listLoginMethods`
14260
+ * stamps a public `bundleUrl` from `addonId` + `bundle`.
14261
+ *
14262
+ * Every contribution carries a `stage`:
14263
+ * - `primary` — shown on the first credentials screen (OIDC /
14264
+ * magic-link buttons; a future usernameless passkey).
14265
+ * - `second-factor` — shown AFTER the password leg, gated on the
14266
+ * returned `factors` (passkey-as-2FA today).
14267
+ *
14268
+ * `mount: skip` — the cap is read server-side by the core auth router
14269
+ * (`registry.getCollection('login-method')`), never mounted as its own
14270
+ * tRPC router.
14271
+ */
14272
+ /** When a login method renders in the two-phase login flow. */
14273
+ var LoginStageEnum = zod.z.enum(["primary", "second-factor"]);
14274
+ /**
14275
+ * A declarative redirect button — the login page navigates to `startUrl`.
14276
+ * OIDC and magic-link contribute this; a future SSO addon does too.
14277
+ */
14278
+ var RedirectLoginMethodSchema = zod.z.object({
14279
+ kind: zod.z.literal("redirect"),
14280
+ /** Stable id within the login-method set (e.g. `auth-oidc/google`). */
14281
+ id: zod.z.string(),
14282
+ /** Operator-facing button label. */
14283
+ label: zod.z.string(),
14284
+ /** lucide-react icon name. */
14285
+ icon: zod.z.string().optional(),
14286
+ /** Addon-owned HTTP route the button navigates to (GET). */
14287
+ startUrl: zod.z.string(),
14288
+ stage: LoginStageEnum
14289
+ });
14290
+ /**
14291
+ * A Module-Federation widget the login page mounts for an in-page
14292
+ * ceremony. `bundle` + `addonId` let `auth.listLoginMethods` stamp a
14293
+ * public `bundleUrl`; `remote` is the MF descriptor `loadRemoteBundle`
14294
+ * consumes. No `bundleUrl` here — it is server-stamped on the public
14295
+ * output so the addon never encodes the static-route scheme.
14296
+ */
14297
+ var WidgetLoginMethodSchema = zod.z.object({
14298
+ kind: zod.z.literal("widget"),
14299
+ /** Stable id within the login-method set (e.g. `auth-webauthn/passkey-login`). */
14300
+ id: zod.z.string(),
14301
+ /** Owning addon id — drives the public bundle URL + the MF namespace. */
14302
+ addonId: zod.z.string(),
14303
+ /** Bundle filename inside the addon's dist dir (`remoteEntry.js`). */
14304
+ bundle: zod.z.string(),
14305
+ /** MF remote descriptor — `{ remoteName, exposedModule, componentKey }`. */
14306
+ remote: WidgetRemoteSchema,
14307
+ stage: LoginStageEnum
14308
+ });
14309
+ /** One login-method contribution — redirect button OR pre-auth widget. */
14310
+ var LoginMethodContributionSchema = zod.z.discriminatedUnion("kind", [RedirectLoginMethodSchema, WidgetLoginMethodSchema]);
14311
+ var loginMethodCapability = {
14312
+ name: "login-method",
14313
+ scope: "system",
14314
+ mode: "collection",
14315
+ internal: true,
14316
+ methods: { getLoginMethods: require_sleep.method(zod.z.void(), zod.z.array(LoginMethodContributionSchema).readonly()) },
14317
+ /** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
14318
+ mount: { kind: "skip" }
14319
+ };
14219
14320
  /**
14220
14321
  * Orchestrator-side destination metadata. The orchestrator computes
14221
14322
  * `id = <addonId>:<subId>` from its provider lookup so consumers
@@ -18206,6 +18307,153 @@ var pipelineOrchestratorCapability = {
18206
18307
  }
18207
18308
  };
18208
18309
  //#endregion
18310
+ //#region src/capabilities/server-management.cap.ts
18311
+ /**
18312
+ * server-management — per-NODE singleton capability for a node's ROOT
18313
+ * package lifecycle (runtime-updatable node packages, phase 2: hub + docker
18314
+ * agents).
18315
+ *
18316
+ * Each node's root package (`@camstack/server` on the hub, `@camstack/agent`
18317
+ * on agents) carries the whole software stack in its npm dep tree, so ONE
18318
+ * version describes the node. Updates install into
18319
+ * `<dataDir>/server-root/versions/<v>/` and apply on restart via the baked
18320
+ * starter (probation boot + auto-rollback to N-1).
18321
+ *
18322
+ * Providers:
18323
+ * - HUB: `ServerUpdateService` behind the `server-provided` mount
18324
+ * (`buildServerProviders` in trpc.router.ts) — the default target for
18325
+ * unpinned calls.
18326
+ * - AGENT: `AgentUpdateService` registered by the agent bootstrap under
18327
+ * the synthetic `agent-runtime` addonId and declared in the agent's
18328
+ * `$hub.registerNode` manifest.
18329
+ *
18330
+ * Node routing: singleton caps get the codegen/runtime-builder `nodeId`
18331
+ * injection on every method — `input.nodeId` (or `nodePin(nodeId)` from the
18332
+ * SDK) routes the call to that node's provider via the standard remote
18333
+ * proxy (`createCapabilityProxy` → `$agent-cap-fwd` → the agent's
18334
+ * in-process provider lookup). No `nodeId` → the hub's own provider.
18335
+ *
18336
+ * Spec: docs/superpowers/specs/2026-07-12-runtime-updatable-node-packages-design.md
18337
+ */
18338
+ /**
18339
+ * Where the running hub's code was loaded from:
18340
+ * - `workspace` — dev checkout (tsx / workspace dist); the starter defers to
18341
+ * plain resolution and runtime updates are refused.
18342
+ * - `baked` — the immutable image seed closure (no data-dir root active).
18343
+ * - `data-root` — the runtime-updatable `<dataDir>/server-root` closure.
18344
+ */
18345
+ var ServerBootModeSchema = zod.z.enum([
18346
+ "workspace",
18347
+ "baked",
18348
+ "data-root"
18349
+ ]);
18350
+ /**
18351
+ * Update lifecycle state:
18352
+ * - `idle` / `checking` / `staging` — steady / in-flight registry work.
18353
+ * - `pending-restart` — a version is staged and the node has NOT yet
18354
+ * restarted onto it (still running the OLD version).
18355
+ * - `awaiting-confirmation` — the node HAS restarted onto the staged version
18356
+ * (it is the active probation boot) and is waiting to confirm boot-health.
18357
+ * Apply/rollback are refused in this state and the node must NOT be
18358
+ * manually restarted, or the probation boot auto-rolls-back.
18359
+ */
18360
+ var ServerUpdateStateSchema = zod.z.enum([
18361
+ "idle",
18362
+ "checking",
18363
+ "staging",
18364
+ "pending-restart",
18365
+ "awaiting-confirmation"
18366
+ ]);
18367
+ var ServerRollbackInfoSchema = zod.z.object({
18368
+ /** The version that failed (or was manually rolled back). */
18369
+ fromVersion: zod.z.string(),
18370
+ /** The version rolled back to; null = the baked seed. */
18371
+ toVersion: zod.z.string().nullable(),
18372
+ atMs: zod.z.number(),
18373
+ reason: zod.z.string()
18374
+ });
18375
+ var ServerPackageStatusSchema = zod.z.object({
18376
+ /** Root package name (`@camstack/server` on the hub). */
18377
+ packageName: zod.z.string(),
18378
+ /** Version of the code the running process ACTUALLY loaded. */
18379
+ runningVersion: zod.z.string().nullable(),
18380
+ /** Node.js runtime version the node's process runs on (`process.versions.node`). */
18381
+ nodeRuntimeVersion: zod.z.string().nullable(),
18382
+ /** Active data-dir root version; null when booted from seed/workspace. */
18383
+ activeVersion: zod.z.string().nullable(),
18384
+ /** N-1 version kept for rollback; null when no previous version exists. */
18385
+ previousVersion: zod.z.string().nullable(),
18386
+ /** Version of the immutable baked seed closure (image fallback). */
18387
+ seedVersion: zod.z.string().nullable(),
18388
+ /** Latest registry version from the most recent check (null = never checked). */
18389
+ latestVersion: zod.z.string().nullable(),
18390
+ updateAvailable: zod.z.boolean(),
18391
+ bootMode: ServerBootModeSchema,
18392
+ updateState: ServerUpdateStateSchema,
18393
+ /** Version staged + awaiting its probation boot, when one is pending. */
18394
+ pendingVersion: zod.z.string().nullable(),
18395
+ /** Set when the last freshly-activated version failed its boot health-check. */
18396
+ rolledBack: ServerRollbackInfoSchema.nullable(),
18397
+ /**
18398
+ * True when `server-root/state.json` EXISTS but is unreadable/corrupt — the
18399
+ * hub is running from the baked seed (or workspace) while installed data-dir
18400
+ * versions are being IGNORED. Surfaced as a warning in the UI.
18401
+ */
18402
+ stateFileCorrupt: zod.z.boolean(),
18403
+ lastCheckedAtMs: zod.z.number().nullable()
18404
+ });
18405
+ var ServerUpdateCheckResultSchema = zod.z.object({
18406
+ packageName: zod.z.string(),
18407
+ runningVersion: zod.z.string().nullable(),
18408
+ latestVersion: zod.z.string().nullable(),
18409
+ updateAvailable: zod.z.boolean(),
18410
+ checkedAtMs: zod.z.number(),
18411
+ /** Non-null when the registry lookup failed (offline, bad registry, …). */
18412
+ error: zod.z.string().nullable()
18413
+ });
18414
+ var ServerUpdateActionResultSchema = zod.z.object({
18415
+ accepted: zod.z.boolean(),
18416
+ targetVersion: zod.z.string().nullable(),
18417
+ /** True when a graceful restart was scheduled to apply the change. */
18418
+ restarting: zod.z.boolean(),
18419
+ message: zod.z.string()
18420
+ });
18421
+ var serverManagementCapability = {
18422
+ name: "server-management",
18423
+ scope: "system",
18424
+ mode: "singleton",
18425
+ methods: {
18426
+ getServerPackageStatus: require_sleep.method(zod.z.void(), ServerPackageStatusSchema, { auth: "admin" }),
18427
+ checkServerUpdate: require_sleep.method(zod.z.void(), ServerUpdateCheckResultSchema, {
18428
+ kind: "mutation",
18429
+ auth: "admin"
18430
+ }),
18431
+ applyServerUpdate: require_sleep.method(zod.z.object({
18432
+ /** Explicit target version; omitted = latest from the registry. */
18433
+ version: zod.z.string().optional() }), ServerUpdateActionResultSchema, {
18434
+ kind: "mutation",
18435
+ auth: "admin"
18436
+ }),
18437
+ rollbackServerUpdate: require_sleep.method(zod.z.void(), ServerUpdateActionResultSchema, {
18438
+ kind: "mutation",
18439
+ auth: "admin"
18440
+ }),
18441
+ /**
18442
+ * Plain process restart of the node's root process — no version change.
18443
+ * The supervisor (docker restart policy / launchd / Electron main)
18444
+ * relaunches and the starter loads the SAME active version. Refused while
18445
+ * a stage is in flight or a version is already staged awaiting restart
18446
+ * (use apply/rollback instead, so the pending version is not skipped).
18447
+ */
18448
+ restartServer: require_sleep.method(zod.z.void(), ServerUpdateActionResultSchema, {
18449
+ kind: "mutation",
18450
+ auth: "admin"
18451
+ })
18452
+ },
18453
+ /** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
18454
+ mount: { kind: "server-provided" }
18455
+ };
18456
+ //#endregion
18209
18457
  //#region src/capabilities/settings-store.cap.ts
18210
18458
  /**
18211
18459
  * Query filter for settings-store collections.
@@ -18910,6 +19158,19 @@ getTurnServers: require_sleep.method(zod.z.void(), zod.z.array(TurnServerSchema)
18910
19158
  * b. `finishAuthentication({userId, response})` → server verifies
18911
19159
  * the assertion, bumps the credential counter, returns ok.
18912
19160
  *
19161
+ * 2b. Usernameless (discoverable-credential) authentication — the
19162
+ * passkey IS the primary factor, no password leg:
19163
+ * a. `beginDiscoverableAuthentication({})` → assertion options with
19164
+ * EMPTY `allowCredentials` (the browser offers every resident
19165
+ * passkey it holds for this RP) + `userVerification: 'required'`
19166
+ * (the passkey replaces both factors, so UV is mandatory).
19167
+ * The challenge is stored server-side, NOT bound to any user.
19168
+ * b. `finishDiscoverableAuthentication({response})` → the provider
19169
+ * resolves the credential by the response's credential id,
19170
+ * verifies the assertion against the stored challenge + that
19171
+ * credential's public key/counter, and returns the OWNING
19172
+ * `userId` — the caller (core auth router) mints the session.
19173
+ *
18913
19174
  * 3. Management:
18914
19175
  * - `listPasskeys({userId})` — enumerate user's enrolled credentials.
18915
19176
  * - `removePasskey({userId, credentialId})` — revoke one credential.
@@ -18966,6 +19227,19 @@ var userPasskeysCapability = {
18966
19227
  kind: "mutation",
18967
19228
  access: "view"
18968
19229
  }),
19230
+ beginDiscoverableAuthentication: require_sleep.method(zod.z.object({}), zod.z.object({ optionsJSON: zod.z.record(zod.z.string(), zod.z.unknown()) }), {
19231
+ kind: "mutation",
19232
+ access: "view"
19233
+ }),
19234
+ finishDiscoverableAuthentication: require_sleep.method(zod.z.object({
19235
+ /** AuthenticationResponseJSON from the browser. */
19236
+ response: zod.z.record(zod.z.string(), zod.z.unknown()) }), zod.z.object({
19237
+ verified: zod.z.boolean(),
19238
+ userId: zod.z.string().nullable()
19239
+ }), {
19240
+ kind: "mutation",
19241
+ access: "view"
19242
+ }),
18969
19243
  listPasskeys: require_sleep.method(zod.z.object({ userId: zod.z.string() }), zod.z.array(PasskeySummarySchema), { auth: "admin" }),
18970
19244
  removePasskey: require_sleep.method(zod.z.object({
18971
19245
  userId: zod.z.string(),
@@ -21119,6 +21393,16 @@ var TopologyCategorySchema = zod.z.object({
21119
21393
  healthy: zod.z.number(),
21120
21394
  addons: zod.z.array(TopologyCategoryAddonSchema).readonly()
21121
21395
  });
21396
+ /**
21397
+ * The node's runtime-updatable ROOT package (`@camstack/server` on the hub,
21398
+ * `@camstack/agent` on agents) as reported by its `registerNode` manifest —
21399
+ * version visibility for the Server management surface. Nullable: offline
21400
+ * rows and pre-phase-2 nodes report none.
21401
+ */
21402
+ var TopologyRootPackageSchema = zod.z.object({
21403
+ name: zod.z.string(),
21404
+ version: zod.z.string()
21405
+ });
21122
21406
  var TopologyNodeSchema = zod.z.object({
21123
21407
  id: zod.z.string(),
21124
21408
  name: zod.z.string(),
@@ -21142,7 +21426,8 @@ var TopologyNodeSchema = zod.z.object({
21142
21426
  status: zod.z.string()
21143
21427
  })).readonly(),
21144
21428
  processes: zod.z.array(TopologyProcessSchema).readonly(),
21145
- categories: zod.z.array(TopologyCategorySchema).readonly()
21429
+ categories: zod.z.array(TopologyCategorySchema).readonly(),
21430
+ rootPackage: TopologyRootPackageSchema.nullable()
21146
21431
  });
21147
21432
  var CapUsageEdgeSchema = zod.z.object({
21148
21433
  callerAddonId: zod.z.string(),
@@ -22647,6 +22932,7 @@ var CAPABILITY_NAMES = {
22647
22932
  localNetwork: "local-network",
22648
22933
  lockControl: "lock-control",
22649
22934
  logDestination: "log-destination",
22935
+ loginMethod: "login-method",
22650
22936
  mediaPlayer: "media-player",
22651
22937
  meshNetwork: "mesh-network",
22652
22938
  metricsProvider: "metrics-provider",
@@ -22682,6 +22968,7 @@ var CAPABILITY_NAMES = {
22682
22968
  reboot: "reboot",
22683
22969
  recording: "recording",
22684
22970
  scriptRunner: "script-runner",
22971
+ serverManagement: "server-management",
22685
22972
  settingsStore: "settings-store",
22686
22973
  smoke: "smoke",
22687
22974
  smtpProvider: "smtp-provider",
@@ -22706,6 +22993,7 @@ var CAPABILITY_NAMES = {
22706
22993
  valve: "valve",
22707
22994
  vibration: "vibration",
22708
22995
  videoclips: "videoclips",
22996
+ viewerUi: "viewer-ui",
22709
22997
  waterHeater: "water-heater",
22710
22998
  weather: "weather",
22711
22999
  webrtcSession: "webrtc-session",
@@ -22995,6 +23283,10 @@ var CAPABILITY_ROUTER_KEYS = [
22995
23283
  key: "logDestination",
22996
23284
  name: "log-destination"
22997
23285
  },
23286
+ {
23287
+ key: "loginMethod",
23288
+ name: "login-method"
23289
+ },
22998
23290
  {
22999
23291
  key: "mediaPlayer",
23000
23292
  name: "media-player"
@@ -23135,6 +23427,10 @@ var CAPABILITY_ROUTER_KEYS = [
23135
23427
  key: "scriptRunner",
23136
23428
  name: "script-runner"
23137
23429
  },
23430
+ {
23431
+ key: "serverManagement",
23432
+ name: "server-management"
23433
+ },
23138
23434
  {
23139
23435
  key: "settingsStore",
23140
23436
  name: "settings-store"
@@ -23231,6 +23527,10 @@ var CAPABILITY_ROUTER_KEYS = [
23231
23527
  key: "videoclips",
23232
23528
  name: "videoclips"
23233
23529
  },
23530
+ {
23531
+ key: "viewerUi",
23532
+ name: "viewer-ui"
23533
+ },
23234
23534
  {
23235
23535
  key: "waterHeater",
23236
23536
  name: "water-heater"
@@ -23336,6 +23636,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
23336
23636
  localNetworkCapability,
23337
23637
  lockControlCapability,
23338
23638
  logDestinationCapability,
23639
+ loginMethodCapability,
23339
23640
  mediaPlayerCapability,
23340
23641
  meshNetworkCapability,
23341
23642
  metricsProviderCapability,
@@ -23371,6 +23672,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
23371
23672
  rebootCapability,
23372
23673
  recordingCapability,
23373
23674
  scriptRunnerCapability,
23675
+ serverManagementCapability,
23374
23676
  settingsStoreCapability,
23375
23677
  smokeCapability,
23376
23678
  smtpProviderCapability,
@@ -23395,6 +23697,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
23395
23697
  valveCapability,
23396
23698
  vibrationCapability,
23397
23699
  videoclipsCapability,
23700
+ require_sleep.viewerUiCapability,
23398
23701
  waterHeaterCapability,
23399
23702
  weatherCapability,
23400
23703
  webrtcSessionCapability,
@@ -25455,6 +25758,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
25455
25758
  addonId: null,
25456
25759
  access: "create"
25457
25760
  },
25761
+ "loginMethod.getLoginMethods": {
25762
+ capName: "login-method",
25763
+ capScope: "system",
25764
+ addonId: null,
25765
+ access: "view"
25766
+ },
25458
25767
  "mediaPlayer.next": {
25459
25768
  capName: "media-player",
25460
25769
  capScope: "device",
@@ -26817,6 +27126,36 @@ var METHOD_ACCESS_MAP = Object.freeze({
26817
27126
  addonId: null,
26818
27127
  access: "create"
26819
27128
  },
27129
+ "serverManagement.applyServerUpdate": {
27130
+ capName: "server-management",
27131
+ capScope: "system",
27132
+ addonId: null,
27133
+ access: "create"
27134
+ },
27135
+ "serverManagement.checkServerUpdate": {
27136
+ capName: "server-management",
27137
+ capScope: "system",
27138
+ addonId: null,
27139
+ access: "create"
27140
+ },
27141
+ "serverManagement.getServerPackageStatus": {
27142
+ capName: "server-management",
27143
+ capScope: "system",
27144
+ addonId: null,
27145
+ access: "view"
27146
+ },
27147
+ "serverManagement.restartServer": {
27148
+ capName: "server-management",
27149
+ capScope: "system",
27150
+ addonId: null,
27151
+ access: "create"
27152
+ },
27153
+ "serverManagement.rollbackServerUpdate": {
27154
+ capName: "server-management",
27155
+ capScope: "system",
27156
+ addonId: null,
27157
+ access: "create"
27158
+ },
26820
27159
  "settingsStore.count": {
26821
27160
  capName: "settings-store",
26822
27161
  capScope: "system",
@@ -27579,6 +27918,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
27579
27918
  addonId: null,
27580
27919
  access: "view"
27581
27920
  },
27921
+ "userPasskeys.beginDiscoverableAuthentication": {
27922
+ capName: "user-passkeys",
27923
+ capScope: "system",
27924
+ addonId: null,
27925
+ access: "view"
27926
+ },
27582
27927
  "userPasskeys.beginRegistration": {
27583
27928
  capName: "user-passkeys",
27584
27929
  capScope: "system",
@@ -27591,6 +27936,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
27591
27936
  addonId: null,
27592
27937
  access: "view"
27593
27938
  },
27939
+ "userPasskeys.finishDiscoverableAuthentication": {
27940
+ capName: "user-passkeys",
27941
+ capScope: "system",
27942
+ addonId: null,
27943
+ access: "view"
27944
+ },
27594
27945
  "userPasskeys.finishRegistration": {
27595
27946
  capName: "user-passkeys",
27596
27947
  capScope: "system",
@@ -27681,6 +28032,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
27681
28032
  addonId: null,
27682
28033
  access: "view"
27683
28034
  },
28035
+ "viewerUi.getStaticDir": {
28036
+ capName: "viewer-ui",
28037
+ capScope: "system",
28038
+ addonId: null,
28039
+ access: "view"
28040
+ },
28041
+ "viewerUi.getVersion": {
28042
+ capName: "viewer-ui",
28043
+ capScope: "system",
28044
+ addonId: null,
28045
+ access: "view"
28046
+ },
27684
28047
  "waterHeater.setAway": {
27685
28048
  capName: "water-heater",
27686
28049
  capScope: "device",
@@ -27869,6 +28232,7 @@ var KNOWN_CAP_NAMES = [
27869
28232
  "local-network",
27870
28233
  "lock-control",
27871
28234
  "log-destination",
28235
+ "login-method",
27872
28236
  "media-player",
27873
28237
  "mesh-network",
27874
28238
  "metrics-provider",
@@ -27900,6 +28264,7 @@ var KNOWN_CAP_NAMES = [
27900
28264
  "reboot",
27901
28265
  "recording",
27902
28266
  "script-runner",
28267
+ "server-management",
27903
28268
  "settings-store",
27904
28269
  "smtp-provider",
27905
28270
  "snapshot",
@@ -27920,6 +28285,7 @@ var KNOWN_CAP_NAMES = [
27920
28285
  "vacuum-control",
27921
28286
  "valve",
27922
28287
  "videoclips",
28288
+ "viewer-ui",
27923
28289
  "water-heater",
27924
28290
  "webrtc-session",
27925
28291
  "zone-analytics",
@@ -28012,6 +28378,7 @@ var SYSTEM_CAP_NAMES = [
28012
28378
  "integrations",
28013
28379
  "local-network",
28014
28380
  "log-destination",
28381
+ "login-method",
28015
28382
  "mesh-network",
28016
28383
  "metrics-provider",
28017
28384
  "model-convert",
@@ -28028,6 +28395,7 @@ var SYSTEM_CAP_NAMES = [
28028
28395
  "plate-gallery",
28029
28396
  "platform-probe",
28030
28397
  "recording",
28398
+ "server-management",
28031
28399
  "settings-store",
28032
28400
  "smtp-provider",
28033
28401
  "sso-bridge",
@@ -28039,7 +28407,8 @@ var SYSTEM_CAP_NAMES = [
28039
28407
  "toast",
28040
28408
  "turn-provider",
28041
28409
  "user-management",
28042
- "user-passkeys"
28410
+ "user-passkeys",
28411
+ "viewer-ui"
28043
28412
  ];
28044
28413
  //#endregion
28045
28414
  //#region src/generated/scope-presets.ts
@@ -28864,6 +29233,8 @@ exports.LockStateSchema = LockStateSchema;
28864
29233
  exports.LogEntrySchema = LogEntrySchema;
28865
29234
  exports.LogLevelSchema = LogLevelSchema;
28866
29235
  exports.LogStreamEntrySchema = LogStreamEntrySchema;
29236
+ exports.LoginMethodContributionSchema = LoginMethodContributionSchema;
29237
+ exports.LoginStageEnum = LoginStageEnum;
28867
29238
  exports.MACRO_LABELS = MACRO_LABELS;
28868
29239
  exports.MAX_EXPRESSION_AST_NODES = MAX_EXPRESSION_AST_NODES;
28869
29240
  exports.MAX_EXPRESSION_BINDINGS = MAX_EXPRESSION_BINDINGS;
@@ -29009,6 +29380,7 @@ exports.RecordingStorageModeSchema = RecordingStorageModeSchema;
29009
29380
  exports.RecordingStorageUsageSchema = RecordingStorageUsageSchema;
29010
29381
  exports.RecordingTriggersSchema = RecordingTriggersSchema;
29011
29382
  exports.RecordingWeekdaySchema = RecordingWeekdaySchema;
29383
+ exports.RedirectLoginMethodSchema = RedirectLoginMethodSchema;
29012
29384
  exports.RenderedAsSchema = RenderedAsSchema;
29013
29385
  exports.ReportMotionInputSchema = ReportMotionInputSchema;
29014
29386
  exports.RingBuffer = RingBuffer;
@@ -29033,6 +29405,12 @@ exports.SearchResultSchema = SearchResultSchema;
29033
29405
  exports.SendEmailInputSchema = SendEmailInputSchema;
29034
29406
  exports.SendEmailResultSchema = SendEmailResultSchema;
29035
29407
  exports.SendResultSchema = SendResultSchema;
29408
+ exports.ServerBootModeSchema = ServerBootModeSchema;
29409
+ exports.ServerPackageStatusSchema = ServerPackageStatusSchema;
29410
+ exports.ServerRollbackInfoSchema = ServerRollbackInfoSchema;
29411
+ exports.ServerUpdateActionResultSchema = ServerUpdateActionResultSchema;
29412
+ exports.ServerUpdateCheckResultSchema = ServerUpdateCheckResultSchema;
29413
+ exports.ServerUpdateStateSchema = ServerUpdateStateSchema;
29036
29414
  exports.SettingsPatchSchema = SettingsPatchSchema;
29037
29415
  exports.SettingsRecordSchema = SettingsRecordSchema;
29038
29416
  exports.SettingsSchemaWithValuesSchema = SettingsSchemaWithValuesSchema;
@@ -29119,6 +29497,7 @@ exports.WebrtcStreamChoiceSchema = WebrtcStreamChoiceSchema;
29119
29497
  exports.WebrtcStreamTargetSchema = WebrtcStreamTargetSchema;
29120
29498
  exports.WhiteBalanceModeSchema = WhiteBalanceModeSchema;
29121
29499
  exports.WidgetHostEnum = WidgetHostEnum;
29500
+ exports.WidgetLoginMethodSchema = WidgetLoginMethodSchema;
29122
29501
  exports.WidgetMetadataSchema = WidgetMetadataSchema;
29123
29502
  exports.WidgetRemoteSchema = WidgetRemoteSchema;
29124
29503
  exports.WidgetSizeEnum = WidgetSizeEnum;
@@ -29178,6 +29557,8 @@ exports.cellsToRects = cellsToRects;
29178
29557
  exports.classifyStream = classifyStream;
29179
29558
  exports.classifyStreams = classifyStreams;
29180
29559
  exports.climateControlCapability = climateControlCapability;
29560
+ exports.collectHydratedFieldEntries = require_sleep.collectHydratedFieldEntries;
29561
+ exports.collectHydratedFieldValues = require_sleep.collectHydratedFieldValues;
29181
29562
  exports.colorCapability = colorCapability;
29182
29563
  exports.compileExpression = compileExpression;
29183
29564
  exports.compileExpressionSafe = compileExpressionSafe;
@@ -29273,6 +29654,7 @@ exports.localNetworkCapability = localNetworkCapability;
29273
29654
  exports.locationSimilarity = locationSimilarity;
29274
29655
  exports.lockControlCapability = lockControlCapability;
29275
29656
  exports.logDestinationCapability = logDestinationCapability;
29657
+ exports.loginMethodCapability = loginMethodCapability;
29276
29658
  exports.looseSchema = looseSchema;
29277
29659
  exports.makeProfileBrokerId = require_sleep.makeProfileBrokerId;
29278
29660
  exports.makeSourceBrokerId = require_sleep.makeSourceBrokerId;
@@ -29345,6 +29727,7 @@ exports.resolveCapMount = require_sleep.resolveCapMount;
29345
29727
  exports.resolveDetectionRuntime = resolveDetectionRuntime;
29346
29728
  exports.resolveDeviceProfile = resolveDeviceProfile;
29347
29729
  exports.resolveFormat = resolveFormat;
29730
+ exports.resolveHydratedFieldValue = require_sleep.resolveHydratedFieldValue;
29348
29731
  exports.resolveModelFormat = resolveModelFormat;
29349
29732
  exports.resolveRunnerId = resolveRunnerId;
29350
29733
  exports.resolveVariantModelId = resolveVariantModelId;
@@ -29354,6 +29737,7 @@ exports.scopeKey = require_sleep.scopeKey;
29354
29737
  exports.scoreRuntimes = scoreRuntimes;
29355
29738
  exports.scriptRunnerCapability = scriptRunnerCapability;
29356
29739
  exports.selectAssignedProfileSlots = require_sleep.selectAssignedProfileSlots;
29740
+ exports.serverManagementCapability = serverManagementCapability;
29357
29741
  exports.setByPath = setByPath;
29358
29742
  exports.settingsStoreCapability = settingsStoreCapability;
29359
29743
  exports.sleep = require_sleep.sleep;
@@ -29399,6 +29783,7 @@ exports.validateExpressionSource = validateExpressionSource;
29399
29783
  exports.valveCapability = valveCapability;
29400
29784
  exports.vibrationCapability = vibrationCapability;
29401
29785
  exports.videoclipsCapability = videoclipsCapability;
29786
+ exports.viewerUiCapability = require_sleep.viewerUiCapability;
29402
29787
  exports.waterHeaterCapability = waterHeaterCapability;
29403
29788
  exports.weatherCapability = weatherCapability;
29404
29789
  exports.webrtcClientHintsSchema = webrtcClientHintsSchema;