@markusylisiurunen/tau 0.3.49 → 0.3.51

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 (114) hide show
  1. package/README.md +22 -908
  2. package/dist/code_mode/command.js +26 -14
  3. package/dist/code_mode/command.js.map +1 -1
  4. package/dist/code_mode/index.d.ts +2 -1
  5. package/dist/code_mode/index.js +1 -0
  6. package/dist/code_mode/index.js.map +1 -1
  7. package/dist/core/cli.js +0 -11
  8. package/dist/core/cli.js.map +1 -1
  9. package/dist/core/client_tools/command_client_tools.js +236 -151
  10. package/dist/core/client_tools/command_client_tools.js.map +1 -1
  11. package/dist/core/commands/registry.js +4 -4
  12. package/dist/core/commands/registry.js.map +1 -1
  13. package/dist/core/modes/index.js +0 -1
  14. package/dist/core/modes/index.js.map +1 -1
  15. package/dist/core/personas.js +19 -10
  16. package/dist/core/personas.js.map +1 -1
  17. package/dist/core/runtime/runtime_bootstrap.js +14 -9
  18. package/dist/core/runtime/runtime_bootstrap.js.map +1 -1
  19. package/dist/core/static/tau_docs/client-tools.md +428 -0
  20. package/dist/core/static/tau_docs/config-reference.md +422 -0
  21. package/dist/core/static/tau_docs/configuration.md +210 -0
  22. package/dist/core/static/tau_docs/credentials.md +200 -0
  23. package/dist/core/static/tau_docs/getting-started.md +140 -0
  24. package/dist/core/static/tau_docs/history.md +163 -0
  25. package/dist/core/static/tau_docs/index.md +40 -0
  26. package/dist/core/static/tau_docs/manifest.json +28 -0
  27. package/dist/core/static/tau_docs/models.md +198 -0
  28. package/dist/core/static/tau_docs/node-sdk.md +406 -0
  29. package/dist/core/static/tau_docs/nook.md +264 -0
  30. package/dist/core/static/tau_docs/ownership-and-scope.md +103 -0
  31. package/dist/core/static/tau_docs/personas.md +199 -0
  32. package/dist/core/static/tau_docs/prompts-and-project-context.md +181 -0
  33. package/dist/core/static/tau_docs/remote-sessions.md +231 -0
  34. package/dist/core/static/tau_docs/security.md +184 -0
  35. package/dist/core/static/tau_docs/session-protocol-methods.md +618 -0
  36. package/dist/core/static/tau_docs/session-protocol.md +265 -0
  37. package/dist/core/static/tau_docs/sessions.md +224 -0
  38. package/dist/core/static/tau_docs/skills.md +176 -0
  39. package/dist/core/static/tau_docs/subagents.md +203 -0
  40. package/dist/core/static/tau_docs/telegram.md +346 -0
  41. package/dist/core/static/tau_docs/tools.md +203 -0
  42. package/dist/core/static/tau_docs/troubleshooting.md +290 -0
  43. package/dist/core/static/tau_docs/tui.md +222 -0
  44. package/dist/core/telegram/adapter.js +226 -18
  45. package/dist/core/telegram/adapter.js.map +1 -1
  46. package/dist/core/telegram/config.js +1 -1
  47. package/dist/core/telegram/config.js.map +1 -1
  48. package/dist/core/telegram/project_preferences.js +42 -12
  49. package/dist/core/telegram/project_preferences.js.map +1 -1
  50. package/dist/core/telegram/runtime.js +6 -1
  51. package/dist/core/telegram/runtime.js.map +1 -1
  52. package/dist/core/telegram/session_manager.js +54 -7
  53. package/dist/core/telegram/session_manager.js.map +1 -1
  54. package/dist/core/telegram/tts.js +137 -0
  55. package/dist/core/telegram/tts.js.map +1 -0
  56. package/dist/core/tools/catalog.js +3 -1
  57. package/dist/core/tools/catalog.js.map +1 -1
  58. package/dist/core/tools/presentation.js +67 -18
  59. package/dist/core/tools/presentation.js.map +1 -1
  60. package/dist/core/tools/tau_docs.js +115 -0
  61. package/dist/core/tools/tau_docs.js.map +1 -0
  62. package/dist/core/tools/tool_names.js +8 -0
  63. package/dist/core/tools/tool_names.js.map +1 -1
  64. package/dist/core/utils/gemini_speech.js +122 -41
  65. package/dist/core/utils/gemini_speech.js.map +1 -1
  66. package/dist/core/utils/repository.js +19 -0
  67. package/dist/core/utils/repository.js.map +1 -1
  68. package/dist/core/version.js +1 -1
  69. package/dist/host/client_tool_broker.js +74 -35
  70. package/dist/host/client_tool_broker.js.map +1 -1
  71. package/dist/host/local_session_host.js +2 -2
  72. package/dist/host/local_session_host.js.map +1 -1
  73. package/dist/host/session_host.js.map +1 -1
  74. package/dist/host/session_protocol_handler.js +17 -6
  75. package/dist/host/session_protocol_handler.js.map +1 -1
  76. package/dist/main.js +18 -92
  77. package/dist/main.js.map +1 -1
  78. package/dist/protocol/session_protocol.d.ts +23 -2
  79. package/dist/protocol/session_protocol.js +49 -4
  80. package/dist/protocol/session_protocol.js.map +1 -1
  81. package/dist/sdk/client_tool_command.d.ts +41 -13
  82. package/dist/sdk/client_tool_command.js +157 -39
  83. package/dist/sdk/client_tool_command.js.map +1 -1
  84. package/dist/sdk/client_tool_presentation.d.ts +17 -0
  85. package/dist/sdk/client_tool_presentation.js +9 -0
  86. package/dist/sdk/client_tool_presentation.js.map +1 -0
  87. package/dist/sdk/code_mode.js +10 -1
  88. package/dist/sdk/code_mode.js.map +1 -1
  89. package/dist/sdk/index.d.ts +5 -4
  90. package/dist/sdk/index.js +2 -1
  91. package/dist/sdk/index.js.map +1 -1
  92. package/dist/sdk/session.js +28 -9
  93. package/dist/sdk/session.js.map +1 -1
  94. package/dist/sdk/types.d.ts +11 -1
  95. package/dist/transport/errors.d.ts +0 -11
  96. package/dist/transport/errors.js +0 -12
  97. package/dist/transport/errors.js.map +1 -1
  98. package/dist/transport/index.d.ts +1 -3
  99. package/dist/transport/index.js +1 -2
  100. package/dist/transport/index.js.map +1 -1
  101. package/dist/tui/session_chat_app.js +29 -15
  102. package/dist/tui/session_chat_app.js.map +1 -1
  103. package/dist/tui/session_chat_controller.js +13 -64
  104. package/dist/tui/session_chat_controller.js.map +1 -1
  105. package/dist/tui/session_creation_attributes.js +3 -3
  106. package/dist/tui/session_creation_attributes.js.map +1 -1
  107. package/dist/tui/speech_playback.js +3 -3
  108. package/dist/tui/speech_playback.js.map +1 -1
  109. package/package.json +2 -2
  110. package/dist/core/modes/rpc_server.js +0 -105
  111. package/dist/core/modes/rpc_server.js.map +0 -1
  112. package/dist/transport/stdio_session_transport.d.ts +0 -48
  113. package/dist/transport/stdio_session_transport.js +0 -338
  114. package/dist/transport/stdio_session_transport.js.map +0 -1
