@markusylisiurunen/tau 0.3.50 → 0.3.52

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 (105) hide show
  1. package/dist/code_mode/command.js +26 -14
  2. package/dist/code_mode/command.js.map +1 -1
  3. package/dist/code_mode/index.d.ts +2 -1
  4. package/dist/code_mode/index.js +1 -0
  5. package/dist/code_mode/index.js.map +1 -1
  6. package/dist/core/cli.js +0 -11
  7. package/dist/core/cli.js.map +1 -1
  8. package/dist/core/client_tools/command_client_tools.js +236 -151
  9. package/dist/core/client_tools/command_client_tools.js.map +1 -1
  10. package/dist/core/config/schema.js +8 -2
  11. package/dist/core/config/schema.js.map +1 -1
  12. package/dist/core/history/history_manager.js +73 -7
  13. package/dist/core/history/history_manager.js.map +1 -1
  14. package/dist/core/history/local_history_store.js +73 -2
  15. package/dist/core/history/local_history_store.js.map +1 -1
  16. package/dist/core/history/remote_history_client.js +36 -6
  17. package/dist/core/history/remote_history_client.js.map +1 -1
  18. package/dist/core/modes/index.js +0 -1
  19. package/dist/core/modes/index.js.map +1 -1
  20. package/dist/core/static/tau_docs/client-tools.md +212 -12
  21. package/dist/core/static/tau_docs/config-reference.md +1 -1
  22. package/dist/core/static/tau_docs/configuration.md +1 -1
  23. package/dist/core/static/tau_docs/credentials.md +4 -4
  24. package/dist/core/static/tau_docs/history.md +6 -4
  25. package/dist/core/static/tau_docs/index.md +1 -1
  26. package/dist/core/static/tau_docs/node-sdk.md +33 -26
  27. package/dist/core/static/tau_docs/ownership-and-scope.md +3 -4
  28. package/dist/core/static/tau_docs/prompts-and-project-context.md +2 -2
  29. package/dist/core/static/tau_docs/remote-sessions.md +4 -47
  30. package/dist/core/static/tau_docs/security.md +2 -6
  31. package/dist/core/static/tau_docs/session-protocol-methods.md +48 -7
  32. package/dist/core/static/tau_docs/session-protocol.md +18 -18
  33. package/dist/core/static/tau_docs/sessions.md +6 -5
  34. package/dist/core/static/tau_docs/telegram.md +8 -4
  35. package/dist/core/static/tau_docs/tools.md +1 -1
  36. package/dist/core/static/tau_docs/troubleshooting.md +3 -5
  37. package/dist/core/static/tau_docs/tui.md +4 -6
  38. package/dist/core/telegram/adapter.js +226 -18
  39. package/dist/core/telegram/adapter.js.map +1 -1
  40. package/dist/core/telegram/config.js +1 -1
  41. package/dist/core/telegram/config.js.map +1 -1
  42. package/dist/core/telegram/project_preferences.js +42 -12
  43. package/dist/core/telegram/project_preferences.js.map +1 -1
  44. package/dist/core/telegram/runtime.js +6 -1
  45. package/dist/core/telegram/runtime.js.map +1 -1
  46. package/dist/core/telegram/session_manager.js +50 -4
  47. package/dist/core/telegram/session_manager.js.map +1 -1
  48. package/dist/core/telegram/tts.js +137 -0
  49. package/dist/core/telegram/tts.js.map +1 -0
  50. package/dist/core/tools/execution_backend.js +13 -3
  51. package/dist/core/tools/execution_backend.js.map +1 -1
  52. package/dist/core/tools/presentation.js +55 -17
  53. package/dist/core/tools/presentation.js.map +1 -1
  54. package/dist/core/utils/gemini_speech.js +123 -42
  55. package/dist/core/utils/gemini_speech.js.map +1 -1
  56. package/dist/core/utils/gemini_transcription.js +1 -1
  57. package/dist/core/version.js +1 -1
  58. package/dist/execution/cloudflare_sandbox_execution_environment.js +2 -2
  59. package/dist/execution/cloudflare_sandbox_execution_environment.js.map +1 -1
  60. package/dist/execution/fly_sprite_execution_environment.js +2 -2
  61. package/dist/execution/fly_sprite_execution_environment.js.map +1 -1
  62. package/dist/host/client_tool_broker.js +71 -17
  63. package/dist/host/client_tool_broker.js.map +1 -1
  64. package/dist/host/local_session_host.js +2 -2
  65. package/dist/host/local_session_host.js.map +1 -1
  66. package/dist/host/session_host.js.map +1 -1
  67. package/dist/host/session_protocol_handler.js +17 -6
  68. package/dist/host/session_protocol_handler.js.map +1 -1
  69. package/dist/main.js +18 -92
  70. package/dist/main.js.map +1 -1
  71. package/dist/protocol/session_protocol.d.ts +22 -2
  72. package/dist/protocol/session_protocol.js +47 -3
  73. package/dist/protocol/session_protocol.js.map +1 -1
  74. package/dist/sdk/client_tool_command.d.ts +41 -13
  75. package/dist/sdk/client_tool_command.js +157 -39
  76. package/dist/sdk/client_tool_command.js.map +1 -1
  77. package/dist/sdk/client_tool_presentation.d.ts +17 -0
  78. package/dist/sdk/client_tool_presentation.js +9 -0
  79. package/dist/sdk/client_tool_presentation.js.map +1 -0
  80. package/dist/sdk/code_mode.js +10 -1
  81. package/dist/sdk/code_mode.js.map +1 -1
  82. package/dist/sdk/index.d.ts +5 -4
  83. package/dist/sdk/index.js +2 -1
  84. package/dist/sdk/index.js.map +1 -1
  85. package/dist/sdk/session.js +28 -9
  86. package/dist/sdk/session.js.map +1 -1
  87. package/dist/sdk/types.d.ts +11 -1
  88. package/dist/transport/errors.d.ts +0 -11
  89. package/dist/transport/errors.js +0 -12
  90. package/dist/transport/errors.js.map +1 -1
  91. package/dist/transport/index.d.ts +1 -3
  92. package/dist/transport/index.js +1 -2
  93. package/dist/transport/index.js.map +1 -1
  94. package/dist/tui/session_chat_app.js +28 -15
  95. package/dist/tui/session_chat_app.js.map +1 -1
  96. package/dist/tui/session_chat_controller.js +0 -51
  97. package/dist/tui/session_chat_controller.js.map +1 -1
  98. package/dist/tui/speech_playback.js +3 -3
  99. package/dist/tui/speech_playback.js.map +1 -1
  100. package/package.json +2 -2
  101. package/dist/core/modes/rpc_server.js +0 -105
  102. package/dist/core/modes/rpc_server.js.map +0 -1
  103. package/dist/transport/stdio_session_transport.d.ts +0 -48
  104. package/dist/transport/stdio_session_transport.js +0 -338
  105. package/dist/transport/stdio_session_transport.js.map +0 -1
