@markusylisiurunen/tau 0.2.63 → 0.2.65

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 (62) hide show
  1. package/dist/core/async/cli.js +68 -104
  2. package/dist/core/async/cli.js.map +1 -1
  3. package/dist/core/async/http_protocol.js +119 -8
  4. package/dist/core/async/http_protocol.js.map +1 -1
  5. package/dist/core/async/http_server.js +120 -240
  6. package/dist/core/async/http_server.js.map +1 -1
  7. package/dist/core/async/index.js +1 -1
  8. package/dist/core/async/index.js.map +1 -1
  9. package/dist/core/async/server_config.js +161 -356
  10. package/dist/core/async/server_config.js.map +1 -1
  11. package/dist/core/async/session_manager.js +5 -17
  12. package/dist/core/async/session_manager.js.map +1 -1
  13. package/dist/core/async/telegram.js +268 -171
  14. package/dist/core/async/telegram.js.map +1 -1
  15. package/dist/core/auth/providers/openai_codex.js +4 -9
  16. package/dist/core/auth/providers/openai_codex.js.map +1 -1
  17. package/dist/core/config/content_loader.js +57 -205
  18. package/dist/core/config/content_loader.js.map +1 -1
  19. package/dist/core/config/markdown_frontmatter.js +34 -0
  20. package/dist/core/config/markdown_frontmatter.js.map +1 -0
  21. package/dist/core/config/schema.js +266 -332
  22. package/dist/core/config/schema.js.map +1 -1
  23. package/dist/core/config/skill_parser.js +8 -32
  24. package/dist/core/config/skill_parser.js.map +1 -1
  25. package/dist/core/config/skills_loader.js +32 -18
  26. package/dist/core/config/skills_loader.js.map +1 -1
  27. package/dist/core/events/index.js +1 -0
  28. package/dist/core/events/index.js.map +1 -1
  29. package/dist/core/events/parser.js +115 -0
  30. package/dist/core/events/parser.js.map +1 -0
  31. package/dist/core/index.js +1 -1
  32. package/dist/core/index.js.map +1 -1
  33. package/dist/core/modes/rpc_protocol.js +249 -189
  34. package/dist/core/modes/rpc_protocol.js.map +1 -1
  35. package/dist/core/session/session_engine.js +1 -3
  36. package/dist/core/session/session_engine.js.map +1 -1
  37. package/dist/core/subagents/control_plane.js +13 -2
  38. package/dist/core/subagents/control_plane.js.map +1 -1
  39. package/dist/core/subagents/subagent_engine.js +3 -3
  40. package/dist/core/subagents/subagent_engine.js.map +1 -1
  41. package/dist/core/tools/emit_output.js +3 -2
  42. package/dist/core/tools/emit_output.js.map +1 -1
  43. package/dist/core/tools/registry.js +6 -0
  44. package/dist/core/tools/registry.js.map +1 -1
  45. package/dist/core/tools/send_input_to_agent.js +12 -16
  46. package/dist/core/tools/send_input_to_agent.js.map +1 -1
  47. package/dist/core/tools/spawn_agent.js +25 -30
  48. package/dist/core/tools/spawn_agent.js.map +1 -1
  49. package/dist/core/tools/terminate_agent.js +10 -14
  50. package/dist/core/tools/terminate_agent.js.map +1 -1
  51. package/dist/core/tools/wait_for_agent.js +10 -14
  52. package/dist/core/tools/wait_for_agent.js.map +1 -1
  53. package/dist/core/utils/mistral_transcription.js +13 -21
  54. package/dist/core/utils/mistral_transcription.js.map +1 -1
  55. package/dist/core/utils/parallel_api.js +15 -19
  56. package/dist/core/utils/parallel_api.js.map +1 -1
  57. package/dist/core/utils/zod.js +7 -0
  58. package/dist/core/utils/zod.js.map +1 -1
  59. package/dist/core/version.js +1 -1
  60. package/dist/tui/chat_controller/session_maintenance_service.js +98 -171
  61. package/dist/tui/chat_controller/session_maintenance_service.js.map +1 -1
  62. package/package.json +1 -1
@@ -1,4 +1,6 @@
1
- import { CORE_EVENT_VERSION, } from "../events/types.js";
1
+ import { z } from "zod";
2
+ import { CORE_EVENT_VERSION, safeParseCoreEventEnvelope, } from "../events/index.js";
3
+ import { formatZodError } from "../utils/zod.js";
2
4
  export const RPC_PROTOCOL_VERSION = 1;
