@markusylisiurunen/tau 0.3.41 → 0.3.43

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 (104) hide show
  1. package/README.md +14 -6
  2. package/dist/core/agent/agent_runtime.js +32 -44
  3. package/dist/core/agent/agent_runtime.js.map +1 -1
  4. package/dist/core/auth/auth_manager.js +25 -9
  5. package/dist/core/auth/auth_manager.js.map +1 -1
  6. package/dist/core/auth/auth_storage.js +1 -0
  7. package/dist/core/auth/auth_storage.js.map +1 -1
  8. package/dist/core/auth/cli.js +49 -35
  9. package/dist/core/auth/cli.js.map +1 -1
  10. package/dist/core/auth/credential_store.js +54 -22
  11. package/dist/core/auth/credential_store.js.map +1 -1
  12. package/dist/core/auth/index.js +1 -1
  13. package/dist/core/auth/index.js.map +1 -1
  14. package/dist/core/auth/providers/openai_codex.js +71 -23
  15. package/dist/core/auth/providers/openai_codex.js.map +1 -1
  16. package/dist/core/cli.js +4 -2
  17. package/dist/core/cli.js.map +1 -1
  18. package/dist/core/config/builtin_themes.js +62 -155
  19. package/dist/core/config/builtin_themes.js.map +1 -1
  20. package/dist/core/index.js +1 -1
  21. package/dist/core/index.js.map +1 -1
  22. package/dist/core/models/tau_model_overrides.js +1 -66
  23. package/dist/core/models/tau_model_overrides.js.map +1 -1
  24. package/dist/core/session/direct_bash.js +1 -0
  25. package/dist/core/session/direct_bash.js.map +1 -1
  26. package/dist/core/session/runner.js +21 -14
  27. package/dist/core/session/runner.js.map +1 -1
  28. package/dist/core/static/code_mode/capabilities.mjs +25 -0
  29. package/dist/core/static/code_mode/history/documentation.md +2 -0
  30. package/dist/core/static/code_mode/history/sandbox_runner.mjs +4 -1
  31. package/dist/core/static/code_mode/nook/documentation.md +2 -0
  32. package/dist/core/static/code_mode/nook/sandbox_runner.mjs +4 -1
  33. package/dist/core/static/code_mode/web/documentation.md +2 -0
  34. package/dist/core/static/code_mode/web/sandbox_runner.mjs +4 -1
  35. package/dist/core/subagents/agent_supervisor.js +3 -3
  36. package/dist/core/subagents/agent_supervisor.js.map +1 -1
  37. package/dist/core/telegram/adapter.js +0 -23
  38. package/dist/core/telegram/adapter.js.map +1 -1
  39. package/dist/core/telegram/session_manager.js +34 -7
  40. package/dist/core/telegram/session_manager.js.map +1 -1
  41. package/dist/core/tools/bash.js +10 -2
  42. package/dist/core/tools/bash.js.map +1 -1
  43. package/dist/core/tools/code_mode.js +1 -0
  44. package/dist/core/tools/code_mode.js.map +1 -1
  45. package/dist/core/tools/presentation.js +1 -1
  46. package/dist/core/utils/auto_retry.js +1 -1
  47. package/dist/core/utils/auto_retry.js.map +1 -1
  48. package/dist/core/version.js +1 -1
  49. package/dist/host/local_session_host.js +319 -198
  50. package/dist/host/local_session_host.js.map +1 -1
  51. package/dist/host/session_protocol_handler.js +1 -1
  52. package/dist/host/session_protocol_handler.js.map +1 -1
  53. package/dist/main.js +16 -2
  54. package/dist/main.js.map +1 -1
  55. package/dist/protocol/index.d.ts +2 -2
  56. package/dist/protocol/index.js +1 -1
  57. package/dist/protocol/index.js.map +1 -1
  58. package/dist/protocol/session_protocol.d.ts +115 -40
  59. package/dist/protocol/session_protocol.js +377 -98
  60. package/dist/protocol/session_protocol.js.map +1 -1
  61. package/dist/sdk/index.d.ts +1 -2
  62. package/dist/sdk/index.js +0 -1
  63. package/dist/sdk/index.js.map +1 -1
  64. package/dist/store/session_snapshot_migrations.js +311 -4
  65. package/dist/store/session_snapshot_migrations.js.map +1 -1
  66. package/dist/tui/chat_controller/assistant_clipboard.js +12 -8
  67. package/dist/tui/chat_controller/assistant_clipboard.js.map +1 -1
  68. package/dist/tui/chat_controller/diff_review_service.js +13 -9
  69. package/dist/tui/chat_controller/diff_review_service.js.map +1 -1
  70. package/dist/tui/chat_controller/history_message_model.js +3 -3
  71. package/dist/tui/chat_controller/history_message_model.js.map +1 -1
  72. package/dist/tui/chat_controller/status_format.js +18 -0
  73. package/dist/tui/chat_controller/status_format.js.map +1 -1
  74. package/dist/tui/chat_view.js +39 -38
  75. package/dist/tui/chat_view.js.map +1 -1
  76. package/dist/tui/session_chat_app.js +1 -3
  77. package/dist/tui/session_chat_app.js.map +1 -1
  78. package/dist/tui/session_chat_controller.js +375 -241
  79. package/dist/tui/session_chat_controller.js.map +1 -1
  80. package/dist/tui/speech_playback.js +4 -4
  81. package/dist/tui/speech_playback.js.map +1 -1
  82. package/dist/tui/ui/assistant_message.js +1 -15
  83. package/dist/tui/ui/assistant_message.js.map +1 -1
  84. package/dist/tui/ui/chat_message_model.js +26 -7
  85. package/dist/tui/ui/chat_message_model.js.map +1 -1
  86. package/dist/tui/ui/custom_editor.js +1 -1
  87. package/dist/tui/ui/custom_editor.js.map +1 -1
  88. package/dist/tui/ui/footer.js +161 -47
  89. package/dist/tui/ui/footer.js.map +1 -1
  90. package/dist/tui/ui/theme/palette.js +10 -16
  91. package/dist/tui/ui/theme/palette.js.map +1 -1
  92. package/dist/tui/ui/theme/theme.js.map +1 -1
  93. package/dist/tui/ui/tool_card.js +12 -9
  94. package/dist/tui/ui/tool_card.js.map +1 -1
  95. package/dist/tui/ui/transcript_notice.js +44 -0
  96. package/dist/tui/ui/transcript_notice.js.map +1 -0
  97. package/dist/tui/ui/transcript_text.js +14 -0
  98. package/dist/tui/ui/transcript_text.js.map +1 -0
  99. package/package.json +10 -12
  100. package/dist/sdk/turn_outcome.d.ts +0 -2
  101. package/dist/sdk/turn_outcome.js +0 -4
  102. package/dist/sdk/turn_outcome.js.map +0 -1
  103. package/dist/tui/ui/system_message.js +0 -22
  104. package/dist/tui/ui/system_message.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import type { AssistantMessage, Message, TextContent, ThinkingContent, Tool, ToolCall } from "@earendil-works/pi-ai";
