@markusylisiurunen/tau 0.3.8 → 0.3.10

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 (107) hide show
  1. package/README.md +41 -3
  2. package/dist/core/cli.js +3 -0
  3. package/dist/core/cli.js.map +1 -1
  4. package/dist/core/config/content_loader.js +1 -3
  5. package/dist/core/config/content_loader.js.map +1 -1
  6. package/dist/core/config/index.js +1 -1
  7. package/dist/core/config/index.js.map +1 -1
  8. package/dist/core/config/schema.js +68 -0
  9. package/dist/core/config/schema.js.map +1 -1
  10. package/dist/core/diff_review/index.js +2 -0
  11. package/dist/core/diff_review/index.js.map +1 -1
  12. package/dist/core/diff_review/result_text.js +33 -0
  13. package/dist/core/diff_review/result_text.js.map +1 -0
  14. package/dist/core/diff_review/tool.js +107 -0
  15. package/dist/core/diff_review/tool.js.map +1 -0
  16. package/dist/core/index.js +2 -1
  17. package/dist/core/index.js.map +1 -1
  18. package/dist/core/nook/cli.js +196 -0
  19. package/dist/core/nook/cli.js.map +1 -0
  20. package/dist/core/nook/client.js +164 -0
  21. package/dist/core/nook/client.js.map +1 -0
  22. package/dist/core/nook/deploy.js +116 -0
  23. package/dist/core/nook/deploy.js.map +1 -0
  24. package/dist/core/nook/index.js +5 -0
  25. package/dist/core/nook/index.js.map +1 -0
  26. package/dist/core/nook/setup.js +270 -0
  27. package/dist/core/nook/setup.js.map +1 -0
  28. package/dist/core/nook/validation.js +149 -0
  29. package/dist/core/nook/validation.js.map +1 -0
  30. package/dist/core/personas.js +12 -2
  31. package/dist/core/personas.js.map +1 -1
  32. package/dist/core/runtime/chat_runtime.js +1 -0
  33. package/dist/core/runtime/chat_runtime.js.map +1 -1
  34. package/dist/core/session/core_session.js.map +1 -1
  35. package/dist/core/session/runner.js +3 -2
  36. package/dist/core/session/runner.js.map +1 -1
  37. package/dist/core/session/session_engine.js +56 -13
  38. package/dist/core/session/session_engine.js.map +1 -1
  39. package/dist/core/telegram/adapter.js +88 -5
  40. package/dist/core/telegram/adapter.js.map +1 -1
  41. package/dist/core/telegram/session_manager.js +11 -0
  42. package/dist/core/telegram/session_manager.js.map +1 -1
  43. package/dist/core/tools/catalog.js +3 -3
  44. package/dist/core/tools/catalog.js.map +1 -1
  45. package/dist/core/tools/nook.js +175 -0
  46. package/dist/core/tools/nook.js.map +1 -0
  47. package/dist/core/tools/registry.js.map +1 -1
  48. package/dist/core/tools/tool_names.js +2 -1
  49. package/dist/core/tools/tool_names.js.map +1 -1
  50. package/dist/core/version.js +1 -1
  51. package/dist/core/version.js.map +1 -1
  52. package/dist/execution/cloudflare_sandbox_execution_environment.js +0 -4
  53. package/dist/execution/cloudflare_sandbox_execution_environment.js.map +1 -1
  54. package/dist/execution/fly_sprite_execution_environment.js +0 -4
  55. package/dist/execution/fly_sprite_execution_environment.js.map +1 -1
  56. package/dist/execution/local_execution_environment.js +1 -3
  57. package/dist/execution/local_execution_environment.js.map +1 -1
  58. package/dist/execution/tool_backend_execution_environment.js +1 -1
  59. package/dist/execution/tool_backend_execution_environment.js.map +1 -1
  60. package/dist/host/client_tool_broker.js +245 -0
  61. package/dist/host/client_tool_broker.js.map +1 -0
  62. package/dist/host/local_session_host.js +19 -10
  63. package/dist/host/local_session_host.js.map +1 -1
  64. package/dist/host/session_protocol_handler.js +54 -1
  65. package/dist/host/session_protocol_handler.js.map +1 -1
  66. package/dist/main.js +30 -12
  67. package/dist/main.js.map +1 -1
  68. package/dist/nook/README.md +96 -0
  69. package/dist/nook/worker/index.js +767 -0
  70. package/dist/nook/worker/index.js.map +1 -0
  71. package/dist/protocol/session_protocol.d.ts +52 -3
  72. package/dist/protocol/session_protocol.js +142 -2
  73. package/dist/protocol/session_protocol.js.map +1 -1
  74. package/dist/sdk/client.js +6 -13
  75. package/dist/sdk/client.js.map +1 -1
  76. package/dist/sdk/session.d.ts +2 -2
  77. package/dist/sdk/session.js +77 -5
  78. package/dist/sdk/session.js.map +1 -1
  79. package/dist/sdk/types.d.ts +14 -1
  80. package/dist/transport/in_process_session_transport.js +16 -1
  81. package/dist/transport/in_process_session_transport.js.map +1 -1
  82. package/dist/transport/session_protocol_transport_helpers.js +12 -0
  83. package/dist/transport/session_protocol_transport_helpers.js.map +1 -1
  84. package/dist/transport/session_transport.d.ts +3 -1
  85. package/dist/transport/stdio_session_transport.d.ts +3 -1
  86. package/dist/transport/stdio_session_transport.js +16 -1
  87. package/dist/transport/stdio_session_transport.js.map +1 -1
  88. package/dist/transport/websocket_session_transport.d.ts +3 -1
  89. package/dist/transport/websocket_session_transport.js +16 -1
  90. package/dist/transport/websocket_session_transport.js.map +1 -1
  91. package/dist/tui/chat_controller/diff_review_service.js +116 -19
  92. package/dist/tui/chat_controller/diff_review_service.js.map +1 -1
  93. package/dist/tui/chat_controller/diff_review_user_message.js +11 -14
  94. package/dist/tui/chat_controller/diff_review_user_message.js.map +1 -1
  95. package/dist/tui/index.js +1 -1
  96. package/dist/tui/index.js.map +1 -1
  97. package/dist/tui/session_chat_app.js +26 -1
  98. package/dist/tui/session_chat_app.js.map +1 -1
  99. package/dist/tui/session_chat_controller.js +16 -8
  100. package/dist/tui/session_chat_controller.js.map +1 -1
  101. package/dist/tui/tool_ui_router.js +0 -38
  102. package/dist/tui/tool_ui_router.js.map +1 -1
  103. package/dist/tui/ui/tool_ui_registry.js +45 -170
  104. package/dist/tui/ui/tool_ui_registry.js.map +1 -1
  105. package/package.json +3 -2
  106. package/dist/core/tools/diff_review.js +0 -369
  107. package/dist/core/tools/diff_review.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nook/worker/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { Message, TextContent, ThinkingContent, ToolCall } from "@earendil-works/pi-ai";
