@yefengr/remote-pi 0.9.6 → 0.9.8

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 (52) hide show
  1. package/README.md +11 -2
  2. package/dist/index.js +3 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/protocol/types.d.ts +2 -52
  5. package/dist/protocol/v2/codec.d.ts +5 -25
  6. package/dist/protocol/v2/codec.js +3 -206
  7. package/dist/protocol/v2/codec.js.map +1 -1
  8. package/dist/protocol/v2/index.d.ts +1 -0
  9. package/dist/protocol/v2/index.js +1 -0
  10. package/dist/protocol/v2/index.js.map +1 -1
  11. package/dist/protocol/v2/marker.d.ts +40 -0
  12. package/dist/protocol/v2/marker.js +47 -0
  13. package/dist/protocol/v2/marker.js.map +1 -0
  14. package/dist/protocol/v2/schemas.d.ts +3 -2017
  15. package/dist/protocol/v2/schemas.js +3 -432
  16. package/dist/protocol/v2/schemas.js.map +1 -1
  17. package/dist/runtime/owner_router.js +5 -1
  18. package/dist/runtime/owner_router.js.map +1 -1
  19. package/dist/timeline/user_delivery.d.ts +38 -3
  20. package/dist/timeline/user_delivery.js +120 -6
  21. package/dist/timeline/user_delivery.js.map +1 -1
  22. package/dist/timeline/user_delivery_binding.d.ts +6 -2
  23. package/dist/timeline/user_delivery_binding.js +27 -4
  24. package/dist/timeline/user_delivery_binding.js.map +1 -1
  25. package/dist/timeline/v2_service.d.ts +17 -2
  26. package/dist/timeline/v2_service.js +104 -7
  27. package/dist/timeline/v2_service.js.map +1 -1
  28. package/dist/transport/peer_channel.d.ts +2 -11
  29. package/dist/transport/peer_channel.js +7 -11
  30. package/dist/transport/peer_channel.js.map +1 -1
  31. package/dist/transport/relay_client.d.ts +2 -8
  32. package/dist/transport/relay_client.js +3 -2
  33. package/dist/transport/relay_client.js.map +1 -1
  34. package/dist/vendor/protocol/constants.d.ts +1 -0
  35. package/dist/vendor/protocol/constants.js +1 -0
  36. package/dist/vendor/protocol/encoding.d.ts +9 -0
  37. package/dist/vendor/protocol/encoding.js +66 -0
  38. package/dist/vendor/protocol/outer/codec.d.ts +13 -0
  39. package/dist/vendor/protocol/outer/codec.js +105 -0
  40. package/dist/vendor/protocol/outer/index.d.ts +4 -0
  41. package/dist/vendor/protocol/outer/index.js +4 -0
  42. package/dist/vendor/protocol/outer/types.d.ts +120 -0
  43. package/dist/vendor/protocol/outer/types.js +1 -0
  44. package/dist/vendor/protocol/session/codec.d.ts +41 -0
  45. package/dist/vendor/protocol/session/codec.js +236 -0
  46. package/dist/vendor/protocol/session/frames.d.ts +5750 -0
  47. package/dist/vendor/protocol/session/frames.js +406 -0
  48. package/dist/vendor/protocol/session/index.d.ts +3 -0
  49. package/dist/vendor/protocol/session/index.js +3 -0
  50. package/dist/vendor/protocol/session/schema.d.ts +1060 -0
  51. package/dist/vendor/protocol/session/schema.js +302 -0
  52. package/package.json +17 -25
