@zonease/happy 0.6.55 → 0.6.57
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-BH3mam5i.mjs → api-CKGCwsUf.mjs} +115 -68
- package/dist/{api-DvnXQWOp.cjs → api-jNSgtz8Y.cjs} +112 -61
- package/dist/{auth-bwfaLx_V.cjs → auth-BUQLBefw.cjs} +2 -2
- package/dist/{auth-CpHjpbeh.mjs → auth-CFcrX0sP.mjs} +2 -2
- package/dist/{auth-ByKWFjMR.cjs → auth-CsU0d6gM.cjs} +4 -4
- package/dist/{auth-Pnzzbn_J.mjs → auth-ZUnqSqKY.mjs} +4 -4
- package/dist/{browser-DFeQQh1Z.cjs → browser-BA-Yc9JO.cjs} +1 -1
- package/dist/{browser-cQ-qyFyK.mjs → browser-eziH4OAA.mjs} +1 -1
- package/dist/{claudeLocal-janZsvba.mjs → claudeLocal-CBalcsEQ.mjs} +1 -1
- package/dist/{claudeLocal-BbxgreMw.cjs → claudeLocal-FQ_thOHX.cjs} +1 -1
- package/dist/{config-t5BrZndM.cjs → config-CECX_zGu.cjs} +1 -1
- package/dist/{config-DtmZpgs-.mjs → config-DaQJWbRZ.mjs} +1 -1
- package/dist/{connect-UD5a4ksC.cjs → connect-Bs0ChOpi.cjs} +5 -5
- package/dist/{connect-BLdoTnbu.mjs → connect-DDKq78R-.mjs} +5 -5
- package/dist/{controlClient-DnZ5KouD.cjs → controlClient-B70-61t0.cjs} +1 -1
- package/dist/{controlClient-G7DPgAo_.mjs → controlClient-jullf1ow.mjs} +1 -1
- package/dist/{cursorApprovalHook-PYPX20zh.cjs → cursorApprovalHook-Czq1DjVU.cjs} +2 -2
- package/dist/{cursorApprovalHook-CTMySu-X.mjs → cursorApprovalHook-O8j9S8An.mjs} +2 -2
- package/dist/{cursorApprovalServer-GS3zs6kT.cjs → cursorApprovalServer-Cqsy8ohH.cjs} +1 -1
- package/dist/{cursorApprovalServer-D4A8D345.mjs → cursorApprovalServer-nbHwu4ru.mjs} +1 -1
- package/dist/{deviceKeys-U6p6bcVn.cjs → deviceKeys-YeZD2zQo.cjs} +2 -2
- package/dist/{deviceKeys-Cm1y7_pz.mjs → deviceKeys-su95gdc-.mjs} +2 -2
- package/dist/{doctor-B95V4_1U.mjs → doctor-Brqp2e3O.mjs} +2 -2
- package/dist/{doctor-CkqjpUrt.cjs → doctor-DbfxSKDV.cjs} +2 -2
- package/dist/{downloadImage-Bii91OZ_.cjs → downloadImage-CyrKKnfC.cjs} +1 -1
- package/dist/{downloadImage-B3U4jFKu.mjs → downloadImage-K-xFB9jG.mjs} +1 -1
- package/dist/{enroll-Cm8yPrRX.cjs → enroll-CMH2pLy0.cjs} +3 -3
- package/dist/{enroll-CLUgsuwD.mjs → enroll-Ck7f6V22.mjs} +3 -3
- package/dist/{evidence-CVl2OOtE.mjs → evidence-CMz-atyb.mjs} +1 -1
- package/dist/{evidence-BaGuA4HW.cjs → evidence-yOULEvRk.cjs} +1 -1
- package/dist/{formatImageMessage-Bv1f9KNc.cjs → formatImageMessage-DSsQTvO3.cjs} +1 -1
- package/dist/{formatImageMessage-Bel4ENzm.mjs → formatImageMessage-tdlJeRPD.mjs} +1 -1
- package/dist/index.cjs +46 -46
- package/dist/index.mjs +46 -46
- package/dist/{install-ClBwOf9d.mjs → install-BL0173KN.mjs} +1 -1
- package/dist/{install-D7tsFl0K.cjs → install-BNR9inWv.cjs} +2 -2
- package/dist/{install-cTiFm69E.mjs → install-CpTmSd4l.mjs} +2 -2
- package/dist/{install-B9pgfnme.cjs → install-DKZjMcR2.cjs} +1 -1
- package/dist/lib.cjs +6 -6
- package/dist/lib.d.cts +10 -0
- package/dist/lib.d.mts +10 -0
- package/dist/lib.mjs +6 -6
- package/dist/{loadableToolOutput-Dht_jeLW.mjs → loadableToolOutput-BRRL6yS-.mjs} +2 -2
- package/dist/{loadableToolOutput-BhhbJ2eK.cjs → loadableToolOutput-BxFrugLw.cjs} +2 -2
- package/dist/{persistence-P3x0-3CX.mjs → persistence-BirvtFep.mjs} +2 -2
- package/dist/{persistence-uOLA4_LW.cjs → persistence-DoY9jKDN.cjs} +1 -1
- package/dist/{push-xSbf2VWB.mjs → push-B325YQUT.mjs} +6 -6
- package/dist/{push-avfOm7WX.cjs → push-teAS18QK.cjs} +6 -6
- package/dist/{registerKillSessionHandler-CPr_DB4J.cjs → registerKillSessionHandler-CEvWEzOm.cjs} +3 -3
- package/dist/{registerKillSessionHandler-CH06n_hZ.mjs → registerKillSessionHandler-CTSkaRVu.mjs} +3 -3
- package/dist/{run-DCo-Pmdx.cjs → run-D38D-G8z.cjs} +167 -8
- package/dist/{run-B8aBVINE.mjs → run-DNfj0j_h.mjs} +167 -8
- package/dist/{runClaude-BJVGCnIq.mjs → runClaude-C54Y-vby.mjs} +19 -18
- package/dist/{runClaude-CCb9FHWd.cjs → runClaude-ChIbxtFs.cjs} +20 -19
- package/dist/{runCodex-LNIgWEiI.mjs → runCodex-Bt6DgaY6.mjs} +18 -17
- package/dist/{runCodex-BhMBu81A.cjs → runCodex-DKL7LL-d.cjs} +18 -17
- package/dist/{runCursor-C-FiInj_.cjs → runCursor-CzBFzit8.cjs} +20 -19
- package/dist/{runCursor-CSpoYRGe.mjs → runCursor-_ZZmpyjD.mjs} +20 -19
- package/dist/{runGemini-0H1Ug_k9.cjs → runGemini-B2IY0bg7.cjs} +22 -21
- package/dist/{runGemini-DIPkJiUE.mjs → runGemini-COkJ59pz.mjs} +22 -21
- package/dist/{runOneShot-WB4vGRvF.mjs → runOneShot-Bt5mWMh4.mjs} +2 -2
- package/dist/{runOneShot-BOkwPhAq.cjs → runOneShot-DApUG4Jw.cjs} +2 -2
- package/dist/{serve-BTYQTNwH.mjs → serve-CzQSwmyU.mjs} +7 -6
- package/dist/{serve-C-lQRc8J.cjs → serve-rMs5fvxH.cjs} +7 -6
- package/dist/{session-CklyM25y.cjs → session-C9z-9F__.cjs} +6 -5
- package/dist/{session-BicrgWsg.mjs → session-CJu83tzU.mjs} +6 -5
- package/dist/sessionDecrypt-DlajL7Fn.cjs +66 -0
- package/dist/sessionDecrypt-R6Ee4mFr.mjs +64 -0
- package/dist/{sessionKeyCache-CCvSFqv3.cjs → sessionKeyCache-CRINEKrH.cjs} +1 -1
- package/dist/{sessionKeyCache-B_rg3Wj3.mjs → sessionKeyCache-Ci9NA8Nn.mjs} +1 -1
- package/dist/{sessionList-D3G9cpfU.mjs → sessionList-Bh8eF10P.mjs} +2 -2
- package/dist/{sessionList-BByWxuNb.cjs → sessionList-DXPTa2ix.cjs} +3 -3
- package/dist/{sessionSummary-B6L3dSgX.mjs → sessionSummary-CcdMMHfv.mjs} +3 -63
- package/dist/{sessionSummary-CvrWLmYX.cjs → sessionSummary-Cs-_4S3j.cjs} +3 -64
- package/dist/{setupOfflineReconnection-wVhiCoQD.cjs → setupOfflineReconnection-BmbFrBPc.cjs} +3 -3
- package/dist/{setupOfflineReconnection-Cw5gqUuo.mjs → setupOfflineReconnection-DV3FASIY.mjs} +3 -3
- package/dist/{spawnHappyCLI-Cf5Ox5XH.mjs → spawnHappyCLI-CSkTkB4n.mjs} +1 -1
- package/dist/{spawnHappyCLI-BjJuWvpg.cjs → spawnHappyCLI-CilqRN5U.cjs} +1 -1
- package/dist/{ssh-O7AfLDRX.mjs → ssh-CgYdGAzd.mjs} +5 -5
- package/dist/{ssh-KFiFQj5X.cjs → ssh-CrxTSwPb.cjs} +5 -5
- package/dist/{task-CgYFAvIQ.mjs → task-BJro3dR3.mjs} +7 -6
- package/dist/{task-DKmGE82d.cjs → task-GLv6BSQA.cjs} +7 -6
- package/dist/{uninstall-DLXRIcDr.mjs → uninstall-CKmjUaMr.mjs} +2 -2
- package/dist/{uninstall-24vmR3hW.cjs → uninstall-CyoWDMHw.cjs} +2 -2
- package/dist/{update-CIbNnkrB.cjs → update-AqCJSfVL.cjs} +3 -3
- package/dist/{update-Dv5yhg2A.mjs → update-BxE93-s7.mjs} +3 -3
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import chalk from 'chalk';
|
|
2
|
-
import { l as logger, i as isDebug, r as readCredentials, a as readSettings, p as packageJson } from './persistence-
|
|
2
|
+
import { l as logger, i as isDebug, r as readCredentials, a as readSettings, p as packageJson } from './persistence-BirvtFep.mjs';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { execFileSync } from 'node:child_process';
|
|
5
5
|
import 'node:fs/promises';
|
|
@@ -11,8 +11,8 @@ import 'tweetnacl';
|
|
|
11
11
|
import 'fs';
|
|
12
12
|
|
|
13
13
|
async function spawnAndWaitForDaemon() {
|
|
14
|
-
const { spawnHappyCLI } = await import('./spawnHappyCLI-
|
|
15
|
-
const { checkIfDaemonRunningAndCleanupStaleState } = await import('./controlClient-
|
|
14
|
+
const { spawnHappyCLI } = await import('./spawnHappyCLI-CSkTkB4n.mjs').then(function (n) { return n.a; });
|
|
15
|
+
const { checkIfDaemonRunningAndCleanupStaleState } = await import('./controlClient-jullf1ow.mjs');
|
|
16
16
|
const child = spawnHappyCLI(["daemon", "start-sync"], {
|
|
17
17
|
detached: true,
|
|
18
18
|
stdio: "ignore"
|
|
@@ -35,7 +35,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
35
35
|
if (!args.includes("--version")) ;
|
|
36
36
|
if (subcommand === "orchestrator-oneshot") {
|
|
37
37
|
try {
|
|
38
|
-
const { runOrchestratorOneShot } = await import('./runOneShot-
|
|
38
|
+
const { runOrchestratorOneShot } = await import('./runOneShot-Bt5mWMh4.mjs');
|
|
39
39
|
const exitCode = await runOrchestratorOneShot(args.slice(1));
|
|
40
40
|
process.exit(exitCode);
|
|
41
41
|
} catch (error) {
|
|
@@ -48,7 +48,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
48
48
|
return;
|
|
49
49
|
} else if (subcommand === "doctor") {
|
|
50
50
|
const { killRunawayHappyProcesses } = await import('./doctor-ON7pN5G5.mjs');
|
|
51
|
-
const { runDoctorCommand } = await import('./doctor-
|
|
51
|
+
const { runDoctorCommand } = await import('./doctor-Brqp2e3O.mjs');
|
|
52
52
|
if (args[1] === "clean") {
|
|
53
53
|
const result = await killRunawayHappyProcesses();
|
|
54
54
|
console.log(`Cleaned up ${result.killed} runaway processes`);
|
|
@@ -61,7 +61,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
61
61
|
return;
|
|
62
62
|
} else if (subcommand === "auth") {
|
|
63
63
|
try {
|
|
64
|
-
const { handleAuthCommand } = await import('./auth-
|
|
64
|
+
const { handleAuthCommand } = await import('./auth-ZUnqSqKY.mjs');
|
|
65
65
|
await handleAuthCommand(args.slice(1));
|
|
66
66
|
} catch (error) {
|
|
67
67
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -73,7 +73,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
73
73
|
return;
|
|
74
74
|
} else if (subcommand === "connect") {
|
|
75
75
|
try {
|
|
76
|
-
const { handleConnectCommand } = await import('./connect-
|
|
76
|
+
const { handleConnectCommand } = await import('./connect-DDKq78R-.mjs');
|
|
77
77
|
await handleConnectCommand(args.slice(1));
|
|
78
78
|
} catch (error) {
|
|
79
79
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -84,11 +84,11 @@ async function spawnAndWaitForDaemon() {
|
|
|
84
84
|
}
|
|
85
85
|
return;
|
|
86
86
|
} else if (subcommand === "codex") {
|
|
87
|
-
const { authAndSetupMachineIfNeeded } = await import('./auth-
|
|
88
|
-
const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-
|
|
89
|
-
const { spawnHappyCLI } = await import('./spawnHappyCLI-
|
|
87
|
+
const { authAndSetupMachineIfNeeded } = await import('./auth-CFcrX0sP.mjs');
|
|
88
|
+
const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-jullf1ow.mjs');
|
|
89
|
+
const { spawnHappyCLI } = await import('./spawnHappyCLI-CSkTkB4n.mjs').then(function (n) { return n.a; });
|
|
90
90
|
try {
|
|
91
|
-
const { runCodex } = await import('./runCodex-
|
|
91
|
+
const { runCodex } = await import('./runCodex-Bt6DgaY6.mjs');
|
|
92
92
|
let startedBy = void 0;
|
|
93
93
|
for (let i = 1; i < args.length; i++) {
|
|
94
94
|
if (args[i] === "--started-by") {
|
|
@@ -119,15 +119,15 @@ async function spawnAndWaitForDaemon() {
|
|
|
119
119
|
}
|
|
120
120
|
return;
|
|
121
121
|
} else if (subcommand === "cursor-approval-hook") {
|
|
122
|
-
const { runCursorApprovalHook } = await import('./cursorApprovalHook-
|
|
122
|
+
const { runCursorApprovalHook } = await import('./cursorApprovalHook-O8j9S8An.mjs');
|
|
123
123
|
await runCursorApprovalHook();
|
|
124
124
|
return;
|
|
125
125
|
} else if (subcommand === "cursor") {
|
|
126
|
-
const { authAndSetupMachineIfNeeded } = await import('./auth-
|
|
127
|
-
const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-
|
|
128
|
-
const { spawnHappyCLI } = await import('./spawnHappyCLI-
|
|
126
|
+
const { authAndSetupMachineIfNeeded } = await import('./auth-CFcrX0sP.mjs');
|
|
127
|
+
const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-jullf1ow.mjs');
|
|
128
|
+
const { spawnHappyCLI } = await import('./spawnHappyCLI-CSkTkB4n.mjs').then(function (n) { return n.a; });
|
|
129
129
|
try {
|
|
130
|
-
const { runCursor } = await import('./runCursor-
|
|
130
|
+
const { runCursor } = await import('./runCursor-_ZZmpyjD.mjs');
|
|
131
131
|
let startedBy = void 0;
|
|
132
132
|
let model = null;
|
|
133
133
|
let resumeChatId = null;
|
|
@@ -173,9 +173,9 @@ async function spawnAndWaitForDaemon() {
|
|
|
173
173
|
}
|
|
174
174
|
return;
|
|
175
175
|
} else if (subcommand === "gemini") {
|
|
176
|
-
const { authAndSetupMachineIfNeeded } = await import('./auth-
|
|
177
|
-
const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-
|
|
178
|
-
const { spawnHappyCLI } = await import('./spawnHappyCLI-
|
|
176
|
+
const { authAndSetupMachineIfNeeded } = await import('./auth-CFcrX0sP.mjs');
|
|
177
|
+
const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-jullf1ow.mjs');
|
|
178
|
+
const { spawnHappyCLI } = await import('./spawnHappyCLI-CSkTkB4n.mjs').then(function (n) { return n.a; });
|
|
179
179
|
const geminiSubcommand = args[1];
|
|
180
180
|
if (geminiSubcommand === "model" && args[2] === "set" && args[3]) {
|
|
181
181
|
const modelName = args[3];
|
|
@@ -249,9 +249,9 @@ async function spawnAndWaitForDaemon() {
|
|
|
249
249
|
if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
|
|
250
250
|
const projectId = args[3];
|
|
251
251
|
try {
|
|
252
|
-
const { saveGoogleCloudProjectToConfig } = await import('./config-
|
|
253
|
-
const { readCredentials: readCredentials2 } = await import('./persistence-
|
|
254
|
-
const { ApiClient } = await import('./api-
|
|
252
|
+
const { saveGoogleCloudProjectToConfig } = await import('./config-DaQJWbRZ.mjs');
|
|
253
|
+
const { readCredentials: readCredentials2 } = await import('./persistence-BirvtFep.mjs').then(function (n) { return n.F; });
|
|
254
|
+
const { ApiClient } = await import('./api-CKGCwsUf.mjs').then(function (n) { return n.q; });
|
|
255
255
|
let userEmail = void 0;
|
|
256
256
|
try {
|
|
257
257
|
const credentials = await readCredentials2();
|
|
@@ -282,7 +282,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
282
282
|
}
|
|
283
283
|
if (geminiSubcommand === "project" && args[2] === "get") {
|
|
284
284
|
try {
|
|
285
|
-
const { readGeminiLocalConfig } = await import('./config-
|
|
285
|
+
const { readGeminiLocalConfig } = await import('./config-DaQJWbRZ.mjs');
|
|
286
286
|
const config = readGeminiLocalConfig();
|
|
287
287
|
if (config.googleCloudProject) {
|
|
288
288
|
console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
|
|
@@ -322,7 +322,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
322
322
|
process.exit(0);
|
|
323
323
|
}
|
|
324
324
|
try {
|
|
325
|
-
const { runGemini } = await import('./runGemini-
|
|
325
|
+
const { runGemini } = await import('./runGemini-COkJ59pz.mjs');
|
|
326
326
|
let startedBy = void 0;
|
|
327
327
|
for (let i = 1; i < args.length; i++) {
|
|
328
328
|
if (args[i] === "--started-by") {
|
|
@@ -354,7 +354,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
354
354
|
return;
|
|
355
355
|
} else if (subcommand === "update") {
|
|
356
356
|
try {
|
|
357
|
-
const { handleUpdateCommand } = await import('./update-
|
|
357
|
+
const { handleUpdateCommand } = await import('./update-BxE93-s7.mjs');
|
|
358
358
|
await handleUpdateCommand();
|
|
359
359
|
} catch (error) {
|
|
360
360
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -367,7 +367,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
367
367
|
} else if (subcommand === "logout") {
|
|
368
368
|
console.log(chalk.yellow('Note: "happy logout" is deprecated. Use "happy auth logout" instead.\n'));
|
|
369
369
|
try {
|
|
370
|
-
const { handleAuthCommand } = await import('./auth-
|
|
370
|
+
const { handleAuthCommand } = await import('./auth-ZUnqSqKY.mjs');
|
|
371
371
|
await handleAuthCommand(["logout"]);
|
|
372
372
|
} catch (error) {
|
|
373
373
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -390,7 +390,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
390
390
|
return;
|
|
391
391
|
} else if (subcommand === "session") {
|
|
392
392
|
try {
|
|
393
|
-
const { handleSessionCommand } = await import('./session-
|
|
393
|
+
const { handleSessionCommand } = await import('./session-CJu83tzU.mjs');
|
|
394
394
|
await handleSessionCommand(args.slice(1));
|
|
395
395
|
} catch (error) {
|
|
396
396
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -402,7 +402,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
402
402
|
return;
|
|
403
403
|
} else if (subcommand === "task") {
|
|
404
404
|
try {
|
|
405
|
-
const { handleTaskCommand } = await import('./task-
|
|
405
|
+
const { handleTaskCommand } = await import('./task-BJro3dR3.mjs');
|
|
406
406
|
await handleTaskCommand(args.slice(1));
|
|
407
407
|
} catch (error) {
|
|
408
408
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -450,7 +450,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
450
450
|
return;
|
|
451
451
|
} else if (subcommand === "evidence") {
|
|
452
452
|
try {
|
|
453
|
-
const { handleEvidenceCommand } = await import('./evidence-
|
|
453
|
+
const { handleEvidenceCommand } = await import('./evidence-CMz-atyb.mjs');
|
|
454
454
|
await handleEvidenceCommand(args.slice(1));
|
|
455
455
|
} catch (error) {
|
|
456
456
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -467,7 +467,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
467
467
|
process.exit(1);
|
|
468
468
|
}
|
|
469
469
|
try {
|
|
470
|
-
const { runMcpServe } = await import('./serve-
|
|
470
|
+
const { runMcpServe } = await import('./serve-CzQSwmyU.mjs');
|
|
471
471
|
await runMcpServe();
|
|
472
472
|
} catch (error) {
|
|
473
473
|
process.stderr.write(`[happy-mcp] fatal: ${error instanceof Error ? error.message : "unknown error"}
|
|
@@ -481,7 +481,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
481
481
|
console.error(chalk.red("Error:"), 'Not authenticated. Run "happy auth" first.');
|
|
482
482
|
process.exit(1);
|
|
483
483
|
}
|
|
484
|
-
const { parseSshArgs, runOnDevice, sshDevice, sshPickAndConnect } = await import('./ssh-
|
|
484
|
+
const { parseSshArgs, runOnDevice, sshDevice, sshPickAndConnect } = await import('./ssh-CgYdGAzd.mjs');
|
|
485
485
|
const { target, command, timeoutMs, stream } = parseSshArgs(args.slice(1));
|
|
486
486
|
try {
|
|
487
487
|
if (command) {
|
|
@@ -504,7 +504,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
504
504
|
} else if (subcommand === "device") {
|
|
505
505
|
const deviceSubcommand = args[1];
|
|
506
506
|
if (deviceSubcommand === "push") {
|
|
507
|
-
const { pushToDevice } = await import('./push-
|
|
507
|
+
const { pushToDevice } = await import('./push-B325YQUT.mjs');
|
|
508
508
|
const credentials = await readCredentials();
|
|
509
509
|
if (!credentials) {
|
|
510
510
|
console.error(chalk.red("Error:"), 'Not authenticated. Run "happy auth" first.');
|
|
@@ -518,8 +518,8 @@ async function spawnAndWaitForDaemon() {
|
|
|
518
518
|
process.exit(await pushToDevice(credentials, target, localPath, remotePath));
|
|
519
519
|
}
|
|
520
520
|
if (deviceSubcommand === "enroll") {
|
|
521
|
-
const { enrollDevice } = await import('./enroll-
|
|
522
|
-
const { install } = await import('./install-
|
|
521
|
+
const { enrollDevice } = await import('./enroll-Ck7f6V22.mjs');
|
|
522
|
+
const { install } = await import('./install-CpTmSd4l.mjs');
|
|
523
523
|
const token = args[2];
|
|
524
524
|
if (!token) {
|
|
525
525
|
console.error(chalk.red("Error:"), "Missing enrollment token. Usage: happy device enroll <token>");
|
|
@@ -549,12 +549,12 @@ ${chalk.bold("Usage:")}
|
|
|
549
549
|
`);
|
|
550
550
|
process.exit(0);
|
|
551
551
|
} else if (subcommand === "daemon") {
|
|
552
|
-
const { startDaemon } = await import('./run-
|
|
553
|
-
const { install } = await import('./install-
|
|
554
|
-
const { uninstall } = await import('./uninstall-
|
|
555
|
-
const { runDoctorCommand } = await import('./doctor-
|
|
556
|
-
const { getLatestDaemonLog } = await import('./persistence-
|
|
557
|
-
const { listDaemonSessions, stopDaemonSession, stopDaemon } = await import('./controlClient-
|
|
552
|
+
const { startDaemon } = await import('./run-DNfj0j_h.mjs').then(function (n) { return n.r; });
|
|
553
|
+
const { install } = await import('./install-CpTmSd4l.mjs');
|
|
554
|
+
const { uninstall } = await import('./uninstall-CKmjUaMr.mjs');
|
|
555
|
+
const { runDoctorCommand } = await import('./doctor-Brqp2e3O.mjs');
|
|
556
|
+
const { getLatestDaemonLog } = await import('./persistence-BirvtFep.mjs').then(function (n) { return n.E; });
|
|
557
|
+
const { listDaemonSessions, stopDaemonSession, stopDaemon } = await import('./controlClient-jullf1ow.mjs');
|
|
558
558
|
const daemonSubcommand = args[1];
|
|
559
559
|
if (daemonSubcommand === "list") {
|
|
560
560
|
try {
|
|
@@ -759,7 +759,7 @@ ${chalk.gray("\u2500".repeat(60))}
|
|
|
759
759
|
${chalk.bold.cyan("Claude Code Options (from `claude --help`):")}
|
|
760
760
|
`);
|
|
761
761
|
try {
|
|
762
|
-
const { claudeCliPath } = await import('./claudeLocal-
|
|
762
|
+
const { claudeCliPath } = await import('./claudeLocal-CBalcsEQ.mjs').then(function (n) { return n.d; });
|
|
763
763
|
const claudeHelp = execFileSync(claudeCliPath, ["--help"], { encoding: "utf8" });
|
|
764
764
|
console.log(claudeHelp);
|
|
765
765
|
} catch (e) {
|
|
@@ -789,10 +789,10 @@ ${chalk.bold.cyan("Claude Code Options (from `claude --help`):")}
|
|
|
789
789
|
}
|
|
790
790
|
process.exit(0);
|
|
791
791
|
}
|
|
792
|
-
const { authAndSetupMachineIfNeeded } = await import('./auth-
|
|
793
|
-
const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-
|
|
794
|
-
const { spawnHappyCLI } = await import('./spawnHappyCLI-
|
|
795
|
-
const { runClaude } = await import('./runClaude-
|
|
792
|
+
const { authAndSetupMachineIfNeeded } = await import('./auth-CFcrX0sP.mjs');
|
|
793
|
+
const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-jullf1ow.mjs');
|
|
794
|
+
const { spawnHappyCLI } = await import('./spawnHappyCLI-CSkTkB4n.mjs').then(function (n) { return n.a; });
|
|
795
|
+
const { runClaude } = await import('./runClaude-C54Y-vby.mjs');
|
|
796
796
|
const {
|
|
797
797
|
credentials
|
|
798
798
|
} = await authAndSetupMachineIfNeeded();
|
|
@@ -866,7 +866,7 @@ ${chalk.bold("Examples:")}
|
|
|
866
866
|
}
|
|
867
867
|
console.log(chalk.blue("\u{1F4F1} Sending push notification..."));
|
|
868
868
|
try {
|
|
869
|
-
const { ApiClient } = await import('./api-
|
|
869
|
+
const { ApiClient } = await import('./api-CKGCwsUf.mjs').then(function (n) { return n.q; });
|
|
870
870
|
const api = await ApiClient.create(credentials);
|
|
871
871
|
const notificationTitle = title || "Happy AI";
|
|
872
872
|
api.push().sendToAllDevices(
|
|
@@ -2,7 +2,7 @@ import { existsSync, mkdirSync, writeFileSync } from 'fs';
|
|
|
2
2
|
import { execSync } from 'child_process';
|
|
3
3
|
import os from 'os';
|
|
4
4
|
import { join } from 'path';
|
|
5
|
-
import { l as logger } from './persistence-
|
|
5
|
+
import { l as logger } from './persistence-BirvtFep.mjs';
|
|
6
6
|
import { t as trimIdent } from './trimIdent-BAjmv_TG.mjs';
|
|
7
7
|
import { p as projectPath } from './projectPath-BTBIMB57.mjs';
|
|
8
8
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var logger = require('./persistence-
|
|
4
|
-
var install$2 = require('./install-
|
|
3
|
+
var logger = require('./persistence-DoY9jKDN.cjs');
|
|
4
|
+
var install$2 = require('./install-DKZjMcR2.cjs');
|
|
5
5
|
var fs = require('fs');
|
|
6
6
|
var child_process = require('child_process');
|
|
7
7
|
var path = require('path');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { l as logger, r as readCredentials } from './persistence-
|
|
2
|
-
import { i as install$2 } from './install-
|
|
1
|
+
import { l as logger, r as readCredentials } from './persistence-BirvtFep.mjs';
|
|
2
|
+
import { i as install$2 } from './install-BL0173KN.mjs';
|
|
3
3
|
import { existsSync, mkdirSync, writeFileSync } from 'fs';
|
|
4
4
|
import { execSync } from 'child_process';
|
|
5
5
|
import path from 'path';
|
|
@@ -4,7 +4,7 @@ var fs = require('fs');
|
|
|
4
4
|
var child_process = require('child_process');
|
|
5
5
|
var os = require('os');
|
|
6
6
|
var path = require('path');
|
|
7
|
-
var logger = require('./persistence-
|
|
7
|
+
var logger = require('./persistence-DoY9jKDN.cjs');
|
|
8
8
|
var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
|
|
9
9
|
var projectPath = require('./projectPath-ChLhdOyt.cjs');
|
|
10
10
|
|
package/dist/lib.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var api = require('./api-
|
|
4
|
-
var logger = require('./persistence-
|
|
3
|
+
var api = require('./api-jNSgtz8Y.cjs');
|
|
4
|
+
var logger = require('./persistence-DoY9jKDN.cjs');
|
|
5
5
|
var types = require('./types-DWeB7aqh.cjs');
|
|
6
6
|
require('axios');
|
|
7
7
|
require('node:events');
|
|
@@ -11,10 +11,11 @@ require('./index-DBev4hhV.cjs');
|
|
|
11
11
|
require('@paralleldrive/cuid2');
|
|
12
12
|
require('./time-Bj2HRkKH.cjs');
|
|
13
13
|
require('node:crypto');
|
|
14
|
-
require('node:fs');
|
|
15
14
|
require('node:path');
|
|
16
|
-
require('node:
|
|
15
|
+
require('node:fs');
|
|
17
16
|
require('node:fs/promises');
|
|
17
|
+
require('node:readline');
|
|
18
|
+
require('node:child_process');
|
|
18
19
|
require('node:os');
|
|
19
20
|
require('node:util');
|
|
20
21
|
require('child_process');
|
|
@@ -28,9 +29,8 @@ require('ws');
|
|
|
28
29
|
require('crypto');
|
|
29
30
|
require('tweetnacl');
|
|
30
31
|
require('@stablelib/base64');
|
|
31
|
-
require('node:readline');
|
|
32
32
|
require('expo-server-sdk');
|
|
33
|
-
require('./sessionKeyCache-
|
|
33
|
+
require('./sessionKeyCache-CRINEKrH.cjs');
|
|
34
34
|
require('chalk');
|
|
35
35
|
require('fs');
|
|
36
36
|
|
package/dist/lib.d.cts
CHANGED
|
@@ -1865,6 +1865,16 @@ declare class ApiClient {
|
|
|
1865
1865
|
content: string;
|
|
1866
1866
|
source: string;
|
|
1867
1867
|
}>>;
|
|
1868
|
+
/**
|
|
1869
|
+
* Sessions whose row changed since `sinceMs`, newest change last (server
|
|
1870
|
+
* caps at 500). Rows come back encrypted; see decryptSessionRow.
|
|
1871
|
+
*/
|
|
1872
|
+
listSessionsUpdatedSince(sinceMs: number): Promise<any[]>;
|
|
1873
|
+
/**
|
|
1874
|
+
* Mark a session inactive on the server. For sessions whose process is
|
|
1875
|
+
* gone and so will never send session-end itself.
|
|
1876
|
+
*/
|
|
1877
|
+
archiveSession(sessionId: string): Promise<boolean>;
|
|
1868
1878
|
/**
|
|
1869
1879
|
* Get vendor API token from the server
|
|
1870
1880
|
* Returns the token if it exists, null otherwise
|
package/dist/lib.d.mts
CHANGED
|
@@ -1865,6 +1865,16 @@ declare class ApiClient {
|
|
|
1865
1865
|
content: string;
|
|
1866
1866
|
source: string;
|
|
1867
1867
|
}>>;
|
|
1868
|
+
/**
|
|
1869
|
+
* Sessions whose row changed since `sinceMs`, newest change last (server
|
|
1870
|
+
* caps at 500). Rows come back encrypted; see decryptSessionRow.
|
|
1871
|
+
*/
|
|
1872
|
+
listSessionsUpdatedSince(sinceMs: number): Promise<any[]>;
|
|
1873
|
+
/**
|
|
1874
|
+
* Mark a session inactive on the server. For sessions whose process is
|
|
1875
|
+
* gone and so will never send session-end itself.
|
|
1876
|
+
*/
|
|
1877
|
+
archiveSession(sessionId: string): Promise<boolean>;
|
|
1868
1878
|
/**
|
|
1869
1879
|
* Get vendor API token from the server
|
|
1870
1880
|
* Returns the token if it exists, null otherwise
|
package/dist/lib.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { A as ApiClient, a as ApiSessionClient } from './api-
|
|
2
|
-
export { c as configuration, l as logger } from './persistence-
|
|
1
|
+
export { A as ApiClient, a as ApiSessionClient } from './api-CKGCwsUf.mjs';
|
|
2
|
+
export { c as configuration, l as logger } from './persistence-BirvtFep.mjs';
|
|
3
3
|
export { R as RawJSONLinesSchema } from './types-BoJh4Qfv.mjs';
|
|
4
4
|
import 'axios';
|
|
5
5
|
import 'node:events';
|
|
@@ -9,10 +9,11 @@ import './index-7P6T8CE4.mjs';
|
|
|
9
9
|
import '@paralleldrive/cuid2';
|
|
10
10
|
import './time-DgsBLJA_.mjs';
|
|
11
11
|
import 'node:crypto';
|
|
12
|
-
import 'node:fs';
|
|
13
12
|
import 'node:path';
|
|
14
|
-
import 'node:
|
|
13
|
+
import 'node:fs';
|
|
15
14
|
import 'node:fs/promises';
|
|
15
|
+
import 'node:readline';
|
|
16
|
+
import 'node:child_process';
|
|
16
17
|
import 'node:os';
|
|
17
18
|
import 'node:util';
|
|
18
19
|
import 'child_process';
|
|
@@ -26,8 +27,7 @@ import 'ws';
|
|
|
26
27
|
import 'crypto';
|
|
27
28
|
import 'tweetnacl';
|
|
28
29
|
import '@stablelib/base64';
|
|
29
|
-
import 'node:readline';
|
|
30
30
|
import 'expo-server-sdk';
|
|
31
|
-
import './sessionKeyCache-
|
|
31
|
+
import './sessionKeyCache-Ci9NA8Nn.mjs';
|
|
32
32
|
import 'chalk';
|
|
33
33
|
import 'fs';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
|
-
import { l as logger } from './persistence-
|
|
3
|
-
import { s as saveToolOutputRecord } from './api-
|
|
2
|
+
import { l as logger } from './persistence-BirvtFep.mjs';
|
|
3
|
+
import { s as saveToolOutputRecord } from './api-CKGCwsUf.mjs';
|
|
4
4
|
|
|
5
5
|
class BaseReasoningProcessor {
|
|
6
6
|
accumulator = "";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var node_crypto = require('node:crypto');
|
|
4
|
-
var logger = require('./persistence-
|
|
5
|
-
var api = require('./api-
|
|
4
|
+
var logger = require('./persistence-DoY9jKDN.cjs');
|
|
5
|
+
var api = require('./api-jNSgtz8Y.cjs');
|
|
6
6
|
|
|
7
7
|
class BaseReasoningProcessor {
|
|
8
8
|
accumulator = "";
|
|
@@ -14,7 +14,7 @@ function isDebug() {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
var name = "@zonease/happy";
|
|
17
|
-
var version = "0.6.
|
|
17
|
+
var version = "0.6.57";
|
|
18
18
|
var description = "Mobile and Web client for Claude Code, Codex, and Gemini";
|
|
19
19
|
var author = "ZonEaseTech";
|
|
20
20
|
var license = "MIT";
|
|
@@ -944,4 +944,4 @@ var persistence = /*#__PURE__*/Object.freeze({
|
|
|
944
944
|
writeDaemonState: writeDaemonState
|
|
945
945
|
});
|
|
946
946
|
|
|
947
|
-
export { getProfileEnvironmentVariables as A, encryptLegacy as B, getRandomBytes as C, libsodiumEncryptForPublicKey as D, logger$1 as E, persistence as F, readSettings as a, clearCredentials as b, configuration as c, clearMachineId as d, encodeBase64 as e, encrypt as f, decrypt as g, decodeBase64 as h, isDebug as i, encryptWithDataKey as j, decryptWithDataKey as k, logger as l, readDaemonState as m, clearDaemonState as n,
|
|
947
|
+
export { getProfileEnvironmentVariables as A, encryptLegacy as B, getRandomBytes as C, libsodiumEncryptForPublicKey as D, logger$1 as E, persistence as F, readSettings as a, clearCredentials as b, configuration as c, clearMachineId as d, encodeBase64 as e, encrypt as f, decrypt as g, decodeBase64 as h, isDebug as i, encryptWithDataKey as j, decryptWithDataKey as k, logger as l, readDaemonState as m, clearDaemonState as n, decryptLegacy as o, packageJson as p, libsodiumPublicKeyFromSecretKey as q, readCredentials as r, encodeBase64Url as s, writeCredentialsLegacy as t, updateSettings as u, acquireDaemonLock as v, writeCredentialsDataKey as w, writeDaemonState as x, releaseDaemonLock as y, validateProfileForAgent as z };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { stat, readFile } from 'node:fs/promises';
|
|
2
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-
|
|
4
|
-
import { resolveDeviceForCommand } from './ssh-
|
|
3
|
+
import { c as configuration, e as encodeBase64, f as encrypt, g as decrypt, h as decodeBase64 } from './persistence-BirvtFep.mjs';
|
|
4
|
+
import { resolveDeviceForCommand } from './ssh-CgYdGAzd.mjs';
|
|
5
5
|
import 'node:fs';
|
|
6
6
|
import 'node:os';
|
|
7
7
|
import 'node:path';
|
|
@@ -10,16 +10,16 @@ import 'node:crypto';
|
|
|
10
10
|
import 'tweetnacl';
|
|
11
11
|
import 'chalk';
|
|
12
12
|
import 'fs';
|
|
13
|
-
import './deviceKeys-
|
|
13
|
+
import './deviceKeys-su95gdc-.mjs';
|
|
14
14
|
import 'axios';
|
|
15
|
-
import './auth-
|
|
15
|
+
import './auth-CFcrX0sP.mjs';
|
|
16
16
|
import 'qrcode-terminal';
|
|
17
17
|
import './time-DgsBLJA_.mjs';
|
|
18
|
-
import './browser-
|
|
18
|
+
import './browser-eziH4OAA.mjs';
|
|
19
19
|
import 'open';
|
|
20
20
|
import 'react';
|
|
21
21
|
import 'ink';
|
|
22
|
-
import './controlClient-
|
|
22
|
+
import './controlClient-jullf1ow.mjs';
|
|
23
23
|
import './projectPath-BTBIMB57.mjs';
|
|
24
24
|
import 'path';
|
|
25
25
|
import 'url';
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var promises = require('node:fs/promises');
|
|
4
4
|
var socket_ioClient = require('socket.io-client');
|
|
5
|
-
var logger = require('./persistence-
|
|
6
|
-
var ssh = require('./ssh-
|
|
5
|
+
var logger = require('./persistence-DoY9jKDN.cjs');
|
|
6
|
+
var ssh = require('./ssh-CrxTSwPb.cjs');
|
|
7
7
|
require('node:fs');
|
|
8
8
|
require('node:os');
|
|
9
9
|
require('node:path');
|
|
@@ -12,16 +12,16 @@ require('node:crypto');
|
|
|
12
12
|
require('tweetnacl');
|
|
13
13
|
require('chalk');
|
|
14
14
|
require('fs');
|
|
15
|
-
require('./deviceKeys-
|
|
15
|
+
require('./deviceKeys-YeZD2zQo.cjs');
|
|
16
16
|
require('axios');
|
|
17
|
-
require('./auth-
|
|
17
|
+
require('./auth-BUQLBefw.cjs');
|
|
18
18
|
require('qrcode-terminal');
|
|
19
19
|
require('./time-Bj2HRkKH.cjs');
|
|
20
|
-
require('./browser-
|
|
20
|
+
require('./browser-BA-Yc9JO.cjs');
|
|
21
21
|
require('open');
|
|
22
22
|
require('react');
|
|
23
23
|
require('ink');
|
|
24
|
-
require('./controlClient-
|
|
24
|
+
require('./controlClient-B70-61t0.cjs');
|
|
25
25
|
require('./projectPath-ChLhdOyt.cjs');
|
|
26
26
|
require('path');
|
|
27
27
|
require('url');
|
package/dist/{registerKillSessionHandler-CPr_DB4J.cjs → registerKillSessionHandler-CEvWEzOm.cjs}
RENAMED
|
@@ -7,8 +7,8 @@ var node_http = require('node:http');
|
|
|
7
7
|
var streamableHttp_js = require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
8
8
|
var types_js = require('@modelcontextprotocol/sdk/types.js');
|
|
9
9
|
var z = require('zod');
|
|
10
|
-
var logger = require('./persistence-
|
|
11
|
-
var deviceKeys = require('./deviceKeys-
|
|
10
|
+
var logger = require('./persistence-DoY9jKDN.cjs');
|
|
11
|
+
var deviceKeys = require('./deviceKeys-YeZD2zQo.cjs');
|
|
12
12
|
var axios = require('axios');
|
|
13
13
|
var promises = require('node:fs/promises');
|
|
14
14
|
var node_crypto = require('node:crypto');
|
|
@@ -18,7 +18,7 @@ require('./index-DBev4hhV.cjs');
|
|
|
18
18
|
var node_child_process = require('node:child_process');
|
|
19
19
|
require('node:events');
|
|
20
20
|
require('socket.io-client');
|
|
21
|
-
require('./api-
|
|
21
|
+
require('./api-jNSgtz8Y.cjs');
|
|
22
22
|
require('tweetnacl');
|
|
23
23
|
require('ws');
|
|
24
24
|
require('crypto');
|
package/dist/{registerKillSessionHandler-CH06n_hZ.mjs → registerKillSessionHandler-CTSkaRVu.mjs}
RENAMED
|
@@ -5,8 +5,8 @@ import { createServer } from 'node:http';
|
|
|
5
5
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
6
6
|
import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';
|
|
7
7
|
import { z } from 'zod';
|
|
8
|
-
import { c as configuration, l as logger, r as readCredentials } from './persistence-
|
|
9
|
-
import { l as listDevices, d as deviceExec } from './deviceKeys-
|
|
8
|
+
import { c as configuration, l as logger, r as readCredentials } from './persistence-BirvtFep.mjs';
|
|
9
|
+
import { l as listDevices, d as deviceExec } from './deviceKeys-su95gdc-.mjs';
|
|
10
10
|
import axios from 'axios';
|
|
11
11
|
import { stat, readFile } from 'node:fs/promises';
|
|
12
12
|
import { randomUUID } from 'node:crypto';
|
|
@@ -16,7 +16,7 @@ import './index-7P6T8CE4.mjs';
|
|
|
16
16
|
import { execSync } from 'node:child_process';
|
|
17
17
|
import 'node:events';
|
|
18
18
|
import 'socket.io-client';
|
|
19
|
-
import './api-
|
|
19
|
+
import './api-CKGCwsUf.mjs';
|
|
20
20
|
import 'tweetnacl';
|
|
21
21
|
import 'ws';
|
|
22
22
|
import 'crypto';
|