@zhigang1992/happy-cli 0.13.1 → 0.13.2
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/README.md +3 -3
- package/dist/{index-BRJ9n6X5.cjs → index-DgAw_5N1.cjs} +52 -19
- package/dist/{index-CGAeCOSR.mjs → index-Uj38Af20.mjs} +51 -18
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/lib.cjs +1 -1
- package/dist/lib.mjs +1 -1
- package/dist/{list-DHjjInfx.mjs → list-CrgHUL0f.mjs} +1 -1
- package/dist/{list-CtFTdtWH.cjs → list-DTZJgObu.cjs} +1 -1
- package/dist/{prompt-DMPO33Q2.cjs → prompt-DA5MCiiO.cjs} +1 -1
- package/dist/{prompt-BdW97nWA.mjs → prompt-DQg5bz0P.mjs} +1 -1
- package/dist/{runCodex-c_cSo6EI.mjs → runCodex-C6yOfirQ.mjs} +2 -2
- package/dist/{runCodex-Djz88-rF.cjs → runCodex-wtcLFv8_.cjs} +2 -2
- package/dist/{types-CPlDgP66.cjs → types-Cd6JAaoe.cjs} +4 -4
- package/dist/{types-DQi1uyzQ.mjs → types-DTrmDfm5.mjs} +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
## Fork Changes
|
|
8
8
|
|
|
9
9
|
- Renamed package to `@zhigang1992/happy-cli` for personal npm publishing
|
|
10
|
-
- Changed default server URLs to `happy-server.
|
|
10
|
+
- Changed default server URLs to `happy-server.innopals.com` and `happy.innopals.com`
|
|
11
11
|
- Switched from yarn to bun
|
|
12
12
|
- Lazy download of tools to reduce package size (~110MB to ~186KB)
|
|
13
13
|
- Added image attachment support in messages
|
|
@@ -59,8 +59,8 @@ This will:
|
|
|
59
59
|
|
|
60
60
|
## Environment Variables
|
|
61
61
|
|
|
62
|
-
- `HAPPY_SERVER_URL` - Custom server URL (default: https://happy-server.
|
|
63
|
-
- `HAPPY_WEBAPP_URL` - Custom web app URL (default: https://happy.
|
|
62
|
+
- `HAPPY_SERVER_URL` - Custom server URL (default: https://happy-server.innopals.com)
|
|
63
|
+
- `HAPPY_WEBAPP_URL` - Custom web app URL (default: https://happy.innopals.com)
|
|
64
64
|
- `HAPPY_HOME_DIR` - Custom home directory for Happy data (default: ~/.happy)
|
|
65
65
|
- `HAPPY_DISABLE_CAFFEINATE` - Disable macOS sleep prevention (set to `true`, `1`, or `yes`)
|
|
66
66
|
- `HAPPY_EXPERIMENTAL` - Enable experimental features (set to `true`, `1`, or `yes`)
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
4
|
var os = require('node:os');
|
|
5
5
|
var node_crypto = require('node:crypto');
|
|
6
|
-
var types = require('./types-
|
|
6
|
+
var types = require('./types-Cd6JAaoe.cjs');
|
|
7
7
|
var node_child_process = require('node:child_process');
|
|
8
8
|
var node_path = require('node:path');
|
|
9
9
|
var node_readline = require('node:readline');
|
|
@@ -1184,7 +1184,7 @@ class AbortError extends Error {
|
|
|
1184
1184
|
}
|
|
1185
1185
|
}
|
|
1186
1186
|
|
|
1187
|
-
const __filename$1 = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-
|
|
1187
|
+
const __filename$1 = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-DgAw_5N1.cjs', document.baseURI).href)));
|
|
1188
1188
|
const __dirname$1 = node_path.join(__filename$1, "..");
|
|
1189
1189
|
function getGlobalClaudeVersion() {
|
|
1190
1190
|
try {
|
|
@@ -2097,6 +2097,45 @@ Echo message: ${echoMessage}` : "");
|
|
|
2097
2097
|
prompt: messages,
|
|
2098
2098
|
options: sdkOptions
|
|
2099
2099
|
});
|
|
2100
|
+
let waitingForNextMessage = false;
|
|
2101
|
+
let messagePusherStopped = false;
|
|
2102
|
+
const messagePusherTask = (async () => {
|
|
2103
|
+
try {
|
|
2104
|
+
while (!messagePusherStopped) {
|
|
2105
|
+
if (!waitingForNextMessage) {
|
|
2106
|
+
await new Promise((resolve2) => {
|
|
2107
|
+
const checkInterval = setInterval(() => {
|
|
2108
|
+
if (waitingForNextMessage || messagePusherStopped) {
|
|
2109
|
+
clearInterval(checkInterval);
|
|
2110
|
+
resolve2();
|
|
2111
|
+
}
|
|
2112
|
+
}, 10);
|
|
2113
|
+
});
|
|
2114
|
+
}
|
|
2115
|
+
if (messagePusherStopped) {
|
|
2116
|
+
break;
|
|
2117
|
+
}
|
|
2118
|
+
types.logger.debug("[claudeRemote] Message pusher waiting for next message");
|
|
2119
|
+
const next = await opts.nextMessage();
|
|
2120
|
+
if (!next) {
|
|
2121
|
+
types.logger.debug("[claudeRemote] No more messages, ending message stream");
|
|
2122
|
+
messages.end();
|
|
2123
|
+
break;
|
|
2124
|
+
}
|
|
2125
|
+
types.logger.debug("[claudeRemote] Message pusher received new message, pushing to SDK");
|
|
2126
|
+
mode = next.mode;
|
|
2127
|
+
const nextContent = await buildMessageContent(next.message, next.mode.imageRefs);
|
|
2128
|
+
messages.push({
|
|
2129
|
+
type: "user",
|
|
2130
|
+
uuid: node_crypto.randomUUID(),
|
|
2131
|
+
message: { role: "user", content: nextContent }
|
|
2132
|
+
});
|
|
2133
|
+
waitingForNextMessage = false;
|
|
2134
|
+
}
|
|
2135
|
+
} catch (e) {
|
|
2136
|
+
types.logger.debug("[claudeRemote] Message pusher error:", e);
|
|
2137
|
+
}
|
|
2138
|
+
})();
|
|
2100
2139
|
updateThinking(true);
|
|
2101
2140
|
try {
|
|
2102
2141
|
types.logger.debug(`[claudeRemote] Starting to iterate over response`);
|
|
@@ -2116,7 +2155,7 @@ Echo message: ${echoMessage}` : "");
|
|
|
2116
2155
|
}
|
|
2117
2156
|
if (message.type === "result") {
|
|
2118
2157
|
updateThinking(false);
|
|
2119
|
-
types.logger.debug("[claudeRemote] Result received
|
|
2158
|
+
types.logger.debug("[claudeRemote] Result received");
|
|
2120
2159
|
if (isCompactCommand) {
|
|
2121
2160
|
types.logger.debug("[claudeRemote] Compaction completed");
|
|
2122
2161
|
if (opts.onCompletionEvent) {
|
|
@@ -2125,19 +2164,7 @@ Echo message: ${echoMessage}` : "");
|
|
|
2125
2164
|
isCompactCommand = false;
|
|
2126
2165
|
}
|
|
2127
2166
|
opts.onReady();
|
|
2128
|
-
|
|
2129
|
-
if (!next) {
|
|
2130
|
-
messages.end();
|
|
2131
|
-
return;
|
|
2132
|
-
}
|
|
2133
|
-
mode = next.mode;
|
|
2134
|
-
const nextContent = await buildMessageContent(next.message, next.mode.imageRefs);
|
|
2135
|
-
messages.push({
|
|
2136
|
-
type: "user",
|
|
2137
|
-
uuid: node_crypto.randomUUID(),
|
|
2138
|
-
// UUID is required for Claude CLI streaming mode
|
|
2139
|
-
message: { role: "user", content: nextContent }
|
|
2140
|
-
});
|
|
2167
|
+
waitingForNextMessage = true;
|
|
2141
2168
|
}
|
|
2142
2169
|
if (message.type === "user") {
|
|
2143
2170
|
const msg = message;
|
|
@@ -2145,6 +2172,7 @@ Echo message: ${echoMessage}` : "");
|
|
|
2145
2172
|
for (let c of msg.message.content) {
|
|
2146
2173
|
if (c.type === "tool_result" && c.tool_use_id && opts.isAborted(c.tool_use_id)) {
|
|
2147
2174
|
types.logger.debug("[claudeRemote] Tool aborted, exiting claudeRemote");
|
|
2175
|
+
messagePusherStopped = true;
|
|
2148
2176
|
return;
|
|
2149
2177
|
}
|
|
2150
2178
|
}
|
|
@@ -2159,6 +2187,11 @@ Echo message: ${echoMessage}` : "");
|
|
|
2159
2187
|
}
|
|
2160
2188
|
} finally {
|
|
2161
2189
|
updateThinking(false);
|
|
2190
|
+
messagePusherStopped = true;
|
|
2191
|
+
await Promise.race([
|
|
2192
|
+
messagePusherTask,
|
|
2193
|
+
new Promise((resolve2) => setTimeout(resolve2, 100))
|
|
2194
|
+
]);
|
|
2162
2195
|
}
|
|
2163
2196
|
}
|
|
2164
2197
|
|
|
@@ -6985,7 +7018,7 @@ async function handleConnectVendor(vendor, displayName) {
|
|
|
6985
7018
|
return;
|
|
6986
7019
|
} else if (subcommand === "codex") {
|
|
6987
7020
|
try {
|
|
6988
|
-
const { runCodex } = await Promise.resolve().then(function () { return require('./runCodex-
|
|
7021
|
+
const { runCodex } = await Promise.resolve().then(function () { return require('./runCodex-wtcLFv8_.cjs'); });
|
|
6989
7022
|
let startedBy = void 0;
|
|
6990
7023
|
for (let i = 1; i < args.length; i++) {
|
|
6991
7024
|
if (args[i] === "--started-by") {
|
|
@@ -7030,7 +7063,7 @@ async function handleConnectVendor(vendor, displayName) {
|
|
|
7030
7063
|
} else if (subcommand === "list") {
|
|
7031
7064
|
try {
|
|
7032
7065
|
const { credentials } = await authAndSetupMachineIfNeeded();
|
|
7033
|
-
const { listSessions } = await Promise.resolve().then(function () { return require('./list-
|
|
7066
|
+
const { listSessions } = await Promise.resolve().then(function () { return require('./list-DTZJgObu.cjs'); });
|
|
7034
7067
|
let sessionId;
|
|
7035
7068
|
let titleFilter;
|
|
7036
7069
|
let recentMsgs;
|
|
@@ -7132,7 +7165,7 @@ Examples:
|
|
|
7132
7165
|
process.exit(1);
|
|
7133
7166
|
}
|
|
7134
7167
|
const { credentials } = await authAndSetupMachineIfNeeded();
|
|
7135
|
-
const { promptSession } = await Promise.resolve().then(function () { return require('./prompt-
|
|
7168
|
+
const { promptSession } = await Promise.resolve().then(function () { return require('./prompt-DA5MCiiO.cjs'); });
|
|
7136
7169
|
await promptSession(credentials, sessionId, promptText, timeoutMinutes ?? void 0);
|
|
7137
7170
|
} catch (error) {
|
|
7138
7171
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import os$1, { homedir } from 'node:os';
|
|
3
3
|
import { randomUUID, randomBytes, createHmac } from 'node:crypto';
|
|
4
|
-
import { l as logger, p as projectPath, j as backoff, k as delay, R as RawJSONLinesSchema, m as AsyncLock, c as configuration, n as readDaemonState, o as clearDaemonState, i as packageJson, r as readSettings, q as readCredentials, g as encodeBase64, u as updateSettings, s as encodeBase64Url, d as decodeBase64, w as writeCredentialsLegacy, t as writeCredentialsDataKey, v as acquireDaemonLock, x as writeDaemonState, A as ApiClient, y as releaseDaemonLock, z as authChallenge, B as clearCredentials, C as clearMachineId, D as getLatestDaemonLog } from './types-
|
|
4
|
+
import { l as logger, p as projectPath, j as backoff, k as delay, R as RawJSONLinesSchema, m as AsyncLock, c as configuration, n as readDaemonState, o as clearDaemonState, i as packageJson, r as readSettings, q as readCredentials, g as encodeBase64, u as updateSettings, s as encodeBase64Url, d as decodeBase64, w as writeCredentialsLegacy, t as writeCredentialsDataKey, v as acquireDaemonLock, x as writeDaemonState, A as ApiClient, y as releaseDaemonLock, z as authChallenge, B as clearCredentials, C as clearMachineId, D as getLatestDaemonLog } from './types-DTrmDfm5.mjs';
|
|
5
5
|
import { spawn, execSync, exec as exec$1, execFileSync } from 'node:child_process';
|
|
6
6
|
import { resolve, join, extname, basename as basename$1 } from 'node:path';
|
|
7
7
|
import { createInterface } from 'node:readline';
|
|
@@ -2074,6 +2074,45 @@ Echo message: ${echoMessage}` : "");
|
|
|
2074
2074
|
prompt: messages,
|
|
2075
2075
|
options: sdkOptions
|
|
2076
2076
|
});
|
|
2077
|
+
let waitingForNextMessage = false;
|
|
2078
|
+
let messagePusherStopped = false;
|
|
2079
|
+
const messagePusherTask = (async () => {
|
|
2080
|
+
try {
|
|
2081
|
+
while (!messagePusherStopped) {
|
|
2082
|
+
if (!waitingForNextMessage) {
|
|
2083
|
+
await new Promise((resolve2) => {
|
|
2084
|
+
const checkInterval = setInterval(() => {
|
|
2085
|
+
if (waitingForNextMessage || messagePusherStopped) {
|
|
2086
|
+
clearInterval(checkInterval);
|
|
2087
|
+
resolve2();
|
|
2088
|
+
}
|
|
2089
|
+
}, 10);
|
|
2090
|
+
});
|
|
2091
|
+
}
|
|
2092
|
+
if (messagePusherStopped) {
|
|
2093
|
+
break;
|
|
2094
|
+
}
|
|
2095
|
+
logger.debug("[claudeRemote] Message pusher waiting for next message");
|
|
2096
|
+
const next = await opts.nextMessage();
|
|
2097
|
+
if (!next) {
|
|
2098
|
+
logger.debug("[claudeRemote] No more messages, ending message stream");
|
|
2099
|
+
messages.end();
|
|
2100
|
+
break;
|
|
2101
|
+
}
|
|
2102
|
+
logger.debug("[claudeRemote] Message pusher received new message, pushing to SDK");
|
|
2103
|
+
mode = next.mode;
|
|
2104
|
+
const nextContent = await buildMessageContent(next.message, next.mode.imageRefs);
|
|
2105
|
+
messages.push({
|
|
2106
|
+
type: "user",
|
|
2107
|
+
uuid: randomUUID(),
|
|
2108
|
+
message: { role: "user", content: nextContent }
|
|
2109
|
+
});
|
|
2110
|
+
waitingForNextMessage = false;
|
|
2111
|
+
}
|
|
2112
|
+
} catch (e) {
|
|
2113
|
+
logger.debug("[claudeRemote] Message pusher error:", e);
|
|
2114
|
+
}
|
|
2115
|
+
})();
|
|
2077
2116
|
updateThinking(true);
|
|
2078
2117
|
try {
|
|
2079
2118
|
logger.debug(`[claudeRemote] Starting to iterate over response`);
|
|
@@ -2093,7 +2132,7 @@ Echo message: ${echoMessage}` : "");
|
|
|
2093
2132
|
}
|
|
2094
2133
|
if (message.type === "result") {
|
|
2095
2134
|
updateThinking(false);
|
|
2096
|
-
logger.debug("[claudeRemote] Result received
|
|
2135
|
+
logger.debug("[claudeRemote] Result received");
|
|
2097
2136
|
if (isCompactCommand) {
|
|
2098
2137
|
logger.debug("[claudeRemote] Compaction completed");
|
|
2099
2138
|
if (opts.onCompletionEvent) {
|
|
@@ -2102,19 +2141,7 @@ Echo message: ${echoMessage}` : "");
|
|
|
2102
2141
|
isCompactCommand = false;
|
|
2103
2142
|
}
|
|
2104
2143
|
opts.onReady();
|
|
2105
|
-
|
|
2106
|
-
if (!next) {
|
|
2107
|
-
messages.end();
|
|
2108
|
-
return;
|
|
2109
|
-
}
|
|
2110
|
-
mode = next.mode;
|
|
2111
|
-
const nextContent = await buildMessageContent(next.message, next.mode.imageRefs);
|
|
2112
|
-
messages.push({
|
|
2113
|
-
type: "user",
|
|
2114
|
-
uuid: randomUUID(),
|
|
2115
|
-
// UUID is required for Claude CLI streaming mode
|
|
2116
|
-
message: { role: "user", content: nextContent }
|
|
2117
|
-
});
|
|
2144
|
+
waitingForNextMessage = true;
|
|
2118
2145
|
}
|
|
2119
2146
|
if (message.type === "user") {
|
|
2120
2147
|
const msg = message;
|
|
@@ -2122,6 +2149,7 @@ Echo message: ${echoMessage}` : "");
|
|
|
2122
2149
|
for (let c of msg.message.content) {
|
|
2123
2150
|
if (c.type === "tool_result" && c.tool_use_id && opts.isAborted(c.tool_use_id)) {
|
|
2124
2151
|
logger.debug("[claudeRemote] Tool aborted, exiting claudeRemote");
|
|
2152
|
+
messagePusherStopped = true;
|
|
2125
2153
|
return;
|
|
2126
2154
|
}
|
|
2127
2155
|
}
|
|
@@ -2136,6 +2164,11 @@ Echo message: ${echoMessage}` : "");
|
|
|
2136
2164
|
}
|
|
2137
2165
|
} finally {
|
|
2138
2166
|
updateThinking(false);
|
|
2167
|
+
messagePusherStopped = true;
|
|
2168
|
+
await Promise.race([
|
|
2169
|
+
messagePusherTask,
|
|
2170
|
+
new Promise((resolve2) => setTimeout(resolve2, 100))
|
|
2171
|
+
]);
|
|
2139
2172
|
}
|
|
2140
2173
|
}
|
|
2141
2174
|
|
|
@@ -6962,7 +6995,7 @@ async function handleConnectVendor(vendor, displayName) {
|
|
|
6962
6995
|
return;
|
|
6963
6996
|
} else if (subcommand === "codex") {
|
|
6964
6997
|
try {
|
|
6965
|
-
const { runCodex } = await import('./runCodex-
|
|
6998
|
+
const { runCodex } = await import('./runCodex-C6yOfirQ.mjs');
|
|
6966
6999
|
let startedBy = void 0;
|
|
6967
7000
|
for (let i = 1; i < args.length; i++) {
|
|
6968
7001
|
if (args[i] === "--started-by") {
|
|
@@ -7007,7 +7040,7 @@ async function handleConnectVendor(vendor, displayName) {
|
|
|
7007
7040
|
} else if (subcommand === "list") {
|
|
7008
7041
|
try {
|
|
7009
7042
|
const { credentials } = await authAndSetupMachineIfNeeded();
|
|
7010
|
-
const { listSessions } = await import('./list-
|
|
7043
|
+
const { listSessions } = await import('./list-CrgHUL0f.mjs');
|
|
7011
7044
|
let sessionId;
|
|
7012
7045
|
let titleFilter;
|
|
7013
7046
|
let recentMsgs;
|
|
@@ -7109,7 +7142,7 @@ Examples:
|
|
|
7109
7142
|
process.exit(1);
|
|
7110
7143
|
}
|
|
7111
7144
|
const { credentials } = await authAndSetupMachineIfNeeded();
|
|
7112
|
-
const { promptSession } = await import('./prompt-
|
|
7145
|
+
const { promptSession } = await import('./prompt-DQg5bz0P.mjs');
|
|
7113
7146
|
await promptSession(credentials, sessionId, promptText, timeoutMinutes ?? void 0);
|
|
7114
7147
|
} catch (error) {
|
|
7115
7148
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
package/dist/index.cjs
CHANGED
package/dist/index.mjs
CHANGED
package/dist/lib.cjs
CHANGED
package/dist/lib.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema, c as configuration, l as logger } from './types-
|
|
1
|
+
export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema, c as configuration, l as logger } from './types-DTrmDfm5.mjs';
|
|
2
2
|
import 'axios';
|
|
3
3
|
import 'chalk';
|
|
4
4
|
import 'fs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as configuration, l as logger, d as decodeBase64, b as decrypt, f as formatTimeAgo, e as libsodiumDecryptFromPublicKey } from './types-
|
|
1
|
+
import { c as configuration, l as logger, d as decodeBase64, b as decrypt, f as formatTimeAgo, e as libsodiumDecryptFromPublicKey } from './types-DTrmDfm5.mjs';
|
|
2
2
|
import axios from 'axios';
|
|
3
3
|
import { existsSync, readdirSync, statSync, readFileSync } from 'fs';
|
|
4
4
|
import { join } from 'path';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as configuration, b as decrypt, d as decodeBase64, l as logger, g as encodeBase64, h as encrypt } from './types-
|
|
1
|
+
import { c as configuration, b as decrypt, d as decodeBase64, l as logger, g as encodeBase64, h as encrypt } from './types-DTrmDfm5.mjs';
|
|
2
2
|
import axios from 'axios';
|
|
3
3
|
import { io } from 'socket.io-client';
|
|
4
4
|
import 'chalk';
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { useStdout, useInput, Box, Text, render } from 'ink';
|
|
2
2
|
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
3
|
-
import { l as logger, A as ApiClient, r as readSettings, p as projectPath, c as configuration, i as packageJson } from './types-
|
|
3
|
+
import { l as logger, A as ApiClient, r as readSettings, p as projectPath, c as configuration, i as packageJson } from './types-DTrmDfm5.mjs';
|
|
4
4
|
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
5
5
|
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
6
6
|
import { z } from 'zod';
|
|
7
7
|
import { ElicitRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
8
8
|
import { execSync } from 'child_process';
|
|
9
9
|
import { randomUUID } from 'node:crypto';
|
|
10
|
-
import { i as initialMachineMetadata, n as notifyDaemonSessionStarted, M as MessageQueue2, h as hashObject, r as registerKillSessionHandler, a as MessageBuffer, s as startHappyServer, t as trimIdent, b as stopCaffeinate } from './index-
|
|
10
|
+
import { i as initialMachineMetadata, n as notifyDaemonSessionStarted, M as MessageQueue2, h as hashObject, r as registerKillSessionHandler, a as MessageBuffer, s as startHappyServer, t as trimIdent, b as stopCaffeinate } from './index-Uj38Af20.mjs';
|
|
11
11
|
import os from 'node:os';
|
|
12
12
|
import { resolve, join } from 'node:path';
|
|
13
13
|
import fs from 'node:fs';
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
var ink = require('ink');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var types = require('./types-
|
|
5
|
+
var types = require('./types-Cd6JAaoe.cjs');
|
|
6
6
|
var index_js = require('@modelcontextprotocol/sdk/client/index.js');
|
|
7
7
|
var stdio_js = require('@modelcontextprotocol/sdk/client/stdio.js');
|
|
8
8
|
var z = require('zod');
|
|
9
9
|
var types_js = require('@modelcontextprotocol/sdk/types.js');
|
|
10
10
|
var child_process = require('child_process');
|
|
11
11
|
var node_crypto = require('node:crypto');
|
|
12
|
-
var index = require('./index-
|
|
12
|
+
var index = require('./index-DgAw_5N1.cjs');
|
|
13
13
|
var os = require('node:os');
|
|
14
14
|
var node_path = require('node:path');
|
|
15
15
|
var fs = require('node:fs');
|
|
@@ -41,7 +41,7 @@ function _interopNamespaceDefault(e) {
|
|
|
41
41
|
var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
|
|
42
42
|
|
|
43
43
|
var name = "@zhigang1992/happy-cli";
|
|
44
|
-
var version = "0.13.
|
|
44
|
+
var version = "0.13.2";
|
|
45
45
|
var description = "Mobile and Web client for Claude Code and Codex";
|
|
46
46
|
var author = "Kirill Dubovitskiy";
|
|
47
47
|
var license = "MIT";
|
|
@@ -202,8 +202,8 @@ class Configuration {
|
|
|
202
202
|
isExperimentalEnabled;
|
|
203
203
|
disableCaffeinate;
|
|
204
204
|
constructor() {
|
|
205
|
-
this.serverUrl = process.env.HAPPY_SERVER_URL || "https://happy-server.
|
|
206
|
-
this.webappUrl = process.env.HAPPY_WEBAPP_URL || "https://happy.
|
|
205
|
+
this.serverUrl = process.env.HAPPY_SERVER_URL || "https://happy-server.innopals.com";
|
|
206
|
+
this.webappUrl = process.env.HAPPY_WEBAPP_URL || "https://happy.innopals.com";
|
|
207
207
|
const args = process.argv.slice(2);
|
|
208
208
|
this.isDaemonProcess = args.length >= 2 && args[0] === "daemon" && args[1] === "start-sync";
|
|
209
209
|
if (process.env.HAPPY_HOME_DIR) {
|
|
@@ -1150,7 +1150,7 @@ class RpcHandlerManager {
|
|
|
1150
1150
|
}
|
|
1151
1151
|
}
|
|
1152
1152
|
|
|
1153
|
-
const __dirname$1 = path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('types-
|
|
1153
|
+
const __dirname$1 = path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('types-Cd6JAaoe.cjs', document.baseURI).href))));
|
|
1154
1154
|
function projectPath() {
|
|
1155
1155
|
const path$1 = path.resolve(__dirname$1, "..");
|
|
1156
1156
|
return path$1;
|
|
@@ -20,7 +20,7 @@ import { fileURLToPath } from 'url';
|
|
|
20
20
|
import { Expo } from 'expo-server-sdk';
|
|
21
21
|
|
|
22
22
|
var name = "@zhigang1992/happy-cli";
|
|
23
|
-
var version = "0.13.
|
|
23
|
+
var version = "0.13.2";
|
|
24
24
|
var description = "Mobile and Web client for Claude Code and Codex";
|
|
25
25
|
var author = "Kirill Dubovitskiy";
|
|
26
26
|
var license = "MIT";
|
|
@@ -181,8 +181,8 @@ class Configuration {
|
|
|
181
181
|
isExperimentalEnabled;
|
|
182
182
|
disableCaffeinate;
|
|
183
183
|
constructor() {
|
|
184
|
-
this.serverUrl = process.env.HAPPY_SERVER_URL || "https://happy-server.
|
|
185
|
-
this.webappUrl = process.env.HAPPY_WEBAPP_URL || "https://happy.
|
|
184
|
+
this.serverUrl = process.env.HAPPY_SERVER_URL || "https://happy-server.innopals.com";
|
|
185
|
+
this.webappUrl = process.env.HAPPY_WEBAPP_URL || "https://happy.innopals.com";
|
|
186
186
|
const args = process.argv.slice(2);
|
|
187
187
|
this.isDaemonProcess = args.length >= 2 && args[0] === "daemon" && args[1] === "start-sync";
|
|
188
188
|
if (process.env.HAPPY_HOME_DIR) {
|