@yefengr/remote-pi 0.9.7 → 0.9.9

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.
Files changed (53) hide show
  1. package/README.md +12 -2
  2. package/dist/pairing/identity-keyring.d.ts +22 -0
  3. package/dist/pairing/identity-keyring.js +94 -0
  4. package/dist/pairing/identity-keyring.js.map +1 -0
  5. package/dist/pairing/identity-lock.d.ts +14 -0
  6. package/dist/pairing/identity-lock.js +116 -0
  7. package/dist/pairing/identity-lock.js.map +1 -0
  8. package/dist/pairing/qr.d.ts +2 -3
  9. package/dist/pairing/qr.js +2 -3
  10. package/dist/pairing/qr.js.map +1 -1
  11. package/dist/pairing/storage.d.ts +19 -61
  12. package/dist/pairing/storage.js +196 -314
  13. package/dist/pairing/storage.js.map +1 -1
  14. package/dist/protocol/types.d.ts +2 -52
  15. package/dist/protocol/v2/codec.d.ts +5 -25
  16. package/dist/protocol/v2/codec.js +3 -206
  17. package/dist/protocol/v2/codec.js.map +1 -1
  18. package/dist/protocol/v2/index.d.ts +1 -0
  19. package/dist/protocol/v2/index.js +1 -0
  20. package/dist/protocol/v2/index.js.map +1 -1
  21. package/dist/protocol/v2/marker.d.ts +40 -0
  22. package/dist/protocol/v2/marker.js +47 -0
  23. package/dist/protocol/v2/marker.js.map +1 -0
  24. package/dist/protocol/v2/schemas.d.ts +3 -2024
  25. package/dist/protocol/v2/schemas.js +3 -433
  26. package/dist/protocol/v2/schemas.js.map +1 -1
  27. package/dist/runtime/owner_router.js +5 -1
  28. package/dist/runtime/owner_router.js.map +1 -1
  29. package/dist/transport/peer_channel.d.ts +2 -11
  30. package/dist/transport/peer_channel.js +7 -11
  31. package/dist/transport/peer_channel.js.map +1 -1
  32. package/dist/transport/relay_client.d.ts +2 -8
  33. package/dist/transport/relay_client.js +3 -2
  34. package/dist/transport/relay_client.js.map +1 -1
  35. package/dist/vendor/protocol/constants.d.ts +4 -0
  36. package/dist/vendor/protocol/constants.js +4 -0
  37. package/dist/vendor/protocol/encoding.d.ts +9 -0
  38. package/dist/vendor/protocol/encoding.js +66 -0
  39. package/dist/vendor/protocol/outer/codec.d.ts +13 -0
  40. package/dist/vendor/protocol/outer/codec.js +105 -0
  41. package/dist/vendor/protocol/outer/index.d.ts +4 -0
  42. package/dist/vendor/protocol/outer/index.js +4 -0
  43. package/dist/vendor/protocol/outer/types.d.ts +120 -0
  44. package/dist/vendor/protocol/outer/types.js +1 -0
  45. package/dist/vendor/protocol/session/codec.d.ts +41 -0
  46. package/dist/vendor/protocol/session/codec.js +236 -0
  47. package/dist/vendor/protocol/session/frames.d.ts +5750 -0
  48. package/dist/vendor/protocol/session/frames.js +406 -0
  49. package/dist/vendor/protocol/session/index.d.ts +3 -0
  50. package/dist/vendor/protocol/session/index.js +3 -0
  51. package/dist/vendor/protocol/session/schema.d.ts +1060 -0
  52. package/dist/vendor/protocol/session/schema.js +302 -0
  53. package/package.json +17 -25
