@markusylisiurunen/tau 0.2.128 → 0.3.0

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 (232) hide show
  1. package/README.md +130 -75
  2. package/dist/core/async/cli.js +12 -2
  3. package/dist/core/async/cli.js.map +1 -1
  4. package/dist/core/async/http_protocol.js +7 -1
  5. package/dist/core/async/http_protocol.js.map +1 -1
  6. package/dist/core/async/http_server.js +9 -1
  7. package/dist/core/async/http_server.js.map +1 -1
  8. package/dist/core/async/index.js.map +1 -1
  9. package/dist/core/async/session_manager.js +94 -51
  10. package/dist/core/async/session_manager.js.map +1 -1
  11. package/dist/core/auth/auth_manager.js +0 -92
  12. package/dist/core/auth/auth_manager.js.map +1 -1
  13. package/dist/core/auth/credential_store.js +247 -0
  14. package/dist/core/auth/credential_store.js.map +1 -0
  15. package/dist/core/auth/index.js +0 -1
  16. package/dist/core/auth/index.js.map +1 -1
  17. package/dist/core/cli.js +12 -15
  18. package/dist/core/cli.js.map +1 -1
  19. package/dist/core/commands/registry.js +11 -55
  20. package/dist/core/commands/registry.js.map +1 -1
  21. package/dist/core/config/index.js.map +1 -1
  22. package/dist/core/config/runtime.js +0 -1
  23. package/dist/core/config/runtime.js.map +1 -1
  24. package/dist/core/config/schema.js +102 -17
  25. package/dist/core/config/schema.js.map +1 -1
  26. package/dist/core/debug.js +1 -20
  27. package/dist/core/debug.js.map +1 -1
  28. package/dist/core/diff_review/{session.js → bridge.js} +57 -114
  29. package/dist/core/diff_review/bridge.js.map +1 -0
  30. package/dist/core/diff_review/index.js +2 -3
  31. package/dist/core/diff_review/index.js.map +1 -1
  32. package/dist/core/diff_review/review_thread.js +48 -23
  33. package/dist/core/diff_review/review_thread.js.map +1 -1
  34. package/dist/core/diff_review/snapshot.js +40 -11
  35. package/dist/core/diff_review/snapshot.js.map +1 -1
  36. package/dist/core/events/parser.js +43 -12
  37. package/dist/core/events/parser.js.map +1 -1
  38. package/dist/core/index.js +1 -2
  39. package/dist/core/index.js.map +1 -1
  40. package/dist/core/models/catalog.js +3 -3
  41. package/dist/core/models/catalog.js.map +1 -1
  42. package/dist/core/modes/index.js +1 -2
  43. package/dist/core/modes/index.js.map +1 -1
  44. package/dist/core/modes/rpc_server.js +15 -325
  45. package/dist/core/modes/rpc_server.js.map +1 -1
  46. package/dist/core/modes/websocket_server.js +181 -0
  47. package/dist/core/modes/websocket_server.js.map +1 -0
  48. package/dist/core/personas.js +11 -1
  49. package/dist/core/personas.js.map +1 -1
  50. package/dist/core/runtime/chat_runtime.js +19 -12
  51. package/dist/core/runtime/chat_runtime.js.map +1 -1
  52. package/dist/core/runtime/conversation_turn_runtime.js +16 -1
  53. package/dist/core/runtime/conversation_turn_runtime.js.map +1 -1
  54. package/dist/core/runtime/runtime_bootstrap.js +326 -0
  55. package/dist/core/runtime/runtime_bootstrap.js.map +1 -1
  56. package/dist/core/runtime/steering.js +6 -0
  57. package/dist/core/runtime/steering.js.map +1 -0
  58. package/dist/core/session/compaction.js +225 -22
  59. package/dist/core/session/compaction.js.map +1 -1
  60. package/dist/core/session/core_session.js +9 -0
  61. package/dist/core/session/core_session.js.map +1 -1
  62. package/dist/core/session/direct_bash.js +34 -0
  63. package/dist/core/session/direct_bash.js.map +1 -0
  64. package/dist/core/session/pruning.js +595 -0
  65. package/dist/core/session/pruning.js.map +1 -0
  66. package/dist/core/session/runner.js +47 -8
  67. package/dist/core/session/runner.js.map +1 -1
  68. package/dist/core/session/session_engine.js +128 -55
  69. package/dist/core/session/session_engine.js.map +1 -1
  70. package/dist/core/static/prompts/diff-review-wrapper.md +1 -1
  71. package/dist/core/subagents/subagent_engine.js +19 -27
  72. package/dist/core/subagents/subagent_engine.js.map +1 -1
  73. package/dist/core/tools/catalog.js.map +1 -1
  74. package/dist/core/tools/diff_review.js +12 -12
  75. package/dist/core/tools/diff_review.js.map +1 -1
  76. package/dist/core/tools/execution_backend.js +9 -2
  77. package/dist/core/tools/execution_backend.js.map +1 -1
  78. package/dist/core/tools/registry.js.map +1 -1
  79. package/dist/core/usage/logs.js.map +1 -1
  80. package/dist/core/utils/compact.js +3 -1
  81. package/dist/core/utils/compact.js.map +1 -1
  82. package/dist/core/utils/context.js +1 -1
  83. package/dist/core/utils/context.js.map +1 -1
  84. package/dist/core/utils/context_builder.js +1 -18
  85. package/dist/core/utils/context_builder.js.map +1 -1
  86. package/dist/core/utils/gemini_speech.js +1 -1
  87. package/dist/core/utils/gemini_speech.js.map +1 -1
  88. package/dist/core/utils/model_stream.js +105 -14
  89. package/dist/core/utils/model_stream.js.map +1 -1
  90. package/dist/core/utils/project_files.js +11 -16
  91. package/dist/core/utils/project_files.js.map +1 -1
  92. package/dist/core/utils/spawn_capture.js +2 -2
  93. package/dist/core/utils/spawn_capture.js.map +1 -1
  94. package/dist/core/utils/user_metadata.js +35 -2
  95. package/dist/core/utils/user_metadata.js.map +1 -1
  96. package/dist/core/version.js +1 -1
  97. package/dist/core/version.js.map +1 -1
  98. package/dist/diff_tool/app/dist/assets/{index-jn1I_CPZ.js → index-ivRn2dP2.js} +34 -34
  99. package/dist/diff_tool/app/dist/index.html +1 -1
  100. package/dist/execution/cloudflare_sandbox_execution_environment.js +400 -0
  101. package/dist/execution/cloudflare_sandbox_execution_environment.js.map +1 -0
  102. package/dist/execution/execution_environment.js +24 -0
  103. package/dist/execution/execution_environment.js.map +1 -0
  104. package/dist/execution/fly_sprite_execution_environment.js +559 -0
  105. package/dist/execution/fly_sprite_execution_environment.js.map +1 -0
  106. package/dist/execution/local_execution_environment.js +93 -0
  107. package/dist/execution/local_execution_environment.js.map +1 -0
  108. package/dist/execution/runtime_config_snapshot.js +209 -0
  109. package/dist/execution/runtime_config_snapshot.js.map +1 -0
  110. package/dist/execution/sandbox_tool_helpers.js +55 -0
  111. package/dist/execution/sandbox_tool_helpers.js.map +1 -0
  112. package/dist/execution/tool_backend_execution_environment.js +55 -0
  113. package/dist/execution/tool_backend_execution_environment.js.map +1 -0
  114. package/dist/host/hosted_ephemeral_agent_session.js +286 -0
  115. package/dist/host/hosted_ephemeral_agent_session.js.map +1 -0
  116. package/dist/host/index.js +3 -0
  117. package/dist/host/index.js.map +1 -0
  118. package/dist/host/local_session_host.js +1464 -0
  119. package/dist/host/local_session_host.js.map +1 -0
  120. package/dist/host/session_host.js +2 -0
  121. package/dist/host/session_host.js.map +1 -0
  122. package/dist/host/session_protocol_handler.js +873 -0
  123. package/dist/host/session_protocol_handler.js.map +1 -0
  124. package/dist/main.js +537 -77
  125. package/dist/main.js.map +1 -1
  126. package/dist/protocol/index.d.ts +2 -0
  127. package/dist/protocol/index.js +2 -0
  128. package/dist/protocol/index.js.map +1 -0
  129. package/dist/protocol/session_protocol.d.ts +691 -0
  130. package/dist/protocol/session_protocol.js +2117 -0
  131. package/dist/protocol/session_protocol.js.map +1 -0
  132. package/dist/sdk/client.d.ts +2 -1
  133. package/dist/sdk/client.js +136 -392
  134. package/dist/sdk/client.js.map +1 -1
  135. package/dist/sdk/index.d.ts +7 -4
  136. package/dist/sdk/index.js +4 -2
  137. package/dist/sdk/index.js.map +1 -1
  138. package/dist/sdk/session.d.ts +5 -0
  139. package/dist/sdk/session.js +406 -0
  140. package/dist/sdk/session.js.map +1 -0
  141. package/dist/sdk/types.d.ts +97 -78
  142. package/dist/store/file_session_store.js +157 -0
  143. package/dist/store/file_session_store.js.map +1 -0
  144. package/dist/store/memory_session_store.js +24 -0
  145. package/dist/store/memory_session_store.js.map +1 -0
  146. package/dist/store/session_store.js +32 -0
  147. package/dist/store/session_store.js.map +1 -0
  148. package/dist/transport/errors.d.ts +29 -0
  149. package/dist/{sdk → transport}/errors.js +5 -5
  150. package/dist/transport/errors.js.map +1 -0
  151. package/dist/transport/in_process_session_transport.js +102 -0
  152. package/dist/transport/in_process_session_transport.js.map +1 -0
  153. package/dist/transport/index.d.ts +7 -0
  154. package/dist/transport/index.js +4 -0
  155. package/dist/transport/index.js.map +1 -0
  156. package/dist/transport/pending_session_protocol_requests.js +67 -0
  157. package/dist/transport/pending_session_protocol_requests.js.map +1 -0
  158. package/dist/transport/session_protocol_transport_helpers.js +98 -0
  159. package/dist/transport/session_protocol_transport_helpers.js.map +1 -0
  160. package/dist/transport/session_transport.d.ts +11 -0
  161. package/dist/transport/session_transport.js +2 -0
  162. package/dist/transport/session_transport.js.map +1 -0
  163. package/dist/transport/stdio_session_transport.d.ts +38 -0
  164. package/dist/transport/stdio_session_transport.js +243 -0
  165. package/dist/transport/stdio_session_transport.js.map +1 -0
  166. package/dist/transport/websocket_session_transport.d.ts +52 -0
  167. package/dist/transport/websocket_session_transport.js +235 -0
  168. package/dist/transport/websocket_session_transport.js.map +1 -0
  169. package/dist/tui/chat_controller/assistant_clipboard.js +39 -0
  170. package/dist/tui/chat_controller/assistant_clipboard.js.map +1 -0
  171. package/dist/tui/chat_controller/command_hints.js +43 -0
  172. package/dist/tui/chat_controller/command_hints.js.map +1 -0
  173. package/dist/tui/chat_controller/diff_review_service.js +9 -9
  174. package/dist/tui/chat_controller/diff_review_service.js.map +1 -1
  175. package/dist/tui/chat_controller/diff_review_user_message.js +17 -0
  176. package/dist/tui/chat_controller/diff_review_user_message.js.map +1 -0
  177. package/dist/tui/chat_controller/history_labels.js +8 -0
  178. package/dist/tui/chat_controller/history_labels.js.map +1 -0
  179. package/dist/tui/chat_controller/history_message_model.js +36 -0
  180. package/dist/tui/chat_controller/history_message_model.js.map +1 -0
  181. package/dist/tui/chat_controller/queued_user_messages.js +18 -1
  182. package/dist/tui/chat_controller/queued_user_messages.js.map +1 -1
  183. package/dist/tui/chat_controller/status_format.js +22 -0
  184. package/dist/tui/chat_controller/status_format.js.map +1 -0
  185. package/dist/tui/chat_view.js +3 -1
  186. package/dist/tui/chat_view.js.map +1 -1
  187. package/dist/tui/index.js +1 -1
  188. package/dist/tui/index.js.map +1 -1
  189. package/dist/tui/listen_capture.js +87 -0
  190. package/dist/tui/listen_capture.js.map +1 -0
  191. package/dist/tui/memory_mode.js +23 -0
  192. package/dist/tui/memory_mode.js.map +1 -0
  193. package/dist/tui/session_chat_app.js +227 -0
  194. package/dist/tui/session_chat_app.js.map +1 -0
  195. package/dist/tui/session_chat_controller.js +2167 -0
  196. package/dist/tui/session_chat_controller.js.map +1 -0
  197. package/dist/tui/session_tool_execution_backend.js +170 -0
  198. package/dist/tui/session_tool_execution_backend.js.map +1 -0
  199. package/dist/tui/speech_playback.js +107 -0
  200. package/dist/tui/speech_playback.js.map +1 -0
  201. package/dist/tui/ui/assistant_message.js +27 -21
  202. package/dist/tui/ui/assistant_message.js.map +1 -1
  203. package/dist/tui/ui/components/editor.js +17 -13
  204. package/dist/tui/ui/components/editor.js.map +1 -1
  205. package/dist/tui/ui/custom_editor.js +25 -5
  206. package/dist/tui/ui/custom_editor.js.map +1 -1
  207. package/dist/tui/ui/queued_messages.js +1 -1
  208. package/dist/tui/ui/queued_messages.js.map +1 -1
  209. package/dist/tui/ui/slash_autocomplete.js +14 -36
  210. package/dist/tui/ui/slash_autocomplete.js.map +1 -1
  211. package/dist/tui/ui/tool_ui_registry.js +21 -0
  212. package/dist/tui/ui/tool_ui_registry.js.map +1 -1
  213. package/package.json +14 -11
  214. package/dist/core/auth/credential_resolver.js +0 -36
  215. package/dist/core/auth/credential_resolver.js.map +0 -1
  216. package/dist/core/config/bash_commands.js +0 -44
  217. package/dist/core/config/bash_commands.js.map +0 -1
  218. package/dist/core/diff_review/session.js.map +0 -1
  219. package/dist/core/modes/rpc_adapter.js +0 -17
  220. package/dist/core/modes/rpc_adapter.js.map +0 -1
  221. package/dist/core/modes/rpc_protocol.js +0 -500
  222. package/dist/core/modes/rpc_protocol.js.map +0 -1
  223. package/dist/core/session/checkpoint.js +0 -34
  224. package/dist/core/session/checkpoint.js.map +0 -1
  225. package/dist/sdk/errors.d.ts +0 -33
  226. package/dist/sdk/errors.js.map +0 -1
  227. package/dist/tui/app.js +0 -64
  228. package/dist/tui/app.js.map +0 -1
  229. package/dist/tui/chat_controller/session_maintenance_service.js +0 -634
  230. package/dist/tui/chat_controller/session_maintenance_service.js.map +0 -1
  231. package/dist/tui/chat_controller.js +0 -2532
  232. package/dist/tui/chat_controller.js.map +0 -1
