@fleetless/contracts 1.0.0
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/CHANGELOG.md +26 -0
- package/LICENSE +202 -0
- package/NOTICE +17 -0
- package/README.md +88 -0
- package/artifacts/constants.json +24 -0
- package/artifacts/openapi.json +17219 -0
- package/artifacts/routes.json +4605 -0
- package/artifacts/schema/accept-team-invite-request.schema.json +22 -0
- package/artifacts/schema/action-config.schema.json +198 -0
- package/artifacts/schema/alert-list-response.schema.json +172 -0
- package/artifacts/schema/api-error.schema.json +20 -0
- package/artifacts/schema/app-auth-config.schema.json +106 -0
- package/artifacts/schema/app-invitation-list-response.schema.json +57 -0
- package/artifacts/schema/app-invitation.schema.json +69 -0
- package/artifacts/schema/app-list-response.schema.json +82 -0
- package/artifacts/schema/app-mail-template-list-response.schema.json +68 -0
- package/artifacts/schema/app-mail-template.schema.json +54 -0
- package/artifacts/schema/app-oidc-provider-list-response.schema.json +93 -0
- package/artifacts/schema/app-oidc-provider.schema.json +80 -0
- package/artifacts/schema/app-user-list-response.schema.json +111 -0
- package/artifacts/schema/app-user.schema.json +98 -0
- package/artifacts/schema/app.schema.json +69 -0
- package/artifacts/schema/apply-error.schema.json +41 -0
- package/artifacts/schema/asset-list-response.schema.json +288 -0
- package/artifacts/schema/asset-sync-request.schema.json +17 -0
- package/artifacts/schema/asset-sync-response.schema.json +16 -0
- package/artifacts/schema/asset-sync-status.schema.json +136 -0
- package/artifacts/schema/asset.schema.json +68 -0
- package/artifacts/schema/audit-actor.schema.json +32 -0
- package/artifacts/schema/audit-event.schema.json +119 -0
- package/artifacts/schema/audit-list-response.schema.json +144 -0
- package/artifacts/schema/audit-query.schema.json +79 -0
- package/artifacts/schema/auth-error.schema.json +23 -0
- package/artifacts/schema/auth-me-response.schema.json +99 -0
- package/artifacts/schema/auth-ok.schema.json +115 -0
- package/artifacts/schema/authorization-server-metadata.schema.json +80 -0
- package/artifacts/schema/bridge-asset-progress.schema.json +99 -0
- package/artifacts/schema/bridge-assets-available.schema.json +25 -0
- package/artifacts/schema/bridge-camera-state.schema.json +78 -0
- package/artifacts/schema/bridge-config-applied.schema.json +67 -0
- package/artifacts/schema/bridge-hello.schema.json +65 -0
- package/artifacts/schema/bridge-introspect.schema.json +114 -0
- package/artifacts/schema/bridge-job-lost.schema.json +22 -0
- package/artifacts/schema/bridge-job-update.schema.json +100 -0
- package/artifacts/schema/bridge-pong.schema.json +19 -0
- package/artifacts/schema/bridge-pressure.schema.json +292 -0
- package/artifacts/schema/bridge-state.schema.json +24 -0
- package/artifacts/schema/bridge-type-definitions.schema.json +169 -0
- package/artifacts/schema/busy-details.schema.json +115 -0
- package/artifacts/schema/camera-descriptor.schema.json +45 -0
- package/artifacts/schema/camera-list-response.schema.json +58 -0
- package/artifacts/schema/camera-source.schema.json +240 -0
- package/artifacts/schema/cancel-request.schema.json +20 -0
- package/artifacts/schema/client-accept-invitation-request.schema.json +35 -0
- package/artifacts/schema/client-auth.schema.json +18 -0
- package/artifacts/schema/client-cancel.schema.json +45 -0
- package/artifacts/schema/client-identity.schema.json +103 -0
- package/artifacts/schema/client-invoke.schema.json +45 -0
- package/artifacts/schema/client-login-request.schema.json +29 -0
- package/artifacts/schema/client-logout-request.schema.json +14 -0
- package/artifacts/schema/client-mcp-interaction-decision-response.schema.json +15 -0
- package/artifacts/schema/client-mcp-interaction.schema.json +59 -0
- package/artifacts/schema/client-oidc-callback-query.schema.json +28 -0
- package/artifacts/schema/client-oidc-exchange-request.schema.json +21 -0
- package/artifacts/schema/client-oidc-start-query.schema.json +36 -0
- package/artifacts/schema/client-password-reset-confirm-request.schema.json +22 -0
- package/artifacts/schema/client-password-reset-request.schema.json +24 -0
- package/artifacts/schema/client-provider-list-query.schema.json +17 -0
- package/artifacts/schema/client-provider-list-response.schema.json +34 -0
- package/artifacts/schema/client-publish.schema.json +40 -0
- package/artifacts/schema/client-refresh-request.schema.json +14 -0
- package/artifacts/schema/client-register-request.schema.json +44 -0
- package/artifacts/schema/client-resend-verification-request.schema.json +24 -0
- package/artifacts/schema/client-subscribe.schema.json +43 -0
- package/artifacts/schema/client-unsubscribe.schema.json +26 -0
- package/artifacts/schema/client-verify-email-request.schema.json +15 -0
- package/artifacts/schema/cloud-asset-request.schema.json +37 -0
- package/artifacts/schema/cloud-camera-start.schema.json +41 -0
- package/artifacts/schema/cloud-camera-stop.schema.json +26 -0
- package/artifacts/schema/cloud-cancel.schema.json +33 -0
- package/artifacts/schema/cloud-config.schema.json +1635 -0
- package/artifacts/schema/cloud-hello-error.schema.json +23 -0
- package/artifacts/schema/cloud-hello-ok.schema.json +19 -0
- package/artifacts/schema/cloud-introspect-request.schema.json +19 -0
- package/artifacts/schema/cloud-invoke.schema.json +40 -0
- package/artifacts/schema/cloud-ping.schema.json +19 -0
- package/artifacts/schema/cloud-publish.schema.json +28 -0
- package/artifacts/schema/cloud-type-request.schema.json +30 -0
- package/artifacts/schema/command-result.schema.json +175 -0
- package/artifacts/schema/config-draft-response.schema.json +1695 -0
- package/artifacts/schema/config-state.schema.json +124 -0
- package/artifacts/schema/config-version-response.schema.json +1641 -0
- package/artifacts/schema/config-versions-response.schema.json +33 -0
- package/artifacts/schema/create-app-invitation-request.schema.json +40 -0
- package/artifacts/schema/create-app-oidc-provider-request.schema.json +70 -0
- package/artifacts/schema/create-app-request.schema.json +30 -0
- package/artifacts/schema/create-app-user-request.schema.json +42 -0
- package/artifacts/schema/create-robot-request.schema.json +14 -0
- package/artifacts/schema/create-robot-response.schema.json +44 -0
- package/artifacts/schema/create-server-key-response.schema.json +65 -0
- package/artifacts/schema/create-team-invite-request.schema.json +43 -0
- package/artifacts/schema/datapoint-alert-row.schema.json +160 -0
- package/artifacts/schema/datapoint-config.schema.json +366 -0
- package/artifacts/schema/datapoint-display.schema.json +31 -0
- package/artifacts/schema/datapoint-event.schema.json +34 -0
- package/artifacts/schema/datapoint-frame.schema.json +28 -0
- package/artifacts/schema/datapoint-list-response.schema.json +61 -0
- package/artifacts/schema/datapoint-value.schema.json +28 -0
- package/artifacts/schema/developer-login-request.schema.json +19 -0
- package/artifacts/schema/dynamic-client-registration-request.schema.json +60 -0
- package/artifacts/schema/dynamic-client-registration-response.schema.json +68 -0
- package/artifacts/schema/error-frame.schema.json +23 -0
- package/artifacts/schema/exposure-counts.schema.json +39 -0
- package/artifacts/schema/exposure-list-response.schema.json +43 -0
- package/artifacts/schema/fetch-types-request.schema.json +19 -0
- package/artifacts/schema/fetch-types-response.schema.json +163 -0
- package/artifacts/schema/fleetless-user-list-response.schema.json +73 -0
- package/artifacts/schema/fleetless-user.schema.json +60 -0
- package/artifacts/schema/history-buckets-response.schema.json +79 -0
- package/artifacts/schema/history-query.schema.json +58 -0
- package/artifacts/schema/history-response.schema.json +150 -0
- package/artifacts/schema/history-samples-response.schema.json +68 -0
- package/artifacts/schema/introspection-response.schema.json +118 -0
- package/artifacts/schema/invoke-or-service-response.schema.json +141 -0
- package/artifacts/schema/invoke-request.schema.json +23 -0
- package/artifacts/schema/invoke-response.schema.json +125 -0
- package/artifacts/schema/job-actor.schema.json +34 -0
- package/artifacts/schema/job-event.schema.json +158 -0
- package/artifacts/schema/job-response.schema.json +123 -0
- package/artifacts/schema/job-run-list-response.schema.json +222 -0
- package/artifacts/schema/job-run-query.schema.json +95 -0
- package/artifacts/schema/job-run-summary-query.schema.json +23 -0
- package/artifacts/schema/job-run-summary.schema.json +33 -0
- package/artifacts/schema/job-run.schema.json +195 -0
- package/artifacts/schema/job-state.schema.json +11 -0
- package/artifacts/schema/job.schema.json +106 -0
- package/artifacts/schema/latency-bucket.schema.json +63 -0
- package/artifacts/schema/live-session-response.schema.json +41 -0
- package/artifacts/schema/mail-outcome.schema.json +20 -0
- package/artifacts/schema/mail-template-preview-request.schema.json +35 -0
- package/artifacts/schema/mail-template-preview-response.schema.json +31 -0
- package/artifacts/schema/mail-template-problem-details.schema.json +24 -0
- package/artifacts/schema/mcp-consent-grant-list-response.schema.json +52 -0
- package/artifacts/schema/mcp-consent-grant.schema.json +39 -0
- package/artifacts/schema/mcp-robot-datasheet.schema.json +115 -0
- package/artifacts/schema/mcp-role-preview-response.schema.json +134 -0
- package/artifacts/schema/missing-asset-query.schema.json +11 -0
- package/artifacts/schema/oauth-authorize-query.schema.json +47 -0
- package/artifacts/schema/oauth-redirect-response.schema.json +15 -0
- package/artifacts/schema/oauth-token-request.schema.json +47 -0
- package/artifacts/schema/oauth-token-response.schema.json +38 -0
- package/artifacts/schema/org-alerts-query.schema.json +15 -0
- package/artifacts/schema/org-event-dropped.schema.json +26 -0
- package/artifacts/schema/org-event-replay.schema.json +97 -0
- package/artifacts/schema/org-event-subscribe.schema.json +14 -0
- package/artifacts/schema/org-event-unsubscribe.schema.json +14 -0
- package/artifacts/schema/org-event.schema.json +75 -0
- package/artifacts/schema/org-firing-alerts-response.schema.json +178 -0
- package/artifacts/schema/org-health-query.schema.json +13 -0
- package/artifacts/schema/org-latency-query.schema.json +42 -0
- package/artifacts/schema/org-latency-response.schema.json +124 -0
- package/artifacts/schema/org-quota-usage-counts.schema.json +42 -0
- package/artifacts/schema/org-quota-usage.schema.json +102 -0
- package/artifacts/schema/org-quotas.schema.json +51 -0
- package/artifacts/schema/org-usage-query.schema.json +19 -0
- package/artifacts/schema/org-usage-response.schema.json +77 -0
- package/artifacts/schema/org.schema.json +30 -0
- package/artifacts/schema/parameter-invalid-details.schema.json +37 -0
- package/artifacts/schema/parameter-spec.schema.json +120 -0
- package/artifacts/schema/parameter-violation.schema.json +24 -0
- package/artifacts/schema/password-change-request.schema.json +21 -0
- package/artifacts/schema/password-reset-confirm.schema.json +19 -0
- package/artifacts/schema/password-reset-request.schema.json +14 -0
- package/artifacts/schema/patch-app-oidc-provider-request.schema.json +50 -0
- package/artifacts/schema/patch-app-user-request.schema.json +34 -0
- package/artifacts/schema/patch-auth-me-request.schema.json +22 -0
- package/artifacts/schema/patch-fleetless-user-request.schema.json +20 -0
- package/artifacts/schema/patch-org-request.schema.json +15 -0
- package/artifacts/schema/patch-org-response.schema.json +40 -0
- package/artifacts/schema/patch-robot-request.schema.json +15 -0
- package/artifacts/schema/patch-robot-response.schema.json +40 -0
- package/artifacts/schema/pending-team-invite-list-response.schema.json +52 -0
- package/artifacts/schema/pending-team-invite.schema.json +39 -0
- package/artifacts/schema/protected-resource-metadata.schema.json +41 -0
- package/artifacts/schema/publish-config-response.schema.json +21 -0
- package/artifacts/schema/publish-request.schema.json +17 -0
- package/artifacts/schema/publisher-config.schema.json +285 -0
- package/artifacts/schema/put-app-auth-config-request.schema.json +93 -0
- package/artifacts/schema/put-app-mail-template-request.schema.json +35 -0
- package/artifacts/schema/put-config-draft-request.schema.json +13 -0
- package/artifacts/schema/put-datapoint-display-request.schema.json +31 -0
- package/artifacts/schema/put-robot-details-request.schema.json +41 -0
- package/artifacts/schema/put-robot-details-response.schema.json +43 -0
- package/artifacts/schema/rate-limit-details.schema.json +15 -0
- package/artifacts/schema/refresh-request.schema.json +13 -0
- package/artifacts/schema/release-live-query.schema.json +13 -0
- package/artifacts/schema/rename-slug-request.schema.json +23 -0
- package/artifacts/schema/rename-slug-response.schema.json +24 -0
- package/artifacts/schema/resource-health-event.schema.json +72 -0
- package/artifacts/schema/resource-health-list-response.schema.json +80 -0
- package/artifacts/schema/resource-health-state.schema.json +68 -0
- package/artifacts/schema/robot-config-doc.schema.json +1616 -0
- package/artifacts/schema/robot-delete-query.schema.json +12 -0
- package/artifacts/schema/robot-deletion-summary.schema.json +63 -0
- package/artifacts/schema/robot-detail-response.schema.json +262 -0
- package/artifacts/schema/robot-details-doc.schema.json +33 -0
- package/artifacts/schema/robot-jobs-response.schema.json +119 -0
- package/artifacts/schema/robot-latency-series.schema.json +81 -0
- package/artifacts/schema/robot-list-item.schema.json +94 -0
- package/artifacts/schema/robot-list-response.schema.json +106 -0
- package/artifacts/schema/robot.schema.json +30 -0
- package/artifacts/schema/role-list-response.schema.json +48 -0
- package/artifacts/schema/role-permissions.schema.json +61 -0
- package/artifacts/schema/role.schema.json +35 -0
- package/artifacts/schema/ros-graph.schema.json +99 -0
- package/artifacts/schema/server-key-list-response.schema.json +64 -0
- package/artifacts/schema/server-key.schema.json +51 -0
- package/artifacts/schema/service-call-response.schema.json +13 -0
- package/artifacts/schema/service-config.schema.json +198 -0
- package/artifacts/schema/session-tokens.schema.json +28 -0
- package/artifacts/schema/sign-up-request.schema.json +26 -0
- package/artifacts/schema/sign-up-response.schema.json +127 -0
- package/artifacts/schema/slug-usage-response.schema.json +32 -0
- package/artifacts/schema/snapshot-header.schema.json +44 -0
- package/artifacts/schema/snapshot-meta-response.schema.json +85 -0
- package/artifacts/schema/subscribe-error.schema.json +31 -0
- package/artifacts/schema/team-invite.schema.json +57 -0
- package/artifacts/schema/tier-change-request.schema.json +17 -0
- package/artifacts/schema/type-definition.schema.json +144 -0
- package/artifacts/schema/types-response.schema.json +156 -0
- package/artifacts/schema/update-app-request.schema.json +32 -0
- package/artifacts/schema/urdf-completeness.schema.json +50 -0
- package/artifacts/schema/validation-issue.schema.json +43 -0
- package/artifacts/schema/waitlist-request.schema.json +15 -0
- package/artifacts/schema-outgoing/bridge-asset-progress.schema.json +102 -0
- package/artifacts/schema-outgoing/bridge-assets-available.schema.json +26 -0
- package/artifacts/schema-outgoing/bridge-camera-state.schema.json +80 -0
- package/artifacts/schema-outgoing/bridge-config-applied.schema.json +69 -0
- package/artifacts/schema-outgoing/bridge-hello.schema.json +68 -0
- package/artifacts/schema-outgoing/bridge-introspect.schema.json +119 -0
- package/artifacts/schema-outgoing/bridge-job-lost.schema.json +23 -0
- package/artifacts/schema-outgoing/bridge-job-update.schema.json +102 -0
- package/artifacts/schema-outgoing/bridge-pong.schema.json +20 -0
- package/artifacts/schema-outgoing/bridge-type-definitions.schema.json +174 -0
- package/artifacts/schema-outgoing/datapoint-frame.schema.json +29 -0
- package/artifacts/schema-outgoing/snapshot-header.schema.json +45 -0
- package/dist/alerts.d.ts +255 -0
- package/dist/alerts.js +193 -0
- package/dist/app-users.d.ts +606 -0
- package/dist/app-users.js +696 -0
- package/dist/apps.d.ts +175 -0
- package/dist/apps.js +267 -0
- package/dist/assets.d.ts +434 -0
- package/dist/assets.js +546 -0
- package/dist/audit.d.ts +129 -0
- package/dist/audit.js +238 -0
- package/dist/client-auth.d.ts +409 -0
- package/dist/client-auth.js +487 -0
- package/dist/common.d.ts +186 -0
- package/dist/common.js +199 -0
- package/dist/config-issues.d.ts +175 -0
- package/dist/config-issues.js +339 -0
- package/dist/config.d.ts +862 -0
- package/dist/config.js +1988 -0
- package/dist/errors.d.ts +52 -0
- package/dist/errors.js +786 -0
- package/dist/identity.d.ts +549 -0
- package/dist/identity.js +503 -0
- package/dist/index.d.ts +51 -0
- package/dist/index.js +51 -0
- package/dist/introspection.d.ts +99 -0
- package/dist/introspection.js +97 -0
- package/dist/jobs.d.ts +334 -0
- package/dist/jobs.js +345 -0
- package/dist/mcp.d.ts +239 -0
- package/dist/mcp.js +153 -0
- package/dist/oauth.d.ts +344 -0
- package/dist/oauth.js +488 -0
- package/dist/protocol.d.ts +781 -0
- package/dist/protocol.js +715 -0
- package/dist/realtime.d.ts +494 -0
- package/dist/realtime.js +512 -0
- package/dist/rest.d.ts +1989 -0
- package/dist/rest.js +1963 -0
- package/dist/routes.d.ts +94 -0
- package/dist/routes.js +2298 -0
- package/package.json +61 -0
|
@@ -0,0 +1,494 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Client realtime protocol (spec §11.1): WebSocket subscriptions on
|
|
4
|
+
* datapoints. W1 scope: subscribe/unsubscribe plus the datapoint event
|
|
5
|
+
* stream; command parity arrives in W4.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* The first frame a client sends after the socket opens (W3, spec §3.4).
|
|
9
|
+
*
|
|
10
|
+
* A browser cannot set an `Authorization` header on a WebSocket handshake,
|
|
11
|
+
* and a token in the query string would outlive the request in server,
|
|
12
|
+
* proxy and browser-history logs. So `/realtime` authenticates the way
|
|
13
|
+
* `/bridge` already does: with a frame. `token` is the same bearer value
|
|
14
|
+
* REST takes — a user's JWT or a server key (`flk_…`), told apart by prefix.
|
|
15
|
+
*
|
|
16
|
+
* Any `subscribe` before `auth_ok` is refused, and a socket that sends no
|
|
17
|
+
* auth frame in time is closed with **4002**, the code the bridge socket
|
|
18
|
+
* already uses for a missing hello.
|
|
19
|
+
*/
|
|
20
|
+
export declare const clientAuth: z.ZodObject<{
|
|
21
|
+
type: z.ZodLiteral<"auth">;
|
|
22
|
+
token: z.ZodString;
|
|
23
|
+
}, z.core.$strip>;
|
|
24
|
+
export type ClientAuth = z.infer<typeof clientAuth>;
|
|
25
|
+
/**
|
|
26
|
+
* Who the socket turned out to belong to. Carrying the identity here means a
|
|
27
|
+
* client never has to decode a JWT to render its own session — decoding a
|
|
28
|
+
* token client-side is how apps end up trusting claims nobody verified.
|
|
29
|
+
*/
|
|
30
|
+
export declare const authOk: z.ZodObject<{
|
|
31
|
+
type: z.ZodLiteral<"auth_ok">;
|
|
32
|
+
identity: z.ZodObject<{
|
|
33
|
+
kind: z.ZodEnum<{
|
|
34
|
+
developer: "developer";
|
|
35
|
+
server_key: "server_key";
|
|
36
|
+
app_user: "app_user";
|
|
37
|
+
}>;
|
|
38
|
+
developer_id: z.ZodNullable<z.ZodUUID>;
|
|
39
|
+
app_user_id: z.ZodNullable<z.ZodUUID>;
|
|
40
|
+
server_key_id: z.ZodNullable<z.ZodUUID>;
|
|
41
|
+
app_id: z.ZodNullable<z.ZodUUID>;
|
|
42
|
+
role_id: z.ZodNullable<z.ZodUUID>;
|
|
43
|
+
email: z.ZodNullable<z.ZodEmail>;
|
|
44
|
+
}, z.core.$strip>;
|
|
45
|
+
}, z.core.$strip>;
|
|
46
|
+
export type AuthOk = z.infer<typeof authOk>;
|
|
47
|
+
/** Refusal, followed by close 1008 — same shape as the bridge's hello_error. */
|
|
48
|
+
export declare const authError: z.ZodObject<{
|
|
49
|
+
type: z.ZodLiteral<"auth_error">;
|
|
50
|
+
code: z.ZodString;
|
|
51
|
+
message: z.ZodString;
|
|
52
|
+
}, z.core.$strip>;
|
|
53
|
+
export type AuthError = z.infer<typeof authError>;
|
|
54
|
+
/**
|
|
55
|
+
* Command parity (spec §11.1): everything REST can do — invoke an action,
|
|
56
|
+
* call a service, publish, cancel — also travels over this socket.
|
|
57
|
+
*
|
|
58
|
+
* **Every command carries a `request_id` and every reply echoes it.** A
|
|
59
|
+
* subscribe that gets dropped is self-healing: the client resubscribes on
|
|
60
|
+
* reconnect and nothing was promised. A *command* that gets dropped is an
|
|
61
|
+
* instruction someone believes they issued and no one will ever run — on a
|
|
62
|
+
* machine that may be moving. Correlation is what makes the difference
|
|
63
|
+
* observable instead of silent.
|
|
64
|
+
*/
|
|
65
|
+
export declare const clientInvoke: z.ZodObject<{
|
|
66
|
+
type: z.ZodLiteral<"invoke">;
|
|
67
|
+
request_id: z.ZodString;
|
|
68
|
+
robot_id: z.ZodUUID;
|
|
69
|
+
slug: z.ZodString;
|
|
70
|
+
params: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
71
|
+
patience_ms: z.ZodOptional<z.ZodNumber>;
|
|
72
|
+
}, z.core.$strip>;
|
|
73
|
+
export type ClientInvoke = z.infer<typeof clientInvoke>;
|
|
74
|
+
export declare const clientCancel: z.ZodObject<{
|
|
75
|
+
type: z.ZodLiteral<"cancel">;
|
|
76
|
+
request_id: z.ZodString;
|
|
77
|
+
robot_id: z.ZodUUID;
|
|
78
|
+
slug: z.ZodString;
|
|
79
|
+
job_id: z.ZodNullable<z.ZodUUID>;
|
|
80
|
+
}, z.core.$strip>;
|
|
81
|
+
export type ClientCancel = z.infer<typeof clientCancel>;
|
|
82
|
+
export declare const clientPublish: z.ZodObject<{
|
|
83
|
+
type: z.ZodLiteral<"publish">;
|
|
84
|
+
request_id: z.ZodString;
|
|
85
|
+
robot_id: z.ZodUUID;
|
|
86
|
+
slug: z.ZodString;
|
|
87
|
+
message: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
88
|
+
}, z.core.$strip>;
|
|
89
|
+
export type ClientPublish = z.infer<typeof clientPublish>;
|
|
90
|
+
/**
|
|
91
|
+
* The reply to exactly one command. `ok:false` carries the stable code —
|
|
92
|
+
* `busy`, `robot_offline`, `parameter_invalid`, `forbidden` — so a caller
|
|
93
|
+
* branches without parsing prose.
|
|
94
|
+
*
|
|
95
|
+
* **`request_id` is the only correlation, and the order these arrive in is
|
|
96
|
+
* not promised.** Commands sent on one socket reach the robot in the order
|
|
97
|
+
* they were sent — that ordering is guaranteed and is the point of the
|
|
98
|
+
* command chain — but their *replies* may arrive in any order, and a client
|
|
99
|
+
* that pairs them up by arrival order will attribute an outcome to the wrong
|
|
100
|
+
* command.
|
|
101
|
+
*
|
|
102
|
+
* This is not theoretical and not jitter. The ordering chain is released once
|
|
103
|
+
* a command has reached the bridge, deliberately, so that the next command —
|
|
104
|
+
* a stop, say — is never held up behind bookkeeping. Work that follows the
|
|
105
|
+
* send therefore runs unordered: a publish that *acquires* a slug writes an
|
|
106
|
+
* audit record before answering, while an immediately following publish by
|
|
107
|
+
* the now-current holder has nothing to write and answers at once. Its reply
|
|
108
|
+
* overtakes. Measured in W5: exactly one reversal in fifty-six zero-gap
|
|
109
|
+
* bursts, which is the signature of that cause — it can happen only once per
|
|
110
|
+
* identity and slug — and not of a race.
|
|
111
|
+
*
|
|
112
|
+
* Serialising the replies would mean putting that bookkeeping in front of
|
|
113
|
+
* every following command, including the stop. The ordering that matters is
|
|
114
|
+
* the one on the wire to the robot, and it is kept.
|
|
115
|
+
*/
|
|
116
|
+
export declare const commandResult: z.ZodObject<{
|
|
117
|
+
type: z.ZodLiteral<"command_result">;
|
|
118
|
+
request_id: z.ZodString;
|
|
119
|
+
ok: z.ZodBoolean;
|
|
120
|
+
job: z.ZodNullable<z.ZodObject<{
|
|
121
|
+
id: z.ZodUUID;
|
|
122
|
+
robot_id: z.ZodUUID;
|
|
123
|
+
slug: z.ZodString;
|
|
124
|
+
state: z.ZodEnum<{
|
|
125
|
+
failed: "failed";
|
|
126
|
+
running: "running";
|
|
127
|
+
succeeded: "succeeded";
|
|
128
|
+
cancelled: "cancelled";
|
|
129
|
+
lost: "lost";
|
|
130
|
+
}>;
|
|
131
|
+
started_at: z.ZodISODateTime;
|
|
132
|
+
updated_at: z.ZodISODateTime;
|
|
133
|
+
seq: z.ZodNumber;
|
|
134
|
+
result: z.ZodNullable<z.ZodUnknown>;
|
|
135
|
+
error: z.ZodNullable<z.ZodObject<{
|
|
136
|
+
code: z.ZodString;
|
|
137
|
+
message: z.ZodString;
|
|
138
|
+
details: z.ZodOptional<z.ZodUnknown>;
|
|
139
|
+
}, z.core.$strip>>;
|
|
140
|
+
}, z.core.$strip>>;
|
|
141
|
+
kind: z.ZodNullable<z.ZodEnum<{
|
|
142
|
+
datapoint: "datapoint";
|
|
143
|
+
action: "action";
|
|
144
|
+
service: "service";
|
|
145
|
+
publisher: "publisher";
|
|
146
|
+
camera: "camera";
|
|
147
|
+
}>>;
|
|
148
|
+
code: z.ZodNullable<z.ZodString>;
|
|
149
|
+
message: z.ZodNullable<z.ZodString>;
|
|
150
|
+
details: z.ZodOptional<z.ZodUnknown>;
|
|
151
|
+
}, z.core.$strip>;
|
|
152
|
+
export type CommandResult = z.infer<typeof commandResult>;
|
|
153
|
+
/**
|
|
154
|
+
* A well-formed frame this server does not understand. The socket **stays
|
|
155
|
+
* open** — closing it would mean a newer client against an older cloud
|
|
156
|
+
* reconnects, resends, and takes every unrelated subscription down with it
|
|
157
|
+
* on every attempt. Close 1008 is reserved for frames that are not parseable
|
|
158
|
+
* JSON objects at all.
|
|
159
|
+
*/
|
|
160
|
+
export declare const errorFrame: z.ZodObject<{
|
|
161
|
+
type: z.ZodLiteral<"error">;
|
|
162
|
+
code: z.ZodString;
|
|
163
|
+
message: z.ZodString;
|
|
164
|
+
}, z.core.$strip>;
|
|
165
|
+
export type ErrorFrame = z.infer<typeof errorFrame>;
|
|
166
|
+
/**
|
|
167
|
+
* Subscribe to a slug's stream (spec §11.3: **state is observed by slug**).
|
|
168
|
+
*
|
|
169
|
+
* Which kinds are subscribable, and why it is not a matter of taste:
|
|
170
|
+
*
|
|
171
|
+
* - **datapoint** — its values.
|
|
172
|
+
* - **action** — its `jobEvent`s.
|
|
173
|
+
* - **service** — its `jobEvent`s too. A service call mints a job like an
|
|
174
|
+
* action does; the only difference is that the caller usually gets the
|
|
175
|
+
* result inline. But when they do *not* — a socket that died before the
|
|
176
|
+
* reply, answered with `command_outcome_unknown` — the documented recovery
|
|
177
|
+
* is to observe the slug. Refusing that leaves the caller with an error
|
|
178
|
+
* that names a remedy the platform does not offer.
|
|
179
|
+
* - **publisher** — not subscribable: there is no job and no stream. It must
|
|
180
|
+
* still be refused *honestly*, with a code saying so, and never as though
|
|
181
|
+
* the slug did not exist. A caller who was granted a slug is entitled to
|
|
182
|
+
* be told the truth about it.
|
|
183
|
+
*/
|
|
184
|
+
export declare const clientSubscribe: z.ZodObject<{
|
|
185
|
+
type: z.ZodLiteral<"subscribe">;
|
|
186
|
+
robot_id: z.ZodUUID;
|
|
187
|
+
slug: z.ZodString;
|
|
188
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
189
|
+
datapoint: "datapoint";
|
|
190
|
+
action: "action";
|
|
191
|
+
service: "service";
|
|
192
|
+
publisher: "publisher";
|
|
193
|
+
camera: "camera";
|
|
194
|
+
}>>;
|
|
195
|
+
options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
196
|
+
}, z.core.$strip>;
|
|
197
|
+
export type ClientSubscribe = z.infer<typeof clientSubscribe>;
|
|
198
|
+
export declare const clientUnsubscribe: z.ZodObject<{
|
|
199
|
+
type: z.ZodLiteral<"unsubscribe">;
|
|
200
|
+
robot_id: z.ZodUUID;
|
|
201
|
+
slug: z.ZodString;
|
|
202
|
+
}, z.core.$strip>;
|
|
203
|
+
export type ClientUnsubscribe = z.infer<typeof clientUnsubscribe>;
|
|
204
|
+
/**
|
|
205
|
+
* Refusal of a subscribe, addressed by the (robot_id, slug) it refers to.
|
|
206
|
+
* Codes follow the §11.5 error culture: stable code + human message.
|
|
207
|
+
* robot_id/slug are plain strings ECHOING what the client sent — the frame
|
|
208
|
+
* must be constructible precisely when those values are malformed, so that
|
|
209
|
+
* a bad robot_id or slug gets a diagnosis instead of a dead socket.
|
|
210
|
+
*/
|
|
211
|
+
export declare const subscribeError: z.ZodObject<{
|
|
212
|
+
type: z.ZodLiteral<"subscribe_error">;
|
|
213
|
+
robot_id: z.ZodString;
|
|
214
|
+
slug: z.ZodString;
|
|
215
|
+
code: z.ZodString;
|
|
216
|
+
message: z.ZodString;
|
|
217
|
+
}, z.core.$strip>;
|
|
218
|
+
export type SubscribeError = z.infer<typeof subscribeError>;
|
|
219
|
+
/**
|
|
220
|
+
* One datapoint sample pushed to a subscriber. The current value arrives
|
|
221
|
+
* immediately on subscribe, then every change. `timestamp_ms` semantics as
|
|
222
|
+
* in `datapointValue` (capture time; cloud-observed for `bridge_state`).
|
|
223
|
+
*/
|
|
224
|
+
export declare const datapointEvent: z.ZodObject<{
|
|
225
|
+
type: z.ZodLiteral<"datapoint">;
|
|
226
|
+
robot_id: z.ZodUUID;
|
|
227
|
+
slug: z.ZodString;
|
|
228
|
+
value: z.ZodUnknown;
|
|
229
|
+
timestamp_ms: z.ZodNumber;
|
|
230
|
+
}, z.core.$strip>;
|
|
231
|
+
export type DatapointEvent = z.infer<typeof datapointEvent>;
|
|
232
|
+
/**
|
|
233
|
+
* A change in the health of something the developer configured (W6a).
|
|
234
|
+
*
|
|
235
|
+
* The push half of `resourceHealthState`; the REST list is the snapshot half,
|
|
236
|
+
* and neither is useful alone — a page that loads after the change would see
|
|
237
|
+
* nothing, and a page that never reloads would never learn.
|
|
238
|
+
*
|
|
239
|
+
* Delivered on the **developer** socket and scoped to the org, not to a
|
|
240
|
+
* subscription: the whole point is to reach somebody who is *not* currently
|
|
241
|
+
* looking at the thing that broke.
|
|
242
|
+
*/
|
|
243
|
+
/**
|
|
244
|
+
* Why a live camera session ended (W9a).
|
|
245
|
+
*
|
|
246
|
+
* **The reason travels WITH the ending, and that is the whole point of this
|
|
247
|
+
* enum existing rather than a state somebody reads afterwards.** W6a put a
|
|
248
|
+
* `cause` on the wire, the console named the real reason, and the lead
|
|
249
|
+
* observed the gate step and closed it — and the review then found it still
|
|
250
|
+
* could not tell, for a different reason: `stopped_by_config_change` is
|
|
251
|
+
* **sticky**, nothing moves a camera out of it, and `LiveCameraRow` read that
|
|
252
|
+
* *current* state at the moment a stream ended. A config change at 10:00 and
|
|
253
|
+
* an unrelated release at 10:30 therefore reported the same cause (DEF-070).
|
|
254
|
+
*
|
|
255
|
+
* A state read after the fact answers "what is true now". A viewer needs
|
|
256
|
+
* "what happened to my session", and only an event carries that.
|
|
257
|
+
*/
|
|
258
|
+
export declare const liveSessionEndReason: z.ZodEnum<{
|
|
259
|
+
unknown: "unknown";
|
|
260
|
+
robot_offline: "robot_offline";
|
|
261
|
+
publish_failed: "publish_failed";
|
|
262
|
+
released_by_peer: "released_by_peer";
|
|
263
|
+
config_changed: "config_changed";
|
|
264
|
+
revoked: "revoked";
|
|
265
|
+
expired: "expired";
|
|
266
|
+
robot_deleted: "robot_deleted";
|
|
267
|
+
}>;
|
|
268
|
+
export type LiveSessionEndReason = z.infer<typeof liveSessionEndReason>;
|
|
269
|
+
/**
|
|
270
|
+
* A live camera session ended, told to the **client that holds it** (W9a).
|
|
271
|
+
*
|
|
272
|
+
* This is the channel `DEF-051`, `DEF-052`, `DEF-053` and `DEF-070` each
|
|
273
|
+
* described from a different direction across four waves. Until now the only
|
|
274
|
+
* vehicle was `camera_state`, which the cloud stores in `publishState` and
|
|
275
|
+
* reads in exactly one place — refusing a *later* joiner — so reporting a
|
|
276
|
+
* failure would have written to a dead end.
|
|
277
|
+
*
|
|
278
|
+
* Unlike `resourceHealthEvent`, which is developer-only and org-scoped, this
|
|
279
|
+
* one is addressed to the **holder of the session**: it names `session_id`
|
|
280
|
+
* (W6b gave `liveSessionResponse` one precisely so a session could be
|
|
281
|
+
* addressed) and is delivered only to the identity that session was minted
|
|
282
|
+
* for. A developer watching the same robot learns about the *resource* health;
|
|
283
|
+
* the viewer learns about *their own session*. Two questions, two channels,
|
|
284
|
+
* on purpose.
|
|
285
|
+
*/
|
|
286
|
+
export declare const liveSessionEvent: z.ZodObject<{
|
|
287
|
+
type: z.ZodLiteral<"live_session">;
|
|
288
|
+
robot_id: z.ZodUUID;
|
|
289
|
+
slug: z.ZodString;
|
|
290
|
+
session_id: z.ZodUUID;
|
|
291
|
+
state: z.ZodLiteral<"ended">;
|
|
292
|
+
reason: z.ZodEnum<{
|
|
293
|
+
unknown: "unknown";
|
|
294
|
+
robot_offline: "robot_offline";
|
|
295
|
+
publish_failed: "publish_failed";
|
|
296
|
+
released_by_peer: "released_by_peer";
|
|
297
|
+
config_changed: "config_changed";
|
|
298
|
+
revoked: "revoked";
|
|
299
|
+
expired: "expired";
|
|
300
|
+
robot_deleted: "robot_deleted";
|
|
301
|
+
}>;
|
|
302
|
+
detail: z.ZodNullable<z.ZodString>;
|
|
303
|
+
ended_at_ms: z.ZodNumber;
|
|
304
|
+
}, z.core.$strip>;
|
|
305
|
+
export type LiveSessionEvent = z.infer<typeof liveSessionEvent>;
|
|
306
|
+
/**
|
|
307
|
+
* A resource's health entry was **withdrawn** (W9a, DEF-071).
|
|
308
|
+
*
|
|
309
|
+
* The store's `invalidate()` deliberately emitted nothing, reasoning that
|
|
310
|
+
* "withdrawing a claim nobody can currently stand behind is not new
|
|
311
|
+
* information — the next `GET` already reflects it." That holds for a page
|
|
312
|
+
* that loads later. **It is false for a page that is already open, because
|
|
313
|
+
* there is no next `GET`:** `ensureSnapshot()` runs on `acquire` and nowhere
|
|
314
|
+
* else, there is no interval, and the event handler only ever *writes* keys.
|
|
315
|
+
* A camera retargeted to a source that never reports — which is the case the
|
|
316
|
+
* clearing exists for — leaves an open tab showing the old value indefinitely.
|
|
317
|
+
*
|
|
318
|
+
* **A separate event type rather than a nullable `state` on the existing
|
|
319
|
+
* one**, so a consumer's `switch` has to name it. A nullable field invites
|
|
320
|
+
* `if (state)` and fails silently when somebody forgets; an unhandled variant
|
|
321
|
+
* fails `tsc`, which is the difference between a rule and a mechanism.
|
|
322
|
+
*/
|
|
323
|
+
export declare const resourceHealthCleared: z.ZodObject<{
|
|
324
|
+
type: z.ZodLiteral<"resource_health_cleared">;
|
|
325
|
+
robot_id: z.ZodUUID;
|
|
326
|
+
kind: z.ZodEnum<{
|
|
327
|
+
camera: "camera";
|
|
328
|
+
}>;
|
|
329
|
+
ref: z.ZodString;
|
|
330
|
+
facet: z.ZodEnum<{
|
|
331
|
+
source: "source";
|
|
332
|
+
publish: "publish";
|
|
333
|
+
}>;
|
|
334
|
+
cleared_at_ms: z.ZodNumber;
|
|
335
|
+
}, z.core.$strip>;
|
|
336
|
+
export type ResourceHealthCleared = z.infer<typeof resourceHealthCleared>;
|
|
337
|
+
export declare const resourceHealthEvent: z.ZodObject<{
|
|
338
|
+
type: z.ZodLiteral<"resource_health">;
|
|
339
|
+
robot_id: z.ZodUUID;
|
|
340
|
+
kind: z.ZodEnum<{
|
|
341
|
+
camera: "camera";
|
|
342
|
+
}>;
|
|
343
|
+
ref: z.ZodString;
|
|
344
|
+
facet: z.ZodEnum<{
|
|
345
|
+
source: "source";
|
|
346
|
+
publish: "publish";
|
|
347
|
+
}>;
|
|
348
|
+
state: z.ZodEnum<{
|
|
349
|
+
unknown: "unknown";
|
|
350
|
+
ok: "ok";
|
|
351
|
+
unreachable: "unreachable";
|
|
352
|
+
auth_failed: "auth_failed";
|
|
353
|
+
unreadable_credential: "unreadable_credential";
|
|
354
|
+
credential_missing: "credential_missing";
|
|
355
|
+
stopped_by_config_change: "stopped_by_config_change";
|
|
356
|
+
publish_failed: "publish_failed";
|
|
357
|
+
}>;
|
|
358
|
+
reason: z.ZodNullable<z.ZodString>;
|
|
359
|
+
changed_at_ms: z.ZodNumber;
|
|
360
|
+
}, z.core.$strip>;
|
|
361
|
+
export type ResourceHealthEvent = z.infer<typeof resourceHealthEvent>;
|
|
362
|
+
/**
|
|
363
|
+
* One line of the developer console's activity panel (spec
|
|
364
|
+
* `2026-08-20-org-event-stream`).
|
|
365
|
+
*
|
|
366
|
+
* **This is an activity log for humans, not a complete feed.** It is throttled
|
|
367
|
+
* and sampled. `orgEventDropped` still reports a drop on the wire, but since
|
|
368
|
+
* FL-001 **no Fleetless surface renders it** — the console's gap banner was
|
|
369
|
+
* removed on request, and nothing replaced it. A reader of this stream
|
|
370
|
+
* therefore cannot tell a complete window from a sampled one, and this
|
|
371
|
+
* comment says so rather than implying a notice that exists only in the
|
|
372
|
+
* protocol. Anything that needs completeness reads the audit log or the
|
|
373
|
+
* job-run history, both durable, both 90 days.
|
|
374
|
+
*/
|
|
375
|
+
export declare const ORG_EVENT_SAMPLE_INTERVAL_MS = 1000;
|
|
376
|
+
/** The backstop above the per-slug cap: a fleet larger than the panel could serve anyway. */
|
|
377
|
+
export declare const ORG_EVENT_ORG_CEILING_PER_SECOND = 50;
|
|
378
|
+
/** Roughly 25 screens of scrollback. */
|
|
379
|
+
export declare const ORG_EVENT_BUFFER_SIZE = 200;
|
|
380
|
+
/** An org's buffer is dropped after this long without an event, so memory follows active orgs rather than all of them. */
|
|
381
|
+
export declare const ORG_EVENT_BUFFER_IDLE_MS = 3600000;
|
|
382
|
+
/** A log line, not a payload: a datapoint value is `unknown` and a LaserScan is megabytes. */
|
|
383
|
+
export declare const ORG_EVENT_DETAIL_MAX_BYTES = 4096;
|
|
384
|
+
/**
|
|
385
|
+
* `'alert'` — a transition of a datapoint alert (`ok ⇄ firing`, spec
|
|
386
|
+
* `2026-08-28-alerts-and-datapoint-modal-design` D2). A firing event carries
|
|
387
|
+
* the alert's own `severity`; a resolved event is always `info` — resolving
|
|
388
|
+
* is good news regardless of how bad the firing was.
|
|
389
|
+
*
|
|
390
|
+
* `'datapoint'` — since FL-001, **no producer emits this kind**: the
|
|
391
|
+
* datapoint producer was made a deliberate no-op (Task 5/6, this stream's own
|
|
392
|
+
* per-slug sampling made it redundant with what the datapoint history route
|
|
393
|
+
* already serves). The member stays in the enum rather than being removed,
|
|
394
|
+
* because a reader may still hold a pre-deploy frame of this kind sitting in
|
|
395
|
+
* a buffer (a reconnect replay, a client that hasn't refreshed) and must be
|
|
396
|
+
* able to parse it rather than fail closed on an old, valid value. Same shape
|
|
397
|
+
* as the correction on `ORG_EVENT_SAMPLE_INTERVAL_MS`'s comment just above:
|
|
398
|
+
* name what the wire no longer does instead of leaving a value the cloud can
|
|
399
|
+
* never send undocumented.
|
|
400
|
+
*/
|
|
401
|
+
export declare const orgEventKind: z.ZodEnum<{
|
|
402
|
+
datapoint: "datapoint";
|
|
403
|
+
bridge: "bridge";
|
|
404
|
+
job: "job";
|
|
405
|
+
health: "health";
|
|
406
|
+
audit: "audit";
|
|
407
|
+
alert: "alert";
|
|
408
|
+
}>;
|
|
409
|
+
export type OrgEventKind = z.infer<typeof orgEventKind>;
|
|
410
|
+
/**
|
|
411
|
+
* Assigned by the **producer**, never derived by the reader. The console's
|
|
412
|
+
* `errors` filter cuts across all five kinds, and only the source knows whether
|
|
413
|
+
* an `auth_failed` is bad. A reader guessing from `detail` guesses differently
|
|
414
|
+
* for each source.
|
|
415
|
+
*/
|
|
416
|
+
export declare const orgEventSeverity: z.ZodEnum<{
|
|
417
|
+
error: "error";
|
|
418
|
+
warning: "warning";
|
|
419
|
+
info: "info";
|
|
420
|
+
}>;
|
|
421
|
+
export type OrgEventSeverity = z.infer<typeof orgEventSeverity>;
|
|
422
|
+
export declare const orgEvent: z.ZodObject<{
|
|
423
|
+
type: z.ZodLiteral<"org_event">;
|
|
424
|
+
seq: z.ZodNumber;
|
|
425
|
+
at: z.ZodISODateTime;
|
|
426
|
+
kind: z.ZodEnum<{
|
|
427
|
+
datapoint: "datapoint";
|
|
428
|
+
bridge: "bridge";
|
|
429
|
+
job: "job";
|
|
430
|
+
health: "health";
|
|
431
|
+
audit: "audit";
|
|
432
|
+
alert: "alert";
|
|
433
|
+
}>;
|
|
434
|
+
severity: z.ZodEnum<{
|
|
435
|
+
error: "error";
|
|
436
|
+
warning: "warning";
|
|
437
|
+
info: "info";
|
|
438
|
+
}>;
|
|
439
|
+
robot_id: z.ZodNullable<z.ZodUUID>;
|
|
440
|
+
subject: z.ZodString;
|
|
441
|
+
detail: z.ZodNullable<z.ZodUnknown>;
|
|
442
|
+
}, z.core.$strict>;
|
|
443
|
+
export type OrgEvent = z.infer<typeof orgEvent>;
|
|
444
|
+
/** Sent by a developer's socket to start the stream. Answered by `orgEventReplay`, then live `orgEvent`s. */
|
|
445
|
+
export declare const orgEventSubscribe: z.ZodObject<{
|
|
446
|
+
type: z.ZodLiteral<"org_event_subscribe">;
|
|
447
|
+
}, z.core.$strict>;
|
|
448
|
+
export type OrgEventSubscribe = z.infer<typeof orgEventSubscribe>;
|
|
449
|
+
export declare const orgEventUnsubscribe: z.ZodObject<{
|
|
450
|
+
type: z.ZodLiteral<"org_event_unsubscribe">;
|
|
451
|
+
}, z.core.$strict>;
|
|
452
|
+
export type OrgEventUnsubscribe = z.infer<typeof orgEventUnsubscribe>;
|
|
453
|
+
/**
|
|
454
|
+
* What the cloud still remembers, oldest first, sent once before the live
|
|
455
|
+
* stream starts — so the panel is filled on arrival rather than blank until
|
|
456
|
+
* something happens. A blank panel is indistinguishable from a broken one.
|
|
457
|
+
*/
|
|
458
|
+
export declare const orgEventReplay: z.ZodObject<{
|
|
459
|
+
type: z.ZodLiteral<"org_event_replay">;
|
|
460
|
+
events: z.ZodArray<z.ZodObject<{
|
|
461
|
+
type: z.ZodLiteral<"org_event">;
|
|
462
|
+
seq: z.ZodNumber;
|
|
463
|
+
at: z.ZodISODateTime;
|
|
464
|
+
kind: z.ZodEnum<{
|
|
465
|
+
datapoint: "datapoint";
|
|
466
|
+
bridge: "bridge";
|
|
467
|
+
job: "job";
|
|
468
|
+
health: "health";
|
|
469
|
+
audit: "audit";
|
|
470
|
+
alert: "alert";
|
|
471
|
+
}>;
|
|
472
|
+
severity: z.ZodEnum<{
|
|
473
|
+
error: "error";
|
|
474
|
+
warning: "warning";
|
|
475
|
+
info: "info";
|
|
476
|
+
}>;
|
|
477
|
+
robot_id: z.ZodNullable<z.ZodUUID>;
|
|
478
|
+
subject: z.ZodString;
|
|
479
|
+
detail: z.ZodNullable<z.ZodUnknown>;
|
|
480
|
+
}, z.core.$strict>>;
|
|
481
|
+
complete: z.ZodBoolean;
|
|
482
|
+
}, z.core.$strict>;
|
|
483
|
+
export type OrgEventReplay = z.infer<typeof orgEventReplay>;
|
|
484
|
+
/**
|
|
485
|
+
* Events this socket will never see. Two causes, reported alike: the cloud
|
|
486
|
+
* sampled them away, or this socket's send buffer was too far behind. Both mean
|
|
487
|
+
* *there was more than you are being shown*.
|
|
488
|
+
*/
|
|
489
|
+
export declare const orgEventDropped: z.ZodObject<{
|
|
490
|
+
type: z.ZodLiteral<"org_event_dropped">;
|
|
491
|
+
since_ms: z.ZodNumber;
|
|
492
|
+
dropped: z.ZodNumber;
|
|
493
|
+
}, z.core.$strict>;
|
|
494
|
+
export type OrgEventDropped = z.infer<typeof orgEventDropped>;
|