very-happy-cli 0.2.91 → 0.2.92

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 (31) hide show
  1. package/dist/{AcpBackend-GqveWg8u.cjs → AcpBackend-BP7id8L6.cjs} +1 -1
  2. package/dist/{AcpBackend-B5RRlzLU.mjs → AcpBackend-DDEsgc1c.mjs} +1 -1
  3. package/dist/{AcpSessionManager-Ij1pI5Ex.mjs → AcpSessionManager-C29t6wb_.mjs} +1 -1
  4. package/dist/{AcpSessionManager-YcrSZwvq.cjs → AcpSessionManager-Cys1Hsb8.cjs} +1 -1
  5. package/dist/{config-C4NCw7Dz.cjs → config-B77vhdwT.cjs} +2 -2
  6. package/dist/{config-ra8iKxdU.mjs → config-CJQw0z1o.mjs} +2 -2
  7. package/dist/{index-UCYD5Wk3.mjs → index-8LDXVYWi.mjs} +337 -35
  8. package/dist/{index-FkXJNwiy.cjs → index-B63Vjt4W.cjs} +353 -51
  9. package/dist/{index-CB5H7YI6.mjs → index-BP9pfzdZ.mjs} +5 -5
  10. package/dist/{index-C1HIm7NY.cjs → index-L3o5Gz-2.cjs} +4 -4
  11. package/dist/index.cjs +2 -2
  12. package/dist/index.mjs +2 -2
  13. package/dist/{installTerminalHooks-CoK5wNcA.cjs → installTerminalHooks-BBc2nij4.cjs} +2 -2
  14. package/dist/{installTerminalHooks-TkkGzzbI.mjs → installTerminalHooks-DDRrUG_n.mjs} +2 -2
  15. package/dist/lib.cjs +1 -1
  16. package/dist/lib.d.cts +69 -3
  17. package/dist/lib.d.mts +69 -3
  18. package/dist/lib.mjs +1 -1
  19. package/dist/{mcp-C3MiqObi.mjs → mcp-CYJAl5pk.mjs} +2 -2
  20. package/dist/{mcp-DcRvswVI.cjs → mcp-DbYXyw1U.cjs} +2 -2
  21. package/dist/{runGemini-Dnvd2gWq.cjs → runGemini-BDSWSID6.cjs} +4 -4
  22. package/dist/{runGemini-BbC0uwUj.mjs → runGemini-DHYs_Beq.mjs} +4 -4
  23. package/dist/{runOpenClaw-CnuTBNQW.cjs → runOpenClaw-DC9gb1bd.cjs} +3 -3
  24. package/dist/{runOpenClaw--nbqTW3K.mjs → runOpenClaw-DTaXxvNd.mjs} +3 -3
  25. package/dist/{send-DkKOPatx.cjs → send-BEdGwmA-.cjs} +2 -2
  26. package/dist/{send-9nJxn09Y.mjs → send-BQSaVz9r.mjs} +2 -2
  27. package/dist/{spawn-DE7WhS8Y.cjs → spawn-CK1ma_qc.cjs} +2 -2
  28. package/dist/{spawn-CRW4ioms.mjs → spawn-DS-Uz_Hw.mjs} +2 -2
  29. package/dist/{types-BKyjG23_.mjs → types-B_8X_rZk.mjs} +328 -85
  30. package/dist/{types-ClDADuxP.cjs → types-CjlB_fKT.cjs} +329 -85
  31. package/package.json +7 -7
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import 'chalk';
2
- import './index-UCYD5Wk3.mjs';
3
- import './types-BKyjG23_.mjs';
2
+ import './index-8LDXVYWi.mjs';
3
+ import './types-B_8X_rZk.mjs';
4
4
  import 'zod';
5
5
  import 'node:child_process';
6
6
  import 'node:os';
@@ -5,8 +5,8 @@ var path = require('node:path');
5
5
  var os = require('node:os');