@@ -1,7 +1,14 @@
1
1
  import type { AssistantMessage, Message, TextContent, ThinkingContent, Tool, ToolCall } from "@earendil-works/pi-ai";
2
- export declare const SESSION_PROTOCOL_VERSION: 12;
2
+ export declare const SESSION_PROTOCOL_VERSION: 13;
3
3
  export declare const SESSION_PROTOCOL_MAX_EXEC_CAPTURE_BYTES: number;
4
4
  export declare const SESSION_PROTOCOL_MAX_EXEC_STDIN_BYTES: number;
5
+ export declare const SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_BYTES: number;
6
+ export declare const SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_LABEL_BYTES: number;
7
+ export declare const SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_SUBJECT_BYTES: number;
8
+ export declare const SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_DETAILS = 1024;
9
+ export declare const SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_DETAIL_BYTES: number;
10
+ export declare const SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_METADATA = 1024;
11
+ export declare const SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_METADATA_VALUE_BYTES: number;
5
12
  export declare const SESSION_PROTOCOL_MAX_ATTRIBUTE_VALUE_CHARS = 1024;
6
13
  export declare const SESSION_PROTOCOL_MAX_SUBAGENT_ACTIVITIES = 64;
7
14
  export declare const SESSION_PROTOCOL_MAX_SUBAGENT_SHORT_TEXT_BYTES = 512;
