@love-moon/tui-driver 0.2.11 → 0.2.13

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 (73) hide show
  1. package/dist/driver/TuiDriver.d.ts +73 -0
  2. package/dist/driver/TuiDriver.d.ts.map +1 -1
  3. package/dist/driver/TuiDriver.js +1122 -42
  4. package/dist/driver/TuiDriver.js.map +1 -1
  5. package/dist/driver/TuiProfile.d.ts +2 -0
  6. package/dist/driver/TuiProfile.d.ts.map +1 -1
  7. package/dist/driver/TuiProfile.js.map +1 -1
  8. package/dist/driver/behavior/claude.behavior.d.ts +4 -0
  9. package/dist/driver/behavior/claude.behavior.d.ts.map +1 -0
  10. package/dist/driver/behavior/claude.behavior.js +48 -0
  11. package/dist/driver/behavior/claude.behavior.js.map +1 -0
  12. package/dist/driver/behavior/copilot.behavior.d.ts +4 -0
  13. package/dist/driver/behavior/copilot.behavior.d.ts.map +1 -0
  14. package/dist/driver/behavior/copilot.behavior.js +52 -0
  15. package/dist/driver/behavior/copilot.behavior.js.map +1 -0
  16. package/dist/driver/behavior/default.behavior.d.ts +4 -0
  17. package/dist/driver/behavior/default.behavior.d.ts.map +1 -0
  18. package/dist/driver/behavior/default.behavior.js +13 -0
  19. package/dist/driver/behavior/default.behavior.js.map +1 -0
  20. package/dist/driver/behavior/index.d.ts +5 -0
  21. package/dist/driver/behavior/index.d.ts.map +1 -0
  22. package/dist/driver/behavior/index.js +10 -0
  23. package/dist/driver/behavior/index.js.map +1 -0
  24. package/dist/driver/behavior/types.d.ts +57 -0
  25. package/dist/driver/behavior/types.d.ts.map +1 -0
  26. package/dist/driver/behavior/types.js +3 -0
  27. package/dist/driver/behavior/types.js.map +1 -0
  28. package/dist/driver/index.d.ts +4 -1
  29. package/dist/driver/index.d.ts.map +1 -1
  30. package/dist/driver/index.js +5 -1
  31. package/dist/driver/index.js.map +1 -1
  32. package/dist/driver/profiles/claudeCode.profile.d.ts.map +1 -1
  33. package/dist/driver/profiles/claudeCode.profile.js +7 -3
  34. package/dist/driver/profiles/claudeCode.profile.js.map +1 -1
  35. package/dist/driver/profiles/copilot.profile.d.ts.map +1 -1
  36. package/dist/driver/profiles/copilot.profile.js +4 -0
  37. package/dist/driver/profiles/copilot.profile.js.map +1 -1
  38. package/dist/extract/OutputExtractor.d.ts +16 -0
  39. package/dist/extract/OutputExtractor.d.ts.map +1 -1
  40. package/dist/extract/OutputExtractor.js +113 -5
  41. package/dist/extract/OutputExtractor.js.map +1 -1
  42. package/dist/index.d.ts +2 -1
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +4 -1
  45. package/dist/index.js.map +1 -1
  46. package/dist/pty/PtySession.d.ts +1 -0
  47. package/dist/pty/PtySession.d.ts.map +1 -1
  48. package/dist/pty/PtySession.js +9 -0
  49. package/dist/pty/PtySession.js.map +1 -1
  50. package/docs/how-to-add-a-new-backend.md +212 -0
  51. package/package.json +1 -1
  52. package/src/driver/TuiDriver.ts +1332 -45
  53. package/src/driver/TuiProfile.ts +3 -0
  54. package/src/driver/behavior/claude.behavior.ts +54 -0
  55. package/src/driver/behavior/copilot.behavior.ts +63 -0
  56. package/src/driver/behavior/default.behavior.ts +12 -0
  57. package/src/driver/behavior/index.ts +14 -0
  58. package/src/driver/behavior/types.ts +64 -0
  59. package/src/driver/index.ts +20 -1
  60. package/src/driver/profiles/claudeCode.profile.ts +7 -3
  61. package/src/driver/profiles/copilot.profile.ts +4 -0
  62. package/src/extract/OutputExtractor.ts +145 -5
  63. package/src/index.ts +15 -0
  64. package/src/pty/PtySession.ts +10 -0
  65. package/test/claude-profile.test.ts +41 -0
  66. package/test/claude-signals.test.ts +80 -0
  67. package/test/codex-session-discovery.test.ts +101 -0
  68. package/test/copilot-profile.test.ts +12 -0
  69. package/test/copilot-signals.test.ts +70 -0
  70. package/test/output-extractor.test.ts +79 -0
  71. package/test/session-file-extraction.test.ts +257 -0
  72. package/test/stream-detection.test.ts +28 -0
  73. package/test/timeout-resolution.test.ts +37 -0
