@camstack/types 1.2.54 → 1.2.55

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.
@@ -0,0 +1,123 @@
1
+ /**
2
+ * The one place a bearer principal is classified and matched against a
3
+ * `TokenScope` set. Pure — no I/O, no registry, no logger — so the kernel,
4
+ * `server/backend` and any ADDON can share it. It lives in `@camstack/types`
5
+ * for exactly that reason: `scopesAllowDeviceCap` used to live in
6
+ * `@camstack/system`, which addons may not import, so `addon-export-alexa`
7
+ * hand-copied it into `directive-router.ts` and said so in a comment twice.
8
+ * One vector, one derivation.
9
+ *
10
+ * ── What this exists to stop ────────────────────────────────────────────
11
+ *
12
+ * Measured on the live hub, 2026-08-09: an `oauth-access` token minted for the
13
+ * `export-alexa` account link was accepted on
14
+ * `POST /addon/homeassistant-export/command` — a route that actuates PTZ,
15
+ * reboot, the per-camera switches and notification snooze. The addon-route gate
16
+ * verified the JWT signature and checked `isAdmin` for `access: 'admin'` routes
17
+ * and nothing else, so every `access: 'authenticated'` route in the product was
18
+ * reachable by ANY valid hub JWT, including one issued to a different
19
+ * integration, a 60-second single-use authorization CODE, and a 30-day refresh
20
+ * token. See D103.
21
+ */
22
+ import type { MethodAccess, TokenScope } from '../schemas/auth-records.js';
23
+ /**
24
+ * The access flavour an HTTP verb asks for. `GET`/`HEAD` read; anything that
25
+ * can change state is at least `create`.
26
+ *
27
+ * An UNRECOGNISED verb resolves to `delete`, the most privileged flavour, so a
28
+ * method nobody thought about fails closed. The inverse default — treating the
29
+ * unknown as `view` — is how a gate quietly stops gating.
30
+ */
31
+ export declare function methodAccessForHttpMethod(method: string): MethodAccess;
32
+ /**
33
+ * True if the scope set grants `access` on device-scoped capabilities.
34
+ * A `category:device` grant covers every device cap (the broad grant).
35
+ */
36
+ export declare function scopesAllowDeviceCap(scopes: readonly TokenScope[], access: MethodAccess): boolean;
37
+ /**
38
+ * True if the scope set names this addon with at least `access`.
39
+ *
40
+ * Deliberately NOT satisfied by `category:device`: a grant over per-camera
41
+ * capabilities says nothing about an addon's own HTTP surface, and conflating
42
+ * the two is precisely the confusion that let an Alexa token drive Home
43
+ * Assistant's command route.
44
+ */
45
+ export declare function scopesAllowAddon(scopes: readonly TokenScope[], addonId: string, access: MethodAccess): boolean;
46
+ /**
47
+ * What a verified JWT actually IS. Every one of these verifies under the same
48
+ * hub secret — that is the whole trap. `jwt.verify` succeeding means "we minted
49
+ * this", never "this is an API credential".
50
+ */
51
+ export type BearerPrincipal =
52
+ /** An ordinary user session from `auth.login`. Governed by the user's own scopes. */
53
+ {
54
+ readonly kind: 'session';
55
+ }
56
+ /** An account-linking token issued to an integration. Governed by the grant. */
57
+ | {
58
+ readonly kind: 'integration';
59
+ readonly provider: 'oauth-access';
60
+ }
61
+ /** Minted for one hand-off step and never meant to authenticate an API call. */
62
+ | {
63
+ readonly kind: 'not-a-credential';
64
+ readonly reason: string;
65
+ };
66
+ /**
67
+ * The narrow shape read off a verified JWT payload. Every field optional: the
68
+ * payload arrives as whatever was signed, and a missing discriminator must
69
+ * classify, never throw.
70
+ */
71
+ export interface BearerPayloadShape {
72
+ readonly kind?: unknown;
73
+ readonly provider?: unknown;
74
+ readonly userId?: unknown;
75
+ readonly isAdmin?: unknown;
76
+ readonly scopes?: unknown;
77
+ }
78
+ /**
79
+ * Classify a VERIFIED JWT payload.
80
+ *
81
+ * A session JWT carries no `kind`. Everything else in this system tags itself:
82
+ * `kind: 'sso-bridge'` for the OAuth/SSO family (discriminated further by
83
+ * `provider`), `kind: 'totp-challenge'` for login leg 1. Only `oauth-access` is
84
+ * an API credential; a code lives in a browser redirect URL and a refresh token
85
+ * belongs to `/token`.
86
+ */
87
+ export declare function classifyBearerPrincipal(payload: BearerPayloadShape): BearerPrincipal;
88
+ export interface PrincipalAddonReachInput {
89
+ readonly principal: BearerPrincipal;
90
+ readonly scopes: readonly TokenScope[];
91
+ readonly isAdmin: boolean;
92
+ readonly addonId: string;
93
+ /** The HTTP verb of the request being gated. */
94
+ readonly method: string;
95
+ }
96
+ /**
97
+ * The verdict, with the reason carried so the refusal can be LOGGED. A branch
98
+ * that drops a request silently reads as "never happened".
99
+ */
100
+ export type PrincipalAddonReachVerdict = {
101
+ readonly allowed: true;
102
+ } | {
103
+ readonly allowed: false;
104
+ readonly reason: string;
105
+ };
106
+ /**
107
+ * May this principal reach `/addon/<addonId>/…` on an `authenticated` route or
108
+ * data-plane endpoint?
109
+ *
110
+ * Three principals, three answers:
111
+ *
112
+ * - **session** — unchanged. A user session is governed by the route's own
113
+ * `access` (`authenticated` / `admin`), exactly as before. Tightening HERE
114
+ * would lock every non-admin viewer out of recorder playback, snapshot media
115
+ * and the stream-broker embed, which is a worse outcome than the hole.
116
+ * - **integration** — must hold `addon:<addonId>` at the verb's access. This is
117
+ * the same rule the `cst_` scoped-token branch has always applied; the JWT
118
+ * branch simply never applied it, and closing that divergence IS the fix.
119
+ * `isAdmin` is ignored: an integration token is minted `isAdmin: false` and a
120
+ * token claiming otherwise must not talk its way past the grant.
121
+ * - **not-a-credential** — refused unconditionally.
122
+ */
123
+ export declare function principalMayReachAddon(input: PrincipalAddonReachInput): PrincipalAddonReachVerdict;
@@ -40,21 +40,32 @@ import { type InferProvider } from './capability-definition.js';
40
40
  * core, and no per-integration branch anywhere: `/api/oauth2/authorize` and
41
41
  * `/api/oauth2/integrations` are built from this collection alone.
42
42
  *
43
- * **Scopes.** `requestedScopes` is baked into every token this integration is
44
- * ever issued and the operator consents to it once. Derive it from the tRPC
45
- * paths the client calls **with that token**, against `METHOD_ACCESS_MAP`, and
46
- * prefer a narrow `capability:` scope to a `category:` one unless the client
47
- * genuinely needs a whole family. A category scope grants every future member
43
+ * **Scopes. `requestedScopes` has exactly ONE meaning: what the integration
44
+ * NEEDS to function.** Not a blast radius, not a conservative
45
+ * under-declaration, not a description of some other path the addon happens to
46
+ * have. Derive it from what the client actually calls **with this token** —
47
+ * every tRPC path against `METHOD_ACCESS_MAP`, plus an `addon:` grant for every
48
+ * addon HTTP route it posts to — and write the call that justifies each entry
49
+ * next to it. Two integrations once used this field to mean two different
50
+ * things; the operator ruled there is one meaning, and any third integration
51
+ * inherits it (2026-08-09).
52
+ *
53
+ * This is not documentation, it is the ENFORCEMENT INPUT. Since
54
+ * [D103](../../../../docs/decisions/adr-0103.md) the `/addon/:addonId/*` gate
55
+ * checks an integration token's grant before letting it reach an
56
+ * `access: 'authenticated'` route, so an **under-declaration is an integration
57
+ * that stops working** — a missing `addon:` entry means `403 Token scope
58
+ * mismatch` on every control the client tries to actuate. Widen the descriptor
59
+ * honestly rather than weakening a check to make a route pass.
60
+ *
61
+ * Prefer a narrow `capability:` scope to a `category:` one unless the client
62
+ * genuinely needs a whole family; a category scope grants every future member
48
63
  * of that category too. `category:system [create]` has been rejected once and
49
64
  * should stay rejected: it hands `addons.installPackage` to an integration.
50
65
  *
51
- * What it does NOT cover: calls the ADDON makes over `ctx.api`, which run as
52
- * the addon and are not scope-checked. Alexa's descriptor is narrower than
53
- * Home Assistant's for exactly that reason its Lambda posts directives and
54
- * the addon does the work, while the Home Assistant component calls tRPC
55
- * directly with the token. So `requestedScopes` describes the blast radius of
56
- * the GRANT, not the reach of the integration; do not widen one to describe the
57
- * other.
66
+ * Calls the ADDON itself makes over `ctx.api` run as the addon and are not
67
+ * scope-checked, so they are not what this field describes but reaching the
68
+ * addon's route in the first place IS, and that is the entry to declare.
58
69
  *
59
70
  * **The boot window.** An addon registers its provider after its runner forks
60
71
  * and initialises, so between hub start and that moment this collection is
@@ -109,6 +120,7 @@ declare const OauthIntegrationDescriptorSchema: z.ZodObject<{
109
120
  allowedPrivateHostPaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
110
121
  requiresPkce: z.ZodOptional<z.ZodBoolean>;
111
122
  hubUrl: z.ZodOptional<z.ZodString>;
123
+ refreshTokenTtlSec: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"never">]>>;
112
124
  }, z.core.$strip>;
113
125
  export declare const oauthIntegrationCapability: {
114
126
  readonly name: "oauth-integration";
@@ -159,6 +171,7 @@ export declare const oauthIntegrationCapability: {
159
171
  allowedPrivateHostPaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
160
172
  requiresPkce: z.ZodOptional<z.ZodBoolean>;
161
173
  hubUrl: z.ZodOptional<z.ZodString>;
174
+ refreshTokenTtlSec: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"never">]>>;
162
175
  }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
163
176
  };
164
177
  };
@@ -63,6 +63,7 @@ declare const SsoBridgeClaimsSchema: z.ZodObject<{
63
63
  jti: z.ZodOptional<z.ZodString>;
64
64
  codeChallenge: z.ZodOptional<z.ZodString>;
65
65
  sessionId: z.ZodOptional<z.ZodString>;
66
+ refreshTtl: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"never">]>>;
66
67
  }, z.core.$strip>;
