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.
- package/dist/{AcpBackend-BUoDXZnv.cjs → AcpBackend-C0Lq4uoA.cjs} +2 -2
- package/dist/{AcpBackend-bqVGMkPh.mjs → AcpBackend-DsSYq8T-.mjs} +2 -2
- package/dist/{AcpSessionManager-BBAQ8EQf.mjs → AcpSessionManager-BAErE9s0.mjs} +1 -1
- package/dist/{AcpSessionManager-DmmA52Ep.cjs → AcpSessionManager-DIqByTH7.cjs} +1 -1
- package/dist/{agentGuidance-4HV-BOge.cjs → agentGuidance-Dl3apItH.cjs} +1 -1
- package/dist/{agentGuidance-WHZsBKpm.mjs → agentGuidance-xk3v4_7E.mjs} +1 -1
- package/dist/codex/happyMcpStdioBridge.cjs +2 -2
- package/dist/codex/happyMcpStdioBridge.mjs +2 -2
- package/dist/{config-BRXqgJJj.mjs → config-BVoHul9V.mjs} +4 -4
- package/dist/{config-DpuZN2Rs.cjs → config-D0-jnCOC.cjs} +4 -4
- package/dist/{index-DQe7ljLR.mjs → index-BNydKYvS.mjs} +7 -7
- package/dist/{index-D8Q3OhdR.mjs → index-BPnAbcz_.mjs} +4 -4
- package/dist/{index-CHP265gs.cjs → index-BuQn9kUK.cjs} +4 -4
- package/dist/{index-Dbl5U_N0.mjs → index-D0IP7gXG.mjs} +116 -232
- package/dist/{index-3N-qu-RG.cjs → index-DJvzGXVN.cjs} +7 -7
- package/dist/{index-CRRK5P1r.cjs → index-__h-pCTK.cjs} +147 -268
- package/dist/index.cjs +4 -4
- package/dist/index.mjs +4 -4
- package/dist/{installTerminalHooks-DfUGgeyb.mjs → installTerminalHooks-D2ice1a-.mjs} +4 -4
- package/dist/{installTerminalHooks-CWGkoWDD.cjs → installTerminalHooks-D3jfvbyY.cjs} +4 -4
- package/dist/lib.cjs +2 -2
- package/dist/lib.d.cts +21 -0
- package/dist/lib.d.mts +21 -0
- package/dist/lib.mjs +2 -2
- package/dist/{limits-CfzVummd.cjs → limits-Dbip6eVO.cjs} +26 -7
- package/dist/{limits-DEsg_gHi.mjs → limits-nhD0Wran.mjs} +26 -8
- package/dist/{mcp-CN2UVfut.cjs → mcp-DeapmTWN.cjs} +21 -21
- package/dist/{mcp-UnjB3I8_.mjs → mcp-V26C05fN.mjs} +19 -19
- package/dist/{runGemini-BUVjTJKn.cjs → runGemini-D34eCFpz.cjs} +7 -7
- package/dist/{runGemini-BZ0xXRj-.mjs → runGemini-sa5kAgPe.mjs} +6 -6
- package/dist/{runOpenClaw-Bj2EgRHB.cjs → runOpenClaw-B8F8D--R.cjs} +6 -6
- package/dist/{runOpenClaw-BcUmnBpW.mjs → runOpenClaw-Bdsq8KBa.mjs} +5 -5
- package/dist/{send-BkypdBpK.cjs → send-DP_S3wn0.cjs} +4 -4
- package/dist/{send-snK_NGAA.mjs → send-KICC_ACz.mjs} +4 -4
- package/dist/{sessions-DxlC4C4g.mjs → sessions-C6EvnC4B.mjs} +4 -4
- package/dist/{sessions-9A-uoJL_.cjs → sessions-CGBBgVZn.cjs} +4 -4
- package/dist/{spawn-BORLpj60.cjs → spawn-BhUK0Vt2.cjs} +8 -8
- package/dist/{spawn-DFfHCafP.mjs → spawn-C1OqXJNb.mjs} +6 -6
- package/dist/{teams-9x2FO9RW.cjs → teams-C29nEHFD.cjs} +4 -4
- package/dist/{teams-Cfr-2Yd-.mjs → teams-Dm5HGpNz.mjs} +4 -4
- package/dist/{todo-CU5cjQZU.mjs → todo-C-vovA0N.mjs} +3 -3
- package/dist/{todo-DydKcknX.cjs → todo-CeJX0z_2.cjs} +3 -3
- package/dist/{types-CRxf_3n8.cjs → types-DCVS050m.cjs} +571 -13
- package/dist/{types-D5EsIAOe.mjs → types-thyvQB2a.mjs} +558 -13
- 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-
|
|
5
|
-
require('./limits-
|
|
4
|
+
require('./index-__h-pCTK.cjs');
|
|
5
|
+
require('./limits-Dbip6eVO.cjs');
|
|
6
6
|
require('zod');
|
|
7
|
-
require('./types-
|
|
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-
|
|
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-
|
|
3
|
-
import './limits-
|
|
2
|
+
import './index-D0IP7gXG.mjs';
|
|
3
|
+
import './limits-nhD0Wran.mjs';
|
|
4
4
|
import 'zod';
|
|
5
|
-
import './types-
|
|
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-
|
|
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-
|
|
7
|
-
import { t as tmuxSupportsSessionEnv } from './index-
|
|
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-
|
|
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-
|
|
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-
|
|
9
|
-
var index = require('./index-
|
|
8
|
+
var api = require('./types-DCVS050m.cjs');
|
|
9
|
+
var index = require('./index-__h-pCTK.cjs');
|
|
10
10
|
require('axios');
|
|
11
|
-
require('./limits-
|
|
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-
|
|
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-
|
|
4
|
-
var persistence = require('./limits-
|
|
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-
|
|
2
|
-
export { c as configuration, l as logger } from './limits-
|
|
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.
|
|
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.
|
|
147
|
-
"very-happy-tools-x64-darwin": "0.2.
|
|
148
|
-
"very-happy-tools-arm64-linux": "0.2.
|
|
149
|
-
"very-happy-tools-x64-linux": "0.2.
|
|
150
|
-
"very-happy-tools-arm64-win32": "0.2.
|
|
151
|
-
"very-happy-tools-x64-win32": "0.2.
|
|
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.
|
|
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.
|
|
126
|
-
"very-happy-tools-x64-darwin": "0.2.
|
|
127
|
-
"very-happy-tools-arm64-linux": "0.2.
|
|
128
|
-
"very-happy-tools-x64-linux": "0.2.
|
|
129
|
-
"very-happy-tools-arm64-win32": "0.2.
|
|
130
|
-
"very-happy-tools-x64-win32": "0.2.
|
|
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 {
|
|
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-
|
|
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
|
|
8
|
-
var persistence = require('./limits-
|
|
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('
|
|
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('
|
|
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
|
|
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
|
|
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-
|
|
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 {
|
|
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-
|
|
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 '
|
|
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 '
|
|
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-
|
|
8
|
-
var persistence = require('./limits-
|
|
9
|
-
var index = require('./index-
|
|
10
|
-
var AcpBackend = require('./AcpBackend-
|
|
11
|
-
var config = require('./config-
|
|
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-
|
|
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
|
|
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 {
|
|
6
|
-
import { l as logger, g as readSettings, i as encodeBase64 } from './limits-
|
|
7
|
-
import {
|
|
8
|
-
import { A as AcpBackend } from './AcpBackend-
|
|
9
|
-
import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-
|
|
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-
|
|
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-
|
|
9
|
-
var AcpSessionManager = require('./AcpSessionManager-
|
|
10
|
-
var persistence = require('./limits-
|
|
11
|
-
var index = require('./index-
|
|
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-
|
|
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
|
|
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 {
|
|
7
|
-
import { A as AcpSessionManager } from './AcpSessionManager-
|
|
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-
|
|
9
|
-
import {
|
|
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-
|
|
35
|
+
import './agentGuidance-xk3v4_7E.mjs';
|
|
36
36
|
import 'ink';
|
|
37
37
|
import 'react';
|
|
38
38
|
import '@anthropic-ai/claude-agent-sdk';
|