@@ -1,434 +1,4 @@
1
- import { z } from "zod";
2
- export const PROTOCOL_VERSION_V2 = 2;
3
- export const TIMELINE_MARKER_NAME = "remote-pi:timeline-v2";
4
- export const MAX_FRAME_BYTES = 2 * 1024 * 1024;
5
- export const MAX_HISTORY_CHUNK_BYTES = 512 * 1024;
6
- export const MAX_WINDOW_DECODE_BYTES = 32 * 1024 * 1024;
7
- export const MAX_FRAGMENT_DECODE_BYTES = 50 * 1024;
8
- export const MAX_ID_CHARS = 256;
9
- export const MAX_TEXT_CHARS = 1024 * 1024;
10
- export const MAX_ARRAY_ITEMS = 4096;
11
- const id = z.string().min(1).max(MAX_ID_CHARS);
12
- const pairingCode = z.string().regex(/^[0-9A-HJKMNP-TV-Z]{8}$/);
13
- const boundedText = z.string().max(MAX_TEXT_CHARS);
14
- const nonEmptyText = boundedText.min(1);
15
- const nonNegativeInt = z.number().int().nonnegative().finite();
16
- const safePositiveInt = z.number().int().positive().max(Number.MAX_SAFE_INTEGER);
17
- const timelineHead = z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER - 1);
18
- const finiteNumber = z.number().finite();
19
- const timestamp = finiteNumber.nonnegative();
20
- const base64 = z.string()
21
- .min(4)
22
- .max(Math.ceil((MAX_FRAGMENT_DECODE_BYTES * 4) / 3) + 4)
23
- .regex(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/);
24
- export const JsonValueSchema = z.lazy(() => z.union([
25
- z.null(),
26
- z.boolean(),
27
- finiteNumber,
28
- z.string().max(MAX_TEXT_CHARS),
29
- z.array(JsonValueSchema).max(MAX_ARRAY_ITEMS),
30
- z.record(z.string().max(MAX_ID_CHARS), JsonValueSchema),
31
- ]));
32
- const textBlock = z.strictObject({
33
- type: z.literal("text"),
34
- text: boundedText,
35
- truncated: z.literal(true).optional(),
36
- });
37
- const thinkingBlock = z.strictObject({
38
- type: z.literal("thinking"),
39
- text: boundedText,
40
- truncated: z.literal(true).optional(),
41
- });
42
- const imageMime = z.string().min(1).max(128).regex(/^[\w.+-]+\/[\w.+-]+$/);
43
- const imageByteLength = nonNegativeInt.max(MAX_WINDOW_DECODE_BYTES);
44
- const imageBlock = z.union([
45
- z.strictObject({
46
- type: z.literal("image"),
47
- mime_type: imageMime,
48
- data: z.string().min(1).max(MAX_WINDOW_DECODE_BYTES),
49
- byte_length: imageByteLength,
50
- }),
51
- z.strictObject({
52
- type: z.literal("image"),
53
- mime_type: imageMime,
54
- byte_length: imageByteLength,
55
- omitted: z.literal(true),
56
- }),
57
- ]);
58
- const userBlock = z.union([textBlock, imageBlock]);
59
- const assistantBlock = z.union([textBlock, thinkingBlock]);
60
- export const TimelineUserBlockSchema = userBlock;
61
- export const TimelineAssistantBlockSchema = assistantBlock;
62
- export const TimelineTextBlockSchema = textBlock;
63
- export const TimelineThinkingBlockSchema = thinkingBlock;
64
- export const TimelineImageBlockSchema = imageBlock;
65
- const eventBase = {
66
- event_id: id,
67
- event_seq: safePositiveInt.optional(),
68
- session_id: id,
69
- history_generation: id,
70
- timestamp,
71
- };
72
- const groupedEventBase = { ...eventBase, group_id: id };
73
- const timelineUserEvent = z.strictObject({
74
- ...groupedEventBase,
75
- kind: z.literal("user"),
76
- message_id: id,
77
- blocks: z.array(userBlock).max(MAX_ARRAY_ITEMS),
78
- origin: z.enum(["pwa", "extension", "unknown"]),
79
- sender_ref: id.optional(),
80
- delivery: z.enum(["normal", "queued", "unknown"]),
81
- status: z.literal("committed"),
82
- }).superRefine((value, ctx) => {
83
- if (value.event_id !== value.message_id) {
84
- ctx.addIssue({ code: "custom", path: ["message_id"], message: "event_id must equal message_id" });
85
- }
86
- if (value.origin === "pwa" && value.sender_ref === undefined) {
87
- ctx.addIssue({ code: "custom", path: ["sender_ref"], message: "pwa user events require sender_ref" });
88
- }
89
- if (value.origin !== "pwa" && value.sender_ref !== undefined) {
90
- ctx.addIssue({ code: "custom", path: ["sender_ref"], message: "non-pwa user events must not include sender_ref" });
91
- }
92
- });
93
- const timelineAssistantEvent = z.strictObject({
94
- ...groupedEventBase,
95
- kind: z.literal("assistant"),
96
- blocks: z.array(assistantBlock).max(MAX_ARRAY_ITEMS),
97
- status: z.enum(["complete", "interrupted"]),
98
- });
99
- const timelineToolEvent = z.union([
100
- z.strictObject({
101
- ...groupedEventBase,
102
- kind: z.literal("tool"),
103
- tool_call_id: id,
104
- tool: nonEmptyText,
105
- args: JsonValueSchema,
106
- truncated: z.boolean(),
107
- status: z.literal("complete"),
108
- result: JsonValueSchema,
109
- error: z.never().optional(),
110
- }),
111
- z.strictObject({
112
- ...groupedEventBase,
113
- kind: z.literal("tool"),
114
- tool_call_id: id,
115
- tool: nonEmptyText,
116
- args: JsonValueSchema,
117
- truncated: z.boolean(),
118
- status: z.literal("error"),
119
- result: JsonValueSchema.optional(),
120
- error: nonEmptyText,
121
- }),
122
- z.strictObject({
123
- ...groupedEventBase,
124
- kind: z.literal("tool"),
125
- tool_call_id: id,
126
- tool: nonEmptyText,
127
- args: JsonValueSchema,
128
- truncated: z.boolean(),
129
- status: z.literal("interrupted"),
130
- result: z.never().optional(),
131
- error: z.never().optional(),
132
- }),
133
- ]);
134
- const systemEvent = z.strictObject({
135
- ...eventBase,
136
- kind: z.enum(["compaction", "branch_summary", "custom"]),
137
- group_id: id.optional(),
138
- payload: JsonValueSchema,
139
- truncated: z.boolean(),
140
- });
141
- const providerErrorEvent = z.strictObject({
142
- ...groupedEventBase,
143
- kind: z.literal("provider_error"),
144
- message: nonEmptyText,
145
- });
146
- export const TimelineEventSchema = z.union([
147
- timelineUserEvent,
148
- timelineAssistantEvent,
149
- timelineToolEvent,
150
- systemEvent,
151
- providerErrorEvent,
152
- ]);
153
- // Internal timeline construction precedes ordinal assignment; wire events cannot.
154
- const SequencedTimelineEventSchema = TimelineEventSchema.refine((event) => event.event_seq !== undefined, { path: ["event_seq"], message: "wire timeline events require event_seq" });
155
- const partialBase = {
156
- protocol_version: z.literal(PROTOCOL_VERSION_V2),
157
- session_id: id,
158
- history_generation: id,
159
- group_id: id,
160
- partial_id: id,
161
- status: z.enum(["running", "delta"]),
162
- };
163
- const partialTextFields = {
164
- delta: boundedText.optional(),
165
- };
166
- const assistantPartial = z.strictObject({
167
- type: z.literal("timeline_partial"),
168
- ...partialBase,
169
- kind: z.literal("assistant"),
170
- blocks: z.array(assistantBlock).max(MAX_ARRAY_ITEMS).optional(),
171
- ...partialTextFields,
172
- });
173
- const thinkingPartial = z.strictObject({
174
- type: z.literal("timeline_partial"),
175
- ...partialBase,
176
- kind: z.literal("thinking"),
177
- blocks: z.array(thinkingBlock).max(MAX_ARRAY_ITEMS).optional(),
178
- ...partialTextFields,
179
- });
180
- const toolPartial = z.strictObject({
181
- type: z.literal("timeline_partial"),
182
- ...partialBase,
183
- kind: z.literal("tool"),
184
- tool_call_id: id,
185
- tool: nonEmptyText,
186
- args: JsonValueSchema.optional(),
187
- blocks: z.array(assistantBlock).max(MAX_ARRAY_ITEMS).optional(),
188
- ...partialTextFields,
189
- });
190
- export const TimelinePartialSchema = z.union([assistantPartial, thinkingPartial, toolPartial]);
191
- const frameBase = { protocol_version: z.literal(PROTOCOL_VERSION_V2) };
192
- const clientDirect = { channel_id: id, history_generation: id };
193
- const responseDirect = { target_channel_id: id };
194
- const broadcastBase = { session_id: id, history_generation: id };
195
- const wireImage = z.strictObject({
196
- data: z.string().min(1).max(MAX_WINDOW_DECODE_BYTES),
197
- mime: imageMime,
198
- });
199
- const queuedMessageItem = z.strictObject({
200
- id,
201
- text: boundedText,
202
- images: z.array(wireImage).max(1).optional(),
203
- sender_ref: id.optional(),
204
- editable: z.boolean(),
205
- created_at: timestamp,
206
- });
207
- const harness = z.strictObject({ name: id, version: id });
208
- const wireModel = z.strictObject({
209
- id,
210
- name: boundedText,
211
- provider: id,
212
- reasoning: z.boolean(),
213
- context_window: nonNegativeInt,
214
- vision: z.boolean(),
215
- });
216
- const actionName = z.enum(["session_new", "session_compact", "model_set", "thinking_set"]);
217
- const thinkingLevel = z.enum(["off", "minimal", "low", "medium", "high", "xhigh"]);
218
- const askOption = z.strictObject({
219
- value: boundedText,
220
- label: boundedText,
221
- description: boundedText.optional(),
222
- preview: boundedText.optional(),
223
- freeform: z.boolean().optional(),
224
- });
225
- const askQuestion = z.strictObject({
226
- id,
227
- label: boundedText,
228
- prompt: boundedText,
229
- type: z.enum(["single", "multi", "preview"]),
230
- required: z.boolean(),
231
- presentedType: z.enum(["single", "multi", "preview"]).optional(),
232
- requestedType: z.enum(["single", "multi", "preview"]).optional(),
233
- options: z.array(askOption).max(MAX_ARRAY_ITEMS),
234
- });
235
- const askEnrichment = z.strictObject({
236
- flow_id: id,
237
- tool_call_id: id.nullable(),
238
- source: id,
239
- title: boundedText.nullable(),
240
- questions: z.array(askQuestion).max(MAX_ARRAY_ITEMS),
241
- });
242
- const askAnswer = z.strictObject({
243
- values: z.array(boundedText).max(MAX_ARRAY_ITEMS).optional(),
244
- customText: boundedText.optional(),
245
- note: boundedText.optional(),
246
- optionNotes: z.record(id, boundedText).optional(),
247
- });
248
- const askResponse = z.union([
249
- z.strictObject({
250
- flow_id: id,
251
- kind: z.literal("answer"),
252
- mode: z.enum(["submit", "elaborate"]).optional(),
253
- answers: z.record(id, askAnswer),
254
- }),
255
- z.strictObject({ flow_id: id, kind: z.literal("cancel") }),
256
- ]);
257
- const extensionUiResponse = z.union([
258
- z.strictObject({ ...frameBase, type: z.literal("extension_ui_response"), id, ...clientDirect, value: boundedText, ask: askResponse.optional() }),
259
- z.strictObject({ ...frameBase, type: z.literal("extension_ui_response"), id, ...clientDirect, confirmed: z.boolean(), ask: askResponse.optional() }),
260
- z.strictObject({ ...frameBase, type: z.literal("extension_ui_response"), id, ...clientDirect, cancelled: z.literal(true), ask: askResponse.optional() }),
261
- z.strictObject({ ...frameBase, type: z.literal("extension_ui_response"), id, ...clientDirect, ask: askResponse }),
262
- ]);
263
- const pairRequest = z.strictObject({ ...frameBase, type: z.literal("pair_request"), id, code: pairingCode, device_name: boundedText });
264
- const sessionHello = z.strictObject({ ...frameBase, type: z.literal("session_hello"), id, channel_id: id });
265
- const userMessage = z.strictObject({
266
- ...frameBase, type: z.literal("user_message"), id, ...clientDirect,
267
- client_request_id: id, text: boundedText, images: z.array(wireImage).max(1).optional(),
268
- streaming_behavior: z.literal("steer").optional(),
269
- });
270
- const userMessageObserved = z.strictObject({
271
- ...frameBase, type: z.literal("user_message_observed"), id, ...clientDirect,
272
- client_request_id: id, message_id: id, status: z.literal("committed"),
273
- });
274
- const sessionSync = z.strictObject({
275
- ...frameBase, type: z.literal("session_sync"), id, ...clientDirect,
276
- before: safePositiveInt.nullable(), limit: z.number().int().min(1).max(80).optional(),
277
- });
278
- const ping = z.strictObject({ ...frameBase, type: z.literal("ping"), id, ...clientDirect });
279
- const cancel = z.strictObject({ ...frameBase, type: z.literal("cancel"), id, ...clientDirect });
280
- const actionCommon = { ...frameBase, id, ...clientDirect };
281
- const sessionNew = z.strictObject({ ...actionCommon, type: z.literal("session_new") });
282
- const sessionCompact = z.strictObject({ ...actionCommon, type: z.literal("session_compact") });
283
- const modelSet = z.strictObject({ ...actionCommon, type: z.literal("model_set"), provider: id, model_id: id });
284
- const thinkingSet = z.strictObject({ ...actionCommon, type: z.literal("thinking_set"), level: thinkingLevel });
285
- const listModels = z.strictObject({ ...actionCommon, type: z.literal("list_models") });
286
- const queuedSet = z.strictObject({
287
- ...frameBase, type: z.literal("queued_message_set"), id, ...clientDirect,
288
- text: boundedText, images: z.array(wireImage).max(1).optional(),
289
- });
290
- const queuedClear = z.strictObject({ ...frameBase, type: z.literal("queued_message_clear"), id, ...clientDirect, target_id: id.optional() });
291
- const queuedSteer = z.strictObject({ ...frameBase, type: z.literal("queued_message_steer"), id, ...clientDirect, target_id: id });
292
- const approveTool = z.strictObject({ ...frameBase, type: z.literal("approve_tool"), id, ...clientDirect, tool_call_id: id, decision: z.enum(["allow", "deny"]) });
293
- export const ClientFrameSchema = z.union([
294
- pairRequest, sessionHello, userMessage, userMessageObserved, sessionSync, ping, cancel,
295
- sessionNew, sessionCompact, modelSet, thinkingSet, listModels, queuedSet, queuedClear, queuedSteer,
296
- approveTool, extensionUiResponse,
297
- ]);
298
- const pairOk = z.strictObject({
299
- ...frameBase, type: z.literal("pair_ok"), in_reply_to: id,
300
- session_name: boundedText, session_started_at: timestamp, endpoint_id: id,
301
- harness: harness.optional(), hostname: boundedText.optional(),
302
- });
303
- const pairError = z.strictObject({
304
- ...frameBase, type: z.literal("pair_error"), in_reply_to: id,
305
- code: z.enum(["token_expired", "token_consumed", "token_unknown", "internal_error"]), message: nonEmptyText,
306
- });
307
- const sessionReady = z.strictObject({
308
- ...frameBase, type: z.literal("session_ready"), in_reply_to: id, ...responseDirect,
309
- session_id: id, history_generation: id, self_sender_ref: id, head_seq: timelineHead,
310
- });
311
- const startedMessage = z.strictObject({
312
- id, group_id: id, blocks: z.array(userBlock).max(MAX_ARRAY_ITEMS),
313
- origin: z.enum(["pwa", "extension", "unknown"]), sender_ref: id.optional(), delivery: z.enum(["normal", "queued", "unknown"]),
314
- }).superRefine((value, ctx) => {
315
- if (value.origin === "pwa" && value.sender_ref === undefined) {
316
- ctx.addIssue({ code: "custom", path: ["sender_ref"], message: "pwa user messages require sender_ref" });
317
- }
318
- if (value.origin !== "pwa" && value.sender_ref !== undefined) {
319
- ctx.addIssue({ code: "custom", path: ["sender_ref"], message: "non-pwa user messages must not include sender_ref" });
320
- }
321
- });
322
- const userMessageStarted = z.strictObject({
323
- ...frameBase, type: z.literal("user_message_started"), ...responseDirect, in_reply_to: id,
324
- session_id: id, history_generation: id, message: startedMessage,
325
- });
326
- const userMessageStatus = z.union([
327
- z.strictObject({ ...frameBase, type: z.literal("user_message_status"), ...responseDirect, in_reply_to: id, session_id: id, history_generation: id, client_request_id: id, status: z.literal("received") }),
328
- z.strictObject({ ...frameBase, type: z.literal("user_message_status"), ...responseDirect, in_reply_to: id, session_id: id, history_generation: id, client_request_id: id, status: z.literal("accepted"), message_id: id.optional(), group_id: id.optional() }),
329
- z.strictObject({ ...frameBase, type: z.literal("user_message_status"), ...responseDirect, in_reply_to: id, session_id: id, history_generation: id, client_request_id: id, status: z.literal("committed"), message_id: id, group_id: id.optional() }),
330
- z.strictObject({ ...frameBase, type: z.literal("user_message_status"), ...responseDirect, in_reply_to: id, session_id: id, history_generation: id, client_request_id: id, status: z.literal("unknown_delivery") }),
331
- ]);
332
- const timelineEventFrame = z.strictObject({ ...frameBase, type: z.literal("timeline_event"), ...broadcastBase, event: SequencedTimelineEventSchema });
333
- export const TimelineEventFragmentSchema = z.strictObject({
334
- ...frameBase, type: z.literal("timeline_event_fragment"), ...broadcastBase,
335
- event_id: id, index: nonNegativeInt, data_base64: base64, final: z.boolean(),
336
- });
337
- export const HistoryFragmentSchema = z.strictObject({ event_id: id, index: nonNegativeInt, data_base64: base64, final: z.boolean() });
338
- const historyFragment = HistoryFragmentSchema;
339
- const historyChunkBase = {
340
- ...frameBase, type: z.literal("session_history_chunk"), ...responseDirect,
341
- in_reply_to: id, session_id: id, history_generation: id, snapshot_head: id,
342
- chunk_index: nonNegativeInt, events: z.array(SequencedTimelineEventSchema).max(MAX_ARRAY_ITEMS),
343
- fragments: z.array(historyFragment).max(MAX_ARRAY_ITEMS),
344
- };
345
- const historyChunkTail = {
346
- final_chunk: z.literal(false), next_before: z.never().optional(), eos: z.never().optional(),
347
- };
348
- const historyChunkEos = {
349
- final_chunk: z.literal(true), eos: z.literal(true), next_before: z.never().optional(),
350
- };
351
- const historyChunkNext = {
352
- final_chunk: z.literal(true), eos: z.literal(false), next_before: safePositiveInt,
353
- };
354
- function validateHistoryChunk(value, ctx) {
355
- const eventIds = new Set(value.events.map((event) => event.event_id));
356
- const fragmentIds = new Set(value.fragments.map((fragment) => fragment.event_id));
357
- for (const eventId of eventIds) {
358
- if (fragmentIds.has(eventId))
359
- ctx.addIssue({ code: "custom", path: ["fragments"], message: "an event cannot be both complete and fragmented" });
360
- }
361
- if (fragmentIds.size !== value.fragments.length)
362
- ctx.addIssue({ code: "custom", path: ["fragments"], message: "fragment event ids must be unique per chunk" });
363
- }
364
- export const SessionHistoryChunkSchema = z.union([
365
- z.strictObject({ ...historyChunkBase, ...historyChunkTail }),
366
- z.strictObject({ ...historyChunkBase, ...historyChunkEos }),
367
- z.strictObject({ ...historyChunkBase, ...historyChunkNext }),
368
- ]).superRefine(validateHistoryChunk);
369
- const protocolErrorFields = {
370
- type: z.literal("protocol_error"),
371
- in_reply_to: id.optional(),
372
- code: z.enum(["protocol_upgrade_required", "invalid_message", "unsupported_type", "invalid_channel", "invalid_generation", "invalid_cursor", "reset_required", "too_large", "internal_error"]),
373
- message: nonEmptyText,
374
- };
375
- const protocolError = z.union([
376
- z.strictObject({ ...frameBase, ...protocolErrorFields, ...responseDirect }),
377
- z.strictObject({ ...frameBase, ...protocolErrorFields }),
378
- ]);
379
- const reset = z.strictObject({
380
- ...frameBase, type: z.literal("reset"), ...responseDirect,
381
- session_id: id, history_generation: id, reason: z.enum(["generation_changed", "branch_changed", "session_replaced", "conflict", "invalid_cursor"]),
382
- });
383
- const pong = z.strictObject({ ...frameBase, type: z.literal("pong"), ...responseDirect, in_reply_to: id });
384
- const cancelled = z.strictObject({ ...frameBase, type: z.literal("cancelled"), ...responseDirect, in_reply_to: id });
385
- const actionOk = z.strictObject({ ...frameBase, type: z.literal("action_ok"), ...responseDirect, in_reply_to: id, action: actionName });
386
- const actionError = z.strictObject({ ...frameBase, type: z.literal("action_error"), ...responseDirect, in_reply_to: id, action: actionName, error: nonEmptyText });
387
- const modelsList = z.strictObject({ ...frameBase, type: z.literal("models_list"), ...responseDirect, in_reply_to: id, models: z.array(wireModel).max(MAX_ARRAY_ITEMS), current: wireModel.optional() });
388
- const queuedMessageState = z.strictObject({
389
- ...frameBase, type: z.literal("queued_message_state"), ...broadcastBase,
390
- snapshot_id: id,
391
- chunk_index: nonNegativeInt,
392
- final: z.boolean(),
393
- items: z.array(queuedMessageItem).max(MAX_ARRAY_ITEMS),
394
- });
395
- const extensionUiRequest = z.union([
396
- z.strictObject({ ...frameBase, type: z.literal("extension_ui_request"), ...responseDirect, id, method: z.literal("select"), title: boundedText, options: z.array(boundedText).max(MAX_ARRAY_ITEMS), ask: askEnrichment.optional() }),
397
- z.strictObject({ ...frameBase, type: z.literal("extension_ui_request"), ...responseDirect, id, method: z.literal("confirm"), title: boundedText, message: boundedText, ask: askEnrichment.optional() }),
398
- z.strictObject({ ...frameBase, type: z.literal("extension_ui_request"), ...responseDirect, id, method: z.literal("input"), title: boundedText, placeholder: boundedText.optional(), ask: askEnrichment.optional() }),
399
- z.strictObject({ ...frameBase, type: z.literal("extension_ui_request"), ...responseDirect, id, method: z.literal("editor"), title: boundedText, prefill: boundedText.optional(), ask: askEnrichment.optional() }),
400
- z.strictObject({ ...frameBase, type: z.literal("extension_ui_request"), ...responseDirect, id, method: z.literal("notify"), message: boundedText, notify_type: z.enum(["info", "warning", "error"]).optional() }),
401
- ]);
402
- const bye = z.strictObject({ ...frameBase, type: z.literal("bye"), ...broadcastBase, reason: z.enum(["peer_stop", "session_replaced", "shutdown"]) });
403
- export const ServerFrameSchema = z.union([
404
- pairOk, pairError, sessionReady, userMessageStarted, userMessageStatus,
405
- timelineEventFrame, TimelinePartialSchema, TimelineEventFragmentSchema, SessionHistoryChunkSchema,
406
- protocolError, reset, pong, cancelled, actionOk, actionError, modelsList, queuedMessageState, extensionUiRequest, bye,
407
- ]);
408
- export const ClientFrameTypes = new Set([
409
- "pair_request", "session_hello", "user_message", "user_message_observed", "session_sync", "ping", "cancel",
410
- "session_new", "session_compact", "model_set", "thinking_set", "list_models", "queued_message_set", "queued_message_clear", "queued_message_steer", "approve_tool", "extension_ui_response",
411
- ]);
412
- export const ServerFrameTypes = new Set([
413
- "pair_ok", "pair_error", "session_ready", "user_message_started", "user_message_status", "timeline_event", "timeline_partial", "timeline_event_fragment", "session_history_chunk", "protocol_error", "reset", "pong", "cancelled", "action_ok", "action_error", "models_list", "queued_message_state", "extension_ui_request", "bye",
414
- ]);
415
- const markerSystemKind = z.enum(["compaction", "branch_summary", "custom"]);
416
- const markerGroupedBase = { version: z.literal(2), event_id: id, group_id: id };
417
- const markerUser = z.strictObject({
418
- ...markerGroupedBase, kind: z.literal("user"), message_id: id.optional(),
419
- origin: z.enum(["pwa", "extension", "unknown"]), delivery: z.enum(["normal", "queued", "unknown"]), sender_ref: id.optional(),
420
- }).superRefine((value, ctx) => {
421
- if (value.message_id !== undefined && value.message_id !== value.event_id) {
422
- ctx.addIssue({ code: "custom", path: ["message_id"], message: "message_id must equal event_id" });
423
- }
424
- if (value.origin === "pwa" && value.sender_ref === undefined) {
425
- ctx.addIssue({ code: "custom", path: ["sender_ref"], message: "pwa marker users require sender_ref" });
426
- }
427
- if (value.origin !== "pwa" && value.sender_ref !== undefined) {
428
- ctx.addIssue({ code: "custom", path: ["sender_ref"], message: "non-pwa marker users must not include sender_ref" });
429
- }
430
- });
431
- const markerGrouped = z.strictObject({ ...markerGroupedBase, kind: z.enum(["assistant", "tool", "provider_error"]) });
432
- const markerSystem = z.strictObject({ version: z.literal(2), event_id: id, kind: markerSystemKind, group_id: id.optional() });
433
- export const MarkerSchemaV2 = z.union([markerUser, markerGrouped, markerSystem]);
1
+ export * from "../../vendor/protocol/session/index.js";
2
+ export { assistantBlockSchema as TimelineAssistantBlockSchema, historyFragmentSchema as HistoryFragmentSchema, imageBlockSchema as TimelineImageBlockSchema, sessionHistoryChunkFrameSchema as SessionHistoryChunkSchema, textBlockSchema as TimelineTextBlockSchema, thinkingBlockSchema as TimelineThinkingBlockSchema, timelineEventFragmentFrameSchema as TimelineEventFragmentSchema, userBlockSchema as TimelineUserBlockSchema, } from "../../vendor/protocol/session/index.js";
3
+ export * from "./marker.js";
434
4
  //# sourceMappingURL=schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/protocol/v2/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/protocol/v2/schemas.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EACL,oBAAoB,IAAI,4BAA4B,EACpD,qBAAqB,IAAI,qBAAqB,EAC9C,gBAAgB,IAAI,wBAAwB,EAC5C,8BAA8B,IAAI,yBAAyB,EAC3D,eAAe,IAAI,uBAAuB,EAC1C,mBAAmB,IAAI,2BAA2B,EAClD,gCAAgC,IAAI,2BAA2B,EAC/D,eAAe,IAAI,uBAAuB,GAC3C,MAAM,6BAA6B,CAAC;AACrC,cAAc,aAAa,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { decodeClientFrameV2 } from "../protocol/v2/index.js";