@@ -1,433 +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 approveTool = z.strictObject({ ...frameBase, type: z.literal("approve_tool"), id, ...clientDirect, tool_call_id: id, decision: z.enum(["allow", "deny"]) });
292
- export const ClientFrameSchema = z.union([
293
- pairRequest, sessionHello, userMessage, userMessageObserved, sessionSync, ping, cancel,
294
- sessionNew, sessionCompact, modelSet, thinkingSet, listModels, queuedSet, queuedClear,
295
- approveTool, extensionUiResponse,
296
- ]);
297
- const pairOk = z.strictObject({
298
- ...frameBase, type: z.literal("pair_ok"), in_reply_to: id,
299
- session_name: boundedText, session_started_at: timestamp, endpoint_id: id,
300
- harness: harness.optional(), hostname: boundedText.optional(),
301
- });
302
- const pairError = z.strictObject({
303
- ...frameBase, type: z.literal("pair_error"), in_reply_to: id,
304
- code: z.enum(["token_expired", "token_consumed", "token_unknown", "internal_error"]), message: nonEmptyText,
305
- });
306
- const sessionReady = z.strictObject({
307
- ...frameBase, type: z.literal("session_ready"), in_reply_to: id, ...responseDirect,
308
- session_id: id, history_generation: id, self_sender_ref: id, head_seq: timelineHead,
309
- });
310
- const startedMessage = z.strictObject({
311
- id, group_id: id, blocks: z.array(userBlock).max(MAX_ARRAY_ITEMS),
312
- origin: z.enum(["pwa", "extension", "unknown"]), sender_ref: id.optional(), delivery: z.enum(["normal", "queued", "unknown"]),
313
- }).superRefine((value, ctx) => {
314
- if (value.origin === "pwa" && value.sender_ref === undefined) {
315
- ctx.addIssue({ code: "custom", path: ["sender_ref"], message: "pwa user messages require sender_ref" });
316
- }
317
- if (value.origin !== "pwa" && value.sender_ref !== undefined) {
318
- ctx.addIssue({ code: "custom", path: ["sender_ref"], message: "non-pwa user messages must not include sender_ref" });
319
- }
320
- });
321
- const userMessageStarted = z.strictObject({
322
- ...frameBase, type: z.literal("user_message_started"), ...responseDirect, in_reply_to: id,
323
- session_id: id, history_generation: id, message: startedMessage,
324
- });
325
- const userMessageStatus = z.union([
326
- 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") }),
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("accepted"), message_id: id.optional(), group_id: id.optional() }),
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("committed"), message_id: id, 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("unknown_delivery") }),
330
- ]);
331
- const timelineEventFrame = z.strictObject({ ...frameBase, type: z.literal("timeline_event"), ...broadcastBase, event: SequencedTimelineEventSchema });
332
- export const TimelineEventFragmentSchema = z.strictObject({
333
- ...frameBase, type: z.literal("timeline_event_fragment"), ...broadcastBase,
334
- event_id: id, index: nonNegativeInt, data_base64: base64, final: z.boolean(),
335
- });
336
- export const HistoryFragmentSchema = z.strictObject({ event_id: id, index: nonNegativeInt, data_base64: base64, final: z.boolean() });
337
- const historyFragment = HistoryFragmentSchema;
338
- const historyChunkBase = {
339
- ...frameBase, type: z.literal("session_history_chunk"), ...responseDirect,
340
- in_reply_to: id, session_id: id, history_generation: id, snapshot_head: id,
341
- chunk_index: nonNegativeInt, events: z.array(SequencedTimelineEventSchema).max(MAX_ARRAY_ITEMS),
342
- fragments: z.array(historyFragment).max(MAX_ARRAY_ITEMS),
343
- };
344
- const historyChunkTail = {
345
- final_chunk: z.literal(false), next_before: z.never().optional(), eos: z.never().optional(),
346
- };
347
- const historyChunkEos = {
348
- final_chunk: z.literal(true), eos: z.literal(true), next_before: z.never().optional(),
349
- };
350
- const historyChunkNext = {
351
- final_chunk: z.literal(true), eos: z.literal(false), next_before: safePositiveInt,
352
- };
353
- function validateHistoryChunk(value, ctx) {
354
- const eventIds = new Set(value.events.map((event) => event.event_id));
355
- const fragmentIds = new Set(value.fragments.map((fragment) => fragment.event_id));
356
- for (const eventId of eventIds) {
357
- if (fragmentIds.has(eventId))
358
- ctx.addIssue({ code: "custom", path: ["fragments"], message: "an event cannot be both complete and fragmented" });
359
- }
360
- if (fragmentIds.size !== value.fragments.length)
361
- ctx.addIssue({ code: "custom", path: ["fragments"], message: "fragment event ids must be unique per chunk" });
362
- }
363
- export const SessionHistoryChunkSchema = z.union([
364
- z.strictObject({ ...historyChunkBase, ...historyChunkTail }),
365
- z.strictObject({ ...historyChunkBase, ...historyChunkEos }),
366
- z.strictObject({ ...historyChunkBase, ...historyChunkNext }),
367
- ]).superRefine(validateHistoryChunk);
368
- const protocolErrorFields = {
369
- type: z.literal("protocol_error"),
370
- in_reply_to: id.optional(),
371
- code: z.enum(["protocol_upgrade_required", "invalid_message", "unsupported_type", "invalid_channel", "invalid_generation", "invalid_cursor", "reset_required", "too_large", "internal_error"]),
372
- message: nonEmptyText,
373
- };
374
- const protocolError = z.union([
375
- z.strictObject({ ...frameBase, ...protocolErrorFields, ...responseDirect }),
376
- z.strictObject({ ...frameBase, ...protocolErrorFields }),
377
- ]);
378
- const reset = z.strictObject({
379
- ...frameBase, type: z.literal("reset"), ...responseDirect,
380
- session_id: id, history_generation: id, reason: z.enum(["generation_changed", "branch_changed", "session_replaced", "conflict", "invalid_cursor"]),
381
- });
382
- const pong = z.strictObject({ ...frameBase, type: z.literal("pong"), ...responseDirect, in_reply_to: id });
383
- const cancelled = z.strictObject({ ...frameBase, type: z.literal("cancelled"), ...responseDirect, in_reply_to: id });
384
- const actionOk = z.strictObject({ ...frameBase, type: z.literal("action_ok"), ...responseDirect, in_reply_to: id, action: actionName });
385
- const actionError = z.strictObject({ ...frameBase, type: z.literal("action_error"), ...responseDirect, in_reply_to: id, action: actionName, error: nonEmptyText });
386
- 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() });
387
- const queuedMessageState = z.strictObject({
388
- ...frameBase, type: z.literal("queued_message_state"), ...broadcastBase,
389
- snapshot_id: id,
390
- chunk_index: nonNegativeInt,
391
- final: z.boolean(),
392
- items: z.array(queuedMessageItem).max(MAX_ARRAY_ITEMS),
393
- });
394
- const extensionUiRequest = z.union([
395
- 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() }),
396
- z.strictObject({ ...frameBase, type: z.literal("extension_ui_request"), ...responseDirect, id, method: z.literal("confirm"), title: boundedText, message: boundedText, ask: askEnrichment.optional() }),
397
- z.strictObject({ ...frameBase, type: z.literal("extension_ui_request"), ...responseDirect, id, method: z.literal("input"), title: boundedText, placeholder: boundedText.optional(), ask: askEnrichment.optional() }),
398
- z.strictObject({ ...frameBase, type: z.literal("extension_ui_request"), ...responseDirect, id, method: z.literal("editor"), title: boundedText, prefill: boundedText.optional(), ask: askEnrichment.optional() }),
399
- 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() }),
400
- ]);
401
- const bye = z.strictObject({ ...frameBase, type: z.literal("bye"), ...broadcastBase, reason: z.enum(["peer_stop", "session_replaced", "shutdown"]) });
402
- export const ServerFrameSchema = z.union([
403
- pairOk, pairError, sessionReady, userMessageStarted, userMessageStatus,
404
- timelineEventFrame, TimelinePartialSchema, TimelineEventFragmentSchema, SessionHistoryChunkSchema,
405
- protocolError, reset, pong, cancelled, actionOk, actionError, modelsList, queuedMessageState, extensionUiRequest, bye,
406
- ]);
407
- export const ClientFrameTypes = new Set([
408
- "pair_request", "session_hello", "user_message", "user_message_observed", "session_sync", "ping", "cancel",
409
- "session_new", "session_compact", "model_set", "thinking_set", "list_models", "queued_message_set", "queued_message_clear", "approve_tool", "extension_ui_response",
410
- ]);
411
- export const ServerFrameTypes = new Set([
412
- "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",
413
- ]);
414
- const markerSystemKind = z.enum(["compaction", "branch_summary", "custom"]);
415
- const markerGroupedBase = { version: z.literal(2), event_id: id, group_id: id };
416
- const markerUser = z.strictObject({
417
- ...markerGroupedBase, kind: z.literal("user"), message_id: id.optional(),
418
- origin: z.enum(["pwa", "extension", "unknown"]), delivery: z.enum(["normal", "queued", "unknown"]), sender_ref: id.optional(),
419
- }).superRefine((value, ctx) => {
420
- if (value.message_id !== undefined && value.message_id !== value.event_id) {
421
- ctx.addIssue({ code: "custom", path: ["message_id"], message: "message_id must equal event_id" });
422
- }
423
- if (value.origin === "pwa" && value.sender_ref === undefined) {
424
- ctx.addIssue({ code: "custom", path: ["sender_ref"], message: "pwa marker users require sender_ref" });
425
- }
426
- if (value.origin !== "pwa" && value.sender_ref !== undefined) {
427
- ctx.addIssue({ code: "custom", path: ["sender_ref"], message: "non-pwa marker users must not include sender_ref" });
428
- }
429
- });
430
- const markerGrouped = z.strictObject({ ...markerGroupedBase, kind: z.enum(["assistant", "tool", "provider_error"]) });
431
- const markerSystem = z.strictObject({ version: z.literal(2), event_id: id, kind: markerSystemKind, group_id: id.optional() });
432
- 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";
433
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,11 +1,22 @@
1
1
  import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
