@zonease/happy 0.6.54 → 0.6.56
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-DLk8tzQQ.mjs → api-9wvM_aF-.mjs} +79 -67
- package/dist/{api-Da8DnAgp.cjs → api-BGc484qf.cjs} +73 -61
- package/dist/{auth-3eHy-NiL.cjs → auth-B6vskzfm.cjs} +2 -2
- package/dist/{auth-Dn64MNXy.mjs → auth-BnEa31tI.mjs} +2 -2
- package/dist/{auth-DHyEz32d.cjs → auth-CPfJalJM.cjs} +4 -4
- package/dist/{auth-l0Gi002V.mjs → auth-DqAM-lIh.mjs} +4 -4
- package/dist/{browser-DmSfJ05Z.mjs → browser-CkQP96Zi.mjs} +1 -1
- package/dist/{browser-Cw-H2Ma5.cjs → browser-CnxzD1lA.cjs} +1 -1
- package/dist/{claudeLocal-B0Y7CBFV.mjs → claudeLocal-B5uxtoit.mjs} +1 -1
- package/dist/{claudeLocal-DNLVyOkk.cjs → claudeLocal-CV4fT0Gg.cjs} +1 -1
- package/dist/{config-CPzuub8l.mjs → config-C9hdBdfj.mjs} +1 -1
- package/dist/{config-B1dECrwV.cjs → config-C__p7EWC.cjs} +1 -1
- package/dist/{connect-C7dp_WX0.mjs → connect-BeORCRXq.mjs} +5 -5
- package/dist/{connect-CcqT6Eg4.cjs → connect-DQjpjfYn.cjs} +5 -5
- package/dist/{controlClient-4irLqjPn.cjs → controlClient-DWBW6jRF.cjs} +4 -4
- package/dist/{controlClient-DESWXp4N.mjs → controlClient-VY0CGL8k.mjs} +4 -4
- package/dist/{cursorApprovalHook-BDYPCM1A.cjs → cursorApprovalHook-BuDSRM-6.cjs} +2 -2
- package/dist/{cursorApprovalHook-BX5PlCLv.mjs → cursorApprovalHook-D_8btpsY.mjs} +2 -2
- package/dist/{cursorApprovalServer-BZyv6LZR.mjs → cursorApprovalServer-BOUd2-Fg.mjs} +1 -1
- package/dist/{cursorApprovalServer-gH0pwRGq.cjs → cursorApprovalServer-j9RphnEG.cjs} +1 -1
- package/dist/{deviceKeys-BekDRny4.mjs → deviceKeys-DvfaTff3.mjs} +2 -2
- package/dist/{deviceKeys-CDTA_iqA.cjs → deviceKeys-c_sN01Mm.cjs} +2 -2
- package/dist/{doctor-BCqchQlg.cjs → doctor-CD46A-_Y.cjs} +2 -2
- package/dist/{doctor-CFDWT__E.mjs → doctor-DQtQbfG-.mjs} +2 -2
- package/dist/{downloadImage-Bv0iPThm.mjs → downloadImage-B6A4x8Jw.mjs} +1 -1
- package/dist/{downloadImage-oDAqiRug.cjs → downloadImage-DGdHCFi3.cjs} +1 -1
- package/dist/{enroll-BEZ5llpQ.mjs → enroll-CyHWNKNt.mjs} +3 -3
- package/dist/{enroll-BS_DDdDI.cjs → enroll-D9CEuRI_.cjs} +3 -3
- package/dist/{evidence-DUqAB-YC.mjs → evidence-BuYebdrN.mjs} +1 -1
- package/dist/{evidence-DNxlL47R.cjs → evidence-CCrpzsTA.cjs} +1 -1
- package/dist/{formatImageMessage-DNrnXT9b.mjs → formatImageMessage-5qaaT_Wq.mjs} +1 -1
- package/dist/{formatImageMessage-9IXAYb2e.cjs → formatImageMessage-DttKW75w.cjs} +1 -1
- package/dist/index.cjs +49 -47
- package/dist/index.mjs +49 -47
- package/dist/{install-DRJM6rAH.mjs → install-1Y6dAcMp.mjs} +1 -1
- package/dist/{install-B8BRcKro.cjs → install-B0hT_tLv.cjs} +2 -2
- package/dist/{install-qidTS2aZ.cjs → install-C4cwObCN.cjs} +1 -1
- package/dist/{install-PoZjcS6c.mjs → install-eIXFuZbC.mjs} +2 -2
- package/dist/lib.cjs +6 -6
- package/dist/lib.mjs +6 -6
- package/dist/{loadableToolOutput-BlVR2izz.mjs → loadableToolOutput-BKDTnyoF.mjs} +2 -2
- package/dist/{loadableToolOutput-Dee4IYX-.cjs → loadableToolOutput-Cb-18__b.cjs} +2 -2
- package/dist/{persistence-CXOGgoCo.cjs → persistence-CNXsXPLm.cjs} +1 -1
- package/dist/{persistence-DSUgpkhC.mjs → persistence-IdEuIeMz.mjs} +1 -1
- package/dist/{push-CISsRYtP.cjs → push-XL6Sb0Vw.cjs} +6 -6
- package/dist/{push-BAhpKKZi.mjs → push-tXs96IyG.mjs} +6 -6
- package/dist/{registerKillSessionHandler-DYhs41SE.cjs → registerKillSessionHandler-D9tmPdw5.cjs} +3 -3
- package/dist/{registerKillSessionHandler-Due-xxRL.mjs → registerKillSessionHandler-vF5c8YZF.mjs} +3 -3
- package/dist/{run-DOdseFir.cjs → run-BKfeeheJ.cjs} +16 -10
- package/dist/{run-CnaW5CvS.mjs → run-BvpCwXkt.mjs} +16 -10
- package/dist/{runClaude-DZMQllwE.mjs → runClaude-BiVqZQOm.mjs} +15 -15
- package/dist/{runClaude-Bdg1uZQB.cjs → runClaude-DDsG7eMR.cjs} +16 -16
- package/dist/{runCodex-Btsu2b6-.cjs → runCodex-Bh519-dW.cjs} +15 -15
- package/dist/{runCodex-DBZcVBP-.mjs → runCodex-C-8SvnpP.mjs} +15 -15
- package/dist/{runCursor-BGoe6glt.mjs → runCursor-3AFNF0y2.mjs} +16 -16
- package/dist/{runCursor-BoqAa3cX.cjs → runCursor-CYbvOqUa.cjs} +16 -16
- package/dist/{runGemini-CrPFkfeE.mjs → runGemini-Dh2JRfOJ.mjs} +19 -19
- package/dist/{runGemini-PlEnK1qg.cjs → runGemini-ExHXGZBY.cjs} +19 -19
- package/dist/{runOneShot-Ck0pDOnK.cjs → runOneShot-CEVKtkx_.cjs} +2 -2
- package/dist/{runOneShot-CtcdFR7C.mjs → runOneShot-CVcw-K0_.mjs} +2 -2
- package/dist/{serve-CmDwh71O.mjs → serve-C4dOQ0jP.mjs} +6 -6
- package/dist/{serve-Dw2TAf7J.cjs → serve-D0IhhySV.cjs} +6 -6
- package/dist/{session-lvats2oo.mjs → session-CwMxRPXS.mjs} +5 -5
- package/dist/{session-cgCKfQlj.cjs → session-DK9eudJT.cjs} +5 -5
- package/dist/{sessionKeyCache-WsWILYqW.mjs → sessionKeyCache-DDzTs7E5.mjs} +1 -1
- package/dist/{sessionKeyCache-BcHYqqvh.cjs → sessionKeyCache-JjjYAxdf.cjs} +1 -1
- package/dist/{sessionList-CZe1CUNV.cjs → sessionList-DZmmAP3q.cjs} +2 -2
- package/dist/{sessionList-rWjYFvKo.mjs → sessionList-IYAtPIev.mjs} +2 -2
- package/dist/{sessionSummary-DHMo6gQp.mjs → sessionSummary-CQQyTHRC.mjs} +3 -3
- package/dist/{sessionSummary-B2alrCw2.cjs → sessionSummary-CsIfkyZA.cjs} +3 -3
- package/dist/{setupOfflineReconnection-Bgr2zrFL.mjs → setupOfflineReconnection-C1yzDMt6.mjs} +3 -3
- package/dist/{setupOfflineReconnection-CDKLObwx.cjs → setupOfflineReconnection-DwtIEUeJ.cjs} +3 -3
- package/dist/{spawnHappyCLI-DMHDwhaj.cjs → spawnHappyCLI-BbMkZhMk.cjs} +1 -1
- package/dist/{spawnHappyCLI-D395WmG6.mjs → spawnHappyCLI-DlTg87jS.mjs} +1 -1
- package/dist/{ssh-DY2t_lUb.cjs → ssh-D31o750w.cjs} +40 -28
- package/dist/{ssh-D4Tm8kgg.mjs → ssh-DSVjanff.mjs} +40 -28
- package/dist/{task-CwUcMY2G.cjs → task--Apxd9oF.cjs} +6 -6
- package/dist/{task-5ZowiuIL.mjs → task-D9ZjWCcw.mjs} +6 -6
- package/dist/{uninstall-rxjrCBV0.mjs → uninstall-Bo2uaLRP.mjs} +2 -2
- package/dist/{uninstall-B8pTaKP5.cjs → uninstall-CZJcoC06.cjs} +2 -2
- package/dist/{update-DP570X8n.mjs → update-BiV4YqG3.mjs} +3 -3
- package/dist/{update-DwU5c4md.cjs → update-D-bTjP2k.cjs} +3 -3
- package/package.json +1 -1
|
@@ -4,11 +4,11 @@ var chalk = require('chalk');
|
|
|
4
4
|
var fs = require('fs');
|
|
5
5
|
var os = require('os');
|
|
6
6
|
var path = require('path');
|
|
7
|
-
var logger = require('./persistence-
|
|
8
|
-
var api = require('./api-
|
|
7
|
+
var logger = require('./persistence-CNXsXPLm.cjs');
|
|
8
|
+
var api = require('./api-BGc484qf.cjs');
|
|
9
9
|
var http = require('http');
|
|
10
10
|
var crypto = require('crypto');
|
|
11
|
-
var browser = require('./browser-
|
|
11
|
+
var browser = require('./browser-CnxzD1lA.cjs');
|
|
12
12
|
var child_process = require('child_process');
|
|
13
13
|
var util = require('util');
|
|
14
14
|
require('node:fs/promises');
|
|
@@ -24,6 +24,7 @@ require('socket.io-client');
|
|
|
24
24
|
require('./index-DBev4hhV.cjs');
|
|
25
25
|
require('@paralleldrive/cuid2');
|
|
26
26
|
require('./time-Bj2HRkKH.cjs');
|
|
27
|
+
require('node:readline');
|
|
27
28
|
require('node:child_process');
|
|
28
29
|
require('node:util');
|
|
29
30
|
require('fs/promises');
|
|
@@ -32,9 +33,8 @@ require('url');
|
|
|
32
33
|
require('node:module');
|
|
33
34
|
require('ws');
|
|
34
35
|
require('@stablelib/base64');
|
|
35
|
-
require('node:readline');
|
|
36
36
|
require('expo-server-sdk');
|
|
37
|
-
require('./sessionKeyCache-
|
|
37
|
+
require('./sessionKeyCache-JjjYAxdf.cjs');
|
|
38
38
|
require('open');
|
|
39
39
|
|
|
40
40
|
const CLIENT_ID$2 = "app_EMoamEEZ73f0CkXaXp7hrann";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var logger = require('./persistence-
|
|
3
|
+
var logger = require('./persistence-CNXsXPLm.cjs');
|
|
4
4
|
var projectPath = require('./projectPath-ChLhdOyt.cjs');
|
|
5
5
|
var fs = require('fs');
|
|
6
6
|
var path = require('path');
|
|
@@ -14,7 +14,7 @@ require('tweetnacl');
|
|
|
14
14
|
require('chalk');
|
|
15
15
|
require('url');
|
|
16
16
|
|
|
17
|
-
async function daemonPost(path, body) {
|
|
17
|
+
async function daemonPost(path, body, timeoutMs) {
|
|
18
18
|
const state = await logger.readDaemonState();
|
|
19
19
|
if (!state?.httpPort) {
|
|
20
20
|
const errorMessage = "No daemon running, no state file found";
|
|
@@ -33,7 +33,7 @@ async function daemonPost(path, body) {
|
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
try {
|
|
36
|
-
const timeout = process.env.HAPPY_DAEMON_HTTP_TIMEOUT ? parseInt(process.env.HAPPY_DAEMON_HTTP_TIMEOUT) : 1e4;
|
|
36
|
+
const timeout = timeoutMs ?? (process.env.HAPPY_DAEMON_HTTP_TIMEOUT ? parseInt(process.env.HAPPY_DAEMON_HTTP_TIMEOUT) : 1e4);
|
|
37
37
|
const response = await fetch(`http://127.0.0.1:${state.httpPort}${path}`, {
|
|
38
38
|
method: "POST",
|
|
39
39
|
headers: { "Content-Type": "application/json" },
|
|
@@ -64,7 +64,7 @@ async function notifyDaemonSessionStarted(sessionId, metadata) {
|
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
66
|
async function execOnDeviceViaDaemon(deviceId, command, timeoutMs) {
|
|
67
|
-
const response = await daemonPost("/device-exec", { deviceId, command, timeoutMs });
|
|
67
|
+
const response = await daemonPost("/device-exec", { deviceId, command, timeoutMs }, timeoutMs + 3e4);
|
|
68
68
|
if (!response || response.error || response.ok !== true) {
|
|
69
69
|
logger.logger.debug(`[CONTROL CLIENT] Device exec via daemon unavailable: ${response?.error ?? "no daemon"}`);
|
|
70
70
|
return null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { l as logger, m as readDaemonState, n as clearDaemonState } from './persistence-
|
|
1
|
+
import { l as logger, m as readDaemonState, n as clearDaemonState } from './persistence-IdEuIeMz.mjs';
|
|
2
2
|
import { p as projectPath } from './projectPath-BTBIMB57.mjs';
|
|
3
3
|
import { readFileSync } from 'fs';
|
|
4
4
|
import { join } from 'path';
|
|
@@ -12,7 +12,7 @@ import 'tweetnacl';
|
|
|
12
12
|
import 'chalk';
|
|
13
13
|
import 'url';
|
|
14
14
|
|
|
15
|
-
async function daemonPost(path, body) {
|
|
15
|
+
async function daemonPost(path, body, timeoutMs) {
|
|
16
16
|
const state = await readDaemonState();
|
|
17
17
|
if (!state?.httpPort) {
|
|
18
18
|
const errorMessage = "No daemon running, no state file found";
|
|
@@ -31,7 +31,7 @@ async function daemonPost(path, body) {
|
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
try {
|
|
34
|
-
const timeout = process.env.HAPPY_DAEMON_HTTP_TIMEOUT ? parseInt(process.env.HAPPY_DAEMON_HTTP_TIMEOUT) : 1e4;
|
|
34
|
+
const timeout = timeoutMs ?? (process.env.HAPPY_DAEMON_HTTP_TIMEOUT ? parseInt(process.env.HAPPY_DAEMON_HTTP_TIMEOUT) : 1e4);
|
|
35
35
|
const response = await fetch(`http://127.0.0.1:${state.httpPort}${path}`, {
|
|
36
36
|
method: "POST",
|
|
37
37
|
headers: { "Content-Type": "application/json" },
|
|
@@ -62,7 +62,7 @@ async function notifyDaemonSessionStarted(sessionId, metadata) {
|
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
async function execOnDeviceViaDaemon(deviceId, command, timeoutMs) {
|
|
65
|
-
const response = await daemonPost("/device-exec", { deviceId, command, timeoutMs });
|
|
65
|
+
const response = await daemonPost("/device-exec", { deviceId, command, timeoutMs }, timeoutMs + 3e4);
|
|
66
66
|
if (!response || response.error || response.ok !== true) {
|
|
67
67
|
logger.debug(`[CONTROL CLIENT] Device exec via daemon unavailable: ${response?.error ?? "no daemon"}`);
|
|
68
68
|
return null;
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
var fs = require('node:fs');
|
|
4
4
|
var path = require('node:path');
|
|
5
|
-
var cursorApprovalServer = require('./cursorApprovalServer-
|
|
5
|
+
var cursorApprovalServer = require('./cursorApprovalServer-j9RphnEG.cjs');
|
|
6
6
|
require('node:http');
|
|
7
7
|
require('node:crypto');
|
|
8
8
|
require('node:fs/promises');
|
|
9
9
|
require('node:os');
|
|
10
|
-
require('./persistence-
|
|
10
|
+
require('./persistence-CNXsXPLm.cjs');
|
|
11
11
|
require('zod');
|
|
12
12
|
require('tweetnacl');
|
|
13
13
|
require('chalk');
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
import { a as approvalRegistryDir, A as APPROVAL_ENDPOINT_FILE } from './cursorApprovalServer-
|
|
3
|
+
import { a as approvalRegistryDir, A as APPROVAL_ENDPOINT_FILE } from './cursorApprovalServer-BOUd2-Fg.mjs';
|
|
4
4
|
import 'node:http';
|
|
5
5
|
import 'node:crypto';
|
|
6
6
|
import 'node:fs/promises';
|
|
7
7
|
import 'node:os';
|
|
8
|
-
import './persistence-
|
|
8
|
+
import './persistence-IdEuIeMz.mjs';
|
|
9
9
|
import 'zod';
|
|
10
10
|
import 'tweetnacl';
|
|
11
11
|
import 'chalk';
|
|
@@ -4,7 +4,7 @@ import { mkdir, writeFile, rename, readFile, rm, readdir, rmdir } from 'node:fs/
|
|
|
4
4
|
import { existsSync } from 'node:fs';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
6
|
import { homedir } from 'node:os';
|
|
7
|
-
import { l as logger } from './persistence-
|
|
7
|
+
import { l as logger } from './persistence-IdEuIeMz.mjs';
|
|
8
8
|
|
|
9
9
|
const TOOL_NAME_MAP = {
|
|
10
10
|
read: "Read",
|
|
@@ -6,7 +6,7 @@ var promises = require('node:fs/promises');
|
|
|
6
6
|
var fs = require('node:fs');
|
|
7
7
|
var path = require('node:path');
|
|
8
8
|
var os = require('node:os');
|
|
9
|
-
var logger = require('./persistence-
|
|
9
|
+
var logger = require('./persistence-CNXsXPLm.cjs');
|
|
10
10
|
|
|
11
11
|
const TOOL_NAME_MAP = {
|
|
12
12
|
read: "Read",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
-
import { h as decodeBase64, e as encodeBase64, f as encrypt, g as decrypt, c as configuration } from './persistence-
|
|
3
|
-
import { decryptWithEphemeralKey } from './auth-
|
|
2
|
+
import { h as decodeBase64, e as encodeBase64, f as encrypt, g as decrypt, c as configuration } from './persistence-IdEuIeMz.mjs';
|
|
3
|
+
import { decryptWithEphemeralKey } from './auth-BnEa31tI.mjs';
|
|
4
4
|
import tweetnacl from 'tweetnacl';
|
|
5
5
|
import { existsSync } from 'node:fs';
|
|
6
6
|
import { writeFile, mkdir, readFile } from 'node:fs/promises';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var axios = require('axios');
|
|
4
|
-
var logger = require('./persistence-
|
|
5
|
-
var auth = require('./auth-
|
|
4
|
+
var logger = require('./persistence-CNXsXPLm.cjs');
|
|
5
|
+
var auth = require('./auth-B6vskzfm.cjs');
|
|
6
6
|
var tweetnacl = require('tweetnacl');
|
|
7
7
|
var fs = require('node:fs');
|
|
8
8
|
var promises = require('node:fs/promises');
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
|
-
var logger = require('./persistence-
|
|
5
|
-
var controlClient = require('./controlClient-
|
|
4
|
+
var logger = require('./persistence-CNXsXPLm.cjs');
|
|
5
|
+
var controlClient = require('./controlClient-DWBW6jRF.cjs');
|
|
6
6
|
var doctor = require('./doctor-C08m5Z9f.cjs');
|
|
7
7
|
var fs = require('node:fs');
|
|
8
8
|
var path = require('node:path');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
|
-
import { p as packageJson, c as configuration, a as readSettings, r as readCredentials, m as readDaemonState } from './persistence-
|
|
3
|
-
import { checkIfDaemonRunningAndCleanupStaleState } from './controlClient-
|
|
2
|
+
import { p as packageJson, c as configuration, a as readSettings, r as readCredentials, m as readDaemonState } from './persistence-IdEuIeMz.mjs';
|
|
3
|
+
import { checkIfDaemonRunningAndCleanupStaleState } from './controlClient-VY0CGL8k.mjs';
|
|
4
4
|
import { findAllHappyProcesses } from './doctor-ON7pN5G5.mjs';
|
|
5
5
|
import { existsSync, readdirSync, statSync } from 'node:fs';
|
|
6
6
|
import { join } from 'node:path';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import tweetnacl from 'tweetnacl';
|
|
3
3
|
import { createHmac, randomBytes } from 'node:crypto';
|
|
4
|
-
import { r as readCredentials, c as configuration, h as decodeBase64, u as updateSettings, w as writeCredentialsDataKey, o as libsodiumPublicKeyFromSecretKey } from './persistence-
|
|
5
|
-
import { decryptWithEphemeralKey } from './auth-
|
|
4
|
+
import { r as readCredentials, c as configuration, h as decodeBase64, u as updateSettings, w as writeCredentialsDataKey, o as libsodiumPublicKeyFromSecretKey } from './persistence-IdEuIeMz.mjs';
|
|
5
|
+
import { decryptWithEphemeralKey } from './auth-BnEa31tI.mjs';
|
|
6
6
|
import 'node:fs/promises';
|
|
7
7
|
import 'node:fs';
|
|
8
8
|
import 'node:os';
|
|
@@ -12,7 +12,7 @@ import 'chalk';
|
|
|
12
12
|
import 'fs';
|
|
13
13
|
import 'qrcode-terminal';
|
|
14
14
|
import './time-DgsBLJA_.mjs';
|
|
15
|
-
import './browser-
|
|
15
|
+
import './browser-CkQP96Zi.mjs';
|
|
16
16
|
import 'open';
|
|
17
17
|
import 'react';
|
|
18
18
|
import 'ink';
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
var axios = require('axios');
|
|
4
4
|
var tweetnacl = require('tweetnacl');
|
|
5
5
|
var node_crypto = require('node:crypto');
|
|
6
|
-
var logger = require('./persistence-
|
|
7
|
-
var auth = require('./auth-
|
|
6
|
+
var logger = require('./persistence-CNXsXPLm.cjs');
|
|
7
|
+
var auth = require('./auth-B6vskzfm.cjs');
|
|
8
8
|
require('node:fs/promises');
|
|
9
9
|
require('node:fs');
|
|
10
10
|
require('node:os');
|
|
@@ -14,7 +14,7 @@ require('chalk');
|
|
|
14
14
|
require('fs');
|
|
15
15
|
require('qrcode-terminal');
|
|
16
16
|
require('./time-Bj2HRkKH.cjs');
|
|
17
|
-
require('./browser-
|
|
17
|
+
require('./browser-CnxzD1lA.cjs');
|
|
18
18
|
require('open');
|
|
19
19
|
require('react');
|
|
20
20
|
require('ink');
|
|
@@ -3,7 +3,7 @@ import { constants } from 'node:fs';
|
|
|
3
3
|
import { mkdir, appendFile, access, readFile } from 'node:fs/promises';
|
|
4
4
|
import { randomUUID } from 'node:crypto';
|
|
5
5
|
import { basename, dirname, resolve } from 'node:path';
|
|
6
|
-
import { c as configuration } from './persistence-
|
|
6
|
+
import { c as configuration } from './persistence-IdEuIeMz.mjs';
|
|
7
7
|
import { r as renderEvidenceReport, i as inferEvidenceKind } from './workflowReports-Dd8-4-8f.mjs';
|
|
8
8
|
import { p as parseWorkflowArgs, s as stringFlag, b as booleanFlag, a as printOrWriteOutput } from './workflowCommon-B0d01Y_a.mjs';
|
|
9
9
|
import 'node:os';
|
|
@@ -5,7 +5,7 @@ var fs = require('node:fs');
|
|
|
5
5
|
var promises = require('node:fs/promises');
|
|
6
6
|
var node_crypto = require('node:crypto');
|
|
7
7
|
var path = require('node:path');
|
|
8
|
-
var logger = require('./persistence-
|
|
8
|
+
var logger = require('./persistence-CNXsXPLm.cjs');
|
|
9
9
|
var workflowReports = require('./workflowReports-BEWuQesA.cjs');
|
|
10
10
|
var workflowCommon = require('./workflowCommon-Bl568-rt.cjs');
|
|
11
11
|
require('node:os');
|
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
|
-
var logger = require('./persistence-
|
|
4
|
+
var logger = require('./persistence-CNXsXPLm.cjs');
|
|
5
5
|
var z = require('zod');
|
|
6
6
|
var node_child_process = require('node:child_process');
|
|
7
7
|
require('node:fs/promises');
|
|
@@ -13,8 +13,8 @@ require('tweetnacl');
|
|
|
13
13
|
require('fs');
|
|
14
14
|
|
|
15
15
|
async function spawnAndWaitForDaemon() {
|
|
16
|
-
const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-
|
|
17
|
-
const { checkIfDaemonRunningAndCleanupStaleState } = await Promise.resolve().then(function () { return require('./controlClient-
|
|
16
|
+
const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-BbMkZhMk.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
|
|
17
|
+
const { checkIfDaemonRunningAndCleanupStaleState } = await Promise.resolve().then(function () { return require('./controlClient-DWBW6jRF.cjs'); });
|
|
18
18
|
const child = spawnHappyCLI(["daemon", "start-sync"], {
|
|
19
19
|
detached: true,
|
|
20
20
|
stdio: "ignore"
|
|
@@ -37,7 +37,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
37
37
|
if (!args.includes("--version")) ;
|
|
38
38
|
if (subcommand === "orchestrator-oneshot") {
|
|
39
39
|
try {
|
|
40
|
-
const { runOrchestratorOneShot } = await Promise.resolve().then(function () { return require('./runOneShot-
|
|
40
|
+
const { runOrchestratorOneShot } = await Promise.resolve().then(function () { return require('./runOneShot-CEVKtkx_.cjs'); });
|
|
41
41
|
const exitCode = await runOrchestratorOneShot(args.slice(1));
|
|
42
42
|
process.exit(exitCode);
|
|
43
43
|
} catch (error) {
|
|
@@ -50,7 +50,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
50
50
|
return;
|
|
51
51
|
} else if (subcommand === "doctor") {
|
|
52
52
|
const { killRunawayHappyProcesses } = await Promise.resolve().then(function () { return require('./doctor-C08m5Z9f.cjs'); });
|
|
53
|
-
const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-
|
|
53
|
+
const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-CD46A-_Y.cjs'); });
|
|
54
54
|
if (args[1] === "clean") {
|
|
55
55
|
const result = await killRunawayHappyProcesses();
|
|
56
56
|
console.log(`Cleaned up ${result.killed} runaway processes`);
|
|
@@ -63,7 +63,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
63
63
|
return;
|
|
64
64
|
} else if (subcommand === "auth") {
|
|
65
65
|
try {
|
|
66
|
-
const { handleAuthCommand } = await Promise.resolve().then(function () { return require('./auth-
|
|
66
|
+
const { handleAuthCommand } = await Promise.resolve().then(function () { return require('./auth-CPfJalJM.cjs'); });
|
|
67
67
|
await handleAuthCommand(args.slice(1));
|
|
68
68
|
} catch (error) {
|
|
69
69
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -75,7 +75,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
75
75
|
return;
|
|
76
76
|
} else if (subcommand === "connect") {
|
|
77
77
|
try {
|
|
78
|
-
const { handleConnectCommand } = await Promise.resolve().then(function () { return require('./connect-
|
|
78
|
+
const { handleConnectCommand } = await Promise.resolve().then(function () { return require('./connect-DQjpjfYn.cjs'); });
|
|
79
79
|
await handleConnectCommand(args.slice(1));
|
|
80
80
|
} catch (error) {
|
|
81
81
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -86,11 +86,11 @@ async function spawnAndWaitForDaemon() {
|
|
|
86
86
|
}
|
|
87
87
|
return;
|
|
88
88
|
} else if (subcommand === "codex") {
|
|
89
|
-
const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-
|
|
90
|
-
const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-
|
|
91
|
-
const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-
|
|
89
|
+
const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-B6vskzfm.cjs'); });
|
|
90
|
+
const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-DWBW6jRF.cjs'); });
|
|
91
|
+
const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-BbMkZhMk.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
|
|
92
92
|
try {
|
|
93
|
-
const { runCodex } = await Promise.resolve().then(function () { return require('./runCodex-
|
|
93
|
+
const { runCodex } = await Promise.resolve().then(function () { return require('./runCodex-Bh519-dW.cjs'); });
|
|
94
94
|
let startedBy = void 0;
|
|
95
95
|
for (let i = 1; i < args.length; i++) {
|
|
96
96
|
if (args[i] === "--started-by") {
|
|
@@ -121,15 +121,15 @@ async function spawnAndWaitForDaemon() {
|
|
|
121
121
|
}
|
|
122
122
|
return;
|
|
123
123
|
} else if (subcommand === "cursor-approval-hook") {
|
|
124
|
-
const { runCursorApprovalHook } = await Promise.resolve().then(function () { return require('./cursorApprovalHook-
|
|
124
|
+
const { runCursorApprovalHook } = await Promise.resolve().then(function () { return require('./cursorApprovalHook-BuDSRM-6.cjs'); });
|
|
125
125
|
await runCursorApprovalHook();
|
|
126
126
|
return;
|
|
127
127
|
} else if (subcommand === "cursor") {
|
|
128
|
-
const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-
|
|
129
|
-
const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-
|
|
130
|
-
const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-
|
|
128
|
+
const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-B6vskzfm.cjs'); });
|
|
129
|
+
const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-DWBW6jRF.cjs'); });
|
|
130
|
+
const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-BbMkZhMk.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
|
|
131
131
|
try {
|
|
132
|
-
const { runCursor } = await Promise.resolve().then(function () { return require('./runCursor-
|
|
132
|
+
const { runCursor } = await Promise.resolve().then(function () { return require('./runCursor-CYbvOqUa.cjs'); });
|
|
133
133
|
let startedBy = void 0;
|
|
134
134
|
let model = null;
|
|
135
135
|
let resumeChatId = null;
|
|
@@ -175,9 +175,9 @@ async function spawnAndWaitForDaemon() {
|
|
|
175
175
|
}
|
|
176
176
|
return;
|
|
177
177
|
} else if (subcommand === "gemini") {
|
|
178
|
-
const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-
|
|
179
|
-
const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-
|
|
180
|
-
const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-
|
|
178
|
+
const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-B6vskzfm.cjs'); });
|
|
179
|
+
const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-DWBW6jRF.cjs'); });
|
|
180
|
+
const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-BbMkZhMk.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
|
|
181
181
|
const geminiSubcommand = args[1];
|
|
182
182
|
if (geminiSubcommand === "model" && args[2] === "set" && args[3]) {
|
|
183
183
|
const modelName = args[3];
|
|
@@ -251,9 +251,9 @@ async function spawnAndWaitForDaemon() {
|
|
|
251
251
|
if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
|
|
252
252
|
const projectId = args[3];
|
|
253
253
|
try {
|
|
254
|
-
const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-
|
|
255
|
-
const { readCredentials: readCredentials2 } = await Promise.resolve().then(function () { return require('./persistence-
|
|
256
|
-
const { ApiClient } = await Promise.resolve().then(function () { return require('./api-
|
|
254
|
+
const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-C__p7EWC.cjs'); });
|
|
255
|
+
const { readCredentials: readCredentials2 } = await Promise.resolve().then(function () { return require('./persistence-CNXsXPLm.cjs'); }).then(function (n) { return n.persistence; });
|
|
256
|
+
const { ApiClient } = await Promise.resolve().then(function () { return require('./api-BGc484qf.cjs'); }).then(function (n) { return n.api; });
|
|
257
257
|
let userEmail = void 0;
|
|
258
258
|
try {
|
|
259
259
|
const credentials = await readCredentials2();
|
|
@@ -284,7 +284,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
284
284
|
}
|
|
285
285
|
if (geminiSubcommand === "project" && args[2] === "get") {
|
|
286
286
|
try {
|
|
287
|
-
const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-
|
|
287
|
+
const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-C__p7EWC.cjs'); });
|
|
288
288
|
const config = readGeminiLocalConfig();
|
|
289
289
|
if (config.googleCloudProject) {
|
|
290
290
|
console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
|
|
@@ -324,7 +324,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
324
324
|
process.exit(0);
|
|
325
325
|
}
|
|
326
326
|
try {
|
|
327
|
-
const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-
|
|
327
|
+
const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-ExHXGZBY.cjs'); });
|
|
328
328
|
let startedBy = void 0;
|
|
329
329
|
for (let i = 1; i < args.length; i++) {
|
|
330
330
|
if (args[i] === "--started-by") {
|
|
@@ -356,7 +356,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
356
356
|
return;
|
|
357
357
|
} else if (subcommand === "update") {
|
|
358
358
|
try {
|
|
359
|
-
const { handleUpdateCommand } = await Promise.resolve().then(function () { return require('./update-
|
|
359
|
+
const { handleUpdateCommand } = await Promise.resolve().then(function () { return require('./update-D-bTjP2k.cjs'); });
|
|
360
360
|
await handleUpdateCommand();
|
|
361
361
|
} catch (error) {
|
|
362
362
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -369,7 +369,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
369
369
|
} else if (subcommand === "logout") {
|
|
370
370
|
console.log(chalk.yellow('Note: "happy logout" is deprecated. Use "happy auth logout" instead.\n'));
|
|
371
371
|
try {
|
|
372
|
-
const { handleAuthCommand } = await Promise.resolve().then(function () { return require('./auth-
|
|
372
|
+
const { handleAuthCommand } = await Promise.resolve().then(function () { return require('./auth-CPfJalJM.cjs'); });
|
|
373
373
|
await handleAuthCommand(["logout"]);
|
|
374
374
|
} catch (error) {
|
|
375
375
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -392,7 +392,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
392
392
|
return;
|
|
393
393
|
} else if (subcommand === "session") {
|
|
394
394
|
try {
|
|
395
|
-
const { handleSessionCommand } = await Promise.resolve().then(function () { return require('./session-
|
|
395
|
+
const { handleSessionCommand } = await Promise.resolve().then(function () { return require('./session-DK9eudJT.cjs'); });
|
|
396
396
|
await handleSessionCommand(args.slice(1));
|
|
397
397
|
} catch (error) {
|
|
398
398
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -404,7 +404,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
404
404
|
return;
|
|
405
405
|
} else if (subcommand === "task") {
|
|
406
406
|
try {
|
|
407
|
-
const { handleTaskCommand } = await Promise.resolve().then(function () { return require('./task
|
|
407
|
+
const { handleTaskCommand } = await Promise.resolve().then(function () { return require('./task--Apxd9oF.cjs'); });
|
|
408
408
|
await handleTaskCommand(args.slice(1));
|
|
409
409
|
} catch (error) {
|
|
410
410
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -452,7 +452,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
452
452
|
return;
|
|
453
453
|
} else if (subcommand === "evidence") {
|
|
454
454
|
try {
|
|
455
|
-
const { handleEvidenceCommand } = await Promise.resolve().then(function () { return require('./evidence-
|
|
455
|
+
const { handleEvidenceCommand } = await Promise.resolve().then(function () { return require('./evidence-CCrpzsTA.cjs'); });
|
|
456
456
|
await handleEvidenceCommand(args.slice(1));
|
|
457
457
|
} catch (error) {
|
|
458
458
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -469,7 +469,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
469
469
|
process.exit(1);
|
|
470
470
|
}
|
|
471
471
|
try {
|
|
472
|
-
const { runMcpServe } = await Promise.resolve().then(function () { return require('./serve-
|
|
472
|
+
const { runMcpServe } = await Promise.resolve().then(function () { return require('./serve-D0IhhySV.cjs'); });
|
|
473
473
|
await runMcpServe();
|
|
474
474
|
} catch (error) {
|
|
475
475
|
process.stderr.write(`[happy-mcp] fatal: ${error instanceof Error ? error.message : "unknown error"}
|
|
@@ -483,7 +483,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
483
483
|
console.error(chalk.red("Error:"), 'Not authenticated. Run "happy auth" first.');
|
|
484
484
|
process.exit(1);
|
|
485
485
|
}
|
|
486
|
-
const { parseSshArgs, runOnDevice, sshDevice, sshPickAndConnect } = await Promise.resolve().then(function () { return require('./ssh-
|
|
486
|
+
const { parseSshArgs, runOnDevice, sshDevice, sshPickAndConnect } = await Promise.resolve().then(function () { return require('./ssh-D31o750w.cjs'); });
|
|
487
487
|
const { target, command, timeoutMs, stream } = parseSshArgs(args.slice(1));
|
|
488
488
|
try {
|
|
489
489
|
if (command) {
|
|
@@ -491,7 +491,9 @@ async function spawnAndWaitForDaemon() {
|
|
|
491
491
|
console.error(chalk.red("Error:"), "Which device? Usage: happy ssh <device> -- <command>");
|
|
492
492
|
process.exit(1);
|
|
493
493
|
}
|
|
494
|
-
|
|
494
|
+
const exitCode = await runOnDevice(credentials, target, command, { timeoutMs, stream });
|
|
495
|
+
await Promise.all([process.stdout, process.stderr].map((out) => new Promise((resolve) => out.write("", resolve))));
|
|
496
|
+
process.exit(exitCode);
|
|
495
497
|
}
|
|
496
498
|
if (!target) {
|
|
497
499
|
process.exit(await sshPickAndConnect(credentials));
|
|
@@ -504,7 +506,7 @@ async function spawnAndWaitForDaemon() {
|
|
|
504
506
|
} else if (subcommand === "device") {
|
|
505
507
|
const deviceSubcommand = args[1];
|
|
506
508
|
if (deviceSubcommand === "push") {
|
|
507
|
-
const { pushToDevice } = await Promise.resolve().then(function () { return require('./push-
|
|
509
|
+
const { pushToDevice } = await Promise.resolve().then(function () { return require('./push-XL6Sb0Vw.cjs'); });
|
|
508
510
|
const credentials = await logger.readCredentials();
|
|
509
511
|
if (!credentials) {
|
|
510
512
|
console.error(chalk.red("Error:"), 'Not authenticated. Run "happy auth" first.');
|
|
@@ -518,8 +520,8 @@ async function spawnAndWaitForDaemon() {
|
|
|
518
520
|
process.exit(await pushToDevice(credentials, target, localPath, remotePath));
|
|
519
521
|
}
|
|
520
522
|
if (deviceSubcommand === "enroll") {
|
|
521
|
-
const { enrollDevice } = await Promise.resolve().then(function () { return require('./enroll-
|
|
522
|
-
const { install } = await Promise.resolve().then(function () { return require('./install-
|
|
523
|
+
const { enrollDevice } = await Promise.resolve().then(function () { return require('./enroll-D9CEuRI_.cjs'); });
|
|
524
|
+
const { install } = await Promise.resolve().then(function () { return require('./install-B0hT_tLv.cjs'); });
|
|
523
525
|
const token = args[2];
|
|
524
526
|
if (!token) {
|
|
525
527
|
console.error(chalk.red("Error:"), "Missing enrollment token. Usage: happy device enroll <token>");
|
|
@@ -549,12 +551,12 @@ ${chalk.bold("Usage:")}
|
|
|
549
551
|
`);
|
|
550
552
|
process.exit(0);
|
|
551
553
|
} else if (subcommand === "daemon") {
|
|
552
|
-
const { startDaemon } = await Promise.resolve().then(function () { return require('./run-
|
|
553
|
-
const { install } = await Promise.resolve().then(function () { return require('./install-
|
|
554
|
-
const { uninstall } = await Promise.resolve().then(function () { return require('./uninstall-
|
|
555
|
-
const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-
|
|
556
|
-
const { getLatestDaemonLog } = await Promise.resolve().then(function () { return require('./persistence-
|
|
557
|
-
const { listDaemonSessions, stopDaemonSession, stopDaemon } = await Promise.resolve().then(function () { return require('./controlClient-
|
|
554
|
+
const { startDaemon } = await Promise.resolve().then(function () { return require('./run-BKfeeheJ.cjs'); }).then(function (n) { return n.run; });
|
|
555
|
+
const { install } = await Promise.resolve().then(function () { return require('./install-B0hT_tLv.cjs'); });
|
|
556
|
+
const { uninstall } = await Promise.resolve().then(function () { return require('./uninstall-CZJcoC06.cjs'); });
|
|
557
|
+
const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-CD46A-_Y.cjs'); });
|
|
558
|
+
const { getLatestDaemonLog } = await Promise.resolve().then(function () { return require('./persistence-CNXsXPLm.cjs'); }).then(function (n) { return n.logger$1; });
|
|
559
|
+
const { listDaemonSessions, stopDaemonSession, stopDaemon } = await Promise.resolve().then(function () { return require('./controlClient-DWBW6jRF.cjs'); });
|
|
558
560
|
const daemonSubcommand = args[1];
|
|
559
561
|
if (daemonSubcommand === "list") {
|
|
560
562
|
try {
|
|
@@ -759,7 +761,7 @@ ${chalk.gray("\u2500".repeat(60))}
|
|
|
759
761
|
${chalk.bold.cyan("Claude Code Options (from `claude --help`):")}
|
|
760
762
|
`);
|
|
761
763
|
try {
|
|
762
|
-
const { claudeCliPath } = await Promise.resolve().then(function () { return require('./claudeLocal-
|
|
764
|
+
const { claudeCliPath } = await Promise.resolve().then(function () { return require('./claudeLocal-CV4fT0Gg.cjs'); }).then(function (n) { return n.claudeLocal$1; });
|
|
763
765
|
const claudeHelp = node_child_process.execFileSync(claudeCliPath, ["--help"], { encoding: "utf8" });
|
|
764
766
|
console.log(claudeHelp);
|
|
765
767
|
} catch (e) {
|
|
@@ -789,10 +791,10 @@ ${chalk.bold.cyan("Claude Code Options (from `claude --help`):")}
|
|
|
789
791
|
}
|
|
790
792
|
process.exit(0);
|
|
791
793
|
}
|
|
792
|
-
const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-
|
|
793
|
-
const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-
|
|
794
|
-
const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-
|
|
795
|
-
const { runClaude } = await Promise.resolve().then(function () { return require('./runClaude-
|
|
794
|
+
const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-B6vskzfm.cjs'); });
|
|
795
|
+
const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-DWBW6jRF.cjs'); });
|
|
796
|
+
const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-BbMkZhMk.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
|
|
797
|
+
const { runClaude } = await Promise.resolve().then(function () { return require('./runClaude-DDsG7eMR.cjs'); });
|
|
796
798
|
const {
|
|
797
799
|
credentials
|
|
798
800
|
} = await authAndSetupMachineIfNeeded();
|
|
@@ -866,7 +868,7 @@ ${chalk.bold("Examples:")}
|
|
|
866
868
|
}
|
|
867
869
|
console.log(chalk.blue("\u{1F4F1} Sending push notification..."));
|
|
868
870
|
try {
|
|
869
|
-
const { ApiClient } = await Promise.resolve().then(function () { return require('./api-
|
|
871
|
+
const { ApiClient } = await Promise.resolve().then(function () { return require('./api-BGc484qf.cjs'); }).then(function (n) { return n.api; });
|
|
870
872
|
const api = await ApiClient.create(credentials);
|
|
871
873
|
const notificationTitle = title || "Happy AI";
|
|
872
874
|
api.push().sendToAllDevices(
|