@adhdev/daemon-core 0.8.29 → 0.8.31
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/agent-stream/manager.d.ts +1 -0
- package/dist/agent-stream/provider-adapter.d.ts +1 -0
- package/dist/agent-stream/types.d.ts +3 -0
- package/dist/boot/daemon-lifecycle.d.ts +2 -1
- package/dist/cdp/manager.d.ts +2 -0
- package/dist/cli-adapter-types.d.ts +34 -5
- package/dist/cli-adapters/provider-cli-adapter.d.ts +4 -158
- package/dist/cli-adapters/provider-cli-config.d.ts +30 -0
- package/dist/cli-adapters/provider-cli-parse.d.ts +42 -0
- package/dist/cli-adapters/provider-cli-runtime.d.ts +29 -0
- package/dist/cli-adapters/provider-cli-shared.d.ts +158 -0
- package/dist/commands/handler.d.ts +4 -3
- package/dist/config/config.d.ts +4 -3
- package/dist/index.js +1033 -621
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1035 -624
- package/dist/index.mjs.map +1 -1
- package/dist/providers/acp-provider-instance.d.ts +1 -0
- package/dist/providers/approval-utils.d.ts +7 -0
- package/dist/providers/cli-provider-instance.d.ts +2 -0
- package/dist/providers/contracts.d.ts +12 -1
- package/dist/providers/ide-provider-instance.d.ts +1 -0
- package/dist/providers/provider-loader.d.ts +3 -0
- package/dist/status/reporter.d.ts +2 -3
- package/dist/status/snapshot.d.ts +2 -1
- package/node_modules/@adhdev/session-host-core/package.json +1 -1
- package/package.json +3 -1
- package/src/agent-stream/manager.ts +8 -2
- package/src/agent-stream/poller.ts +57 -6
- package/src/agent-stream/provider-adapter.ts +11 -7
- package/src/agent-stream/types.ts +3 -0
- package/src/boot/daemon-lifecycle.ts +7 -6
- package/src/cdp/initializer.ts +2 -2
- package/src/cdp/manager.ts +5 -0
- package/src/cdp/setup.ts +1 -1
- package/src/cli-adapter-types.ts +37 -5
- package/src/cli-adapters/provider-cli-adapter.ts +212 -795
- package/src/cli-adapters/provider-cli-config.ts +66 -0
- package/src/cli-adapters/provider-cli-parse.ts +202 -0
- package/src/cli-adapters/provider-cli-runtime.ts +142 -0
- package/src/cli-adapters/provider-cli-shared.ts +439 -0
- package/src/cli-adapters/terminal-backends/ghostty-vt-backend.ts +1 -1
- package/src/commands/cdp-commands.ts +6 -1
- package/src/commands/chat-commands.ts +45 -29
- package/src/commands/cli-manager.ts +28 -9
- package/src/commands/handler.ts +14 -10
- package/src/commands/router.ts +23 -10
- package/src/commands/stream-commands.ts +11 -5
- package/src/config/config.ts +4 -10
- package/src/daemon/dev-auto-implement.ts +22 -18
- package/src/daemon/dev-cli-debug.ts +59 -16
- package/src/daemon/dev-server.ts +67 -43
- package/src/providers/acp-provider-instance.ts +18 -3
- package/src/providers/approval-utils.ts +66 -0
- package/src/providers/cli-provider-instance.ts +32 -6
- package/src/providers/contracts.d.ts +1 -0
- package/src/providers/contracts.ts +15 -2
- package/src/providers/extension-provider-instance.ts +1 -1
- package/src/providers/ide-provider-instance.ts +67 -41
- package/src/providers/provider-loader.ts +110 -55
- package/src/providers/version-archive.ts +23 -5
- package/src/status/reporter.ts +18 -14
- package/src/status/snapshot.ts +5 -4
package/src/status/reporter.ts
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import { LOG } from '../logging/logger.js';
|
|
9
|
+
import type { DaemonCdpManager } from '../cdp/manager.js';
|
|
10
|
+
import type { MachineInfo } from '../shared-types.js';
|
|
9
11
|
import { buildSessionEntries } from './builders.js';
|
|
10
12
|
import { buildStatusSnapshot } from './snapshot.js';
|
|
11
13
|
import type {
|
|
@@ -19,7 +21,7 @@ import type {
|
|
|
19
21
|
|
|
20
22
|
export interface StatusReporterDeps {
|
|
21
23
|
serverConn: { isConnected(): boolean; sendMessage(type: string, data: any): void; getUserPlan(): string } | null;
|
|
22
|
-
cdpManagers: Map<string,
|
|
24
|
+
cdpManagers: Map<string, DaemonCdpManager>;
|
|
23
25
|
p2p: { isConnected: boolean; isAvailable: boolean; connectionState: string; connectedPeerCount: number; screenshotActive: boolean; sendStatus(data: any): void } | null;
|
|
24
26
|
providerLoader: { resolve(type: string): any; getAll(): any[] };
|
|
25
27
|
detectedIdes: any[];
|
|
@@ -65,7 +67,7 @@ export class DaemonStatusReporter {
|
|
|
65
67
|
if (this.deps.p2p?.isConnected) {
|
|
66
68
|
this.sendUnifiedStatusReport({ p2pOnly: true }).catch(e => LOG.warn('Status', `P2P status send failed: ${e?.message}`));
|
|
67
69
|
}
|
|
68
|
-
}, 5_000)
|
|
70
|
+
}, 5_000);
|
|
69
71
|
}
|
|
70
72
|
|
|
71
73
|
stopReporting(): void {
|
|
@@ -174,14 +176,14 @@ export class DaemonStatusReporter {
|
|
|
174
176
|
// IDE/CLI/ACP states → managed entries (shared builder)
|
|
175
177
|
const sessions = buildSessionEntries(
|
|
176
178
|
allStates,
|
|
177
|
-
this.deps.cdpManagers
|
|
179
|
+
this.deps.cdpManagers,
|
|
178
180
|
);
|
|
179
181
|
|
|
180
182
|
// ═══ Assemble payload (P2P — required data only) ═══
|
|
181
183
|
const payload: Record<string, any> = {
|
|
182
184
|
...buildStatusSnapshot({
|
|
183
185
|
allStates,
|
|
184
|
-
cdpManagers: this.deps.cdpManagers
|
|
186
|
+
cdpManagers: this.deps.cdpManagers,
|
|
185
187
|
providerLoader: this.deps.providerLoader,
|
|
186
188
|
detectedIdes: this.deps.detectedIdes || [],
|
|
187
189
|
instanceId: this.deps.instanceId,
|
|
@@ -231,10 +233,10 @@ export class DaemonStatusReporter {
|
|
|
231
233
|
currentPlan: session.currentPlan,
|
|
232
234
|
currentAutoApprove: session.currentAutoApprove,
|
|
233
235
|
lastUpdated: session.lastUpdated,
|
|
234
|
-
unread:
|
|
235
|
-
lastSeenAt:
|
|
236
|
-
inboxBucket:
|
|
237
|
-
surfaceHidden:
|
|
236
|
+
unread: session.unread,
|
|
237
|
+
lastSeenAt: session.lastSeenAt,
|
|
238
|
+
inboxBucket: session.inboxBucket,
|
|
239
|
+
surfaceHidden: session.surfaceHidden,
|
|
238
240
|
controlValues: session.controlValues,
|
|
239
241
|
providerControls: session.providerControls,
|
|
240
242
|
acpConfigOptions: session.acpConfigOptions,
|
|
@@ -251,13 +253,15 @@ export class DaemonStatusReporter {
|
|
|
251
253
|
|
|
252
254
|
// ─── P2P ─────────────────────────────────────────
|
|
253
255
|
|
|
254
|
-
private sendP2PPayload(payload:
|
|
256
|
+
private sendP2PPayload(payload: { timestamp?: number; system?: unknown; machine?: MachineInfo; [key: string]: unknown }): boolean {
|
|
255
257
|
const { timestamp: _ts, system: _sys, ...hashTarget } = payload;
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
258
|
+
const hashPayload = hashTarget.machine
|
|
259
|
+
? (() => {
|
|
260
|
+
const { freeMem: _f, availableMem: _a, loadavg: _l, uptime: _u, ...stableMachine } = hashTarget.machine;
|
|
261
|
+
return { ...hashTarget, machine: stableMachine };
|
|
262
|
+
})()
|
|
263
|
+
: hashTarget;
|
|
264
|
+
const h = this.simpleHash(JSON.stringify(hashPayload));
|
|
261
265
|
if (h !== this.lastP2PStatusHash) {
|
|
262
266
|
this.lastP2PStatusHash = h;
|
|
263
267
|
this.deps.p2p?.sendStatus(payload);
|
package/src/status/snapshot.ts
CHANGED
|
@@ -14,6 +14,7 @@ import { getWorkspaceState } from '../config/workspaces.js';
|
|
|
14
14
|
import { getHostMemorySnapshot } from '../system/host-memory.js';
|
|
15
15
|
import { getTerminalBackendRuntimeStatus } from '../cli-adapters/terminal-screen.js';
|
|
16
16
|
import { LOG } from '../logging/logger.js';
|
|
17
|
+
import type { DaemonCdpManager } from '../cdp/manager.js';
|
|
17
18
|
import { buildSessionEntries, isCdpConnected } from './builders.js';
|
|
18
19
|
import type { ProviderState } from '../providers/provider-instance.js';
|
|
19
20
|
import type {
|
|
@@ -27,7 +28,7 @@ import type {
|
|
|
27
28
|
|
|
28
29
|
export interface StatusSnapshotOptions {
|
|
29
30
|
allStates: ProviderState[];
|
|
30
|
-
cdpManagers: Map<string,
|
|
31
|
+
cdpManagers: Map<string, DaemonCdpManager>;
|
|
31
32
|
providerLoader: {
|
|
32
33
|
getAll(): Array<{
|
|
33
34
|
type: string;
|
|
@@ -75,7 +76,7 @@ function buildDetectedIdeInfos(
|
|
|
75
76
|
id: ide.id,
|
|
76
77
|
type: ide.id,
|
|
77
78
|
name: ide.displayName || ide.name || ide.id,
|
|
78
|
-
running: isCdpConnected(cdpManagers
|
|
79
|
+
running: isCdpConnected(cdpManagers, ide.id),
|
|
79
80
|
...(ide.path ? { path: ide.path } : {}),
|
|
80
81
|
}));
|
|
81
82
|
}
|
|
@@ -132,7 +133,7 @@ export function getSessionCompletionMarker(session: {
|
|
|
132
133
|
}> | null
|
|
133
134
|
} | null
|
|
134
135
|
}) {
|
|
135
|
-
const lastMessage = session.activeChat?.messages?.at?.(-1)
|
|
136
|
+
const lastMessage = session.activeChat?.messages?.at?.(-1);
|
|
136
137
|
if (!lastMessage) return '';
|
|
137
138
|
const role = typeof lastMessage.role === 'string' ? lastMessage.role : '';
|
|
138
139
|
if (role === 'user' || role === 'human' || role === 'system') return '';
|
|
@@ -213,7 +214,7 @@ export function buildStatusSnapshot(options: StatusSnapshotOptions): StatusSnaps
|
|
|
213
214
|
const recentActivity = getRecentActivity(state, 20);
|
|
214
215
|
const sessions = buildSessionEntries(
|
|
215
216
|
options.allStates,
|
|
216
|
-
options.cdpManagers
|
|
217
|
+
options.cdpManagers,
|
|
217
218
|
);
|
|
218
219
|
for (const session of sessions) {
|
|
219
220
|
const lastSeenAt = getSessionSeenAt(state, session.id);
|