@@ -1,7 +1,15 @@
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;
12
+ export declare const SESSION_PROTOCOL_MAX_ATTRIBUTE_VALUE_CHARS = 1024;
5
13
  export declare const SESSION_PROTOCOL_MAX_SUBAGENT_ACTIVITIES = 64;
6
14
  export declare const SESSION_PROTOCOL_MAX_SUBAGENT_SHORT_TEXT_BYTES = 512;
7
15
  export declare const SESSION_PROTOCOL_MAX_SUBAGENT_TOOL_SUBJECT_BYTES: number;
@@ -154,17 +162,30 @@ export type SessionProtocolEphemeralSubmitParams = SessionProtocolSessionIdParam
154
162
  export type SessionProtocolEphemeralCloseParams = SessionProtocolSessionIdParams & {
155
163
  contextId: string;
156
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
+ };
157
175
  export type SessionProtocolClientToolAckParams = SessionProtocolSessionIdParams & {
158
176
  callId: string;
177
+ presentation?: SessionProtocolClientToolPresentation;
159
178
  };
160
179
  export type SessionProtocolClientToolResultParams = SessionProtocolSessionIdParams & {
161
180
  callId: string;
162
181
  } & ({
163
182
  ok: true;
164
183
  content: string;
184
+ presentation?: SessionProtocolClientToolPresentation;
165
185
  } | {
166
186
  ok: false;
167
187
  error: string;
188
+ presentation?: SessionProtocolClientToolPresentation;
168
189
  });