6
6
  var node_child_process = require('node:child_process');
7
7
  var chalk = require('chalk');
8
- var persistence = require('./types-ClDADuxP.cjs');
9
- var index = require('./index-FkXJNwiy.cjs');
8
+ var persistence = require('./types-CjlB_fKT.cjs');
9
+ var index = require('./index-B63Vjt4W.cjs');
10
10
  require('axios');
11
11
  require('node:util');
12
12
  require('node:fs/promises');
@@ -3,8 +3,8 @@ import { join, resolve } from 'node:path';
3
3
  import { homedir } from 'node:os';
4
4
  import { spawnSync } from 'node:child_process';
5
5
  import chalk from 'chalk';
6
- import { p as projectPath } from './types-BKyjG23_.mjs';
7
- import { t as tmuxSupportsSessionEnv } from './index-UCYD5Wk3.mjs';
6
+ import { p as projectPath } from './types-B_8X_rZk.mjs';
7
+ import { t as tmuxSupportsSessionEnv } from './index-8LDXVYWi.mjs';
8
8
  import 'axios';
9
9
  import 'node:util';
10
10
  import 'node:fs/promises';
package/dist/lib.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var persistence = require('./types-ClDADuxP.cjs');
3
+ var persistence = require('./types-CjlB_fKT.cjs');
4
4
  require('axios');
5
5
  require('chalk');
6
6
  require('node:util');
package/dist/lib.d.cts CHANGED
@@ -321,6 +321,7 @@ declare const DaemonStateSchema: z$1.ZodObject<{
321
321
  }>>;
322
322
  mirrorSessionId: z$1.ZodOptional<z$1.ZodString>;
323
323
  restoredAt: z$1.ZodOptional<z$1.ZodNumber>;
324
+ manual: z$1.ZodOptional<z$1.ZodBoolean>;
324
325
  }, z$1.core.$strip>>;
325
326
  }, z$1.core.$strip>>;
326
327
  closedTerminals: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
@@ -333,8 +334,14 @@ declare const DaemonStateSchema: z$1.ZodObject<{
333
334
  closed: "closed";
334
335
  "daemon-gap": "daemon-gap";
335
336
  }>>;
337
+ tags: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
338
+ manual: z$1.ZodOptional<z$1.ZodBoolean>;
336
339
  closedAt: z$1.ZodNumber;
337
340
  }, z$1.core.$strip>>>;
