camstack 1.2.47 → 1.2.49
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.
|
@@ -15560,6 +15560,46 @@ var CameraSwitchGroupSchema = external_exports.object({
|
|
|
15560
15560
|
/** Unix ms when the group was composed server-side. */
|
|
15561
15561
|
fetchedAt: external_exports.number()
|
|
15562
15562
|
});
|
|
15563
|
+
var LogChannelLevelSchema = external_exports.enum([
|
|
15564
|
+
"info",
|
|
15565
|
+
"warn",
|
|
15566
|
+
"error"
|
|
15567
|
+
]);
|
|
15568
|
+
var LogChannelDescriptorSchema = external_exports.object({
|
|
15569
|
+
/**
|
|
15570
|
+
* Dotted `area.thing`, unique across the workspace. `area` is conventionally
|
|
15571
|
+
* the addon's short name so an operator reading a channel list can tell who
|
|
15572
|
+
* owns it without a second lookup.
|
|
15573
|
+
*/
|
|
15574
|
+
name: external_exports.string().min(3).regex(/^[a-z0-9-]+(\.[a-z0-9-]+)+$/, "a channel name is dotted lower-kebab, e.g. area.thing"),
|
|
15575
|
+
/** One sentence: what the operator will SEE after arming it. */
|
|
15576
|
+
description: external_exports.string().min(1),
|
|
15577
|
+
/** The level its lines are emitted at. Never below `info`. */
|
|
15578
|
+
defaultLevel: LogChannelLevelSchema,
|
|
15579
|
+
/**
|
|
15580
|
+
* Whether this channel can be narrowed to a camera.
|
|
15581
|
+
*
|
|
15582
|
+
* `true` is a PROMISE with two halves, and both must hold: the gate is
|
|
15583
|
+
* consulted with the numeric device id, AND every line the channel admits
|
|
15584
|
+
* carries `tags: { deviceId }` with that same numeric id. The second half is
|
|
15585
|
+
* what makes `| json | deviceId="617"` work in Loki — `loki-payload.ts`
|
|
15586
|
+
* keeps `deviceId` out of the stream labels for cardinality, so the tag in
|
|
15587
|
+
* the body is the only way to filter.
|
|
15588
|
+
*
|
|
15589
|
+
* A channel whose lines carry the device only in `meta` (or not at all) is
|
|
15590
|
+
* declared `false`. Declaring it `true` anyway would be a lie the UI repeats:
|
|
15591
|
+
* the operator narrows to one camera, sees nothing, and concludes the code
|
|
15592
|
+
* path was never taken.
|
|
15593
|
+
*/
|
|
15594
|
+
perDevice: external_exports.boolean()
|
|
15595
|
+
});
|
|
15596
|
+
var LogChannelWindowSchema = external_exports.object({
|
|
15597
|
+
channel: external_exports.string().min(1),
|
|
15598
|
+
/** Epoch ms the window closes at. */
|
|
15599
|
+
armedUntilMs: external_exports.number(),
|
|
15600
|
+
/** `null` = every camera. A non-empty list narrows to those numeric ids. */
|
|
15601
|
+
deviceIds: external_exports.array(external_exports.number().int()).readonly().nullable()
|
|
15602
|
+
});
|
|
15563
15603
|
var OpsLogDomainSchema = external_exports.enum(["recording", "events"]);
|
|
15564
15604
|
var OpsLogOpSchema = external_exports.enum([
|
|
15565
15605
|
"prune",
|
|
@@ -19047,6 +19087,21 @@ var MutationFilterSchema = external_exports.object({
|
|
|
19047
19087
|
whereBetween: external_exports.record(external_exports.string(), external_exports.tuple([external_exports.unknown(), external_exports.unknown()])).optional(),
|
|
19048
19088
|
whereNot: external_exports.record(external_exports.string(), external_exports.unknown()).optional()
|
|
19049
19089
|
});
|
|
19090
|
+
var AggregateFieldSchema = external_exports.object({
|
|
19091
|
+
/** Result key. */
|
|
19092
|
+
as: external_exports.string().min(1),
|
|
19093
|
+
/** Column to aggregate. Must be a real column of a declared collection. */
|
|
19094
|
+
field: external_exports.string().min(1),
|
|
19095
|
+
op: external_exports.enum([
|
|
19096
|
+
"sum",
|
|
19097
|
+
"min",
|
|
19098
|
+
"max"
|
|
19099
|
+
])
|
|
19100
|
+
});
|
|
19101
|
+
var AggregateResultSchema = external_exports.object({
|
|
19102
|
+
count: external_exports.number().int(),
|
|
19103
|
+
values: external_exports.record(external_exports.string(), external_exports.number().nullable())
|
|
19104
|
+
});
|
|
19050
19105
|
var SettingsRecordSchema = external_exports.object({
|
|
19051
19106
|
id: external_exports.string(),
|
|
19052
19107
|
data: external_exports.record(external_exports.string(), external_exports.unknown())
|
|
@@ -19174,6 +19229,32 @@ var settingsStoreCapability = {
|
|
|
19174
19229
|
collection: external_exports.string(),
|
|
19175
19230
|
filter: QueryFilterSchema.optional()
|
|
19176
19231
|
}), external_exports.number()),
|
|
19232
|
+
/**
|
|
19233
|
+
* `COUNT(*)` and one `SUM` / `MIN` / `MAX` per requested field, in ONE
|
|
19234
|
+
* statement, over the rows `filter` selects.
|
|
19235
|
+
*
|
|
19236
|
+
* Exists because "how much is there" was being answered by materialising
|
|
19237
|
+
* "what is there". The recorder's storage-pressure sweep asked its in-RAM
|
|
19238
|
+
* footage index for bytes/count/oldest/newest across a set of storage
|
|
19239
|
+
* locations twice a minute, and the only way to answer that from a map is
|
|
19240
|
+
* to visit every row — 7.1 M of them on the live hub, ~15 M row visits a
|
|
19241
|
+
* minute on the main thread, which is also why the whole archive had to
|
|
19242
|
+
* stay resident to be visited. The question is a sum; nothing needs to be
|
|
19243
|
+
* materialised to answer it.
|
|
19244
|
+
*
|
|
19245
|
+
* **The engine REFUSES a field it cannot serve**, exactly as
|
|
19246
|
+
* `query.columns` does and unlike a PREDICATE, which is skipped when
|
|
19247
|
+
* unresolvable. A dropped predicate over-matches and the caller sees extra
|
|
19248
|
+
* rows; a dropped aggregate returns a NUMBER that is wrong and looks
|
|
19249
|
+
* exactly like a real one. That asymmetry is what this repo has already
|
|
19250
|
+
* paid for once in `count`.
|
|
19251
|
+
*/
|
|
19252
|
+
aggregate: method(external_exports.object({
|
|
19253
|
+
namespace: external_exports.string().optional(),
|
|
19254
|
+
collection: external_exports.string(),
|
|
19255
|
+
fields: external_exports.array(AggregateFieldSchema).readonly(),
|
|
19256
|
+
filter: QueryFilterSchema.optional()
|
|
19257
|
+
}), AggregateResultSchema),
|
|
19177
19258
|
/** Grouped counts per ((field-origin)/bucketSize) bucket, filtered. */
|
|
19178
19259
|
histogram: method(external_exports.object({
|
|
19179
19260
|
namespace: external_exports.string().optional(),
|
|
@@ -19332,6 +19413,15 @@ var dataStoreProviderCapability = {
|
|
|
19332
19413
|
collection: external_exports.string(),
|
|
19333
19414
|
filter: QueryFilterSchema.optional()
|
|
19334
19415
|
}), external_exports.number(), { auth: "admin" }),
|
|
19416
|
+
/** `COUNT(*)` plus one SUM/MIN/MAX per field, in one statement. Mirror of
|
|
19417
|
+
* `settings-store.aggregate` — see it for why an unresolvable field is
|
|
19418
|
+
* refused rather than dropped. */
|
|
19419
|
+
aggregate: method(external_exports.object({
|
|
19420
|
+
namespace: external_exports.string().optional(),
|
|
19421
|
+
collection: external_exports.string(),
|
|
19422
|
+
fields: external_exports.array(AggregateFieldSchema).readonly(),
|
|
19423
|
+
filter: QueryFilterSchema.optional()
|
|
19424
|
+
}), AggregateResultSchema, { auth: "admin" }),
|
|
19335
19425
|
/** Grouped counts per ((field-origin)/bucketSize) bucket, filtered. */
|
|
19336
19426
|
histogram: method(external_exports.object({
|
|
19337
19427
|
namespace: external_exports.string().optional(),
|
|
@@ -20409,6 +20499,39 @@ var deviceManagerCapability = {
|
|
|
20409
20499
|
/** List children of a parent device (by parent numeric id). */
|
|
20410
20500
|
getChildren: method(external_exports.object({ parentDeviceId: external_exports.number() }), external_exports.array(DeviceInfoSchema)),
|
|
20411
20501
|
/**
|
|
20502
|
+
* `getChildren` for a NAMED SET of parents, in one call.
|
|
20503
|
+
*
|
|
20504
|
+
* The accessory reconcile in `device-cap-proxy.ts` asks this question once
|
|
20505
|
+
* per registered device — every `BaseDevice` inherits a
|
|
20506
|
+
* `getAccessoryChildren()` that returns `[]`, so even a leaf accessory
|
|
20507
|
+
* pays a round-trip to learn it has nothing to prune. Measured on the live
|
|
20508
|
+
* hub 2026-08-27 over a 120-second boot window, fleet of 1 017 devices:
|
|
20509
|
+
* `DeviceRowStore.list < DeviceRowStore.listByParent < getChildren` at
|
|
20510
|
+
* **1 024 calls** returning **919 rows in total** — 1 024 RPCs and 1 024
|
|
20511
|
+
* indexed scans to move less than one row each. `listByParentMany`
|
|
20512
|
+
* collapses the scans; this collapses the RPCs.
|
|
20513
|
+
*
|
|
20514
|
+
* Keyed by parent id as a STRING — a JSON object cannot key by number
|
|
20515
|
+
* (same reason as `getDeviceStatusAggregateBatch`). The per-parent value
|
|
20516
|
+
* is exactly what `getChildren` returns for that parent.
|
|
20517
|
+
*
|
|
20518
|
+
* A parent with no children — or one the fleet does not know — is ABSENT
|
|
20519
|
+
* from the record, never an invented empty row: the same contract as
|
|
20520
|
+
* `DeviceRowStore.getMany`/`listByParentMany`. An EMPTY `parentDeviceIds`
|
|
20521
|
+
* reads nothing at all rather than degrading to "every device".
|
|
20522
|
+
*
|
|
20523
|
+
* `parentDeviceIds` is capped at {@link DEVICE_CHILDREN_BATCH_MAX} — see
|
|
20524
|
+
* that constant for why. A caller with more parents than that sends more
|
|
20525
|
+
* than one call; it never sends one pathological one.
|
|
20526
|
+
*
|
|
20527
|
+
* Version skew: this is a NEW method, not a new field on `getChildren`, so
|
|
20528
|
+
* a hub that predates it answers NOT_FOUND rather than silently stripping
|
|
20529
|
+
* an unknown input key and answering a DIFFERENT question. The kernel-side
|
|
20530
|
+
* loader degrades to per-parent `getChildren` on that error — see
|
|
20531
|
+
* `children-batch-loader.ts`.
|
|
20532
|
+
*/
|
|
20533
|
+
getChildrenBatch: method(external_exports.object({ parentDeviceIds: external_exports.array(external_exports.number()).max(256) }), external_exports.record(external_exports.string(), external_exports.array(DeviceInfoSchema))),
|
|
20534
|
+
/**
|
|
20412
20535
|
* Resolve the devices LINKED to a camera — the single policy authority
|
|
20413
20536
|
* both consumers call (viewer devices panel + pipeline-analytics event
|
|
20414
20537
|
* kinds/ingest). Device-tree children are ALWAYS included; mode 'auto'
|
|
@@ -21454,6 +21577,38 @@ var llmCapability = {
|
|
|
21454
21577
|
})
|
|
21455
21578
|
}
|
|
21456
21579
|
};
|
|
21580
|
+
var LogChannelApplyResultSchema = external_exports.object({
|
|
21581
|
+
/** How many declared channels are armed in this process after the call. */
|
|
21582
|
+
armed: external_exports.number().int().min(0),
|
|
21583
|
+
/**
|
|
21584
|
+
* Names the document armed that this process does not declare. Reported
|
|
21585
|
+
* rather than swallowed: a name here is either a typo or an addon that has
|
|
21586
|
+
* not booted, and both deserve a line instead of silence.
|
|
21587
|
+
*/
|
|
21588
|
+
unknown: external_exports.array(external_exports.string()).readonly()
|
|
21589
|
+
});
|
|
21590
|
+
var logChannelsCapability = {
|
|
21591
|
+
name: "log-channels",
|
|
21592
|
+
scope: "system",
|
|
21593
|
+
mode: "collection",
|
|
21594
|
+
internal: true,
|
|
21595
|
+
methods: {
|
|
21596
|
+
/** The channels this addon declares. Inert: no value, no state. */
|
|
21597
|
+
list: method(external_exports.void(), external_exports.array(LogChannelDescriptorSchema).readonly()),
|
|
21598
|
+
/**
|
|
21599
|
+
* Refresh this process's mirror from the document's FULL set of armed
|
|
21600
|
+
* windows.
|
|
21601
|
+
*
|
|
21602
|
+
* Full and not incremental on purpose: the document is the authority, so a
|
|
21603
|
+
* channel it does not name is disarmed here. An incremental apply would
|
|
21604
|
+
* let a disarm get lost in transit and leave a channel running that
|
|
21605
|
+
* nobody can see is running.
|
|
21606
|
+
*/
|
|
21607
|
+
apply: method(external_exports.object({ windows: external_exports.array(LogChannelWindowSchema).readonly() }), LogChannelApplyResultSchema, { kind: "mutation" })
|
|
21608
|
+
},
|
|
21609
|
+
/** In-process only — enumerated through `addons.listCapabilityProviders`. */
|
|
21610
|
+
mount: { kind: "skip" }
|
|
21611
|
+
};
|
|
21457
21612
|
var LogLevelSchema = external_exports.enum([
|
|
21458
21613
|
"debug",
|
|
21459
21614
|
"info",
|
|
@@ -36581,17 +36736,39 @@ var SetSiteLocationInputSchema = external_exports.object({
|
|
|
36581
36736
|
latitude: external_exports.number().min(-90).max(90),
|
|
36582
36737
|
longitude: external_exports.number().min(-180).max(180)
|
|
36583
36738
|
}).nullable();
|
|
36739
|
+
var TransportPlaneSchema = external_exports.enum([
|
|
36740
|
+
"http",
|
|
36741
|
+
"ws",
|
|
36742
|
+
"mesh",
|
|
36743
|
+
"unknown"
|
|
36744
|
+
]);
|
|
36745
|
+
var TransportPlaneCountsSchema = external_exports.object({
|
|
36746
|
+
http: external_exports.number(),
|
|
36747
|
+
ws: external_exports.number(),
|
|
36748
|
+
mesh: external_exports.number(),
|
|
36749
|
+
unknown: external_exports.number()
|
|
36750
|
+
});
|
|
36584
36751
|
var RequestCensusGroupSchema = external_exports.object({
|
|
36752
|
+
plane: TransportPlaneSchema,
|
|
36585
36753
|
procedure: external_exports.string(),
|
|
36586
36754
|
userAgent: external_exports.string(),
|
|
36587
36755
|
ip: external_exports.string(),
|
|
36588
36756
|
principal: external_exports.string(),
|
|
36589
36757
|
calls: external_exports.number(),
|
|
36758
|
+
subscriptions: external_exports.number(),
|
|
36590
36759
|
perMin: external_exports.number()
|
|
36591
36760
|
});
|
|
36592
36761
|
var RequestCensusProcedureSchema = external_exports.object({
|
|
36593
36762
|
procedure: external_exports.string(),
|
|
36594
36763
|
calls: external_exports.number(),
|
|
36764
|
+
/**
|
|
36765
|
+
* The same total, split by transport. THIS is the row that answers the
|
|
36766
|
+
* question the census exists for: one look at `deviceManager.listAll` says
|
|
36767
|
+
* which plane carried the 4 960, without joining two log lines by eye.
|
|
36768
|
+
*/
|
|
36769
|
+
planes: TransportPlaneCountsSchema,
|
|
36770
|
+
/** Subscription STARTS on this procedure. Never folded into `calls`. */
|
|
36771
|
+
subscriptions: external_exports.number(),
|
|
36595
36772
|
perMin: external_exports.number()
|
|
36596
36773
|
});
|
|
36597
36774
|
var RequestCensusSnapshotSchema = external_exports.object({
|
|
@@ -36611,14 +36788,45 @@ var RequestCensusSnapshotSchema = external_exports.object({
|
|
|
36611
36788
|
*/
|
|
36612
36789
|
procedureCalls: external_exports.number(),
|
|
36613
36790
|
/**
|
|
36791
|
+
* `procedureCalls` split by transport. The four keys sum to
|
|
36792
|
+
* `procedureCalls` by construction - {@link RequestCensusSnapshotSchema}'s
|
|
36793
|
+
* `planesExplainTotal` is that identity, checked rather than assumed.
|
|
36794
|
+
*/
|
|
36795
|
+
planes: TransportPlaneCountsSchema,
|
|
36796
|
+
/**
|
|
36797
|
+
* True iff `planes` sums to `procedureCalls`. False means a call was counted
|
|
36798
|
+
* on no plane at all - which is a RESULT (a plane is missing from the
|
|
36799
|
+
* instrument), not a failure, and it has to be visible to be read as one.
|
|
36800
|
+
*/
|
|
36801
|
+
planesExplainTotal: external_exports.boolean(),
|
|
36802
|
+
/**
|
|
36614
36803
|
* tRPC WebSocket connections opened during the window. NOT calls - the WS
|
|
36615
|
-
*
|
|
36616
|
-
*
|
|
36804
|
+
* adapter resolves one context per connection - kept because a plane's call
|
|
36805
|
+
* count of zero against 37 open connections says something different from a
|
|
36806
|
+
* plane with no connections at all.
|
|
36617
36807
|
*/
|
|
36618
36808
|
wsConnections: external_exports.number(),
|
|
36809
|
+
/**
|
|
36810
|
+
* Client frames the WS plane looked at. `wsMessages` far above
|
|
36811
|
+
* `planes.ws + subscriptions` means most traffic is not operations
|
|
36812
|
+
* (keepalives, connection params) - which is itself an answer.
|
|
36813
|
+
*/
|
|
36814
|
+
wsMessages: external_exports.number(),
|
|
36815
|
+
/**
|
|
36816
|
+
* Subscription STARTS across every plane, excluded from `procedureCalls` on
|
|
36817
|
+
* purpose: one live-events stream opened at boot and held for six hours is
|
|
36818
|
+
* one subscription, and counting it as a call would let a quiet plane
|
|
36819
|
+
* masquerade as the storm.
|
|
36820
|
+
*/
|
|
36821
|
+
subscriptions: external_exports.number(),
|
|
36822
|
+
/** `subscription.stop` frames. Starts minus stops is what is still open. */
|
|
36823
|
+
subscriptionStops: external_exports.number(),
|
|
36619
36824
|
distinctGroups: external_exports.number(),
|
|
36620
|
-
/**
|
|
36621
|
-
*
|
|
36825
|
+
/**
|
|
36826
|
+
* Operations counted in the totals whose CALLER attribution was shed at the
|
|
36827
|
+
* cardinality bound. Unrelated to the `unknown` PLANE: these calls know
|
|
36828
|
+
* which transport they arrived on, they just lost their group row.
|
|
36829
|
+
*/
|
|
36622
36830
|
unattributedCalls: external_exports.number(),
|
|
36623
36831
|
procedures: external_exports.array(RequestCensusProcedureSchema).readonly(),
|
|
36624
36832
|
groups: external_exports.array(RequestCensusGroupSchema).readonly()
|
|
@@ -36646,6 +36854,14 @@ var LoggingLevelLayerSchema = external_exports.object({
|
|
|
36646
36854
|
scope: LoggingScopeKindSchema,
|
|
36647
36855
|
/** The node this layer speaks for; `null` on the cluster layer. */
|
|
36648
36856
|
nodeId: external_exports.string().nullable(),
|
|
36857
|
+
/**
|
|
36858
|
+
* The declared channel this layer speaks for; `null` on every layer but
|
|
36859
|
+
* `component`. Never folded into `nodeId`: a component level is CLUSTER-WIDE
|
|
36860
|
+
* by design — the convention this repo settled on is one orchestrator-wide
|
|
36861
|
+
* setting, never per node (D52) — so a component layer that carried a node
|
|
36862
|
+
* would invite a per-node copy of a value that has no per-node meaning.
|
|
36863
|
+
*/
|
|
36864
|
+
component: external_exports.string().nullable(),
|
|
36649
36865
|
/** Explicitly set here, or `null` when this layer inherits. */
|
|
36650
36866
|
level: LogLevelSchema$1.nullable()
|
|
36651
36867
|
});
|
|
@@ -36671,6 +36887,38 @@ var DiagnosticWindowPatchSchema = external_exports.object({
|
|
|
36671
36887
|
/** Cadence of the diagnostic's aggregated report line. Clamped by the server. */
|
|
36672
36888
|
reportEveryMs: external_exports.number().int().positive().optional()
|
|
36673
36889
|
});
|
|
36890
|
+
var LogChannelWindowStateSchema = external_exports.object({
|
|
36891
|
+
channel: external_exports.string(),
|
|
36892
|
+
armed: external_exports.boolean(),
|
|
36893
|
+
/** Epoch ms the window closes at. 0 when disarmed. */
|
|
36894
|
+
armedUntilMs: external_exports.number(),
|
|
36895
|
+
/** Ms left before it expires on its own. 0 when disarmed. */
|
|
36896
|
+
remainingMs: external_exports.number(),
|
|
36897
|
+
/**
|
|
36898
|
+
* The cameras it is narrowed to, or `null` for every camera.
|
|
36899
|
+
*
|
|
36900
|
+
* A channel declared `perDevice: false` can only ever report `null` here:
|
|
36901
|
+
* its lines do not carry `tags: { deviceId }`, so narrowing them would
|
|
36902
|
+
* produce a filter that silently matches nothing. The server REFUSES such a
|
|
36903
|
+
* patch rather than quietly widening it — ignoring the request would teach
|
|
36904
|
+
* the operator that per-camera filtering works on that channel when it does
|
|
36905
|
+
* not.
|
|
36906
|
+
*/
|
|
36907
|
+
deviceIds: external_exports.array(external_exports.number().int()).readonly().nullable()
|
|
36908
|
+
});
|
|
36909
|
+
var LogChannelWindowPatchSchema = external_exports.object({
|
|
36910
|
+
channel: external_exports.string().min(1),
|
|
36911
|
+
armMs: external_exports.number().int().min(0),
|
|
36912
|
+
/**
|
|
36913
|
+
* Narrow to these numeric device ids. Absent or `null` = every camera.
|
|
36914
|
+
*
|
|
36915
|
+
* Numeric because the repo's own rule makes it possible: every log line
|
|
36916
|
+
* about a device carries `tags: { deviceId }` with the numeric id. That rule
|
|
36917
|
+
* was paid for with a 22% thumbnail gap and a 3-hour media blackout both
|
|
36918
|
+
* diagnosed by hand, and this is the first thing that collects on it.
|
|
36919
|
+
*/
|
|
36920
|
+
deviceIds: external_exports.array(external_exports.number().int()).readonly().nullable().optional()
|
|
36921
|
+
});
|
|
36674
36922
|
var LoggingSettingsPatchSchema = external_exports.object({
|
|
36675
36923
|
/**
|
|
36676
36924
|
* Absent leaves the level untouched. `null` CLEARS the explicit value at the
|
|
@@ -36681,19 +36929,50 @@ var LoggingSettingsPatchSchema = external_exports.object({
|
|
|
36681
36929
|
* Only the diagnostics NAMED here change. An armed window that is not listed
|
|
36682
36930
|
* keeps running — a patch is never a full replacement.
|
|
36683
36931
|
*/
|
|
36684
|
-
diagnostics: external_exports.array(DiagnosticWindowPatchSchema).readonly().optional()
|
|
36932
|
+
diagnostics: external_exports.array(DiagnosticWindowPatchSchema).readonly().optional(),
|
|
36933
|
+
/**
|
|
36934
|
+
* Only the channels NAMED here change. An armed channel that is not listed
|
|
36935
|
+
* keeps running — same rule as `diagnostics`, because a patch that silently
|
|
36936
|
+
* disarmed the channels it did not mention would make the Levels page and
|
|
36937
|
+
* the Diagnostics page fight over the same value.
|
|
36938
|
+
*/
|
|
36939
|
+
channels: external_exports.array(LogChannelWindowPatchSchema).readonly().optional()
|
|
36940
|
+
});
|
|
36941
|
+
var GetLoggingSettingsInputSchema = external_exports.object({
|
|
36942
|
+
scopeNodeId: external_exports.string().optional(),
|
|
36943
|
+
/**
|
|
36944
|
+
* The declared CHANNEL this document is addressed at, when the caller wants
|
|
36945
|
+
* the `component` layer. Absent = the node/cluster hierarchy only.
|
|
36946
|
+
*
|
|
36947
|
+
* Naming it separately rather than overloading `scopeNodeId` keeps the two
|
|
36948
|
+
* axes from collapsing: a component level is cluster-wide, a node level is
|
|
36949
|
+
* not, and one selector for both would make "which of these two did I just
|
|
36950
|
+
* set" unanswerable — the exact ambiguity `explicit` exists to remove.
|
|
36951
|
+
*/
|
|
36952
|
+
scopeComponent: external_exports.string().optional()
|
|
36685
36953
|
});
|
|
36686
|
-
var GetLoggingSettingsInputSchema = external_exports.object({ scopeNodeId: external_exports.string().optional() });
|
|
36687
36954
|
var SetLoggingSettingsInputSchema = external_exports.object({
|
|
36688
36955
|
scopeNodeId: external_exports.string().optional(),
|
|
36956
|
+
scopeComponent: external_exports.string().optional(),
|
|
36689
36957
|
patch: LoggingSettingsPatchSchema
|
|
36690
36958
|
});
|
|
36691
36959
|
var LoggingSettingsStateSchema = external_exports.object({
|
|
36692
36960
|
/** The layer this document was read at. `null` = the cluster layer. */
|
|
36693
36961
|
scopeNodeId: external_exports.string().nullable(),
|
|
36962
|
+
/** The channel this document was read at. `null` = no component layer. */
|
|
36963
|
+
scopeComponent: external_exports.string().nullable(),
|
|
36694
36964
|
effective: LoggingEffectiveSchema,
|
|
36695
36965
|
explicit: LoggingExplicitSchema,
|
|
36696
36966
|
activeWindows: external_exports.array(DiagnosticWindowSchema).readonly(),
|
|
36967
|
+
/**
|
|
36968
|
+
* Every channel the cluster's addons DECLARE, gathered from the
|
|
36969
|
+
* `log-channels` providers. Not stored anywhere: assembled per read, so a
|
|
36970
|
+
* channel added by a redeployed addon appears without anybody editing a
|
|
36971
|
+
* list, and a channel whose addon is gone stops being offered.
|
|
36972
|
+
*/
|
|
36973
|
+
channels: external_exports.array(LogChannelDescriptorSchema).readonly(),
|
|
36974
|
+
/** The channels ARMED right now, each with its deadline. */
|
|
36975
|
+
activeChannels: external_exports.array(LogChannelWindowStateSchema).readonly(),
|
|
36697
36976
|
persisted: external_exports.boolean()
|
|
36698
36977
|
});
|
|
36699
36978
|
var systemCapability = {
|
|
@@ -38604,6 +38883,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
38604
38883
|
addonId: null,
|
|
38605
38884
|
access: "view"
|
|
38606
38885
|
},
|
|
38886
|
+
"dataStoreProvider.aggregate": {
|
|
38887
|
+
capName: "data-store-provider",
|
|
38888
|
+
capScope: "system",
|
|
38889
|
+
addonId: null,
|
|
38890
|
+
access: "view"
|
|
38891
|
+
},
|
|
38607
38892
|
"dataStoreProvider.count": {
|
|
38608
38893
|
capName: "data-store-provider",
|
|
38609
38894
|
capScope: "system",
|
|
@@ -39018,6 +39303,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
39018
39303
|
addonId: null,
|
|
39019
39304
|
access: "view"
|
|
39020
39305
|
},
|
|
39306
|
+
"deviceManager.getChildrenBatch": {
|
|
39307
|
+
capName: "device-manager",
|
|
39308
|
+
capScope: "system",
|
|
39309
|
+
addonId: null,
|
|
39310
|
+
access: "view"
|
|
39311
|
+
},
|
|
39021
39312
|
"deviceManager.getConfigSchema": {
|
|
39022
39313
|
capName: "device-manager",
|
|
39023
39314
|
capScope: "system",
|
|
@@ -40068,6 +40359,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
40068
40359
|
addonId: null,
|
|
40069
40360
|
access: "create"
|
|
40070
40361
|
},
|
|
40362
|
+
"logChannels.apply": {
|
|
40363
|
+
capName: "log-channels",
|
|
40364
|
+
capScope: "system",
|
|
40365
|
+
addonId: null,
|
|
40366
|
+
access: "create"
|
|
40367
|
+
},
|
|
40368
|
+
"logChannels.list": {
|
|
40369
|
+
capName: "log-channels",
|
|
40370
|
+
capScope: "system",
|
|
40371
|
+
addonId: null,
|
|
40372
|
+
access: "view"
|
|
40373
|
+
},
|
|
40071
40374
|
"logDestination.query": {
|
|
40072
40375
|
capName: "log-destination",
|
|
40073
40376
|
capScope: "system",
|
|
@@ -42222,6 +42525,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
42222
42525
|
addonId: null,
|
|
42223
42526
|
access: "create"
|
|
42224
42527
|
},
|
|
42528
|
+
"settingsStore.aggregate": {
|
|
42529
|
+
capName: "settings-store",
|
|
42530
|
+
capScope: "system",
|
|
42531
|
+
addonId: null,
|
|
42532
|
+
access: "view"
|
|
42533
|
+
},
|
|
42225
42534
|
"settingsStore.count": {
|
|
42226
42535
|
capName: "settings-store",
|
|
42227
42536
|
capScope: "system",
|
|
@@ -43801,6 +44110,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
|
|
|
43801
44110
|
form: "single",
|
|
43802
44111
|
optional: false
|
|
43803
44112
|
}],
|
|
44113
|
+
"deviceManager.getChildrenBatch": [{
|
|
44114
|
+
name: "parentDeviceIds",
|
|
44115
|
+
form: "array",
|
|
44116
|
+
optional: false
|
|
44117
|
+
}],
|
|
43804
44118
|
"deviceManager.getConfigSchema": [{
|
|
43805
44119
|
name: "deviceId",
|
|
43806
44120
|
form: "single",
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runDiscover
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-U5U3EPIG.js";
|
|
5
5
|
import "./chunk-LMMQX4CK.js";
|
|
6
6
|
|
|
7
7
|
// src/cli.ts
|
|
@@ -38,7 +38,7 @@ async function runServe(args) {
|
|
|
38
38
|
...typeof values.data === "string" ? { data: values.data } : {}
|
|
39
39
|
};
|
|
40
40
|
Object.assign(process.env, buildServeEnv(opts));
|
|
41
|
-
await import("./launcher-
|
|
41
|
+
await import("./launcher-Y5UOZ2NP.js");
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
// src/commands/agent.ts
|
|
@@ -83,7 +83,7 @@ async function runAgent(args) {
|
|
|
83
83
|
...typeof values.port === "string" ? { port: values.port } : {}
|
|
84
84
|
};
|
|
85
85
|
Object.assign(process.env, buildAgentEnv(opts));
|
|
86
|
-
await import("./launcher-
|
|
86
|
+
await import("./launcher-Y5UOZ2NP.js");
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
// src/commands/setup.ts
|
|
@@ -1130,7 +1130,7 @@ function isUnknown(_value) {
|
|
|
1130
1130
|
return true;
|
|
1131
1131
|
}
|
|
1132
1132
|
async function resolveServerInteractive(presetNamespace) {
|
|
1133
|
-
const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-
|
|
1133
|
+
const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-WF63I2OT.js");
|
|
1134
1134
|
if (presetNamespace) {
|
|
1135
1135
|
const spinner4 = clack.spinner();
|
|
1136
1136
|
spinner4.start(`Discovering hub on LAN (namespace "${presetNamespace}")`);
|