@byok-sdk/protocol 0.2.0 → 0.4.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/README.md CHANGED
@@ -3,6 +3,13 @@
3
3
  The frozen v1 BYOK device wire contract: envelope schemas, message payloads,
4
4
  codecs, version negotiation, and golden fixtures.
5
5
 
6
+ `TaskOfferPayload.dispatchSelection` is the optional strict dual-lane target
7
+ contract: subscription selects Claude/Codex + model, while BYOK selects Pi +
8
+ provider + model. When present it is authoritative and runtime disagreement
9
+ fails closed. Servers send it only to a daemon advertising the
10
+ `dispatch-selection` capability, preventing an older v1 peer from stripping
11
+ the additive field and silently executing a runtime-only offer.
12
+
6
13
  ```ts
7
14
  import { encodeEnvelope, decodeEnvelope } from '@byok-sdk/protocol';
8
15
  ```
package/dist/codec.d.ts CHANGED
@@ -30,6 +30,10 @@ interface EnvelopeShapeOptions {
30
30
  taskId: string;
31
31
  seq: number;
32
32
  };
33
+ 'task.offer_with_toolsets': {
34
+ taskId: string;
35
+ seq: number;
36
+ };
33
37
  'task.approve': {
34
38
  taskId: string;
35
39
  seq: number;
@@ -41,9 +41,11 @@ export declare const EnvelopeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
41
41
  steer: z.ZodOptional<z.ZodBoolean>;
42
42
  resume: z.ZodOptional<z.ZodBoolean>;
43
43
  approvalInteractive: z.ZodOptional<z.ZodBoolean>;
44
+ mcpToolsets: z.ZodOptional<z.ZodBoolean>;
44
45
  permissionModes: z.ZodOptional<z.ZodArray<z.ZodString>>;
45
46
  }, z.core.$strip>>;
46
47
  }, z.core.$strip>>>;
48
+ configuredToolsets: z.ZodOptional<z.ZodArray<z.ZodString>>;
47
49
  cursor: z.ZodOptional<z.ZodNumber>;
48
50
  }, z.core.$strip>;
49
51
  }, z.core.$strip>, z.ZodObject<{
@@ -94,6 +96,20 @@ export declare const EnvelopeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
94
96
  codex: "codex";
95
97
  pi: "pi";
96
98
  }>>;
99
+ dispatchSelection: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
100
+ lane: z.ZodLiteral<"subscription">;
101
+ runtimeId: z.ZodEnum<{
102
+ claude: "claude";
103
+ codex: "codex";
104
+ }>;
105
+ providerId: z.ZodNull;
106
+ modelId: z.ZodString;
107
+ }, z.core.$strict>, z.ZodObject<{
108
+ lane: z.ZodLiteral<"byok">;
109
+ runtimeId: z.ZodLiteral<"pi">;
110
+ providerId: z.ZodString;
111
+ modelId: z.ZodString;
112
+ }, z.core.$strict>], "lane">>;
97
113
  sessionRef: z.ZodOptional<z.ZodString>;
98
114
  workspaceHint: z.ZodOptional<z.ZodString>;
99
115
  limits: z.ZodOptional<z.ZodObject<{
@@ -101,6 +117,63 @@ export declare const EnvelopeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
101
117
  maxTokens: z.ZodOptional<z.ZodNumber>;
102
118
  }, z.core.$strip>>;
103
119
  }, z.core.$strip>;
120
+ }, z.core.$strip>, z.ZodObject<{
121
+ v: z.ZodNumber;
122
+ id: z.ZodUUID;
123
+ ts: z.ZodISODateTime;
124
+ type: z.ZodLiteral<"task.offer_with_toolsets">;
125
+ task_id: z.ZodString;
126
+ session_ref: z.ZodOptional<z.ZodString>;
127
+ seq: z.ZodNumber;
128
+ payload: z.ZodObject<{
129
+ instruction: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
130
+ blobRef: z.ZodObject<{
131
+ blobId: z.ZodString;
132
+ contentHash: z.ZodString;
133
+ size: z.ZodNumber;
134
+ contentType: z.ZodString;
135
+ url: z.ZodOptional<z.ZodString>;
136
+ }, z.core.$strip>;
137
+ }, z.core.$strict>]>;
138
+ policy: z.ZodObject<{
139
+ mode: z.ZodEnum<{
140
+ auto: "auto";
141
+ confirm: "confirm";
142
+ plan: "plan";
143
+ readonly: "readonly";
144
+ }>;
145
+ allowTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
146
+ denyTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
147
+ workspaceRoot: z.ZodOptional<z.ZodString>;
148
+ network: z.ZodOptional<z.ZodBoolean>;
149
+ }, z.core.$strict>;
150
+ runtime: z.ZodOptional<z.ZodEnum<{
151
+ claude: "claude";
152
+ codex: "codex";
153
+ pi: "pi";
154
+ }>>;
155
+ dispatchSelection: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
156
+ lane: z.ZodLiteral<"subscription">;
157
+ runtimeId: z.ZodEnum<{
158
+ claude: "claude";
159
+ codex: "codex";
160
+ }>;
161
+ providerId: z.ZodNull;
162
+ modelId: z.ZodString;
163
+ }, z.core.$strict>, z.ZodObject<{
164
+ lane: z.ZodLiteral<"byok">;
165
+ runtimeId: z.ZodLiteral<"pi">;
166
+ providerId: z.ZodString;
167
+ modelId: z.ZodString;
168
+ }, z.core.$strict>], "lane">>;
169
+ sessionRef: z.ZodOptional<z.ZodString>;
170
+ workspaceHint: z.ZodOptional<z.ZodString>;
171
+ limits: z.ZodOptional<z.ZodObject<{
172
+ maxDurationMs: z.ZodOptional<z.ZodNumber>;
173
+ maxTokens: z.ZodOptional<z.ZodNumber>;
174
+ }, z.core.$strip>>;
175
+ requiredToolsets: z.ZodArray<z.ZodString>;
176
+ }, z.core.$strict>;
104
177
  }, z.core.$strip>, z.ZodObject<{
105
178
  v: z.ZodNumber;
106
179
  id: z.ZodUUID;
@@ -166,6 +239,7 @@ export declare const EnvelopeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
166
239
  steer: z.ZodOptional<z.ZodBoolean>;
167
240
  resume: z.ZodOptional<z.ZodBoolean>;
168
241
  approvalInteractive: z.ZodOptional<z.ZodBoolean>;
242
+ mcpToolsets: z.ZodOptional<z.ZodBoolean>;
169
243
  permissionModes: z.ZodOptional<z.ZodArray<z.ZodString>>;
170
244
  }, z.core.$strip>>;