2
- export declare const SESSION_PROTOCOL_VERSION: 8;
2
+ export declare const SESSION_PROTOCOL_VERSION: 9;
3
3
  export declare const SESSION_PROTOCOL_MAX_EXEC_CAPTURE_BYTES: number;
4
4
  export declare const SESSION_PROTOCOL_MAX_EXEC_STDIN_BYTES: number;
5
5
  export declare const SESSION_PROTOCOL_METHODS: readonly ["initialize", "session.create", "session.list", "session.observe", "session.unobserve", "session.record", "session.submit", "session.queue", "session.steer", "session.cancelPendingMessages", "session.retry", "session.exec", "session.cancelExec", "session.sample", "session.interrupt", "session.snapshot", "session.startGoal", "session.resumeGoal", "session.clearGoal", "session.setReasoning", "session.setPersona", "session.resolvePrompt", "session.autocompletePaths", "session.reload", "session.compact", "session.rewind", "session.interruptSubagent", "session.ephemeral.create", "session.ephemeral.submit", "session.ephemeral.close", "session.clientTool.ack", "session.clientTool.result"];
@@ -290,35 +290,87 @@ export type SessionProtocolMessage = {
290
290
  state: SessionProtocolMessageState;
291
291
  modelVisible: boolean;
292
292
  message: SessionProtocolMessagePayload;
293
- turn?: SessionProtocolTurnOutcome;
294
293
  };
294
+ export type SessionProtocolSubject = {
295
+ type: "session";
296
+ } | {
297
+ type: "message";
298
+ id: string;
299
+ } | {
300
+ type: "tool";
301
+ id: string;
302
+ } | {
303
+ type: "agent";
304
+ id: string;
305
+ } | {
306
+ type: "operation";
307
+ id: string;
308
+ };
309
+ export type SessionProtocolTimelineNotice = {
310
+ kind: string;
311
+ version: number;
312
+ severity: "info" | "warn" | "error";
313
+ subject: SessionProtocolSubject;
314
+ presentation: {
315
+ title: string;
316
+ content?: string[];
317
+ };
318
+ data: Record<string, unknown>;
319
+ };
320
+ export declare function projectSessionProtocolNoticePresentation(title: string, content?: readonly string[]): SessionProtocolTimelineNotice["presentation"];
295
321
  export type SessionProtocolTimelineItem = {
296
322
  type: "message";
297
323
  id: string;
324
+ sequence: number;
325
+ createdAt: number;
298
326
  messageId: string;
327
+ } | {
328
+ type: "tool";
329
+ id: string;
330
+ sequence: number;
331
+ createdAt: number;
332
+ toolId: string;
299
333
  } | {
300
334
  type: "notice";
301
335
  id: string;
302
- notice: SessionProtocolNotice;
336
+ sequence: number;
337
+ createdAt: number;
338
+ notice: SessionProtocolTimelineNotice;
303
339
  } | {
304
340
  type: "operation";
305
341
  id: string;
306
- operation: SessionProtocolOperation;
342
+ sequence: number;
343
+ createdAt: number;
344
+ operationId: string;
307
345
  };