67
68
  export declare const ssoBridgeCapability: {
68
69
  readonly name: "sso-bridge";
@@ -120,8 +121,9 @@ export declare const ssoBridgeCapability: {
120
121
  jti: z.ZodOptional<z.ZodString>;
121
122
  codeChallenge: z.ZodOptional<z.ZodString>;
122
123
  sessionId: z.ZodOptional<z.ZodString>;
124
+ refreshTtl: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"never">]>>;
123
125
  }, z.core.$strip>;
124
- ttlSec: z.ZodOptional<z.ZodNumber>;
126
+ ttlSec: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"never">]>>;
125
127
  }, z.core.$strip>, z.ZodObject<{
126
128
  token: z.ZodString;
127
129
  }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
@@ -176,6 +178,7 @@ export declare const ssoBridgeCapability: {
176
178
  jti: z.ZodOptional<z.ZodString>;
177
179
  codeChallenge: z.ZodOptional<z.ZodString>;
178
180
  sessionId: z.ZodOptional<z.ZodString>;
181
+ refreshTtl: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"never">]>>;
179
182
  }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
180
183
  };
181
184
  };
@@ -938,6 +938,7 @@ export declare const userManagementCapability: {
938
938
  redirectUri: z.ZodString;
939
939
  hubUrl: z.ZodString;
940
940
  codeChallenge: z.ZodOptional<z.ZodString>;
941
+ refreshTtlSec: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"never">]>>;
941
942
  }, z.core.$strip>, z.ZodObject<{
942
943
  code: z.ZodString;
943
944
  }, z.core.$strip>, "mutation">;
package/dist/index.d.ts CHANGED
@@ -113,6 +113,7 @@ export * from './types/pipeline.js';
113
113
  export type { AvailableEngine, PipelineAddonSchema, PipelineDefaultStep, PipelineModelOption, PipelineSchema, PipelineSlotSchema, PipelineTemplate, PipelineTemplateStep, TemplateValidationResult, } from './types/pipeline-schema.js';
114
114
  export * from './types/pipeline-step.js';
115
115
  export * from './types/tracked.js';
116
+ export { type BearerPayloadShape, type BearerPrincipal, classifyBearerPrincipal, methodAccessForHttpMethod, type PrincipalAddonReachInput, type PrincipalAddonReachVerdict, principalMayReachAddon, scopesAllowAddon, scopesAllowDeviceCap, } from './auth/principal-scope.js';
116
117
  export type { AutomationAction, AutomationCondition, AutomationConditionAll, AutomationConditionAny, AutomationConditionExpression, AutomationConditionLeaf, AutomationConditionNot, AutomationConditionOperator, AutomationRecipe, AutomationTrigger, GenerateAutomationBlockInput, } from './automation/index.js';
117
118
  export { AutomationActionSchema, AutomationConditionOperatorSchema, AutomationConditionSchema, AutomationRecipeSchema, AutomationTriggerSchema, conditionDepth, countConditionLeaves, generateAutomationBlock, MAX_CONDITION_DEPTH, MAX_CONDITION_LEAVES, validateRecipeBounds, } from './automation/index.js';
118
119
  export * from './cap-call-context.js';
package/dist/index.js CHANGED
@@ -2469,6 +2469,102 @@ var ConvertResultSchema = zod.z.object({
2469
2469
  artifacts: zod.z.array(ConvertArtifactSchema).readonly()
2470
2470
  });
2471
2471
  //#endregion
2472
+ //#region src/auth/principal-scope.ts
2473
+ /**
2474
+ * The access flavour an HTTP verb asks for. `GET`/`HEAD` read; anything that
2475
+ * can change state is at least `create`.
2476
+ *
2477
+ * An UNRECOGNISED verb resolves to `delete`, the most privileged flavour, so a
2478
+ * method nobody thought about fails closed. The inverse default — treating the
2479
+ * unknown as `view` — is how a gate quietly stops gating.
2480
+ */
2481
+ function methodAccessForHttpMethod(method) {
2482
+ switch (method.toUpperCase()) {
2483
+ case "GET":
2484
+ case "HEAD":
2485
+ case "OPTIONS": return "view";
2486
+ case "POST":
2487
+ case "PUT":
2488
+ case "PATCH": return "create";
2489
+ default: return "delete";
2490
+ }
2491
+ }
2492
+ /**
2493
+ * True if the scope set grants `access` on device-scoped capabilities.
2494
+ * A `category:device` grant covers every device cap (the broad grant).
2495
+ */
2496
+ function scopesAllowDeviceCap(scopes, access) {
2497
+ return scopes.some((s) => s.type === "category" && s.target === "device" && s.access.includes(access));
2498
+ }
2499
+ /**
2500
+ * True if the scope set names this addon with at least `access`.
2501
+ *
2502
+ * Deliberately NOT satisfied by `category:device`: a grant over per-camera
2503
+ * capabilities says nothing about an addon's own HTTP surface, and conflating
2504
+ * the two is precisely the confusion that let an Alexa token drive Home
2505
+ * Assistant's command route.
2506
+ */
2507
+ function scopesAllowAddon(scopes, addonId, access) {
2508
+ return scopes.some((s) => s.type === "addon" && s.target === addonId && s.access.includes(access));
2509
+ }
2510
+ /**
2511
+ * Classify a VERIFIED JWT payload.
2512
+ *
2513
+ * A session JWT carries no `kind`. Everything else in this system tags itself:
2514
+ * `kind: 'sso-bridge'` for the OAuth/SSO family (discriminated further by
2515
+ * `provider`), `kind: 'totp-challenge'` for login leg 1. Only `oauth-access` is
2516
+ * an API credential; a code lives in a browser redirect URL and a refresh token
2517
+ * belongs to `/token`.
2518
+ */
2519
+ function classifyBearerPrincipal(payload) {
2520
+ const kind = payload.kind;
2521
+ if (kind === void 0) return { kind: "session" };
2522
+ if (kind !== "sso-bridge") return {
2523
+ kind: "not-a-credential",
2524
+ reason: `bridge token kind=${String(kind)}`
2525
+ };
2526
+ const provider = payload.provider;
2527
+ if (provider === "oauth-access") return {
2528
+ kind: "integration",
2529
+ provider: "oauth-access"
2530
+ };
2531
+ return {
2532
+ kind: "not-a-credential",
2533
+ reason: `bridge token provider=${String(provider)}`
2534
+ };
2535
+ }
2536
+ /**
2537
+ * May this principal reach `/addon/<addonId>/…` on an `authenticated` route or
2538
+ * data-plane endpoint?
2539
+ *
2540
+ * Three principals, three answers:
2541
+ *
2542
+ * - **session** — unchanged. A user session is governed by the route's own
2543
+ * `access` (`authenticated` / `admin`), exactly as before. Tightening HERE
2544
+ * would lock every non-admin viewer out of recorder playback, snapshot media
2545
+ * and the stream-broker embed, which is a worse outcome than the hole.
2546
+ * - **integration** — must hold `addon:<addonId>` at the verb's access. This is
2547
+ * the same rule the `cst_` scoped-token branch has always applied; the JWT
2548
+ * branch simply never applied it, and closing that divergence IS the fix.
2549
+ * `isAdmin` is ignored: an integration token is minted `isAdmin: false` and a
2550
+ * token claiming otherwise must not talk its way past the grant.
2551
+ * - **not-a-credential** — refused unconditionally.
2552
+ */
2553
+ function principalMayReachAddon(input) {
2554
+ const { principal } = input;
2555
+ if (principal.kind === "not-a-credential") return {
2556
+ allowed: false,
2557
+ reason: principal.reason
2558
+ };
2559
+ if (principal.kind === "session") return { allowed: true };
2560
+ const access = methodAccessForHttpMethod(input.method);
2561
+ if (scopesAllowAddon(input.scopes, input.addonId, access)) return { allowed: true };
2562
+ return {
2563
+ allowed: false,
2564
+ reason: `integration token holds no addon:${input.addonId}[${access}] grant`
2565
+ };
2566
+ }
2567
+ //#endregion
2472
2568
  //#region src/expression/errors.ts
2473
2569
  /**
2474
2570
  * Error types for the safe expression engine. Two distinct classes so callers
@@ -13046,21 +13142,32 @@ var ScopedTokenSchema = zod.z.object({
13046
13142
  * core, and no per-integration branch anywhere: `/api/oauth2/authorize` and
13047
13143
  * `/api/oauth2/integrations` are built from this collection alone.
13048
13144
  *
13049
- * **Scopes.** `requestedScopes` is baked into every token this integration is
13050
- * ever issued and the operator consents to it once. Derive it from the tRPC
13051
- * paths the client calls **with that token**, against `METHOD_ACCESS_MAP`, and
13052
- * prefer a narrow `capability:` scope to a `category:` one unless the client
13053
- * genuinely needs a whole family. A category scope grants every future member
13145
+ * **Scopes. `requestedScopes` has exactly ONE meaning: what the integration
13146
+ * NEEDS to function.** Not a blast radius, not a conservative
13147
+ * under-declaration, not a description of some other path the addon happens to
13148
+ * have. Derive it from what the client actually calls **with this token** —
13149
+ * every tRPC path against `METHOD_ACCESS_MAP`, plus an `addon:` grant for every
13150
+ * addon HTTP route it posts to — and write the call that justifies each entry
13151
+ * next to it. Two integrations once used this field to mean two different
13152
+ * things; the operator ruled there is one meaning, and any third integration
13153
+ * inherits it (2026-08-09).
13154
+ *
13155
+ * This is not documentation, it is the ENFORCEMENT INPUT. Since
13156
+ * [D103](../../../../docs/decisions/adr-0103.md) the `/addon/:addonId/*` gate
13157
+ * checks an integration token's grant before letting it reach an
13158
+ * `access: 'authenticated'` route, so an **under-declaration is an integration
13159
+ * that stops working** — a missing `addon:` entry means `403 Token scope
13160
+ * mismatch` on every control the client tries to actuate. Widen the descriptor
13161
+ * honestly rather than weakening a check to make a route pass.
13162
+ *
13163
+ * Prefer a narrow `capability:` scope to a `category:` one unless the client
13164
+ * genuinely needs a whole family; a category scope grants every future member
13054
13165
  * of that category too. `category:system [create]` has been rejected once and
13055
13166
  * should stay rejected: it hands `addons.installPackage` to an integration.
13056
13167
  *
13057
- * What it does NOT cover: calls the ADDON makes over `ctx.api`, which run as
13058
- * the addon and are not scope-checked. Alexa's descriptor is narrower than
13059
- * Home Assistant's for exactly that reason its Lambda posts directives and
13060
- * the addon does the work, while the Home Assistant component calls tRPC
13061
- * directly with the token. So `requestedScopes` describes the blast radius of
13062
- * the GRANT, not the reach of the integration; do not widen one to describe the
13063
- * other.
13168
+ * Calls the ADDON itself makes over `ctx.api` run as the addon and are not
13169
+ * scope-checked, so they are not what this field describes but reaching the
13170
+ * addon's route in the first place IS, and that is the entry to declare.
13064
13171
  *
13065
13172
  * **The boot window.** An addon registers its provider after its runner forks
13066
13173
  * and initialises, so between hub start and that moment this collection is
@@ -13101,7 +13208,30 @@ var OauthIntegrationDescriptorSchema = zod.z.object({
13101
13208
  * present, /api/oauth2/authorize bakes THIS into the code instead of the
13102
13209
  * hub-global `publicHubUrl()`, so a forked exporter addon (which can't set
13103
13210
  * the hub's env) drives the claim that its cloud Lambda routes back on. */
