@projectqai/proto 0.0.48 → 0.0.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.
- package/device.ts +15 -12
- package/dist/metrics_pb.d.ts +108 -0
- package/dist/metrics_pb.js +23 -4
- package/package.json +1 -1
package/device.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createClient, type Client, ConnectError, Code } from "@connectrpc/connect";
|
|
2
2
|
import { createTransport } from "@connectrpc/connect/protocol-connect";
|
|
3
3
|
import type { UniversalClientFn } from "@connectrpc/connect/protocol";
|
|
4
|
-
import { create, clone } from "@bufbuild/protobuf";
|
|
4
|
+
import { create, clone, type JsonObject, type JsonValue } from "@bufbuild/protobuf";
|
|
5
5
|
import {
|
|
6
6
|
WorldService,
|
|
7
7
|
EntitySchema,
|
|
@@ -114,14 +114,14 @@ export function push(client: WorldClient, ...entities: Entity[]) {
|
|
|
114
114
|
|
|
115
115
|
// Schema → typed config inference
|
|
116
116
|
|
|
117
|
-
type SchemaProperty = { readonly type: string; readonly default?:
|
|
117
|
+
type SchemaProperty = Record<string, JsonValue> & { readonly type: string; readonly default?: JsonValue };
|
|
118
118
|
type SchemaProperties = Readonly<Record<string, SchemaProperty>>;
|
|
119
119
|
|
|
120
120
|
type InferProperty<P extends SchemaProperty> =
|
|
121
121
|
P extends { type: "string" } ? string :
|
|
122
122
|
P extends { type: "boolean" } ? boolean :
|
|
123
123
|
P extends { type: "number" | "integer" } ? number :
|
|
124
|
-
|
|
124
|
+
JsonValue;
|
|
125
125
|
|
|
126
126
|
export type InferConfig<S extends SchemaProperties> = {
|
|
127
127
|
[K in keyof S]?: InferProperty<S[K]>;
|
|
@@ -141,13 +141,13 @@ function extractConfig<S extends SchemaProperties>(entity: Entity, schema: S): I
|
|
|
141
141
|
|
|
142
142
|
export type HealthResult = boolean | Record<number, { label: string; value: number | bigint }>;
|
|
143
143
|
|
|
144
|
-
export interface AttachOptions<S extends SchemaProperties
|
|
144
|
+
export interface AttachOptions<S extends SchemaProperties = Record<string, never>> {
|
|
145
145
|
id: string;
|
|
146
146
|
label?: string;
|
|
147
147
|
controller?: string;
|
|
148
148
|
device?: { category?: string };
|
|
149
149
|
icon?: string;
|
|
150
|
-
schema
|
|
150
|
+
schema?: S;
|
|
151
151
|
/** Default config to push on attach so the plugin starts without manual
|
|
152
152
|
* configuration. Pushed with fresh=0 so it won't overwrite an existing config. */
|
|
153
153
|
config?: InferConfig<S>;
|
|
@@ -182,11 +182,12 @@ function sleep(ms: number, signal: AbortSignal): Promise<void> {
|
|
|
182
182
|
* `false` to skip the heartbeat (device expires via TTL), or a metrics map
|
|
183
183
|
* to push metrics alongside the heartbeat.
|
|
184
184
|
*/
|
|
185
|
-
export async function attach<S extends SchemaProperties
|
|
185
|
+
export async function attach<S extends SchemaProperties = Record<string, never>>(opts: AttachOptions<S>) {
|
|
186
186
|
const client = connect();
|
|
187
187
|
const entityID = opts.id;
|
|
188
188
|
const interval = opts.interval ?? DEFAULT_INTERVAL;
|
|
189
189
|
const health = opts.health ?? (() => true);
|
|
190
|
+
const schema = (opts.schema ?? {}) as S;
|
|
190
191
|
|
|
191
192
|
const entity = create(EntitySchema, {
|
|
192
193
|
id: entityID,
|
|
@@ -195,7 +196,7 @@ export async function attach<S extends SchemaProperties>(opts: AttachOptions<S>)
|
|
|
195
196
|
...(opts.device && { device: create(DeviceComponentSchema, opts.device) }),
|
|
196
197
|
...(opts.icon && { interactivity: create(InteractivityComponentSchema, { icon: opts.icon }) }),
|
|
197
198
|
configurable: create(ConfigurableComponentSchema, {
|
|
198
|
-
schema: { type: "object", properties:
|
|
199
|
+
schema: { type: "object", properties: schema } as JsonObject,
|
|
199
200
|
}),
|
|
200
201
|
});
|
|
201
202
|
|
|
@@ -208,7 +209,7 @@ export async function attach<S extends SchemaProperties>(opts: AttachOptions<S>)
|
|
|
208
209
|
await push(client, create(EntitySchema, {
|
|
209
210
|
id: entityID,
|
|
210
211
|
config: create(ConfigurationComponentSchema, {
|
|
211
|
-
value: opts.config as
|
|
212
|
+
value: opts.config as JsonObject,
|
|
212
213
|
}),
|
|
213
214
|
lifetime: create(LifetimeSchema, {
|
|
214
215
|
fresh: create(TimestampSchema, { seconds: 0n }),
|
|
@@ -226,9 +227,11 @@ export async function attach<S extends SchemaProperties>(opts: AttachOptions<S>)
|
|
|
226
227
|
|
|
227
228
|
const pushHeartbeat = (result?: Record<number, { label: string; value: number | bigint }>) => {
|
|
228
229
|
const state = initialized ? DeviceState.DeviceStateActive : DeviceState.DeviceStatePending;
|
|
230
|
+
const device = entity.device ? clone(DeviceComponentSchema, entity.device) : create(DeviceComponentSchema);
|
|
231
|
+
device.state = state;
|
|
229
232
|
const e = create(EntitySchema, {
|
|
230
233
|
id: entityID,
|
|
231
|
-
device
|
|
234
|
+
device,
|
|
232
235
|
lifetime: create(LifetimeSchema, {
|
|
233
236
|
until: create(TimestampSchema, { seconds: BigInt(Math.floor((Date.now() + interval + 1_000) / 1000)) }),
|
|
234
237
|
}),
|
|
@@ -238,7 +241,7 @@ export async function attach<S extends SchemaProperties>(opts: AttachOptions<S>)
|
|
|
238
241
|
metrics: Object.entries(result).map(([idStr, { label, value }]) =>
|
|
239
242
|
typeof value === "bigint"
|
|
240
243
|
? create(MetricSchema, { id: Number(idStr), label, kind: MetricKind.MetricKindCount, unit: MetricUnit.MetricUnitCount, val: { case: "uint64", value } })
|
|
241
|
-
: create(MetricSchema, { id: Number(idStr), label, kind: MetricKind.
|
|
244
|
+
: create(MetricSchema, { id: Number(idStr), label, kind: MetricKind.MetricKindUnspecified, unit: MetricUnit.MetricUnitUnspecified, val: { case: "float", value } }),
|
|
242
245
|
),
|
|
243
246
|
});
|
|
244
247
|
}
|
|
@@ -296,7 +299,7 @@ export async function attach<S extends SchemaProperties>(opts: AttachOptions<S>)
|
|
|
296
299
|
await pushState(e, ConfigurableState.ConfigurableStateStarting);
|
|
297
300
|
|
|
298
301
|
try {
|
|
299
|
-
if (opts.init) await opts.init(client, extractConfig(e,
|
|
302
|
+
if (opts.init) await opts.init(client, extractConfig(e, schema), childSignal);
|
|
300
303
|
} catch (err) {
|
|
301
304
|
if (childSignal.aborted || isCanceled(err)) return;
|
|
302
305
|
console.error(`init failed entity=${entityID}`, err);
|
|
@@ -309,7 +312,7 @@ export async function attach<S extends SchemaProperties>(opts: AttachOptions<S>)
|
|
|
309
312
|
await pushState(e, ConfigurableState.ConfigurableStateActive);
|
|
310
313
|
|
|
311
314
|
try {
|
|
312
|
-
await opts.run(client, extractConfig(e,
|
|
315
|
+
await opts.run(client, extractConfig(e, schema), childSignal);
|
|
313
316
|
} catch (err) {
|
|
314
317
|
if (childSignal.aborted || isCanceled(err)) return;
|
|
315
318
|
console.error(`error, restarting entity=${entityID}`, err);
|
package/dist/metrics_pb.d.ts
CHANGED
|
@@ -11,6 +11,75 @@ import type { Timestamp } from "@bufbuild/protobuf/wkt";
|
|
|
11
11
|
*/
|
|
12
12
|
export declare const file_metrics: GenFile;
|
|
13
13
|
|
|
14
|
+
/**
|
|
15
|
+
* @generated from message world.MetricRange
|
|
16
|
+
*/
|
|
17
|
+
export declare type MetricRange = Message<"world.MetricRange"> & {
|
|
18
|
+
/**
|
|
19
|
+
* @generated from oneof world.MetricRange.min
|
|
20
|
+
*/
|
|
21
|
+
min: {
|
|
22
|
+
/**
|
|
23
|
+
* @generated from field: double min_double = 1;
|
|
24
|
+
*/
|
|
25
|
+
value: number;
|
|
26
|
+
case: "minDouble";
|
|
27
|
+
} | {
|
|
28
|
+
/**
|
|
29
|
+
* @generated from field: float min_float = 2;
|
|
30
|
+
*/
|
|
31
|
+
value: number;
|
|
32
|
+
case: "minFloat";
|
|
33
|
+
} | {
|
|
34
|
+
/**
|
|
35
|
+
* @generated from field: sint64 min_sint64 = 3;
|
|
36
|
+
*/
|
|
37
|
+
value: bigint;
|
|
38
|
+
case: "minSint64";
|
|
39
|
+
} | {
|
|
40
|
+
/**
|
|
41
|
+
* @generated from field: uint64 min_uint64 = 4;
|
|
42
|
+
*/
|
|
43
|
+
value: bigint;
|
|
44
|
+
case: "minUint64";
|
|
45
|
+
} | { case: undefined; value?: undefined };
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @generated from oneof world.MetricRange.max
|
|
49
|
+
*/
|
|
50
|
+
max: {
|
|
51
|
+
/**
|
|
52
|
+
* @generated from field: double max_double = 10;
|
|
53
|
+
*/
|
|
54
|
+
value: number;
|
|
55
|
+
case: "maxDouble";
|
|
56
|
+
} | {
|
|
57
|
+
/**
|
|
58
|
+
* @generated from field: float max_float = 11;
|
|
59
|
+
*/
|
|
60
|
+
value: number;
|
|
61
|
+
case: "maxFloat";
|
|
62
|
+
} | {
|
|
63
|
+
/**
|
|
64
|
+
* @generated from field: sint64 max_sint64 = 12;
|
|
65
|
+
*/
|
|
66
|
+
value: bigint;
|
|
67
|
+
case: "maxSint64";
|
|
68
|
+
} | {
|
|
69
|
+
/**
|
|
70
|
+
* @generated from field: uint64 max_uint64 = 13;
|
|
71
|
+
*/
|
|
72
|
+
value: bigint;
|
|
73
|
+
case: "maxUint64";
|
|
74
|
+
} | { case: undefined; value?: undefined };
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Describes the message world.MetricRange.
|
|
79
|
+
* Use `create(MetricRangeSchema)` to create a new message.
|
|
80
|
+
*/
|
|
81
|
+
export declare const MetricRangeSchema: GenMessage<MetricRange>;
|
|
82
|
+
|
|
14
83
|
/**
|
|
15
84
|
* @generated from message world.Metric
|
|
16
85
|
*/
|
|
@@ -44,6 +113,16 @@ export declare type Metric = Message<"world.Metric"> & {
|
|
|
44
113
|
*/
|
|
45
114
|
measuredAt?: Timestamp;
|
|
46
115
|
|
|
116
|
+
/**
|
|
117
|
+
* @generated from field: optional world.MetricRange range = 6;
|
|
118
|
+
*/
|
|
119
|
+
range?: MetricRange;
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* @generated from field: optional world.SensorClip clipping = 7;
|
|
123
|
+
*/
|
|
124
|
+
clipping?: SensorClip;
|
|
125
|
+
|
|
47
126
|
/**
|
|
48
127
|
* @generated from oneof world.Metric.val
|
|
49
128
|
*/
|
|
@@ -861,6 +940,35 @@ export enum MetricUnit {
|
|
|
861
940
|
*/
|
|
862
941
|
export declare const MetricUnitSchema: GenEnum<MetricUnit>;
|
|
863
942
|
|
|
943
|
+
/**
|
|
944
|
+
* @generated from enum world.SensorClip
|
|
945
|
+
*/
|
|
946
|
+
export enum SensorClip {
|
|
947
|
+
/**
|
|
948
|
+
* @generated from enum value: SensorClipNone = 0;
|
|
949
|
+
*/
|
|
950
|
+
SensorClipNone = 0,
|
|
951
|
+
|
|
952
|
+
/**
|
|
953
|
+
* actual value may be higher than reported due to sensor range exceeded
|
|
954
|
+
*
|
|
955
|
+
* @generated from enum value: SensorClipHigh = 1;
|
|
956
|
+
*/
|
|
957
|
+
SensorClipHigh = 1,
|
|
958
|
+
|
|
959
|
+
/**
|
|
960
|
+
* actual value may be lower than reported due to sensor range exceeded
|
|
961
|
+
*
|
|
962
|
+
* @generated from enum value: SensorClipLow = 2;
|
|
963
|
+
*/
|
|
964
|
+
SensorClipLow = 2,
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
/**
|
|
968
|
+
* Describes the enum world.SensorClip.
|
|
969
|
+
*/
|
|
970
|
+
export declare const SensorClipSchema: GenEnum<SensorClip>;
|
|
971
|
+
|
|
864
972
|
/**
|
|
865
973
|
* @generated from enum world.AlertLevel
|
|
866
974
|
*/
|
package/dist/metrics_pb.js
CHANGED
|
@@ -9,21 +9,28 @@ import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
|
|
|
9
9
|
* Describes the file metrics.proto.
|
|
10
10
|
*/
|
|
11
11
|
export const file_metrics = /*@__PURE__*/
|
|
12
|
-
fileDesc("
|
|
12
|
+
fileDesc("Cg1tZXRyaWNzLnByb3RvEgV3b3JsZCLJAQoLTWV0cmljUmFuZ2USFAoKbWluX2RvdWJsZRgBIAEoAUgAEhMKCW1pbl9mbG9hdBgCIAEoAkgAEhQKCm1pbl9zaW50NjQYAyABKBJIABIUCgptaW5fdWludDY0GAQgASgESAASFAoKbWF4X2RvdWJsZRgKIAEoAUgBEhMKCW1heF9mbG9hdBgLIAEoAkgBEhQKCm1heF9zaW50NjQYDCABKBJIARIUCgptYXhfdWludDY0GA0gASgESAFCBQoDbWluQgUKA21heCLCAwoGTWV0cmljEh8KBHVuaXQYASABKA4yES53b3JsZC5NZXRyaWNVbml0Eg8KAmlkGAIgASgNSAGIAQESJAoEa2luZBgDIAEoDjIRLndvcmxkLk1ldHJpY0tpbmRIAogBARISCgVsYWJlbBgEIAEoCUgDiAEBEjQKC21lYXN1cmVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEiYKBXJhbmdlGAYgASgLMhIud29ybGQuTWV0cmljUmFuZ2VIBYgBARIoCghjbGlwcGluZxgHIAEoDjIRLndvcmxkLlNlbnNvckNsaXBIBogBARIQCgZkb3VibGUYCiABKAFIABIPCgVmbG9hdBgLIAEoAkgAEhAKBnNpbnQ2NBgMIAEoEkgAEhAKBnVpbnQ2NBgNIAEoBEgAEigKCGFsZXJ0aW5nGBQgASgOMhEud29ybGQuQWxlcnRMZXZlbEgHiAEBQgUKA3ZhbEIFCgNfaWRCBwoFX2tpbmRCCAoGX2xhYmVsQg4KDF9tZWFzdXJlZF9hdEIICgZfcmFuZ2VCCwoJX2NsaXBwaW5nQgsKCV9hbGVydGluZyIxCg9NZXRyaWNDb21wb25lbnQSHgoHbWV0cmljcxgBIAMoCzINLndvcmxkLk1ldHJpYyrwCAoKTWV0cmljS2luZBIZChVNZXRyaWNLaW5kVW5zcGVjaWZpZWQQABIZChVNZXRyaWNLaW5kVGVtcGVyYXR1cmUQARIWChJNZXRyaWNLaW5kUHJlc3N1cmUQAhIWChJNZXRyaWNLaW5kSHVtaWRpdHkQAxIZChVNZXRyaWNLaW5kSWxsdW1pbmFuY2UQBBIYChRNZXRyaWNLaW5kU291bmRMZXZlbBAFEhcKE01ldHJpY0tpbmRXaW5kU3BlZWQQBhIbChdNZXRyaWNLaW5kV2luZERpcmVjdGlvbhAHEhsKF01ldHJpY0tpbmRQcmVjaXBpdGF0aW9uEAgSGAoUTWV0cmljS2luZElycmFkaWFuY2UQCRIVChFNZXRyaWNLaW5kVm9sdGFnZRAUEhUKEU1ldHJpY0tpbmRDdXJyZW50EBUSEwoPTWV0cmljS2luZFBvd2VyEBYSFAoQTWV0cmljS2luZEVuZXJneRAXEhcKE01ldHJpY0tpbmRGcmVxdWVuY3kQGBIYChRNZXRyaWNLaW5kUmVzaXN0YW5jZRAZEhYKEk1ldHJpY0tpbmRQcm9ncmVzcxAoEhgKFE1ldHJpY0tpbmRQZXJjZW50YWdlECkSFgoSTWV0cmljS2luZERpc3RhbmNlEDwSEwoPTWV0cmljS2luZFNwZWVkED0SGgoWTWV0cmljS2luZEFjY2VsZXJhdGlvbhA+EhMKD01ldHJpY0tpbmREZXB0aBA/EhYKEk1ldHJpY0tpbmREYXRhUmF0ZRBQEhUKEU1ldHJpY0tpbmRMYXRlbmN5EFESFgoSTWV0cmljS2luZERhdGFTaXplEFISEQoNTWV0cmljS2luZENvMhBkEhIKDk1ldHJpY0tpbmRQbTI1EGUSEgoOTWV0cmljS2luZFBtMTAQZhIRCg1NZXRyaWNLaW5kQXFpEGcSEAoMTWV0cmljS2luZFBoEGgSEwoPTWV0cmljS2luZFJhZG9uEGkSFAoQTWV0cmljS2luZE94eWdlbhBqEh4KGU1ldHJpY0tpbmRSYWRpYXRpb25IYXphcmQQggESHQoYTWV0cmljS2luZENoZW1pY2FsSGF6YXJkEIMBEh8KGk1ldHJpY0tpbmRCaW9sb2dpY2FsSGF6YXJkEIQBEhwKF01ldHJpY0tpbmROdWNsZWFySGF6YXJkEIUBEhQKEE1ldHJpY0tpbmRXZWlnaHQQbhIUChBNZXRyaWNLaW5kVm9sdW1lEHASHAoYTWV0cmljS2luZFZvbHVtZUZsb3dSYXRlEHESHAoYTWV0cmljS2luZFNpZ25hbFN0cmVuZ3RoEHMSGAoTTWV0cmljS2luZEhlYXJ0UmF0ZRCMARIfChpNZXRyaWNLaW5kT3h5Z2VuU2F0dXJhdGlvbhCNARIeChlNZXRyaWNLaW5kQm9keVRlbXBlcmF0dXJlEI4BEhYKEk1ldHJpY0tpbmREdXJhdGlvbhB2EhMKD01ldHJpY0tpbmRDb3VudBB4KoUSCgpNZXRyaWNVbml0EhkKFU1ldHJpY1VuaXRVbnNwZWNpZmllZBAAEhUKEU1ldHJpY1VuaXRDZWxzaXVzEAESGAoUTWV0cmljVW5pdEZhaHJlbmhlaXQQAhIUChBNZXRyaWNVbml0S2VsdmluEAMSGQoVTWV0cmljVW5pdEhlY3RvcGFzY2FsEAoSEQoNTWV0cmljVW5pdFBzaRALEhEKDU1ldHJpY1VuaXRCYXIQDBIWChJNZXRyaWNVbml0TWlsbGliYXIQDRISCg5NZXRyaWNVbml0SW5IZxAOEhUKEU1ldHJpY1VuaXRQZXJjZW50EBQSEwoPTWV0cmljVW5pdFJhdGlvEBUSEgoOTWV0cmljVW5pdFZvbHQQHhIXChNNZXRyaWNVbml0TWlsbGl2b2x0EB8SFAoQTWV0cmljVW5pdEFtcGVyZRAgEhkKFU1ldHJpY1VuaXRNaWxsaWFtcGVyZRAhEhIKDk1ldHJpY1VuaXRXYXR0ECISFgoSTWV0cmljVW5pdEtpbG93YXR0ECMSFgoSTWV0cmljVW5pdFdhdHRIb3VyECQSGgoWTWV0cmljVW5pdEtpbG93YXR0SG91chAlEhMKD01ldHJpY1VuaXRIZXJ0ehAmEhcKE01ldHJpY1VuaXRLaWxvaGVydHoQJxIXChNNZXRyaWNVbml0TWVnYWhlcnR6ECgSEQoNTWV0cmljVW5pdE9obRApEhMKD01ldHJpY1VuaXRNZXRlchAyEhcKE01ldHJpY1VuaXRLaWxvbWV0ZXIQMxISCg5NZXRyaWNVbml0Rm9vdBA0EhoKFk1ldHJpY1VuaXROYXV0aWNhbE1pbGUQNRIcChhNZXRyaWNVbml0TWV0ZXJQZXJTZWNvbmQQNhISCg5NZXRyaWNVbml0S25vdBA3Eh4KGk1ldHJpY1VuaXRLaWxvbWV0ZXJQZXJIb3VyEDgSIwofTWV0cmljVW5pdE1ldGVyUGVyU2Vjb25kU3F1YXJlZBA5EhEKDU1ldHJpY1VuaXRMdXgQPBIVChFNZXRyaWNVbml0RGVjaWJlbBBGEhYKEk1ldHJpY1VuaXREZWNpYmVsQRBHEhoKFk1ldHJpY1VuaXRCaXRQZXJTZWNvbmQQUBIeChpNZXRyaWNVbml0S2lsb2JpdFBlclNlY29uZBBREh4KGk1ldHJpY1VuaXRNZWdhYml0UGVyU2Vjb25kEFISEgoOTWV0cmljVW5pdEJ5dGUQVBIWChJNZXRyaWNVbml0S2lsb2J5dGUQVRIWChJNZXRyaWNVbml0TWVnYWJ5dGUQVhIWChJNZXRyaWNVbml0R2lnYWJ5dGUQVxIdChlNZXRyaWNVbml0UGFydHNQZXJNaWxsaW9uEFoSJAogTWV0cmljVW5pdE1pY3JvZ3JhbVBlckN1YmljTWV0ZXIQWxIkCiBNZXRyaWNVbml0QmVjcXVlcmVsUGVyQ3ViaWNNZXRlchBcEhoKFU1ldHJpY1VuaXROYW5vc2lldmVydBCCARIhChxNZXRyaWNVbml0TmFub3NpZXZlcnRQZXJIb3VyEIMBEhsKFk1ldHJpY1VuaXRNaWNyb3NpZXZlcnQQhAESIgodTWV0cmljVW5pdE1pY3Jvc2lldmVydFBlckhvdXIQhQESGwoWTWV0cmljVW5pdE1pbGxpc2lldmVydBCGARIiCh1NZXRyaWNVbml0TWlsbGlzaWV2ZXJ0UGVySG91chCHARIWChFNZXRyaWNVbml0U2lldmVydBCIARIdChhNZXRyaWNVbml0U2lldmVydFBlckhvdXIQiQESFwoSTWV0cmljVW5pdE5hbm9ncmF5EJYBEh4KGU1ldHJpY1VuaXROYW5vZ3JheVBlckhvdXIQlwESGAoTTWV0cmljVW5pdE1pY3JvZ3JheRCYARIfChpNZXRyaWNVbml0TWljcm9ncmF5UGVySG91chCZARIYChNNZXRyaWNVbml0TWlsbGlncmF5EJoBEh8KGk1ldHJpY1VuaXRNaWxsaWdyYXlQZXJIb3VyEJsBEhMKDk1ldHJpY1VuaXRHcmF5EJwBEhoKFU1ldHJpY1VuaXRHcmF5UGVySG91chCdARIYChNNZXRyaWNVbml0Q2VudGlncmF5EJ4BEh4KGU1ldHJpY1VuaXRDb3VudHNQZXJTZWNvbmQQoAESHgoZTWV0cmljVW5pdFBhcnRzUGVyQmlsbGlvbhCKARIlCiBNZXRyaWNVbml0TWlsbGlncmFtUGVyQ3ViaWNNZXRlchCLARImCiFNZXRyaWNVbml0TWljcm9ncmFtUGVyU3F1YXJlTWV0ZXIQjAESEgoNTWV0cmljVW5pdEJpbhCNARIYChRNZXRyaWNVbml0TWlsbGltZXRlchBeEh8KG01ldHJpY1VuaXRNaWxsaW1ldGVyUGVySG91chBfEhQKEE1ldHJpY1VuaXREZWdyZWUQZBIUChBNZXRyaWNVbml0UmFkaWFuEGUSGQoVTWV0cmljVW5pdE1pbGxpc2Vjb25kEFMSFAoQTWV0cmljVW5pdFNlY29uZBBuEhQKEE1ldHJpY1VuaXRNaW51dGUQbxISCg5NZXRyaWNVbml0SG91chBwEhYKEk1ldHJpY1VuaXRLaWxvZ3JhbRBxEhIKDk1ldHJpY1VuaXRHcmFtEHISEwoPTWV0cmljVW5pdFBvdW5kEHMSEwoPTWV0cmljVW5pdExpdGVyEHQSGAoUTWV0cmljVW5pdE1pbGxpbGl0ZXIQdRIYChRNZXRyaWNVbml0Q3ViaWNNZXRlchB2EhQKEE1ldHJpY1VuaXRHYWxsb24QdxIdChhNZXRyaWNVbml0QmVhdHNQZXJNaW51dGUQqgESEwoPTWV0cmljVW5pdENvdW50EHgSHAoYTWV0cmljVW5pdExpdGVyUGVyTWludXRlEHkSHwobTWV0cmljVW5pdEN1YmljTWV0ZXJQZXJIb3VyEHoSHgoaTWV0cmljVW5pdERlY2liZWxNaWxsaXdhdHQQexIgChxNZXRyaWNVbml0V2F0dFBlclNxdWFyZU1ldGVyEHwqRwoKU2Vuc29yQ2xpcBISCg5TZW5zb3JDbGlwTm9uZRAAEhIKDlNlbnNvckNsaXBIaWdoEAESEQoNU2Vuc29yQ2xpcExvdxACKmQKCkFsZXJ0TGV2ZWwSEgoOQWxlcnRMZXZlbE5vbmUQABIVChFBbGVydExldmVsV2FybmluZxABEhMKD0FsZXJ0TGV2ZWxBbGFybRACEhYKEkFsZXJ0TGV2ZWxDcml0aWNhbBADQiBaHmdpdGh1Yi5jb20vcHJvamVjdHFhaS9wcm90by9nb2IGcHJvdG8z", [file_google_protobuf_timestamp]);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Describes the message world.MetricRange.
|
|
16
|
+
* Use `create(MetricRangeSchema)` to create a new message.
|
|
17
|
+
*/
|
|
18
|
+
export const MetricRangeSchema = /*@__PURE__*/
|
|
19
|
+
messageDesc(file_metrics, 0);
|
|
13
20
|
|
|
14
21
|
/**
|
|
15
22
|
* Describes the message world.Metric.
|
|
16
23
|
* Use `create(MetricSchema)` to create a new message.
|
|
17
24
|
*/
|
|
18
25
|
export const MetricSchema = /*@__PURE__*/
|
|
19
|
-
messageDesc(file_metrics,
|
|
26
|
+
messageDesc(file_metrics, 1);
|
|
20
27
|
|
|
21
28
|
/**
|
|
22
29
|
* Describes the message world.MetricComponent.
|
|
23
30
|
* Use `create(MetricComponentSchema)` to create a new message.
|
|
24
31
|
*/
|
|
25
32
|
export const MetricComponentSchema = /*@__PURE__*/
|
|
26
|
-
messageDesc(file_metrics,
|
|
33
|
+
messageDesc(file_metrics, 2);
|
|
27
34
|
|
|
28
35
|
/**
|
|
29
36
|
* Describes the enum world.MetricKind.
|
|
@@ -49,11 +56,23 @@ export const MetricUnitSchema = /*@__PURE__*/
|
|
|
49
56
|
export const MetricUnit = /*@__PURE__*/
|
|
50
57
|
tsEnum(MetricUnitSchema);
|
|
51
58
|
|
|
59
|
+
/**
|
|
60
|
+
* Describes the enum world.SensorClip.
|
|
61
|
+
*/
|
|
62
|
+
export const SensorClipSchema = /*@__PURE__*/
|
|
63
|
+
enumDesc(file_metrics, 2);
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* @generated from enum world.SensorClip
|
|
67
|
+
*/
|
|
68
|
+
export const SensorClip = /*@__PURE__*/
|
|
69
|
+
tsEnum(SensorClipSchema);
|
|
70
|
+
|
|
52
71
|
/**
|
|
53
72
|
* Describes the enum world.AlertLevel.
|
|
54
73
|
*/
|
|
55
74
|
export const AlertLevelSchema = /*@__PURE__*/
|
|
56
|
-
enumDesc(file_metrics,
|
|
75
|
+
enumDesc(file_metrics, 3);
|
|
57
76
|
|
|
58
77
|
/**
|
|
59
78
|
* @generated from enum world.AlertLevel
|