308
- export type SessionProtocolNotice = {
309
- severity: "info" | "warn" | "error";
310
- text: string;
311
- timestamp: number;
346
+ export type SessionProtocolTimeline = {
347
+ epoch: number;
348
+ sequence: number;
349
+ items: SessionProtocolTimelineItem[];
312
350
  };
313
- export type SessionProtocolOperation = {
351
+ type SessionProtocolOperationBase = {
352
+ id: string;
314
353
  kind: "auto-compaction" | "manual-compaction" | "reload" | "rewind";
315
- status: "running" | "succeeded" | "failed" | "cancelled" | "skipped";
316
354
  startedAt: number;
317
- finishedAt?: number;
318
- summary?: string;
319
- error?: string;
320
- data?: Record<string, unknown>;
321
355
  };
356
+ export type SessionProtocolOperation = SessionProtocolOperationBase & ({
357
+ status: "running";
358
+ } | {
359
+ status: "succeeded";
360
+ finishedAt: number;
361
+ } | {
362
+ status: "failed";
363
+ finishedAt: number;
364
+ error: string;
365
+ } | {
366
+ status: "skipped";
367
+ finishedAt: number;
368
+ reason: "no-eligible-history";
369
+ } | {
370
+ status: "cancelled";
371
+ finishedAt: number;
372
+ reason: "interrupted" | "session-recovered";
373
+ });
322
374
  export type SessionProtocolPromptCompositionSnapshot = {
323
375
  environmentTag: string;
324
376
  subagentPrompts: Record<string, string>;
@@ -419,10 +471,10 @@ export type SessionProtocolFlySpriteExecutionEnvironmentSnapshot = {
419
471
  export type SessionProtocolExecutionEnvironmentSnapshot = SessionProtocolLocalExecutionEnvironmentSnapshot | SessionProtocolCloudflareSandboxExecutionEnvironmentSnapshot | SessionProtocolFlySpriteExecutionEnvironmentSnapshot;
420
472
  export type SessionProtocolAgentStateSnapshot = {
421
473
  revision: number;
422
- contextEpoch: string;
474
+ modelContextKey: string;
423
475
  usageCheckpoint?: {
424
476
  historyEntryId: string;
425
- contextEpoch: string;
477
+ modelContextKey: string;
426
478
  tokens: number;
427
479
  };
428
480
  };
@@ -444,8 +496,9 @@ export type SessionProtocolSnapshot = {
444
496
  catalog: SessionProtocolContentCatalogSnapshot;
445
497
  executionEnvironment: SessionProtocolExecutionEnvironmentSnapshot;
446
498
  messages: SessionProtocolMessage[];
447
- timeline: SessionProtocolTimelineItem[];
499
+ timeline: SessionProtocolTimeline;
448
500
  tools: Record<string, SessionProtocolToolRun>;
501
+ operations: Record<string, SessionProtocolOperation>;
449
502
  agents: Record<string, SessionProtocolAgentRun>;
450
503
  facets: Record<string, SessionProtocolFacet>;
451
504
  };
@@ -531,21 +584,7 @@ export type SessionProtocolAgentRun = {
531
584
  contextWindow: number;
532
585
  };
533
586
  };
534
- export type SessionProtocolFacetSubject = {
535
- type: "session";
536
- } | {
537
- type: "message";
538
- id: string;
539
- } | {
540
- type: "tool";
541
- id: string;
542
- } | {
543
- type: "agent";
544
- id: string;
545
- } | {
546
- type: "operation";
547
- id: string;
548
- };
587
+ export type SessionProtocolFacetSubject = SessionProtocolSubject;
549
588
  export type SessionProtocolFacet = {
550
589
  id: string;
551
590
  subject: SessionProtocolFacetSubject;
@@ -673,7 +712,22 @@ export type SessionProtocolParsedSuccessResponseMessage = Omit<SessionProtocolSu
673
712
  result: unknown;
674
713
  };
675
714
  export type SessionProtocolParsedResponseMessage = SessionProtocolParsedSuccessResponseMessage | SessionProtocolErrorResponseMessage;
676
- export type SessionProtocolDeltaReason = "user-message" | "assistant-stream" | "assistant-message" | "tool-run" | "tool-result" | "notice" | "agent-run" | "maintenance" | "configuration" | "goal" | "recovery";
715
+ export type SessionProtocolDeltaCause = {
716
+ type: "user-message" | "assistant-stream" | "assistant-message" | "tool-run" | "tool-result" | "notice" | "agent-run" | "maintenance" | "configuration" | "goal";
717
+ } | {
718
+ type: "compaction";
719
+ previousEpoch: number;
720
+ epoch: number;
721
+ kind: "auto" | "manual";
722
+ cutType: "turn-boundary" | "split-turn";
723
+ retainedMessageCount: number;
724
+ } | {
725
+ type: "rewind";
726
+ epoch: number;
727
+ cutoffSequence: number;
728
+ } | {
729
+ type: "resync";
730
+ };
677
731
  export type SessionProtocolChange = {
678
732
  type: "agent-state.set";
679
733
  agentState: SessionProtocolAgentStateSnapshot;
@@ -692,7 +746,6 @@ export type SessionProtocolChange = {
692
746
  } | {
693
747
  type: "message.append";
694
748
  message: SessionProtocolMessage;
695
- timelineItem?: SessionProtocolTimelineItem;
696
749
  } | {
697
750
  type: "message.replace";
698
751
  message: SessionProtocolMessage;
@@ -705,18 +758,25 @@ export type SessionProtocolChange = {
705
758
  } | {
706
759
  type: "timeline.append";
707
760
  item: SessionProtocolTimelineItem;
708
- } | {
709
- type: "timeline.replace";
710
- item: SessionProtocolTimelineItem;
711
761
  } | {
712
762
  type: "timeline.remove";
713
763
  id: string;
764
+ } | {
765
+ type: "timeline.advance";
766
+ epoch: number;
767
+ sequence: number;
714
768
  } | {
715
769
  type: "tool.set";
716
770
  tool: SessionProtocolToolRun;
717
771
  } | {
718
772
  type: "tool.remove";
719
773
  id: string;
774
+ } | {
775
+ type: "operation.set";
776
+ operation: SessionProtocolOperation;
777
+ } | {
778
+ type: "operation.remove";
779
+ id: string;
720
780
  } | {
721
781
  type: "agent.set";
722
782
  agent: SessionProtocolAgentRun;
@@ -743,7 +803,7 @@ export type SessionProtocolDeltaMessage = {
743
803
  sessionId: string;
744
804
  fromRevision: number | null;
745
805
  toRevision: number;
746
- reason: SessionProtocolDeltaReason;
806
+ cause: SessionProtocolDeltaCause;
747
807
  delta: SessionProtocolDelta;
748
808
  };
749
809
  export type SessionProtocolReadyMessage = {
@@ -786,7 +846,22 @@ export type SessionProtocolEphemeralAgentThreadUpdateEvent = {
786
846
  lastActivityText?: string;
787
847
  };
788
848
  };
789
- export type SessionProtocolEphemeralEvent = SessionProtocolEphemeralAgentThreadUpdateEvent;
849
+ export type SessionProtocolFeedbackTone = "default" | "error";
850
+ export type SessionProtocolFeedbackEvent = {
851
+ type: "feedback.notice";
852
+ title: string;
853
+ tone: SessionProtocolFeedbackTone;
854
+ presentation: "footer";
855
+ durationMs: number;
856
+ };
857
+ export type SessionProtocolEphemeralTimelineEvent = {
858
+ type: "timeline.item";
859
+ epoch: number;
860
+ item: Extract<SessionProtocolTimelineItem, {
861
+ type: "notice";
862
+ }>;
863
+ };
864
+ export type SessionProtocolEphemeralEvent = SessionProtocolEphemeralAgentThreadUpdateEvent | SessionProtocolFeedbackEvent | SessionProtocolEphemeralTimelineEvent;
790
865
  export type SessionProtocolEphemeralMessage = {
791
866
  version: typeof SESSION_PROTOCOL_VERSION;
792
867
  type: "session.ephemeral";
@@ -846,7 +921,7 @@ export declare function createSessionProtocolDeltaMessage(options: {
846
921
  sessionId: string;
847
922
  fromRevision: number | null;
848
923
  toRevision: number;
849
- reason: SessionProtocolDeltaReason;
924
+ cause: SessionProtocolDeltaCause;
850
925
  delta: SessionProtocolDelta;
851
926
  }): SessionProtocolDeltaMessage;
852
927
  export declare function createSessionProtocolEphemeralMessage(options: {