nterminal 1.2.78 → 1.2.80
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.
- package/SECURITY.md +6 -0
- package/dist/client/assets/MarkdownPreview-D2UZ6wJU.js +1 -0
- package/dist/client/assets/{TranscriptMarkdownBody-BkGu6YVq.js → TranscriptMarkdownBody-BFu2FzgT.js} +1 -1
- package/dist/client/assets/index-4MeJRcb6.js +57 -0
- package/dist/client/assets/{index-Bgqck-vt.js → index-BFs4imuQ.js} +1 -1
- package/dist/client/assets/index-rROkcwjD.css +1 -0
- package/dist/client/index.html +2 -2
- package/dist/scripts/onboarding.js +10 -1
- package/dist/scripts/onboarding.js.map +1 -1
- package/dist/server/agent/agentProxy.d.ts +7 -2
- package/dist/server/agent/agentProxy.js +75 -9
- package/dist/server/agent/agentProxy.js.map +1 -1
- package/dist/server/agent/agentRoutes.js +159 -33
- package/dist/server/agent/agentRoutes.js.map +1 -1
- package/dist/server/agent/agentWebSocketProxy.d.ts +10 -1
- package/dist/server/agent/agentWebSocketProxy.js +24 -4
- package/dist/server/agent/agentWebSocketProxy.js.map +1 -1
- package/dist/server/auth/authService.d.ts +18 -4
- package/dist/server/auth/authService.js +57 -6
- package/dist/server/auth/authService.js.map +1 -1
- package/dist/server/eventLoopDelayMonitor.d.ts +11 -0
- package/dist/server/eventLoopDelayMonitor.js +37 -0
- package/dist/server/eventLoopDelayMonitor.js.map +1 -0
- package/dist/server/http.js +11 -4
- package/dist/server/http.js.map +1 -1
- package/dist/server/index.js +18 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/agentManagementRoutes.d.ts +2 -1
- package/dist/server/routes/agentManagementRoutes.js +91 -37
- package/dist/server/routes/agentManagementRoutes.js.map +1 -1
- package/dist/server/routes/authRoutes.js +4 -1
- package/dist/server/routes/authRoutes.js.map +1 -1
- package/dist/server/routes/authenticatedSocketRegistry.d.ts +25 -0
- package/dist/server/routes/authenticatedSocketRegistry.js +171 -0
- package/dist/server/routes/authenticatedSocketRegistry.js.map +1 -0
- package/dist/server/routes/codeServerRoutes.d.ts +3 -1
- package/dist/server/routes/codeServerRoutes.js +139 -26
- package/dist/server/routes/codeServerRoutes.js.map +1 -1
- package/dist/server/routes/fileRoutes.js +1 -1
- package/dist/server/routes/fileRoutes.js.map +1 -1
- package/dist/server/routes/httpProxyBody.d.ts +2 -1
- package/dist/server/routes/httpProxyBody.js +8 -1
- package/dist/server/routes/httpProxyBody.js.map +1 -1
- package/dist/server/routes/socketBackpressure.d.ts +2 -0
- package/dist/server/routes/socketBackpressure.js +21 -10
- package/dist/server/routes/socketBackpressure.js.map +1 -1
- package/dist/server/routes/terminalRoutes.d.ts +4 -3
- package/dist/server/routes/terminalRoutes.js +62 -14
- package/dist/server/routes/terminalRoutes.js.map +1 -1
- package/dist/server/routes/terminalSocketMessage.d.ts +34 -0
- package/dist/server/routes/terminalSocketMessage.js +188 -0
- package/dist/server/routes/terminalSocketMessage.js.map +1 -0
- package/dist/server/routes/terminalWebSocket.d.ts +3 -1
- package/dist/server/routes/terminalWebSocket.js +191 -116
- package/dist/server/routes/terminalWebSocket.js.map +1 -1
- package/dist/server/routes/webSocketRelay.d.ts +14 -0
- package/dist/server/routes/webSocketRelay.js +188 -18
- package/dist/server/routes/webSocketRelay.js.map +1 -1
- package/dist/server/routes/webSocketUpgradeAuth.d.ts +5 -0
- package/dist/server/routes/webSocketUpgradeAuth.js +21 -0
- package/dist/server/routes/webSocketUpgradeAuth.js.map +1 -0
- package/dist/server/system/stats.d.ts +1 -1
- package/dist/server/system/stats.js +11 -7
- package/dist/server/system/stats.js.map +1 -1
- package/dist/server/terminal/PtyAdapter.d.ts +25 -8
- package/dist/server/terminal/PtyAdapter.js +12 -1
- package/dist/server/terminal/PtyAdapter.js.map +1 -1
- package/dist/server/terminal/TerminalManager.d.ts +71 -13
- package/dist/server/terminal/TerminalManager.js +955 -163
- package/dist/server/terminal/TerminalManager.js.map +1 -1
- package/dist/server/terminal/TmuxPtyAdapter.d.ts +85 -15
- package/dist/server/terminal/TmuxPtyAdapter.js +1364 -403
- package/dist/server/terminal/TmuxPtyAdapter.js.map +1 -1
- package/dist/server/terminal/asyncCommand.d.ts +17 -0
- package/dist/server/terminal/asyncCommand.js +60 -0
- package/dist/server/terminal/asyncCommand.js.map +1 -0
- package/dist/server/terminal/codexTranscriptSource.d.ts +3 -3
- package/dist/server/terminal/codexTranscriptSource.js +90 -104
- package/dist/server/terminal/codexTranscriptSource.js.map +1 -1
- package/dist/server/terminal/outputBuffer.d.ts +5 -1
- package/dist/server/terminal/outputBuffer.js +29 -3
- package/dist/server/terminal/outputBuffer.js.map +1 -1
- package/dist/server/terminal/procfs.d.ts +7 -8
- package/dist/server/terminal/procfs.js +56 -47
- package/dist/server/terminal/procfs.js.map +1 -1
- package/dist/server/terminal/transcriptHistory.d.ts +1 -1
- package/dist/server/terminal/transcriptHistory.js +187 -38
- package/dist/server/terminal/transcriptHistory.js.map +1 -1
- package/dist/server/terminal/ttlCache.d.ts +1 -0
- package/dist/server/terminal/ttlCache.js +3 -0
- package/dist/server/terminal/ttlCache.js.map +1 -1
- package/dist/shared/protocol.d.ts +24 -0
- package/dist/shared/protocol.js +25 -2
- package/dist/shared/protocol.js.map +1 -1
- package/package.json +1 -1
- package/dist/client/assets/MarkdownPreview-D5NthhhG.js +0 -1
- package/dist/client/assets/index-B3_mYQzf.css +0 -1
- package/dist/client/assets/index-gSePR0Ob.js +0 -57
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AppConfig } from '../config.js';
|
|
2
2
|
import type { ServerTerminalMessage, TerminalHistoryCursor, TerminalHistoryResponse, TerminalTranscriptHistoryResponse, TerminalTranscriptSourceResponse } from '../../shared/protocol.js';
|
|
3
3
|
import type { TerminalCompletionOutcome, TerminalId, TerminalSummary } from '../../shared/types.js';
|
|
4
|
-
import type
|
|
4
|
+
import { type PtyAdapter } from './PtyAdapter.js';
|
|
5
5
|
export interface CreateTerminalOptions {
|
|
6
6
|
parentTerminalId?: TerminalId;
|
|
7
7
|
cwd?: string;
|
|
@@ -23,8 +23,12 @@ export interface TerminalManagerOptions {
|
|
|
23
23
|
resolveCwd?: (pid: number) => Promise<string | null>;
|
|
24
24
|
now?: () => Date;
|
|
25
25
|
onCompletion?: (event: TerminalManagerCompletionEvent) => void | Promise<void>;
|
|
26
|
+
onDiagnostic?: (diagnostic: TerminalManagerDiagnostic) => void;
|
|
26
27
|
}
|
|
27
|
-
export interface
|
|
28
|
+
export interface TerminalControlOptions {
|
|
29
|
+
canExecute?: () => boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface WriteTerminalOptions extends TerminalControlOptions {
|
|
28
32
|
cancelScrollbackMode?: boolean;
|
|
29
33
|
}
|
|
30
34
|
export interface TerminalManagerCompletionEvent {
|
|
@@ -35,6 +39,24 @@ export interface TerminalManagerCompletionEvent {
|
|
|
35
39
|
commandName?: string | null;
|
|
36
40
|
occurredAt: string;
|
|
37
41
|
}
|
|
42
|
+
export interface TerminalManagerDiagnostic {
|
|
43
|
+
event: 'terminal.status_poll_failed' | 'terminal.process_snapshot_failed' | 'terminal.restore_failed' | 'terminal.transcript_poll_failed' | 'terminal.transcript_poll_slow' | 'terminal.destroy_failed' | 'terminal.close_failed';
|
|
44
|
+
terminalId?: TerminalId;
|
|
45
|
+
queueDepth?: number;
|
|
46
|
+
elapsedMs?: number;
|
|
47
|
+
error?: unknown;
|
|
48
|
+
}
|
|
49
|
+
export interface DestroyAllTerminalsResult {
|
|
50
|
+
requested: number;
|
|
51
|
+
destroyed: number;
|
|
52
|
+
failed: number;
|
|
53
|
+
}
|
|
54
|
+
export type RenameTerminalResult = {
|
|
55
|
+
status: 'renamed';
|
|
56
|
+
terminal: TerminalSummary;
|
|
57
|
+
} | {
|
|
58
|
+
status: 'not_found' | 'closing' | 'persistence_failed' | 'queue_full';
|
|
59
|
+
};
|
|
38
60
|
type TerminalSubscriber = (message: ServerTerminalMessage) => void;
|
|
39
61
|
export declare class TerminalManager {
|
|
40
62
|
private readonly config;
|
|
@@ -43,46 +65,78 @@ export declare class TerminalManager {
|
|
|
43
65
|
private readonly resolveCwd;
|
|
44
66
|
private readonly now;
|
|
45
67
|
private readonly onCompletion;
|
|
68
|
+
private readonly onDiagnostic;
|
|
46
69
|
private readonly shellBasename;
|
|
47
70
|
private readonly terminalCapabilities;
|
|
48
71
|
private readonly agentTranscriptTracker;
|
|
72
|
+
private readonly transcriptQueue;
|
|
73
|
+
private readonly lastDiagnosticAt;
|
|
49
74
|
private readonly completionStates;
|
|
50
75
|
private statusPollTimer;
|
|
76
|
+
private restoreRetryTimer;
|
|
77
|
+
private restoreInflight;
|
|
51
78
|
private statusPollInflight;
|
|
79
|
+
private activeTranscriptWorkers;
|
|
80
|
+
private readonly pendingInitializations;
|
|
81
|
+
private terminalResetBlockers;
|
|
82
|
+
private terminalMutationGeneration;
|
|
83
|
+
private shutdownRequested;
|
|
84
|
+
private disposed;
|
|
52
85
|
constructor(config: AppConfig, ptyAdapter: PtyAdapter, options?: TerminalManagerOptions);
|
|
53
86
|
private startStatusPoller;
|
|
87
|
+
private runStatusPoll;
|
|
54
88
|
private pollOnce;
|
|
89
|
+
private applyProcessSnapshot;
|
|
90
|
+
private scheduleTranscriptRefresh;
|
|
91
|
+
private pumpTranscriptQueue;
|
|
92
|
+
private refreshAgentTranscript;
|
|
93
|
+
private refreshAgentTranscriptOnce;
|
|
55
94
|
dispose(): void;
|
|
56
95
|
createTerminal(options?: CreateTerminalOptions): Promise<TerminalSummary>;
|
|
96
|
+
private createTerminalUntracked;
|
|
57
97
|
restoreSessions(): Promise<void>;
|
|
98
|
+
private restoreSessionsUntracked;
|
|
99
|
+
private scheduleRestoreRetry;
|
|
100
|
+
private clearRestoreRetryTimer;
|
|
58
101
|
private wireUpPty;
|
|
102
|
+
private finishPtyExit;
|
|
103
|
+
private applyPtyExitState;
|
|
104
|
+
private persistentSessionState;
|
|
105
|
+
private markSessionUnavailable;
|
|
59
106
|
private reattachToSession;
|
|
60
|
-
private captureTerminalHistoryCursor;
|
|
61
107
|
listTerminals(): TerminalSummary[];
|
|
62
108
|
getTerminal(id: TerminalId): TerminalSummary | null;
|
|
63
109
|
getOutputSnapshot(id: TerminalId): string[] | null;
|
|
64
110
|
getTerminalHistory(id: TerminalId, options?: {
|
|
65
111
|
beforeLine?: number;
|
|
112
|
+
snapshotHistorySize?: number;
|
|
113
|
+
snapshotHistoryLimit?: number;
|
|
114
|
+
snapshotHistoryToken?: string;
|
|
115
|
+
snapshotPaneWidth?: number;
|
|
66
116
|
limit?: number;
|
|
67
|
-
}): TerminalHistoryResponse | null
|
|
117
|
+
}): Promise<TerminalHistoryResponse | null>;
|
|
68
118
|
getTerminalTranscriptHistory(id: TerminalId, options?: {
|
|
69
119
|
cursor?: string;
|
|
70
120
|
limit?: number;
|
|
71
121
|
maxLines?: number;
|
|
72
122
|
includeTools?: boolean;
|
|
73
|
-
}): TerminalTranscriptHistoryResponse | null
|
|
74
|
-
getTerminalTranscriptSource(id: TerminalId): TerminalTranscriptSourceResponse | null
|
|
123
|
+
}): Promise<TerminalTranscriptHistoryResponse | null>;
|
|
124
|
+
getTerminalTranscriptSource(id: TerminalId): Promise<TerminalTranscriptSourceResponse | null>;
|
|
75
125
|
resolveTerminalCwd(id: TerminalId): Promise<string | null>;
|
|
76
|
-
renameTerminal(id: TerminalId, title: string):
|
|
126
|
+
renameTerminal(id: TerminalId, title: string): Promise<RenameTerminalResult>;
|
|
77
127
|
refreshTerminalCwd(id: TerminalId): Promise<TerminalSummary | null>;
|
|
78
128
|
attachTerminal(id: TerminalId, subscriber: TerminalSubscriber, options?: AttachTerminalOptions): TerminalAttachment | null;
|
|
79
|
-
writeToTerminal(id: TerminalId, data: string, options?: WriteTerminalOptions): boolean
|
|
80
|
-
scrollTerminalScrollback(id: TerminalId, lines: number): boolean
|
|
81
|
-
cancelTerminalScrollbackMode(id: TerminalId): boolean
|
|
129
|
+
writeToTerminal(id: TerminalId, data: string, options?: WriteTerminalOptions): Promise<boolean>;
|
|
130
|
+
scrollTerminalScrollback(id: TerminalId, lines: number, options?: TerminalControlOptions): Promise<boolean>;
|
|
131
|
+
cancelTerminalScrollbackMode(id: TerminalId, options?: TerminalControlOptions): Promise<boolean>;
|
|
82
132
|
resizeTerminal(id: TerminalId, cols: number, rows: number): boolean;
|
|
83
|
-
closeTerminal(id: TerminalId): boolean
|
|
84
|
-
|
|
85
|
-
|
|
133
|
+
closeTerminal(id: TerminalId): Promise<boolean>;
|
|
134
|
+
private sealPendingScroll;
|
|
135
|
+
private markClosing;
|
|
136
|
+
private recoverOrFinalizeFailedClose;
|
|
137
|
+
closeAll(): Promise<void>;
|
|
138
|
+
destroyAllTerminals(): Promise<DestroyAllTerminalsResult>;
|
|
139
|
+
private awaitPendingInitializations;
|
|
86
140
|
private ensureAttached;
|
|
87
141
|
private resolveInitialCwd;
|
|
88
142
|
private safeResolveCwd;
|
|
@@ -93,6 +147,10 @@ export declare class TerminalManager {
|
|
|
93
147
|
private resolveAgentTranscript;
|
|
94
148
|
private disposeRecord;
|
|
95
149
|
private createTitle;
|
|
150
|
+
private cancelQueuedTranscriptRefresh;
|
|
96
151
|
private timestamp;
|
|
152
|
+
private reportDiagnostic;
|
|
153
|
+
private canEnqueueControl;
|
|
154
|
+
private enqueueControl;
|
|
97
155
|
}
|
|
98
156
|
export {};
|