13104
- hubUrl: zod.z.string().optional()
13211
+ hubUrl: zod.z.string().optional(),
13212
+ /**
13213
+ * How long a REFRESH token issued for this integration lives — seconds, or
13214
+ * `'never'` for a token minted with no `exp` claim at all. Omit to keep the
13215
+ * 30-day default, which is what every link used before this field existed.
13216
+ *
13217
+ * Declared here for the same reason `requestedScopes` is: the integration
13218
+ * knows what it needs. Amazon's account linking and a Home Assistant config
13219
+ * entry are both meant to survive indefinitely, and re-linking is a manual
13220
+ * user action, so a 30-day expiry silently unlinks a working integration.
13221
+ *
13222
+ * **The security posture, stated so it is owned deliberately.** A refresh
13223
+ * token that never expires is permanent access if it leaks. What bounds it is
13224
+ * revocation, not time: `oauthRefresh` re-reads the session on every use and
13225
+ * returns `null` once `revokedAt` is set, as does `oauthVerifyAccessToken`.
13226
+ * The one gap is the ACCESS token — it is a plain signed JWT that nothing
13227
+ * re-checks against the session on the `/trpc` and `/addon/*` paths, so
13228
+ * revoking a link takes effect there only after its remaining hour. That hour
13229
+ * is why the access TTL is not configurable.
13230
+ *
13231
+ * The value is baked into the authorization code at `/authorize` and travels
13232
+ * on the tokens, so editing this field changes FUTURE links only.
13233
+ */
13234
+ refreshTokenTtlSec: zod.z.union([zod.z.number().int().positive(), zod.z.literal("never")]).optional()
13105
13235
  });
