@agentuity/coder 1.0.40 → 1.0.41

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.
@@ -6,13 +6,53 @@ export interface HubToolDefinition {
6
6
  promptSnippet?: string;
7
7
  promptGuidelines?: string | string[];
8
8
  }
9
- /** Command definition sent by Hub for agent routing slash commands. */
10
9
  export interface HubCommandDefinition {
11
10
  name: string;
12
11
  description: string;
13
12
  }
13
+ export interface AckAction {
14
+ action: 'ACK';
15
+ }
16
+ export interface BlockAction {
17
+ action: 'BLOCK';
18
+ reason: string;
19
+ }
20
+ export interface ConfirmAction {
21
+ action: 'CONFIRM';
22
+ title: string;
23
+ message: string;
24
+ deny_reason?: string;
25
+ }
26
+ export interface NotifyAction {
27
+ action: 'NOTIFY';
28
+ message: string;
29
+ level?: 'info' | 'warning' | 'error';
30
+ }
31
+ export interface ReturnAction {
32
+ action: 'RETURN';
33
+ result: unknown;
34
+ }
35
+ export interface StatusAction {
36
+ action: 'STATUS';
37
+ key: string;
38
+ text?: string;
39
+ }
40
+ export interface SystemPromptAction {
41
+ action: 'SYSTEM_PROMPT';
42
+ systemPrompt: string;
43
+ mode?: 'replace' | 'prefix' | 'suffix';
44
+ }
45
+ export interface InjectMessageAction {
46
+ action: 'INJECT_MESSAGE';
47
+ message: {
48
+ role: 'user' | 'assistant';
49
+ content: string;
50
+ };
51
+ }
52
+ export type HubAction = AckAction | BlockAction | ConfirmAction | NotifyAction | ReturnAction | StatusAction | SystemPromptAction | InjectMessageAction;
14
53
  export interface AgentDefinition {
15
54
  name: string;
55
+ displayName?: string;
16
56
  description: string;
17
57
  systemPrompt: string;
18
58
  model?: string;
@@ -35,6 +75,12 @@ export interface InitMessage {
35
75
  commands?: HubCommandDefinition[];
36
76
  agents?: AgentDefinition[];
37
77
  config?: HubConfig;
78
+ model?: {
79
+ provider: string;
80
+ id: string;
81
+ };
82
+ thinkingLevel?: string;
83
+ task?: string;
38
84
  }
39
85
  export interface EventRequest {
40
86
  id: string;
@@ -49,7 +95,6 @@ export interface ToolRequest {
49
95
  toolCallId: string;
50
96
  params: Record<string, unknown>;
51
97
  }
52
- /** Command request (Client -> Server) for slash command execution. */
53
98
  export interface CommandRequest {
54
99
  id: string;
55
100
  type: 'command';
@@ -57,47 +102,178 @@ export interface CommandRequest {
57
102
  args: string;
58
103
  }
59
104
  export type HubRequest = EventRequest | ToolRequest | CommandRequest;
60
- export interface AckAction {
61
- action: 'ACK';
105
+ export interface SessionEntryMessage {
106
+ type: 'session_entry';
107
+ path: string;
108
+ line: string;
62
109
  }
63
- export interface BlockAction {
64
- action: 'BLOCK';
65
- reason: string;
110
+ export interface SessionWriteMessage {
111
+ type: 'session_write';
112
+ path: string;
113
+ content: string;
66
114
  }
67
- export interface ConfirmAction {
68
- action: 'CONFIRM';
69
- title: string;
70
- message: string;
71
- deny_reason?: string;
115
+ export interface RpcCommandMessage {
116
+ type: 'rpc_command';
117
+ command: Record<string, unknown>;
72
118
  }
73
- export interface NotifyAction {
74
- action: 'NOTIFY';
119
+ export interface RpcUiResponseMessage {
120
+ type: 'rpc_ui_response';
121
+ id: string;
122
+ result: unknown;
123
+ }
124
+ export interface PingMessage {
125
+ type: 'ping';
126
+ timestamp: number;
127
+ }
128
+ export type HubClientMessage = HubRequest | SessionEntryMessage | SessionWriteMessage | RpcCommandMessage | RpcUiResponseMessage | PingMessage;
129
+ export interface HubResponse {
130
+ id: string;
131
+ actions: HubAction[];
132
+ }
133
+ export interface CoderHubStreamReadyMessage {
134
+ type: 'session_stream_ready';
135
+ streamId: string;
136
+ streamUrl: string;
137
+ }
138
+ export interface CoderHubSessionResumeMessage {
139
+ type: 'session_resume';
140
+ streamUrl: string;
141
+ streamId: string;
142
+ activePrdKey?: string;
143
+ }
144
+ export interface ConnectionRejectedMessage {
145
+ type: 'connection_rejected';
146
+ code: string;
75
147
  message: string;
76
- level?: 'info' | 'warning' | 'error';
148
+ sessionId?: string;
149
+ reconnectState?: string;
150
+ expiredAt?: number;
151
+ timestamp: number;
77
152
  }
78
- export interface ReturnAction {
79
- action: 'RETURN';
80
- result: unknown;
153
+ export interface ConversationEntry {
154
+ type: 'message' | 'thinking' | 'tool_call' | 'tool_result' | 'task_result' | 'turn' | 'user_prompt';
155
+ agent?: string;
156
+ content?: string;
157
+ toolName?: string;
158
+ toolArgs?: Record<string, unknown>;
159
+ toolCallId?: string;
160
+ isError?: boolean;
161
+ taskId?: string;
162
+ timestamp: number;
81
163
  }
82
- export interface StatusAction {
83
- action: 'STATUS';
84
- key: string;
85
- text?: string;
164
+ export interface HydrationTaskState {
165
+ taskId: string;
166
+ agent: string;
167
+ status: 'running' | 'completed' | 'failed';
168
+ prompt: string;
169
+ duration?: number;
170
+ result?: string;
171
+ error?: string;
86
172
  }
87
- export interface SystemPromptAction {
88
- action: 'SYSTEM_PROMPT';
89
- systemPrompt: string;
90
- mode?: 'replace' | 'prefix' | 'suffix';
173
+ export interface SessionParticipant {
174
+ id: string;
175
+ role: 'lead' | 'observer' | 'controller';
176
+ transport: 'ws' | 'sse';
177
+ subscriptions: string[];
178
+ connectedAt: number;
179
+ lastActivity: number;
91
180
  }
92
- export interface InjectMessageAction {
93
- action: 'INJECT_MESSAGE';
94
- message: {
95
- role: 'user' | 'assistant';
96
- content: string;
181
+ export interface SessionStreamBlock {
182
+ output: string;
183
+ thinking: string;
184
+ }
185
+ export interface SessionStreamProjection extends SessionStreamBlock {
186
+ tasks: Record<string, SessionStreamBlock>;
187
+ }
188
+ export interface SessionSnapshot {
189
+ sessionId: string;
190
+ label: string;
191
+ status: 'active' | 'paused' | 'shutdown' | 'archived' | 'error' | 'stopped';
192
+ createdAt: string;
193
+ mode: 'sandbox' | 'tui';
194
+ task?: string;
195
+ error?: string;
196
+ streamId?: string | null;
197
+ streamUrl?: string | null;
198
+ context: {
199
+ branch?: string;
200
+ workingDirectory?: string;
97
201
  };
202
+ participants: SessionParticipant[];
203
+ tasks: Array<{
204
+ taskId: string;
205
+ agent: string;
206
+ status: 'running' | 'completed' | 'failed';
207
+ prompt: string;
208
+ duration?: number;
209
+ startedAt?: string;
210
+ completedAt?: string;
211
+ }>;
212
+ agentActivity: Record<string, {
213
+ name?: string;
214
+ status: string;
215
+ currentTool?: string;
216
+ currentToolArgs?: string;
217
+ toolCallCount: number;
218
+ lastActivity: number;
219
+ totalElapsed?: number;
220
+ }>;
221
+ stream?: SessionStreamProjection;
222
+ tags?: string[];
223
+ defaultAgent?: string;
224
+ bucket?: 'running' | 'paused' | 'provisioning' | 'history';
225
+ runtimeAvailable?: boolean;
226
+ controlAvailable?: boolean;
227
+ historyOnly?: boolean;
98
228
  }
99
- export type HubAction = AckAction | BlockAction | ConfirmAction | NotifyAction | ReturnAction | StatusAction | SystemPromptAction | InjectMessageAction;
100
- /** Progress update from a running sub-agent */
229
+ export interface CoderHubHydrationMessage {
230
+ type: 'session_hydration';
231
+ sessionId: string;
232
+ resumedAt: number;
233
+ entries: ConversationEntry[];
234
+ tasks: HydrationTaskState[];
235
+ stream?: SessionStreamProjection;
236
+ task?: string;
237
+ streamingState?: {
238
+ isStreaming?: boolean;
239
+ activeTasks?: Array<{
240
+ taskId: string;
241
+ agent: string;
242
+ }>;
243
+ };
244
+ }
245
+ export interface PresenceEventMessage {
246
+ type: 'presence';
247
+ event: 'session_join' | 'session_leave' | 'presence_update';
248
+ participant?: SessionParticipant;
249
+ participants?: SessionParticipant[];
250
+ sessionId: string;
251
+ timestamp: number;
252
+ }
253
+ export interface BroadcastEventMessage {
254
+ type: 'broadcast';
255
+ event: string;
256
+ data: Record<string, unknown>;
257
+ category?: string;
258
+ sessionId?: string;
259
+ timestamp?: number;
260
+ }
261
+ export interface RpcEventMessage {
262
+ type: 'rpc_event';
263
+ event: Record<string, unknown>;
264
+ timestamp: number;
265
+ }
266
+ export interface RpcResponseMessage {
267
+ type: 'rpc_response';
268
+ response: Record<string, unknown>;
269
+ }
270
+ export interface RpcUiRequestMessage {
271
+ type: 'rpc_ui_request';
272
+ id: string;
273
+ method: string;
274
+ params: Record<string, unknown>;
275
+ }
276
+ export type ServerMessage = InitMessage | HubResponse | CoderHubHydrationMessage | CoderHubStreamReadyMessage | CoderHubSessionResumeMessage | ConnectionRejectedMessage | PresenceEventMessage | BroadcastEventMessage | RpcEventMessage | RpcResponseMessage | RpcUiRequestMessage;
101
277
  export interface AgentProgressUpdate {
102
278
  agentName: string;
103
279
  status: 'running' | 'tool_start' | 'tool_end' | 'completed' | 'failed' | 'thinking_delta' | 'text_delta';
@@ -111,8 +287,4 @@ export interface AgentProgressUpdate {
111
287
  };
112
288
  delta?: string;
113
289
  }
114
- export interface HubResponse {
115
- id: string;
116
- actions: HubAction[];
117
- }
118
290
  //# sourceMappingURL=protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
package/dist/protocol.js CHANGED
@@ -1,3 +1,4 @@
1
- // ---- Init Message (Server Client on connect) ----
1
+ // Hub protocol types used by the Coder TUI package.
2
+ // Keep the legacy exported names stable while modeling the newer hub envelopes.
2
3
  export {};
3
4
  //# sourceMappingURL=protocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,sDAAsD"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,gFAAgF"}
@@ -0,0 +1,61 @@
1
+ export type RemoteLifecyclePhase = 'connecting' | 'hydrating' | 'replaying' | 'live' | 'paused' | 'resuming' | 'reconnecting' | 'disconnected';
2
+ export type RemoteTransportState = 'connecting' | 'connected' | 'reconnecting' | 'disconnected';
3
+ export interface RemoteLifecycleState {
4
+ sessionId: string;
5
+ label: string;
6
+ transport: RemoteTransportState;
7
+ phase: RemoteLifecyclePhase;
8
+ leadConnected: boolean | null;
9
+ isStreaming: boolean;
10
+ hydrationReceived: boolean;
11
+ streamId: string | null;
12
+ streamUrl: string | null;
13
+ lastError: string | null;
14
+ }
15
+ export interface RemoteLifecycleWorkingMessageUi {
16
+ setWorkingMessage(message?: string): void;
17
+ }
18
+ export type RemoteLifecycleEvent = {
19
+ type: 'connect_start';
20
+ reconnect: boolean;
21
+ } | {
22
+ type: 'init';
23
+ sessionId?: string;
24
+ label?: string;
25
+ } | {
26
+ type: 'hydration';
27
+ leadConnected?: boolean;
28
+ isStreaming?: boolean;
29
+ } | {
30
+ type: 'replay_event';
31
+ } | {
32
+ type: 'replay_idle';
33
+ } | {
34
+ type: 'live_signal';
35
+ isStreaming?: boolean;
36
+ } | {
37
+ type: 'session_resume';
38
+ streamId?: string | null;
39
+ streamUrl?: string | null;
40
+ } | {
41
+ type: 'stream_ready';
42
+ streamId?: string | null;
43
+ streamUrl?: string | null;
44
+ } | {
45
+ type: 'rpc_command_error';
46
+ error: string;
47
+ paused: boolean;
48
+ } | {
49
+ type: 'local_resume_requested';
50
+ } | {
51
+ type: 'connection_change';
52
+ state: 'reconnecting' | 'disconnected';
53
+ };
54
+ export declare function createRemoteLifecycleState(sessionId: string): RemoteLifecycleState;
55
+ export declare function applyRemoteLifecycleEvent(state: RemoteLifecycleState, event: RemoteLifecycleEvent): RemoteLifecycleState;
56
+ export declare function getRemoteLifecycleLabel(state: RemoteLifecycleState): string;
57
+ export declare function getRemoteLifecycleActivityLabel(state: RemoteLifecycleState): string | undefined;
58
+ export declare function getRemoteLifecycleWorkingMessage(state: RemoteLifecycleState): string | undefined;
59
+ export declare function clearRemoteLifecycleWorkingMessage(ui: RemoteLifecycleWorkingMessageUi, lifecycleOwnsWorkingMessage: boolean): boolean;
60
+ export declare function syncRemoteLifecycleWorkingMessage(state: RemoteLifecycleState, ui: RemoteLifecycleWorkingMessageUi, lifecycleOwnsWorkingMessage: boolean): boolean;
61
+ //# sourceMappingURL=remote-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-lifecycle.d.ts","sourceRoot":"","sources":["../src/remote-lifecycle.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAC7B,YAAY,GACZ,WAAW,GACX,WAAW,GACX,MAAM,GACN,QAAQ,GACR,UAAU,GACV,cAAc,GACd,cAAc,CAAC;AAElB,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CAAC;AAEhG,MAAM,WAAW,oBAAoB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,oBAAoB,CAAC;IAChC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,+BAA+B;IAC/C,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,MAAM,oBAAoB,GAC7B;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD;IACA,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACrB,GACD;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC/E;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC7E;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,wBAAwB,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAAA;CAAE,CAAC;AAEzE,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,CAalF;AA8BD,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,oBAAoB,GACzB,oBAAoB,CA6FtB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAmB3E;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,GAAG,SAAS,CAmB/F;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,GAAG,SAAS,CAiBhG;AAED,wBAAgB,kCAAkC,CACjD,EAAE,EAAE,+BAA+B,EACnC,2BAA2B,EAAE,OAAO,GAClC,OAAO,CAKT;AAED,wBAAgB,iCAAiC,CAChD,KAAK,EAAE,oBAAoB,EAC3B,EAAE,EAAE,+BAA+B,EACnC,2BAA2B,EAAE,OAAO,GAClC,OAAO,CAOT"}
@@ -0,0 +1,190 @@
1
+ export function createRemoteLifecycleState(sessionId) {
2
+ return {
3
+ sessionId,
4
+ label: '',
5
+ transport: 'disconnected',
6
+ phase: 'disconnected',
7
+ leadConnected: null,
8
+ isStreaming: false,
9
+ hydrationReceived: false,
10
+ streamId: null,
11
+ streamUrl: null,
12
+ lastError: null,
13
+ };
14
+ }
15
+ function patchState(state, patch) {
16
+ let changed = false;
17
+ const next = { ...state };
18
+ for (const [key, value] of Object.entries(patch)) {
19
+ const typedKey = key;
20
+ if (next[typedKey] !== value) {
21
+ changed = true;
22
+ next[typedKey] =
23
+ value;
24
+ }
25
+ }
26
+ return changed ? next : state;
27
+ }
28
+ function resolveConnectedPhase(input) {
29
+ if (input.isStreaming)
30
+ return 'live';
31
+ if (input.leadConnected === false)
32
+ return 'paused';
33
+ return 'live';
34
+ }
35
+ export function applyRemoteLifecycleEvent(state, event) {
36
+ switch (event.type) {
37
+ case 'connect_start':
38
+ return patchState(state, {
39
+ transport: event.reconnect ? 'reconnecting' : 'connecting',
40
+ phase: event.reconnect ? 'reconnecting' : 'connecting',
41
+ lastError: null,
42
+ });
43
+ case 'init':
44
+ return patchState(state, {
45
+ sessionId: event.sessionId || state.sessionId,
46
+ label: event.label || state.label,
47
+ transport: 'connected',
48
+ phase: 'hydrating',
49
+ lastError: null,
50
+ });
51
+ case 'hydration': {
52
+ const leadConnected = typeof event.leadConnected === 'boolean' ? event.leadConnected : state.leadConnected;
53
+ const isStreaming = typeof event.isStreaming === 'boolean' ? event.isStreaming : state.isStreaming;
54
+ return patchState(state, {
55
+ leadConnected,
56
+ isStreaming,
57
+ hydrationReceived: true,
58
+ transport: 'connected',
59
+ phase: resolveConnectedPhase({ leadConnected, isStreaming }),
60
+ lastError: null,
61
+ });
62
+ }
63
+ case 'replay_event':
64
+ if (state.transport !== 'connected')
65
+ return state;
66
+ return patchState(state, {
67
+ phase: 'replaying',
68
+ });
69
+ case 'replay_idle':
70
+ if (state.phase !== 'replaying')
71
+ return state;
72
+ return patchState(state, {
73
+ phase: resolveConnectedPhase({
74
+ leadConnected: state.leadConnected,
75
+ isStreaming: state.isStreaming,
76
+ }),
77
+ });
78
+ case 'live_signal':
79
+ return patchState(state, {
80
+ transport: 'connected',
81
+ phase: 'live',
82
+ leadConnected: true,
83
+ isStreaming: typeof event.isStreaming === 'boolean' ? event.isStreaming : state.isStreaming,
84
+ lastError: null,
85
+ });
86
+ case 'session_resume':
87
+ return patchState(state, {
88
+ streamId: event.streamId ?? state.streamId,
89
+ streamUrl: event.streamUrl ?? state.streamUrl,
90
+ phase: 'resuming',
91
+ lastError: null,
92
+ });
93
+ case 'stream_ready':
94
+ return patchState(state, {
95
+ streamId: event.streamId ?? state.streamId,
96
+ streamUrl: event.streamUrl ?? state.streamUrl,
97
+ });
98
+ case 'rpc_command_error':
99
+ return patchState(state, {
100
+ lastError: event.error,
101
+ leadConnected: event.paused ? false : state.leadConnected,
102
+ isStreaming: event.paused ? false : state.isStreaming,
103
+ phase: event.paused ? 'paused' : state.phase,
104
+ });
105
+ case 'local_resume_requested':
106
+ return patchState(state, {
107
+ phase: 'resuming',
108
+ lastError: null,
109
+ });
110
+ case 'connection_change':
111
+ return patchState(state, {
112
+ transport: event.state,
113
+ phase: event.state,
114
+ isStreaming: false,
115
+ });
116
+ }
117
+ }
118
+ export function getRemoteLifecycleLabel(state) {
119
+ switch (state.phase) {
120
+ case 'connecting':
121
+ return 'Connecting';
122
+ case 'hydrating':
123
+ return 'Hydrating';
124
+ case 'replaying':
125
+ return 'Replaying';
126
+ case 'paused':
127
+ return 'Paused';
128
+ case 'resuming':
129
+ return 'Resuming';
130
+ case 'reconnecting':
131
+ return 'Reconnecting';
132
+ case 'disconnected':
133
+ return 'Disconnected';
134
+ case 'live':
135
+ return 'Live';
136
+ }
137
+ }
138
+ export function getRemoteLifecycleActivityLabel(state) {
139
+ switch (state.phase) {
140
+ case 'connecting':
141
+ return 'connecting to sandbox...';
142
+ case 'hydrating':
143
+ return 'hydrating remote session...';
144
+ case 'replaying':
145
+ return 'replaying remote history...';
146
+ case 'paused':
147
+ return 'sandbox paused';
148
+ case 'resuming':
149
+ return 'resuming sandbox...';
150
+ case 'reconnecting':
151
+ return 'reconnecting...';
152
+ case 'disconnected':
153
+ return state.lastError ? `disconnected: ${state.lastError}` : 'disconnected';
154
+ case 'live':
155
+ return undefined;
156
+ }
157
+ }
158
+ export function getRemoteLifecycleWorkingMessage(state) {
159
+ switch (state.phase) {
160
+ case 'connecting':
161
+ return 'Connecting to remote sandbox...';
162
+ case 'hydrating':
163
+ return 'Hydrating remote session...';
164
+ case 'replaying':
165
+ return 'Replaying remote history...';
166
+ case 'resuming':
167
+ return 'Resuming remote sandbox...';
168
+ case 'reconnecting':
169
+ return 'Connection lost - reconnecting...';
170
+ case 'paused':
171
+ case 'disconnected':
172
+ case 'live':
173
+ return undefined;
174
+ }
175
+ }
176
+ export function clearRemoteLifecycleWorkingMessage(ui, lifecycleOwnsWorkingMessage) {
177
+ if (lifecycleOwnsWorkingMessage) {
178
+ ui.setWorkingMessage();
179
+ }
180
+ return false;
181
+ }
182
+ export function syncRemoteLifecycleWorkingMessage(state, ui, lifecycleOwnsWorkingMessage) {
183
+ const working = getRemoteLifecycleWorkingMessage(state);
184
+ if (working) {
185
+ ui.setWorkingMessage(working);
186
+ return true;
187
+ }
188
+ return clearRemoteLifecycleWorkingMessage(ui, lifecycleOwnsWorkingMessage);
189
+ }
190
+ //# sourceMappingURL=remote-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-lifecycle.js","sourceRoot":"","sources":["../src/remote-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@
12
12
  * for the extension to send commands and receive events.
13
13
  */
14
14
  import type { ExtensionAPI, ExtensionContext } from '@mariozechner/pi-coding-agent';
15
+ import { type RemoteLifecycleState } from './remote-lifecycle.ts';
15
16
  export interface RpcCommand {
16
17
  type: string;
17
18
  [key: string]: unknown;
@@ -38,6 +39,7 @@ export type RemoteEventHandler = (event: RpcEvent) => void;
38
39
  export type RemoteResponseHandler = (response: RpcResponse) => void;
39
40
  export type RemoteUiHandler = (request: RpcUiRequest) => Promise<unknown>;
40
41
  export type RemoteConnectionHandler = (state: 'connected' | 'reconnecting' | 'disconnected') => void;
42
+ export type RemoteLifecycleHandler = (state: RemoteLifecycleState) => void;
41
43
  export declare class RemoteSession {
42
44
  private ws;
43
45
  private connected;
@@ -49,6 +51,9 @@ export declare class RemoteSession {
49
51
  private uiHandler;
50
52
  private responseHandlers;
51
53
  private connectionHandlers;
54
+ private lifecycleHandlers;
55
+ private lifecycleState;
56
+ private replaySettledTimer;
52
57
  /** Session ID this client is connected to */
53
58
  sessionId: string;
54
59
  /** Session label (populated after connection) */
@@ -58,6 +63,13 @@ export declare class RemoteSession {
58
63
  constructor(sessionId: string);
59
64
  private dispatchEvent;
60
65
  private dispatchResponse;
66
+ private applyLifecycle;
67
+ private clearReplaySettledTimer;
68
+ private scheduleReplaySettled;
69
+ private observeLiveSignal;
70
+ private getLiveSignalStreamingState;
71
+ private shouldMarkResuming;
72
+ private shouldObserveRpcResponseAsLive;
61
73
  /** Register a handler for RPC events from the sandbox */
62
74
  onEvent(handler: RemoteEventHandler): void;
63
75
  /** Register a handler for RPC responses from the sandbox */
@@ -66,6 +78,9 @@ export declare class RemoteSession {
66
78
  setUiHandler(handler: RemoteUiHandler): void;
67
79
  /** Register a connection state change handler */
68
80
  onConnectionChange(handler: RemoteConnectionHandler): void;
81
+ /** Register a lifecycle state handler for remote attach/replay/live transitions. */
82
+ onLifecycleChange(handler: RemoteLifecycleHandler): void;
83
+ getLifecycleState(): RemoteLifecycleState;
69
84
  /** Connect to the Hub WebSocket as a controller for the remote session */
70
85
  connect(hubWsUrl: string): Promise<void>;
71
86
  private doConnect;
@@ -1 +1 @@
1
- {"version":3,"file":"remote-session.d.ts","sourceRoot":"","sources":["../src/remote-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-session.d.ts","sourceRoot":"","sources":["../src/remote-session.ts"],"names":[],"mappings":"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"}