2
2
  export declare const SESSION_PROTOCOL_VERSION: 1;
3
- export declare const SESSION_PROTOCOL_METHODS: readonly ["initialize", "session.create", "session.list", "session.observe", "session.unobserve", "session.record", "session.submit", "session.queue", "session.steer", "session.retry", "session.exec", "session.interrupt", "session.snapshot", "session.setRisk", "session.setReasoning", "session.setPersona", "session.resolvePrompt", "session.autocompletePaths", "session.reload", "session.compact", "session.prune", "session.rewind", "session.terminateSubagent", "session.ephemeral.create", "session.ephemeral.submit", "session.ephemeral.close"];
3
+ export declare const SESSION_PROTOCOL_METHODS: readonly ["initialize", "session.create", "session.list", "session.observe", "session.unobserve", "session.record", "session.submit", "session.queue", "session.steer", "session.retry", "session.exec", "session.interrupt", "session.snapshot", "session.setRisk", "session.setReasoning", "session.setPersona", "session.resolvePrompt", "session.autocompletePaths", "session.reload", "session.compact", "session.prune", "session.rewind", "session.terminateSubagent", "session.ephemeral.create", "session.ephemeral.submit", "session.ephemeral.close", "session.clientTool.ack", "session.clientTool.result"];
4
4
  export type SessionProtocolMethod = (typeof SESSION_PROTOCOL_METHODS)[number];
