@markusylisiurunen/tau 0.2.129 → 0.3.1

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 (208) hide show
  1. package/README.md +111 -59
  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/cli.js +12 -15
  12. package/dist/core/cli.js.map +1 -1
  13. package/dist/core/commands/registry.js +9 -55
  14. package/dist/core/commands/registry.js.map +1 -1
  15. package/dist/core/config/index.js.map +1 -1
  16. package/dist/core/config/runtime.js +0 -1
  17. package/dist/core/config/runtime.js.map +1 -1
  18. package/dist/core/config/schema.js +102 -17
  19. package/dist/core/config/schema.js.map +1 -1
  20. package/dist/core/debug.js +1 -20
  21. package/dist/core/debug.js.map +1 -1
  22. package/dist/core/diff_review/{session.js → bridge.js} +57 -114
  23. package/dist/core/diff_review/bridge.js.map +1 -0
  24. package/dist/core/diff_review/index.js +2 -3
  25. package/dist/core/diff_review/index.js.map +1 -1
  26. package/dist/core/diff_review/review_thread.js +48 -23
  27. package/dist/core/diff_review/review_thread.js.map +1 -1
  28. package/dist/core/diff_review/snapshot.js +40 -11
  29. package/dist/core/diff_review/snapshot.js.map +1 -1
  30. package/dist/core/events/parser.js +43 -12
  31. package/dist/core/events/parser.js.map +1 -1
  32. package/dist/core/index.js +0 -1
  33. package/dist/core/index.js.map +1 -1
  34. package/dist/core/modes/index.js +1 -2
  35. package/dist/core/modes/index.js.map +1 -1
  36. package/dist/core/modes/rpc_server.js +15 -321
  37. package/dist/core/modes/rpc_server.js.map +1 -1
  38. package/dist/core/modes/websocket_server.js +181 -0
  39. package/dist/core/modes/websocket_server.js.map +1 -0
  40. package/dist/core/personas.js +11 -1
  41. package/dist/core/personas.js.map +1 -1
  42. package/dist/core/runtime/chat_runtime.js +19 -12
  43. package/dist/core/runtime/chat_runtime.js.map +1 -1
  44. package/dist/core/runtime/conversation_turn_runtime.js +16 -1
  45. package/dist/core/runtime/conversation_turn_runtime.js.map +1 -1
  46. package/dist/core/runtime/runtime_bootstrap.js +326 -0
  47. package/dist/core/runtime/runtime_bootstrap.js.map +1 -1
  48. package/dist/core/session/compaction.js +13 -11
  49. package/dist/core/session/compaction.js.map +1 -1
  50. package/dist/core/session/core_session.js +9 -0
  51. package/dist/core/session/core_session.js.map +1 -1
  52. package/dist/core/session/direct_bash.js +34 -0
  53. package/dist/core/session/direct_bash.js.map +1 -0
  54. package/dist/core/session/pruning.js +595 -0
  55. package/dist/core/session/pruning.js.map +1 -0
  56. package/dist/core/session/runner.js +45 -5
  57. package/dist/core/session/runner.js.map +1 -1
  58. package/dist/core/session/session_engine.js +84 -10
  59. package/dist/core/session/session_engine.js.map +1 -1
  60. package/dist/core/static/prompts/diff-review-wrapper.md +1 -1
  61. package/dist/core/subagents/subagent_engine.js +1 -1
  62. package/dist/core/subagents/subagent_engine.js.map +1 -1
  63. package/dist/core/tools/catalog.js.map +1 -1
  64. package/dist/core/tools/diff_review.js +12 -12
  65. package/dist/core/tools/diff_review.js.map +1 -1
  66. package/dist/core/tools/execution_backend.js +9 -2
  67. package/dist/core/tools/execution_backend.js.map +1 -1
  68. package/dist/core/tools/registry.js.map +1 -1
  69. package/dist/core/usage/logs.js.map +1 -1
  70. package/dist/core/utils/context.js +1 -1
  71. package/dist/core/utils/context.js.map +1 -1
  72. package/dist/core/utils/context_builder.js +1 -18
  73. package/dist/core/utils/context_builder.js.map +1 -1
  74. package/dist/core/utils/gemini_speech.js +1 -1
  75. package/dist/core/utils/gemini_speech.js.map +1 -1
  76. package/dist/core/utils/project_files.js +11 -16
  77. package/dist/core/utils/project_files.js.map +1 -1
  78. package/dist/core/utils/spawn_capture.js +2 -2
  79. package/dist/core/utils/spawn_capture.js.map +1 -1
  80. package/dist/core/version.js +1 -1
  81. package/dist/core/version.js.map +1 -1
  82. package/dist/execution/cloudflare_sandbox_execution_environment.js +400 -0
  83. package/dist/execution/cloudflare_sandbox_execution_environment.js.map +1 -0
  84. package/dist/execution/execution_environment.js +24 -0
  85. package/dist/execution/execution_environment.js.map +1 -0
  86. package/dist/execution/fly_sprite_execution_environment.js +559 -0
  87. package/dist/execution/fly_sprite_execution_environment.js.map +1 -0
  88. package/dist/execution/local_execution_environment.js +93 -0
  89. package/dist/execution/local_execution_environment.js.map +1 -0
  90. package/dist/execution/runtime_config_snapshot.js +209 -0
  91. package/dist/execution/runtime_config_snapshot.js.map +1 -0
  92. package/dist/execution/sandbox_tool_helpers.js +55 -0
  93. package/dist/execution/sandbox_tool_helpers.js.map +1 -0
  94. package/dist/execution/tool_backend_execution_environment.js +55 -0
  95. package/dist/execution/tool_backend_execution_environment.js.map +1 -0
  96. package/dist/host/hosted_ephemeral_agent_session.js +286 -0
  97. package/dist/host/hosted_ephemeral_agent_session.js.map +1 -0
  98. package/dist/host/index.js +3 -0
  99. package/dist/host/index.js.map +1 -0
  100. package/dist/host/local_session_host.js +1464 -0
  101. package/dist/host/local_session_host.js.map +1 -0
  102. package/dist/host/session_host.js +2 -0
  103. package/dist/host/session_host.js.map +1 -0
  104. package/dist/host/session_protocol_handler.js +873 -0
  105. package/dist/host/session_protocol_handler.js.map +1 -0
  106. package/dist/main.js +537 -77
  107. package/dist/main.js.map +1 -1
  108. package/dist/protocol/index.d.ts +2 -0
  109. package/dist/protocol/index.js +2 -0
  110. package/dist/protocol/index.js.map +1 -0
  111. package/dist/protocol/session_protocol.d.ts +691 -0
  112. package/dist/protocol/session_protocol.js +2117 -0
  113. package/dist/protocol/session_protocol.js.map +1 -0
  114. package/dist/sdk/client.d.ts +2 -1
  115. package/dist/sdk/client.js +136 -392
  116. package/dist/sdk/client.js.map +1 -1
  117. package/dist/sdk/index.d.ts +7 -4
  118. package/dist/sdk/index.js +4 -2
  119. package/dist/sdk/index.js.map +1 -1
  120. package/dist/sdk/session.d.ts +5 -0
  121. package/dist/sdk/session.js +406 -0
  122. package/dist/sdk/session.js.map +1 -0
  123. package/dist/sdk/types.d.ts +97 -78
  124. package/dist/store/file_session_store.js +157 -0
  125. package/dist/store/file_session_store.js.map +1 -0
  126. package/dist/store/memory_session_store.js +24 -0
  127. package/dist/store/memory_session_store.js.map +1 -0
  128. package/dist/store/session_store.js +32 -0
  129. package/dist/store/session_store.js.map +1 -0
  130. package/dist/transport/errors.d.ts +29 -0
  131. package/dist/{sdk → transport}/errors.js +5 -5
  132. package/dist/transport/errors.js.map +1 -0
  133. package/dist/transport/in_process_session_transport.js +102 -0
  134. package/dist/transport/in_process_session_transport.js.map +1 -0
  135. package/dist/transport/index.d.ts +7 -0
  136. package/dist/transport/index.js +4 -0
  137. package/dist/transport/index.js.map +1 -0
  138. package/dist/transport/pending_session_protocol_requests.js +67 -0
  139. package/dist/transport/pending_session_protocol_requests.js.map +1 -0
  140. package/dist/transport/session_protocol_transport_helpers.js +98 -0
  141. package/dist/transport/session_protocol_transport_helpers.js.map +1 -0
  142. package/dist/transport/session_transport.d.ts +11 -0
  143. package/dist/transport/session_transport.js +2 -0
  144. package/dist/transport/session_transport.js.map +1 -0
  145. package/dist/transport/stdio_session_transport.d.ts +38 -0
  146. package/dist/transport/stdio_session_transport.js +243 -0
  147. package/dist/transport/stdio_session_transport.js.map +1 -0
  148. package/dist/transport/websocket_session_transport.d.ts +52 -0
  149. package/dist/transport/websocket_session_transport.js +235 -0
  150. package/dist/transport/websocket_session_transport.js.map +1 -0
  151. package/dist/tui/chat_controller/assistant_clipboard.js +39 -0
  152. package/dist/tui/chat_controller/assistant_clipboard.js.map +1 -0
  153. package/dist/tui/chat_controller/command_hints.js +43 -0
  154. package/dist/tui/chat_controller/command_hints.js.map +1 -0
  155. package/dist/tui/chat_controller/diff_review_service.js +9 -9
  156. package/dist/tui/chat_controller/diff_review_service.js.map +1 -1
  157. package/dist/tui/chat_controller/diff_review_user_message.js +17 -0
  158. package/dist/tui/chat_controller/diff_review_user_message.js.map +1 -0
  159. package/dist/tui/chat_controller/history_labels.js +8 -0
  160. package/dist/tui/chat_controller/history_labels.js.map +1 -0
  161. package/dist/tui/chat_controller/history_message_model.js +36 -0
  162. package/dist/tui/chat_controller/history_message_model.js.map +1 -0
  163. package/dist/tui/chat_controller/status_format.js +22 -0
  164. package/dist/tui/chat_controller/status_format.js.map +1 -0
  165. package/dist/tui/chat_view.js +0 -1
  166. package/dist/tui/chat_view.js.map +1 -1
  167. package/dist/tui/index.js +1 -1
  168. package/dist/tui/index.js.map +1 -1
  169. package/dist/tui/listen_capture.js +87 -0
  170. package/dist/tui/listen_capture.js.map +1 -0
  171. package/dist/tui/memory_mode.js +23 -0
  172. package/dist/tui/memory_mode.js.map +1 -0
  173. package/dist/tui/session_chat_app.js +227 -0
  174. package/dist/tui/session_chat_app.js.map +1 -0
  175. package/dist/tui/session_chat_controller.js +2176 -0
  176. package/dist/tui/session_chat_controller.js.map +1 -0
  177. package/dist/tui/session_tool_execution_backend.js +170 -0
  178. package/dist/tui/session_tool_execution_backend.js.map +1 -0
  179. package/dist/tui/speech_playback.js +107 -0
  180. package/dist/tui/speech_playback.js.map +1 -0
  181. package/dist/tui/ui/assistant_message.js +27 -21
  182. package/dist/tui/ui/assistant_message.js.map +1 -1
  183. package/dist/tui/ui/chat_container.js +4 -0
  184. package/dist/tui/ui/chat_container.js.map +1 -1
  185. package/dist/tui/ui/custom_editor.js +0 -5
  186. package/dist/tui/ui/custom_editor.js.map +1 -1
  187. package/dist/tui/ui/slash_autocomplete.js +14 -36
  188. package/dist/tui/ui/slash_autocomplete.js.map +1 -1
  189. package/dist/tui/ui/tool_ui_registry.js +21 -0
  190. package/dist/tui/ui/tool_ui_registry.js.map +1 -1
  191. package/package.json +6 -3
  192. package/dist/core/config/bash_commands.js +0 -44
  193. package/dist/core/config/bash_commands.js.map +0 -1
  194. package/dist/core/diff_review/session.js.map +0 -1
  195. package/dist/core/modes/rpc_adapter.js +0 -17
  196. package/dist/core/modes/rpc_adapter.js.map +0 -1
  197. package/dist/core/modes/rpc_protocol.js +0 -500
  198. package/dist/core/modes/rpc_protocol.js.map +0 -1
  199. package/dist/core/session/checkpoint.js +0 -34
  200. package/dist/core/session/checkpoint.js.map +0 -1
  201. package/dist/sdk/errors.d.ts +0 -33
  202. package/dist/sdk/errors.js.map +0 -1
  203. package/dist/tui/app.js +0 -64
  204. package/dist/tui/app.js.map +0 -1
  205. package/dist/tui/chat_controller/session_maintenance_service.js +0 -634
  206. package/dist/tui/chat_controller/session_maintenance_service.js.map +0 -1
  207. package/dist/tui/chat_controller.js +0 -2579
  208. package/dist/tui/chat_controller.js.map +0 -1
