@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.
- package/README.md +41 -3
- package/dist/core/cli.js +3 -0
- package/dist/core/cli.js.map +1 -1
- package/dist/core/config/content_loader.js +1 -3
- package/dist/core/config/content_loader.js.map +1 -1
- package/dist/core/config/index.js +1 -1
- package/dist/core/config/index.js.map +1 -1
- package/dist/core/config/schema.js +68 -0
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/diff_review/index.js +2 -0
- package/dist/core/diff_review/index.js.map +1 -1
- package/dist/core/diff_review/result_text.js +33 -0
- package/dist/core/diff_review/result_text.js.map +1 -0
- package/dist/core/diff_review/tool.js +107 -0
- package/dist/core/diff_review/tool.js.map +1 -0
- package/dist/core/index.js +2 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/nook/cli.js +196 -0
- package/dist/core/nook/cli.js.map +1 -0
- package/dist/core/nook/client.js +164 -0
- package/dist/core/nook/client.js.map +1 -0
- package/dist/core/nook/deploy.js +116 -0
- package/dist/core/nook/deploy.js.map +1 -0
- package/dist/core/nook/index.js +5 -0
- package/dist/core/nook/index.js.map +1 -0
- package/dist/core/nook/setup.js +270 -0
- package/dist/core/nook/setup.js.map +1 -0
- package/dist/core/nook/validation.js +149 -0
- package/dist/core/nook/validation.js.map +1 -0
- package/dist/core/personas.js +12 -2
- package/dist/core/personas.js.map +1 -1
- package/dist/core/runtime/chat_runtime.js +1 -0
- package/dist/core/runtime/chat_runtime.js.map +1 -1
- package/dist/core/session/core_session.js.map +1 -1
- package/dist/core/session/runner.js +3 -2
- package/dist/core/session/runner.js.map +1 -1
- package/dist/core/session/session_engine.js +56 -13
- package/dist/core/session/session_engine.js.map +1 -1
- package/dist/core/telegram/adapter.js +88 -5
- package/dist/core/telegram/adapter.js.map +1 -1
- package/dist/core/telegram/session_manager.js +11 -0
- package/dist/core/telegram/session_manager.js.map +1 -1
- package/dist/core/tools/catalog.js +3 -3
- package/dist/core/tools/catalog.js.map +1 -1
- package/dist/core/tools/nook.js +175 -0
- package/dist/core/tools/nook.js.map +1 -0
- package/dist/core/tools/registry.js.map +1 -1
- package/dist/core/tools/tool_names.js +2 -1
- package/dist/core/tools/tool_names.js.map +1 -1
- package/dist/core/version.js +1 -1
- package/dist/core/version.js.map +1 -1
- package/dist/execution/cloudflare_sandbox_execution_environment.js +0 -4
- package/dist/execution/cloudflare_sandbox_execution_environment.js.map +1 -1
- package/dist/execution/fly_sprite_execution_environment.js +0 -4
- package/dist/execution/fly_sprite_execution_environment.js.map +1 -1
- package/dist/execution/local_execution_environment.js +1 -3
- package/dist/execution/local_execution_environment.js.map +1 -1
- package/dist/execution/tool_backend_execution_environment.js +1 -1
- package/dist/execution/tool_backend_execution_environment.js.map +1 -1
- package/dist/host/client_tool_broker.js +245 -0
- package/dist/host/client_tool_broker.js.map +1 -0
- package/dist/host/local_session_host.js +19 -10
- package/dist/host/local_session_host.js.map +1 -1
- package/dist/host/session_protocol_handler.js +54 -1
- package/dist/host/session_protocol_handler.js.map +1 -1
- package/dist/main.js +30 -12
- package/dist/main.js.map +1 -1
- package/dist/nook/README.md +96 -0
- package/dist/nook/worker/index.js +767 -0
- package/dist/nook/worker/index.js.map +1 -0
- package/dist/protocol/session_protocol.d.ts +52 -3
- package/dist/protocol/session_protocol.js +142 -2
- package/dist/protocol/session_protocol.js.map +1 -1
- package/dist/sdk/client.js +6 -13
- package/dist/sdk/client.js.map +1 -1
- package/dist/sdk/session.d.ts +2 -2
- package/dist/sdk/session.js +77 -5
- package/dist/sdk/session.js.map +1 -1
- package/dist/sdk/types.d.ts +14 -1
- package/dist/transport/in_process_session_transport.js +16 -1
- package/dist/transport/in_process_session_transport.js.map +1 -1
- package/dist/transport/session_protocol_transport_helpers.js +12 -0
- package/dist/transport/session_protocol_transport_helpers.js.map +1 -1
- package/dist/transport/session_transport.d.ts +3 -1
- package/dist/transport/stdio_session_transport.d.ts +3 -1
- package/dist/transport/stdio_session_transport.js +16 -1
- package/dist/transport/stdio_session_transport.js.map +1 -1
- package/dist/transport/websocket_session_transport.d.ts +3 -1
- package/dist/transport/websocket_session_transport.js +16 -1
- package/dist/transport/websocket_session_transport.js.map +1 -1
- package/dist/tui/chat_controller/diff_review_service.js +116 -19
- package/dist/tui/chat_controller/diff_review_service.js.map +1 -1
- package/dist/tui/chat_controller/diff_review_user_message.js +11 -14
- package/dist/tui/chat_controller/diff_review_user_message.js.map +1 -1
- package/dist/tui/index.js +1 -1
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/session_chat_app.js +26 -1
- package/dist/tui/session_chat_app.js.map +1 -1
- package/dist/tui/session_chat_controller.js +16 -8
- package/dist/tui/session_chat_controller.js.map +1 -1
- package/dist/tui/tool_ui_router.js +0 -38
- package/dist/tui/tool_ui_router.js.map +1 -1
- package/dist/tui/ui/tool_ui_registry.js +45 -170
- package/dist/tui/ui/tool_ui_registry.js.map +1 -1
- package/package.json +3 -2
- package/dist/core/tools/diff_review.js +0 -369
- 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([
|
|
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);
|