3
5
  export const RPC_METHODS = [
4
6
  "initialize",
@@ -17,6 +19,86 @@ export const RPC_ERROR_CODES = {
17
19
  internalError: "internal_error",
18
20
  };
19
21
  const EMPTY_OBJECT = Object.freeze({});
22
+ const rpcMethodSchema = z.enum(RPC_METHODS);
23
+ const rpcErrorCodeSchema = z.enum(Object.values(RPC_ERROR_CODES));
24
+ const rpcRequestIdSchema = z.union([z.string(), z.number()]);
25
+ const nullableRpcRequestIdSchema = rpcRequestIdSchema.nullable();
26
+ const rpcReadyMessageSchema = z
27
+ .object({
28
+ version: z.literal(RPC_PROTOCOL_VERSION),
29
+ type: z.literal("ready"),
30
+ sessionId: z.string(),
31
+ methods: z.array(rpcMethodSchema),
32
+ coreEventVersion: z.literal(CORE_EVENT_VERSION),
33
+ })
34
+ .strict();
35
+ const rpcRequestEnvelopeSchema = z
36
+ .object({
37
+ version: z.literal(RPC_PROTOCOL_VERSION),
38
+ type: z.literal("request"),
39
+ id: rpcRequestIdSchema,
40
+ method: z.string(),
41
+ params: z.unknown().optional(),
42
+ })
43
+ .strict();
44
+ const rpcOutgoingRoutingSchema = z
45
+ .object({
46
+ version: z.literal(RPC_PROTOCOL_VERSION),
47
+ type: z.enum(["ready", "event", "response"]),
48
+ })
49
+ .passthrough();
50
+ const rpcEventMessageSchema = z
51
+ .object({
52
+ version: z.literal(RPC_PROTOCOL_VERSION),
53
+ type: z.literal("event"),
54
+ event: z.unknown(),
55
+ requestId: rpcRequestIdSchema.optional(),
56
+ })
57
+ .strict();
58
+ const rpcIdFieldSchema = z.object({ id: z.unknown() }).passthrough();
59
+ const rpcVersionFieldSchema = z.object({ version: z.unknown() }).passthrough();
60
+ const rpcTypeFieldSchema = z.object({ type: z.unknown() }).passthrough();
61
+ const rpcResponseSuccessSchema = z
62
+ .object({
63
+ version: z.literal(RPC_PROTOCOL_VERSION),
64
+ type: z.literal("response"),
65
+ id: rpcRequestIdSchema,
66
+ ok: z.literal(true),
67
+ result: z.unknown(),
68
+ })
69
+ .strict();
70
+ const rpcResponseErrorSchema = z
71
+ .object({
72
+ version: z.literal(RPC_PROTOCOL_VERSION),
73
+ type: z.literal("response"),
74
+ id: nullableRpcRequestIdSchema,
75
+ ok: z.literal(false),
76
+ error: z
77
+ .object({
78
+ code: rpcErrorCodeSchema,
79
+ message: z.string(),
80
+ data: z.unknown().optional(),
81
+ })
82
+ .strict(),
83
+ })
84
+ .strict();
85
+ const rpcInitializeParamsSchema = z
86
+ .object({
87
+ client: z
88
+ .object({
89
+ name: z.string().trim().min(1),
90
+ version: z.string().trim().min(1),
91
+ })
92
+ .strict(),
93
+ })
94
+ .strict();
95
+ const rpcSessionSubmitParamsSchema = z
96
+ .object({
97
+ text: z.string(),
98
+ historyEntryId: z.string().optional(),
99
+ })
100
+ .strict();
101
+ const rpcEmptyParamsSchema = z.object({}).strict();
20
102
  export function isRpcMethod(value) {
21
103
  return typeof value === "string" && RPC_METHODS.includes(value);
22
104
  }
@@ -83,63 +165,76 @@ export function parseRpcRequestLine(line) {
83
165
  }),
84
166
  };
85
167
  }