171
245
  }, z.core.$strip>;
@@ -284,6 +358,7 @@ export declare const EnvelopeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
284
358
  contentType: z.ZodString;
285
359
  url: z.ZodOptional<z.ZodString>;
286
360
  }, z.core.$strip>>>;
361
+ document: z.ZodOptional<z.ZodUnknown>;
287
362
  }, z.core.$strip>;
288
363
  }, z.core.$strip>, z.ZodObject<{
289
364
  v: z.ZodNumber;
@@ -95,9 +95,11 @@ export declare const EventsPollResponseSchema: z.ZodObject<{
95
95
  steer: z.ZodOptional<z.ZodBoolean>;
96
96
  resume: z.ZodOptional<z.ZodBoolean>;
97
97
  approvalInteractive: z.ZodOptional<z.ZodBoolean>;
98
+ mcpToolsets: z.ZodOptional<z.ZodBoolean>;
98
99
  permissionModes: z.ZodOptional<z.ZodArray<z.ZodString>>;
99
100
  }, z.core.$strip>>;
100
101
  }, z.core.$strip>>>;
102
+ configuredToolsets: z.ZodOptional<z.ZodArray<z.ZodString>>;
101
103
  cursor: z.ZodOptional<z.ZodNumber>;
102
104
  }, z.core.$strip>;
103
105
  }, z.core.$strip>, z.ZodObject<{
@@ -148,6 +150,20 @@ export declare const EventsPollResponseSchema: z.ZodObject<{
148
150
  codex: "codex";
149
151
  pi: "pi";
150
152
  }>>;
153
+ dispatchSelection: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
154
+ lane: z.ZodLiteral<"subscription">;
155
+ runtimeId: z.ZodEnum<{
156
+ claude: "claude";
157
+ codex: "codex";
158
+ }>;
159
+ providerId: z.ZodNull;
160
+ modelId: z.ZodString;
161
+ }, z.core.$strict>, z.ZodObject<{
162
+ lane: z.ZodLiteral<"byok">;
163
+ runtimeId: z.ZodLiteral<"pi">;
164
+ providerId: z.ZodString;
165
+ modelId: z.ZodString;
166
+ }, z.core.$strict>], "lane">>;
151
167
  sessionRef: z.ZodOptional<z.ZodString>;
152
168
  workspaceHint: z.ZodOptional<z.ZodString>;
153
169
  limits: z.ZodOptional<z.ZodObject<{
@@ -155,6 +171,63 @@ export declare const EventsPollResponseSchema: z.ZodObject<{
155
171
  maxTokens: z.ZodOptional<z.ZodNumber>;
156
172
  }, z.core.$strip>>;
157
173
  }, z.core.$strip>;
174
+ }, z.core.$strip>, z.ZodObject<{
175
+ v: z.ZodNumber;
176
+ id: z.ZodUUID;
177
+ ts: z.ZodISODateTime;
178
+ type: z.ZodLiteral<"task.offer_with_toolsets">;
179
+ task_id: z.ZodString;
180
+ session_ref: z.ZodOptional<z.ZodString>;
181
+ seq: z.ZodNumber;
182
+ payload: z.ZodObject<{
183
+ instruction: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
184
+ blobRef: z.ZodObject<{
185
+ blobId: z.ZodString;
186
+ contentHash: z.ZodString;
187
+ size: z.ZodNumber;
188
+ contentType: z.ZodString;
189
+ url: z.ZodOptional<z.ZodString>;
190
+ }, z.core.$strip>;
191
+ }, z.core.$strict>]>;
192
+ policy: z.ZodObject<{
193
+ mode: z.ZodEnum<{
194
+ auto: "auto";
195
+ confirm: "confirm";
196
+ plan: "plan";
197
+ readonly: "readonly";
198
+ }>;
199
+ allowTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
200
+ denyTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
201
+ workspaceRoot: z.ZodOptional<z.ZodString>;
202
+ network: z.ZodOptional<z.ZodBoolean>;
203
+ }, z.core.$strict>;
204
+ runtime: z.ZodOptional<z.ZodEnum<{
205
+ claude: "claude";
206
+ codex: "codex";
207
+ pi: "pi";
208
+ }>>;
209
+ dispatchSelection: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
210
+ lane: z.ZodLiteral<"subscription">;
211
+ runtimeId: z.ZodEnum<{
212
+ claude: "claude";
213
+ codex: "codex";
214
+ }>;
215
+ providerId: z.ZodNull;
216
+ modelId: z.ZodString;
217
+ }, z.core.$strict>, z.ZodObject<{
218
+ lane: z.ZodLiteral<"byok">;
219
+ runtimeId: z.ZodLiteral<"pi">;
220
+ providerId: z.ZodString;
221
+ modelId: z.ZodString;
222
+ }, z.core.$strict>], "lane">>;
223
+ sessionRef: z.ZodOptional<z.ZodString>;
224
+ workspaceHint: z.ZodOptional<z.ZodString>;
225
+ limits: z.ZodOptional<z.ZodObject<{
226
+ maxDurationMs: z.ZodOptional<z.ZodNumber>;
227
+ maxTokens: z.ZodOptional<z.ZodNumber>;
228
+ }, z.core.$strip>>;
229
+ requiredToolsets: z.ZodArray<z.ZodString>;
230
+ }, z.core.$strict>;
158
231
  }, z.core.$strip>, z.ZodObject<{
159
232
  v: z.ZodNumber;
160
233
  id: z.ZodUUID;
@@ -220,6 +293,7 @@ export declare const EventsPollResponseSchema: z.ZodObject<{
220
293
  steer: z.ZodOptional<z.ZodBoolean>;
221
294
  resume: z.ZodOptional<z.ZodBoolean>;
222
295
  approvalInteractive: z.ZodOptional<z.ZodBoolean>;
296
+ mcpToolsets: z.ZodOptional<z.ZodBoolean>;
223
297
  permissionModes: z.ZodOptional<z.ZodArray<z.ZodString>>;
224
298
  }, z.core.$strip>>;
225
299
  }, z.core.$strip>;
