@markusylisiurunen/tau 0.3.21 → 0.3.22

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 (58) hide show
  1. package/dist/core/auth/auth_storage.js +249 -23
  2. package/dist/core/auth/auth_storage.js.map +1 -1
  3. package/dist/core/auth/cli.js +66 -0
  4. package/dist/core/auth/cli.js.map +1 -1
  5. package/dist/core/auth/credential_store.js +42 -10
  6. package/dist/core/auth/credential_store.js.map +1 -1
  7. package/dist/core/auth/index.js +1 -1
  8. package/dist/core/auth/index.js.map +1 -1
  9. package/dist/core/auth/providers/openai_codex.js +46 -22
  10. package/dist/core/auth/providers/openai_codex.js.map +1 -1
  11. package/dist/core/events/types.js +1 -7
  12. package/dist/core/events/types.js.map +1 -1
  13. package/dist/core/index.js +1 -2
  14. package/dist/core/index.js.map +1 -1
  15. package/dist/core/models/catalog.js +20 -24
  16. package/dist/core/models/catalog.js.map +1 -1
  17. package/dist/core/session/compaction.js +0 -4
  18. package/dist/core/session/compaction.js.map +1 -1
  19. package/dist/core/session/core_session.js +3 -0
  20. package/dist/core/session/core_session.js.map +1 -1
  21. package/dist/core/session/pruning.js +8 -17
  22. package/dist/core/session/pruning.js.map +1 -1
  23. package/dist/core/session/runner.js +12 -2
  24. package/dist/core/session/runner.js.map +1 -1
  25. package/dist/core/session/session_engine.js +62 -38
  26. package/dist/core/session/session_engine.js.map +1 -1
  27. package/dist/core/subagents/control_plane.js +8 -9
  28. package/dist/core/subagents/control_plane.js.map +1 -1
  29. package/dist/core/version.js +1 -1
  30. package/dist/execution/cloudflare_sandbox_execution_environment.js +54 -6
  31. package/dist/execution/cloudflare_sandbox_execution_environment.js.map +1 -1
  32. package/dist/host/hosted_ephemeral_agent_session.js +19 -14
  33. package/dist/host/hosted_ephemeral_agent_session.js.map +1 -1
  34. package/dist/host/local_session_host.js +269 -97
  35. package/dist/host/local_session_host.js.map +1 -1
  36. package/dist/host/session_host.js +2 -1
  37. package/dist/host/session_host.js.map +1 -1
  38. package/dist/host/session_protocol_handler.js +34 -5
  39. package/dist/host/session_protocol_handler.js.map +1 -1
  40. package/dist/main.js +17 -15
  41. package/dist/main.js.map +1 -1
  42. package/dist/protocol/session_protocol.d.ts +0 -1
  43. package/dist/protocol/session_protocol.js +103 -5
  44. package/dist/protocol/session_protocol.js.map +1 -1
  45. package/dist/store/file_session_store.js +223 -41
  46. package/dist/store/file_session_store.js.map +1 -1
  47. package/dist/transport/stdio_session_transport.d.ts +2 -0
  48. package/dist/transport/stdio_session_transport.js +30 -3
  49. package/dist/transport/stdio_session_transport.js.map +1 -1
  50. package/dist/tui/chat_controller/diff_review_service.js +8 -5
  51. package/dist/tui/chat_controller/diff_review_service.js.map +1 -1
  52. package/dist/tui/session_chat_controller.js +113 -46
  53. package/dist/tui/session_chat_controller.js.map +1 -1
  54. package/package.json +3 -3
  55. package/dist/core/events/index.js +0 -3
  56. package/dist/core/events/index.js.map +0 -1
  57. package/dist/core/events/parser.js +0 -334
  58. package/dist/core/events/parser.js.map +0 -1