86
- if (!isRecord(parsed)) {
87
- return {
88
- ok: false,
89
- id: null,
90
- error: createRpcError(RPC_ERROR_CODES.invalidRequest, "request must be a JSON object"),
91
- };
92
- }
93
- const maybeId = parseRequestId(parsed.id);
94
- if (!maybeId.ok) {
95
- return {
96
- ok: false,
97
- id: null,
98
- error: createRpcError(RPC_ERROR_CODES.invalidRequest, "request id must be a string or number"),
99
- };
100
- }
101
- const id = maybeId.id;
102
- if (!hasOnlyKeys(parsed, ["version", "type", "id", "method", "params"])) {
103
- return {
104
- ok: false,
105
- id,
106
- error: createRpcError(RPC_ERROR_CODES.invalidRequest, "request contains unsupported top-level fields"),
107
- };
108
- }
109
- if (parsed.version !== RPC_PROTOCOL_VERSION) {
110
- return {
111
- ok: false,
112
- id,
113
- error: createRpcError(RPC_ERROR_CODES.invalidRequest, `unsupported rpc version: ${String(parsed.version)}`),
114
- };
115
- }
116
- if (parsed.type !== "request") {
117
- return {
118
- ok: false,
119
- id,
120
- error: createRpcError(RPC_ERROR_CODES.invalidRequest, 'request.type must be "request"'),
121
- };
122
- }
123
- const method = parsed.method;
124
- if (typeof method !== "string") {
168
+ const parsedIdField = rpcIdFieldSchema.safeParse(parsed);
169
+ const requestIdCandidate = parsedIdField.success
170
+ ? parseNullableRequestId(parsedIdField.data.id)
171
+ : null;
172
+ const requestId = requestIdCandidate?.ok ? requestIdCandidate.id : null;
173
+ const requestEnvelope = rpcRequestEnvelopeSchema.safeParse(parsed);
174
+ if (!requestEnvelope.success) {
175
+ if (hasIssue(requestEnvelope.error, [], "invalid_type")) {
176
+ return {
177
+ ok: false,
178
+ id: null,
179
+ error: createRpcError(RPC_ERROR_CODES.invalidRequest, "request must be a JSON object"),
180
+ };
181
+ }
182
+ if (hasIssue(requestEnvelope.error, ["id"])) {
183
+ return {
184
+ ok: false,
185
+ id: null,
186
+ error: createRpcError(RPC_ERROR_CODES.invalidRequest, "request id must be a string or number"),
187
+ };
188
+ }
189
+ if (hasIssue(requestEnvelope.error, [], "unrecognized_keys")) {
190
+ return {
191
+ ok: false,
192
+ id: requestId,
193
+ error: createRpcError(RPC_ERROR_CODES.invalidRequest, "request contains unsupported top-level fields"),
194
+ };
195
+ }
196
+ if (hasIssue(requestEnvelope.error, ["version"])) {
197
+ const parsedVersionField = rpcVersionFieldSchema.safeParse(parsed);
198
+ const version = parsedVersionField.success ? parsedVersionField.data.version : undefined;
199
+ return {
200
+ ok: false,
201
+ id: requestId,
202
+ error: createRpcError(RPC_ERROR_CODES.invalidRequest, `unsupported rpc version: ${String(version)}`),
203
+ };
204
+ }
205
+ if (hasIssue(requestEnvelope.error, ["type"])) {
206
+ return {
207
+ ok: false,
208
+ id: requestId,
209
+ error: createRpcError(RPC_ERROR_CODES.invalidRequest, 'request.type must be "request"'),
210
+ };
211
+ }
212
+ if (hasIssue(requestEnvelope.error, ["method"])) {
213
+ return {
214
+ ok: false,
215
+ id: requestId,
216
+ error: createRpcError(RPC_ERROR_CODES.invalidRequest, "request.method must be a string"),
217
+ };
218
+ }
125
219
  return {
126
220
  ok: false,
127
- id,
128
- error: createRpcError(RPC_ERROR_CODES.invalidRequest, "request.method must be a string"),
221
+ id: requestId,
222
+ error: createRpcError(RPC_ERROR_CODES.invalidRequest, `request is invalid: ${formatZodError(requestEnvelope.error)}`),
129
223
  };
130
224
  }
225
+ const method = requestEnvelope.data.method;
131
226
  if (!isRpcMethod(method)) {
132
227
  return {
133
228
  ok: false,
134
- id,
229
+ id: requestEnvelope.data.id,
135
230
  error: createRpcError(RPC_ERROR_CODES.methodNotFound, `unsupported method: ${method}`),
136
231
  };
137
232
  }
138
- const params = validateRpcParams(method, parsed.params);
233
+ const params = validateRpcParams(method, requestEnvelope.data.params);
139
234
  if (!params.ok) {
140
235
  return {
141
236
  ok: false,
142
- id,
237
+ id: requestEnvelope.data.id,
143
238
  error: params.error,
144
239
  };
145
240
  }
@@ -148,7 +243,7 @@ export function parseRpcRequestLine(line) {
148
243
  request: {
149
244
  version: RPC_PROTOCOL_VERSION,
150
245
  type: "request",
151
- id,
246
+ id: requestEnvelope.data.id,
152
247
  method,
153
248
  params: params.value,
154
249
  },
@@ -168,22 +263,27 @@ export function parseRpcOutgoingLine(line) {
168
263
  cause: error instanceof Error ? error.message : String(error),
169
264
  }, "parse_error");
170
265
  }