@@ -155,17 +162,30 @@ export type SessionProtocolEphemeralSubmitParams = SessionProtocolSessionIdParam
155
162
  export type SessionProtocolEphemeralCloseParams = SessionProtocolSessionIdParams & {
156
163
  contextId: string;
157
164
  };
165
+ export type SessionProtocolClientToolPresentation = {
166
+ subject?: string;
167
+ subjectWrap?: "word" | "character";
168
+ details?: Array<{
169
+ text: string;
170
+ tone?: "added" | "removed";
171
+ wrap?: "word" | "character";
172
+ }>;
173
+ metadata?: string[];
174
+ };
158
175
  export type SessionProtocolClientToolAckParams = SessionProtocolSessionIdParams & {
159
176
  callId: string;
177
+ presentation?: SessionProtocolClientToolPresentation;
160
178
  };
161
179
  export type SessionProtocolClientToolResultParams = SessionProtocolSessionIdParams & {
162
180
  callId: string;
163
181
  } & ({
164
182
  ok: true;
165
183
  content: string;
184
+ presentation?: SessionProtocolClientToolPresentation;
166
185
  } | {
167
186
  ok: false;
168
187
  error: string;
188
+ presentation?: SessionProtocolClientToolPresentation;
169
189
  });
170
190
  export type SessionProtocolParamsByMethod = {
171
191
  initialize: SessionProtocolInitializeParams;
@@ -890,7 +910,7 @@ export type SessionProtocolClientToolCancelMessage = {
890
910
  type: "session.clientTool.cancel";
891
911
  sessionId: string;
892
912
  callId: string;
893
- reason: "aborted" | "timeout" | "client-detached";
913
+ reason: "aborted" | "timeout" | "client-detached" | "host-failed";
894
914
  };
895
915
  export type SessionProtocolClientToolMessage = SessionProtocolClientToolCallMessage | SessionProtocolClientToolCancelMessage;
896
916
  export type SessionProtocolEphemeralAgentThreadUpdateEvent = {
@@ -1,7 +1,14 @@
1
1
  import { z } from "zod";
2
- export const SESSION_PROTOCOL_VERSION = 12;
2
+ export const SESSION_PROTOCOL_VERSION = 13;
3
3
  export const SESSION_PROTOCOL_MAX_EXEC_CAPTURE_BYTES = 24 * 1024 * 1024;
4
4
  export const SESSION_PROTOCOL_MAX_EXEC_STDIN_BYTES = 16 * 1024 * 1024;
5
+ export const SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_BYTES = 1024 * 1024;
6
+ export const SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_LABEL_BYTES = 16 * 1024;
7
+ export const SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_SUBJECT_BYTES = 256 * 1024;
8
+ export const SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_DETAILS = 1024;
9
+ export const SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_DETAIL_BYTES = 256 * 1024;
10
+ export const SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_METADATA = 1024;
11
+ export const SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_METADATA_VALUE_BYTES = 16 * 1024;
5
12
  export const SESSION_PROTOCOL_MAX_ATTRIBUTE_VALUE_CHARS = 1_024;
6
13
  export const SESSION_PROTOCOL_MAX_SUBAGENT_ACTIVITIES = 64;
7
14
  export const SESSION_PROTOCOL_MAX_SUBAGENT_SHORT_TEXT_BYTES = 512;
@@ -443,7 +450,7 @@ const sessionProtocolClientToolCancelMessageSchema = z
443
450
  type: z.literal("session.clientTool.cancel"),
444
451
  sessionId: nonEmptyStringSchema,
445
452
  callId: nonEmptyStringSchema,
446
- reason: z.enum(["aborted", "timeout", "client-detached"]),
453
+ reason: z.enum(["aborted", "timeout", "client-detached", "host-failed"]),
447
454
  })
448
455
  .strip();
449
456
  const sessionProtocolClientToolMessageSchema = z.discriminatedUnion("type", [
@@ -677,10 +684,43 @@ const sessionProtocolEphemeralCloseParamsSchema = z
677
684
  contextId: nonEmptyStringSchema,
678
685
  })