@@ -1,334 +0,0 @@
1
- import { CORE_EVENT_VERSION, } from "./types.js";
2
- const stopReasons = ["stop", "length", "toolUse", "error", "aborted"];
3
- const subagentStatuses = ["running", "success", "error", "aborted"];
4
- const noticeSeverities = ["info", "warn", "error"];
5
- const compactionReasons = ["threshold"];
6
- const compactionOutcomes = ["compacted", "skipped", "aborted", "failed"];
7
- const compactionCutTypes = ["turn-boundary", "split-turn"];
8
- const fail = (message) => ({ ok: false, message });
9
- export function parseCoreEvent(value) {
10
- const parsed = safeParseCoreEvent(value);
11
- if (!parsed.ok)
12
- throw new Error(parsed.message);
13
- return parsed.value;
14
- }
15
- export function safeParseCoreEvent(value) {
16
- if (!isRecord(value)) {
17
- return fail("core event payload must be an object");
18
- }
19
- if (typeof value.type !== "string") {
20
- return fail("core event payload.type must be a string");
21
- }
22
- if (!isValidCoreEvent(value, value.type)) {
23
- return fail("invalid core event payload");
24
- }
25
- return { ok: true, value: stripCoreEvent(value) };
26
- }
27
- export function parseCoreEventEnvelope(value) {
28
- const parsed = safeParseCoreEventEnvelope(value);
29
- if (!parsed.ok)
30
- throw new Error(parsed.message);
31
- return parsed.value;
32
- }
33
- export function safeParseCoreEventEnvelope(value) {
34
- if (!isRecord(value)) {
35
- return fail("core event envelope must be an object");
36
- }
37
- if (!isCoreEventVersion(value.version)) {
38
- return fail(`unsupported core event version: ${String(value.version)}`);
39
- }
40
- const event = safeParseCoreEvent(value.event);
41
- if (!event.ok) {
42
- return fail(`invalid core event envelope: ${event.message}`);
43
- }
44
- return {
45
- ok: true,
46
- value: {
47
- version: CORE_EVENT_VERSION,
48
- event: event.value,
49
- },
50
- };
51
- }
52
- export function isCoreEventVersion(value) {
53
- return value === CORE_EVENT_VERSION;
54
- }
55
- function stripCoreEvent(value) {
56
- switch (value.type) {
57
- case "assistant_start":
58
- return { type: "assistant_start", historyEntryId: value.historyEntryId };
59
- case "assistant_final":
60
- return {
61
- type: "assistant_final",
62
- historyEntryId: value.historyEntryId,
63
- message: value.message,
64
- };
65
- case "assistant_partial": {
66
- const snapshot = value.snapshot;
67
- return {
68
- type: "assistant_partial",
69
- historyEntryId: value.historyEntryId,
70
- snapshot: {
71
- text: snapshot.text,
72
- thinking: snapshot.thinking,
73
- toolCalls: snapshot.toolCalls,
74
- hasTextStarted: snapshot.hasTextStarted,
75
- hasAnyThinking: snapshot.hasAnyThinking,
76
- },
77
- };
78
- }
79
- case "notice":
80
- return {
81
- type: "notice",
82
- severity: value.severity,
83
- text: value.text,
84
- };
85
- case "tool_ui":
86
- return {
87
- type: "tool_ui",
88
- uiEvent: value.uiEvent,
89
- };
90
- case "subagent_ui":
91
- return {
92
- type: "subagent_ui",
93
- event: value.event,
94
- originHistoryEntryId: value.originHistoryEntryId,
95
- };
96
- case "tool_result":
97
- return {
98
- type: "tool_result",
99
- historyEntryId: value.historyEntryId,
100
- message: value.message,
101
- };
102
- case "tool_recovery":
103
- return {
104
- type: "tool_recovery",
105
- historyEntryId: value.historyEntryId,
106
- message: value.message,
107
- toolResults: value.toolResults,
108
- };
109
- case "compaction_start":
110
- return { type: "compaction_start", reason: "threshold" };
111
- case "compaction_end":
112
- return stripCompactionEndEvent(value);
113
- default:
114
- throw new Error("invalid core event payload");
115
- }
116
- }
117
- function stripCompactionEndEvent(value) {
118
- switch (value.outcome) {
119
- case "compacted": {
120
- const result = value.result;
121
- return {
122
- type: "compaction_end",
123
- reason: "threshold",
124
- outcome: "compacted",
125
- result: {
126
- summaryHistoryEntryId: result.summaryHistoryEntryId,
127
- continuationHistoryEntryId: result.continuationHistoryEntryId,
128
- compactionMessage: result.compactionMessage,
129
- cutType: result.cutType,
130
- retainedMessageCount: result.retainedMessageCount,
131
- },
132
- };
133
- }
134
- case "failed":
135
- return {
136
- type: "compaction_end",
137
- reason: "threshold",
138
- outcome: "failed",
139
- errorMessage: value.errorMessage,
140
- };
141
- case "skipped":
142
- return { type: "compaction_end", reason: "threshold", outcome: "skipped" };
143
- case "aborted":
144
- return { type: "compaction_end", reason: "threshold", outcome: "aborted" };
145
- default:
146
- throw new Error("invalid core event payload");
147
- }
148
- }
149
- function isValidCoreEvent(value, eventType) {
150
- switch (eventType) {
151
- case "assistant_start":
152
- return typeof value.historyEntryId === "string";
153
- case "assistant_final":
154
- return typeof value.historyEntryId === "string" && isAssistantMessage(value.message);
155
- case "assistant_partial":
156
- return typeof value.historyEntryId === "string" && isAssistantPartialSnapshot(value.snapshot);
157
- case "notice":
158
- return isOneOf(value.severity, noticeSeverities) && typeof value.text === "string";
159
- case "tool_ui":
160
- return isToolUiEvent(value.uiEvent);
161
- case "subagent_ui":
162
- return typeof value.originHistoryEntryId === "string" && isSubagentUiEvent(value.event);
163
- case "tool_result":
164
- return typeof value.historyEntryId === "string" && isToolResultMessage(value.message);
165
- case "tool_recovery":
166
- return (typeof value.historyEntryId === "string" &&
167
- isUserMessage(value.message) &&
168
- Array.isArray(value.toolResults) &&
169
- value.toolResults.every(isToolResultMessage));
170
- case "compaction_start":
171
- return isOneOf(value.reason, compactionReasons);
172
- case "compaction_end":
173
- return isCompactionEndEvent(value);
174
- default:
175
- return false;
176
- }
177
- }
178
- function isCompactionEndEvent(value) {
179
- if (!isOneOf(value.reason, compactionReasons) || !isOneOf(value.outcome, compactionOutcomes)) {
180
- return false;
181
- }
182
- switch (value.outcome) {
183
- case "compacted":
184
- return value.errorMessage === undefined && isCompactionResult(value.result);
185
- case "failed":
186
- return value.result === undefined && typeof value.errorMessage === "string";
187
- case "skipped":
188
- case "aborted":
189
- return value.result === undefined && value.errorMessage === undefined;
190
- }
191
- }
192
- function isCompactionResult(value) {
193
- return (isRecord(value) &&
194
- typeof value.summaryHistoryEntryId === "string" &&
195
- typeof value.continuationHistoryEntryId === "string" &&
196
- typeof value.compactionMessage === "string" &&
197
- isOneOf(value.cutType, compactionCutTypes) &&
198
- isPositiveInteger(value.retainedMessageCount));
199
- }
200
- function isPositiveInteger(value) {
201
- return typeof value === "number" && Number.isInteger(value) && value > 0;
202
- }
203
- function isAssistantMessage(value) {
204
- return (isRecord(value) &&
205
- value.role === "assistant" &&
206
- Array.isArray(value.content) &&
207
- value.content.every(isAssistantContent) &&
208
- typeof value.api === "string" &&
209
- typeof value.provider === "string" &&
210
- typeof value.model === "string" &&
211
- isRecord(value.usage) &&
212
- isOneOf(value.stopReason, stopReasons) &&
213
- isFiniteNumber(value.timestamp));
214
- }
215
- function isAssistantContent(value) {
216
- if (!isRecord(value)) {
217
- return false;
218
- }
219
- if (value.type === "text") {
220
- return typeof value.text === "string";
221
- }
222
- if (value.type === "thinking") {
223
- return typeof value.thinking === "string";
224
- }
225
- return isToolCall(value);
226
- }
227
- function isToolResultMessage(value) {
228
- return (isRecord(value) &&
229
- value.role === "toolResult" &&
230
- typeof value.toolCallId === "string" &&
231
- typeof value.toolName === "string" &&
232
- Array.isArray(value.content) &&
233
- value.content.every(isUserContent) &&
234
- typeof value.isError === "boolean" &&
235
- isFiniteNumber(value.timestamp));
236
- }
237
- function isUserMessage(value) {
238
- return (isRecord(value) &&
239
- value.role === "user" &&
240
- (typeof value.content === "string" ||
241
- (Array.isArray(value.content) && value.content.every(isUserContent))) &&
242
- isFiniteNumber(value.timestamp));
243
- }
244
- function isUserContent(value) {
245
- if (!isRecord(value)) {
246
- return false;
247
- }
248
- if (value.type === "text") {
249
- return typeof value.text === "string";
250
- }
251
- return (value.type === "image" && typeof value.data === "string" && typeof value.mimeType === "string");
252
- }
253
- function isToolCall(value) {
254
- return (isRecord(value) &&
255
- value.type === "toolCall" &&
256
- typeof value.id === "string" &&
257
- typeof value.name === "string" &&
258
- isRecord(value.arguments));
259
- }
260
- function isAssistantPartialSnapshot(value) {
261
- return (isRecord(value) &&
262
- typeof value.text === "string" &&
263
- typeof value.thinking === "string" &&
264
- Array.isArray(value.toolCalls) &&
265
- value.toolCalls.every(isToolCall) &&
266
- typeof value.hasTextStarted === "boolean" &&
267
- typeof value.hasAnyThinking === "boolean" &&
268
- (value.hasTextStarted || value.text.length === 0) &&
269
- (value.hasAnyThinking || value.thinking.length === 0));
270
- }
271
- function isToolUiEvent(value) {
272
- if (!isRecord(value) || typeof value.type !== "string") {
273
- return false;
274
- }
275
- if (value.type === "tool_pruned") {
276
- return typeof value.toolCallId === "string" && typeof value.content === "string";
277
- }
278
- if (value.type === "tool_call_queued") {
279
- return (typeof value.toolCallId === "string" &&
280
- typeof value.toolName === "string" &&
281
- typeof value.headerTarget === "string");
282
- }
283
- return typeof value.headerTarget === "string";
284
- }
285
- function isSubagentUiEvent(value) {
286
- if (!isRecord(value) || typeof value.type !== "string") {
287
- return false;
288
- }
289
- switch (value.type) {
290
- case "subagent_spawned":
291
- case "subagent_finished":
292
- return isSubagentState(value.state);
293
- case "subagent_progress":
294
- return (typeof value.id === "string" &&
295
- typeof value.text === "string" &&
296
- isFiniteNumber(value.costTotal) &&
297
- isFiniteNumber(value.turns) &&
298
- isFiniteNumber(value.toolCalls) &&
299
- isSubagentUsageSnapshot(value.usage));
300
- case "subagent_emit_output":
301
- return typeof value.id === "string" && typeof value.text === "string";
302
- case "subagent_abort_requested":
303
- return typeof value.id === "string";
304
- default:
305
- return false;
306
- }
307
- }
308
- function isSubagentState(value) {
309
- return (isRecord(value) &&
310
- typeof value.id === "string" &&
311
- typeof value.name === "string" &&
312
- typeof value.title === "string" &&
313
- isOneOf(value.status, subagentStatuses) &&
314
- isSubagentUsageSnapshot(value.usage));
315
- }
316
- function isSubagentUsageSnapshot(value) {
317
- return (isRecord(value) &&
318
- isFiniteNumber(value.input) &&
319
- isFiniteNumber(value.output) &&
320
- isFiniteNumber(value.cacheRead) &&
321
- isFiniteNumber(value.cacheWrite) &&
322
- isFiniteNumber(value.contextWindowUsageTokens) &&
323
- isFiniteNumber(value.contextWindow));
324
- }
325
- function isRecord(value) {
326
- return typeof value === "object" && value !== null && !Array.isArray(value);
327
- }
328
- function isFiniteNumber(value) {
329
- return typeof value === "number" && Number.isFinite(value);
330
- }
331
- function isOneOf(value, values) {
332
- return typeof value === "string" && values.includes(value);
333
- }
334
- //# sourceMappingURL=parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/core/events/parser.ts"],"names":[],"mappings":"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"}