2
+ import { decodeRoutePayload } from "../vendor/protocol/outer/index.js";
2
3
  import { parseIncomingRoute } from "../transport/peer_channel.js";
3
4
  /** Routes unbound Owner frames without duplicating bound peer-channel traffic. */
4
5
  export function installOwnerRouter(relay, deps) {
@@ -8,9 +9,12 @@ export function installOwnerRouter(relay, deps) {
8
9
  const route = parseIncomingRoute(line, deps.routeIdentity());
9
10
  if (!route?.source_owner_id)
10
11
  return;
12
+ const payload = decodeRoutePayload(route);
13
+ if (!payload)
14
+ return;
11
15
  let frame;
12
16
  try {
13
- frame = decodeClientFrameV2(Buffer.from(route.ct, "base64").toString("utf8"));
17
+ frame = decodeClientFrameV2(payload);
14
18
  }
15
19
  catch {
16
20
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"owner_router.js","sourceRoot":"","sources":["../../src/runtime/owner_router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAoB,MAAM,yBAAyB,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAA0B,MAAM,8BAA8B,CAAC;AAY1F,kFAAkF;AAClF,MAAM,UAAU,kBAAkB,CAAC,KAAkB,EAAE,IAA6B;IAClF,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAQ,EAAE;QACtC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO;QACnC,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,EAAE,eAAe;YAAE,OAAO;QACpC,IAAI,KAAkB,CAAC;QACvB,IAAI,CAAC;YAAC,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAAC,CAAC;QACtF,MAAM,CAAC;YAAC,OAAO;QAAC,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;YAAE,OAAO;QAC9E,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC;QACtC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO;QACnC,KAAK,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBAAE,OAAO;YAC7C,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACjC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9B,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"owner_router.js","sourceRoot":"","sources":["../../src/runtime/owner_router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAoB,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAA0B,MAAM,8BAA8B,CAAC;AAY1F,kFAAkF;AAClF,MAAM,UAAU,kBAAkB,CAAC,KAAkB,EAAE,IAA6B;IAClF,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAQ,EAAE;QACtC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO;QACnC,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,EAAE,eAAe;YAAE,OAAO;QACpC,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,KAAkB,CAAC;QACvB,IAAI,CAAC;YAAC,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAC7C,MAAM,CAAC;YAAC,OAAO;QAAC,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;YAAE,OAAO;QAC9E,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC;QACtC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO;QACnC,KAAK,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBAAE,OAAO;YAC7C,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACjC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9B,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC"}
@@ -1,16 +1,7 @@
1
1
  import { type ClientFrame, type ServerFrame } from "../protocol/v2/index.js";
2
2
  import type { RelayClient } from "./relay_client.js";
3
- export type RoutePurpose = "pairing" | "session";
4
- export type RouteFrame = {
5
- type: "route";
6
- purpose: RoutePurpose;
7
- device_id: string;
8
- endpoint_id: string;
9
- runtime_instance_id: string;
10
- target_owner_id?: string;
11
- source_owner_id?: string;
12
- ct: string;
13
- };
3
+ import { type RouteFrame, type RoutePurpose } from "../vendor/protocol/outer/index.js";
4
+ export type { RouteFrame, RoutePurpose } from "../vendor/protocol/outer/index.js";
14
5
  export type HostRouteIdentity = {
15
6
  deviceId: string;
16
7
  endpointId: string;
@@ -1,4 +1,5 @@
1
1
  import { decodeClientFrameV2, encodeServerFrameV2, } from "../protocol/v2/index.js";
2
+ import { decodeRoute, decodeRoutePayload, parseJson } from "../vendor/protocol/outer/index.js";
2
3
  /**
3
4
  * A Host-side protocol-v2 channel for one authorized Owner. The relay
4
5
  * authenticates and injects `source_owner_id` for Owner-to-Host routes; this
@@ -48,8 +49,11 @@ export class V2PeerChannel {
48
49
  const outer = parseIncomingRoute(line, this.host, this.ownerId);
49
50
  if (!outer)
50
51
  return;
52
+ const payload = decodeRoutePayload(outer);
53
+ if (!payload)
54
+ return;
51
55
  try {
52
- const frame = decodeClientFrameV2(Buffer.from(outer.ct, "base64").toString("utf8"));
56
+ const frame = decodeClientFrameV2(payload);
53
57
  // Pair requests have one owner in installOwnerRouter. Letting an active
54
58
  // session binding process retries would duplicate or misroute replies.
55
59
  if (frame.type === "pair_request")
@@ -85,16 +89,8 @@ export class V2PeerChannel {
85
89
  }
86
90
  }
87
91
  export function parseIncomingRoute(line, host, ownerId) {
88
- let route;
89
- try {
90
- route = JSON.parse(line);
91
- }
92
- catch {
93
- return null;
94
- }
95
- if (route.type !== "route" ||
96
- (route.purpose !== "pairing" && route.purpose !== "session") ||
97
- typeof route.ct !== "string" ||
92
+ const route = decodeRoute(parseJson(line));
93
+ if (!route ||
98
94
  route.device_id !== host.deviceId ||
99
95
  route.endpoint_id !== host.endpointId ||
100
96
  route.runtime_instance_id !== host.runtimeInstanceId ||
@@ -1 +1 @@
1
- {"version":3,"file":"peer_channel.js","sourceRoot":"","sources":["../../src/transport/peer_channel.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GAGpB,MAAM,yBAAyB,CAAC;AA4BjC;;;;GAIG;AACH,MAAM,OAAO,aAAa;IAIL;IACA;IACA;IACA;IANF,WAAW,CAAa;IAEzC,YACmB,KAAkB,EAClB,OAAe,EACf,IAAuB,EACvB,SAAqC;QAHrC,UAAK,GAAL,KAAK,CAAa;QAClB,YAAO,GAAP,OAAO,CAAQ;QACf,SAAI,GAAJ,IAAI,CAAmB;QACvB,cAAS,GAAT,SAAS,CAA4B;QAEtD,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrD,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,GAAgB;QACrB,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC7B,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBACpF,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAC7B,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;gBACjC,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB;gBAChD,eAAe,EAAE,IAAI,CAAC,OAAO;gBAC7B,EAAE;aACkB,CAAC,CAAC,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,oEAAoE;YACpE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,MAAM,CAAC,IAAY;QACzB,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YACpF,wEAAwE;YACxE,uEAAuE;YACvE,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;gBAAE,OAAO;YAC1C,MAAM,eAAe,GAAiB,SAAS,CAAC;YAChD,IAAI,KAAK,CAAC,OAAO,KAAK,eAAe;gBAAE,OAAO;YAC9C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,EAAU;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAA4B,CAAC;YAC9F,MAAM,EAAE,GAAG,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3D,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YAClF,IAAI,CAAC,EAAE;gBAAE,OAAO;YAChB,IAAI,CAAC,MAAM,CAAC;gBACV,gBAAgB,EAAE,CAAC;gBACnB,IAAI,EAAE,gBAAgB;gBACtB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,WAAW,EAAE,EAAE;gBACf,IAAI,EAAE,2BAA2B;gBACjC,OAAO,EAAE,yBAAyB;aACnC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,IAAuB,EACvB,OAAgB;IAEhB,IAAI,KAAiB,CAAC;IACtB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAe,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IACE,KAAK,CAAC,IAAI,KAAK,OAAO;QACtB,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;QAC5D,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;QAC5B,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,QAAQ;QACjC,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,UAAU;QACrC,KAAK,CAAC,mBAAmB,KAAK,IAAI,CAAC,iBAAiB;QACpD,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ;QACzC,KAAK,CAAC,eAAe,KAAK,SAAS,EACnC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,eAAe,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAC5E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,KAAkB,EAClB,IAAuB,EACvB,OAAe,EACf,OAAqB,EACrB,EAAU;IAEV,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACxB,IAAI,EAAE,OAAO;QACb,OAAO;QACP,SAAS,EAAE,IAAI,CAAC,QAAQ;QACxB,WAAW,EAAE,IAAI,CAAC,UAAU;QAC5B,mBAAmB,EAAE,IAAI,CAAC,iBAAiB;QAC3C,eAAe,EAAE,OAAO;QACxB,EAAE;KACkB,CAAC,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"peer_channel.js","sourceRoot":"","sources":["../../src/transport/peer_channel.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,8 @@
1
1
  import { EventEmitter } from "node:events";
2
+ import { type EndpointMetadata as WireEndpointMetadata } from "../vendor/protocol/outer/index.js";
2
3
  import type { Ed25519Keypair } from "../pairing/crypto.js";
3
4
  export type EndpointMetadata = {
4
- kind: "daemon" | "interactive";
5
- name?: string;
6
- cwd?: string;
7
- pid?: number;
8
- started_at?: number;
9
- model?: string;
10
- thinking?: string;
11
- working?: boolean;
5
+ [Key in keyof WireEndpointMetadata]: Exclude<WireEndpointMetadata[Key], null>;
12
6
  };
13
7
  export type HostConnectOptions = {
14
8
  role: "host";