@zonease/happy 0.6.40 → 0.6.42
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/{api-C7FyJfZ1.cjs → api-CIE4_cWd.cjs} +4 -4
- package/dist/{api-D6WL40-U.mjs → api-Ew6xr81i.mjs} +4 -4
- package/dist/{auth-DO9GexAR.mjs → auth-BzYevJo2.mjs} +4 -4
- package/dist/{auth-DCsIoZLT.cjs → auth-Dor79zTL.cjs} +4 -4
- package/dist/{auth-C7ZScWEw.cjs → auth-G9fZpVJ2.cjs} +2 -2
- package/dist/{auth-DxJ3VvrX.mjs → auth-Q2STUNI-.mjs} +2 -2
- package/dist/{browser-AoVGRX7y.mjs → browser-BI7s-V8E.mjs} +1 -1
- package/dist/{browser-DzgO4oaD.cjs → browser-qDIIAL7S.cjs} +1 -1
- package/dist/{claudeLocal-CWNGpJ0-.mjs → claudeLocal-Db2tDC4X.mjs} +1 -1
- package/dist/{claudeLocal-C6BdzhDx.cjs → claudeLocal-f4uBLJaM.cjs} +1 -1
- package/dist/{config-DZk-mJ0K.mjs → config-CHjDs8AS.mjs} +1 -1
- package/dist/{config-CclB3QW9.cjs → config-CSBlEik9.cjs} +1 -1
- package/dist/{connect-k9CqDJ-T.cjs → connect-CJoTliii.cjs} +5 -5
- package/dist/{connect-BXLUKJ5P.mjs → connect-O_nA5BOC.mjs} +5 -5
- package/dist/{controlClient-B23M-WPp.cjs → controlClient-CEz_p1zc.cjs} +1 -1
- package/dist/{controlClient-DB5tDU7V.mjs → controlClient-DoS9JqQC.mjs} +1 -1
- package/dist/cursorApprovalHook-B0v1kGa7.mjs +95 -0
- package/dist/cursorApprovalHook-DRAHfTXU.cjs +97 -0
- package/dist/cursorApprovalServer-DzY8yJlI.cjs +167 -0
- package/dist/cursorApprovalServer-JjPkdjGR.mjs +164 -0
- package/dist/{deviceKeys-BTdo34Uz.mjs → deviceKeys-B4aqjnE6.mjs} +2 -2
- package/dist/{deviceKeys-C540DcXl.cjs → deviceKeys-DyUn0bEx.cjs} +2 -2
- package/dist/{doctor-BQGLhrcI.cjs → doctor-BJSuVRUZ.cjs} +3 -3
- package/dist/{doctor-CU4JLGQ1.mjs → doctor-DRnft_5-.mjs} +3 -3
- package/dist/{downloadImage-DZXI3mXL.mjs → downloadImage-BpVF7A79.mjs} +7 -40
- package/dist/{downloadImage-cQ1Z7hkC.cjs → downloadImage-Cijmufpr.cjs} +5 -39
- package/dist/{enroll-Bo-CNio1.cjs → enroll-C2gunHdt.cjs} +3 -3
- package/dist/{enroll-B55BQR56.mjs → enroll-CysDL6ee.mjs} +3 -3
- package/dist/{evidence-DTYRAaOZ.mjs → evidence-DPutCuUr.mjs} +1 -1
- package/dist/{evidence-DQp8QWcv.cjs → evidence-DsQ-h-_W.cjs} +1 -1
- package/dist/{formatImageMessage-DbKSSjMx.mjs → formatImageMessage-6aV9YFWr.mjs} +1 -1
- package/dist/{formatImageMessage-CixDYY6G.cjs → formatImageMessage-BPK_Ivfe.cjs} +1 -1
- package/dist/gitWorktree-C6jLoaMw.cjs +39 -0
- package/dist/gitWorktree-CzJDU2BV.mjs +37 -0
- package/dist/{index-CDTNgfUf.cjs → index-BeKrqPYR.cjs} +25 -1
- package/dist/{index-CPKdvi7J.mjs → index-DTV7drqs.mjs} +25 -1
- package/dist/index.cjs +106 -41
- package/dist/index.mjs +106 -41
- package/dist/{install-B1e6rdy7.mjs → install-BsTA2tZn.mjs} +2 -2
- package/dist/{install-CgUPGIoF.mjs → install-DBg0xQ3g.mjs} +1 -1
- package/dist/{install-D7Ir7ciZ.cjs → install-DlOppA-e.cjs} +2 -2
- package/dist/{install-DSDufaPd.cjs → install-Tyhs6rUp.cjs} +1 -1
- package/dist/lib.cjs +4 -4
- package/dist/lib.d.cts +3 -2
- package/dist/lib.d.mts +3 -2
- package/dist/lib.mjs +4 -4
- package/dist/{loadableToolOutput-Bfei9wPq.mjs → loadableToolOutput-2dMPAp4N.mjs} +3 -456
- package/dist/{loadableToolOutput-CbLGtvST.cjs → loadableToolOutput-DPGTtKJM.cjs} +2 -458
- package/dist/{persistence-CBTtC_dm.cjs → persistence-BcQmjobZ.cjs} +7 -4
- package/dist/{persistence-DKfF81pd.mjs → persistence-D9tMm6bj.mjs} +8 -5
- package/dist/push-Cnm6JQMD.cjs +80 -0
- package/dist/push-Dxsugkes.mjs +78 -0
- package/dist/{run-BVZsMNwN.mjs → run-BEflQaQ2.mjs} +12 -9
- package/dist/{run-CURx7LhK.cjs → run-CiPWWhXt.cjs} +12 -9
- package/dist/{runClaude-CL3Kt5ex.cjs → runClaude-BVXsyCHb.cjs} +19 -18
- package/dist/{runClaude-6Gi0sYQy.mjs → runClaude-sPkSqHWY.mjs} +16 -15
- package/dist/{runCodex-YKyVBkJ3.cjs → runCodex-BAwhdmSA.cjs} +19 -17
- package/dist/{runCodex-ClwEgJ7M.mjs → runCodex-C4rHkIyw.mjs} +16 -14
- package/dist/runCursor-CD5wC3gA.cjs +578 -0
- package/dist/runCursor-DiHLWMs8.mjs +576 -0
- package/dist/{runGemini-BPWxVr60.mjs → runGemini-B-93gOqB.mjs} +18 -16
- package/dist/{runGemini-Xz2W1spn.cjs → runGemini-Cto-adir.cjs} +21 -19
- package/dist/{runOneShot-DjZyCvDI.cjs → runOneShot-BfIzE9W4.cjs} +3 -3
- package/dist/{runOneShot-CdCWiiLr.mjs → runOneShot-DGjlYVhR.mjs} +3 -3
- package/dist/{serve-B8vaWQA0.cjs → serve-CqL6NWDr.cjs} +7 -7
- package/dist/{serve-B48JttQ3.mjs → serve-ttlqF5jn.mjs} +7 -7
- package/dist/{session-BZO25zxp.cjs → session-BZhGpQUJ.cjs} +5 -5
- package/dist/{session-BXboDn2V.mjs → session-Co0REU9e.mjs} +5 -5
- package/dist/{sessionKeyCache-CDmexJ9p.cjs → sessionKeyCache-BwFUGgMs.cjs} +1 -1
- package/dist/{sessionKeyCache-B6cGadYL.mjs → sessionKeyCache-pXTjpETo.mjs} +1 -1
- package/dist/{sessionList-CgAYZpNj.mjs → sessionList-DaufR-sA.mjs} +2 -2
- package/dist/{sessionList-lQ-nqEhc.cjs → sessionList-fG5uAPzU.cjs} +2 -2
- package/dist/{sessionSummary-CcORiQSq.cjs → sessionSummary-CjZPt6nr.cjs} +3 -3
- package/dist/{sessionSummary-DCWQoaDP.mjs → sessionSummary-Dv6dPABg.mjs} +3 -3
- package/dist/setupOfflineReconnection-B6coH9QN.cjs +461 -0
- package/dist/setupOfflineReconnection-DW5il97B.mjs +457 -0
- package/dist/{spawnHappyCLI-KiazE3kL.cjs → spawnHappyCLI-Cfu7C1uM.cjs} +1 -1
- package/dist/{spawnHappyCLI-yBIP_Oqi.mjs → spawnHappyCLI-DhUeycct.mjs} +1 -1
- package/dist/{ssh-q5uZhqBf.mjs → ssh-8tPIKk-i.mjs} +9 -6
- package/dist/{ssh-yMllSHu5.cjs → ssh-C4YTSHXL.cjs} +9 -5
- package/dist/{task-wNX1N2i4.mjs → task-CH-oidFy.mjs} +6 -6
- package/dist/{task-_nr7J19j.cjs → task-DFW-PecP.cjs} +6 -6
- package/dist/{uninstall-Dxf6_4mQ.mjs → uninstall-CeioRZNI.mjs} +2 -2
- package/dist/{uninstall-Buaz7d-X.cjs → uninstall-yTSL3X6Y.cjs} +2 -2
- package/dist/{update-CGlIfa8e.cjs → update-Bju28vNP.cjs} +3 -3
- package/dist/{update-CnnoX2cV.mjs → update-Derd2hoX.mjs} +3 -3
- package/package.json +1 -1
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { stat, readFile } from 'node:fs/promises';
|
|
2
|
+
import { io } from 'socket.io-client';
|
|
3
|
+
import { c as configuration, e as encodeBase64, f as encrypt, g as decrypt, h as decodeBase64 } from './persistence-D9tMm6bj.mjs';
|
|
4
|
+
import { resolveDeviceForCommand } from './ssh-8tPIKk-i.mjs';
|
|
5
|
+
import 'node:fs';
|
|
6
|
+
import 'node:os';
|
|
7
|
+
import 'node:path';
|
|
8
|
+
import 'zod';
|
|
9
|
+
import 'node:crypto';
|
|
10
|
+
import 'tweetnacl';
|
|
11
|
+
import 'chalk';
|
|
12
|
+
import 'fs';
|
|
13
|
+
import './deviceKeys-B4aqjnE6.mjs';
|
|
14
|
+
import 'axios';
|
|
15
|
+
import './auth-Q2STUNI-.mjs';
|
|
16
|
+
import 'qrcode-terminal';
|
|
17
|
+
import './time-DgsBLJA_.mjs';
|
|
18
|
+
import './browser-BI7s-V8E.mjs';
|
|
19
|
+
import 'open';
|
|
20
|
+
import 'react';
|
|
21
|
+
import 'ink';
|
|
22
|
+
import './controlClient-DoS9JqQC.mjs';
|
|
23
|
+
import './projectPath-BTBIMB57.mjs';
|
|
24
|
+
import 'path';
|
|
25
|
+
import 'url';
|
|
26
|
+
|
|
27
|
+
const CHUNK_BYTES = 8 * 1024 * 1024;
|
|
28
|
+
async function pushToDevice(credentials, query, localPath, remotePath) {
|
|
29
|
+
const resolved = await resolveDeviceForCommand(credentials, query);
|
|
30
|
+
if (!resolved) return 1;
|
|
31
|
+
const { device, key, variant } = resolved;
|
|
32
|
+
const info = await stat(localPath).catch(() => null);
|
|
33
|
+
if (!info?.isFile()) {
|
|
34
|
+
console.error(`Not a file: ${localPath}`);
|
|
35
|
+
return 1;
|
|
36
|
+
}
|
|
37
|
+
const contents = await readFile(localPath);
|
|
38
|
+
const socket = io(configuration.serverUrl, {
|
|
39
|
+
auth: { token: credentials.token, clientType: "user-scoped" },
|
|
40
|
+
path: "/v1/updates",
|
|
41
|
+
transports: ["websocket"]
|
|
42
|
+
});
|
|
43
|
+
await new Promise((resolve, reject) => {
|
|
44
|
+
socket.once("connect", () => resolve());
|
|
45
|
+
socket.once("connect_error", reject);
|
|
46
|
+
});
|
|
47
|
+
const writeChunk = async (path, chunk) => {
|
|
48
|
+
const answer = await socket.timeout(12e4).emitWithAck("rpc-call", {
|
|
49
|
+
method: `${device.id}:writeFile`,
|
|
50
|
+
params: encodeBase64(encrypt(key, variant, { path, content: chunk.toString("base64") }))
|
|
51
|
+
});
|
|
52
|
+
if (!answer?.ok) throw new Error(answer?.error || "writeFile failed");
|
|
53
|
+
const result = decrypt(key, variant, decodeBase64(answer.result));
|
|
54
|
+
if (!result?.success) throw new Error(result?.error || "Device refused the write");
|
|
55
|
+
};
|
|
56
|
+
try {
|
|
57
|
+
if (contents.length <= CHUNK_BYTES) {
|
|
58
|
+
await writeChunk(remotePath, contents);
|
|
59
|
+
console.error(`pushed ${contents.length} bytes to ${device.name}:${remotePath}`);
|
|
60
|
+
return 0;
|
|
61
|
+
}
|
|
62
|
+
const parts = Math.ceil(contents.length / CHUNK_BYTES);
|
|
63
|
+
for (let i = 0; i < parts; i++) {
|
|
64
|
+
await writeChunk(`${remotePath}.part-${i}`, contents.subarray(i * CHUNK_BYTES, (i + 1) * CHUNK_BYTES));
|
|
65
|
+
console.error(` part ${i + 1}/${parts}`);
|
|
66
|
+
}
|
|
67
|
+
console.error(`pushed ${contents.length} bytes to ${device.name}:${remotePath}.part-0..${parts - 1}`);
|
|
68
|
+
console.error(`join with: cat '${remotePath}'.part-* > '${remotePath}' && rm -f '${remotePath}'.part-*`);
|
|
69
|
+
return 0;
|
|
70
|
+
} catch (error) {
|
|
71
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
72
|
+
return 1;
|
|
73
|
+
} finally {
|
|
74
|
+
socket.close();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export { pushToDevice };
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import fs from 'fs/promises';
|
|
2
2
|
import os from 'os';
|
|
3
3
|
import * as tmp from 'tmp';
|
|
4
|
-
import { A as ApiClient } from './api-
|
|
5
|
-
import { c as configuration, l as logger, p as packageJson, v as acquireDaemonLock, a as readSettings, i as isDebug,
|
|
6
|
-
import { authAndSetupMachineIfNeeded } from './auth-
|
|
4
|
+
import { A as ApiClient } from './api-Ew6xr81i.mjs';
|
|
5
|
+
import { c as configuration, l as logger, p as packageJson, v as acquireDaemonLock, a as readSettings, i as isDebug, e as encodeBase64, x as writeDaemonState, m as readDaemonState, y as releaseDaemonLock, z as validateProfileForAgent, A as getProfileEnvironmentVariables } from './persistence-D9tMm6bj.mjs';
|
|
6
|
+
import { authAndSetupMachineIfNeeded } from './auth-Q2STUNI-.mjs';
|
|
7
7
|
import { spawn, execSync, exec } from 'child_process';
|
|
8
|
-
import { getEnvironmentInfo } from './doctor-
|
|
9
|
-
import { s as spawnHappyCLI } from './spawnHappyCLI-
|
|
10
|
-
import { isDaemonRunningCurrentlyInstalledHappyVersion, stopDaemon, cleanupDaemonState } from './controlClient-
|
|
11
|
-
import { a as readCachedDeviceKey, d as deviceExec } from './deviceKeys-
|
|
12
|
-
import { P as PLIST_LABEL } from './install-
|
|
8
|
+
import { getEnvironmentInfo } from './doctor-DRnft_5-.mjs';
|
|
9
|
+
import { s as spawnHappyCLI } from './spawnHappyCLI-DhUeycct.mjs';
|
|
10
|
+
import { isDaemonRunningCurrentlyInstalledHappyVersion, stopDaemon, cleanupDaemonState } from './controlClient-DoS9JqQC.mjs';
|
|
11
|
+
import { a as readCachedDeviceKey, d as deviceExec } from './deviceKeys-B4aqjnE6.mjs';
|
|
12
|
+
import { P as PLIST_LABEL } from './install-DBg0xQ3g.mjs';
|
|
13
13
|
import fastify from 'fastify';
|
|
14
14
|
import { createReadStream } from 'node:fs';
|
|
15
15
|
import { stat } from 'node:fs/promises';
|
|
@@ -1759,7 +1759,7 @@ ${error.message}
|
|
|
1759
1759
|
logger.debug(`[DAEMON RUN] Attempting to spawn session in tmux: ${sessionDesc}`);
|
|
1760
1760
|
const tmux = getTmuxUtilities(tmuxSessionName);
|
|
1761
1761
|
const cliPath = join(projectPath(), "dist", "index.mjs");
|
|
1762
|
-
const agent = options.agent === "gemini" ? "gemini" : options.agent === "codex" ? "codex" : "claude";
|
|
1762
|
+
const agent = options.agent === "gemini" ? "gemini" : options.agent === "codex" ? "codex" : options.agent === "cursor" ? "cursor" : "claude";
|
|
1763
1763
|
const forkFlag = skipForkSession ? "" : " --fork-session";
|
|
1764
1764
|
const resumeArgs = resumeSessionId && isClaudeAgent ? ` --resume ${resumeSessionId}${forkFlag}` : "";
|
|
1765
1765
|
const fullCommand = `node --no-warnings --no-deprecation ${cliPath} ${agent} --happy-starting-mode remote --started-by daemon${resumeArgs}`;
|
|
@@ -1830,6 +1830,9 @@ ${error.message}
|
|
|
1830
1830
|
case "gemini":
|
|
1831
1831
|
agentCommand = "gemini";
|
|
1832
1832
|
break;
|
|
1833
|
+
case "cursor":
|
|
1834
|
+
agentCommand = "cursor";
|
|
1835
|
+
break;
|
|
1833
1836
|
default:
|
|
1834
1837
|
return {
|
|
1835
1838
|
type: "error",
|
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
var fs$1 = require('fs/promises');
|
|
4
4
|
var os = require('os');
|
|
5
5
|
var tmp = require('tmp');
|
|
6
|
-
var api = require('./api-
|
|
7
|
-
var logger = require('./persistence-
|
|
8
|
-
var auth = require('./auth-
|
|
6
|
+
var api = require('./api-CIE4_cWd.cjs');
|
|
7
|
+
var logger = require('./persistence-BcQmjobZ.cjs');
|
|
8
|
+
var auth = require('./auth-G9fZpVJ2.cjs');
|
|
9
9
|
var child_process = require('child_process');
|
|
10
|
-
var doctor = require('./doctor-
|
|
11
|
-
var spawnHappyCLI = require('./spawnHappyCLI-
|
|
12
|
-
var controlClient = require('./controlClient-
|
|
13
|
-
var deviceKeys = require('./deviceKeys-
|
|
14
|
-
var install = require('./install-
|
|
10
|
+
var doctor = require('./doctor-BJSuVRUZ.cjs');
|
|
11
|
+
var spawnHappyCLI = require('./spawnHappyCLI-Cfu7C1uM.cjs');
|
|
12
|
+
var controlClient = require('./controlClient-CEz_p1zc.cjs');
|
|
13
|
+
var deviceKeys = require('./deviceKeys-DyUn0bEx.cjs');
|
|
14
|
+
var install = require('./install-Tyhs6rUp.cjs');
|
|
15
15
|
var fastify = require('fastify');
|
|
16
16
|
var fs = require('node:fs');
|
|
17
17
|
var promises = require('node:fs/promises');
|
|
@@ -1780,7 +1780,7 @@ ${error.message}
|
|
|
1780
1780
|
logger.logger.debug(`[DAEMON RUN] Attempting to spawn session in tmux: ${sessionDesc}`);
|
|
1781
1781
|
const tmux = getTmuxUtilities(tmuxSessionName);
|
|
1782
1782
|
const cliPath = path$1.join(projectPath.projectPath(), "dist", "index.mjs");
|
|
1783
|
-
const agent = options.agent === "gemini" ? "gemini" : options.agent === "codex" ? "codex" : "claude";
|
|
1783
|
+
const agent = options.agent === "gemini" ? "gemini" : options.agent === "codex" ? "codex" : options.agent === "cursor" ? "cursor" : "claude";
|
|
1784
1784
|
const forkFlag = skipForkSession ? "" : " --fork-session";
|
|
1785
1785
|
const resumeArgs = resumeSessionId && isClaudeAgent ? ` --resume ${resumeSessionId}${forkFlag}` : "";
|
|
1786
1786
|
const fullCommand = `node --no-warnings --no-deprecation ${cliPath} ${agent} --happy-starting-mode remote --started-by daemon${resumeArgs}`;
|
|
@@ -1851,6 +1851,9 @@ ${error.message}
|
|
|
1851
1851
|
case "gemini":
|
|
1852
1852
|
agentCommand = "gemini";
|
|
1853
1853
|
break;
|
|
1854
|
+
case "cursor":
|
|
1855
|
+
agentCommand = "cursor";
|
|
1856
|
+
break;
|
|
1854
1857
|
default:
|
|
1855
1858
|
return {
|
|
1856
1859
|
type: "error",
|
|
@@ -4,20 +4,20 @@ var os = require('node:os');
|
|
|
4
4
|
var node_crypto = require('node:crypto');
|
|
5
5
|
var fs$1 = require('node:fs');
|
|
6
6
|
var promises = require('node:fs/promises');
|
|
7
|
-
var api = require('./api-
|
|
8
|
-
var logger = require('./persistence-
|
|
9
|
-
var claudeLocal = require('./claudeLocal-
|
|
7
|
+
var api = require('./api-CIE4_cWd.cjs');
|
|
8
|
+
var logger = require('./persistence-BcQmjobZ.cjs');
|
|
9
|
+
var claudeLocal = require('./claudeLocal-f4uBLJaM.cjs');
|
|
10
10
|
var types = require('./types-DWeB7aqh.cjs');
|
|
11
11
|
var path = require('node:path');
|
|
12
12
|
var time = require('./time-Bj2HRkKH.cjs');
|
|
13
13
|
var fs = require('fs/promises');
|
|
14
14
|
var ink = require('ink');
|
|
15
|
-
var downloadImage = require('./downloadImage-
|
|
15
|
+
var downloadImage = require('./downloadImage-Cijmufpr.cjs');
|
|
16
16
|
var React = require('react');
|
|
17
17
|
var node_child_process = require('node:child_process');
|
|
18
18
|
var node_readline = require('node:readline');
|
|
19
19
|
var node_url = require('node:url');
|
|
20
|
-
var spawnHappyCLI = require('./spawnHappyCLI-
|
|
20
|
+
var spawnHappyCLI = require('./spawnHappyCLI-Cfu7C1uM.cjs');
|
|
21
21
|
var projectPath = require('./projectPath-ChLhdOyt.cjs');
|
|
22
22
|
require('axios');
|
|
23
23
|
require('node:events');
|
|
@@ -28,20 +28,21 @@ require('crypto');
|
|
|
28
28
|
require('@stablelib/base64');
|
|
29
29
|
require('expo-server-sdk');
|
|
30
30
|
require('chalk');
|
|
31
|
-
var formatImageMessage = require('./formatImageMessage-
|
|
31
|
+
var formatImageMessage = require('./formatImageMessage-BPK_Ivfe.cjs');
|
|
32
32
|
var node_util = require('node:util');
|
|
33
|
-
var run = require('./run-
|
|
34
|
-
var doctor = require('./doctor-
|
|
35
|
-
var controlClient = require('./controlClient-
|
|
33
|
+
var run = require('./run-CiPWWhXt.cjs');
|
|
34
|
+
var doctor = require('./doctor-BJSuVRUZ.cjs');
|
|
35
|
+
var controlClient = require('./controlClient-CEz_p1zc.cjs');
|
|
36
36
|
var node_http = require('node:http');
|
|
37
|
+
var gitWorktree = require('./gitWorktree-C6jLoaMw.cjs');
|
|
37
38
|
require('zod');
|
|
38
|
-
require('./index-
|
|
39
|
+
require('./index-BeKrqPYR.cjs');
|
|
39
40
|
require('@paralleldrive/cuid2');
|
|
40
41
|
require('child_process');
|
|
41
42
|
require('util');
|
|
42
43
|
require('path');
|
|
43
44
|
require('node:module');
|
|
44
|
-
require('./sessionKeyCache-
|
|
45
|
+
require('./sessionKeyCache-BwFUGgMs.cjs');
|
|
45
46
|
require('fs');
|
|
46
47
|
require('./prompt-BTWDZZO0.cjs');
|
|
47
48
|
require('./trimIdent-4gvk9Wk6.cjs');
|
|
@@ -49,16 +50,16 @@ require('./common-CZvSRU4p.cjs');
|
|
|
49
50
|
require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
50
51
|
require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
51
52
|
require('@modelcontextprotocol/sdk/types.js');
|
|
52
|
-
require('./deviceKeys-
|
|
53
|
-
require('./auth-
|
|
53
|
+
require('./deviceKeys-DyUn0bEx.cjs');
|
|
54
|
+
require('./auth-G9fZpVJ2.cjs');
|
|
54
55
|
require('qrcode-terminal');
|
|
55
|
-
require('./browser-
|
|
56
|
+
require('./browser-qDIIAL7S.cjs');
|
|
56
57
|
require('open');
|
|
57
58
|
require('./mcpToolSchemas-DK42yoZ_.cjs');
|
|
58
59
|
require('url');
|
|
59
60
|
require('os');
|
|
60
61
|
require('tmp');
|
|
61
|
-
require('./install-
|
|
62
|
+
require('./install-Tyhs6rUp.cjs');
|
|
62
63
|
require('fastify');
|
|
63
64
|
require('fastify-type-provider-zod');
|
|
64
65
|
require('./doctor-C08m5Z9f.cjs');
|
|
@@ -731,7 +732,7 @@ class AbortError extends Error {
|
|
|
731
732
|
}
|
|
732
733
|
}
|
|
733
734
|
|
|
734
|
-
const __filename$1 = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('runClaude-
|
|
735
|
+
const __filename$1 = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('runClaude-BVXsyCHb.cjs', document.baseURI).href)));
|
|
735
736
|
const __dirname$1 = path.join(__filename$1, "..");
|
|
736
737
|
function getGlobalClaudeVersion() {
|
|
737
738
|
try {
|
|
@@ -3287,7 +3288,7 @@ function detectWorktreeMetadata(cwd) {
|
|
|
3287
3288
|
worktreeBranchName: process.env.HAPPY_WORKTREE_BRANCH_NAME
|
|
3288
3289
|
};
|
|
3289
3290
|
}
|
|
3290
|
-
const info =
|
|
3291
|
+
const info = gitWorktree.detectGitWorktree(cwd);
|
|
3291
3292
|
if (info.isWorktree) {
|
|
3292
3293
|
return {
|
|
3293
3294
|
isWorktree: true,
|
|
@@ -3301,7 +3302,7 @@ function detectWorktreeMetadata(cwd) {
|
|
|
3301
3302
|
for (const entry of entries) {
|
|
3302
3303
|
if (!entry.isDirectory() || entry.name.startsWith(".")) continue;
|
|
3303
3304
|
const subDir = path.join(cwd, entry.name);
|
|
3304
|
-
const sub =
|
|
3305
|
+
const sub = gitWorktree.detectGitWorktree(subDir);
|
|
3305
3306
|
if (sub.isWorktree && sub.worktreeBasePath && sub.worktreeBranchName) {
|
|
3306
3307
|
repos.push({
|
|
3307
3308
|
path: subDir,
|
|
@@ -2,20 +2,20 @@ import os, { homedir } from 'node:os';
|
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
3
|
import { existsSync, mkdirSync, writeFileSync, unlinkSync, readdirSync } from 'node:fs';
|
|
4
4
|
import { readFile, mkdir, writeFile, stat, copyFile } from 'node:fs/promises';
|
|
5
|
-
import { I as InvalidateSync, k as AsyncLock, d as connectionState, A as ApiClient, r as resolveToolsDir,
|
|
6
|
-
import { l as logger, i as isDebug, c as configuration, a as readSettings, p as packageJson } from './persistence-
|
|
7
|
-
import { g as getProjectPath, a as claudeLocal, E as ExitCodeError, b as claudeCheckSession, s as systemPrompt } from './claudeLocal-
|
|
5
|
+
import { I as InvalidateSync, k as AsyncLock, d as connectionState, A as ApiClient, r as resolveToolsDir, b as startOfflineReconnection, l as findClaudeProjectId } from './api-Ew6xr81i.mjs';
|
|
6
|
+
import { l as logger, i as isDebug, c as configuration, a as readSettings, p as packageJson } from './persistence-D9tMm6bj.mjs';
|
|
7
|
+
import { g as getProjectPath, a as claudeLocal, E as ExitCodeError, b as claudeCheckSession, s as systemPrompt } from './claudeLocal-Db2tDC4X.mjs';
|
|
8
8
|
import { R as RawJSONLinesSchema } from './types-BoJh4Qfv.mjs';
|
|
9
9
|
import { join, resolve } from 'node:path';
|
|
10
10
|
import { d as delay } from './time-DgsBLJA_.mjs';
|
|
11
11
|
import { watch, access } from 'fs/promises';
|
|
12
12
|
import { useStdout, useInput, Box, Text, render } from 'ink';
|
|
13
|
-
import {
|
|
13
|
+
import { b as parseSpecialCommand, a as MessageBuffer, c as createMcpContext, M as MessageQueue2, h as hashObject, r as registerKillSessionHandler } from './downloadImage-BpVF7A79.mjs';
|
|
14
14
|
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
15
15
|
import { execSync, spawn } from 'node:child_process';
|
|
16
16
|
import { createInterface } from 'node:readline';
|
|
17
17
|
import { fileURLToPath } from 'node:url';
|
|
18
|
-
import { i as isBun } from './spawnHappyCLI-
|
|
18
|
+
import { i as isBun } from './spawnHappyCLI-DhUeycct.mjs';
|
|
19
19
|
import { p as projectPath } from './projectPath-BTBIMB57.mjs';
|
|
20
20
|
import 'axios';
|
|
21
21
|
import 'node:events';
|
|
@@ -26,20 +26,21 @@ import 'crypto';
|
|
|
26
26
|
import '@stablelib/base64';
|
|
27
27
|
import 'expo-server-sdk';
|
|
28
28
|
import 'chalk';
|
|
29
|
-
import { a as formatMessageForClaude } from './formatImageMessage-
|
|
29
|
+
import { a as formatMessageForClaude } from './formatImageMessage-6aV9YFWr.mjs';
|
|
30
30
|
import { isDeepStrictEqual } from 'node:util';
|
|
31
|
-
import { i as initialMachineMetadata, s as stopCaffeinate, a as startCaffeinate } from './run-
|
|
32
|
-
import { getEnvironmentInfo } from './doctor-
|
|
33
|
-
import { notifyDaemonSessionStarted } from './controlClient-
|
|
31
|
+
import { i as initialMachineMetadata, s as stopCaffeinate, a as startCaffeinate } from './run-BEflQaQ2.mjs';
|
|
32
|
+
import { getEnvironmentInfo } from './doctor-DRnft_5-.mjs';
|
|
33
|
+
import { notifyDaemonSessionStarted } from './controlClient-DoS9JqQC.mjs';
|
|
34
34
|
import { createServer } from 'node:http';
|
|
35
|
+
import { d as detectGitWorktree } from './gitWorktree-CzJDU2BV.mjs';
|
|
35
36
|
import 'zod';
|
|
36
|
-
import './index-
|
|
37
|
+
import './index-DTV7drqs.mjs';
|
|
37
38
|
import '@paralleldrive/cuid2';
|
|
38
39
|
import 'child_process';
|
|
39
40
|
import 'util';
|
|
40
41
|
import 'path';
|
|
41
42
|
import 'node:module';
|
|
42
|
-
import './sessionKeyCache-
|
|
43
|
+
import './sessionKeyCache-pXTjpETo.mjs';
|
|
43
44
|
import 'fs';
|
|
44
45
|
import './prompt-BsAZsPbo.mjs';
|
|
45
46
|
import './trimIdent-BAjmv_TG.mjs';
|
|
@@ -47,16 +48,16 @@ import './common-BdNgghUJ.mjs';
|
|
|
47
48
|
import '@modelcontextprotocol/sdk/server/mcp.js';
|
|
48
49
|
import '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
49
50
|
import '@modelcontextprotocol/sdk/types.js';
|
|
50
|
-
import './deviceKeys-
|
|
51
|
-
import './auth-
|
|
51
|
+
import './deviceKeys-B4aqjnE6.mjs';
|
|
52
|
+
import './auth-Q2STUNI-.mjs';
|
|
52
53
|
import 'qrcode-terminal';
|
|
53
|
-
import './browser-
|
|
54
|
+
import './browser-BI7s-V8E.mjs';
|
|
54
55
|
import 'open';
|
|
55
56
|
import './mcpToolSchemas-CjeTfrAs.mjs';
|
|
56
57
|
import 'url';
|
|
57
58
|
import 'os';
|
|
58
59
|
import 'tmp';
|
|
59
|
-
import './install-
|
|
60
|
+
import './install-DBg0xQ3g.mjs';
|
|
60
61
|
import 'fastify';
|
|
61
62
|
import 'fastify-type-provider-zod';
|
|
62
63
|
import './doctor-ON7pN5G5.mjs';
|
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
var ink = require('ink');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var api = require('./api-
|
|
5
|
+
var api = require('./api-CIE4_cWd.cjs');
|
|
6
6
|
var node_child_process = require('node:child_process');
|
|
7
7
|
var node_readline = require('node:readline');
|
|
8
|
-
var logger = require('./persistence-
|
|
9
|
-
var
|
|
8
|
+
var logger = require('./persistence-BcQmjobZ.cjs');
|
|
9
|
+
var setupOfflineReconnection = require('./setupOfflineReconnection-B6coH9QN.cjs');
|
|
10
|
+
var loadableToolOutput = require('./loadableToolOutput-DPGTtKJM.cjs');
|
|
10
11
|
var node_crypto = require('node:crypto');
|
|
11
|
-
var downloadImage = require('./downloadImage-
|
|
12
|
-
var run = require('./run-
|
|
12
|
+
var downloadImage = require('./downloadImage-Cijmufpr.cjs');
|
|
13
|
+
var run = require('./run-CiPWWhXt.cjs');
|
|
13
14
|
var constants = require('./constants-E_UWYTo3.cjs');
|
|
14
|
-
var controlClient = require('./controlClient-
|
|
15
|
+
var controlClient = require('./controlClient-CEz_p1zc.cjs');
|
|
15
16
|
var node_util = require('node:util');
|
|
16
17
|
var promises = require('node:fs/promises');
|
|
17
18
|
var path = require('node:path');
|
|
@@ -19,7 +20,7 @@ require('axios');
|
|
|
19
20
|
require('node:events');
|
|
20
21
|
require('socket.io-client');
|
|
21
22
|
require('zod');
|
|
22
|
-
require('./index-
|
|
23
|
+
require('./index-BeKrqPYR.cjs');
|
|
23
24
|
require('@paralleldrive/cuid2');
|
|
24
25
|
require('./time-Bj2HRkKH.cjs');
|
|
25
26
|
require('node:fs');
|
|
@@ -36,17 +37,18 @@ require('crypto');
|
|
|
36
37
|
require('tweetnacl');
|
|
37
38
|
require('@stablelib/base64');
|
|
38
39
|
require('expo-server-sdk');
|
|
39
|
-
require('./sessionKeyCache-
|
|
40
|
+
require('./sessionKeyCache-BwFUGgMs.cjs');
|
|
40
41
|
require('chalk');
|
|
41
42
|
require('fs');
|
|
43
|
+
require('./gitWorktree-C6jLoaMw.cjs');
|
|
42
44
|
require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
43
45
|
require('node:http');
|
|
44
46
|
require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
45
47
|
require('@modelcontextprotocol/sdk/types.js');
|
|
46
|
-
require('./deviceKeys-
|
|
47
|
-
require('./auth-
|
|
48
|
+
require('./deviceKeys-DyUn0bEx.cjs');
|
|
49
|
+
require('./auth-G9fZpVJ2.cjs');
|
|
48
50
|
require('qrcode-terminal');
|
|
49
|
-
require('./browser-
|
|
51
|
+
require('./browser-qDIIAL7S.cjs');
|
|
50
52
|
require('open');
|
|
51
53
|
require('./prompt-BTWDZZO0.cjs');
|
|
52
54
|
require('./trimIdent-4gvk9Wk6.cjs');
|
|
@@ -55,12 +57,12 @@ require('./mcpToolSchemas-DK42yoZ_.cjs');
|
|
|
55
57
|
require('./types-DWeB7aqh.cjs');
|
|
56
58
|
require('os');
|
|
57
59
|
require('tmp');
|
|
58
|
-
require('./doctor-
|
|
60
|
+
require('./doctor-BJSuVRUZ.cjs');
|
|
59
61
|
require('./doctor-C08m5Z9f.cjs');
|
|
60
62
|
require('ps-list');
|
|
61
63
|
require('cross-spawn');
|
|
62
|
-
require('./spawnHappyCLI-
|
|
63
|
-
require('./install-
|
|
64
|
+
require('./spawnHappyCLI-Cfu7C1uM.cjs');
|
|
65
|
+
require('./install-Tyhs6rUp.cjs');
|
|
64
66
|
require('fastify');
|
|
65
67
|
require('fastify-type-provider-zod');
|
|
66
68
|
|
|
@@ -1323,7 +1325,7 @@ function createCodexBackend(options) {
|
|
|
1323
1325
|
};
|
|
1324
1326
|
}
|
|
1325
1327
|
|
|
1326
|
-
class CodexPermissionHandler extends
|
|
1328
|
+
class CodexPermissionHandler extends setupOfflineReconnection.BasePermissionHandler {
|
|
1327
1329
|
currentPermissionMode = "default";
|
|
1328
1330
|
constructor(session, pushClient) {
|
|
1329
1331
|
super(session, pushClient);
|
|
@@ -1895,7 +1897,7 @@ async function runCodex(opts) {
|
|
|
1895
1897
|
machineId,
|
|
1896
1898
|
metadata: run.initialMachineMetadata
|
|
1897
1899
|
});
|
|
1898
|
-
const { state, metadata } =
|
|
1900
|
+
const { state, metadata } = setupOfflineReconnection.createSessionMetadata({
|
|
1899
1901
|
flavor: "codex",
|
|
1900
1902
|
machineId,
|
|
1901
1903
|
startedBy: opts.startedBy
|
|
@@ -1903,7 +1905,7 @@ async function runCodex(opts) {
|
|
|
1903
1905
|
const response = await api$1.getOrCreateSession({ tag: sessionTag, metadata, state });
|
|
1904
1906
|
let session;
|
|
1905
1907
|
let permissionHandler;
|
|
1906
|
-
const { session: initialSession, reconnectionHandle } =
|
|
1908
|
+
const { session: initialSession, reconnectionHandle } = setupOfflineReconnection.setupOfflineReconnection({
|
|
1907
1909
|
api: api$1,
|
|
1908
1910
|
sessionTag,
|
|
1909
1911
|
metadata,
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { useStdout, useInput, Box, Text, render } from 'ink';
|
|
2
2
|
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
3
|
-
import { c as saveDiffRecords, e as extractUserText, i as isSystemMessage, g as generateStableUuid, f as findCodexSessionFile, d as connectionState, A as ApiClient } from './api-
|
|
3
|
+
import { c as saveDiffRecords, e as extractUserText, i as isSystemMessage, g as generateStableUuid, f as findCodexSessionFile, d as connectionState, A as ApiClient } from './api-Ew6xr81i.mjs';
|
|
4
4
|
import { spawn, execSync } from 'node:child_process';
|
|
5
5
|
import { createInterface } from 'node:readline';
|
|
6
|
-
import { l as logger, i as isDebug, a as readSettings } from './persistence-
|
|
7
|
-
import { B as BasePermissionHandler,
|
|
6
|
+
import { l as logger, i as isDebug, a as readSettings } from './persistence-D9tMm6bj.mjs';
|
|
7
|
+
import { B as BasePermissionHandler, c as createSessionMetadata, s as setupOfflineReconnection } from './setupOfflineReconnection-DW5il97B.mjs';
|
|
8
|
+
import { B as BaseReasoningProcessor, h as handleConfigMetadataEvent, s as summarizeBashToolOutput } from './loadableToolOutput-2dMPAp4N.mjs';
|
|
8
9
|
import { randomUUID } from 'node:crypto';
|
|
9
|
-
import { M as MessageQueue2, h as hashObject, c as createMcpContext, r as registerKillSessionHandler,
|
|
10
|
-
import { i as initialMachineMetadata, s as stopCaffeinate } from './run-
|
|
10
|
+
import { M as MessageQueue2, h as hashObject, c as createMcpContext, r as registerKillSessionHandler, a as MessageBuffer, p as parseClear, d as downloadImage } from './downloadImage-BpVF7A79.mjs';
|
|
11
|
+
import { i as initialMachineMetadata, s as stopCaffeinate } from './run-BEflQaQ2.mjs';
|
|
11
12
|
import { g as getFirstTurnInstruction } from './constants-pmXZGibX.mjs';
|
|
12
|
-
import { notifyDaemonSessionStarted } from './controlClient-
|
|
13
|
+
import { notifyDaemonSessionStarted } from './controlClient-DoS9JqQC.mjs';
|
|
13
14
|
import { inspect } from 'node:util';
|
|
14
15
|
import { readFile } from 'node:fs/promises';
|
|
15
16
|
import { basename, isAbsolute } from 'node:path';
|
|
@@ -17,7 +18,7 @@ import 'axios';
|
|
|
17
18
|
import 'node:events';
|
|
18
19
|
import 'socket.io-client';
|
|
19
20
|
import 'zod';
|
|
20
|
-
import './index-
|
|
21
|
+
import './index-DTV7drqs.mjs';
|
|
21
22
|
import '@paralleldrive/cuid2';
|
|
22
23
|
import './time-DgsBLJA_.mjs';
|
|
23
24
|
import 'node:fs';
|
|
@@ -34,17 +35,18 @@ import 'crypto';
|
|
|
34
35
|
import 'tweetnacl';
|
|
35
36
|
import '@stablelib/base64';
|
|
36
37
|
import 'expo-server-sdk';
|
|
37
|
-
import './sessionKeyCache-
|
|
38
|
+
import './sessionKeyCache-pXTjpETo.mjs';
|
|
38
39
|
import 'chalk';
|
|
39
40
|
import 'fs';
|
|
41
|
+
import './gitWorktree-CzJDU2BV.mjs';
|
|
40
42
|
import '@modelcontextprotocol/sdk/server/mcp.js';
|
|
41
43
|
import 'node:http';
|
|
42
44
|
import '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
43
45
|
import '@modelcontextprotocol/sdk/types.js';
|
|
44
|
-
import './deviceKeys-
|
|
45
|
-
import './auth-
|
|
46
|
+
import './deviceKeys-B4aqjnE6.mjs';
|
|
47
|
+
import './auth-Q2STUNI-.mjs';
|
|
46
48
|
import 'qrcode-terminal';
|
|
47
|
-
import './browser-
|
|
49
|
+
import './browser-BI7s-V8E.mjs';
|
|
48
50
|
import 'open';
|
|
49
51
|
import './prompt-BsAZsPbo.mjs';
|
|
50
52
|
import './trimIdent-BAjmv_TG.mjs';
|
|
@@ -53,12 +55,12 @@ import './mcpToolSchemas-CjeTfrAs.mjs';
|
|
|
53
55
|
import './types-BoJh4Qfv.mjs';
|
|
54
56
|
import 'os';
|
|
55
57
|
import 'tmp';
|
|
56
|
-
import './doctor-
|
|
58
|
+
import './doctor-DRnft_5-.mjs';
|
|
57
59
|
import './doctor-ON7pN5G5.mjs';
|
|
58
60
|
import 'ps-list';
|
|
59
61
|
import 'cross-spawn';
|
|
60
|
-
import './spawnHappyCLI-
|
|
61
|
-
import './install-
|
|
62
|
+
import './spawnHappyCLI-DhUeycct.mjs';
|
|
63
|
+
import './install-DBg0xQ3g.mjs';
|
|
62
64
|
import 'fastify';
|
|
63
65
|
import 'fastify-type-provider-zod';
|
|
64
66
|
|