@@ -338,6 +412,7 @@ export declare const EventsPollResponseSchema: z.ZodObject<{
338
412
  contentType: z.ZodString;
339
413
  url: z.ZodOptional<z.ZodString>;
340
414
  }, z.core.$strip>>>;
415
+ document: z.ZodOptional<z.ZodUnknown>;
341
416
  }, z.core.$strip>;
342
417
  }, z.core.$strip>, z.ZodObject<{
343
418
  v: z.ZodNumber;
@@ -420,9 +495,11 @@ export declare const MessagesSendRequestSchema: z.ZodObject<{
420
495
  steer: z.ZodOptional<z.ZodBoolean>;
421
496
  resume: z.ZodOptional<z.ZodBoolean>;
422
497
  approvalInteractive: z.ZodOptional<z.ZodBoolean>;
498
+ mcpToolsets: z.ZodOptional<z.ZodBoolean>;
423
499
  permissionModes: z.ZodOptional<z.ZodArray<z.ZodString>>;
424
500
  }, z.core.$strip>>;
425
501
  }, z.core.$strip>>>;
502
+ configuredToolsets: z.ZodOptional<z.ZodArray<z.ZodString>>;
426
503
  cursor: z.ZodOptional<z.ZodNumber>;
427
504
  }, z.core.$strip>;
428
505
  }, z.core.$strip>, z.ZodObject<{
@@ -473,6 +550,20 @@ export declare const MessagesSendRequestSchema: z.ZodObject<{
473
550
  codex: "codex";
474
551
  pi: "pi";
475
552
  }>>;
553
+ dispatchSelection: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
554
+ lane: z.ZodLiteral<"subscription">;
555
+ runtimeId: z.ZodEnum<{
556
+ claude: "claude";
557
+ codex: "codex";
558
+ }>;
559
+ providerId: z.ZodNull;
560
+ modelId: z.ZodString;
561
+ }, z.core.$strict>, z.ZodObject<{
562
+ lane: z.ZodLiteral<"byok">;
563
+ runtimeId: z.ZodLiteral<"pi">;
564
+ providerId: z.ZodString;
565
+ modelId: z.ZodString;
566
+ }, z.core.$strict>], "lane">>;
476
567
  sessionRef: z.ZodOptional<z.ZodString>;
477
568
  workspaceHint: z.ZodOptional<z.ZodString>;
478
569
  limits: z.ZodOptional<z.ZodObject<{
@@ -480,6 +571,63 @@ export declare const MessagesSendRequestSchema: z.ZodObject<{
480
571
  maxTokens: z.ZodOptional<z.ZodNumber>;
481
572
  }, z.core.$strip>>;
482
573
  }, z.core.$strip>;
574
+ }, z.core.$strip>, z.ZodObject<{
575
+ v: z.ZodNumber;
576
+ id: z.ZodUUID;
577
+ ts: z.ZodISODateTime;
578
+ type: z.ZodLiteral<"task.offer_with_toolsets">;
579
+ task_id: z.ZodString;
580
+ session_ref: z.ZodOptional<z.ZodString>;
581
+ seq: z.ZodNumber;
582
+ payload: z.ZodObject<{
583
+ instruction: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
584
+ blobRef: z.ZodObject<{
585
+ blobId: z.ZodString;
586
+ contentHash: z.ZodString;
587
+ size: z.ZodNumber;
588
+ contentType: z.ZodString;
589
+ url: z.ZodOptional<z.ZodString>;
590
+ }, z.core.$strip>;
591
+ }, z.core.$strict>]>;
592
+ policy: z.ZodObject<{
593
+ mode: z.ZodEnum<{
594
+ auto: "auto";
595
+ confirm: "confirm";
596
+ plan: "plan";
597
+ readonly: "readonly";
598
+ }>;
599
+ allowTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
600
+ denyTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
601
+ workspaceRoot: z.ZodOptional<z.ZodString>;
602
+ network: z.ZodOptional<z.ZodBoolean>;
603
+ }, z.core.$strict>;
604
+ runtime: z.ZodOptional<z.ZodEnum<{
605
+ claude: "claude";
606
+ codex: "codex";
607
+ pi: "pi";
608
+ }>>;
609
+ dispatchSelection: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
610
+ lane: z.ZodLiteral<"subscription">;
611
+ runtimeId: z.ZodEnum<{
612
+ claude: "claude";
613
+ codex: "codex";
614
+ }>;
615
+ providerId: z.ZodNull;
616
+ modelId: z.ZodString;
617
+ }, z.core.$strict>, z.ZodObject<{
618
+ lane: z.ZodLiteral<"byok">;
619
+ runtimeId: z.ZodLiteral<"pi">;
620
+ providerId: z.ZodString;
621
+ modelId: z.ZodString;
622
+ }, z.core.$strict>], "lane">>;
623
+ sessionRef: z.ZodOptional<z.ZodString>;
624
+ workspaceHint: z.ZodOptional<z.ZodString>;
625
+ limits: z.ZodOptional<z.ZodObject<{
626
+ maxDurationMs: z.ZodOptional<z.ZodNumber>;
627
+ maxTokens: z.ZodOptional<z.ZodNumber>;
628
+ }, z.core.$strip>>;
629
+ requiredToolsets: z.ZodArray<z.ZodString>;
630
+ }, z.core.$strict>;
483
631
  }, z.core.$strip>, z.ZodObject<{
484
632
  v: z.ZodNumber;
485
633
  id: z.ZodUUID;
@@ -545,6 +693,7 @@ export declare const MessagesSendRequestSchema: z.ZodObject<{
545
693
  steer: z.ZodOptional<z.ZodBoolean>;
546
694
  resume: z.ZodOptional<z.ZodBoolean>;
547
695
  approvalInteractive: z.ZodOptional<z.ZodBoolean>;
696
+ mcpToolsets: z.ZodOptional<z.ZodBoolean>;
548
697
  permissionModes: z.ZodOptional<z.ZodArray<z.ZodString>>;
549
698
  }, z.core.$strip>>;
550
699
  }, z.core.$strip>;