@@ -0,0 +1,406 @@
1
+ import { validateSessionProtocolParams } from "../protocol/session_protocol.js";
2
+ import { TauSessionClientError, TauTransportError, } from "../transport/index.js";
3
+ const DEFAULT_CONNECT_TIMEOUT_MS = 5_000;
4
+ const DEFAULT_INITIALIZE_PARAMS = {
5
+ client: {
6
+ name: "tau-sdk",
7
+ version: "1",
8
+ },
9
+ };
10
+ export async function createTauSdkClientFromTransport(transport, options = {}) {
11
+ const initializeParams = resolveTauSdkInitializeParams(options.initialize);
12
+ const client = new TauSdkClientImpl(transport);
13
+ try {
14
+ await transport.connect(initializeParams, options.connectTimeoutMs ?? DEFAULT_CONNECT_TIMEOUT_MS);
15
+ return client;
16
+ }
17
+ catch (error) {
18
+ await client.close();
19
+ throw error;
20
+ }
21
+ }
22
+ class TauSdkClientImpl {
23
+ transport;
24
+ sessions;
25
+ constructor(transport) {
26
+ this.transport = transport;
27
+ this.sessions = new TauSdkSessionClientImpl(this);
28
+ }
29
+ get ready() {
30
+ return this.transport.ready;
31
+ }
32
+ subscribe(listener) {
33
+ return this.transport.onDelta(listener);
34
+ }
35
+ subscribeEphemeral(listener) {
36
+ return this.transport.onEphemeral(listener);
37
+ }
38
+ createObservedSession(sessionId) {
39
+ return new TauSdkSessionImpl(this, sessionId);
40
+ }
41
+ createSession(input) {
42
+ return this.transport.request("session.create", input);
43
+ }
44
+ listSessions() {
45
+ return this.transport.request("session.list", {});
46
+ }
47
+ observeSession(sessionId) {
48
+ return this.transport.request("session.observe", { sessionId });
49
+ }
50
+ unobserveSession(sessionId) {
51
+ return this.transport.request("session.unobserve", { sessionId });
52
+ }
53
+ async close() {
54
+ await this.transport.close();
55
+ }
56
+ sendSubmit(sessionId, text, options) {
57
+ return this.transport.request("session.submit", {
58
+ sessionId,
59
+ text,
60
+ ...(options.historyEntryId === undefined ? {} : { historyEntryId: options.historyEntryId }),
61
+ });
62
+ }
63
+ sendQueue(sessionId, text, options) {
64
+ return this.transport.request("session.queue", {
65
+ sessionId,
66
+ text,
67
+ ...(options.historyEntryId === undefined ? {} : { historyEntryId: options.historyEntryId }),
68
+ });
69
+ }
70
+ sendSteer(sessionId, text, options) {
71
+ return this.transport.request("session.steer", {
72
+ sessionId,
73
+ text,
74
+ ...(options.historyEntryId === undefined ? {} : { historyEntryId: options.historyEntryId }),
75
+ });
76
+ }
77
+ sendRecord(sessionId, text, options) {
78
+ return this.transport.request("session.record", {
79
+ sessionId,
80
+ text,
81
+ ...(options.historyEntryId === undefined ? {} : { historyEntryId: options.historyEntryId }),
82
+ });
83
+ }
84
+ sendRetry(sessionId) {
85
+ return this.transport.request("session.retry", { sessionId });
86
+ }
87
+ sendExec(sessionId, command, options = {}) {
88
+ return this.transport.request("session.exec", {
89
+ sessionId,
90
+ command,
91
+ ...(options.cwd !== undefined ? { cwd: options.cwd } : {}),
92
+ ...(options.timeoutMs !== undefined ? { timeoutMs: options.timeoutMs } : {}),
93
+ });
94
+ }
95
+ sendInterrupt(sessionId) {
96
+ return this.transport.request("session.interrupt", { sessionId });
97
+ }
98
+ sendSnapshot(sessionId) {
99
+ return this.transport.request("session.snapshot", { sessionId });
100
+ }
101
+ sendSetRisk(sessionId, riskLevel) {
102
+ return this.transport.request("session.setRisk", { sessionId, riskLevel });
103
+ }
104
+ sendSetReasoning(sessionId, reasoning) {
105
+ return this.transport.request("session.setReasoning", {
106
+ sessionId,
107
+ reasoning,
108
+ });
109
+ }
110
+ sendSetPersona(sessionId, personaId) {
111
+ return this.transport.request("session.setPersona", {
112
+ sessionId,
113
+ personaId,
114
+ });
115
+ }
116
+ sendResolvePrompt(sessionId, promptId) {
117
+ return this.transport.request("session.resolvePrompt", {
118
+ sessionId,
119
+ promptId,
120
+ });
121
+ }
122
+ sendAutocompletePaths(sessionId, options) {
123
+ return this.transport.request("session.autocompletePaths", {
124
+ sessionId,
125
+ query: options.query,
126
+ limit: options.limit,
127
+ });
128
+ }
129
+ sendReload(sessionId) {
130
+ return this.transport.request("session.reload", { sessionId });
131
+ }
132
+ sendCompact(sessionId, mode, options) {
133
+ return this.transport.request("session.compact", {
134
+ sessionId,
135
+ mode,
136
+ ...(options.guidance !== undefined ? { guidance: options.guidance } : {}),
137
+ });
138
+ }
139
+ sendPrune(sessionId, strategy, options) {
140
+ return this.transport.request("session.prune", {
141
+ sessionId,
142
+ strategy,
143
+ fraction: options.fraction,
144
+ ...(options.guidance !== undefined ? { guidance: options.guidance } : {}),
145
+ });
146
+ }
147
+ sendRewind(sessionId, historyEntryId) {
148
+ return this.transport.request("session.rewind", {
149
+ sessionId,
150
+ historyEntryId,
151
+ });
152
+ }
153
+ sendTerminateSubagent(sessionId, subagentId) {
154
+ return this.transport.request("session.terminateSubagent", {
155
+ sessionId,
156
+ subagentId,
157
+ });
158
+ }
159
+ sendEphemeralCreate(sessionId, options) {
160
+ return this.transport.request("session.ephemeral.create", {
161
+ sessionId,
162
+ instructions: options.instructions,
163
+ tools: options.tools,
164
+ riskLevel: options.riskLevel,
165
+ });
166
+ }
167
+ sendEphemeralSubmit(sessionId, options) {
168
+ return this.transport.request("session.ephemeral.submit", {
169
+ sessionId,
170
+ contextId: options.contextId,
171
+ threadId: options.threadId,
172
+ ...(options.forkFromThreadId !== undefined
173
+ ? { forkFromThreadId: options.forkFromThreadId }
174
+ : {}),
175
+ message: options.message,
176
+ });
177
+ }
178
+ sendEphemeralClose(sessionId, contextId) {
179
+ return this.transport.request("session.ephemeral.close", {
180
+ sessionId,
181
+ contextId,
182
+ });
183
+ }
184
+ }
185
+ export function resolveTauSdkInitializeParams(params) {
186
+ const candidate = params ?? DEFAULT_INITIALIZE_PARAMS;
187
+ const validated = validateSessionProtocolParams("initialize", candidate);
188
+ if (!validated.ok) {
189
+ throw new TauTransportError(validated.error.message);
190
+ }
191
+ return validated.value;
192
+ }
193
+ class TauSdkSessionClientImpl {
194
+ client;
195
+ constructor(client) {
196
+ this.client = client;
197
+ }
198
+ async create(input) {
199
+ const snapshot = await this.client.createSession(input);
200
+ const session = this.client.createObservedSession(snapshot.sessionId);
201
+ session.discardBufferedDeltasThrough(snapshot.revision);
202
+ return session;
203
+ }
204
+ async list() {
205
+ const result = await this.client.listSessions();
206
+ return result.sessions;
207
+ }
208
+ async observe(sessionId) {
209
+ const session = this.client.createObservedSession(sessionId);
210
+ try {
211
+ const snapshot = await this.client.observeSession(sessionId);
212
+ session.assertSessionId(snapshot.sessionId);
213
+ session.discardBufferedDeltasThrough(snapshot.revision);
214
+ return session;
215
+ }
216
+ catch (error) {
217
+ session.disposeLocal();
218
+ throw error;
219
+ }
220
+ }
221
+ }
222
+ class TauSdkSessionImpl {
223
+ client;
224
+ sessionId;
225
+ isUnobserved = false;
226
+ deltaListeners = new Set();
227
+ ephemeralListeners = new Set();
228
+ bufferedDeltas = [];
229
+ unsubscribeClientDeltas;
230
+ unsubscribeClientEphemeral;
231
+ constructor(client, sessionId) {
232
+ this.client = client;
233
+ this.sessionId = sessionId;
234
+ this.unsubscribeClientDeltas = this.client.subscribe((delta) => this.handleDelta(delta));
235
+ this.unsubscribeClientEphemeral = this.client.subscribeEphemeral((message) => this.handleEphemeral(message));
236
+ }
237
+ get id() {
238
+ return this.sessionId;
239
+ }
240
+ onDelta(listener) {
241
+ this.assertActive();
242
+ this.deltaListeners.add(listener);
243
+ for (const delta of this.bufferedDeltas.splice(0)) {
244
+ try {
245
+ listener(delta);
246
+ }
247
+ catch {
248
+ // SDK delta listeners must not break session event delivery.
249
+ }
250
+ }
251
+ return () => {
252
+ this.deltaListeners.delete(listener);
253
+ };
254
+ }
255
+ onEphemeral(listener) {
256
+ this.assertActive();
257
+ this.ephemeralListeners.add(listener);
258
+ return () => {
259
+ this.ephemeralListeners.delete(listener);
260
+ };
261
+ }
262
+ submit(text, options = {}) {
263
+ return this.client.sendSubmit(this.activeSessionId(), text, options);
264
+ }
265
+ async record(text, options = {}) {
266
+ return await this.client.sendRecord(this.activeSessionId(), text, options);
267
+ }
268
+ queue(text, options = {}) {
269
+ return this.client.sendQueue(this.activeSessionId(), text, options);
270
+ }
271
+ steer(text, options = {}) {
272
+ return this.client.sendSteer(this.activeSessionId(), text, options);
273
+ }
274
+ async retry() {
275
+ return await this.client.sendRetry(this.activeSessionId());
276
+ }
277
+ async exec(command, options = {}) {
278
+ return await this.client.sendExec(this.activeSessionId(), command, options);
279
+ }
280
+ async interrupt() {
281
+ return await this.client.sendInterrupt(this.activeSessionId());
282
+ }
283
+ async snapshot() {
284
+ const snapshot = await this.client.sendSnapshot(this.activeSessionId());
285
+ this.discardBufferedDeltasThrough(snapshot.revision);
286
+ return snapshot;
287
+ }
288
+ async setRiskLevel(riskLevel) {
289
+ const snapshot = await this.client.sendSetRisk(this.activeSessionId(), riskLevel);
290
+ this.discardBufferedDeltasThrough(snapshot.revision);
291
+ return snapshot;
292
+ }
293
+ async setReasoning(reasoning) {
294
+ const snapshot = await this.client.sendSetReasoning(this.activeSessionId(), reasoning);
295
+ this.discardBufferedDeltasThrough(snapshot.revision);
296
+ return snapshot;
297
+ }
298
+ async setPersona(personaId) {
299
+ const snapshot = await this.client.sendSetPersona(this.activeSessionId(), personaId);
300
+ this.discardBufferedDeltasThrough(snapshot.revision);
301
+ return snapshot;
302
+ }
303
+ async resolvePrompt(promptId) {
304
+ return await this.client.sendResolvePrompt(this.activeSessionId(), promptId);
305
+ }
306
+ async autocompletePaths(options) {
307
+ return await this.client.sendAutocompletePaths(this.activeSessionId(), options);
308
+ }
309
+ async reload() {
310
+ const result = await this.client.sendReload(this.activeSessionId());
311
+ this.discardBufferedDeltasThrough(result.snapshot.revision);
312
+ return result;
313
+ }
314
+ async compact(mode, options = {}) {
315
+ const result = await this.client.sendCompact(this.activeSessionId(), mode, options);
316
+ this.discardBufferedDeltasThrough(result.snapshot.revision);
317
+ return result;
318
+ }
319
+ async pruneToolResults(strategy, options) {
320
+ const result = await this.client.sendPrune(this.activeSessionId(), strategy, options);
321
+ this.discardBufferedDeltasThrough(result.snapshot.revision);
322
+ return result;
323
+ }
324
+ async rewindToHistoryEntryId(historyEntryId) {
325
+ const result = await this.client.sendRewind(this.activeSessionId(), historyEntryId);
326
+ this.discardBufferedDeltasThrough(result.snapshot.revision);
327
+ return result;
328
+ }
329
+ async terminateSubagent(subagentId) {
330
+ return await this.client.sendTerminateSubagent(this.activeSessionId(), subagentId);
331
+ }
332
+ async createEphemeralContext(options) {
333
+ return await this.client.sendEphemeralCreate(this.activeSessionId(), options);
334
+ }
335
+ async submitEphemeralThread(options) {
336
+ return await this.client.sendEphemeralSubmit(this.activeSessionId(), options);
337
+ }
338
+ async closeEphemeralContext(contextId) {
339
+ return await this.client.sendEphemeralClose(this.activeSessionId(), contextId);
340
+ }
341
+ async unobserve() {
342
+ const result = await this.client.unobserveSession(this.activeSessionId());
343
+ this.disposeLocal();
344
+ return result;
345
+ }
346
+ handleDelta(delta) {
347
+ if (this.isUnobserved || delta.sessionId !== this.sessionId) {
348
+ return;
349
+ }
350
+ if (this.deltaListeners.size === 0) {
351
+ this.bufferedDeltas.push(delta);
352
+ return;
353
+ }
354
+ for (const listener of [...this.deltaListeners]) {
355
+ try {
356
+ listener(delta);
357
+ }
358
+ catch {
359
+ // SDK delta listeners must not break session event delivery.
360
+ }
361
+ }
362
+ }
363
+ handleEphemeral(message) {
364
+ if (this.isUnobserved || message.sessionId !== this.sessionId) {
365
+ return;
366
+ }
367
+ for (const listener of [...this.ephemeralListeners]) {
368
+ try {
369
+ listener(message);
370
+ }
371
+ catch {
372
+ // SDK ephemeral listeners must not break event delivery.
373
+ }
374
+ }
375
+ }
376
+ assertSessionId(sessionId) {
377
+ if (sessionId !== this.sessionId) {
378
+ throw new TauSessionClientError(`observed session id '${sessionId}' did not match requested session id '${this.sessionId}'`);
379
+ }
380
+ }
381
+ discardBufferedDeltasThrough(revision) {
382
+ const retained = this.bufferedDeltas.filter((delta) => delta.toRevision > revision);
383
+ this.bufferedDeltas.splice(0, this.bufferedDeltas.length, ...retained);
384
+ }
385
+ disposeLocal() {
386
+ if (this.isUnobserved) {
387
+ return;
388
+ }
389
+ this.isUnobserved = true;
390
+ this.unsubscribeClientDeltas();
391
+ this.unsubscribeClientEphemeral();
392
+ this.deltaListeners.clear();
393
+ this.ephemeralListeners.clear();
394
+ this.bufferedDeltas.splice(0);
395
+ }
396
+ activeSessionId() {
397
+ this.assertActive();
398
+ return this.sessionId;
399
+ }
400
+ assertActive() {
401
+ if (this.isUnobserved) {
402
+ throw new TauSessionClientError("tau sdk session is unobserved");
403
+ }
404
+ }
405
+ }
406
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/sdk/session.ts"],"names":[],"mappings":"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"}
@@ -1,90 +1,109 @@
1
- import type { ChildProcessWithoutNullStreams, SpawnOptionsWithoutStdio } from "node:child_process";
2
- import type { Message } from "@earendil-works/pi-ai";
3
- export type TauSdkRequestId = string | number;
4
- export type TauSdkRpcMethod = "initialize" | "session.submit" | "session.interrupt" | "session.snapshot" | "session.reset" | "session.shutdown";
5
- export type TauSdkInitializeParams = {
6
- client: {
7
- name: string;
8
- version: string;
9
- };
10
- };
11
- export type TauSdkEvent = {
12
- version: 1;
13
- type: "event";
14
- event: {
15
- version: number;
16
- event: unknown;
17
- };
18
- requestId?: TauSdkRequestId;
19
- };
20
- export type TauSdkReadyMessage = {
21
- version: 1;
22
- type: "ready";
23
- sessionId: string;
24
- methods: TauSdkRpcMethod[];
25
- coreEventVersion: number;
26
- };
27
- export type TauSdkSessionSubmitResult = {
28
- userHistoryEntryId: string;
29
- turn: {
30
- aborted: boolean;
31
- blocked?: {
32
- reason: "auto-compaction-failed";
33
- message: string;
34
- };
35
- };
36
- };
37
- export type TauSdkSessionInterruptResult = {
38
- interrupted: boolean;
39
- isTurnRunning: boolean;
40
- };
41
- export type TauSdkHistoryEntry = {
42
- id: string;
43
- message: Message;
44
- };
45
- export type TauSdkSessionSnapshotResult = {
46
- sessionId: string;
47
- isTurnRunning: boolean;
48
- historyLength: number;
49
- history: Message[];
50
- historyEntries: TauSdkHistoryEntry[];
51
- };
52
- export type TauSdkSessionResetResult = {
53
- previousSessionId: string;
54
- sessionId: string;
55
- };
56
- export type TauSdkSessionShutdownResult = {
57
- shutdown: true;
1
+ import type { SessionProtocolAutocompletePathsResult, SessionProtocolCompactResult, SessionProtocolCreateParams, SessionProtocolDeltaMessage, SessionProtocolEphemeralAgentTool, SessionProtocolEphemeralCloseResult, SessionProtocolEphemeralCreateResult, SessionProtocolEphemeralMessage, SessionProtocolEphemeralSubmitResult, SessionProtocolExecResult, SessionProtocolInitializeParams, SessionProtocolInterruptResult, SessionProtocolMethod, SessionProtocolPruneResult, SessionProtocolQueueResult, SessionProtocolReadyMessage, SessionProtocolRecordResult, SessionProtocolReloadResult, SessionProtocolRequestId, SessionProtocolResolvePromptResult, SessionProtocolRetryResult, SessionProtocolRewindResult, SessionProtocolSessionSummary, SessionProtocolSnapshot, SessionProtocolSteerResult, SessionProtocolSubmitResult, SessionProtocolTerminateSubagentResult, SessionProtocolUnobserveResult } from "../protocol/session_protocol.js";
2
+ import type { WebSocketSessionProtocolTransportOptions } from "../transport/index.js";
3
+ export type TauSdkRequestId = SessionProtocolRequestId;
4
+ export type TauSdkSessionProtocolMethod = SessionProtocolMethod;
5
+ export type TauSdkInitializeParams = SessionProtocolInitializeParams;
6
+ export type TauSdkDelta = SessionProtocolDeltaMessage;
7
+ export type TauSdkEphemeral = SessionProtocolEphemeralMessage;
8
+ export type TauSdkReadyMessage = SessionProtocolReadyMessage;
9
+ export type TauSdkCreateSessionInput = SessionProtocolCreateParams;
10
+ export type TauSdkSessionSummary = SessionProtocolSessionSummary;
11
+ export type TauSdkSessionSubmitResult = SessionProtocolSubmitResult;
12
+ export type TauSdkSessionQueueResult = SessionProtocolQueueResult;
13
+ export type TauSdkSessionSteerResult = SessionProtocolSteerResult;
14
+ export type TauSdkSessionRecordResult = SessionProtocolRecordResult;
15
+ export type TauSdkSessionInterruptResult = SessionProtocolInterruptResult;
16
+ export type TauSdkSessionExecResult = SessionProtocolExecResult;
17
+ export type TauSdkSessionSnapshotResult = SessionProtocolSnapshot;
18
+ export type TauSdkSessionSetRiskResult = SessionProtocolSnapshot;
19
+ export type TauSdkSessionSetReasoningResult = SessionProtocolSnapshot;
20
+ export type TauSdkSessionSetPersonaResult = SessionProtocolSnapshot;
21
+ export type TauSdkSessionCompactResult = SessionProtocolCompactResult;
22
+ export type TauSdkSessionPruneResult = SessionProtocolPruneResult;
23
+ export type TauSdkSessionRewindResult = SessionProtocolRewindResult;
24
+ export type TauSdkSessionReloadResult = SessionProtocolReloadResult;
25
+ export type TauSdkResolvePromptResult = SessionProtocolResolvePromptResult;
26
+ export type TauSdkAutocompletePathsResult = SessionProtocolAutocompletePathsResult;
27
+ export type TauSdkSessionRetryResult = SessionProtocolRetryResult;
28
+ export type TauSdkSessionTerminateSubagentResult = SessionProtocolTerminateSubagentResult;
29
+ export type TauSdkSessionUnobserveResult = SessionProtocolUnobserveResult;
30
+ export type TauSdkEphemeralAgentTool = SessionProtocolEphemeralAgentTool;
31
+ export type TauSdkEphemeralCreateResult = SessionProtocolEphemeralCreateResult;
32
+ export type TauSdkEphemeralSubmitResult = SessionProtocolEphemeralSubmitResult;
33
+ export type TauSdkEphemeralCloseResult = SessionProtocolEphemeralCloseResult;
34
+ export type TauSdkTransportClientOptions = {
35
+ connectTimeoutMs?: number;
36
+ initialize?: TauSdkInitializeParams;
58
37
  };
59
- export type TauSdkSpawnFunction = (command: string, args: string[], options: SpawnOptionsWithoutStdio) => ChildProcessWithoutNullStreams;
60
- export type TauSdkClientOptions = {
38
+ export type TauSdkClientOptions = TauSdkTransportClientOptions & {
61
39
  cwd?: string;
62
- env?: NodeJS.ProcessEnv;
63
40
  persona?: string;
41
+ reasoning?: "none" | "minimal" | "low" | "medium" | "high" | "xhigh";
64
42
  riskLevel?: "read-only" | "read-write";
65
43
  noAgentContextFiles?: boolean;
66
- executable?: string;
67
- executableArgs?: string[];
68
- scriptPath?: string | null;
69
- scriptArgs?: string[];
70
- rpcArgs?: string[];
71
- connectTimeoutMs?: number;
72
- initialize?: TauSdkInitializeParams;
73
- spawn?: TauSdkSpawnFunction;
74
44
  };
75
- export type TauSdkSubmitOptions = {
45
+ export type TauSdkWebSocketClientOptions = TauSdkTransportClientOptions & WebSocketSessionProtocolTransportOptions;
46
+ export type TauSdkSessionUserMessageOptions = {
76
47
  historyEntryId?: string;
77
- mode?: "submit" | "steer";
78
48
  };
79
- export type TauSdkEventListener = (event: TauSdkEvent) => void;
80
- export type TauSdkClient = {
81
- readonly ready: TauSdkReadyMessage;
82
- submit(text: string, options?: TauSdkSubmitOptions): Promise<TauSdkSessionSubmitResult>;
83
- steer(text: string, options?: Omit<TauSdkSubmitOptions, "mode">): Promise<TauSdkSessionSubmitResult>;
49
+ export type TauSdkDeltaListener = (delta: TauSdkDelta) => void;
50
+ export type TauSdkEphemeralListener = (message: TauSdkEphemeral) => void;
51
+ export type TauSdkSession = {
52
+ readonly id: string;
53
+ onDelta(listener: TauSdkDeltaListener): () => void;
54
+ onEphemeral(listener: TauSdkEphemeralListener): () => void;
55
+ record(text: string, options?: TauSdkSessionUserMessageOptions): Promise<TauSdkSessionRecordResult>;
56
+ submit(text: string, options?: TauSdkSessionUserMessageOptions): Promise<TauSdkSessionSubmitResult>;
57
+ queue(text: string, options?: TauSdkSessionUserMessageOptions): Promise<TauSdkSessionQueueResult>;
58
+ steer(text: string, options?: TauSdkSessionUserMessageOptions): Promise<TauSdkSessionSteerResult>;
59
+ retry(): Promise<TauSdkSessionRetryResult>;
60
+ exec(command: string, options?: {
61
+ cwd?: string;
62
+ timeoutMs?: number;
63
+ }): Promise<TauSdkSessionExecResult>;
84
64
  interrupt(): Promise<TauSdkSessionInterruptResult>;
85
65
  snapshot(): Promise<TauSdkSessionSnapshotResult>;
86
- reset(): Promise<TauSdkSessionResetResult>;
87
- shutdown(): Promise<TauSdkSessionShutdownResult>;
66
+ setRiskLevel(riskLevel: "read-only" | "read-write"): Promise<TauSdkSessionSetRiskResult>;
67
+ setReasoning(reasoning: "none" | "minimal" | "low" | "medium" | "high" | "xhigh"): Promise<TauSdkSessionSetReasoningResult>;
68
+ setPersona(personaId: string): Promise<TauSdkSessionSetPersonaResult>;
69
+ resolvePrompt(promptId: string): Promise<TauSdkResolvePromptResult>;
70
+ autocompletePaths(options: {
71
+ query: string;
72
+ limit: number;
73
+ }): Promise<TauSdkAutocompletePathsResult>;
74
+ reload(): Promise<TauSdkSessionReloadResult>;
75
+ compact(mode: "summary-only" | "summary-and-last", options?: {
76
+ guidance?: string;
77
+ }): Promise<TauSdkSessionCompactResult>;
78
+ pruneToolResults(strategy: "earliest" | "largest" | "smart", options: {
79
+ fraction: number;
80
+ guidance?: string;
81
+ }): Promise<TauSdkSessionPruneResult>;
82
+ rewindToHistoryEntryId(historyEntryId: string): Promise<TauSdkSessionRewindResult>;
83
+ terminateSubagent(subagentId: string): Promise<TauSdkSessionTerminateSubagentResult>;
84
+ createEphemeralContext(options: {
85
+ instructions: string;
86
+ tools: TauSdkEphemeralAgentTool[];
87
+ riskLevel: "read-only" | "read-write";
88
+ }): Promise<TauSdkEphemeralCreateResult>;
89
+ submitEphemeralThread(options: {
90
+ contextId: string;
91
+ threadId: string;
92
+ forkFromThreadId?: string;
93
+ message: string;
94
+ }): Promise<TauSdkEphemeralSubmitResult>;
95
+ closeEphemeralContext(contextId: string): Promise<TauSdkEphemeralCloseResult>;
96
+ unobserve(): Promise<TauSdkSessionUnobserveResult>;
97
+ };
98
+ export type TauSdkSessionClient = {
99
+ create(input: TauSdkCreateSessionInput): Promise<TauSdkSession>;
100
+ list(): Promise<TauSdkSessionSummary[]>;
101
+ observe(sessionId: string): Promise<TauSdkSession>;
102
+ };
103
+ export type TauSdkClient = {
104
+ readonly ready: TauSdkReadyMessage;
105
+ readonly sessions: TauSdkSessionClient;
106
+ subscribe(listener: TauSdkDeltaListener): () => void;
107
+ subscribeEphemeral(listener: TauSdkEphemeralListener): () => void;
88
108
  close(): Promise<void>;
89
- onEvent(listener: TauSdkEventListener): () => void;
90
109
  };