13106
13236
  var oauthIntegrationCapability = {
13107
13237
  name: "oauth-integration",
@@ -17616,7 +17746,16 @@ var SsoBridgeClaimsSchema = zod.z.object({
17616
17746
  codeChallenge: zod.z.string().optional(),
17617
17747
  /** OAuth session registry id — set on `oauth-access`/`oauth-refresh`
17618
17748
  * tokens so the verify path can check the session is not revoked. */
17619
- sessionId: zod.z.string().optional()
17749
+ sessionId: zod.z.string().optional(),
17750
+ /**
17751
+ * The refresh lifetime this LINK was created with, in seconds, or `'never'`.
17752
+ * Baked into the code at `/authorize` from the integration's descriptor and
17753
+ * carried forward so `oauthRefresh` re-mints with the same lifetime. It rides
17754
+ * on the token rather than being re-read from the descriptor on purpose:
17755
+ * editing a descriptor must not retroactively extend or shorten a link the
17756
+ * operator already consented to.
17757
+ */
17758
+ refreshTtl: zod.z.union([zod.z.number().int().positive(), zod.z.literal("never")]).optional()
17620
17759
  });
17621
17760
  var ssoBridgeCapability = {
17622
17761
  name: "sso-bridge",
@@ -17626,7 +17765,16 @@ var ssoBridgeCapability = {
17626
17765
  methods: {
17627
17766
  signBridgeToken: require_sleep.method(zod.z.object({
17628
17767
  claims: SsoBridgeClaimsSchema,
17629
- ttlSec: zod.z.number().int().positive().optional()
17768
+ /**
17769
+ * Seconds, or `'never'` for a token minted with NO `exp` claim.
17770
+ *
17771
+ * `'never'` is a literal rather than `undefined`/`0` because omitting
17772
+ * this field already means "the 5-minute SSO hand-off default", and
17773
+ * `jwt.sign` THROWS on `{ expiresIn: undefined }` — a "no expiry" that
17774
+ * went through the numeric path would fail at mint time and break
17775
+ * linking rather than produce an eternal token.
17776
+ */
17777
+ ttlSec: zod.z.union([zod.z.number().int().positive(), zod.z.literal("never")]).optional()
17630
17778
  }), zod.z.object({ token: zod.z.string() })),
17631
17779
  verifyBridgeToken: require_sleep.method(zod.z.object({ token: zod.z.string() }), SsoBridgeClaimsSchema.nullable())
17632
17780
  }
@@ -26708,7 +26856,12 @@ var userManagementCapability = {
26708
26856
  hubUrl: zod.z.string(),
26709
26857
  /** PKCE (RFC 7636) S256 challenge. Baked into the signed code; a code
26710
26858
  * that carries one can ONLY be exchanged with the matching verifier. */
26711
- codeChallenge: zod.z.string().optional()
26859
+ codeChallenge: zod.z.string().optional(),
26860
+ /** The integration's declared refresh lifetime — seconds, or `'never'`.
26861
+ * From `OauthIntegrationDescriptor.refreshTokenTtlSec`. Baked into the
26862
+ * code so the link carries its own lifetime; omit for the 30-day
26863
+ * default. */
26864
+ refreshTtlSec: zod.z.union([zod.z.number().int().positive(), zod.z.literal("never")]).optional()
26712
26865
  }), zod.z.object({ code: zod.z.string() }), {
26713
26866
  kind: "mutation",
26714
26867
  access: "create"
@@ -40501,6 +40654,7 @@ exports.canConvertUnit = canConvertUnit;
40501
40654
  exports.canonicalEgressPlan = canonicalEgressPlan;
40502
40655
  exports.carbonMonoxideCapability = carbonMonoxideCapability;
40503
40656
  exports.cellsToRects = cellsToRects;
40657
+ exports.classifyBearerPrincipal = classifyBearerPrincipal;
40504
40658
  exports.classifyStream = classifyStream;
40505
40659
  exports.classifyStreams = classifyStreams;
40506
40660
  exports.climateControlCapability = climateControlCapability;
@@ -40647,6 +40801,7 @@ exports.mediaPlayerCapability = mediaPlayerCapability;
40647
40801
  exports.mergeSourceInfo = mergeSourceInfo;
40648
40802
  exports.meshNetworkCapability = meshNetworkCapability;
40649
40803
  exports.method = require_sleep.method;
40804
+ exports.methodAccessForHttpMethod = methodAccessForHttpMethod;
40650
40805
  exports.metricsProviderCapability = metricsProviderCapability;
40651
40806
  exports.modelConvertCapability = modelConvertCapability;
40652
40807
  exports.modelDistributorCapability = modelDistributorCapability;
@@ -40695,6 +40850,7 @@ exports.powerMeterCapability = powerMeterCapability;
40695
40850
  exports.prepareNotification = prepareNotification;
40696
40851
  exports.presenceCapability = presenceCapability;
40697
40852
  exports.pressureSensorCapability = pressureSensorCapability;
40853
+ exports.principalMayReachAddon = principalMayReachAddon;
40698
40854
  exports.privacyMaskCapability = privacyMaskCapability;
40699
40855
  exports.procedureAuthKey = procedureAuthKey;
40700
40856
  exports.ptzAutotrackCapability = ptzAutotrackCapability;
@@ -40730,6 +40886,8 @@ exports.runInferenceStep = runInferenceStep;
40730
40886
  exports.runtimeDevices = runtimeDevices;
40731
40887
  exports.sceneMonitorCapability = sceneMonitorCapability;
40732
40888
  exports.scopeKey = require_sleep.scopeKey;
40889
+ exports.scopesAllowAddon = scopesAllowAddon;
40890
+ exports.scopesAllowDeviceCap = scopesAllowDeviceCap;
40733
40891
  exports.scoreRuntimes = scoreRuntimes;
40734
40892
  exports.scriptRunnerCapability = scriptRunnerCapability;
40735
40893
  exports.selectAssignedProfileSlots = require_sleep.selectAssignedProfileSlots;
package/dist/index.mjs CHANGED
@@ -2468,6 +2468,102 @@ var ConvertResultSchema = z.object({
2468
2468
  artifacts: z.array(ConvertArtifactSchema).readonly()
2469
2469
  });
2470
2470
  //#endregion
2471
+ //#region src/auth/principal-scope.ts
2472
+ /**
2473
+ * The access flavour an HTTP verb asks for. `GET`/`HEAD` read; anything that
2474
+ * can change state is at least `create`.
2475
+ *
2476
+ * An UNRECOGNISED verb resolves to `delete`, the most privileged flavour, so a
2477
+ * method nobody thought about fails closed. The inverse default — treating the
2478
+ * unknown as `view` — is how a gate quietly stops gating.
2479
+ */
2480
+ function methodAccessForHttpMethod(method) {
2481
+ switch (method.toUpperCase()) {
2482
+ case "GET":
2483
+ case "HEAD":
2484
+ case "OPTIONS": return "view";
2485
+ case "POST":
2486
+ case "PUT":
2487
+ case "PATCH": return "create";
2488
+ default: return "delete";
2489
+ }
2490
+ }
2491
+ /**
2492
+ * True if the scope set grants `access` on device-scoped capabilities.
2493
+ * A `category:device` grant covers every device cap (the broad grant).
2494
+ */
2495
+ function scopesAllowDeviceCap(scopes, access) {
2496
+ return scopes.some((s) => s.type === "category" && s.target === "device" && s.access.includes(access));
2497
+ }
2498
+ /**
2499
+ * True if the scope set names this addon with at least `access`.
2500
+ *
2501
+ * Deliberately NOT satisfied by `category:device`: a grant over per-camera
2502
+ * capabilities says nothing about an addon's own HTTP surface, and conflating
2503
+ * the two is precisely the confusion that let an Alexa token drive Home
2504
+ * Assistant's command route.
2505
+ */
2506
+ function scopesAllowAddon(scopes, addonId, access) {
2507
+ return scopes.some((s) => s.type === "addon" && s.target === addonId && s.access.includes(access));
2508
+ }
2509
+ /**
2510
+ * Classify a VERIFIED JWT payload.
2511
+ *
2512
+ * A session JWT carries no `kind`. Everything else in this system tags itself:
2513
+ * `kind: 'sso-bridge'` for the OAuth/SSO family (discriminated further by
2514
+ * `provider`), `kind: 'totp-challenge'` for login leg 1. Only `oauth-access` is
2515
+ * an API credential; a code lives in a browser redirect URL and a refresh token
2516
+ * belongs to `/token`.
2517
+ */
2518
+ function classifyBearerPrincipal(payload) {
2519
+ const kind = payload.kind;
2520
+ if (kind === void 0) return { kind: "session" };
2521
+ if (kind !== "sso-bridge") return {
2522
+ kind: "not-a-credential",
2523
+ reason: `bridge token kind=${String(kind)}`
2524
+ };
2525
+ const provider = payload.provider;
2526
+ if (provider === "oauth-access") return {
2527
+ kind: "integration",
2528
+ provider: "oauth-access"
2529
+ };
2530
+ return {
2531
+ kind: "not-a-credential",
2532
+ reason: `bridge token provider=${String(provider)}`
2533
+ };
2534
+ }
2535
+ /**
2536
+ * May this principal reach `/addon/<addonId>/…` on an `authenticated` route or
2537
+ * data-plane endpoint?
2538
+ *
2539
+ * Three principals, three answers:
2540
+ *
2541
+ * - **session** — unchanged. A user session is governed by the route's own
2542
+ * `access` (`authenticated` / `admin`), exactly as before. Tightening HERE
2543
+ * would lock every non-admin viewer out of recorder playback, snapshot media
2544
+ * and the stream-broker embed, which is a worse outcome than the hole.
2545
+ * - **integration** — must hold `addon:<addonId>` at the verb's access. This is
2546
+ * the same rule the `cst_` scoped-token branch has always applied; the JWT
2547
+ * branch simply never applied it, and closing that divergence IS the fix.
2548
+ * `isAdmin` is ignored: an integration token is minted `isAdmin: false` and a
2549
+ * token claiming otherwise must not talk its way past the grant.
2550
+ * - **not-a-credential** — refused unconditionally.
2551
+ */
2552
+ function principalMayReachAddon(input) {
2553
+ const { principal } = input;
2554
+ if (principal.kind === "not-a-credential") return {
2555
+ allowed: false,
2556
+ reason: principal.reason
2557
+ };
2558
+ if (principal.kind === "session") return { allowed: true };
2559
+ const access = methodAccessForHttpMethod(input.method);
2560
+ if (scopesAllowAddon(input.scopes, input.addonId, access)) return { allowed: true };
2561
+ return {
2562
+ allowed: false,
2563
+ reason: `integration token holds no addon:${input.addonId}[${access}] grant`
2564
+ };
2565
+ }
2566
+ //#endregion
2471
2567
  //#region src/expression/errors.ts
2472
2568
  /**
2473
2569
  * Error types for the safe expression engine. Two distinct classes so callers
@@ -13045,21 +13141,32 @@ var ScopedTokenSchema = z.object({
13045
13141
  * core, and no per-integration branch anywhere: `/api/oauth2/authorize` and
13046
13142
  * `/api/oauth2/integrations` are built from this collection alone.
13047
13143
  *
13048
- * **Scopes.** `requestedScopes` is baked into every token this integration is
13049
- * ever issued and the operator consents to it once. Derive it from the tRPC
13050
- * paths the client calls **with that token**, against `METHOD_ACCESS_MAP`, and
13051
- * prefer a narrow `capability:` scope to a `category:` one unless the client
13052
- * genuinely needs a whole family. A category scope grants every future member
13144
+ * **Scopes. `requestedScopes` has exactly ONE meaning: what the integration
13145
+ * NEEDS to function.** Not a blast radius, not a conservative
13146
+ * under-declaration, not a description of some other path the addon happens to
13147
+ * have. Derive it from what the client actually calls **with this token** —
13148
+ * every tRPC path against `METHOD_ACCESS_MAP`, plus an `addon:` grant for every
13149
+ * addon HTTP route it posts to — and write the call that justifies each entry
13150
+ * next to it. Two integrations once used this field to mean two different
13151
+ * things; the operator ruled there is one meaning, and any third integration
13152
+ * inherits it (2026-08-09).
13153
+ *
13154
+ * This is not documentation, it is the ENFORCEMENT INPUT. Since
13155
+ * [D103](../../../../docs/decisions/adr-0103.md) the `/addon/:addonId/*` gate
13156
+ * checks an integration token's grant before letting it reach an
13157
+ * `access: 'authenticated'` route, so an **under-declaration is an integration
13158
+ * that stops working** — a missing `addon:` entry means `403 Token scope
13159
+ * mismatch` on every control the client tries to actuate. Widen the descriptor
13160
+ * honestly rather than weakening a check to make a route pass.
13161
+ *
13162
+ * Prefer a narrow `capability:` scope to a `category:` one unless the client
13163
+ * genuinely needs a whole family; a category scope grants every future member
13053
13164
  * of that category too. `category:system [create]` has been rejected once and
13054
13165
  * should stay rejected: it hands `addons.installPackage` to an integration.
13055
13166
  *
13056
- * What it does NOT cover: calls the ADDON makes over `ctx.api`, which run as
13057
- * the addon and are not scope-checked. Alexa's descriptor is narrower than
13058
- * Home Assistant's for exactly that reason its Lambda posts directives and
13059
- * the addon does the work, while the Home Assistant component calls tRPC
13060
- * directly with the token. So `requestedScopes` describes the blast radius of
13061
- * the GRANT, not the reach of the integration; do not widen one to describe the
13062
- * other.
13167
+ * Calls the ADDON itself makes over `ctx.api` run as the addon and are not
13168
+ * scope-checked, so they are not what this field describes but reaching the
13169
+ * addon's route in the first place IS, and that is the entry to declare.
13063
13170
  *
13064
13171
  * **The boot window.** An addon registers its provider after its runner forks
13065
13172
  * and initialises, so between hub start and that moment this collection is
@@ -13100,7 +13207,30 @@ var OauthIntegrationDescriptorSchema = z.object({
13100
13207
  * present, /api/oauth2/authorize bakes THIS into the code instead of the
13101
13208
  * hub-global `publicHubUrl()`, so a forked exporter addon (which can't set
13102
13209
  * the hub's env) drives the claim that its cloud Lambda routes back on. */
13103
- hubUrl: z.string().optional()
13210
+ hubUrl: z.string().optional(),
13211
+ /**
13212
+ * How long a REFRESH token issued for this integration lives — seconds, or
13213
+ * `'never'` for a token minted with no `exp` claim at all. Omit to keep the
13214
+ * 30-day default, which is what every link used before this field existed.
13215
+ *
13216
+ * Declared here for the same reason `requestedScopes` is: the integration
13217
+ * knows what it needs. Amazon's account linking and a Home Assistant config
13218
+ * entry are both meant to survive indefinitely, and re-linking is a manual
13219
+ * user action, so a 30-day expiry silently unlinks a working integration.
13220
+ *
13221
+ * **The security posture, stated so it is owned deliberately.** A refresh
13222
+ * token that never expires is permanent access if it leaks. What bounds it is
13223
+ * revocation, not time: `oauthRefresh` re-reads the session on every use and
13224
+ * returns `null` once `revokedAt` is set, as does `oauthVerifyAccessToken`.
13225
+ * The one gap is the ACCESS token — it is a plain signed JWT that nothing
13226
+ * re-checks against the session on the `/trpc` and `/addon/*` paths, so
13227
+ * revoking a link takes effect there only after its remaining hour. That hour
13228
+ * is why the access TTL is not configurable.
13229
+ *
13230
+ * The value is baked into the authorization code at `/authorize` and travels
13231
+ * on the tokens, so editing this field changes FUTURE links only.
13232
+ */
13233
+ refreshTokenTtlSec: z.union([z.number().int().positive(), z.literal("never")]).optional()
13104
13234
  });
13105
13235
  var oauthIntegrationCapability = {
13106
13236
  name: "oauth-integration",
@@ -17615,7 +17745,16 @@ var SsoBridgeClaimsSchema = z.object({
17615
17745
  codeChallenge: z.string().optional(),
17616
17746
  /** OAuth session registry id — set on `oauth-access`/`oauth-refresh`
17617
17747
  * tokens so the verify path can check the session is not revoked. */
17618
- sessionId: z.string().optional()
17748
+ sessionId: z.string().optional(),
17749
+ /**
17750
+ * The refresh lifetime this LINK was created with, in seconds, or `'never'`.
17751
+ * Baked into the code at `/authorize` from the integration's descriptor and
17752
+ * carried forward so `oauthRefresh` re-mints with the same lifetime. It rides
17753
+ * on the token rather than being re-read from the descriptor on purpose:
17754
+ * editing a descriptor must not retroactively extend or shorten a link the
17755
+ * operator already consented to.
17756
+ */
17757
+ refreshTtl: z.union([z.number().int().positive(), z.literal("never")]).optional()
17619
17758
  });
17620
17759
  var ssoBridgeCapability = {
17621
17760
  name: "sso-bridge",
@@ -17625,7 +17764,16 @@ var ssoBridgeCapability = {
17625
17764
  methods: {
17626
17765
  signBridgeToken: method(z.object({
17627
17766
  claims: SsoBridgeClaimsSchema,
17628
- ttlSec: z.number().int().positive().optional()
17767
+ /**
17768
+ * Seconds, or `'never'` for a token minted with NO `exp` claim.
17769
+ *
17770
+ * `'never'` is a literal rather than `undefined`/`0` because omitting
17771
+ * this field already means "the 5-minute SSO hand-off default", and
17772
+ * `jwt.sign` THROWS on `{ expiresIn: undefined }` — a "no expiry" that
17773
+ * went through the numeric path would fail at mint time and break
17774
+ * linking rather than produce an eternal token.
17775
+ */
17776
+ ttlSec: z.union([z.number().int().positive(), z.literal("never")]).optional()
17629
17777
  }), z.object({ token: z.string() })),
17630
17778
  verifyBridgeToken: method(z.object({ token: z.string() }), SsoBridgeClaimsSchema.nullable())
17631
17779
  }
@@ -26707,7 +26855,12 @@ var userManagementCapability = {
26707
26855
  hubUrl: z.string(),
26708
26856
  /** PKCE (RFC 7636) S256 challenge. Baked into the signed code; a code
26709
26857
  * that carries one can ONLY be exchanged with the matching verifier. */
26710
- codeChallenge: z.string().optional()
26858
+ codeChallenge: z.string().optional(),
26859
+ /** The integration's declared refresh lifetime — seconds, or `'never'`.
26860
+ * From `OauthIntegrationDescriptor.refreshTokenTtlSec`. Baked into the
26861
+ * code so the link carries its own lifetime; omit for the 30-day
26862
+ * default. */
26863
+ refreshTtlSec: z.union([z.number().int().positive(), z.literal("never")]).optional()
26711
26864
  }), z.object({ code: z.string() }), {
26712
26865
  kind: "mutation",
26713
26866
  access: "create"
@@ -39636,4 +39789,4 @@ function enumerateInferenceDevices(hw) {
39636
39789
  return out;
39637
39790
  }
39638
39791
  //#endregion
39639
- export { ACCESSORY_LABEL, ALEXA_EGRESS_PROFILE, ALL_CAPABILITY_DEFINITIONS, APPLE_SA_TO_MACRO, AUDIO_ANALYSIS_CAP_NAME, AUDIO_BACKEND_CHOICES, AUDIO_MACRO_LABELS, AUDIO_PRESETS, AccessoriesStatusSchema, AccessoryKind, AddBrokerInputSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AdoptInputSchema as AdoptionAdoptInputSchema, AdoptResultSchema as AdoptionAdoptResultSchema, AdoptionCandidateResultSchema, AdoptionFilterSchema, GetCandidateInputSchema as AdoptionGetCandidateInputSchema, AdoptionJobSchema, AdoptionJobStateSchema, ListCandidatesInputSchema as AdoptionListCandidatesInputSchema, ListCandidatesOutputSchema as AdoptionListCandidatesOutputSchema, AdoptionOutcomeSchema, ReleaseInputSchema as AdoptionReleaseInputSchema, AdoptionStatusSchema, AgentLoadSummarySchema, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, ApiKeyRecordSchema, ApiKeySummarySchema, ArchiveEntrySchema, ArchiveManifestSchema, AttachmentMediaTypeSchema, AttachmentSchema, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioChunkInputSchema, AudioClassSummarySchema, AudioClassificationLabelSchema, AudioClassificationResultSchema, AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioEncodeSchema, AudioEncodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEventSchema, AudioLevelSchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, AudioMetricsSnapshotSchema, AudioPcmChunkSchema, AuthResultSchema, AutoUpdateSettingsSchema, AutomationActionSchema, AutomationConditionOperatorSchema, AutomationConditionSchema, AutomationControlStatusSchema, AutomationRecipeSchema, AutomationTriggerSchema, AvailableIntegrationTypeSchema, BACKEND_TO_FORMAT, BASE_LIVE_EGRESS_PROFILE, BATTERY_DEVICE_PROFILE, BacklightModeSchema, BackupDestinationInfoSchema, BackupEntrySchema, BaseAddon, BaseDevice, BaseDeviceProvider, BatteryStatusSchema, BinaryStatusSchema, BoundingBoxSchema, BrightnessStatusSchema, AddInputSchema as BrokerAddInputSchema, BrokerAudioClientSchema, BrokerClientsSchema, BrokerConnectionDetailsSchema, BrokerConsumerAttributionSchema, BrokerConsumerKindSchema, BrokerDecodedClientSchema, BrokerEncodedClientSchema, GetStateInputSchema as BrokerGetStateInputSchema, BrokerInfoSchema, BrokerProviderInfoSchema, PublishInputSchema as BrokerPublishInputSchema, RegistryStatusSchema as BrokerRegistryStatusSchema, BrokerRtspClientSchema, BrokerStatsSchema, BrokerStatusEnum, BrokerStatusSchema, SubscribeInputSchema as BrokerSubscribeInputSchema, SubscribeResultSchema as BrokerSubscribeResultSchema, TestConnectionResultSchema as BrokerTestConnectionResultSchema, UnsubscribeInputSchema as BrokerUnsubscribeInputSchema, CAMERA_SWITCH_CATALOG, CAMERA_SWITCH_ORDER, CAM_PROFILE_ORDER, CAPABILITY_NAMES, CAPABILITY_ROUTER_KEYS, CAP_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, COCO_80_LABELS, COCO_TO_MACRO, CONNECTION_TEST_TIMEOUT_MS, CORE_BLOCKS_ADDON_ID, CORE_BLOCK_ADDON_PREFIX, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusDegradationReasonSchema, CameraStatusDegradationSchema, CameraStatusSchema, CameraStatusStageSchema, CameraStreamSchema, CameraSwitchAuthoritySchema, CameraSwitchGroupSchema, CameraSwitchIdSchema, CameraSwitchSchema, CameraSwitchUnavailableReasonSchema, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CarbonMonoxideStatusSchema, ChargingStatus, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipPlaybackSchema, ClipSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectionTestDescriptorSchema, ConnectionTestInputSchema, ConnectionTestOutcomeSchema, ConnectivityStatusSchema, ConsumableItemSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoreBlockCompileResultSchema, CoreBlockInputSchema, CoreBlockPlacementSchema, CoreBlockSchema, CoreBlockStatusSchema, CoverStateSchema, CoverStatusSchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateIntegrationInputSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, CustomActionInputSchema, CustomModelDescriptorSchema, DATAPLANE_SECRET_HEADER, DECLARED_DEVICE_SWEEP_LIMIT, DECLARED_INTEGRATION_FIXED_KEY, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_DETAIL_CROP_CONVENTION, DEFAULT_EVENTS_BAND_BUFFER_SEC, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_NATIVE_LEASE_SETTINGS, DEFAULT_RETENTION, DEFAULT_SCRUB_THUMBNAIL_PRESET, DETAIL_CROP_PADDING_FIELD, DETAIL_CROP_PADDING_KEY, DETAIL_CROP_SECTION_ID, DETAIL_CROP_SQUARE_KEY, DETECTION_PIPELINE_CAP_NAME, DEVICE_BACKEND_TO_FORMAT, DEVICE_CAP_NAMES, DEVICE_PROFILES, DEVICE_SCOPED_CAPS, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATE_READERS, DEVICE_STATUS_METHOD, DEVICE_TYPE_CONTROL_KIND, DEVICE_TYPE_INFO, EngineInfoSchema as DataStoreEngineInfoSchema, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DeclaredDevices, DecodedAudioChunkSchema, DecodedFrameSchema, DecoderSessionConfigSchema, DecoderStatsSchema, DeleteIntegrationResultSchema, DetailCropConventionSchema, DetectionSourceSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceNetworkStatsSchema, DeviceRole, DeviceRuntimeState, DeviceStatusSchema, DeviceType, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENTFUL_CAP_NAMES, EVENT_KIND_BY_CAP, EVENT_PAD_MS, EVENT_TAXONOMY, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, EgressEncodeSchema, EgressRateControlSchema, EgressTranscodeRequestSchema, EgressTranscodeSchema, ElementConfigStore, EmbeddingInfoSchema, EmbeddingResultSchema, EncodeProfileSchema, EncodedPacketSchema, EnrichedWidgetMetadataSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, EventCategory, EventEmitterStatusSchema, EventFireSchema, EventItemSchema, EventKindCategorySchema, EventKindDescriptorSchema, EventKindIconSchema, EventKindSchema, EventKindsForDeviceSchema, EventMediaArtifactSchema, EventMediaCoverageSchema, EventMediaKindSchema, EventMediaProductionSchema, EventSourceType, ExportDownloadSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportTimelapseSchema, ExposedDeviceSchema, ExposureModeSchema, ExpressionBindingSourceSchema, ExpressionEvalError, ExpressionFieldBindingSchema, ExpressionGlobalBindingSchema, ExpressionLiteralBindingSchema, ExpressionParseError, ExpressionSourceSchema, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, Fmp4BoxSplitter, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, GasStatusSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, HAP_AUDIO_BASE, HAP_AUDIO_BITRATE_KBPS, HAP_AUDIO_VBV_KBITS, HAP_KEYFRAME_INTERVAL_SEC, HF_BASE_URL, HF_REPO, HWACCEL_OPTIONS, HealthStatusSchema, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ImageContractSchema, ImageContractStateSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, KeyEventSchema, LOG_LEVEL_RANK, LabelAttributionSchema, LabelDefinitionSchema, LabelTierSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LinkedDeviceSchema, LinkedDevicesModeSchema, LlmDefaultSchema, LlmDefaultSelectorSchema, LlmErrorCodeSchema, LlmGenerateBaseInputSchema, LlmGenerateErrSchema, LlmGenerateOkSchema, LlmGenerateResultSchema, LlmImageSchema, LlmNodeModelSchema, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, LlmRuntimeCompleteInputSchema, LlmRuntimeDiskUsageSchema, LlmRuntimeNodeSchema, LlmRuntimeStatusSchema, LlmUsageRollupSchema, LlmUsageSchema, LocateSegmentResultSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogEntrySchema, LogLevelSchema, LogStreamEntrySchema, LoginMethodContributionSchema, LoginStageEnum, MACRO_LABELS, MAX_CONDITION_DEPTH, MAX_CONDITION_LEAVES, MAX_EXPRESSION_AST_NODES, MAX_EXPRESSION_BINDINGS, MAX_EXPRESSION_CALL_ARGS, MAX_EXPRESSION_EVAL_STEPS, MAX_EXPRESSION_SOURCE_LENGTH, METHOD_ACCESS_MAP, MODEL_FORMATS, MOTION_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileInfoSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MeshPeerSchema, MeshStatusSchema, MethodAccessSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatsSchema, ModelSubstitutionSchema, ModelVariantGroupSchema, MotionAnalysisResultSchema, MotionEventSchema, MotionOnMotionChangedDataSchema, MotionRegionSchema, MotionSourceEnum, MotionSourcesSchema, MotionStatusSchema, MotionTriggerRuntimeStateSchema, MotionTriggerStatusSchema, MotionZoneOptionsSchema, MotionZonePatchSchema, MotionZoneRegionSchema, MotionZoneStatusSchema, StatusSchema as MqttBrokerStatusSchema, MutationFilterSchema, NATIVE_LEASE_ACTIVITY_FIELD, NATIVE_LEASE_ACTIVITY_KEY, NATIVE_LEASE_ADMISSION_FIELD, NATIVE_LEASE_ADMISSION_KEY, NATIVE_LEASE_BUDGET_FIELD, NATIVE_LEASE_BUDGET_KEY, NATIVE_LEASE_SECTION_ID, NATIVE_LEASE_TTL_FIELD, NATIVE_LEASE_TTL_KEY, NC_BASE_CONDITION_KEYS, NC_CONDITION_CATALOG, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_SNOOZE_MAX_MINUTES, NC_TAXONOMY, NativeCropBboxSchema, NativeCropRefSchema, NativeCropResultSchema, NativeDetectionSchema, NativeLeaseAdmissionSchema, NativeLeaseSettingsSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NcAlarmConfigSchema, NcAlarmModeCoverageSchema, NcAlarmSettingsPatchSchema, NcAlarmSettingsSchema, NcConditionDescriptorSchema, NcConditionsSchema, NcCrossingSchema, NcDeliverySchema, NcDeviceStateConditionSchema, NcHistoryEntrySchema, NcHistoryFilterSchema, NcHistoryRecordKindSchema, NcHistoryStatusSchema, NcHistorySubjectSchema, NcMediaFrameSchema, NcMediaPolicySchema, NcOccupancyConditionSchema, NcPlateMatcherSchema, NcRuleActionSchema, NcRuleActionSequenceSchema, NcRuleActionsSchema, NcRuleInputSchema, NcRuleNotificationButtonSchema, NcRulePatchSchema, NcRuleSchema, NcRuleTargetSchema, NcScheduleSchema, NcScheduleWindowSchema, NcSnoozeInputSchema, NcSnoozeSchema, NcSnoozeScopeSchema, NcSnoozeSuppressedSchema, NcTaxonomyEntrySchema, NcTaxonomySchema, NcTestResultSchema, NcThrottleGranularitySchema, NcThrottleSchema, NcZoneConditionSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NotificationActionIconSchema, NotificationActionSchema, NotificationFormatSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OPS_LOG_DEFAULT_LIMIT, OPS_LOG_RING_DEFAULT_MAX, OauthIntegrationDescriptorSchema, ObjectEventSchema, OpsLogDomainSchema, OpsLogEntrySchema, OpsLogOpSchema, OpsLogQueryInputSchema, OpsLogReasonSchema, OrchestratorMetricsSchema, OsdOverlayKindEnum, OsdOverlayPatchSchema, OsdOverlaySchema, OsdPositionEnum, OsdRenderOutcomeEnum, OsdRenderResultSchema, OsdSlotBindingSchema, OsdSlotViewSchema, OsdSourceOptionSchema, OsdSourceSchema, OsdSourceValueTypeEnum, OsdStatusSchema, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PRIVACY_MASK_CAP_NAME, PROVIDER_KIND_CAP_NAMES, PYTHON_SCRIPT, PackageUpdateSchema, PackageVersionInfoSchema, PasskeyLoginMethodSchema, PasskeySummarySchema, PcmSampleFormatSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, PlaceholderReasonSchema, PolygonPointSchema, PowerMeterStatusSchema, PresenceStatusSchema, PressureSensorStatusSchema, PrivacyMaskOptionsSchema, PrivacyMaskPatchSchema, PrivacyMaskRegionSchema, PrivacyMaskShapeSchema, PrivacyMaskStatusSchema, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, ProviderStatusSchema, PtzAutotrackRuntimeStateSchema, PtzAutotrackSettingsSchema, PtzAutotrackStatusSchema, PtzAutotrackTargetOptionSchema, PtzMoveCommandSchema, PtzOptionsSchema, PtzPositionSchema, PtzPresetSchema, PtzStatusSchema, QueryFilterSchema, RATE_CONTROL_RELAXED, RATE_CONTROL_TIGHT, REACHABILITY_FAILURES_TO_OFFLINE, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_PROBE_TIMEOUT_MS, RECOGNITION_TYPES, RESERVED_BINDING_NAMES, RUNTIME_DEFAULTS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadGopBytesResultSchema, ReadSegmentBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecentTracksPageSchema, RecentTracksQueryInput, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingRangeSchema, RecordingRetentionSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RelocateFootageInputSchema, RelocateJobSchema, RelocateJobStateSchema, RelocateMediaInputSchema, RenderedAsSchema, ReportMotionInputSchema, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainCopyRefusalSchema, RetrainFrameCandidateSchema, RetrainFrameListSchema, RetrainFrameSchema, RetrainFrameSelectionSchema, RetrainMacroClassSchema, RetrainStatusSchema, RetrainTrackSchema, RetrainTransitionResultSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, SCOPE_PRESETS, SCRUB_THUMBNAIL_PRESETS, SCRUB_THUMBNAIL_PRESET_LABELS, SCRUB_THUMBNAIL_PRESET_ORDER, SENSOR_FEATURES, SENSOR_MAP, SOURCE_INFO_METADATA_KEY, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUB_DETECTION_TYPES, SYSTEM_CAP_NAMES, SceneCheckSchema, SceneConditionSchema, SceneMonitorSchema, SceneMonitorStateSchema, SceneMonitorStatusSchema, SceneReferenceSchema, ScopedTokenSchema, ScopedTokenSummarySchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, ScrubThumbnailPresetSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SensorEventSchema, ServerBootModeSchema, ServerPackageStatusSchema, ServerRollbackInfoSchema, ServerUpdateActionResultSchema, ServerUpdateCheckResultSchema, ServerUpdateStateSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShmRingStatsSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StartEmbeddedInputSchema, StationaryObjectSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageLocationDeclarationSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, ProviderInfoSchema as StorageProviderInfoSchema, ReadChunkInputSchema as StorageReadChunkInputSchema, TestLocationResultSchema as StorageTestLocationResultSchema, WriteChunkInputSchema as StorageWriteChunkInputSchema, StreamCodecSchema, StreamFormatSchema, StreamNetworkStatsSchema, StreamParamsOptionsSchema, StreamParamsStatusSchema, StreamProfileConfigSchema, StreamProfileOptionsSchema, StreamProfilePatchSchema, StreamProfileSchema, StreamSourceEntrySchema, StreamSourceSchema, SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, SubscribeFramesInputSchema, SubscribeFramesResultSchema, SwitchStatusSchema, SystemMetricsSchema, SystemMirror, TAXONOMY_COLORS, TIMEZONES, TRANSCODE_DOWN_MAX_BITRATE_KBPS, TRANSCODE_DOWN_MAX_HEIGHT, TamperStatusSchema, TankStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TerminalProfileInfoSchema, TerminalSessionInfoSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestConnectionStatusEnum, TestResultSchema, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackFlagsPatchSchema, TrackFlagsSchema, TrackProjectionSchema, TrackSchema, TrackSourceSchema, TrackStateSchema, TrackZoneFilterSchema, TrackedDetectionSchema, TrainingExportDeviceTotalsSchema, TrainingExportSummarySchema, TurnServerSchema, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VectorDeclareIndexInputSchema, VectorDeleteByFilterInputSchema, VectorDeleteInputSchema, VectorDeleteResultSchema, VectorFilterSchema, VectorGetInputSchema, VectorGetResultSchema, VectorItemSchema, VectorMatchSchema, VectorMetadataSchema, VectorMetricSchema, VectorQueryInputSchema, VectorQueryResultSchema, VectorStatsInputSchema, VectorStatsResultSchema, VectorUpsertInputSchema, VectorUpsertResultSchema, VibrationStatusSchema, VideoEncodeSchema, WEBRTC_EGRESS_PROFILE, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WhiteBalanceModeSchema, WidgetHostEnum, WidgetLoginMethodSchema, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, YAMNET_TO_MACRO, ZoneCrossingDirectionSchema, ZoneCrossingSchema, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, asBoolean, asJsonArray, asJsonObject, asNumber, asString, audioAnalysisCapability, audioAnalyzerCapability, audioCodecCapability, audioMetricsCapability, audioPlanFromEncodeProfile, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, bareAddonId, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildAudioArgs, buildEventKindDescriptor, buildFfmpegArgs, buildInputArgs, buildModelVariantGroups, buildNcTaxonomy, buildStreamParamsConfigSchema, buildVideoArgs, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, canonicalEgressPlan, carbonMonoxideCapability, cellsToRects, classifyStream, classifyStreams, climateControlCapability, collectHydratedFieldEntries, collectHydratedFieldValues, colorCapability, colorForKind, compileExpression, compileExpressionSafe, conditionDepth, connectionTestCapability, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, coreBlockAddonId, coreBlockIdFromAddonId, coreBlocksCapability, cosineSimilarity, countConditionLeaves, coverCapability, createDeviceProxy, createDurableState, createEvent, createExpressionScope, createHwAccelCache, createLazyTrpcSource, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, dataStoreProviderCapability, dayNightCapability, declarationOwnerNodeId, decodeVectorBase64, decoderCapability, defaultDeviceFor, defineCustomActions, deriveCameraSwitches, deriveDetailCropRect, deriveRecordingMode, describeModelVariant, detectionPipelineCapability, deviceAdoptionCapability, deviceBackendToFormat, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceStateCapability, deviceStatusCapability, doorbellCapability, egressTranscodeSharingKey, egressTransportFromRequest, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, encodeVectorBase64, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateExpressionSource, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, expandCapMethods, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, formatForBackend, formatForRuntime, gasCapability, generateAutomationBlock, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getTaxonomyEntry, hasMotionTrigger, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, imageSettingsCapability, integrationsCapability, intercomCapability, invocationFromEncodeProfile, isAgentOnlyPlacement, isArrayOutputSchema, isBaseConditionKey, isCollectionArrayMethod, isDeployableToAgent, isDeviceConfigCap, isDeviceScopedCap, isEvent, isNode, isObjectInput, isSameAddonId, isScheduleActive, isSoftwareDecode, isVoidInput, jobKindSchema, kebabToCamel, knownValues, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logBannerArgs, logDestinationCapability, logLevelAtMost, loginMethodCapability, looseSchema, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, metricsProviderCapability, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, networkAccessCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeUnit, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, osdManagerCapability, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProfileBrokerId, parseStreamParamsFormPatch, petFeederCapability, pickAccessoryControl, pickDetailCropConvention, pickNativeLeaseOverride, pickPreferredRtspEntry, pickVideoEncoder, pickerForCondition, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, privacyMaskCapability, procedureAuthKey, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readDetailCropConvention, readDeviceStateFrom, readNativeLeaseOverride, readNodePin, readinessKey, rebootCapability, recordingCapability, recordingExportCapability, rectsToCells, requiresPython, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveCapMount, resolveDetectionRuntime, resolveDeviceControlKind, resolveDeviceProfile, resolveEgressDecodeHwAccel, resolveFormat, resolveHydratedFieldValue, resolveModelFormat, resolveMutate, resolveRunnerId, resolveScrubThumbnailGeometry, resolveVariantModelId, runInferenceStep, runtimeDevices, sceneMonitorCapability, scopeKey, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, serverManagementCapability, setByPath, settingsStoreCapability, sleep, sleepCancellable, smokeCapability, smtpProviderCapability, snapshotCapability, ssoBridgeCapability, startReachabilityPoll, stateVocabularyFor, storageCapability, storageEvictableCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, subKindsOf, summarisePrivacyAudio, supportedRuntimes, switchCapability, switchedOffIds, synthesizeSourceInfo, systemCapability, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, terminalSessionCapability, textToHtml, toDeviceSummary, toExpressionValue, toNodeId, toStreamSourceEntry, toastCapability, tokenize, transcodeBody, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, updateCapability, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateExpressionSource, validateRecipeBounds, valveCapability, vectorDimFromBase64, vectorStoreCapability, vibrationCapability, videoclipsCapability, viewerUiCapability, waterHeaterCapability, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
39792
+ export { ACCESSORY_LABEL, ALEXA_EGRESS_PROFILE, ALL_CAPABILITY_DEFINITIONS, APPLE_SA_TO_MACRO, AUDIO_ANALYSIS_CAP_NAME, AUDIO_BACKEND_CHOICES, AUDIO_MACRO_LABELS, AUDIO_PRESETS, AccessoriesStatusSchema, AccessoryKind, AddBrokerInputSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AdoptInputSchema as AdoptionAdoptInputSchema, AdoptResultSchema as AdoptionAdoptResultSchema, AdoptionCandidateResultSchema, AdoptionFilterSchema, GetCandidateInputSchema as AdoptionGetCandidateInputSchema, AdoptionJobSchema, AdoptionJobStateSchema, ListCandidatesInputSchema as AdoptionListCandidatesInputSchema, ListCandidatesOutputSchema as AdoptionListCandidatesOutputSchema, AdoptionOutcomeSchema, ReleaseInputSchema as AdoptionReleaseInputSchema, AdoptionStatusSchema, AgentLoadSummarySchema, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, ApiKeyRecordSchema, ApiKeySummarySchema, ArchiveEntrySchema, ArchiveManifestSchema, AttachmentMediaTypeSchema, AttachmentSchema, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioChunkInputSchema, AudioClassSummarySchema, AudioClassificationLabelSchema, AudioClassificationResultSchema, AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioEncodeSchema, AudioEncodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEventSchema, AudioLevelSchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, AudioMetricsSnapshotSchema, AudioPcmChunkSchema, AuthResultSchema, AutoUpdateSettingsSchema, AutomationActionSchema, AutomationConditionOperatorSchema, AutomationConditionSchema, AutomationControlStatusSchema, AutomationRecipeSchema, AutomationTriggerSchema, AvailableIntegrationTypeSchema, BACKEND_TO_FORMAT, BASE_LIVE_EGRESS_PROFILE, BATTERY_DEVICE_PROFILE, BacklightModeSchema, BackupDestinationInfoSchema, BackupEntrySchema, BaseAddon, BaseDevice, BaseDeviceProvider, BatteryStatusSchema, BinaryStatusSchema, BoundingBoxSchema, BrightnessStatusSchema, AddInputSchema as BrokerAddInputSchema, BrokerAudioClientSchema, BrokerClientsSchema, BrokerConnectionDetailsSchema, BrokerConsumerAttributionSchema, BrokerConsumerKindSchema, BrokerDecodedClientSchema, BrokerEncodedClientSchema, GetStateInputSchema as BrokerGetStateInputSchema, BrokerInfoSchema, BrokerProviderInfoSchema, PublishInputSchema as BrokerPublishInputSchema, RegistryStatusSchema as BrokerRegistryStatusSchema, BrokerRtspClientSchema, BrokerStatsSchema, BrokerStatusEnum, BrokerStatusSchema, SubscribeInputSchema as BrokerSubscribeInputSchema, SubscribeResultSchema as BrokerSubscribeResultSchema, TestConnectionResultSchema as BrokerTestConnectionResultSchema, UnsubscribeInputSchema as BrokerUnsubscribeInputSchema, CAMERA_SWITCH_CATALOG, CAMERA_SWITCH_ORDER, CAM_PROFILE_ORDER, CAPABILITY_NAMES, CAPABILITY_ROUTER_KEYS, CAP_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, COCO_80_LABELS, COCO_TO_MACRO, CONNECTION_TEST_TIMEOUT_MS, CORE_BLOCKS_ADDON_ID, CORE_BLOCK_ADDON_PREFIX, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusDegradationReasonSchema, CameraStatusDegradationSchema, CameraStatusSchema, CameraStatusStageSchema, CameraStreamSchema, CameraSwitchAuthoritySchema, CameraSwitchGroupSchema, CameraSwitchIdSchema, CameraSwitchSchema, CameraSwitchUnavailableReasonSchema, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CarbonMonoxideStatusSchema, ChargingStatus, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipPlaybackSchema, ClipSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectionTestDescriptorSchema, ConnectionTestInputSchema, ConnectionTestOutcomeSchema, ConnectivityStatusSchema, ConsumableItemSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoreBlockCompileResultSchema, CoreBlockInputSchema, CoreBlockPlacementSchema, CoreBlockSchema, CoreBlockStatusSchema, CoverStateSchema, CoverStatusSchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateIntegrationInputSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, CustomActionInputSchema, CustomModelDescriptorSchema, DATAPLANE_SECRET_HEADER, DECLARED_DEVICE_SWEEP_LIMIT, DECLARED_INTEGRATION_FIXED_KEY, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_DETAIL_CROP_CONVENTION, DEFAULT_EVENTS_BAND_BUFFER_SEC, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_NATIVE_LEASE_SETTINGS, DEFAULT_RETENTION, DEFAULT_SCRUB_THUMBNAIL_PRESET, DETAIL_CROP_PADDING_FIELD, DETAIL_CROP_PADDING_KEY, DETAIL_CROP_SECTION_ID, DETAIL_CROP_SQUARE_KEY, DETECTION_PIPELINE_CAP_NAME, DEVICE_BACKEND_TO_FORMAT, DEVICE_CAP_NAMES, DEVICE_PROFILES, DEVICE_SCOPED_CAPS, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATE_READERS, DEVICE_STATUS_METHOD, DEVICE_TYPE_CONTROL_KIND, DEVICE_TYPE_INFO, EngineInfoSchema as DataStoreEngineInfoSchema, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DeclaredDevices, DecodedAudioChunkSchema, DecodedFrameSchema, DecoderSessionConfigSchema, DecoderStatsSchema, DeleteIntegrationResultSchema, DetailCropConventionSchema, DetectionSourceSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceNetworkStatsSchema, DeviceRole, DeviceRuntimeState, DeviceStatusSchema, DeviceType, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENTFUL_CAP_NAMES, EVENT_KIND_BY_CAP, EVENT_PAD_MS, EVENT_TAXONOMY, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, EgressEncodeSchema, EgressRateControlSchema, EgressTranscodeRequestSchema, EgressTranscodeSchema, ElementConfigStore, EmbeddingInfoSchema, EmbeddingResultSchema, EncodeProfileSchema, EncodedPacketSchema, EnrichedWidgetMetadataSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, EventCategory, EventEmitterStatusSchema, EventFireSchema, EventItemSchema, EventKindCategorySchema, EventKindDescriptorSchema, EventKindIconSchema, EventKindSchema, EventKindsForDeviceSchema, EventMediaArtifactSchema, EventMediaCoverageSchema, EventMediaKindSchema, EventMediaProductionSchema, EventSourceType, ExportDownloadSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportTimelapseSchema, ExposedDeviceSchema, ExposureModeSchema, ExpressionBindingSourceSchema, ExpressionEvalError, ExpressionFieldBindingSchema, ExpressionGlobalBindingSchema, ExpressionLiteralBindingSchema, ExpressionParseError, ExpressionSourceSchema, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, Fmp4BoxSplitter, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, GasStatusSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, HAP_AUDIO_BASE, HAP_AUDIO_BITRATE_KBPS, HAP_AUDIO_VBV_KBITS, HAP_KEYFRAME_INTERVAL_SEC, HF_BASE_URL, HF_REPO, HWACCEL_OPTIONS, HealthStatusSchema, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ImageContractSchema, ImageContractStateSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, KeyEventSchema, LOG_LEVEL_RANK, LabelAttributionSchema, LabelDefinitionSchema, LabelTierSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LinkedDeviceSchema, LinkedDevicesModeSchema, LlmDefaultSchema, LlmDefaultSelectorSchema, LlmErrorCodeSchema, LlmGenerateBaseInputSchema, LlmGenerateErrSchema, LlmGenerateOkSchema, LlmGenerateResultSchema, LlmImageSchema, LlmNodeModelSchema, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, LlmRuntimeCompleteInputSchema, LlmRuntimeDiskUsageSchema, LlmRuntimeNodeSchema, LlmRuntimeStatusSchema, LlmUsageRollupSchema, LlmUsageSchema, LocateSegmentResultSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogEntrySchema, LogLevelSchema, LogStreamEntrySchema, LoginMethodContributionSchema, LoginStageEnum, MACRO_LABELS, MAX_CONDITION_DEPTH, MAX_CONDITION_LEAVES, MAX_EXPRESSION_AST_NODES, MAX_EXPRESSION_BINDINGS, MAX_EXPRESSION_CALL_ARGS, MAX_EXPRESSION_EVAL_STEPS, MAX_EXPRESSION_SOURCE_LENGTH, METHOD_ACCESS_MAP, MODEL_FORMATS, MOTION_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileInfoSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MeshPeerSchema, MeshStatusSchema, MethodAccessSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatsSchema, ModelSubstitutionSchema, ModelVariantGroupSchema, MotionAnalysisResultSchema, MotionEventSchema, MotionOnMotionChangedDataSchema, MotionRegionSchema, MotionSourceEnum, MotionSourcesSchema, MotionStatusSchema, MotionTriggerRuntimeStateSchema, MotionTriggerStatusSchema, MotionZoneOptionsSchema, MotionZonePatchSchema, MotionZoneRegionSchema, MotionZoneStatusSchema, StatusSchema as MqttBrokerStatusSchema, MutationFilterSchema, NATIVE_LEASE_ACTIVITY_FIELD, NATIVE_LEASE_ACTIVITY_KEY, NATIVE_LEASE_ADMISSION_FIELD, NATIVE_LEASE_ADMISSION_KEY, NATIVE_LEASE_BUDGET_FIELD, NATIVE_LEASE_BUDGET_KEY, NATIVE_LEASE_SECTION_ID, NATIVE_LEASE_TTL_FIELD, NATIVE_LEASE_TTL_KEY, NC_BASE_CONDITION_KEYS, NC_CONDITION_CATALOG, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_SNOOZE_MAX_MINUTES, NC_TAXONOMY, NativeCropBboxSchema, NativeCropRefSchema, NativeCropResultSchema, NativeDetectionSchema, NativeLeaseAdmissionSchema, NativeLeaseSettingsSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NcAlarmConfigSchema, NcAlarmModeCoverageSchema, NcAlarmSettingsPatchSchema, NcAlarmSettingsSchema, NcConditionDescriptorSchema, NcConditionsSchema, NcCrossingSchema, NcDeliverySchema, NcDeviceStateConditionSchema, NcHistoryEntrySchema, NcHistoryFilterSchema, NcHistoryRecordKindSchema, NcHistoryStatusSchema, NcHistorySubjectSchema, NcMediaFrameSchema, NcMediaPolicySchema, NcOccupancyConditionSchema, NcPlateMatcherSchema, NcRuleActionSchema, NcRuleActionSequenceSchema, NcRuleActionsSchema, NcRuleInputSchema, NcRuleNotificationButtonSchema, NcRulePatchSchema, NcRuleSchema, NcRuleTargetSchema, NcScheduleSchema, NcScheduleWindowSchema, NcSnoozeInputSchema, NcSnoozeSchema, NcSnoozeScopeSchema, NcSnoozeSuppressedSchema, NcTaxonomyEntrySchema, NcTaxonomySchema, NcTestResultSchema, NcThrottleGranularitySchema, NcThrottleSchema, NcZoneConditionSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NotificationActionIconSchema, NotificationActionSchema, NotificationFormatSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OPS_LOG_DEFAULT_LIMIT, OPS_LOG_RING_DEFAULT_MAX, OauthIntegrationDescriptorSchema, ObjectEventSchema, OpsLogDomainSchema, OpsLogEntrySchema, OpsLogOpSchema, OpsLogQueryInputSchema, OpsLogReasonSchema, OrchestratorMetricsSchema, OsdOverlayKindEnum, OsdOverlayPatchSchema, OsdOverlaySchema, OsdPositionEnum, OsdRenderOutcomeEnum, OsdRenderResultSchema, OsdSlotBindingSchema, OsdSlotViewSchema, OsdSourceOptionSchema, OsdSourceSchema, OsdSourceValueTypeEnum, OsdStatusSchema, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PRIVACY_MASK_CAP_NAME, PROVIDER_KIND_CAP_NAMES, PYTHON_SCRIPT, PackageUpdateSchema, PackageVersionInfoSchema, PasskeyLoginMethodSchema, PasskeySummarySchema, PcmSampleFormatSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, PlaceholderReasonSchema, PolygonPointSchema, PowerMeterStatusSchema, PresenceStatusSchema, PressureSensorStatusSchema, PrivacyMaskOptionsSchema, PrivacyMaskPatchSchema, PrivacyMaskRegionSchema, PrivacyMaskShapeSchema, PrivacyMaskStatusSchema, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, ProviderStatusSchema, PtzAutotrackRuntimeStateSchema, PtzAutotrackSettingsSchema, PtzAutotrackStatusSchema, PtzAutotrackTargetOptionSchema, PtzMoveCommandSchema, PtzOptionsSchema, PtzPositionSchema, PtzPresetSchema, PtzStatusSchema, QueryFilterSchema, RATE_CONTROL_RELAXED, RATE_CONTROL_TIGHT, REACHABILITY_FAILURES_TO_OFFLINE, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_PROBE_TIMEOUT_MS, RECOGNITION_TYPES, RESERVED_BINDING_NAMES, RUNTIME_DEFAULTS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadGopBytesResultSchema, ReadSegmentBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecentTracksPageSchema, RecentTracksQueryInput, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingRangeSchema, RecordingRetentionSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RelocateFootageInputSchema, RelocateJobSchema, RelocateJobStateSchema, RelocateMediaInputSchema, RenderedAsSchema, ReportMotionInputSchema, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainCopyRefusalSchema, RetrainFrameCandidateSchema, RetrainFrameListSchema, RetrainFrameSchema, RetrainFrameSelectionSchema, RetrainMacroClassSchema, RetrainStatusSchema, RetrainTrackSchema, RetrainTransitionResultSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, SCOPE_PRESETS, SCRUB_THUMBNAIL_PRESETS, SCRUB_THUMBNAIL_PRESET_LABELS, SCRUB_THUMBNAIL_PRESET_ORDER, SENSOR_FEATURES, SENSOR_MAP, SOURCE_INFO_METADATA_KEY, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUB_DETECTION_TYPES, SYSTEM_CAP_NAMES, SceneCheckSchema, SceneConditionSchema, SceneMonitorSchema, SceneMonitorStateSchema, SceneMonitorStatusSchema, SceneReferenceSchema, ScopedTokenSchema, ScopedTokenSummarySchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, ScrubThumbnailPresetSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SensorEventSchema, ServerBootModeSchema, ServerPackageStatusSchema, ServerRollbackInfoSchema, ServerUpdateActionResultSchema, ServerUpdateCheckResultSchema, ServerUpdateStateSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShmRingStatsSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StartEmbeddedInputSchema, StationaryObjectSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageLocationDeclarationSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, ProviderInfoSchema as StorageProviderInfoSchema, ReadChunkInputSchema as StorageReadChunkInputSchema, TestLocationResultSchema as StorageTestLocationResultSchema, WriteChunkInputSchema as StorageWriteChunkInputSchema, StreamCodecSchema, StreamFormatSchema, StreamNetworkStatsSchema, StreamParamsOptionsSchema, StreamParamsStatusSchema, StreamProfileConfigSchema, StreamProfileOptionsSchema, StreamProfilePatchSchema, StreamProfileSchema, StreamSourceEntrySchema, StreamSourceSchema, SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, SubscribeFramesInputSchema, SubscribeFramesResultSchema, SwitchStatusSchema, SystemMetricsSchema, SystemMirror, TAXONOMY_COLORS, TIMEZONES, TRANSCODE_DOWN_MAX_BITRATE_KBPS, TRANSCODE_DOWN_MAX_HEIGHT, TamperStatusSchema, TankStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TerminalProfileInfoSchema, TerminalSessionInfoSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestConnectionStatusEnum, TestResultSchema, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackFlagsPatchSchema, TrackFlagsSchema, TrackProjectionSchema, TrackSchema, TrackSourceSchema, TrackStateSchema, TrackZoneFilterSchema, TrackedDetectionSchema, TrainingExportDeviceTotalsSchema, TrainingExportSummarySchema, TurnServerSchema, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VectorDeclareIndexInputSchema, VectorDeleteByFilterInputSchema, VectorDeleteInputSchema, VectorDeleteResultSchema, VectorFilterSchema, VectorGetInputSchema, VectorGetResultSchema, VectorItemSchema, VectorMatchSchema, VectorMetadataSchema, VectorMetricSchema, VectorQueryInputSchema, VectorQueryResultSchema, VectorStatsInputSchema, VectorStatsResultSchema, VectorUpsertInputSchema, VectorUpsertResultSchema, VibrationStatusSchema, VideoEncodeSchema, WEBRTC_EGRESS_PROFILE, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WhiteBalanceModeSchema, WidgetHostEnum, WidgetLoginMethodSchema, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, YAMNET_TO_MACRO, ZoneCrossingDirectionSchema, ZoneCrossingSchema, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, asBoolean, asJsonArray, asJsonObject, asNumber, asString, audioAnalysisCapability, audioAnalyzerCapability, audioCodecCapability, audioMetricsCapability, audioPlanFromEncodeProfile, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, bareAddonId, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildAudioArgs, buildEventKindDescriptor, buildFfmpegArgs, buildInputArgs, buildModelVariantGroups, buildNcTaxonomy, buildStreamParamsConfigSchema, buildVideoArgs, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, canonicalEgressPlan, carbonMonoxideCapability, cellsToRects, classifyBearerPrincipal, classifyStream, classifyStreams, climateControlCapability, collectHydratedFieldEntries, collectHydratedFieldValues, colorCapability, colorForKind, compileExpression, compileExpressionSafe, conditionDepth, connectionTestCapability, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, coreBlockAddonId, coreBlockIdFromAddonId, coreBlocksCapability, cosineSimilarity, countConditionLeaves, coverCapability, createDeviceProxy, createDurableState, createEvent, createExpressionScope, createHwAccelCache, createLazyTrpcSource, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, dataStoreProviderCapability, dayNightCapability, declarationOwnerNodeId, decodeVectorBase64, decoderCapability, defaultDeviceFor, defineCustomActions, deriveCameraSwitches, deriveDetailCropRect, deriveRecordingMode, describeModelVariant, detectionPipelineCapability, deviceAdoptionCapability, deviceBackendToFormat, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceStateCapability, deviceStatusCapability, doorbellCapability, egressTranscodeSharingKey, egressTransportFromRequest, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, encodeVectorBase64, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateExpressionSource, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, expandCapMethods, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, formatForBackend, formatForRuntime, gasCapability, generateAutomationBlock, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getTaxonomyEntry, hasMotionTrigger, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, imageSettingsCapability, integrationsCapability, intercomCapability, invocationFromEncodeProfile, isAgentOnlyPlacement, isArrayOutputSchema, isBaseConditionKey, isCollectionArrayMethod, isDeployableToAgent, isDeviceConfigCap, isDeviceScopedCap, isEvent, isNode, isObjectInput, isSameAddonId, isScheduleActive, isSoftwareDecode, isVoidInput, jobKindSchema, kebabToCamel, knownValues, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logBannerArgs, logDestinationCapability, logLevelAtMost, loginMethodCapability, looseSchema, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, methodAccessForHttpMethod, metricsProviderCapability, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, networkAccessCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeUnit, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, osdManagerCapability, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProfileBrokerId, parseStreamParamsFormPatch, petFeederCapability, pickAccessoryControl, pickDetailCropConvention, pickNativeLeaseOverride, pickPreferredRtspEntry, pickVideoEncoder, pickerForCondition, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, principalMayReachAddon, privacyMaskCapability, procedureAuthKey, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readDetailCropConvention, readDeviceStateFrom, readNativeLeaseOverride, readNodePin, readinessKey, rebootCapability, recordingCapability, recordingExportCapability, rectsToCells, requiresPython, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveCapMount, resolveDetectionRuntime, resolveDeviceControlKind, resolveDeviceProfile, resolveEgressDecodeHwAccel, resolveFormat, resolveHydratedFieldValue, resolveModelFormat, resolveMutate, resolveRunnerId, resolveScrubThumbnailGeometry, resolveVariantModelId, runInferenceStep, runtimeDevices, sceneMonitorCapability, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, serverManagementCapability, setByPath, settingsStoreCapability, sleep, sleepCancellable, smokeCapability, smtpProviderCapability, snapshotCapability, ssoBridgeCapability, startReachabilityPoll, stateVocabularyFor, storageCapability, storageEvictableCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, subKindsOf, summarisePrivacyAudio, supportedRuntimes, switchCapability, switchedOffIds, synthesizeSourceInfo, systemCapability, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, terminalSessionCapability, textToHtml, toDeviceSummary, toExpressionValue, toNodeId, toStreamSourceEntry, toastCapability, tokenize, transcodeBody, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, updateCapability, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateExpressionSource, validateRecipeBounds, valveCapability, vectorDimFromBase64, vectorStoreCapability, vibrationCapability, videoclipsCapability, viewerUiCapability, waterHeaterCapability, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.2.54",
3
+ "version": "1.2.55",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",