very-happy-cli 0.2.138 → 0.2.140

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 (45) hide show
  1. package/dist/{AcpBackend-BUoDXZnv.cjs → AcpBackend-C0Lq4uoA.cjs} +2 -2
  2. package/dist/{AcpBackend-bqVGMkPh.mjs → AcpBackend-DsSYq8T-.mjs} +2 -2
  3. package/dist/{AcpSessionManager-BBAQ8EQf.mjs → AcpSessionManager-BAErE9s0.mjs} +1 -1
  4. package/dist/{AcpSessionManager-DmmA52Ep.cjs → AcpSessionManager-DIqByTH7.cjs} +1 -1
  5. package/dist/{agentGuidance-4HV-BOge.cjs → agentGuidance-Dl3apItH.cjs} +1 -1
  6. package/dist/{agentGuidance-WHZsBKpm.mjs → agentGuidance-xk3v4_7E.mjs} +1 -1
  7. package/dist/codex/happyMcpStdioBridge.cjs +2 -2
  8. package/dist/codex/happyMcpStdioBridge.mjs +2 -2
  9. package/dist/{config-BRXqgJJj.mjs → config-BVoHul9V.mjs} +4 -4
  10. package/dist/{config-DpuZN2Rs.cjs → config-D0-jnCOC.cjs} +4 -4
  11. package/dist/{index-DQe7ljLR.mjs → index-BNydKYvS.mjs} +7 -7
  12. package/dist/{index-D8Q3OhdR.mjs → index-BPnAbcz_.mjs} +4 -4
  13. package/dist/{index-CHP265gs.cjs → index-BuQn9kUK.cjs} +4 -4
  14. package/dist/{index-Dbl5U_N0.mjs → index-D0IP7gXG.mjs} +116 -232
  15. package/dist/{index-3N-qu-RG.cjs → index-DJvzGXVN.cjs} +7 -7
  16. package/dist/{index-CRRK5P1r.cjs → index-__h-pCTK.cjs} +147 -268
  17. package/dist/index.cjs +4 -4
  18. package/dist/index.mjs +4 -4
  19. package/dist/{installTerminalHooks-DfUGgeyb.mjs → installTerminalHooks-D2ice1a-.mjs} +4 -4
  20. package/dist/{installTerminalHooks-CWGkoWDD.cjs → installTerminalHooks-D3jfvbyY.cjs} +4 -4
  21. package/dist/lib.cjs +2 -2
  22. package/dist/lib.d.cts +21 -0
  23. package/dist/lib.d.mts +21 -0
  24. package/dist/lib.mjs +2 -2
  25. package/dist/{limits-CfzVummd.cjs → limits-Dbip6eVO.cjs} +26 -7
  26. package/dist/{limits-DEsg_gHi.mjs → limits-nhD0Wran.mjs} +26 -8
  27. package/dist/{mcp-CN2UVfut.cjs → mcp-DeapmTWN.cjs} +21 -21
  28. package/dist/{mcp-UnjB3I8_.mjs → mcp-V26C05fN.mjs} +19 -19
  29. package/dist/{runGemini-BUVjTJKn.cjs → runGemini-D34eCFpz.cjs} +7 -7
  30. package/dist/{runGemini-BZ0xXRj-.mjs → runGemini-sa5kAgPe.mjs} +6 -6
  31. package/dist/{runOpenClaw-Bj2EgRHB.cjs → runOpenClaw-B8F8D--R.cjs} +6 -6
  32. package/dist/{runOpenClaw-BcUmnBpW.mjs → runOpenClaw-Bdsq8KBa.mjs} +5 -5
  33. package/dist/{send-BkypdBpK.cjs → send-DP_S3wn0.cjs} +4 -4
  34. package/dist/{send-snK_NGAA.mjs → send-KICC_ACz.mjs} +4 -4
  35. package/dist/{sessions-DxlC4C4g.mjs → sessions-C6EvnC4B.mjs} +4 -4
  36. package/dist/{sessions-9A-uoJL_.cjs → sessions-CGBBgVZn.cjs} +4 -4
  37. package/dist/{spawn-BORLpj60.cjs → spawn-BhUK0Vt2.cjs} +8 -8
  38. package/dist/{spawn-DFfHCafP.mjs → spawn-C1OqXJNb.mjs} +6 -6
  39. package/dist/{teams-9x2FO9RW.cjs → teams-C29nEHFD.cjs} +4 -4
  40. package/dist/{teams-Cfr-2Yd-.mjs → teams-Dm5HGpNz.mjs} +4 -4
  41. package/dist/{todo-CU5cjQZU.mjs → todo-C-vovA0N.mjs} +3 -3
  42. package/dist/{todo-DydKcknX.cjs → todo-CeJX0z_2.cjs} +3 -3
  43. package/dist/{types-CRxf_3n8.cjs → types-DCVS050m.cjs} +571 -13
  44. package/dist/{types-D5EsIAOe.mjs → types-thyvQB2a.mjs} +558 -13
  45. package/package.json +7 -7
package/dist/index.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  require('chalk');
4
- require('./index-CRRK5P1r.cjs');
5
- require('./limits-CfzVummd.cjs');
4
+ require('./index-__h-pCTK.cjs');
5
+ require('./limits-Dbip6eVO.cjs');
6
6
  require('zod');
