@adhdev/daemon-core 0.8.34 → 0.8.36
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/dist/boot/daemon-lifecycle.d.ts +4 -0
- package/dist/commands/router.d.ts +3 -0
- package/dist/config/config.d.ts +5 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +585 -256
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +584 -256
- package/dist/index.mjs.map +1 -1
- package/dist/shared-types.d.ts +286 -16
- package/dist/status/builders.d.ts +5 -1
- package/dist/status/normalize.d.ts +11 -1
- package/dist/status/normalize.js +36 -16
- package/dist/status/normalize.js.map +1 -1
- package/dist/status/normalize.mjs +35 -16
- package/dist/status/normalize.mjs.map +1 -1
- package/dist/status/reporter.d.ts +7 -0
- package/dist/status/snapshot.d.ts +5 -5
- package/dist/types.d.ts +1 -1
- package/node_modules/@adhdev/session-host-core/package.json +1 -1
- package/package.json +1 -1
- package/src/agent-stream/forward.d.ts +8 -0
- package/src/agent-stream/index.d.ts +6 -0
- package/src/agent-stream/manager.d.ts +60 -0
- package/src/agent-stream/poller.d.ts +41 -0
- package/src/agent-stream/provider-adapter.d.ts +36 -0
- package/src/agent-stream/types.d.ts +68 -0
- package/src/boot/daemon-lifecycle.d.ts +100 -0
- package/src/boot/daemon-lifecycle.ts +7 -0
- package/src/cdp/devtools.d.ts +51 -0
- package/src/cdp/initializer.d.ts +50 -0
- package/src/cdp/manager.d.ts +147 -0
- package/src/cdp/scanner.d.ts +58 -0
- package/src/cdp/setup.d.ts +58 -0
- package/src/cli-adapter-types.d.ts +57 -0
- package/src/cli-adapters/provider-cli-adapter.d.ts +177 -0
- package/src/cli-adapters/provider-cli-adapter.ts +115 -91
- package/src/cli-adapters/provider-cli-config.d.ts +30 -0
- package/src/cli-adapters/provider-cli-parse.d.ts +42 -0
- package/src/cli-adapters/provider-cli-runtime.d.ts +29 -0
- package/src/cli-adapters/provider-cli-shared.d.ts +158 -0
- package/src/cli-adapters/pty-transport.d.ts +48 -0
- package/src/cli-adapters/session-host-transport.d.ts +20 -0
- package/src/cli-adapters/spawn-env.d.ts +8 -0
- package/src/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +16 -0
- package/src/cli-adapters/terminal-backends/types.d.ts +18 -0
- package/src/cli-adapters/terminal-backends/xterm-backend.d.ts +17 -0
- package/src/cli-adapters/terminal-screen.d.ts +33 -0
- package/src/commands/cdp-commands.d.ts +15 -0
- package/src/commands/chat-commands.d.ts +15 -0
- package/src/commands/chat-commands.ts +192 -17
- package/src/commands/cli-manager.d.ts +94 -0
- package/src/commands/handler.d.ts +103 -0
- package/src/commands/router.d.ts +98 -0
- package/src/commands/router.ts +25 -0
- package/src/commands/stream-commands.d.ts +14 -0
- package/src/commands/stream-commands.ts +14 -10
- package/src/commands/upgrade-helper.d.ts +10 -0
- package/src/commands/workspace-commands.d.ts +11 -0
- package/src/config/chat-history.d.ts +99 -0
- package/src/config/config.d.ts +14 -0
- package/src/config/config.ts +8 -0
- package/src/config/recent-activity.d.ts +29 -0
- package/src/config/saved-sessions.d.ts +22 -0
- package/src/config/state-store.d.ts +32 -0
- package/src/config/workspaces.d.ts +0 -1
- package/src/daemon/dev-auto-implement.d.ts +43 -0
- package/src/daemon/dev-cdp-handlers.d.ts +22 -0
- package/src/daemon/dev-cli-debug.d.ts +106 -0
- package/src/daemon/dev-server-types.d.ts +43 -0
- package/src/daemon/dev-server.d.ts +140 -0
- package/src/daemon/scaffold-template.d.ts +32 -0
- package/src/daemon-core.d.ts +36 -0
- package/src/detection/cli-detector.d.ts +31 -0
- package/src/detection/ide-detector.d.ts +35 -0
- package/src/index.d.ts +83 -0
- package/src/index.ts +34 -1
- package/src/installer.d.ts +50 -0
- package/src/ipc-protocol.d.ts +111 -0
- package/src/launch.d.ts +46 -0
- package/src/logging/command-log.d.ts +31 -0
- package/src/logging/logger.d.ts +89 -0
- package/src/providers/acp-provider-instance.d.ts +102 -0
- package/src/providers/approval-utils.d.ts +7 -0
- package/src/providers/cli-provider-instance.d.ts +86 -0
- package/src/providers/contracts.d.ts +193 -1
- package/src/providers/control-effects.d.ts +4 -0
- package/src/providers/extension-provider-instance.d.ts +61 -0
- package/src/providers/ide-provider-instance.d.ts +70 -0
- package/src/providers/provider-instance-manager.d.ts +84 -0
- package/src/providers/provider-instance.d.ts +7 -1
- package/src/providers/provider-loader.d.ts +299 -0
- package/src/providers/status-monitor.d.ts +48 -0
- package/src/providers/version-archive.d.ts +52 -0
- package/src/session-host/runtime-support.d.ts +8 -0
- package/src/sessions/reconcile.d.ts +22 -0
- package/src/sessions/registry.d.ts +24 -0
- package/src/shared-types-extra.d.ts +29 -0
- package/src/shared-types.d.ts +204 -38
- package/src/shared-types.ts +319 -16
- package/src/status/builders.d.ts +33 -0
- package/src/status/builders.ts +110 -54
- package/src/status/normalize.ts +54 -19
- package/src/status/reporter.d.ts +69 -0
- package/src/status/reporter.ts +104 -26
- package/src/status/snapshot.d.ts +58 -0
- package/src/status/snapshot.ts +79 -41
- package/src/system/host-memory.d.ts +19 -0
- package/src/types.d.ts +3 -7
- package/src/types.ts +1 -1
package/src/shared-types.ts
CHANGED
|
@@ -69,6 +69,192 @@ export interface AgentSessionStream {
|
|
|
69
69
|
activeModal: { message: string; buttons: string[] } | null;
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
+
export type ReadChatSyncMode = 'full' | 'append' | 'replace_tail' | 'noop';
|
|
73
|
+
|
|
74
|
+
export interface ReadChatCursor {
|
|
75
|
+
knownMessageCount?: number;
|
|
76
|
+
lastMessageSignature?: string;
|
|
77
|
+
tailLimit?: number;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface ReadChatSyncResult {
|
|
81
|
+
messages: ChatMessage[];
|
|
82
|
+
status: string;
|
|
83
|
+
title?: string;
|
|
84
|
+
activeModal?: { message: string; buttons: string[] } | null;
|
|
85
|
+
syncMode: ReadChatSyncMode;
|
|
86
|
+
replaceFrom: number;
|
|
87
|
+
totalMessages: number;
|
|
88
|
+
lastMessageSignature: string;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export interface SessionHostAttachedClient {
|
|
92
|
+
clientId: string;
|
|
93
|
+
type: string;
|
|
94
|
+
readOnly: boolean;
|
|
95
|
+
attachedAt: number;
|
|
96
|
+
lastSeenAt: number;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export interface SessionHostWriteOwner {
|
|
100
|
+
clientId: string;
|
|
101
|
+
ownerType: 'agent' | 'user';
|
|
102
|
+
acquiredAt: number;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export interface SessionHostRecord {
|
|
106
|
+
sessionId: string;
|
|
107
|
+
runtimeKey: string;
|
|
108
|
+
displayName: string;
|
|
109
|
+
workspaceLabel: string;
|
|
110
|
+
providerType: string;
|
|
111
|
+
workspace: string;
|
|
112
|
+
lifecycle: 'starting' | 'running' | 'stopping' | 'stopped' | 'failed' | 'interrupted';
|
|
113
|
+
writeOwner: SessionHostWriteOwner | null;
|
|
114
|
+
attachedClients: SessionHostAttachedClient[];
|
|
115
|
+
osPid?: number;
|
|
116
|
+
lastActivityAt: number;
|
|
117
|
+
createdAt: number;
|
|
118
|
+
startedAt?: number;
|
|
119
|
+
meta?: Record<string, unknown>;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export interface SessionHostLogEntry {
|
|
123
|
+
timestamp: number;
|
|
124
|
+
level: 'debug' | 'info' | 'warn' | 'error';
|
|
125
|
+
message: string;
|
|
126
|
+
sessionId?: string;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export interface SessionHostRequestTrace {
|
|
130
|
+
timestamp: number;
|
|
131
|
+
requestId: string;
|
|
132
|
+
type: string;
|
|
133
|
+
sessionId?: string;
|
|
134
|
+
clientId?: string;
|
|
135
|
+
success: boolean;
|
|
136
|
+
durationMs: number;
|
|
137
|
+
error?: string;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export interface SessionHostRuntimeTransition {
|
|
141
|
+
timestamp: number;
|
|
142
|
+
sessionId: string;
|
|
143
|
+
action: string;
|
|
144
|
+
lifecycle?: string;
|
|
145
|
+
detail?: string;
|
|
146
|
+
success?: boolean;
|
|
147
|
+
error?: string;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export interface SessionHostDiagnosticsSnapshot {
|
|
151
|
+
hostStartedAt: number;
|
|
152
|
+
endpoint: string;
|
|
153
|
+
runtimeCount: number;
|
|
154
|
+
sessions?: SessionHostRecord[];
|
|
155
|
+
recentLogs: SessionHostLogEntry[];
|
|
156
|
+
recentRequests: SessionHostRequestTrace[];
|
|
157
|
+
recentTransitions: SessionHostRuntimeTransition[];
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export type TransportTopic = 'session.chat_tail' | 'machine.runtime' | 'session_host.diagnostics' | 'session.modal' | 'daemon.metadata';
|
|
161
|
+
|
|
162
|
+
export interface SessionChatTailSubscriptionParams extends ReadChatCursor {
|
|
163
|
+
targetSessionId: string;
|
|
164
|
+
historySessionId?: string;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
export interface MachineRuntimeSubscriptionParams {
|
|
168
|
+
intervalMs?: number;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export interface SessionModalSubscriptionParams {
|
|
172
|
+
targetSessionId: string;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export interface DaemonMetadataSubscriptionParams {
|
|
176
|
+
includeSessions?: boolean;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
export interface SessionHostDiagnosticsSubscriptionParams {
|
|
180
|
+
includeSessions?: boolean;
|
|
181
|
+
limit?: number;
|
|
182
|
+
intervalMs?: number;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
export interface SessionChatTailUpdate extends ReadChatSyncResult {
|
|
186
|
+
topic: 'session.chat_tail';
|
|
187
|
+
key: string;
|
|
188
|
+
sessionId: string;
|
|
189
|
+
historySessionId?: string;
|
|
190
|
+
seq: number;
|
|
191
|
+
timestamp: number;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
export interface MachineRuntimeUpdate {
|
|
195
|
+
topic: 'machine.runtime';
|
|
196
|
+
key: string;
|
|
197
|
+
machine: MachineInfo;
|
|
198
|
+
seq: number;
|
|
199
|
+
timestamp: number;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
export interface SessionHostDiagnosticsUpdate {
|
|
203
|
+
topic: 'session_host.diagnostics';
|
|
204
|
+
key: string;
|
|
205
|
+
diagnostics: SessionHostDiagnosticsSnapshot;
|
|
206
|
+
seq: number;
|
|
207
|
+
timestamp: number;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
export interface SessionModalUpdate {
|
|
211
|
+
topic: 'session.modal';
|
|
212
|
+
key: string;
|
|
213
|
+
sessionId: string;
|
|
214
|
+
status: string;
|
|
215
|
+
title?: string;
|
|
216
|
+
modalMessage?: string;
|
|
217
|
+
modalButtons?: string[];
|
|
218
|
+
seq: number;
|
|
219
|
+
timestamp: number;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
export interface DaemonMetadataUpdate {
|
|
223
|
+
topic: 'daemon.metadata';
|
|
224
|
+
key: string;
|
|
225
|
+
daemonId: string;
|
|
226
|
+
status: StatusReportPayload;
|
|
227
|
+
userName?: string;
|
|
228
|
+
seq: number;
|
|
229
|
+
timestamp: number;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
export interface TopicUpdateEnvelopeMap {
|
|
233
|
+
'session.chat_tail': SessionChatTailUpdate;
|
|
234
|
+
'machine.runtime': MachineRuntimeUpdate;
|
|
235
|
+
'session_host.diagnostics': SessionHostDiagnosticsUpdate;
|
|
236
|
+
'session.modal': SessionModalUpdate;
|
|
237
|
+
'daemon.metadata': DaemonMetadataUpdate;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
export type TopicUpdateEnvelope = TopicUpdateEnvelopeMap[TransportTopic];
|
|
241
|
+
|
|
242
|
+
export interface SubscribeRequestMap {
|
|
243
|
+
'session.chat_tail': SessionChatTailSubscriptionParams;
|
|
244
|
+
'machine.runtime': MachineRuntimeSubscriptionParams;
|
|
245
|
+
'session_host.diagnostics': SessionHostDiagnosticsSubscriptionParams;
|
|
246
|
+
'session.modal': SessionModalSubscriptionParams;
|
|
247
|
+
'daemon.metadata': DaemonMetadataSubscriptionParams;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
export type SubscribeRequest =
|
|
251
|
+
{ [K in TransportTopic]: { type: 'subscribe'; topic: K; key: string; params: SubscribeRequestMap[K] } }[TransportTopic];
|
|
252
|
+
|
|
253
|
+
export type UnsubscribeRequest =
|
|
254
|
+
{ [K in TransportTopic]: { type: 'unsubscribe'; topic: K; key: string } }[TransportTopic];
|
|
255
|
+
|
|
256
|
+
export type StandaloneWsStatusPayload = StatusReportPayload;
|
|
257
|
+
|
|
72
258
|
export type SessionTransport = 'cdp-page' | 'cdp-webview' | 'pty' | 'acp';
|
|
73
259
|
|
|
74
260
|
export type SessionKind = 'workspace' | 'agent';
|
|
@@ -93,13 +279,13 @@ export interface SessionEntry {
|
|
|
93
279
|
id: string;
|
|
94
280
|
parentId: string | null;
|
|
95
281
|
providerType: string;
|
|
96
|
-
providerName
|
|
282
|
+
providerName?: string;
|
|
97
283
|
providerSessionId?: string;
|
|
98
284
|
kind: SessionKind;
|
|
99
285
|
transport: SessionTransport;
|
|
100
286
|
status: SessionStatus;
|
|
101
287
|
title: string;
|
|
102
|
-
workspace
|
|
288
|
+
workspace?: string | null;
|
|
103
289
|
runtimeKey?: string;
|
|
104
290
|
runtimeDisplayName?: string;
|
|
105
291
|
runtimeWorkspaceLabel?: string;
|
|
@@ -109,7 +295,7 @@ export interface SessionEntry {
|
|
|
109
295
|
runtimeAttachedClients?: RuntimeAttachedClient[];
|
|
110
296
|
resume?: ProviderResumeCapability;
|
|
111
297
|
activeChat: _ActiveChatData | null;
|
|
112
|
-
capabilities
|
|
298
|
+
capabilities?: SessionCapability[];
|
|
113
299
|
cdpConnected?: boolean;
|
|
114
300
|
currentModel?: string;
|
|
115
301
|
currentPlan?: string;
|
|
@@ -129,6 +315,26 @@ export interface SessionEntry {
|
|
|
129
315
|
surfaceHidden?: boolean;
|
|
130
316
|
}
|
|
131
317
|
|
|
318
|
+
/**
|
|
319
|
+
* Compact session metadata stored in UserSessionDO and reused by server-side
|
|
320
|
+
* status/convenience APIs. This intentionally excludes rich UI-only fields.
|
|
321
|
+
*/
|
|
322
|
+
export interface CompactSessionEntry {
|
|
323
|
+
id: string;
|
|
324
|
+
parentId: string | null;
|
|
325
|
+
providerType: string;
|
|
326
|
+
providerName: string;
|
|
327
|
+
kind: SessionKind;
|
|
328
|
+
transport: SessionTransport;
|
|
329
|
+
status: SessionStatus;
|
|
330
|
+
title: string;
|
|
331
|
+
workspace: string | null;
|
|
332
|
+
cdpConnected?: boolean;
|
|
333
|
+
currentModel?: string;
|
|
334
|
+
currentPlan?: string;
|
|
335
|
+
currentAutoApprove?: string;
|
|
336
|
+
}
|
|
337
|
+
|
|
132
338
|
/** Available provider information */
|
|
133
339
|
export interface AvailableProviderInfo {
|
|
134
340
|
type: string;
|
|
@@ -195,15 +401,15 @@ export interface ProviderControlSchema {
|
|
|
195
401
|
export interface MachineInfo {
|
|
196
402
|
hostname: string;
|
|
197
403
|
platform: string;
|
|
198
|
-
arch
|
|
199
|
-
cpus
|
|
200
|
-
totalMem
|
|
201
|
-
freeMem
|
|
404
|
+
arch?: string;
|
|
405
|
+
cpus?: number;
|
|
406
|
+
totalMem?: number;
|
|
407
|
+
freeMem?: number;
|
|
202
408
|
/** macOS: reclaimable-inclusive; prefer for UI used% */
|
|
203
409
|
availableMem?: number;
|
|
204
|
-
loadavg
|
|
205
|
-
uptime
|
|
206
|
-
release
|
|
410
|
+
loadavg?: number[];
|
|
411
|
+
uptime?: number;
|
|
412
|
+
release?: string;
|
|
207
413
|
}
|
|
208
414
|
|
|
209
415
|
/** Detected IDE on a machine */
|
|
@@ -231,24 +437,121 @@ export interface RecentLaunchEntry {
|
|
|
231
437
|
lastLaunchedAt: number;
|
|
232
438
|
}
|
|
233
439
|
|
|
440
|
+
/** Compact machine payload broadcast by UserSessionDO to cloud dashboards. */
|
|
441
|
+
export interface CompactDaemonEntry {
|
|
442
|
+
id: string;
|
|
443
|
+
type?: string;
|
|
444
|
+
machineId?: string;
|
|
445
|
+
platform?: string;
|
|
446
|
+
hostname?: string;
|
|
447
|
+
nickname?: string;
|
|
448
|
+
p2p?: StatusReportPayload['p2p'];
|
|
449
|
+
cdpConnected?: boolean;
|
|
450
|
+
timestamp?: number;
|
|
451
|
+
version?: string;
|
|
452
|
+
serverVersion?: string;
|
|
453
|
+
versionMismatch?: boolean;
|
|
454
|
+
terminalBackend?: TerminalBackendStatus;
|
|
455
|
+
detectedIdes?: DetectedIdeInfo[];
|
|
456
|
+
availableProviders?: AvailableProviderInfo[];
|
|
457
|
+
sessions?: CompactSessionEntry[];
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
/** Minimal daemon list payload returned by the cloud server REST API. */
|
|
461
|
+
export interface CloudDaemonSummaryEntry {
|
|
462
|
+
id: string;
|
|
463
|
+
type?: string;
|
|
464
|
+
machineId?: string;
|
|
465
|
+
platform?: string;
|
|
466
|
+
hostname?: string;
|
|
467
|
+
nickname?: string;
|
|
468
|
+
p2p?: StatusReportPayload['p2p'];
|
|
469
|
+
cdpConnected?: boolean;
|
|
470
|
+
timestamp?: number;
|
|
471
|
+
version?: string;
|
|
472
|
+
serverVersion?: string;
|
|
473
|
+
versionMismatch?: boolean;
|
|
474
|
+
terminalBackend?: TerminalBackendStatus;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
/** Minimal daemon bootstrap payload used by dashboard WS to initiate P2P. */
|
|
478
|
+
export interface DashboardBootstrapDaemonEntry {
|
|
479
|
+
id: string;
|
|
480
|
+
p2p?: StatusReportPayload['p2p'];
|
|
481
|
+
timestamp?: number;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
export type DaemonStatusEventName =
|
|
485
|
+
| 'agent:generating_started'
|
|
486
|
+
| 'agent:waiting_approval'
|
|
487
|
+
| 'agent:generating_completed'
|
|
488
|
+
| 'agent:stopped'
|
|
489
|
+
| 'monitor:long_generating';
|
|
490
|
+
|
|
491
|
+
/** Minimal daemon-originated event payload relayed through the server. */
|
|
492
|
+
export interface DaemonStatusEventPayload {
|
|
493
|
+
event: DaemonStatusEventName;
|
|
494
|
+
timestamp: number;
|
|
495
|
+
targetSessionId?: string;
|
|
496
|
+
providerType?: string;
|
|
497
|
+
duration?: number;
|
|
498
|
+
elapsedSec?: number;
|
|
499
|
+
modalMessage?: string;
|
|
500
|
+
modalButtons?: string[];
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
export type DashboardStatusEventName =
|
|
504
|
+
| DaemonStatusEventName
|
|
505
|
+
| 'daemon:disconnect'
|
|
506
|
+
| 'team:session_viewed'
|
|
507
|
+
| 'team:view_request'
|
|
508
|
+
| 'team:view_request_approved'
|
|
509
|
+
| 'team:view_request_rejected';
|
|
510
|
+
|
|
511
|
+
/** Sanitized event payload delivered to dashboard clients. */
|
|
512
|
+
export interface DashboardStatusEventPayload {
|
|
513
|
+
event: DashboardStatusEventName;
|
|
514
|
+
timestamp: number;
|
|
515
|
+
daemonId?: string;
|
|
516
|
+
providerType?: string;
|
|
517
|
+
targetSessionId?: string;
|
|
518
|
+
duration?: number;
|
|
519
|
+
elapsedSec?: number;
|
|
520
|
+
modalMessage?: string;
|
|
521
|
+
modalButtons?: string[];
|
|
522
|
+
requestId?: string;
|
|
523
|
+
requesterName?: string;
|
|
524
|
+
targetName?: string;
|
|
525
|
+
orgId?: string;
|
|
526
|
+
permission?: string;
|
|
527
|
+
shareUrl?: string;
|
|
528
|
+
shareToken?: string;
|
|
529
|
+
viewerName?: string;
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
/** Minimal daemon->cloud status payload used for routing, fallback, and server APIs. */
|
|
533
|
+
export interface CloudStatusReportPayload {
|
|
534
|
+
sessions: CompactSessionEntry[];
|
|
535
|
+
p2p?: StatusReportPayload['p2p'];
|
|
536
|
+
timestamp: number;
|
|
537
|
+
}
|
|
538
|
+
|
|
234
539
|
// ─── Status Report Payload (daemon → server) ────────────────────────
|
|
235
540
|
// Full payload shape sent via WebSocket status_report
|
|
236
541
|
|
|
237
542
|
export interface StatusReportPayload {
|
|
238
543
|
/** Unique daemon instance identifier */
|
|
239
544
|
instanceId: string;
|
|
240
|
-
/** Daemon version */
|
|
241
|
-
version
|
|
242
|
-
/** Daemon mode flag */
|
|
243
|
-
daemonMode: boolean;
|
|
545
|
+
/** Daemon version (metadata/full snapshots only) */
|
|
546
|
+
version?: string;
|
|
244
547
|
/** Machine info */
|
|
245
548
|
machine: MachineInfo;
|
|
246
549
|
/** Machine nickname (user-set) */
|
|
247
550
|
machineNickname?: string | null;
|
|
248
551
|
/** Timestamp */
|
|
249
552
|
timestamp: number;
|
|
250
|
-
/** Detected IDEs on this machine */
|
|
251
|
-
detectedIdes
|
|
553
|
+
/** Detected IDEs on this machine (metadata snapshot only) */
|
|
554
|
+
detectedIdes?: DetectedIdeInfo[];
|
|
252
555
|
/** P2P state */
|
|
253
556
|
p2p?: { available: boolean; state: string; peers: number; screenshotActive?: boolean };
|
|
254
557
|
/** Canonical daemon runtime sessions */
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status Builders — shared conversion functions for ProviderState → ManagedEntry
|
|
3
|
+
*
|
|
4
|
+
* Used by:
|
|
5
|
+
* - daemon-standalone (StandaloneServer.getStatus)
|
|
6
|
+
* - DaemonStatusReporter
|
|
7
|
+
*
|
|
8
|
+
* Consolidates ProviderState→ManagedEntry mapping logic.
|
|
9
|
+
*/
|
|
10
|
+
import type { DaemonCdpManager } from '../cdp/manager.js';
|
|
11
|
+
import type { SessionEntry } from '../shared-types.js';
|
|
12
|
+
import type { ProviderState } from '../providers/provider-instance.js';
|
|
13
|
+
/**
|
|
14
|
+
* Find a CDP manager by key, with prefix matching for multi-window support.
|
|
15
|
+
*
|
|
16
|
+
* Lookup order:
|
|
17
|
+
* 1. Exact match: cdpManagers.get(key)
|
|
18
|
+
* 2. Prefix match: key starts with `${ideType}_` (multi-window: "cursor_remote_vs")
|
|
19
|
+
* 3. null
|
|
20
|
+
*
|
|
21
|
+
* This replaces raw `cdpManagers.get(ideType)` calls that broke when
|
|
22
|
+
* multi-window keys like "cursor_remote_vs" were used.
|
|
23
|
+
*/
|
|
24
|
+
export declare function findCdpManager(cdpManagers: Map<string, DaemonCdpManager>, key: string): DaemonCdpManager | null;
|
|
25
|
+
/**
|
|
26
|
+
* Check if any CDP manager matches the given key (exact or prefix).
|
|
27
|
+
*/
|
|
28
|
+
export declare function hasCdpManager(cdpManagers: Map<string, DaemonCdpManager>, key: string): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Check if any CDP manager matching the key is connected.
|
|
31
|
+
*/
|
|
32
|
+
export declare function isCdpConnected(cdpManagers: Map<string, DaemonCdpManager>, key: string): boolean;
|
|
33
|
+
export declare function buildSessionEntries(allStates: ProviderState[], cdpManagers: Map<string, DaemonCdpManager>): SessionEntry[];
|