679
686
  .strip();
687
+ const clientToolPresentationSingleLineSchema = z
688
+ .string()
689
+ .refine((value) => !value.includes("\n") && !value.includes("\r"), "must be one line");
690
+ const clientToolPresentationDetailSchema = clientToolPresentationSingleLineSchema.refine((value) => utf8ByteLength(value) <= SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_DETAIL_BYTES, `must not exceed ${SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_DETAIL_BYTES} UTF-8 bytes`);
691
+ const clientToolPresentationMetadataSchema = clientToolPresentationSingleLineSchema.refine((value) => utf8ByteLength(value) <= SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_METADATA_VALUE_BYTES, `must not exceed ${SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_METADATA_VALUE_BYTES} UTF-8 bytes`);
692
+ const sessionProtocolClientToolPresentationSchema = z
693
+ .object({
694
+ subject: z
695
+ .string()
696
+ .min(1)
697
+ .refine((value) => !value.includes("\r"), "must not contain carriage returns")
698
+ .refine((value) => utf8ByteLength(value) <= SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_SUBJECT_BYTES, `must not exceed ${SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_SUBJECT_BYTES} UTF-8 bytes`)
699
+ .optional(),
700
+ subjectWrap: z.enum(["word", "character"]).optional(),
701
+ details: z
702
+ .array(z
703
+ .object({
704
+ text: clientToolPresentationDetailSchema,
705
+ tone: z.enum(["added", "removed"]).optional(),
706
+ wrap: z.enum(["word", "character"]).optional(),
707
+ })
708
+ .strict())
709
+ .max(SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_DETAILS)
710
+ .optional(),
711
+ metadata: z
712
+ .array(clientToolPresentationMetadataSchema)
713
+ .max(SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_METADATA)
714
+ .optional(),
715
+ })
716
+ .strict()
717
+ .refine((value) => utf8ByteLength(JSON.stringify(value)) <=
718
+ SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_BYTES, `must not exceed ${SESSION_PROTOCOL_MAX_CLIENT_TOOL_PRESENTATION_BYTES} UTF-8 bytes`);
680
719
  const sessionProtocolClientToolAckParamsSchema = z
681
720
  .object({
682
721
  sessionId: nonEmptyStringSchema,
683
722
  callId: nonEmptyStringSchema,
723
+ presentation: sessionProtocolClientToolPresentationSchema.optional(),
684
724
  })
685
725
  .strip();
686
726
  const sessionProtocolClientToolResultParamsSchema = z.discriminatedUnion("ok", [
@@ -690,6 +730,7 @@ const sessionProtocolClientToolResultParamsSchema = z.discriminatedUnion("ok", [
690
730
  callId: nonEmptyStringSchema,
691
731
  ok: z.literal(true),
692
732
  content: z.string(),
733
+ presentation: sessionProtocolClientToolPresentationSchema.optional(),
693
734
  })
694
735
  .strip(),
695
736
  z
@@ -698,6 +739,7 @@ const sessionProtocolClientToolResultParamsSchema = z.discriminatedUnion("ok", [
698
739
  callId: nonEmptyStringSchema,
699
740
  ok: z.literal(false),
700
741
  error: z.string(),
742
+ presentation: sessionProtocolClientToolPresentationSchema.optional(),
701
743
  })
702
744
  .strip(),
703
745
  ]);
@@ -3248,7 +3290,9 @@ function validateClientToolAckParams(params) {
3248
3290
  ? "session.clientTool.ack params.sessionId must be a non-empty string"
3249
3291
  : hasIssue(parsed.error, ["callId"])
3250
3292
  ? "session.clientTool.ack params.callId must be a non-empty string"
3251
- : `session.clientTool.ack params are invalid: ${formatZodError(parsed.error)}`;
3293
+ : hasIssue(parsed.error, ["presentation"])
3294
+ ? `session.clientTool.ack params.presentation is invalid: ${formatZodError(parsed.error)}`
3295
+ : `session.clientTool.ack params are invalid: ${formatZodError(parsed.error)}`;
3252
3296
  return invalidParams(message);
3253
3297
  }
3254
3298
  return { ok: true, value: parsed.data };