@@ -4,6 +4,7 @@ import { TuiProfile } from "./TuiProfile.js";
4
4
  import { TuiState } from "./StateMachine.js";
5
5
  export interface TuiDriverOptions {
6
6
  profile: TuiProfile;
7
+ cwd?: string;
7
8
  debug?: boolean;
8
9
  onSnapshot?: (snapshot: ScreenSnapshot, state: TuiState) => void;
9
10
  onSignals?: (signals: TuiScreenSignals, snapshot: ScreenSnapshot, state: TuiState) => void;
@@ -22,6 +23,8 @@ export interface AskResult {
22
23
  replyInProgress?: boolean;
23
24
  statusLine?: string;
24
25
  statusDoneLine?: string;
26
+ sessionId?: string;
27
+ sessionFilePath?: string;
25
28
  }
26
29
  export type HealthReason = "healthy" | "login_required" | "permission_required" | "error_state" | "not_ready" | "process_exited";
27
30
  export interface HealthStatus {
@@ -39,32 +42,93 @@ export interface TuiScreenSignals {
39
42
  statusLine?: string;
40
43
  statusDoneLine?: string;
41
44
  }
45
+ export interface TuiSessionInfo {
46
+ backend: string;
47
+ sessionId: string;
48
+ sessionFilePath: string;
49
+ }
50
+ export interface TuiSessionUsageSummary {
51
+ backend: string;
52
+ sessionId: string;
53
+ sessionFilePath: string;
54
+ tokenUsagePercent?: number;
55
+ contextUsagePercent?: number;
56
+ }
42
57
  export declare class TuiDriver extends EventEmitter {
43
58
  private pty;
44
59
  private screen;
45
60
  private expect;
46
61
  private stateMachine;
47
62
  private profile;
63
+ private behavior;
48
64
  private debug;
49
65
  private onSnapshot?;
50
66
  private onSignals?;
51
67
  private isBooted;
68
+ private isKilled;
69
+ private sessionCwd;
70
+ private sessionInfo;
71
+ private lastSessionInfo;
72
+ private sessionUsageCache;
73
+ private initialCommand;
74
+ private initialArgs;
52
75
  constructor(options: TuiDriverOptions);
53
76
  private setupEventHandlers;
54
77
  private log;
55
78
  get state(): TuiState;
56
79
  get running(): boolean;
80
+ getSessionInfo(): TuiSessionInfo | null;
81
+ ensureSessionInfo(timeoutMs?: number): Promise<TuiSessionInfo | null>;
82
+ getSessionUsageSummary(): Promise<TuiSessionUsageSummary | null>;
57
83
  boot(): Promise<void>;
58
84
  ensureReady(): Promise<void>;
59
85
  ask(prompt: string): Promise<AskResult>;
60
86
  private prepareTurn;
61
87
  private typePrompt;
62
88
  private submit;
89
+ private supportsSessionFileTracking;
90
+ private discoverSessionInfo;
91
+ private detectSessionInfoByBackend;
92
+ private detectCodexSessionInfo;
93
+ private detectClaudeSessionInfo;
94
+ private detectCopilotSessionInfo;
95
+ private querySqliteRow;
96
+ private encodeClaudeProjectPath;
97
+ private readWorkspaceYamlValue;
98
+ private pathExists;
99
+ private captureSessionFileCheckpoint;
100
+ private readSessionFileStat;
101
+ private waitForSessionFileGrowth;
102
+ private waitForSessionFileIdle;
103
+ private extractAnswerFromSessionFile;
104
+ private extractSessionUsageSummaryFromJsonLines;
105
+ private extractCodexUsageFromJsonLines;
106
+ private extractClaudeUsageFromJsonLines;
107
+ private extractCopilotUsageFromJsonLines;
108
+ private readNumberPath;
109
+ private normalizePercent;
110
+ private requiresSessionCompletionMarker;
111
+ private hasSessionCompletionMarker;
112
+ private readSessionFileJsonLines;
113
+ private extractAssistantReplyFromJsonLines;
114
+ private hasCodexTaskCompleteFromJsonLines;
115
+ private hasCopilotTurnEndFromJsonLines;
116
+ private extractCodexTaskCompleteMessageFromJsonLines;
117
+ private isCodexTaskCompleteEntry;
118
+ private isCopilotTurnEndEntry;
119
+ private summarizeForLog;
120
+ private extractCodexAssistantText;
121
+ private extractClaudeAssistantText;
122
+ private extractCopilotAssistantText;
63
123
  private waitStreamStart;
64
124
  private waitStreamEnd;
65
125
  private extractAnswer;
66
126
  private recovery;
67
127
  private restart;
128
+ private resolveRestartSessionInfo;
129
+ private resolveRestartArgs;
130
+ private stripResumeArgs;
131
+ private buildResumeArgsForBackend;
68
132
  private captureSnapshot;
69
133
  snapshot(): ScreenSnapshot;
70
134
  /**
@@ -83,12 +147,21 @@ export declare class TuiDriver extends EventEmitter {
83
147
  getSignals(snapshot?: ScreenSnapshot): TuiScreenSignals;
84
148
  sendKeys(keys: string[]): Promise<void>;
85
149
  write(data: string): Promise<void>;
150
+ forceRestart(): Promise<void>;
86
151
  kill(): void;
152
+ private createSessionClosedError;
153
+ private assertAliveOrThrow;
87
154
  private sleep;
88
155
  private terminateSessionForLoginRequired;
89
156
  private resolveTimeout;
157
+ private normalizeTimeoutValue;
158
+ private resolveMaxStageTimeoutMs;
90
159
  private waitForScrollbackIdle;
91
160
  private findLastMatch;
161
+ private anyAddedLineMatches;
162
+ private lineMatchesAny;
163
+ private hasNewScrollbackPatternSince;
164
+ private getChangedTailLines;
92
165
  private extractReplyBlocks;
93
166
  }
94
167
  //# sourceMappingURL=TuiDriver.d.ts.map
@@ -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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAQtC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAK3D,OAAO,EAAE,UAAU,EAAc,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAgB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI3D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,UAAU,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC5F;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,cAAc,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,gBAAgB,GAChB,qBAAqB,GACrB,aAAa,GACb,WAAW,GACX,gBAAgB,CAAC;AAErB,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAyBD,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,UAAU,CAAC,CAAsD;IACzE,OAAO,CAAC,SAAS,CAAC,CAAiF;IACnG,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAW;gBAElB,OAAO,EAAE,gBAAgB;IAiCrC,OAAO,CAAC,kBAAkB;IA0B1B,OAAO,CAAC,GAAG;IAMX,IAAI,KAAK,IAAI,QAAQ,CAEpB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,cAAc,IAAI,cAAc,GAAG,IAAI;IAKjC,iBAAiB,CAAC,SAAS,SAAuC,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAanG,sBAAsB,IAAI,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAoChE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2GrB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B5B,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;YAoI/B,WAAW;YAOX,UAAU;YAIV,MAAM;IAIpB,OAAO,CAAC,2BAA2B;YAKrB,mBAAmB;YA4BnB,0BAA0B;YAqB1B,sBAAsB;YA4CtB,uBAAuB;YAmFvB,wBAAwB;YAwDxB,cAAc;IAiB5B,OAAO,CAAC,uBAAuB;YAIjB,sBAAsB;YAkBtB,UAAU;YASV,4BAA4B;YAc5B,mBAAmB;YAiBnB,wBAAwB;YAsBxB,sBAAsB;YAwDtB,4BAA4B;IAsB1C,OAAO,CAAC,uCAAuC;IA0B/C,OAAO,CAAC,8BAA8B;IAuCtC,OAAO,CAAC,+BAA+B;IA+DvC,OAAO,CAAC,gCAAgC;IAkExC,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,+BAA+B;YAIzB,0BAA0B;YAkB1B,wBAAwB;IAuBtC,OAAO,CAAC,kCAAkC;IA8B1C,OAAO,CAAC,iCAAiC;IAezC,OAAO,CAAC,8BAA8B;IAetC,OAAO,CAAC,4CAA4C;IAqBpD,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,0BAA0B;IA0BlC,OAAO,CAAC,2BAA2B;YAWrB,eAAe;YAkDf,aAAa;IAoL3B,OAAO,CAAC,aAAa;YA0CP,QAAQ;YAwBR,OAAO;YAmBP,yBAAyB;IAgBvC,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,yBAAyB;IAkBjC,OAAO,CAAC,eAAe;IAcvB,QAAQ,IAAI,cAAc;IAI1B;;;OAGG;IACH,WAAW,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,YAAY;IA8DpD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IA4B/C,UAAU,CAAC,QAAQ,GAAE,cAAuC,GAAG,gBAAgB;IAoDzE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC,IAAI,IAAI,IAAI;IASZ,OAAO,CAAC,wBAAwB;IAMhC,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,gCAAgC;IAOxC,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,wBAAwB;YASlB,qBAAqB;IAyCnC,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,kBAAkB;CAgD3B"}