@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
@@ -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
  };