7
- require('./types-CRxf_3n8.cjs');
7
+ require('./types-DCVS050m.cjs');
8
8
  require('node:child_process');
9
9
  require('node:os');
10
10
  require('node:crypto');
@@ -12,7 +12,7 @@ require('cross-spawn');
12
12
  require('node:path');
13
13
  require('node:readline');
14
14
  require('node:fs');
15
- require('./agentGuidance-4HV-BOge.cjs');
15
+ require('./agentGuidance-Dl3apItH.cjs');
16
16
  require('node:fs/promises');
17
17
  require('fs/promises');
18
18
  require('ink');
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  import 'chalk';
2
- import './index-Dbl5U_N0.mjs';
3
- import './limits-DEsg_gHi.mjs';
2
+ import './index-D0IP7gXG.mjs';
3
+ import './limits-nhD0Wran.mjs';
4
4
  import 'zod';
5
- import './types-D5EsIAOe.mjs';
5
+ import './types-thyvQB2a.mjs';
6
6
  import 'node:child_process';
7
7
  import 'node:os';
8
8
  import 'node:crypto';
@@ -10,7 +10,7 @@ import 'cross-spawn';
10
10
  import 'node:path';
11
11
  import 'node:readline';
12
12
  import 'node:fs';
13
- import './agentGuidance-WHZsBKpm.mjs';
13
+ import './agentGuidance-xk3v4_7E.mjs';
14
14
  import 'node:fs/promises';
15
15
  import 'fs/promises';
16
16
  import 'ink';
@@ -3,10 +3,10 @@ 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-D5EsIAOe.mjs';
7
- import { t as tmuxSupportsSessionEnv } from './index-Dbl5U_N0.mjs';
6
+ import { p as projectPath } from './types-thyvQB2a.mjs';
7
+ import { t as tmuxSupportsSessionEnv } from './index-D0IP7gXG.mjs';
8
8
  import 'axios';
9
- import './limits-DEsg_gHi.mjs';
9
+ import './limits-nhD0Wran.mjs';
10
10
  import 'node:fs/promises';
11
11
  import 'zod';
12
12
  import 'node:crypto';
@@ -28,7 +28,7 @@ import 'fs';
28
28
  import 'node:readline';
29
29
  import '@anthropic-ai/sandbox-runtime';
30
30
  import 'expo-server-sdk';
31
- import './agentGuidance-WHZsBKpm.mjs';
31
+ import './agentGuidance-xk3v4_7E.mjs';
32
32
  import 'ink';
33
33
  import 'react';
34
34
  import '@anthropic-ai/claude-agent-sdk';
@@ -5,10 +5,10 @@ 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 api = require('./types-CRxf_3n8.cjs');
9
- var index = require('./index-CRRK5P1r.cjs');
8
+ var api = require('./types-DCVS050m.cjs');
9
+ var index = require('./index-__h-pCTK.cjs');
10
10
  require('axios');
11
- require('./limits-CfzVummd.cjs');
11
+ require('./limits-Dbip6eVO.cjs');
12
12
  require('node:fs/promises');
13
13
  require('zod');
14
14
  require('node:crypto');
@@ -30,7 +30,7 @@ require('fs');
30
30
  require('node:readline');
31
31
  require('@anthropic-ai/sandbox-runtime');
32
32
  require('expo-server-sdk');
33
- require('./agentGuidance-4HV-BOge.cjs');
33
+ require('./agentGuidance-Dl3apItH.cjs');
34
34
  require('ink');
35
35
  require('react');
36
36
  require('@anthropic-ai/claude-agent-sdk');
package/dist/lib.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var api = require('./types-CRxf_3n8.cjs');
4
- var persistence = require('./limits-CfzVummd.cjs');
3
+ var api = require('./types-DCVS050m.cjs');
4
+ var persistence = require('./limits-Dbip6eVO.cjs');
5
5
  require('axios');
6
6
  require('node:events');
7
7
  require('socket.io-client');
package/dist/lib.d.cts CHANGED
@@ -456,6 +456,10 @@ declare const DaemonStateSchema: z$1.ZodObject<{
456
456
  rpcAvailable: z$1.ZodBoolean;
457
457
  detectedAt: z$1.ZodNumber;
458
458
  }, z$1.core.$strip>>;