171
- if (!isRecord(parsed)) {
172
- return outgoingParseFailure(null, null, RPC_ERROR_CODES.invalidRequest, "rpc payload must be a JSON object");
173
- }
174
- if (parsed.version !== RPC_PROTOCOL_VERSION) {
175
- return outgoingParseFailure(null, null, RPC_ERROR_CODES.invalidRequest, `unsupported rpc version: ${String(parsed.version)}`, undefined, "unsupported_version");
266
+ const routing = rpcOutgoingRoutingSchema.safeParse(parsed);
267
+ if (!routing.success) {
268
+ if (hasIssue(routing.error, [], "invalid_type")) {
269
+ return outgoingParseFailure(null, null, RPC_ERROR_CODES.invalidRequest, "rpc payload must be a JSON object");
270
+ }
271
+ if (hasIssue(routing.error, ["version"])) {
272
+ const parsedVersionField = rpcVersionFieldSchema.safeParse(parsed);
273
+ const version = parsedVersionField.success ? parsedVersionField.data.version : undefined;
274
+ return outgoingParseFailure(null, null, RPC_ERROR_CODES.invalidRequest, `unsupported rpc version: ${String(version)}`, undefined, "unsupported_version");
275
+ }
276
+ const parsedTypeField = rpcTypeFieldSchema.safeParse(parsed);
277
+ const messageType = parsedTypeField.success ? parsedTypeField.data.type : undefined;
278
+ return outgoingParseFailure(null, null, RPC_ERROR_CODES.invalidRequest, `unsupported rpc message type: ${String(messageType)}`, undefined, "unsupported_message_type");
176
279
  }
177
- if (parsed.type === "ready") {
280
+ if (routing.data.type === "ready") {
178
281
  return parseRpcReadyMessage(parsed);
179
282
  }
180
- if (parsed.type === "event") {
283
+ if (routing.data.type === "event") {
181
284
  return parseRpcEventMessage(parsed);
182
285
  }
183
- if (parsed.type === "response") {
184
- return parseRpcResponseMessage(parsed);
185
- }
186
- return outgoingParseFailure(null, null, RPC_ERROR_CODES.invalidRequest, `unsupported rpc message type: ${String(parsed.type)}`, undefined, "unsupported_message_type");
286
+ return parseRpcResponseMessage(parsed);
187
287
  }
188
288
  export function validateRpcParams(method, params) {
189
289
  switch (method) {
@@ -199,196 +299,161 @@ export function validateRpcParams(method, params) {
199
299
  }
200
300
  }
201
301
  function validateInitializeParams(params) {
202
- if (!isRecord(params) || !hasOnlyKeys(params, ["client"])) {
203
- return invalidParams("initialize params must be an object with client metadata");
204
- }
205
- const client = params.client;
206
- if (!isRecord(client) || !hasOnlyKeys(client, ["name", "version"])) {
207
- return invalidParams("initialize.client must be an object with name/version strings");
208
- }
209
- if (typeof client.name !== "string" || !client.name.trim()) {
210
- return invalidParams("initialize.client.name must be a non-empty string");
211
- }
212
- if (typeof client.version !== "string" || !client.version.trim()) {
213
- return invalidParams("initialize.client.version must be a non-empty string");
302
+ const parsed = rpcInitializeParamsSchema.safeParse(params);
303
+ if (!parsed.success) {
304
+ const message = hasIssue(parsed.error, [], "invalid_type")
305
+ ? "initialize params must be an object with client metadata"
306
+ : hasIssue(parsed.error, ["client"]) || hasIssue(parsed.error, [], "unrecognized_keys")
307
+ ? "initialize.client must be an object with name/version strings"
308
+ : hasIssue(parsed.error, ["client", "name"])
309
+ ? "initialize.client.name must be a non-empty string"
310
+ : hasIssue(parsed.error, ["client", "version"])
311
+ ? "initialize.client.version must be a non-empty string"
312
+ : `initialize params are invalid: ${formatZodError(parsed.error)}`;
313
+ return invalidParams(message);
214
314
  }
215
315
  return {
216
316
  ok: true,
217
317
  value: {
218
318
  client: {
219
- name: client.name.trim(),
220
- version: client.version.trim(),
319
+ name: parsed.data.client.name,
320
+ version: parsed.data.client.version,
221
321
  },
222
322
  },
223
323
  };
224
324
  }
225
325
  function validateSubmitParams(params) {
226
- if (!isRecord(params)) {
227
- return invalidParams("session.submit params must be an object");
228
- }
229
- if (!hasOnlyKeys(params, ["text", "historyEntryId"])) {
230
- return invalidParams("session.submit params only support text and optional historyEntryId");
231
- }
232
- if (typeof params.text !== "string") {
233
- return invalidParams("session.submit params.text must be a string");
234
- }
235
- if (params.historyEntryId !== undefined && typeof params.historyEntryId !== "string") {
236
- return invalidParams("session.submit params.historyEntryId must be a string when provided");
326
+ const parsed = rpcSessionSubmitParamsSchema.safeParse(params);
327
+ if (!parsed.success) {
328
+ const message = hasIssue(parsed.error, [], "invalid_type")
329
+ ? "session.submit params must be an object"
330
+ : hasIssue(parsed.error, [], "unrecognized_keys")
331
+ ? "session.submit params only support text and optional historyEntryId"
332
+ : hasIssue(parsed.error, ["text"])
333
+ ? "session.submit params.text must be a string"
334
+ : hasIssue(parsed.error, ["historyEntryId"])
335
+ ? "session.submit params.historyEntryId must be a string when provided"
336
+ : `session.submit params are invalid: ${formatZodError(parsed.error)}`;
337
+ return invalidParams(message);
237
338
  }
238
339
  return {
239
340
  ok: true,
240
341
  value: {
241
- text: params.text,
242
- ...(params.historyEntryId !== undefined ? { historyEntryId: params.historyEntryId } : {}),
342
+ text: parsed.data.text,
343
+ ...(parsed.data.historyEntryId !== undefined
344
+ ? { historyEntryId: parsed.data.historyEntryId }
345
+ : {}),
243
346
  },
244
347
  };
245
348
  }
246
349
  function validateNoParams(method, params) {
247
- if (!isRecord(params) || Object.keys(params).length !== 0) {
350
+ const parsed = rpcEmptyParamsSchema.safeParse(params);
351
+ if (!parsed.success) {
248
352
  return invalidParams(`${method} params must be an empty object`);
249
353
  }
250
354
  return { ok: true, value: EMPTY_OBJECT };
251
355
  }
252
356
  function parseRpcReadyMessage(payload) {
253
- if (!hasOnlyKeys(payload, ["version", "type", "sessionId", "methods", "coreEventVersion"])) {
254
- return outgoingParseFailure("ready", null, RPC_ERROR_CODES.invalidRequest, "ready message contains unsupported fields");
255
- }
256
- if (typeof payload.sessionId !== "string") {
257
- return outgoingParseFailure("ready", null, RPC_ERROR_CODES.invalidRequest, "ready.sessionId must be a string");
258
- }
259
- if (!Array.isArray(payload.methods) || !payload.methods.every((method) => isRpcMethod(method))) {
260
- return outgoingParseFailure("ready", null, RPC_ERROR_CODES.invalidRequest, "ready.methods must contain supported rpc methods");
261
- }
262
- if (payload.coreEventVersion !== CORE_EVENT_VERSION) {
263
- return outgoingParseFailure("ready", null, RPC_ERROR_CODES.invalidRequest, `unsupported core event version: ${String(payload.coreEventVersion)}`);
357
+ const ready = rpcReadyMessageSchema.safeParse(payload);
358
+ if (!ready.success) {
359
+ return outgoingParseFailure("ready", null, RPC_ERROR_CODES.invalidRequest, `invalid ready message: ${formatZodError(ready.error)}`);
264
360
  }
265
361
  return {
266
362
  ok: true,
267
363
  message: {
268
364
  version: RPC_PROTOCOL_VERSION,
269
365
  type: "ready",
270
- sessionId: payload.sessionId,
271
- methods: [...payload.methods],
366
+ sessionId: ready.data.sessionId,
367
+ methods: [...ready.data.methods],
272
368
  coreEventVersion: CORE_EVENT_VERSION,
273
369
  },
274
370
  };
275
371
  }
276
372
  function parseRpcEventMessage(payload) {
277
- if (!hasOnlyKeys(payload, ["version", "type", "event", "requestId"])) {
278
- return outgoingParseFailure("event", null, RPC_ERROR_CODES.invalidRequest, "event message contains unsupported fields");
373
+ const fail = (message) => outgoingParseFailure("event", null, RPC_ERROR_CODES.invalidRequest, message);
374
+ const eventMessage = rpcEventMessageSchema.safeParse(payload);
375
+ if (!eventMessage.success) {
376
+ if (hasIssue(eventMessage.error, [], "unrecognized_keys")) {
377
+ return fail("event message contains unsupported fields");
378
+ }
379
+ if (hasIssue(eventMessage.error, ["requestId"])) {
380
+ return fail("event.requestId must be a string or number when provided");
381
+ }
382
+ return fail(`invalid event message: ${formatZodError(eventMessage.error)}`);
279
383
  }
280
- const event = parseCoreEventEnvelope(payload.event);
384
+ const event = safeParseCoreEventEnvelope(eventMessage.data.event);
281
385
  if (!event.ok) {
282
- return outgoingParseFailure("event", null, event.error.code, event.error.message, event.error.data);
283
- }
284
- if (payload.requestId !== undefined) {
285
- const requestId = parseRequestId(payload.requestId);
286
- if (!requestId.ok) {
287
- return outgoingParseFailure("event", null, RPC_ERROR_CODES.invalidRequest, "event.requestId must be a string or number when provided");
288
- }
289
- return {
290
- ok: true,
291
- message: {
292
- version: RPC_PROTOCOL_VERSION,
293
- type: "event",
294
- event: event.envelope,
295
- requestId: requestId.id,
296
- },
297
- };
386
+ return fail(event.message);
298
387
  }
299
388
  return {
300
389
  ok: true,
301
390
  message: {
302
391
  version: RPC_PROTOCOL_VERSION,
303
392
  type: "event",
304
- event: event.envelope,
393
+ event: event.value,
394
+ ...(eventMessage.data.requestId !== undefined
395
+ ? { requestId: eventMessage.data.requestId }
396
+ : {}),
305
397
  },
306
398
  };
307
399
  }
308
400
  function parseRpcResponseMessage(payload) {
309
- if (!hasOnlyKeys(payload, ["version", "type", "id", "ok", "result", "error"])) {
310
- return outgoingParseFailure("response", null, RPC_ERROR_CODES.invalidRequest, "response message contains unsupported fields");
311
- }
312
401
  const responseId = parseNullableRequestId(payload.id);
313
402
  const requestId = responseId.ok ? responseId.id : null;
403
+ const fail = (message, reason = "invalid_payload", id = requestId) => outgoingParseFailure("response", id, RPC_ERROR_CODES.invalidRequest, message, undefined, reason);
314
404
  if (!responseId.ok) {
315
- return outgoingParseFailure("response", null, RPC_ERROR_CODES.invalidRequest, "response.id must be a string or number", undefined, "response_invalid_id");
405
+ return fail("response.id must be a string or number", "response_invalid_id", null);
316
406
  }
317
407
  if (payload.ok === true) {
318
- if (!hasOnlyKeys(payload, ["version", "type", "id", "ok", "result"])) {
319
- return outgoingParseFailure("response", requestId, RPC_ERROR_CODES.invalidRequest, "successful response must only include result payload");
320
- }
321
- const correlatedId = parseRequestId(payload.id);
322
- if (!correlatedId.ok) {
323
- return outgoingParseFailure("response", requestId, RPC_ERROR_CODES.invalidRequest, "successful response.id must be a string or number", undefined, "response_invalid_id");
324
- }
325
- if (!("result" in payload)) {
326
- return outgoingParseFailure("response", correlatedId.id, RPC_ERROR_CODES.invalidRequest, "successful response must include result");
408
+ const successResponse = rpcResponseSuccessSchema.safeParse(payload);
409
+ if (!successResponse.success) {
410
+ if (hasIssue(successResponse.error, [], "unrecognized_keys")) {
411
+ return fail("successful response must only include result payload");
412
+ }
413
+ if (hasIssue(successResponse.error, ["result"], "invalid_type")) {
414
+ return fail("successful response must include result");
415
+ }
416
+ if (hasIssue(successResponse.error, ["id"])) {
417
+ return fail("successful response.id must be a string or number", "response_invalid_id");
418
+ }
419
+ return fail(`invalid successful response: ${formatZodError(successResponse.error)}`);
327
420
  }
328
421
  return {
329
422
  ok: true,
330
423
  message: {
331
424
  version: RPC_PROTOCOL_VERSION,
332
425
  type: "response",
333
- id: correlatedId.id,
426
+ id: successResponse.data.id,
334
427
  ok: true,
335
- result: payload.result,
428
+ result: successResponse.data.result,
336
429
  },
337
430
  };
338
431
  }
339
- if (payload.ok === false) {
340
- if (!hasOnlyKeys(payload, ["version", "type", "id", "ok", "error"])) {
341
- return outgoingParseFailure("response", requestId, RPC_ERROR_CODES.invalidRequest, "error response must only include error payload");
432
+ if (payload.ok !== false) {
433
+ return fail("response.ok must be true or false");
434
+ }
435
+ const errorResponse = rpcResponseErrorSchema.safeParse(payload);
436
+ if (!errorResponse.success) {
437
+ if (hasIssue(errorResponse.error, [], "unrecognized_keys")) {
438
+ return fail("error response must only include error payload");
342
439
  }
343
- if (!isRecord(payload.error)) {
344
- return outgoingParseFailure("response", requestId, RPC_ERROR_CODES.invalidRequest, "error response.error must be an object");
440
+ if (hasIssue(errorResponse.error, ["error"])) {
441
+ return fail("error response.error must be an object");
345
442
  }
346
- const code = payload.error.code;
347
- const message = payload.error.message;
348
- if (!isRpcErrorCode(code) || typeof message !== "string") {
349
- return outgoingParseFailure("response", requestId, RPC_ERROR_CODES.invalidRequest, "error response.error must include a valid code and string message");
443
+ if (hasIssue(errorResponse.error, ["error", "code"]) ||
444
+ hasIssue(errorResponse.error, ["error", "message"])) {
445
+ return fail("error response.error must include a valid code and string message");
350
446
  }
351
- return {
352
- ok: true,
353
- message: {
354
- version: RPC_PROTOCOL_VERSION,
355
- type: "response",
356
- id: requestId,
357
- ok: false,
358
- error: {
359
- code,
360
- message,
361
- ...("data" in payload.error ? { data: payload.error.data } : {}),
362
- },
363
- },
364
- };
365
- }
366
- return outgoingParseFailure("response", requestId, RPC_ERROR_CODES.invalidRequest, "response.ok must be true or false");
367
- }
368
- function parseCoreEventEnvelope(value) {
369
- if (!isRecord(value)) {
370
- return {
371
- ok: false,
372
- error: createRpcError(RPC_ERROR_CODES.invalidRequest, "event.event must be a core event envelope"),
373
- };
374
- }
375
- if (value.version !== CORE_EVENT_VERSION) {
376
- return {
377
- ok: false,
378
- error: createRpcError(RPC_ERROR_CODES.invalidRequest, `unsupported core event version: ${String(value.version)}`),
379
- };
380
- }
381
- if (!isRecord(value.event) || typeof value.event.type !== "string") {
382
- return {
383
- ok: false,
384
- error: createRpcError(RPC_ERROR_CODES.invalidRequest, "event.event.event must be a core event object with a string type"),
385
- };
447
+ return fail(`invalid error response: ${formatZodError(errorResponse.error)}`);
386
448
  }
387
449
  return {
388
450
  ok: true,
389
- envelope: {
390
- version: CORE_EVENT_VERSION,
391
- event: value.event,
451
+ message: {
452
+ version: RPC_PROTOCOL_VERSION,
453
+ type: "response",
454
+ id: errorResponse.data.id,
455
+ ok: false,
456
+ error: errorResponse.data.error,
392
457
  },
393
458
  };
394
459
  }
@@ -417,8 +482,10 @@ function outgoingParseFailure(messageType, id, code, message, data, reason = "in
417
482
  error: createRpcError(code, message, data),
418
483
  };
419
484
  }
420
- function isRpcErrorCode(value) {
421
- return (typeof value === "string" && Object.values(RPC_ERROR_CODES).includes(value));
485
+ function hasIssue(error, path = [], code) {
486
+ return error.issues.some((issue) => (code === undefined || issue.code === code) &&
487
+ issue.path.length === path.length &&
488
+ issue.path.every((segment, i) => segment === path[i]));
422
489
  }
423
490
  function invalidParams(message) {
424
491
  return {
@@ -426,11 +493,4 @@ function invalidParams(message) {
426
493
  error: createRpcError(RPC_ERROR_CODES.invalidParams, message),
427
494
  };
428
495
  }
429
- function isRecord(value) {
430
- return typeof value === "object" && value !== null && !Array.isArray(value);
431
- }
432
- function hasOnlyKeys(value, keys) {
433
- const allowed = new Set(keys);
434
- return Object.keys(value).every((key) => allowed.has(key));
435
- }
436
496
  //# sourceMappingURL=rpc_protocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpc_protocol.js","sourceRoot":"","sources":["../../../src/core/modes/rpc_protocol.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,GAGnB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAU,CAAC;AAE/C,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY;IACZ,gBAAgB;IAChB,mBAAmB;IACnB,kBAAkB;IAClB,eAAe;IACf,kBAAkB;CACV,CAAC;AAIX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,UAAU,EAAE,aAAa;IACzB,cAAc,EAAE,iBAAiB;IACjC,cAAc,EAAE,kBAAkB;IAClC,aAAa,EAAE,gBAAgB;IAC/B,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,gBAAgB;CACvB,CAAC;AAsKX,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAA0B,CAAC;AAEhE,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAkB,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAkB,EAAE,OAAe,EAAE,IAAc;IAChF,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,EAAgB,EAChB,MAAoC;IAEpC,OAAO;QACL,OAAO,EAAE,oBAAoB;QAC7B,IAAI,EAAE,UAAU;QAChB,EAAE;QACF,EAAE,EAAE,IAAI;QACR,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,EAAuB,EACvB,IAAkB,EAClB,OAAe,EACf,IAAc;IAEd,OAAO;QACL,OAAO,EAAE,oBAAoB;QAC7B,IAAI,EAAE,UAAU;QAChB,EAAE;QACF,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAwB,EACxB,UAAwC,EAAE;IAE1C,OAAO;QACL,OAAO,EAAE,oBAAoB;QAC7B,IAAI,EAAE,OAAO;QACb,KAAK;QACL,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAA2B;IAC/D,OAAO;QACL,OAAO,EAAE,oBAAoB;QAC7B,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,CAAC,GAAG,WAAW,CAAC;QACzB,gBAAgB,EAAE,kBAAkB;KACrC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAA2B;IAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,KAAK;YACT,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,cAAc,CAAC,eAAe,CAAC,cAAc,EAAE,8BAA8B,CAAC;SACtF,CAAC;IACJ,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,EAAE,EAAE,KAAK;YACT,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,cAAc,CAAC,eAAe,CAAC,UAAU,EAAE,mCAAmC,EAAE;gBACrF,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;SACH,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,cAAc,CAAC,eAAe,CAAC,cAAc,EAAE,+BAA+B,CAAC;SACvF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,cAAc,CACnB,eAAe,CAAC,cAAc,EAC9B,uCAAuC,CACxC;SACF,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IAEtB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,EAAE;YACF,KAAK,EAAE,cAAc,CACnB,eAAe,CAAC,cAAc,EAC9B,+CAA+C,CAChD;SACF,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,KAAK,oBAAoB,EAAE,CAAC;QAC5C,OAAO;YACL,EAAE,EAAE,KAAK;YACT,EAAE;YACF,KAAK,EAAE,cAAc,CACnB,eAAe,CAAC,cAAc,EAC9B,4BAA4B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CACrD;SACF,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,EAAE;YACF,KAAK,EAAE,cAAc,CAAC,eAAe,CAAC,cAAc,EAAE,gCAAgC,CAAC;SACxF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,EAAE;YACF,KAAK,EAAE,cAAc,CAAC,eAAe,CAAC,cAAc,EAAE,iCAAiC,CAAC;SACzF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,EAAE;YACF,KAAK,EAAE,cAAc,CAAC,eAAe,CAAC,cAAc,EAAE,uBAAuB,MAAM,EAAE,CAAC;SACvF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO;YACL,EAAE,EAAE,KAAK;YACT,EAAE;YACF,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE;YACP,OAAO,EAAE,oBAAoB;YAC7B,IAAI,EAAE,SAAS;YACf,EAAE;YACF,MAAM;YACN,MAAM,EAAE,MAAM,CAAC,KAAK;SACA;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,oBAAoB,CACzB,IAAI,EACJ,IAAI,EACJ,eAAe,CAAC,cAAc,EAC9B,0BAA0B,EAC1B,SAAS,EACT,YAAY,CACb,CAAC;IACJ,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,oBAAoB,CACzB,IAAI,EACJ,IAAI,EACJ,eAAe,CAAC,UAAU,EAC1B,+BAA+B,EAC/B;YACE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,EACD,aAAa,CACd,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,OAAO,oBAAoB,CACzB,IAAI,EACJ,IAAI,EACJ,eAAe,CAAC,cAAc,EAC9B,mCAAmC,CACpC,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,KAAK,oBAAoB,EAAE,CAAC;QAC5C,OAAO,oBAAoB,CACzB,IAAI,EACJ,IAAI,EACJ,eAAe,CAAC,cAAc,EAC9B,4BAA4B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EACpD,SAAS,EACT,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,oBAAoB,CACzB,IAAI,EACJ,IAAI,EACJ,eAAe,CAAC,cAAc,EAC9B,iCAAiC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EACtD,SAAS,EACT,0BAA0B,CAC3B,CAAC;AACJ,CAAC;AA8BD,MAAM,UAAU,iBAAiB,CAC/B,MAAiB,EACjB,MAAe;IAEf,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,YAAY;YACf,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAC1C,KAAK,gBAAgB;YACnB,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACtC,KAAK,mBAAmB,CAAC;QACzB,KAAK,kBAAkB,CAAC;QACxB,KAAK,eAAe,CAAC;QACrB,KAAK,kBAAkB;YACrB,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAe;IAC/C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO,aAAa,CAAC,0DAA0D,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,aAAa,CAAC,+DAA+D,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3D,OAAO,aAAa,CAAC,mDAAmD,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACjE,OAAO,aAAa,CAAC,sDAAsD,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE;YACL,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;gBACxB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;aAC/B;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAe;IAC3C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,OAAO,aAAa,CAAC,yCAAyC,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QACrD,OAAO,aAAa,CAAC,qEAAqE,CAAC,CAAC;IAC9F,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,aAAa,CAAC,6CAA6C,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;QACrF,OAAO,aAAa,CAAC,qEAAqE,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,GAAG,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1F;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,MAA2D,EAC3D,MAAe;IAEf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,aAAa,CAAC,GAAG,MAAM,iCAAiC,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAgC;IAC5D,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC;QAC3F,OAAO,oBAAoB,CACzB,OAAO,EACP,IAAI,EACJ,eAAe,CAAC,cAAc,EAC9B,2CAA2C,CAC5C,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,oBAAoB,CACzB,OAAO,EACP,IAAI,EACJ,eAAe,CAAC,cAAc,EAC9B,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC/F,OAAO,oBAAoB,CACzB,OAAO,EACP,IAAI,EACJ,eAAe,CAAC,cAAc,EAC9B,kDAAkD,CACnD,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,gBAAgB,KAAK,kBAAkB,EAAE,CAAC;QACpD,OAAO,oBAAoB,CACzB,OAAO,EACP,IAAI,EACJ,eAAe,CAAC,cAAc,EAC9B,mCAAmC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CACtE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE;YACP,OAAO,EAAE,oBAAoB;YAC7B,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;YAC7B,gBAAgB,EAAE,kBAAkB;SACrC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAgC;IAC5D,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QACrE,OAAO,oBAAoB,CACzB,OAAO,EACP,IAAI,EACJ,eAAe,CAAC,cAAc,EAC9B,2CAA2C,CAC5C,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,oBAAoB,CACzB,OAAO,EACP,IAAI,EACJ,KAAK,CAAC,KAAK,CAAC,IAAI,EAChB,KAAK,CAAC,KAAK,CAAC,OAAO,EACnB,KAAK,CAAC,KAAK,CAAC,IAAI,CACjB,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAClB,OAAO,oBAAoB,CACzB,OAAO,EACP,IAAI,EACJ,eAAe,CAAC,cAAc,EAC9B,0DAA0D,CAC3D,CAAC;QACJ,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI;YACR,OAAO,EAAE;gBACP,OAAO,EAAE,oBAAoB;gBAC7B,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,KAAK,CAAC,QAAQ;gBACrB,SAAS,EAAE,SAAS,CAAC,EAAE;aACxB;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE;YACP,OAAO,EAAE,oBAAoB;YAC7B,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,KAAK,CAAC,QAAQ;SACtB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAgC;IAC/D,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;QAC9E,OAAO,oBAAoB,CACzB,UAAU,EACV,IAAI,EACJ,eAAe,CAAC,cAAc,EAC9B,8CAA8C,CAC/C,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,OAAO,oBAAoB,CACzB,UAAU,EACV,IAAI,EACJ,eAAe,CAAC,cAAc,EAC9B,wCAAwC,EACxC,SAAS,EACT,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;YACrE,OAAO,oBAAoB,CACzB,UAAU,EACV,SAAS,EACT,eAAe,CAAC,cAAc,EAC9B,sDAAsD,CACvD,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACrB,OAAO,oBAAoB,CACzB,UAAU,EACV,SAAS,EACT,eAAe,CAAC,cAAc,EAC9B,mDAAmD,EACnD,SAAS,EACT,qBAAqB,CACtB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,oBAAoB,CACzB,UAAU,EACV,YAAY,CAAC,EAAE,EACf,eAAe,CAAC,cAAc,EAC9B,yCAAyC,CAC1C,CAAC;QACJ,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI;YACR,OAAO,EAAE;gBACP,OAAO,EAAE,oBAAoB;gBAC7B,IAAI,EAAE,UAAU;gBAChB,EAAE,EAAE,YAAY,CAAC,EAAE;gBACnB,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,OAAO,CAAC,MAAsC;aACvD;SACF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;YACpE,OAAO,oBAAoB,CACzB,UAAU,EACV,SAAS,EACT,eAAe,CAAC,cAAc,EAC9B,gDAAgD,CACjD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,oBAAoB,CACzB,UAAU,EACV,SAAS,EACT,eAAe,CAAC,cAAc,EAC9B,wCAAwC,CACzC,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QAChC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzD,OAAO,oBAAoB,CACzB,UAAU,EACV,SAAS,EACT,eAAe,CAAC,cAAc,EAC9B,mEAAmE,CACpE,CAAC;QACJ,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI;YACR,OAAO,EAAE;gBACP,OAAO,EAAE,oBAAoB;gBAC7B,IAAI,EAAE,UAAU;gBAChB,EAAE,EAAE,SAAS;gBACb,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI;oBACJ,OAAO;oBACP,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjE;aACF;SACF,CAAC;IACJ,CAAC;IAED,OAAO,oBAAoB,CACzB,UAAU,EACV,SAAS,EACT,eAAe,CAAC,cAAc,EAC9B,mCAAmC,CACpC,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,KAAc;IAEd,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,cAAc,CACnB,eAAe,CAAC,cAAc,EAC9B,2CAA2C,CAC5C;SACF,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;QACzC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,cAAc,CACnB,eAAe,CAAC,cAAc,EAC9B,mCAAmC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAC3D;SACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,cAAc,CACnB,eAAe,CAAC,cAAc,EAC9B,kEAAkE,CACnE;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,QAAQ,EAAE;YACR,OAAO,EAAE,kBAAkB;YAC3B,KAAK,EAAE,KAAK,CAAC,KAAmC;SACjD;KACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,sBAAsB,CAC7B,KAAc;IAEd,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;AACrC,CAAC;AAED,SAAS,oBAAoB,CAC3B,WAA8C,EAC9C,EAAuB,EACvB,IAAkB,EAClB,OAAe,EACf,IAAc,EACd,SAAwC,iBAAiB;IAEzD,OAAO;QACL,EAAE,EAAE,KAAK;QACT,MAAM;QACN,WAAW;QACX,EAAE;QACF,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAqB,CAAC,CAC5F,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO;QACL,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,cAAc,CAAC,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC;KAC9D,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,WAAW,CAAC,KAA8B,EAAE,IAAc;IACjE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"rpc_protocol.js","sourceRoot":"","sources":["../../../src/core/modes/rpc_protocol.ts"],"names":[],"mappings":"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"}