169
190
  export type SessionProtocolParamsByMethod = {
170
191
  initialize: SessionProtocolInitializeParams;
@@ -889,7 +910,7 @@ export type SessionProtocolClientToolCancelMessage = {
889
910
  type: "session.clientTool.cancel";
890
911
  sessionId: string;
891
912
  callId: string;
892
- reason: "aborted" | "timeout" | "client-detached";
913
+ reason: "aborted" | "timeout" | "client-detached" | "host-failed";
893
914
  };
894
915
  export type SessionProtocolClientToolMessage = SessionProtocolClientToolCallMessage | SessionProtocolClientToolCancelMessage;
895
916
  export type SessionProtocolEphemeralAgentThreadUpdateEvent = {
@@ -1,7 +1,15 @@
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;
12
+ export const SESSION_PROTOCOL_MAX_ATTRIBUTE_VALUE_CHARS = 1_024;
5
13
  export const SESSION_PROTOCOL_MAX_SUBAGENT_ACTIVITIES = 64;
6
14
  export const SESSION_PROTOCOL_MAX_SUBAGENT_SHORT_TEXT_BYTES = 512;
7
15
  export const SESSION_PROTOCOL_MAX_SUBAGENT_TOOL_SUBJECT_BYTES = 4 * 1024;
@@ -269,7 +277,7 @@ const environmentVariablesSchema = z
269
277
  .record(environmentVariableNameSchema, environmentVariableValueSchema)
270
278
  .refine((value) => !("HOME" in value), "HOME is controlled by the execution environment");
271
279
  const sessionAttributesSchema = z
272
- .record(z.string().min(1).max(64), z.string().max(1_024))
280
+ .record(z.string().min(1).max(64), z.string().max(SESSION_PROTOCOL_MAX_ATTRIBUTE_VALUE_CHARS))
273
281
  .refine((attributes) => Object.keys(attributes).length <= 32, "at most 32 attributes are allowed");
274
282
  const processArgumentsSchema = z
275
283
  .array(z.string())
@@ -442,7 +450,7 @@ const sessionProtocolClientToolCancelMessageSchema = z
442
450
  type: z.literal("session.clientTool.cancel"),
443
451
  sessionId: nonEmptyStringSchema,
444
452
  callId: nonEmptyStringSchema,
445
- reason: z.enum(["aborted", "timeout", "client-detached"]),
453
+ reason: z.enum(["aborted", "timeout", "client-detached", "host-failed"]),
446
454
  })
447
455
  .strip();
448
456
  const sessionProtocolClientToolMessageSchema = z.discriminatedUnion("type", [
@@ -676,10 +684,43 @@ const sessionProtocolEphemeralCloseParamsSchema = z
676
684
  contextId: nonEmptyStringSchema,
677
685
  })
678
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`);
679
719
  const sessionProtocolClientToolAckParamsSchema = z
680
720
  .object({
681
721
  sessionId: nonEmptyStringSchema,
682
722
  callId: nonEmptyStringSchema,
723
+ presentation: sessionProtocolClientToolPresentationSchema.optional(),
683
724
  })
684
725
  .strip();
685
726
  const sessionProtocolClientToolResultParamsSchema = z.discriminatedUnion("ok", [
@@ -689,6 +730,7 @@ const sessionProtocolClientToolResultParamsSchema = z.discriminatedUnion("ok", [
689
730
  callId: nonEmptyStringSchema,
690
731
  ok: z.literal(true),
691
732
  content: z.string(),
733
+ presentation: sessionProtocolClientToolPresentationSchema.optional(),
692
734
  })
693
735
  .strip(),
694
736
  z
@@ -697,6 +739,7 @@ const sessionProtocolClientToolResultParamsSchema = z.discriminatedUnion("ok", [
697
739
  callId: nonEmptyStringSchema,
698
740
  ok: z.literal(false),
699
741
  error: z.string(),
742
+ presentation: sessionProtocolClientToolPresentationSchema.optional(),
700
743
  })
701
744
  .strip(),
702
745
  ]);
@@ -3247,7 +3290,9 @@ function validateClientToolAckParams(params) {
3247
3290
  ? "session.clientTool.ack params.sessionId must be a non-empty string"
3248
3291
  : hasIssue(parsed.error, ["callId"])
3249
3292
  ? "session.clientTool.ack params.callId must be a non-empty string"
3250
- : `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)}`;
3251
3296
  return invalidParams(message);
3252
3297
  }
3253
3298
  return { ok: true, value: parsed.data };