459
+ codexHistory: z$1.ZodOptional<z$1.ZodObject<{
460
+ rpcAvailable: z$1.ZodBoolean;
461
+ detectedAt: z$1.ZodNumber;
462
+ }, z$1.core.$strip>>;
459
463
  cliUpdate: z$1.ZodOptional<z$1.ZodObject<{
460
464
  currentVersion: z$1.ZodString;
461
465
  recommendedVersion: z$1.ZodNullable<z$1.ZodString>;
@@ -672,6 +676,13 @@ type Metadata = {
672
676
  * that already have a copy here. Absent on every other session.
673
677
  */
674
678
  importedFromClaudeSessionId?: string;
679
+ /**
680
+ * B-464: the Codex thread this session was imported from (the rollout
681
+ * written by the codex TUI / `codex exec` / Codex desktop that the wrapper
682
+ * forked at start). `codexThreadId` is the fork. Lets the import picker hide
683
+ * originals that already have a copy here. Absent on every other session.
684
+ */
685
+ importedFromCodexThreadId?: string;
675
686
  /**
676
687
  * B-051: session variant. 'assistant' marks the machine's meta-agent
677
688
  * (dispatcher / voice assistant) session — fixed cwd ~/.happy/assistant,
@@ -1022,6 +1033,9 @@ declare class ApiSessionClient extends EventEmitter {
1022
1033
  /**
1023
1034
  * Send a ping message to keep the connection alive
1024
1035
  */
1036
+ /** B-466: turn edges (and a periodic lease) reported to the local daemon so
1037
+ * auto-update waits for "no turn in flight" instead of "no sessions". */
1038
+ private readonly turnReporter;
1025
1039
  keepAlive(thinking: boolean, mode: 'local' | 'remote'): void;
1026
1040
  /**
1027
1041
  * B-309: push one live stream frame (thinking/text delta or progress) to
@@ -1152,6 +1166,13 @@ interface SpawnSessionOptions {
1152
1166
  * metadata so the import picker hides it. Old daemons ignore the field.
1153
1167
  */
1154
1168
  importedFromClaudeSessionId?: string;
1169
+ /**
1170
+ * B-464: Codex thread (written by the codex TUI / exec / desktop app) to
1171
+ * import: the spawned wrapper forks it through the app-server, continues
1172
+ * on the fork and records the original as `importedFromCodexThreadId`.
1173
+ * Mutually exclusive with `resumeCodexThreadId`. Old daemons ignore it.
1174
+ */
1175
+ importCodexThreadId?: string;
1155
1176
  /**
1156
1177
  * B-294: title to stamp on the imported session's metadata (the source
1157
1178
  * conversation's summary / first prompt). Sanitized daemon-side.
package/dist/lib.d.mts CHANGED
@@ -456,6 +456,10 @@ declare const DaemonStateSchema: z$1.ZodObject<{
456
456
  rpcAvailable: z$1.ZodBoolean;
457
457
  detectedAt: z$1.ZodNumber;
458
458
  }, z$1.core.$strip>>;
459
+ codexHistory: z$1.ZodOptional<z$1.ZodObject<{
460
+ rpcAvailable: z$1.ZodBoolean;
461
+ detectedAt: z$1.ZodNumber;
462
+ }, z$1.core.$strip>>;
459
463
  cliUpdate: z$1.ZodOptional<z$1.ZodObject<{
460
464
  currentVersion: z$1.ZodString;
461
465
  recommendedVersion: z$1.ZodNullable<z$1.ZodString>;
@@ -672,6 +676,13 @@ type Metadata = {
672
676
  * that already have a copy here. Absent on every other session.
673
677
  */
674
678
  importedFromClaudeSessionId?: string;
679
+ /**
680
+ * B-464: the Codex thread this session was imported from (the rollout
681
+ * written by the codex TUI / `codex exec` / Codex desktop that the wrapper
682
+ * forked at start). `codexThreadId` is the fork. Lets the import picker hide
683
+ * originals that already have a copy here. Absent on every other session.
684
+ */
685
+ importedFromCodexThreadId?: string;
675
686
  /**
676
687
  * B-051: session variant. 'assistant' marks the machine's meta-agent
677
688
  * (dispatcher / voice assistant) session — fixed cwd ~/.happy/assistant,
@@ -1022,6 +1033,9 @@ declare class ApiSessionClient extends EventEmitter {
1022
1033
  /**
1023
1034
  * Send a ping message to keep the connection alive
1024
1035
  */
1036
+ /** B-466: turn edges (and a periodic lease) reported to the local daemon so
1037
+ * auto-update waits for "no turn in flight" instead of "no sessions". */
1038
+ private readonly turnReporter;
1025
1039
  keepAlive(thinking: boolean, mode: 'local' | 'remote'): void;
1026
1040
  /**
1027
1041
  * B-309: push one live stream frame (thinking/text delta or progress) to
@@ -1152,6 +1166,13 @@ interface SpawnSessionOptions {
1152
1166
  * metadata so the import picker hides it. Old daemons ignore the field.
1153
1167
  */
1154
1168
  importedFromClaudeSessionId?: string;
1169
+ /**
1170
+ * B-464: Codex thread (written by the codex TUI / exec / desktop app) to
1171
+ * import: the spawned wrapper forks it through the app-server, continues
1172
+ * on the fork and records the original as `importedFromCodexThreadId`.
1173
+ * Mutually exclusive with `resumeCodexThreadId`. Old daemons ignore it.
1174
+ */
1175
+ importCodexThreadId?: string;
1155
1176
  /**
1156
1177
  * B-294: title to stamp on the imported session's metadata (the source
1157
1178
  * conversation's summary / first prompt). Sanitized daemon-side.
package/dist/lib.mjs CHANGED
@@ -1,5 +1,5 @@
1
- export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema } from './types-D5EsIAOe.mjs';
2
- export { c as configuration, l as logger } from './limits-DEsg_gHi.mjs';
1
+ export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema } from './types-thyvQB2a.mjs';
2
+ export { c as configuration, l as logger } from './limits-nhD0Wran.mjs';
3
3
  import 'axios';
4
4
  import 'node:events';
5
5
  import 'socket.io-client';
@@ -30,7 +30,7 @@ function _interopNamespaceDefault(e) {
30
30
  var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
31
31
 
32
32
  var name = "very-happy-cli";
33
- var version = "0.2.138";
33
+ var version = "0.2.140";
34
34
  var description = "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.";
35
35
  var author = "Kirill Dubovitskiy";
36
36
  var contributors = [
@@ -143,12 +143,12 @@ var dependencies = {
143
143
  zod: "^4.0.0"
144
144
  };
145
145
  var optionalDependencies = {
146
- "very-happy-tools-arm64-darwin": "0.2.138",
147
- "very-happy-tools-x64-darwin": "0.2.138",
148
- "very-happy-tools-arm64-linux": "0.2.138",
149
- "very-happy-tools-x64-linux": "0.2.138",
150
- "very-happy-tools-arm64-win32": "0.2.138",
151
- "very-happy-tools-x64-win32": "0.2.138"
146
+ "very-happy-tools-arm64-darwin": "0.2.140",
147
+ "very-happy-tools-x64-darwin": "0.2.140",
148
+ "very-happy-tools-arm64-linux": "0.2.140",
149
+ "very-happy-tools-x64-linux": "0.2.140",
150
+ "very-happy-tools-arm64-win32": "0.2.140",
151
+ "very-happy-tools-x64-win32": "0.2.140"
152
152
  };
153
153
  var devDependencies = {
154
154
  "@slopus/happy-wire": "workspace:*",
@@ -1069,6 +1069,23 @@ function readTrackedClaudeSessionIds() {
1069
1069
  return [];
1070
1070
  }
1071
1071
  }
1072
+ function readTrackedCodexThreadIds() {
1073
+ try {
1074
+ if (!node_fs.existsSync(configuration.sessionsFile)) return [];
1075
+ const data = JSON.parse(node_fs.readFileSync(configuration.sessionsFile, "utf-8"));
1076
+ if (!data?.sessions || typeof data.sessions !== "object") return [];
1077
+ const ids = /* @__PURE__ */ new Set();
1078
+ for (const session of Object.values(data.sessions)) {
1079
+ const metadata = (session ?? {}).metadata;
1080
+ for (const id of [metadata?.codexThreadId, metadata?.importedFromCodexThreadId]) {
1081
+ if (typeof id === "string" && id.length > 0) ids.add(id.toLowerCase());
1082
+ }
1083
+ }
1084
+ return [...ids];
1085
+ } catch {
1086
+ return [];
1087
+ }
1088
+ }
1072
1089
  function persistSession(sessionId, session) {
1073
1090
  try {
1074
1091
  const existing = readPersistedSessions();
@@ -1118,6 +1135,7 @@ var persistence = /*#__PURE__*/Object.freeze({
1118
1135
  readSettings: readSettings,
1119
1136
  readSettingsOutcome: readSettingsOutcome,
1120
1137
  readTrackedClaudeSessionIds: readTrackedClaudeSessionIds,
1138
+ readTrackedCodexThreadIds: readTrackedCodexThreadIds,
1121
1139
  releaseDaemonLock: releaseDaemonLock,
1122
1140
  updateSettings: updateSettings,
1123
1141
  writeCredentialsDataKey: writeCredentialsDataKey,
@@ -1188,6 +1206,7 @@ exports.readPersistedSessions = readPersistedSessions;
1188
1206
  exports.readSettings = readSettings;
1189
1207
  exports.readSettingsOutcome = readSettingsOutcome;
1190
1208
  exports.readTrackedClaudeSessionIds = readTrackedClaudeSessionIds;
1209
+ exports.readTrackedCodexThreadIds = readTrackedCodexThreadIds;
1191
1210
  exports.redactLogValue = redactLogValue;
1192
1211
  exports.releaseDaemonLock = releaseDaemonLock;
1193
1212
  exports.updateSettings = updateSettings;
@@ -9,7 +9,7 @@ import chalk from 'chalk';
9
9
  import { inspect } from 'node:util';
10
10
 
11
11
  var name = "very-happy-cli";
12
- var version = "0.2.138";
12
+ var version = "0.2.140";
13
13
  var description = "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.";
14
14
  var author = "Kirill Dubovitskiy";
15
15
  var contributors = [
@@ -122,12 +122,12 @@ var dependencies = {
122
122
  zod: "^4.0.0"
123
123
  };
124
124
  var optionalDependencies = {
125
- "very-happy-tools-arm64-darwin": "0.2.138",
126
- "very-happy-tools-x64-darwin": "0.2.138",
127
- "very-happy-tools-arm64-linux": "0.2.138",
128
- "very-happy-tools-x64-linux": "0.2.138",
129
- "very-happy-tools-arm64-win32": "0.2.138",
130
- "very-happy-tools-x64-win32": "0.2.138"
125
+ "very-happy-tools-arm64-darwin": "0.2.140",
126
+ "very-happy-tools-x64-darwin": "0.2.140",
127
+ "very-happy-tools-arm64-linux": "0.2.140",
128
+ "very-happy-tools-x64-linux": "0.2.140",
129
+ "very-happy-tools-arm64-win32": "0.2.140",
130
+ "very-happy-tools-x64-win32": "0.2.140"
131
131
  };
132
132
  var devDependencies = {
133
133
  "@slopus/happy-wire": "workspace:*",
@@ -1048,6 +1048,23 @@ function readTrackedClaudeSessionIds() {
1048
1048
  return [];
1049
1049
  }
1050
1050
  }
1051
+ function readTrackedCodexThreadIds() {
1052
+ try {
1053
+ if (!existsSync(configuration.sessionsFile)) return [];
1054
+ const data = JSON.parse(readFileSync(configuration.sessionsFile, "utf-8"));
1055
+ if (!data?.sessions || typeof data.sessions !== "object") return [];
1056
+ const ids = /* @__PURE__ */ new Set();
1057
+ for (const session of Object.values(data.sessions)) {
1058
+ const metadata = (session ?? {}).metadata;
1059
+ for (const id of [metadata?.codexThreadId, metadata?.importedFromCodexThreadId]) {
1060
+ if (typeof id === "string" && id.length > 0) ids.add(id.toLowerCase());
1061
+ }
1062
+ }
1063
+ return [...ids];
1064
+ } catch {
1065
+ return [];
1066
+ }
1067
+ }
1051
1068
  function persistSession(sessionId, session) {
1052
1069
  try {
1053
1070
  const existing = readPersistedSessions();
@@ -1097,6 +1114,7 @@ var persistence = /*#__PURE__*/Object.freeze({
1097
1114
  readSettings: readSettings,
1098
1115
  readSettingsOutcome: readSettingsOutcome,
1099
1116
  readTrackedClaudeSessionIds: readTrackedClaudeSessionIds,
1117
+ readTrackedCodexThreadIds: readTrackedCodexThreadIds,
1100
1118
  releaseDaemonLock: releaseDaemonLock,
1101
1119
  updateSettings: updateSettings,
1102
1120
  writeCredentialsDataKey: writeCredentialsDataKey,
@@ -1126,4 +1144,4 @@ function prepareClipboardText(input) {
1126
1144
  return { text, truncated: true, totalBytes };
1127
1145
  }
1128
1146
 
1129
- export { clearDaemonState as A, ensurePrivateDirectory as B, CLIPBOARD_TOOL_NAME as C, hardenPrivateFile as D, readCredentials as E, readSettingsOutcome as F, updateSettings as G, encodeBase64Url as H, writeCredentialsLegacy as I, writeCredentialsDataKey as J, decryptWithDataKey as K, decryptLegacy as L, persistSession as M, acquireDaemonLock as N, deletePersistedSessions as O, writeDaemonState as P, writeSettings as Q, releaseDaemonLock as R, clearCredentials as S, clearMachineId as T, SandboxConfigSchema as U, getLatestDaemonLog as V, persistence as W, CLIPBOARD_TOOL_TITLE as a, CLIPBOARD_TOOL_DESCRIPTION as b, configuration as c, readCredentialsForConfiguredRelay as d, CLIPBOARD_MAX_BYTES as e, ensurePrivateDirectorySync as f, readSettings as g, hardenPrivateFileSync as h, encodeBase64 as i, encrypt as j, decrypt as k, logger as l, decodeBase64 as m, normalizeHttpEndpoint as n, decryptBlob as o, packageJson as p, prepareClipboardText as q, readPersistedSessions as r, credentialRelayProblem as s, readTrackedClaudeSessionIds as t, libsodiumEncryptForPublicKey as u, libsodiumPublicKeyFromSecretKey as v, writePrivateFileSync as w, getRandomBytes as x, redactLogValue as y, readDaemonState as z };
1147
+ export { getRandomBytes as A, redactLogValue as B, CLIPBOARD_TOOL_NAME as C, ensurePrivateDirectory as D, hardenPrivateFile as E, readCredentials as F, readSettingsOutcome as G, updateSettings as H, encodeBase64Url as I, writeCredentialsLegacy as J, writeCredentialsDataKey as K, decryptWithDataKey as L, decryptLegacy as M, persistSession as N, acquireDaemonLock as O, deletePersistedSessions as P, writeDaemonState as Q, writeSettings as R, releaseDaemonLock as S, clearCredentials as T, clearMachineId as U, SandboxConfigSchema as V, getLatestDaemonLog as W, persistence as X, CLIPBOARD_TOOL_TITLE as a, CLIPBOARD_TOOL_DESCRIPTION as b, configuration as c, readCredentialsForConfiguredRelay as d, CLIPBOARD_MAX_BYTES as e, ensurePrivateDirectorySync as f, readSettings as g, hardenPrivateFileSync as h, encodeBase64 as i, encrypt as j, decrypt as k, logger as l, decodeBase64 as m, normalizeHttpEndpoint as n, readDaemonState as o, packageJson as p, clearDaemonState as q, readPersistedSessions as r, decryptBlob as s, prepareClipboardText as t, credentialRelayProblem as u, readTrackedClaudeSessionIds as v, writePrivateFileSync as w, readTrackedCodexThreadIds as x, libsodiumEncryptForPublicKey as y, libsodiumPublicKeyFromSecretKey as z };
@@ -1,11 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var agentGuidance = require('./agentGuidance-4HV-BOge.cjs');
3
+ var agentGuidance = require('./agentGuidance-Dl3apItH.cjs');
4
4
  var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
5
5
  var stdio_js = require('@modelcontextprotocol/sdk/server/stdio.js');
6
6
  var z = require('zod');
7
- var index = require('./index-CRRK5P1r.cjs');
8
- var persistence = require('./limits-CfzVummd.cjs');
7
+ var api = require('./types-DCVS050m.cjs');
8
+ var persistence = require('./limits-Dbip6eVO.cjs');
9
+ var index = require('./index-__h-pCTK.cjs');
9
10
  require('node:fs/promises');
10
11
  require('node:os');
11
12
  require('node:crypto');
@@ -13,41 +14,40 @@ require('axios');
13
14
  require('tweetnacl');
14
15
  require('socket.io-client');
15
16
  require('node:child_process');
16
- require('./types-CRxf_3n8.cjs');
17
17
  require('node:fs');
18
18
  require('node:path');
19
- require('chalk');
20
- require('cross-spawn');
21
- require('node:readline');
22
- require('fs/promises');
23
- require('ink');
24
- require('react');
25
- require('@anthropic-ai/claude-agent-sdk');
26
19
  require('node:events');
27
- require('os');
28
- require('child_process');
29
20
  require('@paralleldrive/cuid2');
30
- require('fs');
21
+ require('child_process');
22
+ require('util');
23
+ require('fs/promises');
24
+ require('crypto');
31
25
  require('path');
26
+ require('cross-spawn');
27
+ require('url');
28
+ require('os');
29
+ require('node-pty');
30
+ require('fs');
31
+ require('node:readline');
32
32
  require('@anthropic-ai/sandbox-runtime');
33
33
  require('expo-server-sdk');
34
- require('crypto');
34
+ require('chalk');
35
+ require('node:util');
36
+ require('ink');
37
+ require('react');
38
+ require('@anthropic-ai/claude-agent-sdk');
35
39
  require('ps-list');
36
40
  require('tmp');
37
41
  require('open');
38
42
  require('fastify');
39
43
  require('fastify-type-provider-zod');
40
44
  require('node:module');
41
- require('node:util');
42
45
  require('node:http');
43
46
  require('@modelcontextprotocol/sdk/server/streamableHttp.js');
44
47
  require('http');
45
- require('util');
46
48
  require('inquirer');
47
49
  require('node:url');
48
50
  require('node:readline/promises');
49
- require('url');
50
- require('node-pty');
51
51
 
52
52
  const TERMINAL_TITLE_TOOL_NAME = "change_title";
53
53
  function resolveMcpTerminalId(env) {
@@ -70,7 +70,7 @@ function registerMcpTools(server, surface, terminalId = null) {
70
70
  }
71
71
  }, async (args) => {
72
72
  persistence.logger.debug(`[MCP] copy_to_clipboard called (${args.text.length} chars)`);
73
- const result = await index.pushClipboardViaDaemon(args.text);
73
+ const result = await api.pushClipboardViaDaemon(args.text);
74
74
  if (result.delivered) {
75
75
  const note = result.truncated ? ` (truncated to ${persistence.CLIPBOARD_MAX_BYTES / 1024}KB \u2014 original was ${result.totalBytes} bytes)` : "";
76
76
  return {
@@ -98,7 +98,7 @@ function registerMcpTools(server, surface, terminalId = null) {
98
98
  }
99
99
  }, async (args) => {
100
100
  persistence.logger.debug(`[MCP] change_title called for terminal ${terminalId}`);
101
- const result = await index.setTerminalTitleViaDaemon(terminalId, args.title);
101
+ const result = await api.setTerminalTitleViaDaemon(terminalId, args.title);
102
102
  if (result.ok) {
103
103
  return {
104
104
  content: [{ type: "text", text: `Successfully changed terminal title to: "${args.title}"` }],
@@ -1,9 +1,10 @@
1
- import { r as registerTeamsTools } from './agentGuidance-WHZsBKpm.mjs';
1
+ import { r as registerTeamsTools } from './agentGuidance-xk3v4_7E.mjs';
2
2
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
3
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
4
  import { z } from 'zod';
5
- import { p as pushClipboardViaDaemon, k as setTerminalTitleViaDaemon, m as registerAssistantSessionTools } from './index-Dbl5U_N0.mjs';
6
- import { l as logger, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, e as CLIPBOARD_MAX_BYTES } from './limits-DEsg_gHi.mjs';
5
+ import { f as pushClipboardViaDaemon, g as setTerminalTitleViaDaemon } from './types-thyvQB2a.mjs';
6
+ import { l as logger, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, e as CLIPBOARD_MAX_BYTES } from './limits-nhD0Wran.mjs';
7
+ import { h as registerAssistantSessionTools } from './index-D0IP7gXG.mjs';
7
8
  import 'node:fs/promises';
8
9
  import 'node:os';
9
10
  import 'node:crypto';
@@ -11,41 +12,40 @@ import 'axios';
11
12
  import 'tweetnacl';
12
13
  import 'socket.io-client';
13
14
  import 'node:child_process';
14
- import './types-D5EsIAOe.mjs';
15
15
  import 'node:fs';
16
16
  import 'node:path';
17
- import 'chalk';
18
- import 'cross-spawn';
19
- import 'node:readline';
20
- import 'fs/promises';
21
- import 'ink';
22
- import 'react';
23
- import '@anthropic-ai/claude-agent-sdk';
24
17
  import 'node:events';
25
- import 'os';
26
- import 'child_process';
27
18
  import '@paralleldrive/cuid2';
28
- import 'fs';
19
+ import 'child_process';
20
+ import 'util';
21
+ import 'fs/promises';
22
+ import 'crypto';
29
23
  import 'path';
24
+ import 'cross-spawn';
25
+ import 'url';
26
+ import 'os';
27
+ import 'node-pty';
28
+ import 'fs';
29
+ import 'node:readline';
30
30
  import '@anthropic-ai/sandbox-runtime';
31
31
  import 'expo-server-sdk';
32
- import 'crypto';
32
+ import 'chalk';
33
+ import 'node:util';
34
+ import 'ink';
35
+ import 'react';
36
+ import '@anthropic-ai/claude-agent-sdk';
33
37
  import 'ps-list';
34
38
  import 'tmp';
35
39
  import 'open';
36
40
  import 'fastify';
37
41
  import 'fastify-type-provider-zod';
38
42
  import 'node:module';
39
- import 'node:util';
40
43
  import 'node:http';
41
44
  import '@modelcontextprotocol/sdk/server/streamableHttp.js';
42
45
  import 'http';
43
- import 'util';
44
46
  import 'inquirer';
45
47
  import 'node:url';
46
48
  import 'node:readline/promises';
47
- import 'url';
48
- import 'node-pty';
49
49
 
50
50
  const TERMINAL_TITLE_TOOL_NAME = "change_title";
51
51
  function resolveMcpTerminalId(env) {
@@ -4,11 +4,11 @@ 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 api = require('./types-CRxf_3n8.cjs');
8
- var persistence = require('./limits-CfzVummd.cjs');
9
- var index = require('./index-CRRK5P1r.cjs');
10
- var AcpBackend = require('./AcpBackend-BUoDXZnv.cjs');
11
- var config = require('./config-DpuZN2Rs.cjs');
7
+ var api = require('./types-DCVS050m.cjs');
8
+ var persistence = require('./limits-Dbip6eVO.cjs');
9
+ var index = require('./index-__h-pCTK.cjs');
10
+ var AcpBackend = require('./AcpBackend-C0Lq4uoA.cjs');
11
+ var config = require('./config-D0-jnCOC.cjs');
12
12
  require('axios');
13
13
  require('node:events');
14
14
  require('socket.io-client');
@@ -34,7 +34,7 @@ require('@anthropic-ai/sandbox-runtime');
34
34
  require('expo-server-sdk');
35
35
  require('chalk');
36
36
  require('node:util');
37
- require('./agentGuidance-4HV-BOge.cjs');
37
+ require('./agentGuidance-Dl3apItH.cjs');
38
38
  require('@anthropic-ai/claude-agent-sdk');
39
39
  require('ps-list');
40
40
  require('tmp');
@@ -942,7 +942,7 @@ async function runGemini(opts) {
942
942
  if (response) {
943
943
  try {
944
944
  persistence.logger.debug(`[START] Reporting session ${response.id} to daemon`);
945
- const result = await index.notifyDaemonSessionStarted(response.id, metadata, {
945
+ const result = await api.notifyDaemonSessionStarted(response.id, metadata, {
946
946
  encryptionKey: persistence.encodeBase64(response.encryptionKey),
947
947
  encryptionVariant: response.encryptionVariant,
948
948
  seq: response.seq,
@@ -2,11 +2,11 @@ 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 { f as connectionState, A as ApiClient, e as errorLogMetadata, p as projectPath, d as contentLogMetadata } from './types-D5EsIAOe.mjs';
6
- import { l as logger, g as readSettings, i as encodeBase64 } from './limits-DEsg_gHi.mjs';
7
- import { Q as GEMINI_API_KEY_ENV, R as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, K as BasePermissionHandler, U as BaseReasoningProcessor, n as initialMachineMetadata, o as createSessionMetadata, u as setupOfflineReconnection, v as notifyDaemonSessionStarted, x as MessageQueue2, B as hashObject, V as MessageBuffer, W as CHANGE_TITLE_INSTRUCTION, y as registerKillSessionHandler, C as startHappyServer } from './index-Dbl5U_N0.mjs';
8
- import { A as AcpBackend } from './AcpBackend-bqVGMkPh.mjs';
9
- import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-BRXqgJJj.mjs';
5
+ import { k as connectionState, A as ApiClient, h as errorLogMetadata, n as notifyDaemonSessionStarted, p as projectPath, j as contentLogMetadata } from './types-thyvQB2a.mjs';
6
+ import { l as logger, g as readSettings, i as encodeBase64 } from './limits-nhD0Wran.mjs';
7
+ import { J as GEMINI_API_KEY_ENV, K as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, E as BasePermissionHandler, L as BaseReasoningProcessor, j as initialMachineMetadata, k as createSessionMetadata, m as setupOfflineReconnection, n as MessageQueue2, u as hashObject, N as MessageBuffer, O as CHANGE_TITLE_INSTRUCTION, o as registerKillSessionHandler, v as startHappyServer } from './index-D0IP7gXG.mjs';
8
+ import { A as AcpBackend } from './AcpBackend-DsSYq8T-.mjs';
9
+ import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-BVoHul9V.mjs';
10
10
  import 'axios';
11
11
  import 'node:events';
12
12
  import 'socket.io-client';
@@ -32,7 +32,7 @@ import '@anthropic-ai/sandbox-runtime';
32
32
  import 'expo-server-sdk';
33
33
  import 'chalk';
34
34
  import 'node:util';
35
- import './agentGuidance-WHZsBKpm.mjs';
35
+ import './agentGuidance-xk3v4_7E.mjs';
36
36
  import '@anthropic-ai/claude-agent-sdk';
37
37
  import 'ps-list';
38
38
  import 'tmp';
@@ -5,10 +5,10 @@ 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 api = require('./types-CRxf_3n8.cjs');
9
- var AcpSessionManager = require('./AcpSessionManager-DmmA52Ep.cjs');
10
- var persistence = require('./limits-CfzVummd.cjs');
11
- var index = require('./index-CRRK5P1r.cjs');
8
+ var api = require('./types-DCVS050m.cjs');
9
+ var AcpSessionManager = require('./AcpSessionManager-DIqByTH7.cjs');
10
+ var persistence = require('./limits-Dbip6eVO.cjs');
11
+ var index = require('./index-__h-pCTK.cjs');
12
12
  var WebSocket = require('ws');
13
13
  var ed = require('@noble/ed25519');
14
14
  var sha2_js = require('@noble/hashes/sha2.js');
@@ -34,7 +34,7 @@ require('@anthropic-ai/sandbox-runtime');
34
34
  require('expo-server-sdk');
35
35
  require('chalk');
36
36
  require('node:util');
37
- require('./agentGuidance-4HV-BOge.cjs');
37
+ require('./agentGuidance-Dl3apItH.cjs');
38
38
  require('ink');
39
39
  require('react');
40
40
  require('@anthropic-ai/claude-agent-sdk');
@@ -864,7 +864,7 @@ async function runOpenClaw(opts) {
864
864
  session = initialSession;
865
865
  if (response) {
866
866
  try {
867
- await index.notifyDaemonSessionStarted(response.id, metadata, {
867
+ await api.notifyDaemonSessionStarted(response.id, metadata, {
868
868
  encryptionKey: persistence.encodeBase64(response.encryptionKey),
869
869
  encryptionVariant: response.encryptionVariant,
870
870
  seq: response.seq,
@@ -3,10 +3,10 @@ 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 { e as errorLogMetadata, d as contentLogMetadata, f as connectionState, A as ApiClient } from './types-D5EsIAOe.mjs';
7
- import { A as AcpSessionManager } from './AcpSessionManager-BBAQ8EQf.mjs';
8
- import { f as ensurePrivateDirectorySync, h as hardenPrivateFileSync, w as writePrivateFileSync, g as readSettings, i as encodeBase64, l as logger, c as configuration } from './limits-DEsg_gHi.mjs';
9
- import { n as initialMachineMetadata, o as createSessionMetadata, u as setupOfflineReconnection, v as notifyDaemonSessionStarted, x as MessageQueue2, y as registerKillSessionHandler } from './index-Dbl5U_N0.mjs';
6
+ import { h as errorLogMetadata, j as contentLogMetadata, k as connectionState, A as ApiClient, n as notifyDaemonSessionStarted } from './types-thyvQB2a.mjs';
7
+ import { A as AcpSessionManager } from './AcpSessionManager-BAErE9s0.mjs';
8
+ import { f as ensurePrivateDirectorySync, h as hardenPrivateFileSync, w as writePrivateFileSync, g as readSettings, i as encodeBase64, l as logger, c as configuration } from './limits-nhD0Wran.mjs';
9
+ import { j as initialMachineMetadata, k as createSessionMetadata, m as setupOfflineReconnection, n as MessageQueue2, o as registerKillSessionHandler } from './index-D0IP7gXG.mjs';
10
10
  import WebSocket from 'ws';
11
11
  import * as ed from '@noble/ed25519';
12
12
  import { sha512 } from '@noble/hashes/sha2.js';
@@ -32,7 +32,7 @@ import '@anthropic-ai/sandbox-runtime';
32
32
  import 'expo-server-sdk';
33
33
  import 'chalk';
34
34
  import 'node:util';
35
- import './agentGuidance-WHZsBKpm.mjs';
35
+ import './agentGuidance-xk3v4_7E.mjs';
36
36
  import 'ink';
37
37
  import 'react';
38
38
  import '@anthropic-ai/claude-agent-sdk';