@@ -1,500 +0,0 @@
1
- import { z } from "zod";
2
- import { CORE_EVENT_VERSION, safeParseCoreEventEnvelope, } from "../events/index.js";
3
- import { formatZodError } from "../utils/zod.js";
4
- export const RPC_PROTOCOL_VERSION = 1;
5
- export const RPC_METHODS = [
6
- "initialize",
7
- "session.submit",
8
- "session.interrupt",
9
- "session.snapshot",
10
- "session.reset",
11
- "session.shutdown",
12
- ];
13
- export const RPC_ERROR_CODES = {
14
- parseError: "parse_error",
15
- invalidRequest: "invalid_request",
16
- methodNotFound: "method_not_found",
17
- invalidParams: "invalid_params",
18
- busy: "busy",
19
- internalError: "internal_error",
20
- };
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
- mode: z.enum(["submit", "steer"]).optional(),
100
- })
101
- .strict();
102
- const rpcEmptyParamsSchema = z.object({}).strict();
103
- export function isRpcMethod(value) {
104
- return typeof value === "string" && RPC_METHODS.includes(value);
105
- }
106
- export function createRpcError(code, message, data) {
107
- return data === undefined ? { code, message } : { code, message, data };
108
- }
109
- export function createRpcSuccessResponse(id, result) {
110
- return {
111
- version: RPC_PROTOCOL_VERSION,
112
- type: "response",
113
- id,
114
- ok: true,
115
- result,
116
- };
117
- }
118
- export function createRpcErrorResponse(id, code, message, data) {
119
- return {
120
- version: RPC_PROTOCOL_VERSION,
121
- type: "response",
122
- id,
123
- ok: false,
124
- error: createRpcError(code, message, data),
125
- };
126
- }
127
- export function createRpcEventMessage(event, options = {}) {
128
- return {
129
- version: RPC_PROTOCOL_VERSION,
130
- type: "event",
131
- event,
132
- ...(options.requestId !== undefined ? { requestId: options.requestId } : {}),
133
- };
134
- }
135
- export function createRpcReadyMessage(args) {
136
- return {
137
- version: RPC_PROTOCOL_VERSION,
138
- type: "ready",
139
- sessionId: args.sessionId,
140
- methods: [...RPC_METHODS],
141
- coreEventVersion: CORE_EVENT_VERSION,
142
- };
143
- }
144
- export function serializeRpcMessage(message) {
145
- return JSON.stringify(message);
146
- }
147
- export function parseRpcRequestLine(line) {
148
- const trimmed = line.trim();
149
- if (!trimmed) {
150
- return {
151
- ok: false,
152
- id: null,
153
- error: createRpcError(RPC_ERROR_CODES.invalidRequest, "request line cannot be empty"),
154
- };
155
- }
156
- let parsed;
157
- try {
158
- parsed = JSON.parse(trimmed);
159
- }
160
- catch (error) {
161
- return {
162
- ok: false,
163
- id: null,
164
- error: createRpcError(RPC_ERROR_CODES.parseError, "failed to parse JSON request line", {
165
- cause: error instanceof Error ? error.message : String(error),
166
- }),
167
- };
168
- }
169
- const parsedIdField = rpcIdFieldSchema.safeParse(parsed);
170
- const requestIdCandidate = parsedIdField.success
171
- ? parseNullableRequestId(parsedIdField.data.id)
172
- : null;
173
- const requestId = requestIdCandidate?.ok ? requestIdCandidate.id : null;
174
- const requestEnvelope = rpcRequestEnvelopeSchema.safeParse(parsed);
175
- if (!requestEnvelope.success) {
176
- if (hasIssue(requestEnvelope.error, [], "invalid_type")) {
177
- return {
178
- ok: false,
179
- id: null,
180
- error: createRpcError(RPC_ERROR_CODES.invalidRequest, "request must be a JSON object"),
181
- };
182
- }
183
- if (hasIssue(requestEnvelope.error, ["id"])) {
184
- return {
185
- ok: false,
186
- id: null,
187
- error: createRpcError(RPC_ERROR_CODES.invalidRequest, "request id must be a string or number"),
188
- };
189
- }
190
- if (hasIssue(requestEnvelope.error, [], "unrecognized_keys")) {
191
- return {
192
- ok: false,
193
- id: requestId,
194
- error: createRpcError(RPC_ERROR_CODES.invalidRequest, "request contains unsupported top-level fields"),
195
- };
196
- }
197
- if (hasIssue(requestEnvelope.error, ["version"])) {
198
- const parsedVersionField = rpcVersionFieldSchema.safeParse(parsed);
199
- const version = parsedVersionField.success ? parsedVersionField.data.version : undefined;
200
- return {
201
- ok: false,
202
- id: requestId,
203
- error: createRpcError(RPC_ERROR_CODES.invalidRequest, `unsupported rpc version: ${String(version)}`),
204
- };
205
- }
206
- if (hasIssue(requestEnvelope.error, ["type"])) {
207
- return {
208
- ok: false,
209
- id: requestId,
210
- error: createRpcError(RPC_ERROR_CODES.invalidRequest, 'request.type must be "request"'),
211
- };
212
- }
213
- if (hasIssue(requestEnvelope.error, ["method"])) {
214
- return {
215
- ok: false,
216
- id: requestId,
217
- error: createRpcError(RPC_ERROR_CODES.invalidRequest, "request.method must be a string"),
218
- };
219
- }
220
- return {
221
- ok: false,
222
- id: requestId,
223
- error: createRpcError(RPC_ERROR_CODES.invalidRequest, `request is invalid: ${formatZodError(requestEnvelope.error)}`),
224
- };
225
- }
226
- const method = requestEnvelope.data.method;
227
- if (!isRpcMethod(method)) {
228
- return {
229
- ok: false,
230
- id: requestEnvelope.data.id,
231
- error: createRpcError(RPC_ERROR_CODES.methodNotFound, `unsupported method: ${method}`),
232
- };
233
- }
234
- const params = validateRpcParams(method, requestEnvelope.data.params);
235
- if (!params.ok) {
236
- return {
237
- ok: false,
238
- id: requestEnvelope.data.id,
239
- error: params.error,
240
- };
241
- }
242
- return {
243
- ok: true,
244
- request: {
245
- version: RPC_PROTOCOL_VERSION,
246
- type: "request",
247
- id: requestEnvelope.data.id,
248
- method,
249
- params: params.value,
250
- },
251
- };
252
- }
253
- export function parseRpcOutgoingLine(line) {
254
- const trimmed = line.trim();
255
- if (!trimmed) {
256
- return outgoingParseFailure(null, null, RPC_ERROR_CODES.invalidRequest, "rpc line cannot be empty", undefined, "empty_line");
257
- }
258
- let parsed;
259
- try {
260
- parsed = JSON.parse(trimmed);
261
- }
262
- catch (error) {
263
- return outgoingParseFailure(null, null, RPC_ERROR_CODES.parseError, "failed to parse JSON rpc line", {
264
- cause: error instanceof Error ? error.message : String(error),
265
- }, "parse_error");
266
- }
267
- const routing = rpcOutgoingRoutingSchema.safeParse(parsed);
268
- if (!routing.success) {
269
- if (hasIssue(routing.error, [], "invalid_type")) {
270
- return outgoingParseFailure(null, null, RPC_ERROR_CODES.invalidRequest, "rpc payload must be a JSON object");
271
- }
272
- if (hasIssue(routing.error, ["version"])) {
273
- const parsedVersionField = rpcVersionFieldSchema.safeParse(parsed);
274
- const version = parsedVersionField.success ? parsedVersionField.data.version : undefined;
275
- return outgoingParseFailure(null, null, RPC_ERROR_CODES.invalidRequest, `unsupported rpc version: ${String(version)}`, undefined, "unsupported_version");
276
- }
277
- const parsedTypeField = rpcTypeFieldSchema.safeParse(parsed);
278
- const messageType = parsedTypeField.success ? parsedTypeField.data.type : undefined;
279
- return outgoingParseFailure(null, null, RPC_ERROR_CODES.invalidRequest, `unsupported rpc message type: ${String(messageType)}`, undefined, "unsupported_message_type");
280
- }
281
- if (routing.data.type === "ready") {
282
- return parseRpcReadyMessage(parsed);
283
- }
284
- if (routing.data.type === "event") {
285
- return parseRpcEventMessage(parsed);
286
- }
287
- return parseRpcResponseMessage(parsed);
288
- }
289
- export function validateRpcParams(method, params) {
290
- switch (method) {
291
- case "initialize":
292
- return validateInitializeParams(params);
293
- case "session.submit":
294
- return validateSubmitParams(params);
295
- case "session.interrupt":
296
- case "session.snapshot":
297
- case "session.reset":
298
- case "session.shutdown":
299
- return validateNoParams(method, params);
300
- }
301
- }
302
- function validateInitializeParams(params) {
303
- const parsed = rpcInitializeParamsSchema.safeParse(params);
304
- if (!parsed.success) {
305
- const message = hasIssue(parsed.error, [], "invalid_type")
306
- ? "initialize params must be an object with client metadata"
307
- : hasIssue(parsed.error, ["client"]) || hasIssue(parsed.error, [], "unrecognized_keys")
308
- ? "initialize.client must be an object with name/version strings"
309
- : hasIssue(parsed.error, ["client", "name"])
310
- ? "initialize.client.name must be a non-empty string"
311
- : hasIssue(parsed.error, ["client", "version"])
312
- ? "initialize.client.version must be a non-empty string"
313
- : `initialize params are invalid: ${formatZodError(parsed.error)}`;
314
- return invalidParams(message);
315
- }
316
- return {
317
- ok: true,
318
- value: {
319
- client: {
320
- name: parsed.data.client.name,
321
- version: parsed.data.client.version,
322
- },
323
- },
324
- };
325
- }
326
- function validateSubmitParams(params) {
327
- const parsed = rpcSessionSubmitParamsSchema.safeParse(params);
328
- if (!parsed.success) {
329
- const message = hasIssue(parsed.error, [], "invalid_type")
330
- ? "session.submit params must be an object"
331
- : hasIssue(parsed.error, [], "unrecognized_keys")
332
- ? "session.submit params only support text, optional historyEntryId, and optional mode"
333
- : hasIssue(parsed.error, ["text"])
334
- ? "session.submit params.text must be a string"
335
- : hasIssue(parsed.error, ["historyEntryId"])
336
- ? "session.submit params.historyEntryId must be a string when provided"
337
- : hasIssue(parsed.error, ["mode"])
338
- ? "session.submit params.mode must be 'submit' or 'steer' when provided"
339
- : `session.submit params are invalid: ${formatZodError(parsed.error)}`;
340
- return invalidParams(message);
341
- }
342
- return {
343
- ok: true,
344
- value: {
345
- text: parsed.data.text,
346
- ...(parsed.data.historyEntryId !== undefined
347
- ? { historyEntryId: parsed.data.historyEntryId }
348
- : {}),
349
- ...(parsed.data.mode !== undefined ? { mode: parsed.data.mode } : {}),
350
- },
351
- };
352
- }
353
- function validateNoParams(method, params) {
354
- const parsed = rpcEmptyParamsSchema.safeParse(params);
355
- if (!parsed.success) {
356
- return invalidParams(`${method} params must be an empty object`);
357
- }
358
- return { ok: true, value: EMPTY_OBJECT };
359
- }
360
- function parseRpcReadyMessage(payload) {
361
- const ready = rpcReadyMessageSchema.safeParse(payload);
362
- if (!ready.success) {
363
- return outgoingParseFailure("ready", null, RPC_ERROR_CODES.invalidRequest, `invalid ready message: ${formatZodError(ready.error)}`);
364
- }
365
- return {
366
- ok: true,
367
- message: {
368
- version: RPC_PROTOCOL_VERSION,
369
- type: "ready",
370
- sessionId: ready.data.sessionId,
371
- methods: [...ready.data.methods],
372
- coreEventVersion: CORE_EVENT_VERSION,
373
- },
374
- };
375
- }
376
- function parseRpcEventMessage(payload) {
377
- const fail = (message) => outgoingParseFailure("event", null, RPC_ERROR_CODES.invalidRequest, message);
378
- const eventMessage = rpcEventMessageSchema.safeParse(payload);
379
- if (!eventMessage.success) {
380
- if (hasIssue(eventMessage.error, [], "unrecognized_keys")) {
381
- return fail("event message contains unsupported fields");
382
- }
383
- if (hasIssue(eventMessage.error, ["requestId"])) {
384
- return fail("event.requestId must be a string or number when provided");
385
- }
386
- return fail(`invalid event message: ${formatZodError(eventMessage.error)}`);
387
- }
388
- const event = safeParseCoreEventEnvelope(eventMessage.data.event);
389
- if (!event.ok) {
390
- return fail(event.message);
391
- }
392
- return {
393
- ok: true,
394
- message: {
395
- version: RPC_PROTOCOL_VERSION,
396
- type: "event",
397
- event: event.value,
398
- ...(eventMessage.data.requestId !== undefined
399
- ? { requestId: eventMessage.data.requestId }
400
- : {}),
401
- },
402
- };
403
- }
404
- function parseRpcResponseMessage(payload) {
405
- const responseId = parseNullableRequestId(payload.id);
406
- const requestId = responseId.ok ? responseId.id : null;
407
- const fail = (message, reason = "invalid_payload", id = requestId) => outgoingParseFailure("response", id, RPC_ERROR_CODES.invalidRequest, message, undefined, reason);
408
- if (!responseId.ok) {
409
- return fail("response.id must be a string or number", "response_invalid_id", null);
410
- }
411
- if (payload.ok === true) {
412
- const successResponse = rpcResponseSuccessSchema.safeParse(payload);
413
- if (!successResponse.success) {
414
- if (hasIssue(successResponse.error, [], "unrecognized_keys")) {
415
- return fail("successful response must only include result payload");
416
- }
417
- if (hasIssue(successResponse.error, ["result"], "invalid_type")) {
418
- return fail("successful response must include result");
419
- }
420
- if (hasIssue(successResponse.error, ["id"])) {
421
- return fail("successful response.id must be a string or number", "response_invalid_id");
422
- }
423
- return fail(`invalid successful response: ${formatZodError(successResponse.error)}`);
424
- }
425
- return {
426
- ok: true,
427
- message: {
428
- version: RPC_PROTOCOL_VERSION,
429
- type: "response",
430
- id: successResponse.data.id,
431
- ok: true,
432
- result: successResponse.data.result,
433
- },
434
- };
435
- }
436
- if (payload.ok !== false) {
437
- return fail("response.ok must be true or false");
438
- }
439
- const errorResponse = rpcResponseErrorSchema.safeParse(payload);
440
- if (!errorResponse.success) {
441
- if (hasIssue(errorResponse.error, [], "unrecognized_keys")) {
442
- return fail("error response must only include error payload");
443
- }
444
- if (hasIssue(errorResponse.error, ["error"])) {
445
- return fail("error response.error must be an object");
446
- }
447
- if (hasIssue(errorResponse.error, ["error", "code"]) ||
448
- hasIssue(errorResponse.error, ["error", "message"])) {
449
- return fail("error response.error must include a valid code and string message");
450
- }
451
- return fail(`invalid error response: ${formatZodError(errorResponse.error)}`);
452
- }
453
- return {
454
- ok: true,
455
- message: {
456
- version: RPC_PROTOCOL_VERSION,
457
- type: "response",
458
- id: errorResponse.data.id,
459
- ok: false,
460
- error: errorResponse.data.error,
461
- },
462
- };
463
- }
464
- function parseRequestId(value) {
465
- if (typeof value === "string" || typeof value === "number") {
466
- return { ok: true, id: value };
467
- }
468
- return { ok: false };
469
- }
470
- function parseNullableRequestId(value) {
471
- if (value === null) {
472
- return { ok: true, id: null };
473
- }
474
- const parsed = parseRequestId(value);
475
- if (!parsed.ok) {
476
- return { ok: false };
477
- }
478
- return { ok: true, id: parsed.id };
479
- }
480
- function outgoingParseFailure(messageType, id, code, message, data, reason = "invalid_payload") {
481
- return {
482
- ok: false,
483
- reason,
484
- messageType,
485
- id,
486
- error: createRpcError(code, message, data),
487
- };
488
- }
489
- function hasIssue(error, path = [], code) {
490
- return error.issues.some((issue) => (code === undefined || issue.code === code) &&
491
- issue.path.length === path.length &&
492
- issue.path.every((segment, i) => segment === path[i]));
493
- }
494
- function invalidParams(message) {
495
- return {
496
- ok: false,
497
- error: createRpcError(RPC_ERROR_CODES.invalidParams, message),
498
- };
499
- }
500
- //# sourceMappingURL=rpc_protocol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc_protocol.js","sourceRoot":"","sources":["../../../src/core/modes/rpc_protocol.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- import { z } from "zod";
2
- import { ReasoningEffortSchema, RiskLevelSchema } from "../types.js";
3
- import { APP_VERSION } from "../version.js";
4
- const MessageSchema = z.custom((value) => {
5
- if (!value || typeof value !== "object")
6
- return false;
7
- const role = value.role;
8
- return typeof role === "string";
9
- });
10
- const CheckpointSchema = z.object({
11
- version: z.literal(1),
12
- createdAt: z.string(),
13
- appVersion: z.string(),
14
- personaId: z.string(),
15
- reasoning: ReasoningEffortSchema.optional(),
16
- riskLevel: RiskLevelSchema,
17
- history: z.array(MessageSchema),
18
- });
19
- export function createCheckpoint(args) {
20
- return {
21
- version: 1,
22
- createdAt: args.createdAt ?? new Date().toISOString(),
23
- appVersion: args.appVersion ?? APP_VERSION,
24
- personaId: args.personaId,
25
- reasoning: args.reasoning,
26
- riskLevel: args.riskLevel,
27
- history: args.history,
28
- };
29
- }
30
- export function parseCheckpoint(raw) {
31
- const parsed = JSON.parse(raw);
32
- return CheckpointSchema.parse(parsed);
33
- }
34
- //# sourceMappingURL=checkpoint.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../../src/core/session/checkpoint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAwB,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,aAAa,GAAuB,CAAC,CAAC,MAAM,CAAU,CAAC,KAAK,EAAE,EAAE;IACpE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,IAAI,GAAI,KAA4B,CAAC,IAAI,CAAC;IAChD,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;AAClC,CAAC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAC3C,SAAS,EAAE,eAAe;IAC1B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;CAChC,CAAC,CAAC;AAIH,MAAM,UAAU,gBAAgB,CAAC,IAOhC;IACC,OAAO;QACL,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrD,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,WAAW;QAC1C,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IAC1C,OAAO,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC"}
@@ -1,33 +0,0 @@
1
- import type { TauSdkRequestId } from "./types.js";
2
- export type TauRpcErrorCode = "parse_error" | "invalid_request" | "method_not_found" | "invalid_params" | "busy" | "internal_error";
3
- export type TauRpcError = {
4
- code: TauRpcErrorCode;
5
- message: string;
6
- data?: unknown;
7
- };
8
- export declare class TauSdkError extends Error {
9
- constructor(message: string, options?: ErrorOptions);
10
- }
11
- export declare class TauRpcResponseError extends TauSdkError {
12
- readonly code: TauRpcErrorCode;
13
- readonly requestId: TauSdkRequestId;
14
- readonly data?: unknown;
15
- constructor(options: {
16
- requestId: TauSdkRequestId;
17
- error: TauRpcError;
18
- });
19
- }
20
- export declare class TauTransportError extends TauSdkError {
21
- constructor(message: string, options?: ErrorOptions);
22
- }
23
- export declare class TauProcessError extends TauTransportError {
24
- readonly exitCode: number | null;
25
- readonly signal: NodeJS.Signals | null;
26
- readonly stderr: string;
27
- constructor(message: string, options?: {
28
- exitCode?: number | null;
29
- signal?: NodeJS.Signals | null;
30
- stderr?: string;
31
- cause?: unknown;
32
- });
33
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/sdk/errors.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IACzC,IAAI,CAAkB;IACtB,SAAS,CAAkB;IAC3B,IAAI,CAAW;IAExB,YAAY,OAA2D;QACrE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAChD,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,iBAAiB;IAC3C,QAAQ,CAAgB;IACxB,MAAM,CAAwB;IAC9B,MAAM,CAAS;IAExB,YACE,OAAe,EACf,OAKC;QAED,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC;IACtC,CAAC;CACF"}
package/dist/tui/app.js DELETED
@@ -1,64 +0,0 @@
1
- import { ChatController } from "./chat_controller.js";
2
- import { TuiChatView } from "./chat_view.js";
3
- import { EXIT_DOUBLE_PRESS_WINDOW_MS, EXIT_TOAST_DURATION_MS } from "./constants.js";
4
- import { SlashAutocompleteProvider } from "./ui/slash_autocomplete.js";
5
- export class ChatApp {
6
- view;
7
- controller;
8
- lastCtrlCAt;
9
- constructor(options) {
10
- const queuedUserMessages = [];
11
- this.view = new TuiChatView({
12
- queuedUserMessages,
13
- compactToolUi: true,
14
- showThinking: false,
15
- terminalAppearance: options.terminalAppearance,
16
- themeId: options.config?.defaultTheme,
17
- themes: options.themes ?? [],
18
- });
19
- this.controller = new ChatController({
20
- ...options,
21
- view: this.view,
22
- queuedUserMessages,
23
- });
24
- const handlers = this.controller.getInputHandlers();
25
- handlers.onCtrlC = () => {
26
- const now = Date.now();
27
- if (this.lastCtrlCAt !== undefined && now - this.lastCtrlCAt <= EXIT_DOUBLE_PRESS_WINDOW_MS) {
28
- this.lastCtrlCAt = undefined;
29
- void this.stop().finally(() => process.exit(0));
30
- return;
31
- }
32
- this.lastCtrlCAt = now;
33
- this.view.addSystemMessage("press ctrl+c again to quit", "warn", {
34
- toastDurationMs: EXIT_TOAST_DURATION_MS,
35
- });
36
- };
37
- this.view.bindInputHandlers(handlers);
38
- const sources = this.controller.getAutocompleteSources();
39
- this.view.setAutocompleteProvider(new SlashAutocompleteProvider(this.controller.getCommandRegistry(), sources.personas, sources.prompts, sources.themes, sources.bashCommands, sources.projectFiles, sources.skills, sources.subagents, sources.riskLevels));
40
- }
41
- async start() {
42
- this.view.start();
43
- await this.controller.start();
44
- }
45
- async stop() {
46
- this.view.stop();
47
- try {
48
- await this.controller.dispose();
49
- }
50
- catch {
51
- // best-effort cleanup
52
- }
53
- }
54
- async onUserInput(text) {
55
- await this.controller.onUserInput(text);
56
- }
57
- onInterrupt() {
58
- this.controller.onInterrupt();
59
- }
60
- onEvent(event) {
61
- this.controller.onEvent(event);
62
- }
63
- }
64
- //# sourceMappingURL=app.js.map