341
+ terminalRestore: z$1.ZodOptional<z$1.ZodObject<{
342
+ rpcAvailable: z$1.ZodBoolean;
343
+ detectedAt: z$1.ZodNumber;
344
+ }, z$1.core.$strip>>;
338
345
  cliUpdate: z$1.ZodOptional<z$1.ZodObject<{
339
346
  currentVersion: z$1.ZodString;
340
347
  recommendedVersion: z$1.ZodNullable<z$1.ZodString>;
@@ -725,7 +732,14 @@ declare class ApiSessionClient extends EventEmitter {
725
732
  private readonly directInboundLocalIds;
726
733
  private readonly routedInboundLocalIds;
727
734
  private handoverInFlight;
728
- constructor(token: string, session: Session);
735
+ /** B-265 reconnect: the message cursor was seeded from the server, so
736
+ * nothing before it is history to replay — but socket fast-path routing
737
+ * must wait for the first fetch, otherwise a message that lands between
738
+ * the seed and the first fetch is routed twice (socket + fetch). */
739
+ private awaitingInitialFetch;
740
+ constructor(token: string, session: Session, opts?: {
741
+ initialSeq?: number;
742
+ });
729
743
  private createControlSocket;
730
744
  private startReleaseHandover;
731
745
  private releaseHandover;
@@ -1050,6 +1064,9 @@ interface TerminalListItem {
1050
1064
  * the claude conversation carried over. The web badges it until the user
1051
1065
  * opens it once; the mark is daemon-local and never persisted. */
1052
1066
  restoredAt?: number;
1067
+ /** B-265: `@vh_title_manual` is set — carried into close records so a
1068
+ * restore can put the flag back (old webs ignore it). */
1069
+ manual?: boolean;
1053
1070
  }
1054
1071
 
1055
1072
  /**
@@ -1063,6 +1080,11 @@ type MachineRpcHandlers = {
1063
1080
  model?: string;
1064
1081
  permissionMode?: string;
1065
1082
  }) => Promise<SpawnSessionResult>;
1083
+ /** B-264: stop a live-but-broken wrapper and relaunch it on the current CLI. */
1084
+ restartSession?: (sessionId: string, options?: {
1085
+ model?: string;
1086
+ permissionMode?: string;
1087
+ }) => Promise<SpawnSessionResult>;
1066
1088
  stopSession: (sessionId: string) => boolean;
1067
1089
  listTrackedSessionIds?: () => string[];
1068
1090
  requestShutdown: () => void;
@@ -1082,6 +1104,7 @@ declare class ApiMachineClient {
1082
1104
  private cliUpdatePushChain;
1083
1105
  private rpcHandlerManager;
1084
1106
  private resumeSessionHandler;
1107
+ private restartSessionHandler;
1085
1108
  private stopSessionHandler;
1086
1109
  private listTrackedSessionIds;
1087
1110
  private reconnectInterval;
@@ -1107,7 +1130,8 @@ declare class ApiMachineClient {
1107
1130
  /** Cache the latest relay policy locally and publish it now or on the next
1108
1131
  * socket connect. This makes startup/offline races harmless. */
1109
1132
  setCliUpdateState(state: CliUpdateState | null): void;
1110
- setRPCHandlers({ spawnSession, resumeSession, stopSession, listTrackedSessionIds, requestShutdown }: MachineRpcHandlers): void;
1133
+ setRPCHandlers({ spawnSession, resumeSession, restartSession, stopSession, listTrackedSessionIds, requestShutdown }: MachineRpcHandlers): void;
1134
+ private syncRestartSessionRpcRegistration;
1111
1135
  private syncResumeSessionRpcRegistration;
1112
1136
  /** Every pushed list also flows to the mirror manager (claude-exit
1113
1137
  * detection via pane observation). Set by the daemon at startup. */
@@ -1256,6 +1280,26 @@ declare class NotificationProducer {
1256
1280
  private clip;
1257
1281
  }
1258
1282
 
1283
+ /**
1284
+ * Reconnect-in-place helpers (B-265). A resumed process reattaches to an
1285
+ * EXISTING happy session (HAPPY_RECONNECT_*). Two truths must not be mixed up:
1286
+ *
1287
+ * - the server owns the conversation-level metadata (summary, tags,
1288
+ * claudeSessionId, board, …) and the message `seq`;
1289
+ * - the new process owns its own identity (pid, version, capabilities, …).
1290
+ *
1291
+ * Everything here is pure so the merge rules are unit-tested; the network
1292
+ * side is `api.getSession` and the wiring lives in runClaude / runCodex.
1293
+ */
1294
+
1295
+ interface ServerSessionSnapshot {
1296
+ seq: number;
1297
+ metadata: Metadata;
1298
+ metadataVersion: number;
1299
+ agentState: AgentState$1 | null;
1300
+ agentStateVersion: number;
1301
+ }
1302
+
1259
1303
  declare class ApiClient {
1260
1304
  static create(credential: Credentials): Promise<ApiClient>;
1261
1305
  private readonly credential;
@@ -1278,7 +1322,9 @@ declare class ApiClient {
1278
1322
  metadata: MachineMetadata;
1279
1323
  daemonState?: DaemonState;
1280
1324
  }): Promise<Machine>;
1281
- sessionSyncClient(session: Session): ApiSessionClient;
1325
+ sessionSyncClient(session: Session, opts?: {
1326
+ initialSeq?: number;
1327
+ }): ApiSessionClient;
1282
1328
  machineSyncClient(machine: Machine): ApiMachineClient;
1283
1329
  push(): PushNotificationClient;
1284
1330
  /**
@@ -1321,6 +1367,26 @@ declare class ApiClient {
1321
1367
  * response confirms the deactivate landed.
1322
1368
  */
1323
1369
  deactivateSession(sessionId: string): Promise<boolean>;
1370
+ /**
1371
+ * B-265: one session by id — the message cursor (`seq`), metadata and
1372
+ * agent state with their versions, decrypted with the session key the
1373
+ * reconnecting process already holds. `unsupported` = the server has no
1374
+ * such route (or the row is gone): callers fall back to the legacy
1375
+ * skip-all-history reconnect. Transient failures are retried a few times
1376
+ * first, because falling back silently discards the very message a restore
1377
+ * is meant to deliver.
1378
+ */
1379
+ getSession(sessionId: string, encryptionKey: Uint8Array, encryptionVariant: 'legacy' | 'dataKey', opts?: {
1380
+ attempts?: number;
1381
+ delaysMs?: number[];
1382
+ timeoutMs?: number;
1383
+ }): Promise<{
1384
+ ok: true;
1385
+ session: ServerSessionSnapshot;
1386
+ } | {
1387
+ ok: false;
1388
+ reason: 'unsupported' | 'unavailable';
1389
+ }>;
1324
1390
  /** Clear the server-owned archive tombstone before an intentional resume.
1325
1391
  * Older servers return 404 because the endpoint does not exist; that is a
1326
1392
  * compatible no-op because those servers also have no durable tombstone. */
package/dist/lib.d.mts CHANGED
@@ -321,6 +321,7 @@ declare const DaemonStateSchema: z$1.ZodObject<{
321
321
  }>>;
322
322
  mirrorSessionId: z$1.ZodOptional<z$1.ZodString>;
323
323
  restoredAt: z$1.ZodOptional<z$1.ZodNumber>;
324
+ manual: z$1.ZodOptional<z$1.ZodBoolean>;
324
325
  }, z$1.core.$strip>>;
325
326
  }, z$1.core.$strip>>;
326
327
  closedTerminals: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
@@ -333,8 +334,14 @@ declare const DaemonStateSchema: z$1.ZodObject<{
333
334
  closed: "closed";
334
335
  "daemon-gap": "daemon-gap";
335
336
  }>>;
337
+ tags: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
338
+ manual: z$1.ZodOptional<z$1.ZodBoolean>;
336
339
  closedAt: z$1.ZodNumber;
337
340
  }, z$1.core.$strip>>>;
341
+ terminalRestore: z$1.ZodOptional<z$1.ZodObject<{
342
+ rpcAvailable: z$1.ZodBoolean;
343
+ detectedAt: z$1.ZodNumber;
344
+ }, z$1.core.$strip>>;
338
345
  cliUpdate: z$1.ZodOptional<z$1.ZodObject<{
339
346
  currentVersion: z$1.ZodString;
340
347
  recommendedVersion: z$1.ZodNullable<z$1.ZodString>;
@@ -725,7 +732,14 @@ declare class ApiSessionClient extends EventEmitter {
725
732
  private readonly directInboundLocalIds;
726
733
  private readonly routedInboundLocalIds;
727
734
  private handoverInFlight;
728
- constructor(token: string, session: Session);
735
+ /** B-265 reconnect: the message cursor was seeded from the server, so
736
+ * nothing before it is history to replay — but socket fast-path routing
737
+ * must wait for the first fetch, otherwise a message that lands between
738
+ * the seed and the first fetch is routed twice (socket + fetch). */
739
+ private awaitingInitialFetch;
740
+ constructor(token: string, session: Session, opts?: {
741
+ initialSeq?: number;
742
+ });
729
743
  private createControlSocket;
730
744
  private startReleaseHandover;
731
745
  private releaseHandover;
@@ -1050,6 +1064,9 @@ interface TerminalListItem {
1050
1064
  * the claude conversation carried over. The web badges it until the user
1051
1065
  * opens it once; the mark is daemon-local and never persisted. */
1052
1066
  restoredAt?: number;
1067
+ /** B-265: `@vh_title_manual` is set — carried into close records so a
1068
+ * restore can put the flag back (old webs ignore it). */
1069
+ manual?: boolean;
1053
1070
  }
1054
1071
 
1055
1072
  /**
@@ -1063,6 +1080,11 @@ type MachineRpcHandlers = {
1063
1080
  model?: string;
1064
1081
  permissionMode?: string;
1065
1082
  }) => Promise<SpawnSessionResult>;
1083
+ /** B-264: stop a live-but-broken wrapper and relaunch it on the current CLI. */
1084
+ restartSession?: (sessionId: string, options?: {
1085
+ model?: string;
1086
+ permissionMode?: string;
1087
+ }) => Promise<SpawnSessionResult>;
1066
1088
  stopSession: (sessionId: string) => boolean;
1067
1089
  listTrackedSessionIds?: () => string[];
1068
1090
  requestShutdown: () => void;
@@ -1082,6 +1104,7 @@ declare class ApiMachineClient {
1082
1104
  private cliUpdatePushChain;
1083
1105
  private rpcHandlerManager;
1084
1106
  private resumeSessionHandler;
1107
+ private restartSessionHandler;
1085
1108
  private stopSessionHandler;
1086
1109
  private listTrackedSessionIds;
1087
1110
  private reconnectInterval;
@@ -1107,7 +1130,8 @@ declare class ApiMachineClient {
1107
1130
  /** Cache the latest relay policy locally and publish it now or on the next
1108
1131
  * socket connect. This makes startup/offline races harmless. */
1109
1132
  setCliUpdateState(state: CliUpdateState | null): void;
1110
- setRPCHandlers({ spawnSession, resumeSession, stopSession, listTrackedSessionIds, requestShutdown }: MachineRpcHandlers): void;
1133
+ setRPCHandlers({ spawnSession, resumeSession, restartSession, stopSession, listTrackedSessionIds, requestShutdown }: MachineRpcHandlers): void;
1134
+ private syncRestartSessionRpcRegistration;
1111
1135
  private syncResumeSessionRpcRegistration;
1112
1136
  /** Every pushed list also flows to the mirror manager (claude-exit
1113
1137
  * detection via pane observation). Set by the daemon at startup. */
@@ -1256,6 +1280,26 @@ declare class NotificationProducer {
1256
1280
  private clip;
1257
1281
  }
1258
1282
 
1283
+ /**
1284
+ * Reconnect-in-place helpers (B-265). A resumed process reattaches to an
1285
+ * EXISTING happy session (HAPPY_RECONNECT_*). Two truths must not be mixed up:
1286
+ *
1287
+ * - the server owns the conversation-level metadata (summary, tags,
1288
+ * claudeSessionId, board, …) and the message `seq`;
1289
+ * - the new process owns its own identity (pid, version, capabilities, …).
1290
+ *
1291
+ * Everything here is pure so the merge rules are unit-tested; the network
1292
+ * side is `api.getSession` and the wiring lives in runClaude / runCodex.
1293
+ */
1294
+
1295
+ interface ServerSessionSnapshot {
1296
+ seq: number;
1297
+ metadata: Metadata;
1298
+ metadataVersion: number;
1299
+ agentState: AgentState$1 | null;
1300
+ agentStateVersion: number;
1301
+ }
1302
+
1259
1303
  declare class ApiClient {
1260
1304
  static create(credential: Credentials): Promise<ApiClient>;
1261
1305
  private readonly credential;
@@ -1278,7 +1322,9 @@ declare class ApiClient {
1278
1322
  metadata: MachineMetadata;
1279
1323
  daemonState?: DaemonState;
1280
1324
  }): Promise<Machine>;
1281
- sessionSyncClient(session: Session): ApiSessionClient;
1325
+ sessionSyncClient(session: Session, opts?: {
1326
+ initialSeq?: number;
1327
+ }): ApiSessionClient;
1282
1328
  machineSyncClient(machine: Machine): ApiMachineClient;
1283
1329
  push(): PushNotificationClient;
1284
1330
  /**
@@ -1321,6 +1367,26 @@ declare class ApiClient {
1321
1367
  * response confirms the deactivate landed.
1322
1368
  */
1323
1369
  deactivateSession(sessionId: string): Promise<boolean>;
1370
+ /**
1371
+ * B-265: one session by id — the message cursor (`seq`), metadata and
1372
+ * agent state with their versions, decrypted with the session key the
1373
+ * reconnecting process already holds. `unsupported` = the server has no
1374
+ * such route (or the row is gone): callers fall back to the legacy
1375
+ * skip-all-history reconnect. Transient failures are retried a few times
1376
+ * first, because falling back silently discards the very message a restore
1377
+ * is meant to deliver.
1378
+ */
1379
+ getSession(sessionId: string, encryptionKey: Uint8Array, encryptionVariant: 'legacy' | 'dataKey', opts?: {
1380
+ attempts?: number;
1381
+ delaysMs?: number[];
1382
+ timeoutMs?: number;
1383
+ }): Promise<{
1384
+ ok: true;
1385
+ session: ServerSessionSnapshot;
1386
+ } | {
1387
+ ok: false;
1388
+ reason: 'unsupported' | 'unavailable';
1389
+ }>;
1324
1390
  /** Clear the server-owned archive tombstone before an intentional resume.
1325
1391
  * Older servers return 404 because the endpoint does not exist; that is a
1326
1392
  * compatible no-op because those servers also have no durable tombstone. */
package/dist/lib.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema, c as configuration, l as logger } from './types-BKyjG23_.mjs';
1
+ export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema, c as configuration, l as logger } from './types-B_8X_rZk.mjs';
2
2
  import 'axios';
3
3
  import 'chalk';
4
4
  import 'node:util';
@@ -1,9 +1,9 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
3
  import { z } from 'zod';
4
- import { p as pushClipboardViaDaemon } from './index-UCYD5Wk3.mjs';
4
+ import { p as pushClipboardViaDaemon } from './index-8LDXVYWi.mjs';
5
5
  import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, c as CLIPBOARD_MAX_BYTES } from './limits-CwFb5S2b.mjs';
6
- import { l as logger } from './types-BKyjG23_.mjs';
6
+ import { l as logger } from './types-B_8X_rZk.mjs';
7
7
  import 'chalk';
8
8
  import 'node:os';
9
9
  import 'node:crypto';
@@ -3,9 +3,9 @@
3
3
  var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
4
4
  var stdio_js = require('@modelcontextprotocol/sdk/server/stdio.js');
5
5
  var z = require('zod');
6
- var index = require('./index-FkXJNwiy.cjs');
6
+ var index = require('./index-B63Vjt4W.cjs');
7
7
  var limits = require('./limits-KdWKmwtH.cjs');
8
- var persistence = require('./types-ClDADuxP.cjs');
8
+ var persistence = require('./types-CjlB_fKT.cjs');
9
9
  require('chalk');
10
10
  require('node:os');
11
11
  require('node:crypto');
@@ -4,10 +4,10 @@ var ink = require('ink');
4
4
  var React = require('react');
5
5
  var node_crypto = require('node:crypto');
6
6
  var path = require('node:path');
7
- var persistence = require('./types-ClDADuxP.cjs');
8
- var index = require('./index-FkXJNwiy.cjs');
9
- var AcpBackend = require('./AcpBackend-GqveWg8u.cjs');
10
- var config = require('./config-C4NCw7Dz.cjs');
7
+ var persistence = require('./types-CjlB_fKT.cjs');
8
+ var index = require('./index-B63Vjt4W.cjs');
9
+ var AcpBackend = require('./AcpBackend-BP7id8L6.cjs');
10
+ var config = require('./config-B77vhdwT.cjs');
11
11
  require('axios');
12
12
  require('chalk');
13
13
  require('node:util');
@@ -2,10 +2,10 @@ import { useStdout, useInput, Box, Text, render } from 'ink';
2
2
  import React, { useState, useRef, useEffect, useCallback } from 'react';
3
3
  import { randomUUID } from 'node:crypto';
4
4
  import { join } from 'node:path';
5
- import { l as logger, h as connectionState, A as ApiClient, i as readSettings, e as errorLogMetadata, j as encodeBase64, p as projectPath, d as contentLogMetadata } from './types-BKyjG23_.mjs';
6
- import { g as GEMINI_API_KEY_ENV, j as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, B as BasePermissionHandler, k as BaseReasoningProcessor, i as initialMachineMetadata, d as createSessionMetadata, e as setupOfflineReconnection, n as notifyDaemonSessionStarted, M as MessageQueue2, h as hashObject, l as MessageBuffer, C as CHANGE_TITLE_INSTRUCTION, r as registerKillSessionHandler, f as startHappyServer } from './index-UCYD5Wk3.mjs';
7
- import { A as AcpBackend } from './AcpBackend-B5RRlzLU.mjs';
8
- import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-ra8iKxdU.mjs';
5
+ import { l as logger, h as connectionState, A as ApiClient, i as readSettings, e as errorLogMetadata, j as encodeBase64, p as projectPath, d as contentLogMetadata } from './types-B_8X_rZk.mjs';
6
+ import { g as GEMINI_API_KEY_ENV, j as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, B as BasePermissionHandler, k as BaseReasoningProcessor, i as initialMachineMetadata, d as createSessionMetadata, e as setupOfflineReconnection, n as notifyDaemonSessionStarted, M as MessageQueue2, h as hashObject, l as MessageBuffer, C as CHANGE_TITLE_INSTRUCTION, r as registerKillSessionHandler, f as startHappyServer } from './index-8LDXVYWi.mjs';
7
+ import { A as AcpBackend } from './AcpBackend-DDEsgc1c.mjs';
8
+ import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-CJQw0z1o.mjs';
9
9
  import 'axios';
10
10
  import 'chalk';
11
11
  import 'node:util';
@@ -5,9 +5,9 @@ var node_child_process = require('node:child_process');
5
5
  var os = require('node:os');
6
6
  var node_fs = require('node:fs');
7
7
  var path = require('node:path');
8
- var persistence = require('./types-ClDADuxP.cjs');
9
- var AcpSessionManager = require('./AcpSessionManager-YcrSZwvq.cjs');
10
- var index = require('./index-FkXJNwiy.cjs');
8
+ var persistence = require('./types-CjlB_fKT.cjs');
9
+ var AcpSessionManager = require('./AcpSessionManager-Cys1Hsb8.cjs');
10
+ var index = require('./index-B63Vjt4W.cjs');
11
11
  var WebSocket = require('ws');
12
12
  var ed = require('@noble/ed25519');
13
13
  var sha2_js = require('@noble/hashes/sha2.js');
@@ -3,9 +3,9 @@ import { execFileSync } from 'node:child_process';
3
3
  import os from 'node:os';
4
4
  import { existsSync, readFileSync } from 'node:fs';
5
5
  import { join } from 'node:path';
6
- import { k as ensurePrivateDirectorySync, m as hardenPrivateFileSync, w as writePrivateFileSync, e as errorLogMetadata, d as contentLogMetadata, h as connectionState, A as ApiClient, i as readSettings, j as encodeBase64, l as logger, c as configuration } from './types-BKyjG23_.mjs';
7
- import { A as AcpSessionManager } from './AcpSessionManager-Ij1pI5Ex.mjs';
8
- import { i as initialMachineMetadata, d as createSessionMetadata, e as setupOfflineReconnection, n as notifyDaemonSessionStarted, M as MessageQueue2, r as registerKillSessionHandler } from './index-UCYD5Wk3.mjs';
6
+ import { k as ensurePrivateDirectorySync, m as hardenPrivateFileSync, w as writePrivateFileSync, e as errorLogMetadata, d as contentLogMetadata, h as connectionState, A as ApiClient, i as readSettings, j as encodeBase64, l as logger, c as configuration } from './types-B_8X_rZk.mjs';
7
+ import { A as AcpSessionManager } from './AcpSessionManager-C29t6wb_.mjs';
8
+ import { i as initialMachineMetadata, d as createSessionMetadata, e as setupOfflineReconnection, n as notifyDaemonSessionStarted, M as MessageQueue2, r as registerKillSessionHandler } from './index-8LDXVYWi.mjs';
9
9
  import WebSocket from 'ws';
10
10
  import * as ed from '@noble/ed25519';
11
11
  import { sha512 } from '@noble/hashes/sha2.js';
@@ -3,8 +3,8 @@
3
3
  var chalk = require('chalk');
4
4
  var node_fs = require('node:fs');
5
5
  var path = require('node:path');
6
- var persistence = require('./types-ClDADuxP.cjs');
7
- var index = require('./index-FkXJNwiy.cjs');
6
+ var persistence = require('./types-CjlB_fKT.cjs');
7
+ var index = require('./index-B63Vjt4W.cjs');
8
8
  require('axios');
9
9
  require('node:util');
10
10
  require('node:os');
@@ -1,8 +1,8 @@
1
1
  import chalk from 'chalk';
2
2
  import { readFileSync } from 'node:fs';
3
3
  import { resolve } from 'node:path';
4
- import { r as readPersistedSessions, c as configuration } from './types-BKyjG23_.mjs';
5
- import { b as sendUserMessage, a as sessionWebUrl } from './index-UCYD5Wk3.mjs';
4
+ import { r as readPersistedSessions, c as configuration } from './types-B_8X_rZk.mjs';
5
+ import { b as sendUserMessage, a as sessionWebUrl } from './index-8LDXVYWi.mjs';
6
6
  import 'axios';
7
7
  import 'node:util';
8
8
  import 'node:os';
@@ -3,8 +3,8 @@
3
3
  var chalk = require('chalk');
4
4
  var node_fs = require('node:fs');
5
5
  var path = require('node:path');
6
- var index = require('./index-FkXJNwiy.cjs');
7
- var persistence = require('./types-ClDADuxP.cjs');
6
+ var index = require('./index-B63Vjt4W.cjs');
7
+ var persistence = require('./types-CjlB_fKT.cjs');
8
8
  require('node:os');
9
9
  require('node:crypto');
10
10
  require('cross-spawn');
@@ -1,8 +1,8 @@
1
1
  import chalk from 'chalk';
2
2
  import { readFileSync, statSync } from 'node:fs';
3
3
  import { resolve } from 'node:path';
4
- import { c as checkIfDaemonRunningAndCleanupStaleState, s as spawnDaemonSession, a as sessionWebUrl, w as waitForSessionKey, b as sendUserMessage } from './index-UCYD5Wk3.mjs';
5
- import { l as logger } from './types-BKyjG23_.mjs';
4
+ import { c as checkIfDaemonRunningAndCleanupStaleState, s as spawnDaemonSession, a as sessionWebUrl, w as waitForSessionKey, b as sendUserMessage } from './index-8LDXVYWi.mjs';
5
+ import { l as logger } from './types-B_8X_rZk.mjs';
6
6
  import 'node:os';
7
7
  import 'node:crypto';
8
8
  import 'cross-spawn';