@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.
- package/dist/auth/principal-scope.d.ts +123 -0
- package/dist/capabilities/oauth-integration.cap.d.ts +25 -12
- package/dist/capabilities/sso-bridge.cap.d.ts +4 -1
- package/dist/capabilities/user-management.cap.d.ts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +174 -16
- package/dist/index.mjs +170 -17
- package/package.json +1 -1
|
@@ -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
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
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
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
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
|
|
13050
|
-
*
|
|
13051
|
-
*
|
|
13052
|
-
*
|
|
13053
|
-
*
|
|
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
|
-
*
|
|
13058
|
-
*
|
|
13059
|
-
*
|
|
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
|
-
|
|
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
|
|
13049
|
-
*
|
|
13050
|
-
*
|
|
13051
|
-
*
|
|
13052
|
-
*
|
|
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
|
-
*
|
|
13057
|
-
*
|
|
13058
|
-
*
|
|
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
|
-
|
|
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 };
|