@love-moon/tui-driver 0.2.12 → 0.2.14

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.
@@ -5,6 +5,7 @@ import { TuiState } from "./StateMachine.js";
5
5
  export interface TuiDriverOptions {
6
6
  profile: TuiProfile;
7
7
  cwd?: string;
8
+ expectedSessionId?: string;
8
9
  debug?: boolean;
9
10
  onSnapshot?: (snapshot: ScreenSnapshot, state: TuiState) => void;
10
11
  onSignals?: (signals: TuiScreenSignals, snapshot: ScreenSnapshot, state: TuiState) => void;
@@ -23,6 +24,8 @@ export interface AskResult {
23
24
  replyInProgress?: boolean;
24
25
  statusLine?: string;
25
26
  statusDoneLine?: string;
27
+ sessionId?: string;
28
+ sessionFilePath?: string;
26
29
  }
27
30
  export type HealthReason = "healthy" | "login_required" | "permission_required" | "error_state" | "not_ready" | "process_exited";
28
31
  export interface HealthStatus {
@@ -40,6 +43,33 @@ export interface TuiScreenSignals {
40
43
  statusLine?: string;
41
44
  statusDoneLine?: string;
42
45
  }
46
+ export interface TuiSessionInfo {
47
+ backend: string;
48
+ sessionId: string;
49
+ sessionFilePath: string;
50
+ }
51
+ export interface TuiSessionUsageSummary {
52
+ backend: string;
53
+ sessionId: string;
54
+ sessionFilePath: string;
55
+ tokenUsagePercent?: number;
56
+ contextUsagePercent?: number;
57
+ }
58
+ export interface TuiSessionAssistantMessage {
59
+ backend: string;
60
+ sessionId: string;
61
+ sessionFilePath: string;
62
+ text: string;
63
+ timestamp?: string;
64
+ }
65
+ export interface TuiSessionAssistantMessageBatch {
66
+ backend: string;
67
+ sessionId: string;
68
+ sessionFilePath: string;
69
+ nextOffset: number;
70
+ fileSize: number;
71
+ messages: TuiSessionAssistantMessage[];
72
+ }
43
73
  export declare class TuiDriver extends EventEmitter {
44
74
  private pty;
45
75
  private screen;
@@ -52,22 +82,93 @@ export declare class TuiDriver extends EventEmitter {
52
82
  private onSignals?;
53
83
  private isBooted;
54
84
  private isKilled;
85
+ private sessionCwd;
86
+ private hasExplicitSessionCwd;
87
+ private expectedSessionId;
88
+ private sessionDetectStartSec;
89
+ private sessionDetectBaselineIds;
90
+ private sessionInfo;
91
+ private lastSessionInfo;
92
+ private sessionUsageCache;
93
+ private initialCommand;
94
+ private initialArgs;
55
95
  constructor(options: TuiDriverOptions);
56
96
  private setupEventHandlers;
57
97
  private log;
58
98
  get state(): TuiState;
59
99
  get running(): boolean;
100
+ getSessionInfo(): TuiSessionInfo | null;
101
+ ensureSessionInfo(timeoutMs?: number): Promise<TuiSessionInfo | null>;
102
+ getSessionUsageSummary(): Promise<TuiSessionUsageSummary | null>;
103
+ getSessionFileSize(sessionInfo?: TuiSessionInfo | null): Promise<number>;
104
+ readSessionAssistantMessagesSince(sessionInfo: TuiSessionInfo, startOffset?: number): Promise<TuiSessionAssistantMessageBatch>;
60
105
  boot(): Promise<void>;
61
106
  ensureReady(): Promise<void>;
62
107
  ask(prompt: string): Promise<AskResult>;
63
108
  private prepareTurn;
64
109
  private typePrompt;
65
110
  private submit;
111
+ private supportsSessionFileTracking;
112
+ private discoverSessionInfo;
113
+ private detectSessionInfoByBackend;
114
+ private getPinnedSessionIds;
115
+ private toSessionInfo;
116
+ private pickSessionDiscoveryCandidate;
117
+ private collectBaselineSessionIds;
118
+ private captureSessionBaseline;
119
+ private detectCodexSessionInfo;
120
+ private captureCodexSessionBaseline;
121
+ private collectClaudeSessionCandidates;
122
+ private captureClaudeSessionBaseline;
123
+ private detectClaudeSessionInfo;
124
+ private collectCopilotSessionCandidates;
125
+ private captureCopilotSessionBaseline;
126
+ private detectCopilotSessionInfo;
127
+ private querySqliteRows;
128
+ private querySqliteRow;
129
+ private encodeClaudeProjectPath;
130
+ private readWorkspaceYamlValue;
131
+ private pathExists;
132
+ private captureSessionFileCheckpoint;
133
+ private requiresSessionFileCheckpointForTurn;
134
+ private resolveSessionFileCheckpointForTurn;
135
+ private readSessionFileStat;
136
+ private waitForSessionFileGrowth;
137
+ private waitForSessionFileIdle;
138
+ private extractAnswerFromSessionFile;
139
+ private extractSessionUsageSummaryFromJsonLines;
140
+ private extractCodexUsageFromJsonLines;
141
+ private extractClaudeUsageFromJsonLines;
142
+ private extractCopilotUsageFromJsonLines;
143
+ private readNumberPath;
144
+ private normalizePercent;
145
+ private requiresSessionCompletionMarker;
146
+ private supportsSessionAssistantReplyIdleFallback;
147
+ private hasSessionCompletionMarker;
148
+ private readSessionFileJsonLines;
149
+ private readSessionFileLinesSince;
150
+ private hasSessionAssistantReply;
151
+ private extractAssistantReplyFromJsonLines;
152
+ private extractAssistantMessagesFromJsonLines;
153
+ private hasCodexTaskCompleteFromJsonLines;
154
+ private hasCopilotTurnEndFromJsonLines;
155
+ private extractCodexTaskCompleteMessageFromJsonLines;
156
+ private isCodexTaskCompleteEntry;
157
+ private isCopilotTurnStartEntry;
158
+ private isCopilotTurnEndEntry;
159
+ private summarizeForLog;
160
+ private extractCodexAssistantText;
161
+ private extractClaudeAssistantText;
162
+ private extractCopilotAssistantText;
66
163
  private waitStreamStart;
67
164
  private waitStreamEnd;
68
165
  private extractAnswer;
69
166
  private recovery;
70
167
  private restart;
168
+ private resolveRestartSessionInfo;
169
+ private resolveRestartArgs;
170
+ private stripResumeArgs;
171
+ private buildResumeArgsForBackend;
71
172
  private captureSnapshot;
72
173
  snapshot(): ScreenSnapshot;
73
174
  /**
@@ -86,12 +187,15 @@ export declare class TuiDriver extends EventEmitter {
86
187
  getSignals(snapshot?: ScreenSnapshot): TuiScreenSignals;
87
188
  sendKeys(keys: string[]): Promise<void>;
88
189
  write(data: string): Promise<void>;
190
+ forceRestart(): Promise<void>;
89
191
  kill(): void;
90
192
  private createSessionClosedError;
91
193
  private assertAliveOrThrow;
92
194
  private sleep;
93
195
  private terminateSessionForLoginRequired;
94
196
  private resolveTimeout;
197
+ private normalizeTimeoutValue;
198
+ private resolveMaxStageTimeoutMs;
95
199
  private waitForScrollbackIdle;
96
200
  private findLastMatch;
97
201
  private anyAddedLineMatches;
@@ -1 +1 @@
1
- {"version":3,"file":"TuiDriver.d.ts","sourceRoot":"","sources":["../../src/driver/TuiDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TuiDriver.d.ts","sourceRoot":"","sources":["../../src/driver/TuiDriver.ts"],"names":[],"mappings":"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"}