5
5
  export declare const SESSION_PROTOCOL_ERROR_CODES: {
6
6
  readonly parseError: "parse_error";
@@ -13,10 +13,17 @@ export declare const SESSION_PROTOCOL_ERROR_CODES: {
13
13
  };
14
14
  export type SessionProtocolErrorCode = (typeof SESSION_PROTOCOL_ERROR_CODES)[keyof typeof SESSION_PROTOCOL_ERROR_CODES];
15
15
  export type SessionProtocolRequestId = string;
16
+ export type SessionProtocolClientToolDefinition = {
17
+ name: string;
18
+ description: string;
19
+ parameters: unknown;
20
+ executionTimeoutMs?: number;
21
+ };
16
22
  export type SessionProtocolInitializeParams = {
17
23
  client: {
18
24
  name: string;
19
25
  version: string;
26
+ tools?: SessionProtocolClientToolDefinition[];
20
27
  };
21
28
  };
22
29
  export type SessionProtocolLocalExecutionEnvironmentInput = {
@@ -116,6 +123,18 @@ export type SessionProtocolEphemeralSubmitParams = SessionProtocolSessionIdParam
116
123
  export type SessionProtocolEphemeralCloseParams = SessionProtocolSessionIdParams & {
117
124
  contextId: string;
118
125
  };
126
+ export type SessionProtocolClientToolAckParams = SessionProtocolSessionIdParams & {
127
+ callId: string;
128
+ };
129
+ export type SessionProtocolClientToolResultParams = SessionProtocolSessionIdParams & {
130
+ callId: string;
131
+ } & ({
132
+ ok: true;
133
+ content: string;
134
+ } | {
135
+ ok: false;
136
+ error: string;
137
+ });
119
138
  export type SessionProtocolParamsByMethod = {
120
139
  initialize: SessionProtocolInitializeParams;
121
140
  "session.create": SessionProtocolCreateParams;
@@ -143,6 +162,8 @@ export type SessionProtocolParamsByMethod = {
143
162
  "session.ephemeral.create": SessionProtocolEphemeralCreateParams;
144
163
  "session.ephemeral.submit": SessionProtocolEphemeralSubmitParams;
145
164
  "session.ephemeral.close": SessionProtocolEphemeralCloseParams;
165
+ "session.clientTool.ack": SessionProtocolClientToolAckParams;
166
+ "session.clientTool.result": SessionProtocolClientToolResultParams;
146
167
  };
147
168
  export type SessionProtocolInitializeResult = {
148
169
  protocolVersion: typeof SESSION_PROTOCOL_VERSION;
@@ -454,6 +475,12 @@ export type SessionProtocolEphemeralSubmitResult = {
454
475
  export type SessionProtocolEphemeralCloseResult = {
455
476
  closed: boolean;
456
477
  };
478
+ export type SessionProtocolClientToolAckResult = {
479
+ accepted: boolean;
480
+ };
481
+ export type SessionProtocolClientToolResultResult = {
482
+ accepted: boolean;
483
+ };
457
484
  export type SessionProtocolResultByMethod = {
458
485
  initialize: SessionProtocolInitializeResult;
459
486
  "session.create": SessionProtocolSnapshot;
@@ -481,6 +508,8 @@ export type SessionProtocolResultByMethod = {
481
508
  "session.ephemeral.create": SessionProtocolEphemeralCreateResult;
482
509
  "session.ephemeral.submit": SessionProtocolEphemeralSubmitResult;
483
510
  "session.ephemeral.close": SessionProtocolEphemeralCloseResult;
511
+ "session.clientTool.ack": SessionProtocolClientToolAckResult;
512
+ "session.clientTool.result": SessionProtocolClientToolResultResult;
484
513
  };
485
514
  export type SessionProtocolRequestMessage = {
486
515
  [M in SessionProtocolMethod]: {
@@ -584,6 +613,24 @@ export type SessionProtocolReadyMessage = {
584
613
  type: "ready";
585
614
  methods: SessionProtocolMethod[];
586
615
  };
616
+ export type SessionProtocolClientToolCallMessage = {
617
+ version: typeof SESSION_PROTOCOL_VERSION;
618
+ type: "session.clientTool.call";
619
+ sessionId: string;
620
+ callId: string;
621
+ toolName: string;
622
+ arguments: unknown;
623
+ ackDeadlineMs: number;
624
+ executionDeadlineMs: number;
625
+ };
626
+ export type SessionProtocolClientToolCancelMessage = {
627
+ version: typeof SESSION_PROTOCOL_VERSION;
628
+ type: "session.clientTool.cancel";
629
+ sessionId: string;
630
+ callId: string;
631
+ reason: "aborted" | "timeout" | "client-detached";
632
+ };
633
+ export type SessionProtocolClientToolMessage = SessionProtocolClientToolCallMessage | SessionProtocolClientToolCancelMessage;
587
634
  export type SessionProtocolEphemeralAgentThreadUpdateEvent = {
588
635
  type: "ephemeral-agent.thread-update";
589
636
  contextId: string;
@@ -608,8 +655,8 @@ export type SessionProtocolEphemeralMessage = {
608
655
  sessionId: string;
609
656
  event: SessionProtocolEphemeralEvent;
610
657
  };
611
- export type SessionProtocolOutgoingMessage = SessionProtocolResponseMessage | SessionProtocolDeltaMessage | SessionProtocolEphemeralMessage | SessionProtocolReadyMessage;
612
- export type SessionProtocolParsedOutgoingMessage = SessionProtocolParsedResponseMessage | SessionProtocolDeltaMessage | SessionProtocolEphemeralMessage | SessionProtocolReadyMessage;
658
+ export type SessionProtocolOutgoingMessage = SessionProtocolResponseMessage | SessionProtocolDeltaMessage | SessionProtocolEphemeralMessage | SessionProtocolClientToolMessage | SessionProtocolReadyMessage;
659
+ export type SessionProtocolParsedOutgoingMessage = SessionProtocolParsedResponseMessage | SessionProtocolDeltaMessage | SessionProtocolEphemeralMessage | SessionProtocolClientToolMessage | SessionProtocolReadyMessage;
613
660
  export type SessionProtocolOutgoingParseFailureReason = "invalid_payload" | "empty_line" | "parse_error" | "unsupported_version" | "unsupported_message_type" | "response_invalid_id";
614
661
  export type SessionProtocolOutgoingParseFailure = {
615
662
  ok: false;
@@ -694,5 +741,7 @@ export declare function validateSessionProtocolParams(method: "session.terminate
694
741
  export declare function validateSessionProtocolParams(method: "session.ephemeral.create", params: unknown): SessionProtocolParamsValidationResult<SessionProtocolEphemeralCreateParams>;
695
742
  export declare function validateSessionProtocolParams(method: "session.ephemeral.submit", params: unknown): SessionProtocolParamsValidationResult<SessionProtocolEphemeralSubmitParams>;
696
743
  export declare function validateSessionProtocolParams(method: "session.ephemeral.close", params: unknown): SessionProtocolParamsValidationResult<SessionProtocolEphemeralCloseParams>;
744
+ export declare function validateSessionProtocolParams(method: "session.clientTool.ack", params: unknown): SessionProtocolParamsValidationResult<SessionProtocolClientToolAckParams>;
745
+ export declare function validateSessionProtocolParams(method: "session.clientTool.result", params: unknown): SessionProtocolParamsValidationResult<SessionProtocolClientToolResultParams>;
697
746
  export declare function validateSessionProtocolParams(method: SessionProtocolMethod, params: unknown): SessionProtocolParamsValidationResult<SessionProtocolParamsByMethod[SessionProtocolMethod]>;
698
747
  export declare function validateSessionProtocolResult<M extends SessionProtocolMethod>(method: M, result: unknown): SessionProtocolResultValidationResult<SessionProtocolResultByMethod[M]>;
@@ -27,6 +27,8 @@ export const SESSION_PROTOCOL_METHODS = [
27
27
  "session.ephemeral.create",
28
28
  "session.ephemeral.submit",
29
29
  "session.ephemeral.close",
30
+ "session.clientTool.ack",
31
+ "session.clientTool.result",
30
32
  ];
31
33
  const SESSION_PROTOCOL_METHOD_SET = new Set(SESSION_PROTOCOL_METHODS);
32
34
  function formatZodError(error) {
@@ -86,6 +88,31 @@ const sessionProtocolReadyMessageSchema = z
86
88
  methods: sessionProtocolMethodListSchema,
87
89
  })
88
90
  .strict();
91
+ const sessionProtocolClientToolCallMessageSchema = z
92
+ .object({
93
+ version: z.literal(SESSION_PROTOCOL_VERSION),
94
+ type: z.literal("session.clientTool.call"),
95
+ sessionId: nonEmptyStringSchema,
96
+ callId: nonEmptyStringSchema,
97
+ toolName: nonEmptyStringSchema,
98
+ arguments: z.unknown(),
99
+ ackDeadlineMs: z.number().int().positive(),
100
+ executionDeadlineMs: z.number().int().positive(),
101
+ })
102
+ .strict();
103
+ const sessionProtocolClientToolCancelMessageSchema = z
104
+ .object({
105
+ version: z.literal(SESSION_PROTOCOL_VERSION),
106
+ type: z.literal("session.clientTool.cancel"),
107
+ sessionId: nonEmptyStringSchema,
108
+ callId: nonEmptyStringSchema,
109
+ reason: z.enum(["aborted", "timeout", "client-detached"]),
110
+ })
111
+ .strict();
112
+ const sessionProtocolClientToolMessageSchema = z.discriminatedUnion("type", [
113
+ sessionProtocolClientToolCallMessageSchema,
114
+ sessionProtocolClientToolCancelMessageSchema,
115
+ ]);
89
116
  const sessionProtocolRequestEnvelopeSchema = z
90
117
  .object({
91
118
  version: z.literal(SESSION_PROTOCOL_VERSION),
@@ -98,7 +125,14 @@ const sessionProtocolRequestEnvelopeSchema = z
98
125
  const sessionProtocolOutgoingRoutingSchema = z
99
126
  .object({
100
127
  version: z.literal(SESSION_PROTOCOL_VERSION),
101
- type: z.enum(["ready", "session.delta", "session.ephemeral", "response"]),
128
+ type: z.enum([
129
+ "ready",
130
+ "session.delta",
131
+ "session.ephemeral",
132
+ "session.clientTool.call",
133
+ "session.clientTool.cancel",
134
+ "response",
135
+ ]),
102
136
  })
103
137
  .passthrough();
104
138
  const sessionProtocolIdFieldSchema = z.object({ id: z.unknown() }).passthrough();
@@ -129,12 +163,21 @@ const sessionProtocolResponseErrorSchema = z
129
163
  .strict(),
130
164
  })
131
165
  .strict();
166
+ const sessionProtocolClientToolDefinitionSchema = z
167
+ .object({
168
+ name: nonEmptyStringSchema,
169
+ description: z.string(),
170
+ parameters: z.unknown(),
171
+ executionTimeoutMs: z.number().int().positive().optional(),
172
+ })
173
+ .strict();
132
174
  const sessionProtocolInitializeParamsSchema = z
133
175
  .object({
134
176
  client: z
135
177
  .object({
136
178
  name: nonEmptyStringSchema,
137
179
  version: nonEmptyStringSchema,
180
+ tools: z.array(sessionProtocolClientToolDefinitionSchema).optional(),
138
181
  })
139
182
  .strict(),
140
183
  })
@@ -257,6 +300,30 @@ const sessionProtocolEphemeralCloseParamsSchema = z
257
300
  contextId: nonEmptyStringSchema,
258
301
  })
259
302
  .strict();
303
+ const sessionProtocolClientToolAckParamsSchema = z
304
+ .object({
305
+ sessionId: nonEmptyStringSchema,
306
+ callId: nonEmptyStringSchema,
307
+ })
308
+ .strict();
309
+ const sessionProtocolClientToolResultParamsSchema = z.discriminatedUnion("ok", [
310
+ z
311
+ .object({
312
+ sessionId: nonEmptyStringSchema,
313
+ callId: nonEmptyStringSchema,
314
+ ok: z.literal(true),
315
+ content: z.string(),
316
+ })
317
+ .strict(),
318
+ z
319
+ .object({
320
+ sessionId: nonEmptyStringSchema,
321
+ callId: nonEmptyStringSchema,
322
+ ok: z.literal(false),
323
+ error: z.string(),
324
+ })
325
+ .strict(),
326
+ ]);
260
327
  const absolutePathSchema = nonEmptyStringSchema.refine((value) => value.startsWith("/"));
261
328
  const sessionProtocolLocalExecutionEnvironmentInputSchema = z
262
329
  .object({
@@ -931,6 +998,16 @@ const sessionProtocolEphemeralCloseResultSchema = z
931
998
  closed: z.boolean(),
932
999
  })
933
1000
  .strict();
1001
+ const sessionProtocolClientToolAckResultSchema = z
1002
+ .object({
1003
+ accepted: z.boolean(),
1004
+ })
1005
+ .strict();
1006
+ const sessionProtocolClientToolResultResultSchema = z
1007
+ .object({
1008
+ accepted: z.boolean(),
1009
+ })
1010
+ .strict();
934
1011
  export function isSessionProtocolMethod(value) {
935
1012
  return typeof value === "string" && SESSION_PROTOCOL_METHOD_SET.has(value);
936
1013
  }
@@ -1401,6 +1478,10 @@ export function parseSessionProtocolOutgoingLine(line) {
1401
1478
  if (routing.data.type === "session.ephemeral") {
1402
1479
  return parseSessionProtocolEphemeralMessage(parsed);
1403
1480
  }
1481
+ if (routing.data.type === "session.clientTool.call" ||
1482
+ routing.data.type === "session.clientTool.cancel") {
1483
+ return parseSessionProtocolClientToolMessage(parsed);
1484
+ }
1404
1485
  return parseSessionProtocolResponseMessage(parsed);
1405
1486
  }
1406
1487
  export function validateSessionProtocolParams(method, params) {
@@ -1452,6 +1533,10 @@ export function validateSessionProtocolParams(method, params) {
1452
1533
  return validateEphemeralSubmitParams(params);
1453
1534
  case "session.ephemeral.close":
1454
1535
  return validateEphemeralCloseParams(params);
1536
+ case "session.clientTool.ack":
1537
+ return validateClientToolAckParams(params);
1538
+ case "session.clientTool.result":
1539
+ return validateClientToolResultParams(params);
1455
1540
  }
1456
1541
  }
1457
1542
  export function validateSessionProtocolResult(method, result) {
@@ -1488,6 +1573,10 @@ export function validateSessionProtocolResult(method, result) {
1488
1573
  return validateResult(method, result, sessionProtocolEphemeralSubmitResultSchema);
1489
1574
  case "session.ephemeral.close":
1490
1575
  return validateResult(method, result, sessionProtocolEphemeralCloseResultSchema);
1576
+ case "session.clientTool.ack":
1577
+ return validateResult(method, result, sessionProtocolClientToolAckResultSchema);
1578
+ case "session.clientTool.result":
1579
+ return validateResult(method, result, sessionProtocolClientToolResultResultSchema);
1491
1580
  case "session.list":
1492
1581
  return validateResult(method, result, sessionProtocolListResultSchema);
1493
1582
  case "session.submit":
@@ -1529,7 +1618,7 @@ function validateInitializeParams(params) {
1529
1618
  const message = hasIssue(parsed.error, [], "invalid_type")
1530
1619
  ? "initialize params must be an object with client metadata"
1531
1620
  : hasIssue(parsed.error, ["client"]) || hasIssue(parsed.error, [], "unrecognized_keys")
1532
- ? "initialize.client must be an object with name/version strings"
1621
+ ? "initialize.client must be an object with name/version strings and optional tools"
1533
1622
  : hasIssue(parsed.error, ["client", "name"])
1534
1623
  ? "initialize.client.name must be a non-empty string"
1535
1624
  : hasIssue(parsed.error, ["client", "version"])
@@ -1543,6 +1632,7 @@ function validateInitializeParams(params) {
1543
1632
  client: {
1544
1633
  name: parsed.data.client.name,
1545
1634
  version: parsed.data.client.version,
1635
+ ...(parsed.data.client.tools !== undefined ? { tools: parsed.data.client.tools } : {}),
1546
1636
  },
1547
1637
  },
1548
1638
  };
@@ -1908,6 +1998,38 @@ function validateEphemeralCloseParams(params) {
1908
1998
  }
1909
1999
  return { ok: true, value: parsed.data };
1910
2000
  }
2001
+ function validateClientToolAckParams(params) {
2002
+ const parsed = sessionProtocolClientToolAckParamsSchema.safeParse(params);
2003
+ if (!parsed.success) {
2004
+ const message = hasIssue(parsed.error, [], "invalid_type")
2005
+ ? "session.clientTool.ack params must be an object"
2006
+ : hasIssue(parsed.error, [], "unrecognized_keys")
2007
+ ? "session.clientTool.ack params only support sessionId and callId"
2008
+ : hasIssue(parsed.error, ["sessionId"])
2009
+ ? "session.clientTool.ack params.sessionId must be a non-empty string"
2010
+ : hasIssue(parsed.error, ["callId"])
2011
+ ? "session.clientTool.ack params.callId must be a non-empty string"
2012
+ : `session.clientTool.ack params are invalid: ${formatZodError(parsed.error)}`;
2013
+ return invalidParams(message);
2014
+ }
2015
+ return { ok: true, value: parsed.data };
2016
+ }
2017
+ function validateClientToolResultParams(params) {
2018
+ const parsed = sessionProtocolClientToolResultParamsSchema.safeParse(params);
2019
+ if (!parsed.success) {
2020
+ const message = hasIssue(parsed.error, [], "invalid_type")
2021
+ ? "session.clientTool.result params must be an object"
2022
+ : hasIssue(parsed.error, [], "unrecognized_keys")
2023
+ ? "session.clientTool.result params only support sessionId, callId, ok, content, and error"
2024
+ : hasIssue(parsed.error, ["sessionId"])
2025
+ ? "session.clientTool.result params.sessionId must be a non-empty string"
2026
+ : hasIssue(parsed.error, ["callId"])
2027
+ ? "session.clientTool.result params.callId must be a non-empty string"
2028
+ : `session.clientTool.result params are invalid: ${formatZodError(parsed.error)}`;
2029
+ return invalidParams(message);
2030
+ }
2031
+ return { ok: true, value: parsed.data };
2032
+ }
1911
2033
  function validateCreateParams(params) {
1912
2034
  const parsed = sessionProtocolCreateParamsSchema.safeParse(params);
1913
2035
  if (!parsed.success) {
@@ -2006,6 +2128,24 @@ function parseSessionProtocolDeltaMessage(payload) {
2006
2128
  },
2007
2129
  };
2008
2130
  }
2131
+ function parseSessionProtocolClientToolMessage(payload) {
2132
+ const parsedTypeField = sessionProtocolTypeFieldSchema.safeParse(payload);
2133
+ const messageType = parsedTypeField.success
2134
+ ? parsedTypeField.data.type
2135
+ : null;
2136
+ const fail = (message) => outgoingParseFailure(messageType, null, SESSION_PROTOCOL_ERROR_CODES.invalidRequest, message);
2137
+ const message = sessionProtocolClientToolMessageSchema.safeParse(payload);
2138
+ if (!message.success) {
2139
+ if (hasIssue(message.error, [], "unrecognized_keys")) {
2140
+ return fail(`${String(messageType)} message contains unsupported fields`);
2141
+ }
2142
+ return fail(`invalid ${String(messageType)} message: ${formatZodError(message.error)}`);
2143
+ }
2144
+ return {
2145
+ ok: true,
2146
+ message: message.data,
2147
+ };
2148
+ }
2009
2149
  function parseSessionProtocolEphemeralMessage(payload) {
2010
2150
  const fail = (message) => outgoingParseFailure("session.ephemeral", null, SESSION_PROTOCOL_ERROR_CODES.invalidRequest, message);
2011
2151
  const ephemeralMessage = sessionProtocolEphemeralMessageSchema.safeParse(payload);