@@ -663,6 +812,7 @@ export declare const MessagesSendRequestSchema: z.ZodObject<{
663
812
  contentType: z.ZodString;
664
813
  url: z.ZodOptional<z.ZodString>;
665
814
  }, z.core.$strip>>>;
815
+ document: z.ZodOptional<z.ZodUnknown>;
666
816
  }, z.core.$strip>;
667
817
  }, z.core.$strip>, z.ZodObject<{
668
818
  v: z.ZodNumber;
@@ -723,3 +873,61 @@ export declare const MessagesSendResponseSchema: z.ZodObject<{
723
873
  rejected: z.ZodOptional<z.ZodNumber>;
724
874
  }, z.core.$strip>;
725
875
  export type MessagesSendResponse = z.infer<typeof MessagesSendResponseSchema>;
876
+ /** `GET /byok/ws` — WebSocket upgrade path. */
877
+ export declare const BYOK_WS_PATH = "/byok/ws";
878
+ /** `POST /byok/pair` — one-time device pairing (§6). */
879
+ export declare const BYOK_PAIR_PATH = "/byok/pair";
880
+ /** `POST /byok/challenge` — token-renewal challenge (§6.3). */
881
+ export declare const BYOK_CHALLENGE_PATH = "/byok/challenge";
882
+ /** `POST /byok/token` — token-renewal exchange (§6.3). */
883
+ export declare const BYOK_TOKEN_PATH = "/byok/token";
884
+ /** `GET /byok/capabilities` — ADR-010 declaration route. */
885
+ export declare const BYOK_CAPABILITIES_PATH = "/byok/capabilities";
886
+ /** `GET /byok/events` — long-poll receive (§8). */
887
+ export declare const BYOK_EVENTS_PATH = "/byok/events";
888
+ /** `POST /byok/messages` — long-poll batched send (§8.2). */
889
+ export declare const BYOK_MESSAGES_PATH = "/byok/messages";
890
+ /** `PUT /byok/presence` — presence heartbeat. */
891
+ export declare const BYOK_PRESENCE_PATH = "/byok/presence";
892
+ /** `POST /byok/activity` — activity-tail append. */
893
+ export declare const BYOK_ACTIVITY_PATH = "/byok/activity";
894
+ /** `GET /byok/board` — coordination board list/poll. */
895
+ export declare const BYOK_BOARD_PATH = "/byok/board";
896
+ /** `GET /byok/board/stream` — coordination board SSE. */
897
+ export declare const BYOK_BOARD_STREAM_PATH = "/byok/board/stream";
898
+ /** Router template — `POST /byok/board/:id/claim`. */
899
+ export declare const BYOK_BOARD_CLAIM_ROUTE = "/byok/board/:id/claim";
900
+ /** Router template — `POST /byok/board/:id/unclaim`. */
901
+ export declare const BYOK_BOARD_UNCLAIM_ROUTE = "/byok/board/:id/unclaim";
902
+ /** Router template — `POST /byok/board/:id/status`. */
903
+ export declare const BYOK_BOARD_STATUS_ROUTE = "/byok/board/:id/status";
904
+ /** `GET /byok/records` — truth manifest list (§12.3). */
905
+ export declare const BYOK_RECORDS_PATH = "/byok/records";
906
+ /** Router template for a single truth record — `GET`/`PUT /byok/records/:kind/:key`. */
907
+ export declare const BYOK_RECORD_ROUTE = "/byok/records/:kind/:key";
908
+ /** Client builder for a truth record path. Mirrors the `:kind/:key` template, each segment URL-encoded. */
909
+ export declare function byokRecordPath(kind: string, key: string): string;
910
+ /** `GET /byok/skill-packs` — skill-pack manifest catalogue. */
911
+ export declare const BYOK_SKILL_PACKS_PATH = "/byok/skill-packs";
912
+ /** Router template for a skill-pack file — `GET /byok/skill-packs/:name/files/:path`. */
913
+ export declare const BYOK_SKILL_PACK_FILE_ROUTE = "/byok/skill-packs/:name/files/:path";
914
+ /** Client builder for a skill-pack file path. Mirrors the `:name`/`:path` template, each segment URL-encoded. */
915
+ export declare function byokSkillPackFilePath(name: string, path: string): string;
916
+ /** `POST /byok/blobs` — declare a blob upload (§7). */
917
+ export declare const BYOK_BLOBS_PATH = "/byok/blobs";
918
+ /** Router template — `POST /byok/blobs/:id/finalize`. */
919
+ export declare const BYOK_BLOB_FINALIZE_ROUTE = "/byok/blobs/:id/finalize";
920
+ /** Router template — `GET /byok/blobs/:id/url`. */
921
+ export declare const BYOK_BLOB_URL_ROUTE = "/byok/blobs/:id/url";
922
+ /** Router template for the two presigned byte routes — `PUT`/`GET /byok/blobs/:id/content`. */
923
+ export declare const BYOK_BLOB_CONTENT_ROUTE = "/byok/blobs/:id/content";
924
+ /** Client builder — `POST /byok/blobs/:id/finalize`, blob id URL-encoded (client-supplied). */
925
+ export declare function byokBlobFinalizePath(blobId: string): string;
926
+ /** Client builder — `GET /byok/blobs/:id/url`, blob id URL-encoded (client-supplied). */
927
+ export declare function byokBlobUrlPath(blobId: string): string;
928
+ /**
929
+ * Path portion of a presigned `/byok/blobs/:id/content` URL. The blob id here
930
+ * is a server-minted token (NOT URL-encoded, matching the reference stores that
931
+ * mint these signed URLs); callers append the `?sig=&exp=` query themselves.
932
+ */
933
+ export declare function byokBlobContentPath(blobId: string): string;
package/dist/index.d.ts CHANGED
@@ -8,12 +8,12 @@ export { AgentEventSchema, UnknownAgentEventSchema, AgentEventOrUnknownSchema, K
8
8
  export type { AgentEvent, UnknownAgentEvent, AgentEventOrUnknown } from './agent-event';
9
9
  export { TASK_STATES, TASK_TRANSITIONS, canTransition } from './task-state';
10
10
  export type { TaskState } from './task-state';
11
- export { MESSAGE_TYPES, MESSAGE_PAYLOAD_SCHEMAS, SERVER_TO_DAEMON_TYPES, DAEMON_TO_SERVER_TYPES, RuntimeIdSchema, RuntimeInfoSchema, RuntimeCapabilitiesSchema, ConnHelloPayloadSchema, ConnAckPayloadSchema, TaskOfferPayloadSchema, TaskApprovePayloadSchema, TaskRejectPayloadSchema, TaskCancelPayloadSchema, TaskSteerPayloadSchema, TaskClaimPayloadSchema, TaskStartedPayloadSchema, TaskDeclinePayloadSchema, TaskProgressPayloadSchema, TaskArtifactPayloadSchema, TaskAwaitApprovalPayloadSchema, TaskCompletePayloadSchema, TaskFailPayloadSchema, TaskCancelledPayloadSchema, TaskApprovalResolvedPayloadSchema, } from './messages';
12
- export type { MessageType, RuntimeId, RuntimeInfo, RuntimeCapabilities, ConnHelloPayload, ConnAckPayload, TaskOfferPayload, TaskApprovePayload, TaskRejectPayload, TaskCancelPayload, TaskSteerPayload, TaskClaimPayload, TaskStartedPayload, TaskDeclinePayload, TaskProgressPayload, TaskArtifactPayload, TaskAwaitApprovalPayload, TaskCompletePayload, TaskFailPayload, TaskCancelledPayload, TaskApprovalResolvedPayload, } from './messages';
11
+ export { MESSAGE_TYPES, MESSAGE_PAYLOAD_SCHEMAS, SERVER_TO_DAEMON_TYPES, DAEMON_TO_SERVER_TYPES, RuntimeIdSchema, RuntimeInfoSchema, RuntimeCapabilitiesSchema, DispatchSelectionSchema, ToolsetIdSchema, ConfiguredToolsetsSchema, RequiredToolsetsSchema, CONFIGURED_TOOLSETS_MAX_ITEMS, ConnHelloPayloadSchema, ConnAckPayloadSchema, TaskOfferPayloadSchema, TaskOfferWithToolsetsPayloadSchema, TaskApprovePayloadSchema, TaskRejectPayloadSchema, TaskCancelPayloadSchema, TaskSteerPayloadSchema, TaskClaimPayloadSchema, TaskStartedPayloadSchema, TaskDeclinePayloadSchema, TaskProgressPayloadSchema, TaskArtifactPayloadSchema, TaskAwaitApprovalPayloadSchema, TaskCompletePayloadSchema, TaskFailPayloadSchema, TaskCancelledPayloadSchema, TaskApprovalResolvedPayloadSchema, RESULT_DOCUMENT_MAX_BYTES, checkResultDocument, } from './messages';
12
+ export type { ResultDocumentCheck, MessageType, RuntimeId, RuntimeInfo, RuntimeCapabilities, DispatchSelection, ToolsetId, ConnHelloPayload, ConnAckPayload, TaskOfferPayload, TaskOfferWithToolsetsPayload, TaskApprovePayload, TaskRejectPayload, TaskCancelPayload, TaskSteerPayload, TaskClaimPayload, TaskStartedPayload, TaskDeclinePayload, TaskProgressPayload, TaskArtifactPayload, TaskAwaitApprovalPayload, TaskCompletePayload, TaskFailPayload, TaskCancelledPayload, TaskApprovalResolvedPayload, } from './messages';
13
13
  export { EnvelopeSchema, isServerToDaemonType } from './envelope';
14
14
  export type { Envelope } from './envelope';
15
15
  export { ProtocolError, EnvelopeParseError, UnknownMessageTypeError, EnvelopeValidationError, } from './errors';
16
16
  export { encodeEnvelope, decodeEnvelope, createEnvelope, parseMessage } from './codec';
17
17
  export type { CreateEnvelopeOptions } from './codec';
18
- export { PairRequestSchema, PairResponseSchema, ChallengeRequestSchema, ChallengeResponseSchema, TokenRequestSchema, TokenResponseSchema, CreateBlobRequestSchema, CreateBlobResponseSchema, BlobDownloadUrlResponseSchema, EventsPollQuerySchema, EventsPollResponseSchema, MessagesSendRequestSchema, MessagesSendResponseSchema, MAX_MESSAGES_PER_BATCH, } from './http-api';
18
+ export { PairRequestSchema, PairResponseSchema, ChallengeRequestSchema, ChallengeResponseSchema, TokenRequestSchema, TokenResponseSchema, CreateBlobRequestSchema, CreateBlobResponseSchema, BlobDownloadUrlResponseSchema, EventsPollQuerySchema, EventsPollResponseSchema, MessagesSendRequestSchema, MessagesSendResponseSchema, MAX_MESSAGES_PER_BATCH, BYOK_WS_PATH, BYOK_PAIR_PATH, BYOK_CHALLENGE_PATH, BYOK_TOKEN_PATH, BYOK_CAPABILITIES_PATH, BYOK_EVENTS_PATH, BYOK_MESSAGES_PATH, BYOK_PRESENCE_PATH, BYOK_ACTIVITY_PATH, BYOK_BOARD_PATH, BYOK_BOARD_STREAM_PATH, BYOK_BOARD_CLAIM_ROUTE, BYOK_BOARD_UNCLAIM_ROUTE, BYOK_BOARD_STATUS_ROUTE, BYOK_RECORDS_PATH, BYOK_RECORD_ROUTE, byokRecordPath, BYOK_SKILL_PACKS_PATH, BYOK_SKILL_PACK_FILE_ROUTE, byokSkillPackFilePath, BYOK_BLOBS_PATH, BYOK_BLOB_FINALIZE_ROUTE, BYOK_BLOB_URL_ROUTE, BYOK_BLOB_CONTENT_ROUTE, byokBlobFinalizePath, byokBlobUrlPath, byokBlobContentPath, } from './http-api';
19
19
  export type { PairRequest, PairResponse, ChallengeRequest, ChallengeResponse, TokenRequest, TokenResponse, CreateBlobRequest, CreateBlobResponse, BlobDownloadUrlResponse, EventsPollQuery, EventsPollResponse, MessagesSendRequest, MessagesSendResponse, } from './http-api';
package/dist/index.js CHANGED
@@ -7,7 +7,10 @@ var CAPABILITY_FLAGS = [
7
7
  "blob-upload",
8
8
  "interactive-approval",
9
9
  "approval_resolved",
10
- "approval-targeting"
10
+ "approval-targeting",
11
+ "result-document",
12
+ "dispatch-selection",
13
+ "toolset-selection"
11
14
  ];
12
15
  var CONTENT_HASH_RE = /^sha256:[0-9a-f]{64}$/;
13
16
  var BlobRefSchema = z.object({
@@ -101,6 +104,8 @@ var RuntimeCapabilitiesSchema = z.object({
101
104
  steer: z.boolean().optional(),
102
105
  resume: z.boolean().optional(),
103
106
  approvalInteractive: z.boolean().optional(),
107
+ /** Whether this runtime can project a locally configured MCP toolset into one task. */
108
+ mcpToolsets: z.boolean().optional(),
104
109
  permissionModes: z.array(z.string()).optional()
105
110
  });
106
111
  var RuntimeInfoSchema = z.object({
@@ -110,6 +115,18 @@ var RuntimeInfoSchema = z.object({
110
115
  /** Optional: older daemons omit this entirely (pre-freeze addition). */
111
116
  capabilities: RuntimeCapabilitiesSchema.optional()
112
117
  });
118
+ var CONFIGURED_TOOLSETS_MAX_ITEMS = 64;
119
+ var ToolsetIdSchema = z.string().min(1).max(128).regex(/^[a-z0-9]+(?:[._-][a-z0-9]+)*$/u, "toolset ids must be lowercase logical identifiers");
120
+ function rejectDuplicateToolsets(ids, ctx, label) {
121
+ const seen = /* @__PURE__ */ new Set();
122
+ for (const [index, id] of ids.entries()) {
123
+ if (seen.has(id)) {
124
+ ctx.addIssue({ code: "custom", path: [index], message: `duplicate ${label} toolset: ${id}` });
125
+ }
126
+ seen.add(id);
127
+ }
128
+ }
129
+ var ConfiguredToolsetsSchema = z.array(ToolsetIdSchema).max(CONFIGURED_TOOLSETS_MAX_ITEMS).superRefine((ids, ctx) => rejectDuplicateToolsets(ids, ctx, "configured"));
113
130
  var ConnHelloPayloadSchema = z.object({
114
131
  protocolVersions: z.array(z.number().int()),
115
132
  capabilities: z.array(z.string()),
@@ -117,6 +134,8 @@ var ConnHelloPayloadSchema = z.object({
117
134
  productId: z.string(),
118
135
  /** Runtimes detected on this device (M1 gap #4; replaces `agents`). */
119
136
  runtimes: z.array(RuntimeInfoSchema).optional(),
137
+ /** Validated logical IDs configured on this device; definitions and secrets stay local. */
138
+ configuredToolsets: ConfiguredToolsetsSchema.optional(),
120
139
  /**
121
140
  * Last `seq` this device has seen from the server (M1 redelivery cursor).
122
141
  * Omitted on a device's first-ever connection. The server replays any
@@ -131,10 +150,26 @@ var ConnAckPayloadSchema = z.object({
131
150
  serverTime: z.iso.datetime({ offset: true })
132
151
  });
133
152
  var InstructionBlobRefSchema = z.object({ blobRef: BlobRefSchema }).strict();
153
+ var DispatchTargetIdSchema = z.string().min(1).max(160).regex(/^[^\u0000\r\n]+$/u, "dispatch target ids must not contain control line breaks");
154
+ var DispatchSelectionSchema = z.discriminatedUnion("lane", [
155
+ z.object({
156
+ lane: z.literal("subscription"),
157
+ runtimeId: z.enum(["claude", "codex"]),
158
+ providerId: z.null(),
159
+ modelId: DispatchTargetIdSchema
160
+ }).strict(),
161
+ z.object({
162
+ lane: z.literal("byok"),
163
+ runtimeId: z.literal("pi"),
164
+ providerId: DispatchTargetIdSchema,
165
+ modelId: DispatchTargetIdSchema
166
+ }).strict()
167
+ ]);
134
168
  var TaskOfferPayloadSchema = z.object({
135
169
  instruction: z.union([z.string(), InstructionBlobRefSchema]),
136
170
  policy: PermissionPolicySchema,
137
171
  runtime: RuntimeIdSchema.optional(),
172
+ dispatchSelection: DispatchSelectionSchema.optional(),
138
173
  sessionRef: z.string().optional(),
139
174
  workspaceHint: z.string().optional(),
140
175
  limits: z.object({
@@ -142,6 +177,10 @@ var TaskOfferPayloadSchema = z.object({
142
177
  maxTokens: z.number().int().positive().optional()
143
178
  }).optional()
144
179
  });
180
+ var RequiredToolsetsSchema = z.array(ToolsetIdSchema).min(1).max(16).superRefine((ids, ctx) => rejectDuplicateToolsets(ids, ctx, "required"));
181
+ var TaskOfferWithToolsetsPayloadSchema = TaskOfferPayloadSchema.extend({
182
+ requiredToolsets: RequiredToolsetsSchema
183
+ }).strict();
145
184
  var TaskApprovePayloadSchema = z.object({
146
185
  approvalId: z.string().optional()
147
186
  });
@@ -182,10 +221,61 @@ var TaskAwaitApprovalPayloadSchema = z.object({
182
221
  summary: z.string(),
183
222
  approvalId: z.string().optional()
184
223
  });
224
+ var RESULT_DOCUMENT_MAX_BYTES = 1048576;
225
+ function isSameJsonData(a, b) {
226
+ if (a === null || b === null) return a === b;
227
+ const typeOfA = typeof a;
228
+ if (typeOfA !== typeof b) return false;
229
+ if (typeOfA !== "object") {
230
+ return a === b;
231
+ }
232
+ const aIsArray = Array.isArray(a);
233
+ if (aIsArray !== Array.isArray(b)) return false;
234
+ if (aIsArray) {
235
+ const arrayA = a;
236
+ const arrayB = b;
237
+ if (arrayA.length !== arrayB.length) return false;
238
+ for (let index = 0; index < arrayA.length; index += 1) {
239
+ if (!isSameJsonData(arrayA[index], arrayB[index])) return false;
240
+ }
241
+ return true;
242
+ }
243
+ const objectA = a;
244
+ const objectB = b;
245
+ const keysA = Object.keys(objectA);
246
+ const keysB = Object.keys(objectB);
247
+ if (keysA.length === 0) {
248
+ const prototypeA = Object.getPrototypeOf(objectA);
249
+ if (prototypeA !== Object.prototype && prototypeA !== null) return false;
250
+ }
251
+ if (keysA.length !== keysB.length) return false;
252
+ for (const key of keysA) {
253
+ if (!Object.prototype.hasOwnProperty.call(objectB, key)) return false;
254
+ if (!isSameJsonData(objectA[key], objectB[key])) return false;
255
+ }
256
+ return true;
257
+ }
258
+ function checkResultDocument(document) {
259
+ let json;
260
+ try {
261
+ json = JSON.stringify(document);
262
+ } catch {
263
+ return { ok: false, reason: "not-serializable" };
264
+ }
265
+ if (json === void 0) return { ok: false, reason: "not-serializable" };
266
+ const bytes = new TextEncoder().encode(json).length;
267
+ if (bytes > RESULT_DOCUMENT_MAX_BYTES) return { ok: false, reason: "over-cap", bytes };
268
+ const canonical = JSON.parse(json);
269
+ if (!isSameJsonData(document, canonical)) return { ok: false, reason: "not-plain-json" };
270
+ return { ok: true, bytes, canonical };
271
+ }
185
272
  var TaskCompletePayloadSchema = z.object({
186
273
  summary: z.string(),
187
274
  sessionRef: z.string(),
188
- artifactRefs: z.array(BlobRefSchema).optional()
275
+ artifactRefs: z.array(BlobRefSchema).optional(),
276
+ document: z.unknown().optional().refine((value) => value === void 0 || checkResultDocument(value).ok, {
277
+ message: `task.complete.document must be plain JSON data (equal to its own JSON round trip) and at most ${RESULT_DOCUMENT_MAX_BYTES} bytes as canonical JSON (UTF-8)`
278
+ })
189
279
  });
190
280
  var TaskFailPayloadSchema = z.object({
191
281
  reason: z.string(),
@@ -204,6 +294,7 @@ var MESSAGE_PAYLOAD_SCHEMAS = {
204
294
  "conn.hello": ConnHelloPayloadSchema,
205
295
  "conn.ack": ConnAckPayloadSchema,
206
296
  "task.offer": TaskOfferPayloadSchema,
297
+ "task.offer_with_toolsets": TaskOfferWithToolsetsPayloadSchema,
207
298
  "task.approve": TaskApprovePayloadSchema,
208
299
  "task.reject": TaskRejectPayloadSchema,
209
300
  "task.cancel": TaskCancelPayloadSchema,
@@ -223,6 +314,7 @@ var MESSAGE_TYPES = Object.keys(MESSAGE_PAYLOAD_SCHEMAS);
223
314
  var SERVER_TO_DAEMON_TYPES = [
224
315
  "conn.ack",
225
316
  "task.offer",
317
+ "task.offer_with_toolsets",
226
318
  "task.approve",
227
319
  "task.reject",
228
320
  "task.cancel",
@@ -265,6 +357,7 @@ var EnvelopeSchema = z.discriminatedUnion("type", [
265
357
  // task.* server -> daemon: task_id required (routing key) + seq required
266
358
  // (per-device redelivery cursor).
267
359
  envelopeShape("task.offer", REQUIRED_TASK_ID, REQUIRED_SEQ),
360
+ envelopeShape("task.offer_with_toolsets", REQUIRED_TASK_ID, REQUIRED_SEQ),
268
361
  envelopeShape("task.approve", REQUIRED_TASK_ID, REQUIRED_SEQ),
269
362
  envelopeShape("task.reject", REQUIRED_TASK_ID, REQUIRED_SEQ),
270
363
  envelopeShape("task.cancel", REQUIRED_TASK_ID, REQUIRED_SEQ),
@@ -426,7 +519,44 @@ var MessagesSendResponseSchema = z.object({
426
519
  accepted: z.number().int().nonnegative(),
427
520
  rejected: z.number().int().nonnegative().optional()
428
521
  });
522
+ var BYOK_WS_PATH = "/byok/ws";
523
+ var BYOK_PAIR_PATH = "/byok/pair";
524
+ var BYOK_CHALLENGE_PATH = "/byok/challenge";
525
+ var BYOK_TOKEN_PATH = "/byok/token";
526
+ var BYOK_CAPABILITIES_PATH = "/byok/capabilities";
527
+ var BYOK_EVENTS_PATH = "/byok/events";
528
+ var BYOK_MESSAGES_PATH = "/byok/messages";
529
+ var BYOK_PRESENCE_PATH = "/byok/presence";
530
+ var BYOK_ACTIVITY_PATH = "/byok/activity";
531
+ var BYOK_BOARD_PATH = "/byok/board";
532
+ var BYOK_BOARD_STREAM_PATH = "/byok/board/stream";
533
+ var BYOK_BOARD_CLAIM_ROUTE = "/byok/board/:id/claim";
534
+ var BYOK_BOARD_UNCLAIM_ROUTE = "/byok/board/:id/unclaim";
535
+ var BYOK_BOARD_STATUS_ROUTE = "/byok/board/:id/status";
536
+ var BYOK_RECORDS_PATH = "/byok/records";
537
+ var BYOK_RECORD_ROUTE = "/byok/records/:kind/:key";
538
+ function byokRecordPath(kind, key) {
539
+ return `/byok/records/${encodeURIComponent(kind)}/${encodeURIComponent(key)}`;
540
+ }
541
+ var BYOK_SKILL_PACKS_PATH = "/byok/skill-packs";
542
+ var BYOK_SKILL_PACK_FILE_ROUTE = "/byok/skill-packs/:name/files/:path";
543
+ function byokSkillPackFilePath(name, path) {
544
+ return `/byok/skill-packs/${encodeURIComponent(name)}/files/${encodeURIComponent(path)}`;
545
+ }
546
+ var BYOK_BLOBS_PATH = "/byok/blobs";
547
+ var BYOK_BLOB_FINALIZE_ROUTE = "/byok/blobs/:id/finalize";
548
+ var BYOK_BLOB_URL_ROUTE = "/byok/blobs/:id/url";
549
+ var BYOK_BLOB_CONTENT_ROUTE = "/byok/blobs/:id/content";
550
+ function byokBlobFinalizePath(blobId) {
551
+ return `/byok/blobs/${encodeURIComponent(blobId)}/finalize`;
552
+ }
553
+ function byokBlobUrlPath(blobId) {
554
+ return `/byok/blobs/${encodeURIComponent(blobId)}/url`;
555
+ }
556
+ function byokBlobContentPath(blobId) {
557
+ return `/byok/blobs/${blobId}/content`;
558
+ }
429
559
 
430
- export { AgentEventOrUnknownSchema, AgentEventSchema, BlobDownloadUrlResponseSchema, BlobRefSchema, CAPABILITY_FLAGS, CONTENT_HASH_RE, ChallengeRequestSchema, ChallengeResponseSchema, ConnAckPayloadSchema, ConnHelloPayloadSchema, CreateBlobRequestSchema, CreateBlobResponseSchema, DAEMON_TO_SERVER_TYPES, EnvelopeParseError, EnvelopeSchema, EnvelopeValidationError, EventsPollQuerySchema, EventsPollResponseSchema, KNOWN_AGENT_EVENT_TYPES, MAX_MESSAGES_PER_BATCH, MESSAGE_PAYLOAD_SCHEMAS, MESSAGE_TYPES, MessagesSendRequestSchema, MessagesSendResponseSchema, PERMISSION_MODES, PROTOCOL_VERSION, PairRequestSchema, PairResponseSchema, PermissionPolicySchema, ProtocolError, RuntimeCapabilitiesSchema, RuntimeIdSchema, RuntimeInfoSchema, SERVER_TO_DAEMON_TYPES, TASK_STATES, TASK_TRANSITIONS, TaskApprovalResolvedPayloadSchema, TaskApprovePayloadSchema, TaskArtifactPayloadSchema, TaskAwaitApprovalPayloadSchema, TaskCancelPayloadSchema, TaskCancelledPayloadSchema, TaskClaimPayloadSchema, TaskCompletePayloadSchema, TaskDeclinePayloadSchema, TaskFailPayloadSchema, TaskOfferPayloadSchema, TaskProgressPayloadSchema, TaskRejectPayloadSchema, TaskStartedPayloadSchema, TaskSteerPayloadSchema, TokenRequestSchema, TokenResponseSchema, UnknownAgentEventSchema, UnknownMessageTypeError, canTransition, createEnvelope, decodeEnvelope, encodeEnvelope, isKnownAgentEvent, isServerToDaemonType, parseMessage, partitionAgentEvents };
560
+ export { AgentEventOrUnknownSchema, AgentEventSchema, BYOK_ACTIVITY_PATH, BYOK_BLOBS_PATH, BYOK_BLOB_CONTENT_ROUTE, BYOK_BLOB_FINALIZE_ROUTE, BYOK_BLOB_URL_ROUTE, BYOK_BOARD_CLAIM_ROUTE, BYOK_BOARD_PATH, BYOK_BOARD_STATUS_ROUTE, BYOK_BOARD_STREAM_PATH, BYOK_BOARD_UNCLAIM_ROUTE, BYOK_CAPABILITIES_PATH, BYOK_CHALLENGE_PATH, BYOK_EVENTS_PATH, BYOK_MESSAGES_PATH, BYOK_PAIR_PATH, BYOK_PRESENCE_PATH, BYOK_RECORDS_PATH, BYOK_RECORD_ROUTE, BYOK_SKILL_PACKS_PATH, BYOK_SKILL_PACK_FILE_ROUTE, BYOK_TOKEN_PATH, BYOK_WS_PATH, BlobDownloadUrlResponseSchema, BlobRefSchema, CAPABILITY_FLAGS, CONFIGURED_TOOLSETS_MAX_ITEMS, CONTENT_HASH_RE, ChallengeRequestSchema, ChallengeResponseSchema, ConfiguredToolsetsSchema, ConnAckPayloadSchema, ConnHelloPayloadSchema, CreateBlobRequestSchema, CreateBlobResponseSchema, DAEMON_TO_SERVER_TYPES, DispatchSelectionSchema, EnvelopeParseError, EnvelopeSchema, EnvelopeValidationError, EventsPollQuerySchema, EventsPollResponseSchema, KNOWN_AGENT_EVENT_TYPES, MAX_MESSAGES_PER_BATCH, MESSAGE_PAYLOAD_SCHEMAS, MESSAGE_TYPES, MessagesSendRequestSchema, MessagesSendResponseSchema, PERMISSION_MODES, PROTOCOL_VERSION, PairRequestSchema, PairResponseSchema, PermissionPolicySchema, ProtocolError, RESULT_DOCUMENT_MAX_BYTES, RequiredToolsetsSchema, RuntimeCapabilitiesSchema, RuntimeIdSchema, RuntimeInfoSchema, SERVER_TO_DAEMON_TYPES, TASK_STATES, TASK_TRANSITIONS, TaskApprovalResolvedPayloadSchema, TaskApprovePayloadSchema, TaskArtifactPayloadSchema, TaskAwaitApprovalPayloadSchema, TaskCancelPayloadSchema, TaskCancelledPayloadSchema, TaskClaimPayloadSchema, TaskCompletePayloadSchema, TaskDeclinePayloadSchema, TaskFailPayloadSchema, TaskOfferPayloadSchema, TaskOfferWithToolsetsPayloadSchema, TaskProgressPayloadSchema, TaskRejectPayloadSchema, TaskStartedPayloadSchema, TaskSteerPayloadSchema, TokenRequestSchema, TokenResponseSchema, ToolsetIdSchema, UnknownAgentEventSchema, UnknownMessageTypeError, byokBlobContentPath, byokBlobFinalizePath, byokBlobUrlPath, byokRecordPath, byokSkillPackFilePath, canTransition, checkResultDocument, createEnvelope, decodeEnvelope, encodeEnvelope, isKnownAgentEvent, isServerToDaemonType, parseMessage, partitionAgentEvents };
431
561
  //# sourceMappingURL=index.js.map
432
562
  //# sourceMappingURL=index.js.map