- import type { TimelineEvent } from "../protocol/v2/index.js";
2
+ import type { ServerFrame, TimelineEvent } from "../protocol/v2/index.js";
3
3
  import type { Correlation, TimelineStarted } from "./runtime.js";
4
4
  import type { TimelineV2Service } from "./v2_service.js";
5
5
  export declare const USER_DELIVERY_START_TIMEOUT_MS = 30000;
6
6
  export declare const MAX_USER_DELIVERY_ENTRIES = 32;
7
7
  export declare const MAX_USER_DELIVERY_BYTES: number;
8
8
  type UserMessageContent = Parameters<ExtensionAPI["sendUserMessage"]>[0];
9
+ type UserMessageOptions = Parameters<ExtensionAPI["sendUserMessage"]>[1];
10
+ export type QueuedMessageItem = Extract<ServerFrame, {
11
+ type: "queued_message_state";
12
+ }>["items"][number];
13
+ export type UserDeliveryPayload = Readonly<{
14
+ text: string;
15
+ images?: readonly Readonly<{
16
+ data: string;
17
+ mime: string;
18
+ }>[];
19
+ }>;
9
20
  export type UserDeliveryScope = {
10
21
  readonly ownerId: string;
11
22
  readonly sessionId: string;
@@ -15,11 +26,24 @@ export type UserDeliveryScope = {
15
26
  readonly deliveryToken: string;
16
27
  };
17
28
  export type UserDeliveryScopeInput = Omit<UserDeliveryScope, "deliveryToken">;
29
+ export type UserDeliveryEnqueueResult = "queued" | "duplicate" | "conflict" | "rejected" | false;
30
+ export type UserDeliverySteerResult = {
31
+ kind: "sent";
32
+ scope: UserDeliveryScope;
33
+ } | {
34
+ kind: "failed";
35
+ scope: UserDeliveryScope;
36
+ } | {
37
+ kind: "missing";
38
+ };
18
39
  export type UserDeliveryQueueOptions = {
19
40
  isIdle: () => boolean;
20
41
  isCurrent: (scope: UserDeliveryScope) => boolean;
21
- send: (content: UserMessageContent, correlation: Correlation) => void;
42
+ send: (content: UserMessageContent, correlation: Correlation, options?: UserMessageOptions) => void;
22
43
  onUnknownDelivery: (scope: UserDeliveryScope) => void;
44
+ onQueueChanged?: (scope: UserDeliveryScope) => void;
45
+ canQueueItem?: (scope: UserDeliveryScopeInput, item: QueuedMessageItem) => boolean;
46
+ clock?: () => number;
23
47
  startTimeoutMs?: number;
24
48
  maxEntries?: number;
25
49
  maxBytes?: number;
@@ -29,6 +53,9 @@ export declare class UserDeliveryQueue {
29
53
  private readonly isCurrent;
30
54
  private readonly send;
31
55
  private readonly onUnknownDelivery;
56
+ private readonly onQueueChanged?;
57
+ private readonly canQueueItem;
58
+ private readonly clock;
32
59
  private readonly startTimeoutMs;
33
60
  private readonly maxEntries;
34
61
  private readonly maxBytes;
@@ -40,7 +67,10 @@ export declare class UserDeliveryQueue {
40
67
  private queuedPayloadCount;
41
68
  private queuedPayloadBytes;
42
69
  constructor(options: UserDeliveryQueueOptions);
43
- enqueue(content: UserMessageContent, correlation: Correlation, scope: UserDeliveryScopeInput): "queued" | "rejected" | false;
70
+ enqueue(content: UserMessageContent, correlation: Correlation, scope: UserDeliveryScopeInput, payload?: UserDeliveryPayload): UserDeliveryEnqueueResult;
71
+ snapshot(ownerId: string, service: TimelineV2Service): QueuedMessageItem[];
72
+ clearQueued(ownerId: string, service: TimelineV2Service, targetId?: string): UserDeliveryScope[];
73
+ steer(ownerId: string, service: TimelineV2Service, targetId: string): UserDeliverySteerResult;
44
74
  scheduleDrain(): void;
45
75
  onUserStarted(started: TimelineStarted): UserDeliveryScope | null;
46
76
  onUserPublished(event: TimelineEvent, correlation: Correlation): UserDeliveryScope | null;
@@ -51,11 +81,16 @@ export declare class UserDeliveryQueue {
51
81
  private failBeforeStart;
52
82
  private trimLateRecords;
53
83
  private clearWhere;
84
+ private rescheduleAfterMutation;
85
+ private findTarget;
86
+ private matches;
87
+ private itemFor;
54
88
  private jobFor;
55
89
  private isCurrentScope;
56
90
  private releasePayload;
57
91
  private clearTimer;
58
92
  private remove;
93
+ private notifyQueueChanged;
59
94
  private cancelScheduledDrain;
60
95
  }
61
96
  export {};