@camstack/addon-model-studio 1.1.264 → 1.1.266
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/{MotionZonesSettings-DXOf3xDp.mjs → MotionZonesSettings-QEoTPmcr.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-DasEXHXg.mjs → PrivacyMaskSettings-BbohzLpq.mjs} +4 -4
- package/dist/{SceneMonitorEditor-ClVvQVl6.mjs → SceneMonitorEditor-9Q681ceG.mjs} +3 -3
- package/dist/_stub.js +3116 -3094
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-CU96npOu.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-BuCDA9zD.mjs} +3 -3
- package/dist/{_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B0F3F6BP.mjs → _virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CVsfrcvP.mjs} +2 -2
- package/dist/{hostInit-Bsv1Txh4.mjs → hostInit-CAAwjy3-.mjs} +2 -2
- package/dist/model-studio.addon.js +151 -11
- package/dist/model-studio.addon.mjs +151 -11
- package/dist/{player-overlays-BWxIhTSh.mjs → player-overlays-6oZdPigo.mjs} +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-Bb8t1Rws.mjs → responsive-DKuK9SrM.mjs} +1 -1
- package/dist/{scene-monitor-copy-Bps8TGiG.mjs → scene-monitor-copy-BZutPHjt.mjs} +1 -1
- package/dist/{square-DSJt_nVw.mjs → square-BoehEjTT.mjs} +1 -1
- package/dist/{trash-2-CzUTU-oX.mjs → trash-2-BTKS3ae6.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-DSJOnpOj.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-C0irhDNf.mjs} +1 -1
- package/package.json +1 -1
|
@@ -394,7 +394,7 @@ function buildScryptedRegistryDescriptor(entry) {
|
|
|
394
394
|
};
|
|
395
395
|
}
|
|
396
396
|
//#endregion
|
|
397
|
-
//#region ../types/dist/event-category-
|
|
397
|
+
//#region ../types/dist/event-category-BvOFi6PY.mjs
|
|
398
398
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
399
399
|
EventCategory["SystemBoot"] = "system.boot";
|
|
400
400
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -458,6 +458,24 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
458
458
|
* consumes this category and maps it to the `addon-crash-loop` kind.
|
|
459
459
|
*/
|
|
460
460
|
EventCategory["AddonRunnerFailed"] = "addon.runner-failed";
|
|
461
|
+
/**
|
|
462
|
+
* A runner whose addon refused to start with a typed reason (D877) - parked
|
|
463
|
+
* in `refused`, never counted by the crash breaker, retried on operator
|
|
464
|
+
* action. One event per refusal.
|
|
465
|
+
*/
|
|
466
|
+
EventCategory["AddonRunnerRefused"] = "addon.runner-refused";
|
|
467
|
+
/**
|
|
468
|
+
* A runner settled on a state (D877): `running` (READY), `crashed`, `failed` or
|
|
469
|
+
* `refused`. In-process telemetry for the boot check (re-evaluate while any
|
|
470
|
+
* runner is still pending) and the alert centre (close a recovered runner).
|
|
471
|
+
*/
|
|
472
|
+
EventCategory["ProcessStateChanged"] = "process.state-changed";
|
|
473
|
+
/**
|
|
474
|
+
* The node's one-shot runner boot check (D877): planned runners against the
|
|
475
|
+
* process service, `degraded` when any is failed, refused or missing. The
|
|
476
|
+
* alert centre turns it into one alert and a direct critical push.
|
|
477
|
+
*/
|
|
478
|
+
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
461
479
|
EventCategory["AddonError"] = "addon.error";
|
|
462
480
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
463
481
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5782,7 +5800,7 @@ var ZodIssueCode = {
|
|
|
5782
5800
|
var ZodFirstPartyTypeKind;
|
|
5783
5801
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5784
5802
|
//#endregion
|
|
5785
|
-
//#region ../types/dist/sleep-
|
|
5803
|
+
//#region ../types/dist/sleep-bgZLodYc.mjs
|
|
5786
5804
|
/**
|
|
5787
5805
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5788
5806
|
* window to float samples (D455).
|
|
@@ -8728,7 +8746,7 @@ object({
|
|
|
8728
8746
|
params: record(string(), union([string(), number()])).optional()
|
|
8729
8747
|
});
|
|
8730
8748
|
//#endregion
|
|
8731
|
-
//#region ../types/dist/err-msg
|
|
8749
|
+
//#region ../types/dist/err-msg--2RrYiLO.mjs
|
|
8732
8750
|
var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
8733
8751
|
DeviceType["Camera"] = "camera";
|
|
8734
8752
|
DeviceType["Hub"] = "hub";
|
|
@@ -8997,6 +9015,9 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
8997
9015
|
/** Virtual HA toggle (input_boolean.*) — distinguishable from a
|
|
8998
9016
|
* real Switch device for UI rendering / export adapters. */
|
|
8999
9017
|
DeviceRole["BinaryHelper"] = "binary-helper";
|
|
9018
|
+
/** A smart plug: a `switch` whose source says it is an outlet (HA
|
|
9019
|
+
* `device_class: outlet`). The Alexa export shows it as a SMARTPLUG. */
|
|
9020
|
+
DeviceRole["Outlet"] = "outlet";
|
|
9000
9021
|
/** Generic motion / occupancy / moving event source. Distinct from
|
|
9001
9022
|
* the camera accessory PirSensor role: that one is a camera child;
|
|
9002
9023
|
* this is a standalone HA / 3rd-party motion sensor. */
|
|
@@ -9064,7 +9085,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
9064
9085
|
return DeviceRole;
|
|
9065
9086
|
}({});
|
|
9066
9087
|
//#endregion
|
|
9067
|
-
//#region ../types/dist/composition-
|
|
9088
|
+
//#region ../types/dist/composition-DOwQB_Ua.mjs
|
|
9068
9089
|
/**
|
|
9069
9090
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
9070
9091
|
*
|
|
@@ -39428,6 +39449,36 @@ method(LlmRuntimeCompleteInputSchema, LlmGenerateResultSchema, {
|
|
|
39428
39449
|
timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
|
|
39429
39450
|
});
|
|
39430
39451
|
/**
|
|
39452
|
+
* The report of a one-shot "move this owner's plaintext secrets into the
|
|
39453
|
+
* keychain" run (D878). COUNTS only - never a value, never a ref.
|
|
39454
|
+
*
|
|
39455
|
+
* The owner runs it on its own rows, through its own write path; an operator
|
|
39456
|
+
* script (`scripts/hub/migrate-raw-secrets.ts`) calls the owner's cap method.
|
|
39457
|
+
* Dry run (`apply: false`) reports what WOULD move and changes nothing.
|
|
39458
|
+
*/
|
|
39459
|
+
var RawSecretMigrationInputSchema = object({
|
|
39460
|
+
/** `false` (the default of the script) = report only. */
|
|
39461
|
+
apply: boolean() });
|
|
39462
|
+
var RawSecretMigrationReportSchema = object({
|
|
39463
|
+
apply: boolean(),
|
|
39464
|
+
/** Rows that can carry a secret (a profile, an enrolment). */
|
|
39465
|
+
rows: number().int(),
|
|
39466
|
+
/** Rows whose secret was plaintext when the run started. */
|
|
39467
|
+
raw: number().int(),
|
|
39468
|
+
/** Rows that already held a keychain marker when the run started. */
|
|
39469
|
+
markers: number().int(),
|
|
39470
|
+
/** Plaintext rows moved by THIS run (always 0 on a dry run). */
|
|
39471
|
+
migrated: number().int(),
|
|
39472
|
+
/** Plaintext rows left in place because the move or its read-back failed. */
|
|
39473
|
+
failed: number().int(),
|
|
39474
|
+
/** After the run: rows still holding plaintext. */
|
|
39475
|
+
remainingRaw: number().int(),
|
|
39476
|
+
/** After the run: markers the keychain could not resolve right now. */
|
|
39477
|
+
unresolvedMarkers: number().int(),
|
|
39478
|
+
/** True when nothing is raw and every marker resolves. */
|
|
39479
|
+
verified: boolean()
|
|
39480
|
+
});
|
|
39481
|
+
/**
|
|
39431
39482
|
* `llm` — consumer-facing LLM surface (spec §1-§3). Collection-mode: array
|
|
39432
39483
|
* methods concat-fan across providers; single-row methods route to ONE
|
|
39433
39484
|
* provider by the `addonId` in the call input (the notification-output
|
|
@@ -39612,6 +39663,9 @@ method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, {
|
|
|
39612
39663
|
}), _void(), { kind: "mutation" }), method(object({}), array(LlmProfileKindDescriptorSchema)), method(object({}), array(LlmProfileSchema)), method(object({ profile: LlmProfileSchema }), LlmProfileSchema, {
|
|
39613
39664
|
kind: "mutation",
|
|
39614
39665
|
auth: "admin"
|
|
39666
|
+
}), method(RawSecretMigrationInputSchema, RawSecretMigrationReportSchema, {
|
|
39667
|
+
kind: "mutation",
|
|
39668
|
+
auth: "admin"
|
|
39615
39669
|
}), method(ProfileRefInputSchema, _void(), {
|
|
39616
39670
|
kind: "mutation",
|
|
39617
39671
|
auth: "admin"
|
|
@@ -50041,6 +50095,41 @@ var ServerRollbackInfoSchema = object({
|
|
|
50041
50095
|
atMs: number(),
|
|
50042
50096
|
reason: string()
|
|
50043
50097
|
});
|
|
50098
|
+
/**
|
|
50099
|
+
* The runner boot check (D877): the runners this node PLANNED (hub: one per
|
|
50100
|
+
* `resolveRunnerId` over its forked addons; agent: the runners its process
|
|
50101
|
+
* service holds, because only the hub plans) against the states the process
|
|
50102
|
+
* service reports. Kept in memory, recomputed by the same one-shot check after
|
|
50103
|
+
* every boot, served on `getServerPackageStatus`.
|
|
50104
|
+
*
|
|
50105
|
+
* `failed` is the D6 breaker's terminal state, `refused` a deterministic Init
|
|
50106
|
+
* refusal (an addon that said "I will not start, and here is why"), `missing` a
|
|
50107
|
+
* planned runner the process service has no entry for.
|
|
50108
|
+
*/
|
|
50109
|
+
var RunnerRefusalSchema = object({
|
|
50110
|
+
runnerId: string(),
|
|
50111
|
+
addonIds: array(string()),
|
|
50112
|
+
reason: string()
|
|
50113
|
+
});
|
|
50114
|
+
var RunnerBootCheckSchema = object({
|
|
50115
|
+
checkedAtMs: number(),
|
|
50116
|
+
/** Runners planned for this node. */
|
|
50117
|
+
expected: number(),
|
|
50118
|
+
/** Planned runners whose process is `running`. */
|
|
50119
|
+
running: number(),
|
|
50120
|
+
failed: array(string()),
|
|
50121
|
+
refused: array(RunnerRefusalSchema),
|
|
50122
|
+
missing: array(string()),
|
|
50123
|
+
/**
|
|
50124
|
+
* Runners still on their way: `starting`, or `crashed` waiting on a backoff
|
|
50125
|
+
* respawn. The check is FINAL only when this is empty; until then nothing is
|
|
50126
|
+
* pushed and the verdict is re-evaluated on the next runner state change.
|
|
50127
|
+
* Optional for version skew (absent = settled).
|
|
50128
|
+
*/
|
|
50129
|
+
pending: array(string()).optional(),
|
|
50130
|
+
/** True when the plan is the hub's (`missing` is then meaningful); false on an agent. */
|
|
50131
|
+
planKnown: boolean()
|
|
50132
|
+
});
|
|
50044
50133
|
var ServerPackageStatusSchema = object({
|
|
50045
50134
|
/** Root package name (`@camstack/server` on the hub). */
|
|
50046
50135
|
packageName: string(),
|
|
@@ -50103,7 +50192,14 @@ var ServerPackageStatusSchema = object({
|
|
|
50103
50192
|
* for version skew: an older provider's payload simply omits it, and an
|
|
50104
50193
|
* absent wrapper is unknown — never `native`.
|
|
50105
50194
|
*/
|
|
50106
|
-
wrapper: WrapperIdentitySchema.optional()
|
|
50195
|
+
wrapper: WrapperIdentitySchema.optional(),
|
|
50196
|
+
/**
|
|
50197
|
+
* What this node PLANNED to run against what its process service reports
|
|
50198
|
+
* (D877). Absent until the one-shot boot check has run (~60 s after boot) and
|
|
50199
|
+
* on a provider that predates it. Absent is "not checked yet", never "all
|
|
50200
|
+
* well": a consumer that needs the answer treats it as pending.
|
|
50201
|
+
*/
|
|
50202
|
+
runners: RunnerBootCheckSchema.optional()
|
|
50107
50203
|
});
|
|
50108
50204
|
var ServerUpdateCheckResultSchema = object({
|
|
50109
50205
|
packageName: string(),
|
|
@@ -50154,6 +50250,13 @@ var ServerUpdateOutcomeSchema = _enum([
|
|
|
50154
50250
|
"refused",
|
|
50155
50251
|
"failed"
|
|
50156
50252
|
]);
|
|
50253
|
+
/** One addon the pre-flight found the target version would refuse (D877). */
|
|
50254
|
+
var UpdateBlockerSchema = object({
|
|
50255
|
+
addonId: string(),
|
|
50256
|
+
reason: string(),
|
|
50257
|
+
/** What the operator does about it. */
|
|
50258
|
+
remedy: string()
|
|
50259
|
+
});
|
|
50157
50260
|
var ServerUpdateActionResultSchema = object({
|
|
50158
50261
|
accepted: boolean(),
|
|
50159
50262
|
targetVersion: string().nullable(),
|
|
@@ -50171,14 +50274,27 @@ var ServerUpdateActionResultSchema = object({
|
|
|
50171
50274
|
* The failure itself, verbatim enough to act on (the npm output for a
|
|
50172
50275
|
* staging install). Non-null only for `failed`.
|
|
50173
50276
|
*/
|
|
50174
|
-
error: string().nullable().optional()
|
|
50277
|
+
error: string().nullable().optional(),
|
|
50278
|
+
/**
|
|
50279
|
+
* The addons the target version would refuse to start on this node's live
|
|
50280
|
+
* store (D877), present when the pre-flight refused the update
|
|
50281
|
+
* (`reason: 'addon-would-refuse'`). Optional for version skew.
|
|
50282
|
+
*/
|
|
50283
|
+
blockers: array(UpdateBlockerSchema).optional()
|
|
50175
50284
|
});
|
|
50176
50285
|
method(_void(), ServerPackageStatusSchema, { auth: "admin" }), method(_void(), ServerUpdateCheckResultSchema, {
|
|
50177
50286
|
kind: "mutation",
|
|
50178
50287
|
auth: "admin"
|
|
50179
|
-
}), method(object({
|
|
50180
|
-
/** Explicit target version; omitted = latest from the registry. */
|
|
50181
|
-
version: string().optional()
|
|
50288
|
+
}), method(object({
|
|
50289
|
+
/** Explicit target version; omitted = latest from the registry. */
|
|
50290
|
+
version: string().optional(),
|
|
50291
|
+
/**
|
|
50292
|
+
* Apply even though the pre-flight (D877) found addons the target would
|
|
50293
|
+
* refuse to start. Off by default: those addons stay down until the
|
|
50294
|
+
* remedy is run, which is the incident this gate exists to prevent.
|
|
50295
|
+
*/
|
|
50296
|
+
acknowledgeRefusals: boolean().optional()
|
|
50297
|
+
}), ServerUpdateActionResultSchema, {
|
|
50182
50298
|
kind: "mutation",
|
|
50183
50299
|
auth: "admin",
|
|
50184
50300
|
timeoutMs: 16 * 6e4
|
|
@@ -52591,7 +52707,9 @@ var ManifestShapeSchema = object({
|
|
|
52591
52707
|
var AddonProcessSchema = object({
|
|
52592
52708
|
pid: number().optional(),
|
|
52593
52709
|
mode: string(),
|
|
52594
|
-
state: string()
|
|
52710
|
+
state: string(),
|
|
52711
|
+
/** Why the runner is `refused` (an addon's own words), when it is (D877). */
|
|
52712
|
+
reason: string().optional()
|
|
52595
52713
|
});
|
|
52596
52714
|
/**
|
|
52597
52715
|
* Per-addon health snapshot from the kernel's AddonHealthMonitor.
|
|
@@ -53594,6 +53712,12 @@ object({
|
|
|
53594
53712
|
/** Horizontal louver swing on/off. Null when the device has no
|
|
53595
53713
|
* horizontal swing surface (gate with `DeviceFeature.ClimateSwingHorizontal`). */
|
|
53596
53714
|
swingHorizontal: boolean().nullable(),
|
|
53715
|
+
/** Lowest setpoint the device accepts, Celsius. Absent / null = not reported. */
|
|
53716
|
+
minTemp: number().nullable().optional(),
|
|
53717
|
+
/** Highest setpoint the device accepts, Celsius. Absent / null = not reported. */
|
|
53718
|
+
maxTemp: number().nullable().optional(),
|
|
53719
|
+
/** Setpoint granularity, Celsius (0.5, 1). Absent / null = not reported. */
|
|
53720
|
+
tempStep: number().positive().nullable().optional(),
|
|
53597
53721
|
/** Ms epoch when the slice was last updated (push or command). */
|
|
53598
53722
|
lastFetchedAt: number()
|
|
53599
53723
|
});
|
|
@@ -60614,7 +60738,11 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
60614
60738
|
kind: "mutation",
|
|
60615
60739
|
auth: "admin",
|
|
60616
60740
|
access: "delete"
|
|
60617
|
-
}), method(object({ userId: string() }), TotpStatusSchema, { auth: "admin" }), method(
|
|
60741
|
+
}), method(object({ userId: string() }), TotpStatusSchema, { auth: "admin" }), method(RawSecretMigrationInputSchema, RawSecretMigrationReportSchema, {
|
|
60742
|
+
kind: "mutation",
|
|
60743
|
+
auth: "admin",
|
|
60744
|
+
access: "create"
|
|
60745
|
+
}), method(object({
|
|
60618
60746
|
userId: string(),
|
|
60619
60747
|
code: string()
|
|
60620
60748
|
}), object({ valid: boolean() }), {
|
|
@@ -64773,6 +64901,12 @@ Object.freeze({
|
|
|
64773
64901
|
addonId: null,
|
|
64774
64902
|
access: "view"
|
|
64775
64903
|
},
|
|
64904
|
+
"llm.migrateRawSecrets": {
|
|
64905
|
+
capName: "llm",
|
|
64906
|
+
capScope: "system",
|
|
64907
|
+
addonId: null,
|
|
64908
|
+
access: "create"
|
|
64909
|
+
},
|
|
64776
64910
|
"llm.resolveModelRef": {
|
|
64777
64911
|
capName: "llm",
|
|
64778
64912
|
capScope: "system",
|
|
@@ -69315,6 +69449,12 @@ Object.freeze({
|
|
|
69315
69449
|
addonId: null,
|
|
69316
69450
|
access: "view"
|
|
69317
69451
|
},
|
|
69452
|
+
"userManagement.migrateRawSecrets": {
|
|
69453
|
+
capName: "user-management",
|
|
69454
|
+
capScope: "system",
|
|
69455
|
+
addonId: null,
|
|
69456
|
+
access: "create"
|
|
69457
|
+
},
|
|
69318
69458
|
"userManagement.oauthExchangeCode": {
|
|
69319
69459
|
capName: "user-management",
|
|
69320
69460
|
capScope: "system",
|
|
@@ -368,7 +368,7 @@ function buildScryptedRegistryDescriptor(entry) {
|
|
|
368
368
|
};
|
|
369
369
|
}
|
|
370
370
|
//#endregion
|
|
371
|
-
//#region ../types/dist/event-category-
|
|
371
|
+
//#region ../types/dist/event-category-BvOFi6PY.mjs
|
|
372
372
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
373
373
|
EventCategory["SystemBoot"] = "system.boot";
|
|
374
374
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -432,6 +432,24 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
432
432
|
* consumes this category and maps it to the `addon-crash-loop` kind.
|
|
433
433
|
*/
|
|
434
434
|
EventCategory["AddonRunnerFailed"] = "addon.runner-failed";
|
|
435
|
+
/**
|
|
436
|
+
* A runner whose addon refused to start with a typed reason (D877) - parked
|
|
437
|
+
* in `refused`, never counted by the crash breaker, retried on operator
|
|
438
|
+
* action. One event per refusal.
|
|
439
|
+
*/
|
|
440
|
+
EventCategory["AddonRunnerRefused"] = "addon.runner-refused";
|
|
441
|
+
/**
|
|
442
|
+
* A runner settled on a state (D877): `running` (READY), `crashed`, `failed` or
|
|
443
|
+
* `refused`. In-process telemetry for the boot check (re-evaluate while any
|
|
444
|
+
* runner is still pending) and the alert centre (close a recovered runner).
|
|
445
|
+
*/
|
|
446
|
+
EventCategory["ProcessStateChanged"] = "process.state-changed";
|
|
447
|
+
/**
|
|
448
|
+
* The node's one-shot runner boot check (D877): planned runners against the
|
|
449
|
+
* process service, `degraded` when any is failed, refused or missing. The
|
|
450
|
+
* alert centre turns it into one alert and a direct critical push.
|
|
451
|
+
*/
|
|
452
|
+
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
435
453
|
EventCategory["AddonError"] = "addon.error";
|
|
436
454
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
437
455
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5756,7 +5774,7 @@ var ZodIssueCode = {
|
|
|
5756
5774
|
var ZodFirstPartyTypeKind;
|
|
5757
5775
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5758
5776
|
//#endregion
|
|
5759
|
-
//#region ../types/dist/sleep-
|
|
5777
|
+
//#region ../types/dist/sleep-bgZLodYc.mjs
|
|
5760
5778
|
/**
|
|
5761
5779
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5762
5780
|
* window to float samples (D455).
|
|
@@ -8702,7 +8720,7 @@ object({
|
|
|
8702
8720
|
params: record(string(), union([string(), number()])).optional()
|
|
8703
8721
|
});
|
|
8704
8722
|
//#endregion
|
|
8705
|
-
//#region ../types/dist/err-msg
|
|
8723
|
+
//#region ../types/dist/err-msg--2RrYiLO.mjs
|
|
8706
8724
|
var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
8707
8725
|
DeviceType["Camera"] = "camera";
|
|
8708
8726
|
DeviceType["Hub"] = "hub";
|
|
@@ -8971,6 +8989,9 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
8971
8989
|
/** Virtual HA toggle (input_boolean.*) — distinguishable from a
|
|
8972
8990
|
* real Switch device for UI rendering / export adapters. */
|
|
8973
8991
|
DeviceRole["BinaryHelper"] = "binary-helper";
|
|
8992
|
+
/** A smart plug: a `switch` whose source says it is an outlet (HA
|
|
8993
|
+
* `device_class: outlet`). The Alexa export shows it as a SMARTPLUG. */
|
|
8994
|
+
DeviceRole["Outlet"] = "outlet";
|
|
8974
8995
|
/** Generic motion / occupancy / moving event source. Distinct from
|
|
8975
8996
|
* the camera accessory PirSensor role: that one is a camera child;
|
|
8976
8997
|
* this is a standalone HA / 3rd-party motion sensor. */
|
|
@@ -9038,7 +9059,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
9038
9059
|
return DeviceRole;
|
|
9039
9060
|
}({});
|
|
9040
9061
|
//#endregion
|
|
9041
|
-
//#region ../types/dist/composition-
|
|
9062
|
+
//#region ../types/dist/composition-DOwQB_Ua.mjs
|
|
9042
9063
|
/**
|
|
9043
9064
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
9044
9065
|
*
|
|
@@ -39402,6 +39423,36 @@ method(LlmRuntimeCompleteInputSchema, LlmGenerateResultSchema, {
|
|
|
39402
39423
|
timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
|
|
39403
39424
|
});
|
|
39404
39425
|
/**
|
|
39426
|
+
* The report of a one-shot "move this owner's plaintext secrets into the
|
|
39427
|
+
* keychain" run (D878). COUNTS only - never a value, never a ref.
|
|
39428
|
+
*
|
|
39429
|
+
* The owner runs it on its own rows, through its own write path; an operator
|
|
39430
|
+
* script (`scripts/hub/migrate-raw-secrets.ts`) calls the owner's cap method.
|
|
39431
|
+
* Dry run (`apply: false`) reports what WOULD move and changes nothing.
|
|
39432
|
+
*/
|
|
39433
|
+
var RawSecretMigrationInputSchema = object({
|
|
39434
|
+
/** `false` (the default of the script) = report only. */
|
|
39435
|
+
apply: boolean() });
|
|
39436
|
+
var RawSecretMigrationReportSchema = object({
|
|
39437
|
+
apply: boolean(),
|
|
39438
|
+
/** Rows that can carry a secret (a profile, an enrolment). */
|
|
39439
|
+
rows: number().int(),
|
|
39440
|
+
/** Rows whose secret was plaintext when the run started. */
|
|
39441
|
+
raw: number().int(),
|
|
39442
|
+
/** Rows that already held a keychain marker when the run started. */
|
|
39443
|
+
markers: number().int(),
|
|
39444
|
+
/** Plaintext rows moved by THIS run (always 0 on a dry run). */
|
|
39445
|
+
migrated: number().int(),
|
|
39446
|
+
/** Plaintext rows left in place because the move or its read-back failed. */
|
|
39447
|
+
failed: number().int(),
|
|
39448
|
+
/** After the run: rows still holding plaintext. */
|
|
39449
|
+
remainingRaw: number().int(),
|
|
39450
|
+
/** After the run: markers the keychain could not resolve right now. */
|
|
39451
|
+
unresolvedMarkers: number().int(),
|
|
39452
|
+
/** True when nothing is raw and every marker resolves. */
|
|
39453
|
+
verified: boolean()
|
|
39454
|
+
});
|
|
39455
|
+
/**
|
|
39405
39456
|
* `llm` — consumer-facing LLM surface (spec §1-§3). Collection-mode: array
|
|
39406
39457
|
* methods concat-fan across providers; single-row methods route to ONE
|
|
39407
39458
|
* provider by the `addonId` in the call input (the notification-output
|
|
@@ -39586,6 +39637,9 @@ method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, {
|
|
|
39586
39637
|
}), _void(), { kind: "mutation" }), method(object({}), array(LlmProfileKindDescriptorSchema)), method(object({}), array(LlmProfileSchema)), method(object({ profile: LlmProfileSchema }), LlmProfileSchema, {
|
|
39587
39638
|
kind: "mutation",
|
|
39588
39639
|
auth: "admin"
|
|
39640
|
+
}), method(RawSecretMigrationInputSchema, RawSecretMigrationReportSchema, {
|
|
39641
|
+
kind: "mutation",
|
|
39642
|
+
auth: "admin"
|
|
39589
39643
|
}), method(ProfileRefInputSchema, _void(), {
|
|
39590
39644
|
kind: "mutation",
|
|
39591
39645
|
auth: "admin"
|
|
@@ -50015,6 +50069,41 @@ var ServerRollbackInfoSchema = object({
|
|
|
50015
50069
|
atMs: number(),
|
|
50016
50070
|
reason: string()
|
|
50017
50071
|
});
|
|
50072
|
+
/**
|
|
50073
|
+
* The runner boot check (D877): the runners this node PLANNED (hub: one per
|
|
50074
|
+
* `resolveRunnerId` over its forked addons; agent: the runners its process
|
|
50075
|
+
* service holds, because only the hub plans) against the states the process
|
|
50076
|
+
* service reports. Kept in memory, recomputed by the same one-shot check after
|
|
50077
|
+
* every boot, served on `getServerPackageStatus`.
|
|
50078
|
+
*
|
|
50079
|
+
* `failed` is the D6 breaker's terminal state, `refused` a deterministic Init
|
|
50080
|
+
* refusal (an addon that said "I will not start, and here is why"), `missing` a
|
|
50081
|
+
* planned runner the process service has no entry for.
|
|
50082
|
+
*/
|
|
50083
|
+
var RunnerRefusalSchema = object({
|
|
50084
|
+
runnerId: string(),
|
|
50085
|
+
addonIds: array(string()),
|
|
50086
|
+
reason: string()
|
|
50087
|
+
});
|
|
50088
|
+
var RunnerBootCheckSchema = object({
|
|
50089
|
+
checkedAtMs: number(),
|
|
50090
|
+
/** Runners planned for this node. */
|
|
50091
|
+
expected: number(),
|
|
50092
|
+
/** Planned runners whose process is `running`. */
|
|
50093
|
+
running: number(),
|
|
50094
|
+
failed: array(string()),
|
|
50095
|
+
refused: array(RunnerRefusalSchema),
|
|
50096
|
+
missing: array(string()),
|
|
50097
|
+
/**
|
|
50098
|
+
* Runners still on their way: `starting`, or `crashed` waiting on a backoff
|
|
50099
|
+
* respawn. The check is FINAL only when this is empty; until then nothing is
|
|
50100
|
+
* pushed and the verdict is re-evaluated on the next runner state change.
|
|
50101
|
+
* Optional for version skew (absent = settled).
|
|
50102
|
+
*/
|
|
50103
|
+
pending: array(string()).optional(),
|
|
50104
|
+
/** True when the plan is the hub's (`missing` is then meaningful); false on an agent. */
|
|
50105
|
+
planKnown: boolean()
|
|
50106
|
+
});
|
|
50018
50107
|
var ServerPackageStatusSchema = object({
|
|
50019
50108
|
/** Root package name (`@camstack/server` on the hub). */
|
|
50020
50109
|
packageName: string(),
|
|
@@ -50077,7 +50166,14 @@ var ServerPackageStatusSchema = object({
|
|
|
50077
50166
|
* for version skew: an older provider's payload simply omits it, and an
|
|
50078
50167
|
* absent wrapper is unknown — never `native`.
|
|
50079
50168
|
*/
|
|
50080
|
-
wrapper: WrapperIdentitySchema.optional()
|
|
50169
|
+
wrapper: WrapperIdentitySchema.optional(),
|
|
50170
|
+
/**
|
|
50171
|
+
* What this node PLANNED to run against what its process service reports
|
|
50172
|
+
* (D877). Absent until the one-shot boot check has run (~60 s after boot) and
|
|
50173
|
+
* on a provider that predates it. Absent is "not checked yet", never "all
|
|
50174
|
+
* well": a consumer that needs the answer treats it as pending.
|
|
50175
|
+
*/
|
|
50176
|
+
runners: RunnerBootCheckSchema.optional()
|
|
50081
50177
|
});
|
|
50082
50178
|
var ServerUpdateCheckResultSchema = object({
|
|
50083
50179
|
packageName: string(),
|
|
@@ -50128,6 +50224,13 @@ var ServerUpdateOutcomeSchema = _enum([
|
|
|
50128
50224
|
"refused",
|
|
50129
50225
|
"failed"
|
|
50130
50226
|
]);
|
|
50227
|
+
/** One addon the pre-flight found the target version would refuse (D877). */
|
|
50228
|
+
var UpdateBlockerSchema = object({
|
|
50229
|
+
addonId: string(),
|
|
50230
|
+
reason: string(),
|
|
50231
|
+
/** What the operator does about it. */
|
|
50232
|
+
remedy: string()
|
|
50233
|
+
});
|
|
50131
50234
|
var ServerUpdateActionResultSchema = object({
|
|
50132
50235
|
accepted: boolean(),
|
|
50133
50236
|
targetVersion: string().nullable(),
|
|
@@ -50145,14 +50248,27 @@ var ServerUpdateActionResultSchema = object({
|
|
|
50145
50248
|
* The failure itself, verbatim enough to act on (the npm output for a
|
|
50146
50249
|
* staging install). Non-null only for `failed`.
|
|
50147
50250
|
*/
|
|
50148
|
-
error: string().nullable().optional()
|
|
50251
|
+
error: string().nullable().optional(),
|
|
50252
|
+
/**
|
|
50253
|
+
* The addons the target version would refuse to start on this node's live
|
|
50254
|
+
* store (D877), present when the pre-flight refused the update
|
|
50255
|
+
* (`reason: 'addon-would-refuse'`). Optional for version skew.
|
|
50256
|
+
*/
|
|
50257
|
+
blockers: array(UpdateBlockerSchema).optional()
|
|
50149
50258
|
});
|
|
50150
50259
|
method(_void(), ServerPackageStatusSchema, { auth: "admin" }), method(_void(), ServerUpdateCheckResultSchema, {
|
|
50151
50260
|
kind: "mutation",
|
|
50152
50261
|
auth: "admin"
|
|
50153
|
-
}), method(object({
|
|
50154
|
-
/** Explicit target version; omitted = latest from the registry. */
|
|
50155
|
-
version: string().optional()
|
|
50262
|
+
}), method(object({
|
|
50263
|
+
/** Explicit target version; omitted = latest from the registry. */
|
|
50264
|
+
version: string().optional(),
|
|
50265
|
+
/**
|
|
50266
|
+
* Apply even though the pre-flight (D877) found addons the target would
|
|
50267
|
+
* refuse to start. Off by default: those addons stay down until the
|
|
50268
|
+
* remedy is run, which is the incident this gate exists to prevent.
|
|
50269
|
+
*/
|
|
50270
|
+
acknowledgeRefusals: boolean().optional()
|
|
50271
|
+
}), ServerUpdateActionResultSchema, {
|
|
50156
50272
|
kind: "mutation",
|
|
50157
50273
|
auth: "admin",
|
|
50158
50274
|
timeoutMs: 16 * 6e4
|
|
@@ -52565,7 +52681,9 @@ var ManifestShapeSchema = object({
|
|
|
52565
52681
|
var AddonProcessSchema = object({
|
|
52566
52682
|
pid: number().optional(),
|
|
52567
52683
|
mode: string(),
|
|
52568
|
-
state: string()
|
|
52684
|
+
state: string(),
|
|
52685
|
+
/** Why the runner is `refused` (an addon's own words), when it is (D877). */
|
|
52686
|
+
reason: string().optional()
|
|
52569
52687
|
});
|
|
52570
52688
|
/**
|
|
52571
52689
|
* Per-addon health snapshot from the kernel's AddonHealthMonitor.
|
|
@@ -53568,6 +53686,12 @@ object({
|
|
|
53568
53686
|
/** Horizontal louver swing on/off. Null when the device has no
|
|
53569
53687
|
* horizontal swing surface (gate with `DeviceFeature.ClimateSwingHorizontal`). */
|
|
53570
53688
|
swingHorizontal: boolean().nullable(),
|
|
53689
|
+
/** Lowest setpoint the device accepts, Celsius. Absent / null = not reported. */
|
|
53690
|
+
minTemp: number().nullable().optional(),
|
|
53691
|
+
/** Highest setpoint the device accepts, Celsius. Absent / null = not reported. */
|
|
53692
|
+
maxTemp: number().nullable().optional(),
|
|
53693
|
+
/** Setpoint granularity, Celsius (0.5, 1). Absent / null = not reported. */
|
|
53694
|
+
tempStep: number().positive().nullable().optional(),
|
|
53571
53695
|
/** Ms epoch when the slice was last updated (push or command). */
|
|
53572
53696
|
lastFetchedAt: number()
|
|
53573
53697
|
});
|
|
@@ -60588,7 +60712,11 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
60588
60712
|
kind: "mutation",
|
|
60589
60713
|
auth: "admin",
|
|
60590
60714
|
access: "delete"
|
|
60591
|
-
}), method(object({ userId: string() }), TotpStatusSchema, { auth: "admin" }), method(
|
|
60715
|
+
}), method(object({ userId: string() }), TotpStatusSchema, { auth: "admin" }), method(RawSecretMigrationInputSchema, RawSecretMigrationReportSchema, {
|
|
60716
|
+
kind: "mutation",
|
|
60717
|
+
auth: "admin",
|
|
60718
|
+
access: "create"
|
|
60719
|
+
}), method(object({
|
|
60592
60720
|
userId: string(),
|
|
60593
60721
|
code: string()
|
|
60594
60722
|
}), object({ valid: boolean() }), {
|
|
@@ -64747,6 +64875,12 @@ Object.freeze({
|
|
|
64747
64875
|
addonId: null,
|
|
64748
64876
|
access: "view"
|
|
64749
64877
|
},
|
|
64878
|
+
"llm.migrateRawSecrets": {
|
|
64879
|
+
capName: "llm",
|
|
64880
|
+
capScope: "system",
|
|
64881
|
+
addonId: null,
|
|
64882
|
+
access: "create"
|
|
64883
|
+
},
|
|
64750
64884
|
"llm.resolveModelRef": {
|
|
64751
64885
|
capName: "llm",
|
|
64752
64886
|
capScope: "system",
|
|
@@ -69289,6 +69423,12 @@ Object.freeze({
|
|
|
69289
69423
|
addonId: null,
|
|
69290
69424
|
access: "view"
|
|
69291
69425
|
},
|
|
69426
|
+
"userManagement.migrateRawSecrets": {
|
|
69427
|
+
capName: "user-management",
|
|
69428
|
+
capScope: "system",
|
|
69429
|
+
addonId: null,
|
|
69430
|
+
access: "create"
|
|
69431
|
+
},
|
|
69292
69432
|
"userManagement.oauthExchangeCode": {
|
|
69293
69433
|
capName: "user-management",
|
|
69294
69434
|
capScope: "system",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { S as e, d as t, u as n, v as r } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DMBKVIH7.mjs";
|
|
2
2
|
import { n as i, r as a, t as o } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
|
|
3
|
-
import { g as s, h as c } from "./responsive-
|
|
3
|
+
import { g as s, h as c } from "./responsive-DKuK9SrM.mjs";
|
|
4
4
|
var l = s("chevron-down", [["path", {
|
|
5
5
|
d: "m6 9 6 6 6-6",
|
|
6
6
|
key: "qrunsl"
|
package/dist/remoteEntry.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-
|
|
1
|
+
import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-C0irhDNf.mjs";
|
|
2
2
|
export { t as get, e as init };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { S as e, d as t, g as n, i as r, l as i, n as a, r as o, u as s, v as c, y as l } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DMBKVIH7.mjs";
|
|
2
2
|
import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { g as u } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CVsfrcvP.mjs";
|
|
4
4
|
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
|
|
5
5
|
e();
|
|
6
6
|
var d = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), f = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), p = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), m = (e) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { S as e, g as t, l as n, v as r } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DMBKVIH7.mjs";
|
|
2
2
|
import { n as i } from "./ui-text-BqZa5BNK.mjs";
|
|
3
|
-
import { g as a } from "./responsive-
|
|
3
|
+
import { g as a } from "./responsive-DKuK9SrM.mjs";
|
|
4
4
|
var o = a("camera", [["path", {
|
|
5
5
|
d: "M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",
|
|
6
6
|
key: "18u6gg"
|
|
@@ -2753,7 +2753,7 @@ async function rr(e) {
|
|
|
2753
2753
|
}
|
|
2754
2754
|
}
|
|
2755
2755
|
async function ir() {
|
|
2756
|
-
return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-
|
|
2756
|
+
return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-BuCDA9zD.mjs")).catch((e) => {
|
|
2757
2757
|
throw tr = void 0, e;
|
|
2758
2758
|
}), tr;
|
|
2759
2759
|
}
|