@zonease/happy 0.6.44 → 0.6.45
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-Ct7Z1lwF.cjs → api-CPQUJQGJ.cjs} +3 -3
- package/dist/{api-D3j3YL3m.mjs → api-Cj4RF4ga.mjs} +2 -2
- package/dist/{auth-W1aK_a-P.cjs → auth-Bk9bRj3Q.cjs} +4 -4
- package/dist/{auth-DPe89SQx.mjs → auth-BxRfxsPn.mjs} +2 -2
- package/dist/{auth-C2ZyAGMu.mjs → auth-Byjbkudh.mjs} +4 -4
- package/dist/{auth-B9kOli6i.cjs → auth-Du-LmcLH.cjs} +2 -2
- package/dist/{browser-BPEhi6te.cjs → browser-CBrNk2b6.cjs} +1 -1
- package/dist/{browser-Byx5gq-W.mjs → browser-CrNqwWO0.mjs} +1 -1
- package/dist/{claudeLocal-BtxBYzs7.mjs → claudeLocal-CR1aG4FT.mjs} +1 -1
- package/dist/{claudeLocal-CcarNVE9.cjs → claudeLocal-DMn1kiJq.cjs} +1 -1
- package/dist/codex/happyMcpStdioBridge.cjs +8 -0
- package/dist/codex/happyMcpStdioBridge.mjs +8 -0
- package/dist/{config-DJLOlgjr.mjs → config-DIUIjSc3.mjs} +1 -1
- package/dist/{config-Djr2JMWO.cjs → config-DfXlAE9f.cjs} +1 -1
- package/dist/{connect-PrUuHNLU.mjs → connect-Blv2AOQ7.mjs} +4 -4
- package/dist/{connect-rcgRx9US.cjs → connect-DxKG4c89.cjs} +4 -4
- package/dist/{controlClient-FDsMeGVn.cjs → controlClient-Aga5KOuL.cjs} +1 -1
- package/dist/{controlClient-DSiES8Un.mjs → controlClient-D-5BGcGC.mjs} +1 -1
- package/dist/{cursorApprovalHook-CTJiiPO6.cjs → cursorApprovalHook-DhdW7SxP.cjs} +2 -2
- package/dist/{cursorApprovalHook-DGYeNaLe.mjs → cursorApprovalHook-G462ilpH.mjs} +2 -2
- package/dist/{cursorApprovalServer-fjPBXSAb.mjs → cursorApprovalServer-CajHEZIy.mjs} +1 -1
- package/dist/{cursorApprovalServer-C_wqI7wm.cjs → cursorApprovalServer-DJDjSGu1.cjs} +1 -1
- package/dist/{deviceKeys-BYHzWSyg.mjs → deviceKeys-DL_YhAVs.mjs} +2 -2
- package/dist/{deviceKeys-DPut1U07.cjs → deviceKeys-DjItabvw.cjs} +2 -2
- package/dist/{doctor-BA28TuMy.mjs → doctor-DpCWRLts.mjs} +2 -2
- package/dist/{doctor-B_W7odmC.cjs → doctor-s5r5tBV2.cjs} +2 -2
- package/dist/{downloadImage-B7MKUI0u.cjs → downloadImage-AYf-3ZYW.cjs} +1 -1
- package/dist/{downloadImage-DKWzC11M.mjs → downloadImage-aU6-_LTd.mjs} +1 -1
- package/dist/{enroll-Bc3Lke1H.mjs → enroll-AafyH7YB.mjs} +3 -3
- package/dist/{enroll-Blqx_Kg8.cjs → enroll-DDmZIfwr.cjs} +3 -3
- package/dist/{evidence-jfqT04hc.cjs → evidence-BeL77p_3.cjs} +1 -1
- package/dist/{evidence-D8nvQ8pQ.mjs → evidence-s4HSdwJW.mjs} +1 -1
- package/dist/{formatImageMessage-CZeSzoFO.cjs → formatImageMessage-D09-zSuq.cjs} +1 -1
- package/dist/{formatImageMessage-BFWnadBR.mjs → formatImageMessage-X7lBbNk9.mjs} +1 -1
- package/dist/index.cjs +46 -46
- package/dist/index.mjs +46 -46
- package/dist/{install-nJv8rYWA.cjs → install-CUhg7JSa.cjs} +2 -2
- package/dist/{install-DFmp8KKp.cjs → install-CV4tyU-f.cjs} +1 -1
- package/dist/{install-ChK8Eb58.mjs → install-D3-4H76L.mjs} +2 -2
- package/dist/{install-BvuadnKW.mjs → install-MLAZRCd1.mjs} +1 -1
- package/dist/lib.cjs +3 -3
- package/dist/lib.mjs +3 -3
- package/dist/{loadableToolOutput-D6crYom_.mjs → loadableToolOutput-B8h8vRAi.mjs} +2 -2
- package/dist/{loadableToolOutput-CqMfcEh7.cjs → loadableToolOutput-CyxrSX6o.cjs} +2 -2
- package/dist/{persistence-DOgft4tZ.cjs → persistence-C8YmO6e-.cjs} +1 -1
- package/dist/{persistence-BXtirP1k.mjs → persistence-CIuIRPwE.mjs} +1 -1
- package/dist/{push-DykEVhRR.cjs → push-C3zA8d8v.cjs} +6 -6
- package/dist/{push-188EjPTP.mjs → push-CmNOCsuP.mjs} +6 -6
- package/dist/{registerKillSessionHandler-6loIZYD9.mjs → registerKillSessionHandler-CH_7VXKc.mjs} +63 -5
- package/dist/{registerKillSessionHandler-ks8iPY9a.cjs → registerKillSessionHandler-LeIqHfbo.cjs} +63 -5
- package/dist/{run-DSJ7IIWW.cjs → run-0LQDK84Z.cjs} +8 -8
- package/dist/{run-Dp4_De-r.mjs → run-C4WAd7tO.mjs} +8 -8
- package/dist/{runClaude-C3be35z0.cjs → runClaude-C35zHmK5.cjs} +16 -16
- package/dist/{runClaude-gj4urJvB.mjs → runClaude-CUKs1uIM.mjs} +15 -15
- package/dist/{runCodex-p_fToj9T.cjs → runCodex-DqH5zG0r.cjs} +15 -15
- package/dist/{runCodex-DRZidxNB.mjs → runCodex-DyZ2jjPq.mjs} +15 -15
- package/dist/{runCursor-CJlqkSYR.cjs → runCursor-CUYlNNzB.cjs} +14 -14
- package/dist/{runCursor-SFd9G7X_.mjs → runCursor-DBJr4Grx.mjs} +14 -14
- package/dist/{runGemini-lxvXq70R.cjs → runGemini-DR8URN73.cjs} +21 -17
- package/dist/{runGemini-BOsfh6dX.mjs → runGemini-wXzzfjlb.mjs} +21 -17
- package/dist/{runOneShot-CtzlkF1l.mjs → runOneShot-C7rpjuvK.mjs} +2 -2
- package/dist/{runOneShot-BExFkHmA.cjs → runOneShot-CyQgMHdu.cjs} +2 -2
- package/dist/{serve-DfvSXAD2.mjs → serve-9sPqPPfs.mjs} +6 -6
- package/dist/{serve-Bl1Caf6x.cjs → serve-CLUZny1h.cjs} +6 -6
- package/dist/{session--R6FqsxL.cjs → session-DsK6TYKl.cjs} +5 -5
- package/dist/{session-BSzNJiAb.mjs → session-DwFwW1If.mjs} +5 -5
- package/dist/{sessionKeyCache-CVkksG68.cjs → sessionKeyCache-CCCCQahC.cjs} +1 -1
- package/dist/{sessionKeyCache-DYiCIvYC.mjs → sessionKeyCache-Jman_FzK.mjs} +1 -1
- package/dist/{sessionList-D3pCseut.mjs → sessionList-CRAr1LIi.mjs} +2 -2
- package/dist/{sessionList-C1q9fy5j.cjs → sessionList-jb1iwUO8.cjs} +2 -2
- package/dist/{sessionSummary-WpOlgXe1.mjs → sessionSummary-By9LYnr1.mjs} +3 -3
- package/dist/{sessionSummary-CUZxEBEZ.cjs → sessionSummary-C4ttdYkc.cjs} +3 -3
- package/dist/{setupOfflineReconnection-BeWF3SGN.mjs → setupOfflineReconnection-B8LXjrYU.mjs} +3 -3
- package/dist/{setupOfflineReconnection-CixoiWTS.cjs → setupOfflineReconnection-EeK8Zibv.cjs} +3 -3
- package/dist/{spawnHappyCLI-hRc7u16s.cjs → spawnHappyCLI-DH1071fN.cjs} +1 -1
- package/dist/{spawnHappyCLI-Cyc-69jO.mjs → spawnHappyCLI-ZuC3trh3.mjs} +1 -1
- package/dist/{ssh-B_TYtrys.cjs → ssh-DsBRhE6K.cjs} +5 -5
- package/dist/{ssh-BsxAgWgG.mjs → ssh-bVM6-eHl.mjs} +5 -5
- package/dist/{task-BS4usaxx.mjs → task-QsscHPOu.mjs} +6 -6
- package/dist/{task-BInh42e3.cjs → task-rXw2soeh.cjs} +6 -6
- package/dist/{uninstall-DNFGxNLl.cjs → uninstall-CFVmL2EA.cjs} +2 -2
- package/dist/{uninstall-BKuDaZKB.mjs → uninstall-D-DMUz_6.mjs} +2 -2
- package/dist/{update-DC300VOW.mjs → update-CS-sauOX.mjs} +3 -3
- package/dist/{update-B9LoI5l8.cjs → update-lVVrNorG.cjs} +3 -3
- package/package.json +1 -1
|
@@ -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-C8YmO6e-.cjs');
|
|
6
|
+
var ssh = require('./ssh-DsBRhE6K.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-DjItabvw.cjs');
|
|
16
16
|
require('axios');
|
|
17
|
-
require('./auth-
|
|
17
|
+
require('./auth-Du-LmcLH.cjs');
|
|
18
18
|
require('qrcode-terminal');
|
|
19
19
|
require('./time-Bj2HRkKH.cjs');
|
|
20
|
-
require('./browser-
|
|
20
|
+
require('./browser-CBrNk2b6.cjs');
|
|
21
21
|
require('open');
|
|
22
22
|
require('react');
|
|
23
23
|
require('ink');
|
|
24
|
-
require('./controlClient-
|
|
24
|
+
require('./controlClient-Aga5KOuL.cjs');
|
|
25
25
|
require('./projectPath-ChLhdOyt.cjs');
|
|
26
26
|
require('path');
|
|
27
27
|
require('url');
|
|
@@ -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-CIuIRPwE.mjs';
|
|
4
|
+
import { resolveDeviceForCommand } from './ssh-bVM6-eHl.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-DL_YhAVs.mjs';
|
|
14
14
|
import 'axios';
|
|
15
|
-
import './auth-
|
|
15
|
+
import './auth-BxRfxsPn.mjs';
|
|
16
16
|
import 'qrcode-terminal';
|
|
17
17
|
import './time-DgsBLJA_.mjs';
|
|
18
|
-
import './browser-
|
|
18
|
+
import './browser-CrNqwWO0.mjs';
|
|
19
19
|
import 'open';
|
|
20
20
|
import 'react';
|
|
21
21
|
import 'ink';
|
|
22
|
-
import './controlClient-
|
|
22
|
+
import './controlClient-D-5BGcGC.mjs';
|
|
23
23
|
import './projectPath-BTBIMB57.mjs';
|
|
24
24
|
import 'path';
|
|
25
25
|
import 'url';
|
package/dist/{registerKillSessionHandler-6loIZYD9.mjs → registerKillSessionHandler-CH_7VXKc.mjs}
RENAMED
|
@@ -5,17 +5,17 @@ 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 { 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-CIuIRPwE.mjs';
|
|
9
|
+
import { l as listDevices, d as deviceExec } from './deviceKeys-DL_YhAVs.mjs';
|
|
10
|
+
import axios from 'axios';
|
|
10
11
|
import { randomUUID } from 'node:crypto';
|
|
11
12
|
import { s as shouldEnableOrchestratorTools } from './prompt-BsAZsPbo.mjs';
|
|
12
13
|
import './mcpToolSchemas-CjeTfrAs.mjs';
|
|
13
14
|
import './index-DTV7drqs.mjs';
|
|
14
15
|
import { execSync } from 'node:child_process';
|
|
15
|
-
import 'axios';
|
|
16
16
|
import 'node:events';
|
|
17
17
|
import 'socket.io-client';
|
|
18
|
-
import './api-
|
|
18
|
+
import './api-Cj4RF4ga.mjs';
|
|
19
19
|
import 'tweetnacl';
|
|
20
20
|
import 'ws';
|
|
21
21
|
import 'crypto';
|
|
@@ -28,6 +28,44 @@ import 'expo-server-sdk';
|
|
|
28
28
|
import 'chalk';
|
|
29
29
|
import './types-BoJh4Qfv.mjs';
|
|
30
30
|
|
|
31
|
+
async function submitBug(credentials, input) {
|
|
32
|
+
const response = await axios.post(
|
|
33
|
+
`${configuration.serverUrl}/v1/bugs`,
|
|
34
|
+
{
|
|
35
|
+
description: input.description,
|
|
36
|
+
...input.visibility ? { visibility: input.visibility } : {}
|
|
37
|
+
},
|
|
38
|
+
{ headers: { Authorization: `Bearer ${credentials.token}` }, timeout: 15e3 }
|
|
39
|
+
);
|
|
40
|
+
return response.data.bug;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function toToolSuccess(data) {
|
|
44
|
+
return {
|
|
45
|
+
content: [
|
|
46
|
+
{
|
|
47
|
+
type: "text",
|
|
48
|
+
text: JSON.stringify(data, null, 2)
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
isError: false
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function toToolError(message, details) {
|
|
55
|
+
return {
|
|
56
|
+
content: [
|
|
57
|
+
{
|
|
58
|
+
type: "text",
|
|
59
|
+
text: JSON.stringify({
|
|
60
|
+
ok: false,
|
|
61
|
+
error: message,
|
|
62
|
+
...{}
|
|
63
|
+
}, null, 2)
|
|
64
|
+
}
|
|
65
|
+
],
|
|
66
|
+
isError: true
|
|
67
|
+
};
|
|
68
|
+
}
|
|
31
69
|
function createMcpServer(client, options) {
|
|
32
70
|
const mcp = new McpServer({
|
|
33
71
|
name: "Happy MCP",
|
|
@@ -157,12 +195,32 @@ ${result.stderr}`);
|
|
|
157
195
|
isError: false
|
|
158
196
|
};
|
|
159
197
|
});
|
|
198
|
+
mcp.registerTool("submit_bug", {
|
|
199
|
+
description: "File a bug report on the user's Happy bug board. Use when the user asks to report or file a bug. Write the description yourself from the conversation: what went wrong, what was expected, and the steps to reproduce it.",
|
|
200
|
+
title: "Submit Bug",
|
|
201
|
+
inputSchema: {
|
|
202
|
+
description: z.string().describe("What went wrong, what was expected, and how to reproduce it. The title is derived from the first line."),
|
|
203
|
+
visibility: z.enum(["shared", "private"]).optional().describe("shared (default) puts it on the shared board; private keeps it to the owner")
|
|
204
|
+
}
|
|
205
|
+
}, async (args) => {
|
|
206
|
+
const credentials = await readCredentials();
|
|
207
|
+
if (!credentials) {
|
|
208
|
+
return toToolError("No Happy credentials on this machine.");
|
|
209
|
+
}
|
|
210
|
+
try {
|
|
211
|
+
const bug = await submitBug(credentials, args);
|
|
212
|
+
logger.debug("[happyMCP] Submitted bug:", bug.displayId);
|
|
213
|
+
return toToolSuccess({ ok: true, ...bug });
|
|
214
|
+
} catch (error) {
|
|
215
|
+
return toToolError(`Failed to submit bug: ${error instanceof Error ? error.message : String(error)}`);
|
|
216
|
+
}
|
|
217
|
+
});
|
|
160
218
|
return mcp;
|
|
161
219
|
}
|
|
162
220
|
async function startHappyServer(client) {
|
|
163
221
|
const transports = /* @__PURE__ */ new Map();
|
|
164
222
|
const enableOrchestratorTools = shouldEnableOrchestratorTools();
|
|
165
|
-
const toolNames = ["change_title", "preview_html", "device_list", "device_exec"];
|
|
223
|
+
const toolNames = ["change_title", "preview_html", "device_list", "device_exec", "submit_bug"];
|
|
166
224
|
const originalConsoleError = console.error;
|
|
167
225
|
console.error = (...args) => {
|
|
168
226
|
logger.debug("[happyMCP] console.error:", ...args);
|
package/dist/{registerKillSessionHandler-ks8iPY9a.cjs → registerKillSessionHandler-LeIqHfbo.cjs}
RENAMED
|
@@ -7,17 +7,17 @@ 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-C8YmO6e-.cjs');
|
|
11
|
+
var deviceKeys = require('./deviceKeys-DjItabvw.cjs');
|
|
12
|
+
var axios = require('axios');
|
|
12
13
|
var node_crypto = require('node:crypto');
|
|
13
14
|
var prompt = require('./prompt-BTWDZZO0.cjs');
|
|
14
15
|
require('./mcpToolSchemas-DK42yoZ_.cjs');
|
|
15
16
|
require('./index-BeKrqPYR.cjs');
|
|
16
17
|
var node_child_process = require('node:child_process');
|
|
17
|
-
require('axios');
|
|
18
18
|
require('node:events');
|
|
19
19
|
require('socket.io-client');
|
|
20
|
-
require('./api-
|
|
20
|
+
require('./api-CPQUJQGJ.cjs');
|
|
21
21
|
require('tweetnacl');
|
|
22
22
|
require('ws');
|
|
23
23
|
require('crypto');
|
|
@@ -30,6 +30,44 @@ require('expo-server-sdk');
|
|
|
30
30
|
require('chalk');
|
|
31
31
|
require('./types-DWeB7aqh.cjs');
|
|
32
32
|
|
|
33
|
+
async function submitBug(credentials, input) {
|
|
34
|
+
const response = await axios.post(
|
|
35
|
+
`${logger.configuration.serverUrl}/v1/bugs`,
|
|
36
|
+
{
|
|
37
|
+
description: input.description,
|
|
38
|
+
...input.visibility ? { visibility: input.visibility } : {}
|
|
39
|
+
},
|
|
40
|
+
{ headers: { Authorization: `Bearer ${credentials.token}` }, timeout: 15e3 }
|
|
41
|
+
);
|
|
42
|
+
return response.data.bug;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function toToolSuccess(data) {
|
|
46
|
+
return {
|
|
47
|
+
content: [
|
|
48
|
+
{
|
|
49
|
+
type: "text",
|
|
50
|
+
text: JSON.stringify(data, null, 2)
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
isError: false
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function toToolError(message, details) {
|
|
57
|
+
return {
|
|
58
|
+
content: [
|
|
59
|
+
{
|
|
60
|
+
type: "text",
|
|
61
|
+
text: JSON.stringify({
|
|
62
|
+
ok: false,
|
|
63
|
+
error: message,
|
|
64
|
+
...{}
|
|
65
|
+
}, null, 2)
|
|
66
|
+
}
|
|
67
|
+
],
|
|
68
|
+
isError: true
|
|
69
|
+
};
|
|
70
|
+
}
|
|
33
71
|
function createMcpServer(client, options) {
|
|
34
72
|
const mcp = new mcp_js.McpServer({
|
|
35
73
|
name: "Happy MCP",
|
|
@@ -159,12 +197,32 @@ ${result.stderr}`);
|
|
|
159
197
|
isError: false
|
|
160
198
|
};
|
|
161
199
|
});
|
|
200
|
+
mcp.registerTool("submit_bug", {
|
|
201
|
+
description: "File a bug report on the user's Happy bug board. Use when the user asks to report or file a bug. Write the description yourself from the conversation: what went wrong, what was expected, and the steps to reproduce it.",
|
|
202
|
+
title: "Submit Bug",
|
|
203
|
+
inputSchema: {
|
|
204
|
+
description: z.z.string().describe("What went wrong, what was expected, and how to reproduce it. The title is derived from the first line."),
|
|
205
|
+
visibility: z.z.enum(["shared", "private"]).optional().describe("shared (default) puts it on the shared board; private keeps it to the owner")
|
|
206
|
+
}
|
|
207
|
+
}, async (args) => {
|
|
208
|
+
const credentials = await logger.readCredentials();
|
|
209
|
+
if (!credentials) {
|
|
210
|
+
return toToolError("No Happy credentials on this machine.");
|
|
211
|
+
}
|
|
212
|
+
try {
|
|
213
|
+
const bug = await submitBug(credentials, args);
|
|
214
|
+
logger.logger.debug("[happyMCP] Submitted bug:", bug.displayId);
|
|
215
|
+
return toToolSuccess({ ok: true, ...bug });
|
|
216
|
+
} catch (error) {
|
|
217
|
+
return toToolError(`Failed to submit bug: ${error instanceof Error ? error.message : String(error)}`);
|
|
218
|
+
}
|
|
219
|
+
});
|
|
162
220
|
return mcp;
|
|
163
221
|
}
|
|
164
222
|
async function startHappyServer(client) {
|
|
165
223
|
const transports = /* @__PURE__ */ new Map();
|
|
166
224
|
const enableOrchestratorTools = prompt.shouldEnableOrchestratorTools();
|
|
167
|
-
const toolNames = ["change_title", "preview_html", "device_list", "device_exec"];
|
|
225
|
+
const toolNames = ["change_title", "preview_html", "device_list", "device_exec", "submit_bug"];
|
|
168
226
|
const originalConsoleError = console.error;
|
|
169
227
|
console.error = (...args) => {
|
|
170
228
|
logger.logger.debug("[happyMCP] console.error:", ...args);
|
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
var fs$1 = require('fs/promises');
|
|
4
4
|
var os = require('os');
|
|
5
5
|
var tmp = require('tmp');
|
|
6
|
-
var api = require('./api-
|
|
7
|
-
var logger = require('./persistence-
|
|
8
|
-
var auth = require('./auth-
|
|
6
|
+
var api = require('./api-CPQUJQGJ.cjs');
|
|
7
|
+
var logger = require('./persistence-C8YmO6e-.cjs');
|
|
8
|
+
var auth = require('./auth-Du-LmcLH.cjs');
|
|
9
9
|
var child_process = require('child_process');
|
|
10
|
-
var doctor = require('./doctor-
|
|
11
|
-
var spawnHappyCLI = require('./spawnHappyCLI-
|
|
12
|
-
var controlClient = require('./controlClient-
|
|
13
|
-
var deviceKeys = require('./deviceKeys-
|
|
14
|
-
var install = require('./install-
|
|
10
|
+
var doctor = require('./doctor-s5r5tBV2.cjs');
|
|
11
|
+
var spawnHappyCLI = require('./spawnHappyCLI-DH1071fN.cjs');
|
|
12
|
+
var controlClient = require('./controlClient-Aga5KOuL.cjs');
|
|
13
|
+
var deviceKeys = require('./deviceKeys-DjItabvw.cjs');
|
|
14
|
+
var install = require('./install-CV4tyU-f.cjs');
|
|
15
15
|
var fastify = require('fastify');
|
|
16
16
|
var fs = require('node:fs');
|
|
17
17
|
var promises = require('node:fs/promises');
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import fs from 'fs/promises';
|
|
2
2
|
import os from 'os';
|
|
3
3
|
import * as tmp from 'tmp';
|
|
4
|
-
import { A as ApiClient } from './api-
|
|
5
|
-
import { c as configuration, l as logger, p as packageJson, v as acquireDaemonLock, a as readSettings, i as isDebug, e as encodeBase64, x as writeDaemonState, m as readDaemonState, y as releaseDaemonLock, z as validateProfileForAgent, A as getProfileEnvironmentVariables } from './persistence-
|
|
6
|
-
import { authAndSetupMachineIfNeeded } from './auth-
|
|
4
|
+
import { A as ApiClient } from './api-Cj4RF4ga.mjs';
|
|
5
|
+
import { c as configuration, l as logger, p as packageJson, v as acquireDaemonLock, a as readSettings, i as isDebug, e as encodeBase64, x as writeDaemonState, m as readDaemonState, y as releaseDaemonLock, z as validateProfileForAgent, A as getProfileEnvironmentVariables } from './persistence-CIuIRPwE.mjs';
|
|
6
|
+
import { authAndSetupMachineIfNeeded } from './auth-BxRfxsPn.mjs';
|
|
7
7
|
import { spawn, execSync, exec } from 'child_process';
|
|
8
|
-
import { getEnvironmentInfo } from './doctor-
|
|
9
|
-
import { s as spawnHappyCLI } from './spawnHappyCLI-
|
|
10
|
-
import { isDaemonRunningCurrentlyInstalledHappyVersion, stopDaemon, cleanupDaemonState } from './controlClient-
|
|
11
|
-
import { a as readCachedDeviceKey, d as deviceExec } from './deviceKeys-
|
|
12
|
-
import { P as PLIST_LABEL } from './install-
|
|
8
|
+
import { getEnvironmentInfo } from './doctor-DpCWRLts.mjs';
|
|
9
|
+
import { s as spawnHappyCLI } from './spawnHappyCLI-ZuC3trh3.mjs';
|
|
10
|
+
import { isDaemonRunningCurrentlyInstalledHappyVersion, stopDaemon, cleanupDaemonState } from './controlClient-D-5BGcGC.mjs';
|
|
11
|
+
import { a as readCachedDeviceKey, d as deviceExec } from './deviceKeys-DL_YhAVs.mjs';
|
|
12
|
+
import { P as PLIST_LABEL } from './install-MLAZRCd1.mjs';
|
|
13
13
|
import fastify from 'fastify';
|
|
14
14
|
import { createReadStream } from 'node:fs';
|
|
15
15
|
import { stat } from 'node:fs/promises';
|
|
@@ -4,20 +4,20 @@ var os = require('node:os');
|
|
|
4
4
|
var node_crypto = require('node:crypto');
|
|
5
5
|
var fs$1 = require('node:fs');
|
|
6
6
|
var promises = require('node:fs/promises');
|
|
7
|
-
var api = require('./api-
|
|
8
|
-
var logger = require('./persistence-
|
|
9
|
-
var claudeLocal = require('./claudeLocal-
|
|
7
|
+
var api = require('./api-CPQUJQGJ.cjs');
|
|
8
|
+
var logger = require('./persistence-C8YmO6e-.cjs');
|
|
9
|
+
var claudeLocal = require('./claudeLocal-DMn1kiJq.cjs');
|
|
10
10
|
var types = require('./types-DWeB7aqh.cjs');
|
|
11
11
|
var path = require('node:path');
|
|
12
12
|
var time = require('./time-Bj2HRkKH.cjs');
|
|
13
13
|
var fs = require('fs/promises');
|
|
14
14
|
var ink = require('ink');
|
|
15
|
-
var downloadImage = require('./downloadImage-
|
|
15
|
+
var downloadImage = require('./downloadImage-AYf-3ZYW.cjs');
|
|
16
16
|
var React = require('react');
|
|
17
17
|
var node_child_process = require('node:child_process');
|
|
18
18
|
var node_readline = require('node:readline');
|
|
19
19
|
var node_url = require('node:url');
|
|
20
|
-
var spawnHappyCLI = require('./spawnHappyCLI-
|
|
20
|
+
var spawnHappyCLI = require('./spawnHappyCLI-DH1071fN.cjs');
|
|
21
21
|
var projectPath = require('./projectPath-ChLhdOyt.cjs');
|
|
22
22
|
require('axios');
|
|
23
23
|
require('node:events');
|
|
@@ -28,12 +28,12 @@ require('crypto');
|
|
|
28
28
|
require('@stablelib/base64');
|
|
29
29
|
require('expo-server-sdk');
|
|
30
30
|
require('chalk');
|
|
31
|
-
var formatImageMessage = require('./formatImageMessage-
|
|
31
|
+
var formatImageMessage = require('./formatImageMessage-D09-zSuq.cjs');
|
|
32
32
|
var node_util = require('node:util');
|
|
33
|
-
var run = require('./run-
|
|
34
|
-
var doctor = require('./doctor-
|
|
35
|
-
var controlClient = require('./controlClient-
|
|
36
|
-
var registerKillSessionHandler = require('./registerKillSessionHandler-
|
|
33
|
+
var run = require('./run-0LQDK84Z.cjs');
|
|
34
|
+
var doctor = require('./doctor-s5r5tBV2.cjs');
|
|
35
|
+
var controlClient = require('./controlClient-Aga5KOuL.cjs');
|
|
36
|
+
var registerKillSessionHandler = require('./registerKillSessionHandler-LeIqHfbo.cjs');
|
|
37
37
|
var node_http = require('node:http');
|
|
38
38
|
require('zod');
|
|
39
39
|
require('./index-BeKrqPYR.cjs');
|
|
@@ -42,7 +42,7 @@ require('child_process');
|
|
|
42
42
|
require('util');
|
|
43
43
|
require('path');
|
|
44
44
|
require('node:module');
|
|
45
|
-
require('./sessionKeyCache-
|
|
45
|
+
require('./sessionKeyCache-CCCCQahC.cjs');
|
|
46
46
|
require('fs');
|
|
47
47
|
require('./prompt-BTWDZZO0.cjs');
|
|
48
48
|
require('./trimIdent-4gvk9Wk6.cjs');
|
|
@@ -50,12 +50,12 @@ require('./common-CZvSRU4p.cjs');
|
|
|
50
50
|
require('url');
|
|
51
51
|
require('os');
|
|
52
52
|
require('tmp');
|
|
53
|
-
require('./auth-
|
|
53
|
+
require('./auth-Du-LmcLH.cjs');
|
|
54
54
|
require('qrcode-terminal');
|
|
55
|
-
require('./browser-
|
|
55
|
+
require('./browser-CBrNk2b6.cjs');
|
|
56
56
|
require('open');
|
|
57
|
-
require('./deviceKeys-
|
|
58
|
-
require('./install-
|
|
57
|
+
require('./deviceKeys-DjItabvw.cjs');
|
|
58
|
+
require('./install-CV4tyU-f.cjs');
|
|
59
59
|
require('fastify');
|
|
60
60
|
require('fastify-type-provider-zod');
|
|
61
61
|
require('./doctor-C08m5Z9f.cjs');
|
|
@@ -732,7 +732,7 @@ class AbortError extends Error {
|
|
|
732
732
|
}
|
|
733
733
|
}
|
|
734
734
|
|
|
735
|
-
const __filename$1 = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('runClaude-
|
|
735
|
+
const __filename$1 = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('runClaude-C35zHmK5.cjs', document.baseURI).href)));
|
|
736
736
|
const __dirname$1 = path.join(__filename$1, "..");
|
|
737
737
|
function getGlobalClaudeVersion() {
|
|
738
738
|
try {
|
|
@@ -2,20 +2,20 @@ import os, { homedir } from 'node:os';
|
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
3
|
import { existsSync, mkdirSync, writeFileSync, unlinkSync, readdirSync } from 'node:fs';
|
|
4
4
|
import { readFile, mkdir, writeFile, stat, copyFile } from 'node:fs/promises';
|
|
5
|
-
import { I as InvalidateSync, k as AsyncLock, d as connectionState, A as ApiClient, r as resolveToolsDir, b as startOfflineReconnection, l as findClaudeProjectId } from './api-
|
|
6
|
-
import { l as logger, i as isDebug, c as configuration, a as readSettings, p as packageJson } from './persistence-
|
|
7
|
-
import { g as getProjectPath, a as claudeLocal, E as ExitCodeError, b as claudeCheckSession, s as systemPrompt } from './claudeLocal-
|
|
5
|
+
import { I as InvalidateSync, k as AsyncLock, d as connectionState, A as ApiClient, r as resolveToolsDir, b as startOfflineReconnection, l as findClaudeProjectId } from './api-Cj4RF4ga.mjs';
|
|
6
|
+
import { l as logger, i as isDebug, c as configuration, a as readSettings, p as packageJson } from './persistence-CIuIRPwE.mjs';
|
|
7
|
+
import { g as getProjectPath, a as claudeLocal, E as ExitCodeError, b as claudeCheckSession, s as systemPrompt } from './claudeLocal-CR1aG4FT.mjs';
|
|
8
8
|
import { R as RawJSONLinesSchema } from './types-BoJh4Qfv.mjs';
|
|
9
9
|
import { join, resolve } from 'node:path';
|
|
10
10
|
import { d as delay } from './time-DgsBLJA_.mjs';
|
|
11
11
|
import { watch, access } from 'fs/promises';
|
|
12
12
|
import { useStdout, useInput, Box, Text, render } from 'ink';
|
|
13
|
-
import { b as parseSpecialCommand, a as MessageBuffer, M as MessageQueue2, h as hashObject } from './downloadImage-
|
|
13
|
+
import { b as parseSpecialCommand, a as MessageBuffer, M as MessageQueue2, h as hashObject } from './downloadImage-aU6-_LTd.mjs';
|
|
14
14
|
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
15
15
|
import { execSync, spawn } from 'node:child_process';
|
|
16
16
|
import { createInterface } from 'node:readline';
|
|
17
17
|
import { fileURLToPath } from 'node:url';
|
|
18
|
-
import { i as isBun } from './spawnHappyCLI-
|
|
18
|
+
import { i as isBun } from './spawnHappyCLI-ZuC3trh3.mjs';
|
|
19
19
|
import { p as projectPath } from './projectPath-BTBIMB57.mjs';
|
|
20
20
|
import 'axios';
|
|
21
21
|
import 'node:events';
|
|
@@ -26,12 +26,12 @@ import 'crypto';
|
|
|
26
26
|
import '@stablelib/base64';
|
|
27
27
|
import 'expo-server-sdk';
|
|
28
28
|
import 'chalk';
|
|
29
|
-
import { a as formatMessageForClaude } from './formatImageMessage-
|
|
29
|
+
import { a as formatMessageForClaude } from './formatImageMessage-X7lBbNk9.mjs';
|
|
30
30
|
import { isDeepStrictEqual } from 'node:util';
|
|
31
|
-
import { i as initialMachineMetadata, s as stopCaffeinate, a as startCaffeinate } from './run-
|
|
32
|
-
import { getEnvironmentInfo } from './doctor-
|
|
33
|
-
import { notifyDaemonSessionStarted } from './controlClient-
|
|
34
|
-
import { c as createMcpContext, r as registerKillSessionHandler, d as detectGitWorktree } from './registerKillSessionHandler-
|
|
31
|
+
import { i as initialMachineMetadata, s as stopCaffeinate, a as startCaffeinate } from './run-C4WAd7tO.mjs';
|
|
32
|
+
import { getEnvironmentInfo } from './doctor-DpCWRLts.mjs';
|
|
33
|
+
import { notifyDaemonSessionStarted } from './controlClient-D-5BGcGC.mjs';
|
|
34
|
+
import { c as createMcpContext, r as registerKillSessionHandler, d as detectGitWorktree } from './registerKillSessionHandler-CH_7VXKc.mjs';
|
|
35
35
|
import { createServer } from 'node:http';
|
|
36
36
|
import 'zod';
|
|
37
37
|
import './index-DTV7drqs.mjs';
|
|
@@ -40,7 +40,7 @@ import 'child_process';
|
|
|
40
40
|
import 'util';
|
|
41
41
|
import 'path';
|
|
42
42
|
import 'node:module';
|
|
43
|
-
import './sessionKeyCache-
|
|
43
|
+
import './sessionKeyCache-Jman_FzK.mjs';
|
|
44
44
|
import 'fs';
|
|
45
45
|
import './prompt-BsAZsPbo.mjs';
|
|
46
46
|
import './trimIdent-BAjmv_TG.mjs';
|
|
@@ -48,12 +48,12 @@ import './common-BdNgghUJ.mjs';
|
|
|
48
48
|
import 'url';
|
|
49
49
|
import 'os';
|
|
50
50
|
import 'tmp';
|
|
51
|
-
import './auth-
|
|
51
|
+
import './auth-BxRfxsPn.mjs';
|
|
52
52
|
import 'qrcode-terminal';
|
|
53
|
-
import './browser-
|
|
53
|
+
import './browser-CrNqwWO0.mjs';
|
|
54
54
|
import 'open';
|
|
55
|
-
import './deviceKeys-
|
|
56
|
-
import './install-
|
|
55
|
+
import './deviceKeys-DL_YhAVs.mjs';
|
|
56
|
+
import './install-MLAZRCd1.mjs';
|
|
57
57
|
import 'fastify';
|
|
58
58
|
import 'fastify-type-provider-zod';
|
|
59
59
|
import './doctor-ON7pN5G5.mjs';
|
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
var ink = require('ink');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var api = require('./api-
|
|
5
|
+
var api = require('./api-CPQUJQGJ.cjs');
|
|
6
6
|
var node_child_process = require('node:child_process');
|
|
7
7
|
var node_readline = require('node:readline');
|
|
8
|
-
var logger = require('./persistence-
|
|
9
|
-
var setupOfflineReconnection = require('./setupOfflineReconnection-
|
|
10
|
-
var loadableToolOutput = require('./loadableToolOutput-
|
|
8
|
+
var logger = require('./persistence-C8YmO6e-.cjs');
|
|
9
|
+
var setupOfflineReconnection = require('./setupOfflineReconnection-EeK8Zibv.cjs');
|
|
10
|
+
var loadableToolOutput = require('./loadableToolOutput-CyxrSX6o.cjs');
|
|
11
11
|
var node_crypto = require('node:crypto');
|
|
12
|
-
var downloadImage = require('./downloadImage-
|
|
13
|
-
var run = require('./run-
|
|
14
|
-
var registerKillSessionHandler = require('./registerKillSessionHandler-
|
|
12
|
+
var downloadImage = require('./downloadImage-AYf-3ZYW.cjs');
|
|
13
|
+
var run = require('./run-0LQDK84Z.cjs');
|
|
14
|
+
var registerKillSessionHandler = require('./registerKillSessionHandler-LeIqHfbo.cjs');
|
|
15
15
|
var constants = require('./constants-E_UWYTo3.cjs');
|
|
16
|
-
var controlClient = require('./controlClient-
|
|
16
|
+
var controlClient = require('./controlClient-Aga5KOuL.cjs');
|
|
17
17
|
var node_util = require('node:util');
|
|
18
18
|
var promises = require('node:fs/promises');
|
|
19
19
|
var path = require('node:path');
|
|
@@ -38,22 +38,22 @@ require('crypto');
|
|
|
38
38
|
require('tweetnacl');
|
|
39
39
|
require('@stablelib/base64');
|
|
40
40
|
require('expo-server-sdk');
|
|
41
|
-
require('./sessionKeyCache-
|
|
41
|
+
require('./sessionKeyCache-CCCCQahC.cjs');
|
|
42
42
|
require('chalk');
|
|
43
43
|
require('fs');
|
|
44
44
|
require('os');
|
|
45
45
|
require('tmp');
|
|
46
|
-
require('./auth-
|
|
46
|
+
require('./auth-Du-LmcLH.cjs');
|
|
47
47
|
require('qrcode-terminal');
|
|
48
|
-
require('./browser-
|
|
48
|
+
require('./browser-CBrNk2b6.cjs');
|
|
49
49
|
require('open');
|
|
50
|
-
require('./doctor-
|
|
50
|
+
require('./doctor-s5r5tBV2.cjs');
|
|
51
51
|
require('./doctor-C08m5Z9f.cjs');
|
|
52
52
|
require('ps-list');
|
|
53
53
|
require('cross-spawn');
|
|
54
|
-
require('./spawnHappyCLI-
|
|
55
|
-
require('./deviceKeys-
|
|
56
|
-
require('./install-
|
|
54
|
+
require('./spawnHappyCLI-DH1071fN.cjs');
|
|
55
|
+
require('./deviceKeys-DjItabvw.cjs');
|
|
56
|
+
require('./install-CV4tyU-f.cjs');
|
|
57
57
|
require('./trimIdent-4gvk9Wk6.cjs');
|
|
58
58
|
require('fastify');
|
|
59
59
|
require('fastify-type-provider-zod');
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { useStdout, useInput, Box, Text, render } from 'ink';
|
|
2
2
|
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
3
|
-
import { c as saveDiffRecords, e as extractUserText, i as isSystemMessage, g as generateStableUuid, f as findCodexSessionFile, d as connectionState, A as ApiClient } from './api-
|
|
3
|
+
import { c as saveDiffRecords, e as extractUserText, i as isSystemMessage, g as generateStableUuid, f as findCodexSessionFile, d as connectionState, A as ApiClient } from './api-Cj4RF4ga.mjs';
|
|
4
4
|
import { spawn, execSync } from 'node:child_process';
|
|
5
5
|
import { createInterface } from 'node:readline';
|
|
6
|
-
import { l as logger, i as isDebug, a as readSettings } from './persistence-
|
|
7
|
-
import { B as BasePermissionHandler, c as createSessionMetadata, s as setupOfflineReconnection } from './setupOfflineReconnection-
|
|
8
|
-
import { B as BaseReasoningProcessor, h as handleConfigMetadataEvent, s as summarizeBashToolOutput } from './loadableToolOutput-
|
|
6
|
+
import { l as logger, i as isDebug, a as readSettings } from './persistence-CIuIRPwE.mjs';
|
|
7
|
+
import { B as BasePermissionHandler, c as createSessionMetadata, s as setupOfflineReconnection } from './setupOfflineReconnection-B8LXjrYU.mjs';
|
|
8
|
+
import { B as BaseReasoningProcessor, h as handleConfigMetadataEvent, s as summarizeBashToolOutput } from './loadableToolOutput-B8h8vRAi.mjs';
|
|
9
9
|
import { randomUUID } from 'node:crypto';
|
|
10
|
-
import { M as MessageQueue2, h as hashObject, a as MessageBuffer, p as parseClear, d as downloadImage } from './downloadImage-
|
|
11
|
-
import { i as initialMachineMetadata, s as stopCaffeinate } from './run-
|
|
12
|
-
import { c as createMcpContext, r as registerKillSessionHandler } from './registerKillSessionHandler-
|
|
10
|
+
import { M as MessageQueue2, h as hashObject, a as MessageBuffer, p as parseClear, d as downloadImage } from './downloadImage-aU6-_LTd.mjs';
|
|
11
|
+
import { i as initialMachineMetadata, s as stopCaffeinate } from './run-C4WAd7tO.mjs';
|
|
12
|
+
import { c as createMcpContext, r as registerKillSessionHandler } from './registerKillSessionHandler-CH_7VXKc.mjs';
|
|
13
13
|
import { g as getFirstTurnInstruction } from './constants-pmXZGibX.mjs';
|
|
14
|
-
import { notifyDaemonSessionStarted } from './controlClient-
|
|
14
|
+
import { notifyDaemonSessionStarted } from './controlClient-D-5BGcGC.mjs';
|
|
15
15
|
import { inspect } from 'node:util';
|
|
16
16
|
import { readFile } from 'node:fs/promises';
|
|
17
17
|
import { basename, isAbsolute } from 'node:path';
|
|
@@ -36,22 +36,22 @@ import 'crypto';
|
|
|
36
36
|
import 'tweetnacl';
|
|
37
37
|
import '@stablelib/base64';
|
|
38
38
|
import 'expo-server-sdk';
|
|
39
|
-
import './sessionKeyCache-
|
|
39
|
+
import './sessionKeyCache-Jman_FzK.mjs';
|
|
40
40
|
import 'chalk';
|
|
41
41
|
import 'fs';
|
|
42
42
|
import 'os';
|
|
43
43
|
import 'tmp';
|
|
44
|
-
import './auth-
|
|
44
|
+
import './auth-BxRfxsPn.mjs';
|
|
45
45
|
import 'qrcode-terminal';
|
|
46
|
-
import './browser-
|
|
46
|
+
import './browser-CrNqwWO0.mjs';
|
|
47
47
|
import 'open';
|
|
48
|
-
import './doctor-
|
|
48
|
+
import './doctor-DpCWRLts.mjs';
|
|
49
49
|
import './doctor-ON7pN5G5.mjs';
|
|
50
50
|
import 'ps-list';
|
|
51
51
|
import 'cross-spawn';
|
|
52
|
-
import './spawnHappyCLI-
|
|
53
|
-
import './deviceKeys-
|
|
54
|
-
import './install-
|
|
52
|
+
import './spawnHappyCLI-ZuC3trh3.mjs';
|
|
53
|
+
import './deviceKeys-DL_YhAVs.mjs';
|
|
54
|
+
import './install-MLAZRCd1.mjs';
|
|
55
55
|
import './trimIdent-BAjmv_TG.mjs';
|
|
56
56
|
import 'fastify';
|
|
57
57
|
import 'fastify-type-provider-zod';
|