@zonease/happy 0.6.47 → 0.6.49
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-L9jLLtI1.mjs → api-DgjBoynq.mjs} +2 -2
- package/dist/{api-mv48hjhj.cjs → api-OthK5iIu.cjs} +3 -3
- package/dist/{auth-InL7fBsz.mjs → auth-B1jRZqn6.mjs} +4 -4
- package/dist/{auth-BoWfky2q.mjs → auth-BCH_VzFY.mjs} +2 -2
- package/dist/{auth-DfQYhTlg.cjs → auth-BpoPI35K.cjs} +2 -2
- package/dist/{auth-0qbD9TEm.cjs → auth-jlHlPGoI.cjs} +4 -4
- package/dist/{browser-CF-r2ami.cjs → browser-BPhM1lYb.cjs} +1 -1
- package/dist/{browser-D9jMe1me.mjs → browser-oD4Fhplt.mjs} +1 -1
- package/dist/{claudeLocal-CFEXiYts.mjs → claudeLocal-BgGmploP.mjs} +1 -1
- package/dist/{claudeLocal-DOfhf6VK.cjs → claudeLocal-D1aqQU3U.cjs} +1 -1
- package/dist/codex/happyMcpStdioBridge.cjs +17 -1
- package/dist/codex/happyMcpStdioBridge.mjs +17 -1
- package/dist/{config-BBm54d_L.mjs → config-DxrAXlTx.mjs} +1 -1
- package/dist/{config-ByyclMMi.cjs → config-L19Onew4.cjs} +1 -1
- package/dist/{connect-B5JhnDTy.mjs → connect-BhvDYGh7.mjs} +4 -4
- package/dist/{connect-CIOfZYj-.cjs → connect-CcSN3IFE.cjs} +4 -4
- package/dist/{controlClient-P5wJhu1R.mjs → controlClient-BXUvvi9h.mjs} +1 -1
- package/dist/{controlClient-DMEMVw4Y.cjs → controlClient-DEk3NLK2.cjs} +1 -1
- package/dist/{cursorApprovalHook-C9mdmRIx.cjs → cursorApprovalHook-Bg8pIGZk.cjs} +2 -2
- package/dist/{cursorApprovalHook-DplHRbGK.mjs → cursorApprovalHook-YOYQPiFb.mjs} +2 -2
- package/dist/{cursorApprovalServer-C9y5dYDE.mjs → cursorApprovalServer-CU4HY7HJ.mjs} +1 -1
- package/dist/{cursorApprovalServer-BoI6qBTg.cjs → cursorApprovalServer-PWI0z_6u.cjs} +1 -1
- package/dist/{deviceKeys-tcvwm4KA.mjs → deviceKeys-BghZEVQM.mjs} +2 -2
- package/dist/{deviceKeys-CzqNNlG1.cjs → deviceKeys-CdzEV43E.cjs} +2 -2
- package/dist/{doctor-CXYhUN9A.mjs → doctor-36V4kFd8.mjs} +2 -2
- package/dist/{doctor-CBbj6YEl.cjs → doctor-BqwlWV1d.cjs} +2 -2
- package/dist/{downloadImage-CRkycWIl.cjs → downloadImage-CRORmK1A.cjs} +1 -1
- package/dist/{downloadImage-CpnQ3aS1.mjs → downloadImage-qav0UxBl.mjs} +1 -1
- package/dist/{enroll-CyikRwm7.cjs → enroll-Cb0zEeTI.cjs} +3 -3
- package/dist/{enroll-CYNDVSIH.mjs → enroll-DXtOuJIO.mjs} +3 -3
- package/dist/{evidence-DAu9vtgh.mjs → evidence-P6qtF1Rg.mjs} +1 -1
- package/dist/{evidence-CuGxhBQm.cjs → evidence-RbJyaUHb.cjs} +1 -1
- package/dist/{formatImageMessage-ZJZza9-9.mjs → formatImageMessage-Biyy3pJR.mjs} +1 -1
- package/dist/{formatImageMessage-CqonqpiB.cjs → formatImageMessage-D-tA2oNc.cjs} +1 -1
- package/dist/index.cjs +46 -46
- package/dist/index.mjs +46 -46
- package/dist/{install-_GiK-K1X.cjs → install-B8z_dWSt.cjs} +1 -1
- package/dist/{install-5H5Lh58Z.mjs → install-BcqdmvrF.mjs} +2 -2
- package/dist/{install-X4JLGAi3.cjs → install-C3C0NZfP.cjs} +2 -2
- package/dist/{install-Cma2vLWa.mjs → install-CdGqsOnL.mjs} +1 -1
- package/dist/lib.cjs +3 -3
- package/dist/lib.d.cts +24 -24
- package/dist/lib.d.mts +24 -24
- package/dist/lib.mjs +3 -3
- package/dist/{loadableToolOutput-sf6E72GE.cjs → loadableToolOutput-Bv22WdF2.cjs} +2 -2
- package/dist/{loadableToolOutput-4qF6EX0y.mjs → loadableToolOutput-DvlJj7PM.mjs} +2 -2
- package/dist/{persistence-B_w4o5z-.cjs → persistence-BJVrfFPM.cjs} +1 -1
- package/dist/{persistence-D2aRTiT1.mjs → persistence-CO8Q0Eh6.mjs} +1 -1
- package/dist/{push-BiBqn-pk.mjs → push-CCHjRbpg.mjs} +6 -6
- package/dist/{push-Df6QabEp.cjs → push-Dd-L84fo.cjs} +6 -6
- package/dist/{registerKillSessionHandler-DUrOhiGo.cjs → registerKillSessionHandler-Bdw4uNLH.cjs} +104 -5
- package/dist/{registerKillSessionHandler-AcpB6OSk.mjs → registerKillSessionHandler-OVE8Wm5b.mjs} +104 -5
- package/dist/{run-DclH1MRm.cjs → run-B5dg8uPo.cjs} +8 -8
- package/dist/{run-D6oXm1Jk.mjs → run-C-nwXCvH.mjs} +8 -8
- package/dist/{runClaude--M8lVtqr.mjs → runClaude-CIv33AyB.mjs} +15 -15
- package/dist/{runClaude-BfLi7f2N.cjs → runClaude-rkxGCTc2.cjs} +16 -16
- package/dist/{runCodex-DdcEe5bM.cjs → runCodex-4DUH4CWf.cjs} +17 -17
- package/dist/{runCodex-DatWk57y.mjs → runCodex-BCn2QxAJ.mjs} +17 -17
- package/dist/{runCursor-DxcT7Qtj.mjs → runCursor-PuI6WtK0.mjs} +15 -15
- package/dist/{runCursor-CszdTKDp.cjs → runCursor-tnmFljyu.cjs} +15 -15
- package/dist/{runGemini-41p6X_zo.mjs → runGemini-Bxfxy6t6.mjs} +28 -19
- package/dist/{runGemini-sAOJNh2V.cjs → runGemini-bhDI2ujI.cjs} +28 -19
- package/dist/{runOneShot-NBUWEobi.mjs → runOneShot-Cz0qgY3b.mjs} +2 -2
- package/dist/{runOneShot-m6HO3H5c.cjs → runOneShot-DZPmurJy.cjs} +2 -2
- package/dist/{serve-CUNdZ2ps.cjs → serve-BCRnyQ4F.cjs} +6 -6
- package/dist/{serve-B84oK7m-.mjs → serve-CoS-cmqV.mjs} +6 -6
- package/dist/{session-De8UTFFI.cjs → session-CaKRQ1bu.cjs} +5 -5
- package/dist/{session-9-fr4sTn.mjs → session-DzpncZby.mjs} +5 -5
- package/dist/{sessionKeyCache-DYuPkw5Z.cjs → sessionKeyCache-BOxbaLH3.cjs} +1 -1
- package/dist/{sessionKeyCache-CEJH5cHj.mjs → sessionKeyCache-D9_P4Mhm.mjs} +1 -1
- package/dist/{sessionList-KhgmL10v.cjs → sessionList-CZ1V-BWl.cjs} +2 -2
- package/dist/{sessionList-Dd4fyhNe.mjs → sessionList-M3ku4NEP.mjs} +2 -2
- package/dist/{sessionSummary-CYsvjLpK.mjs → sessionSummary-C_9HquPy.mjs} +3 -3
- package/dist/{sessionSummary-u-kSmPto.cjs → sessionSummary-PRYuMFfS.cjs} +3 -3
- package/dist/{setupOfflineReconnection-2m0GAIU5.mjs → setupOfflineReconnection-B1YuEpwl.mjs} +3 -3
- package/dist/{setupOfflineReconnection-BkAr6jAB.cjs → setupOfflineReconnection-BHuXHSbt.cjs} +3 -3
- package/dist/{spawnHappyCLI-T9EQFmAR.cjs → spawnHappyCLI-C6Peiy6h.cjs} +1 -1
- package/dist/{spawnHappyCLI-CG_S7LH1.mjs → spawnHappyCLI-C7Fu7xsF.mjs} +1 -1
- package/dist/{ssh-C4nI67Vq.cjs → ssh-C0ypGPrZ.cjs} +5 -5
- package/dist/{ssh-BTVqCokU.mjs → ssh-D7J3y8Sm.mjs} +5 -5
- package/dist/{task-DzqzVDDn.mjs → task-BN2-cCP5.mjs} +6 -6
- package/dist/{task-AWrQbs-h.cjs → task-DU_iFaZC.cjs} +6 -6
- package/dist/{uninstall-BRDV8214.cjs → uninstall-BnlnB4_5.cjs} +2 -2
- package/dist/{uninstall-394a0fgf.mjs → uninstall-Ct0m04sQ.mjs} +2 -2
- package/dist/{update-CZIaB80S.cjs → update-CyNRfAss.cjs} +3 -3
- package/dist/{update-DLqQQtYc.mjs → update-GmSUgswj.mjs} +3 -3
- package/package.json +1 -1
package/dist/{registerKillSessionHandler-AcpB6OSk.mjs → registerKillSessionHandler-OVE8Wm5b.mjs}
RENAMED
|
@@ -5,8 +5,8 @@ import { createServer } from 'node:http';
|
|
|
5
5
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
6
6
|
import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';
|
|
7
7
|
import { z } from 'zod';
|
|
8
|
-
import { c as configuration, l as logger, r as readCredentials } from './persistence-
|
|
9
|
-
import { l as listDevices, d as deviceExec } from './deviceKeys-
|
|
8
|
+
import { c as configuration, l as logger, r as readCredentials } from './persistence-CO8Q0Eh6.mjs';
|
|
9
|
+
import { l as listDevices, d as deviceExec } from './deviceKeys-BghZEVQM.mjs';
|
|
10
10
|
import axios from 'axios';
|
|
11
11
|
import { stat, readFile } from 'node:fs/promises';
|
|
12
12
|
import { randomUUID } from 'node:crypto';
|
|
@@ -16,7 +16,7 @@ import './index-DTV7drqs.mjs';
|
|
|
16
16
|
import { execSync } from 'node:child_process';
|
|
17
17
|
import 'node:events';
|
|
18
18
|
import 'socket.io-client';
|
|
19
|
-
import './api-
|
|
19
|
+
import './api-DgjBoynq.mjs';
|
|
20
20
|
import 'tweetnacl';
|
|
21
21
|
import 'ws';
|
|
22
22
|
import 'crypto';
|
|
@@ -38,6 +38,28 @@ const IMAGE_MIME_TYPES = {
|
|
|
38
38
|
function authHeaders(credentials) {
|
|
39
39
|
return { headers: { Authorization: `Bearer ${credentials.token}` }, timeout: 15e3 };
|
|
40
40
|
}
|
|
41
|
+
async function listBugs(credentials, input = {}) {
|
|
42
|
+
const response = await axios.get(
|
|
43
|
+
`${configuration.serverUrl}/v1/bugs`,
|
|
44
|
+
{
|
|
45
|
+
params: {
|
|
46
|
+
...input.status ? { status: input.status } : {},
|
|
47
|
+
...input.query ? { query: input.query } : {},
|
|
48
|
+
limit: input.limit ?? 50
|
|
49
|
+
},
|
|
50
|
+
...authHeaders(credentials)
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
return response.data;
|
|
54
|
+
}
|
|
55
|
+
async function getBug(credentials, reference) {
|
|
56
|
+
const bugId = await resolveBugId(credentials, reference);
|
|
57
|
+
const response = await axios.get(
|
|
58
|
+
`${configuration.serverUrl}/v1/bugs/${bugId}`,
|
|
59
|
+
authHeaders(credentials)
|
|
60
|
+
);
|
|
61
|
+
return response.data.bug;
|
|
62
|
+
}
|
|
41
63
|
async function resolveBugId(credentials, reference) {
|
|
42
64
|
const trimmed = reference.trim();
|
|
43
65
|
const displayNumber = trimmed.replace(/^#/, "").match(/^(?:bug-)?(\d+)$/i)?.[1];
|
|
@@ -146,6 +168,36 @@ function toToolError(message, details) {
|
|
|
146
168
|
isError: true
|
|
147
169
|
};
|
|
148
170
|
}
|
|
171
|
+
const asDate = (ms) => new Date(ms).toISOString().slice(0, 10);
|
|
172
|
+
function formatBugDetail(bug) {
|
|
173
|
+
const sections = [
|
|
174
|
+
`${bug.displayId} [${bug.status}] ${bug.visibility}`,
|
|
175
|
+
`${bug.title}`,
|
|
176
|
+
`filed by ${bug.createdByNickname ?? "unknown"}${bug.lastActivityAt ? `, last activity ${asDate(bug.lastActivityAt)}` : ""}`,
|
|
177
|
+
`
|
|
178
|
+
--- description ---
|
|
179
|
+
${bug.description}`
|
|
180
|
+
];
|
|
181
|
+
if (bug.attachments.length) {
|
|
182
|
+
sections.push(`
|
|
183
|
+
--- attachments (${bug.attachments.length}) ---
|
|
184
|
+
${bug.attachments.map((a) => `${a.mimeType} ${a.width ?? "?"}x${a.height ?? "?"} ${a.url}`).join("\n")}`);
|
|
185
|
+
}
|
|
186
|
+
if (bug.comments.length) {
|
|
187
|
+
sections.push(`
|
|
188
|
+
--- comments (${bug.comments.length}) ---
|
|
189
|
+
${bug.comments.map((c) => [
|
|
190
|
+
`[${asDate(c.createdAt)}] ${c.authorNickname ?? "unknown"}: ${c.body}`,
|
|
191
|
+
...c.attachments.map((a) => ` + ${a.mimeType} ${a.url}`)
|
|
192
|
+
].join("\n")).join("\n")}`);
|
|
193
|
+
}
|
|
194
|
+
if (bug.statusHistory.length) {
|
|
195
|
+
sections.push(`
|
|
196
|
+
--- history (${bug.statusHistory.length}) ---
|
|
197
|
+
${bug.statusHistory.map((h) => `${asDate(h.createdAt)} ${h.fromStatus ? `${h.fromStatus} \u2192 ${h.toStatus}` : h.action} by ${h.actorNickname ?? "unknown"}${h.note ? ` (${h.note})` : ""}`).join("\n")}`);
|
|
198
|
+
}
|
|
199
|
+
return sections.join("\n");
|
|
200
|
+
}
|
|
149
201
|
function createMcpServer(client, options) {
|
|
150
202
|
const mcp = new McpServer({
|
|
151
203
|
name: "Happy MCP",
|
|
@@ -296,12 +348,59 @@ ${result.stderr}`);
|
|
|
296
348
|
return toToolError(`Failed to submit bug: ${error instanceof Error ? error.message : String(error)}`);
|
|
297
349
|
}
|
|
298
350
|
});
|
|
351
|
+
mcp.registerTool("list_bugs", {
|
|
352
|
+
description: "List bugs on the user's Happy bug board. Use to answer what is open, to find a bug the user is describing, or to get its number before editing or deleting it.",
|
|
353
|
+
title: "List Bugs",
|
|
354
|
+
inputSchema: {
|
|
355
|
+
status: z.enum(["pending", "in_progress", "verify", "closed"]).optional().describe("Only bugs in this state"),
|
|
356
|
+
query: z.string().describe("Free text matched against number, title, description, author and status").optional(),
|
|
357
|
+
limit: z.number().int().min(1).max(200).optional().describe("How many to return, 50 by default")
|
|
358
|
+
}
|
|
359
|
+
}, async (args) => {
|
|
360
|
+
const credentials = await readCredentials();
|
|
361
|
+
if (!credentials) {
|
|
362
|
+
return toToolError("No Happy credentials on this machine.");
|
|
363
|
+
}
|
|
364
|
+
try {
|
|
365
|
+
const { bugs, pendingCount } = await listBugs(credentials, args);
|
|
366
|
+
const lines = bugs.map((bug) => {
|
|
367
|
+
const counts = [
|
|
368
|
+
bug.attachmentCount ? `${bug.attachmentCount} images` : "",
|
|
369
|
+
bug.commentCount ? `${bug.commentCount} comments` : ""
|
|
370
|
+
].filter(Boolean).join(", ");
|
|
371
|
+
const activity = bug.lastActivityAt ? new Date(bug.lastActivityAt).toISOString().slice(0, 10) : "";
|
|
372
|
+
return `${bug.displayId} [${bug.status}] ${bug.title}${bug.createdByNickname ? ` \u2014 ${bug.createdByNickname}` : ""}${counts ? ` (${counts})` : ""}${activity ? ` ${activity}` : ""}`;
|
|
373
|
+
});
|
|
374
|
+
const header = `${bugs.length} bugs shown, ${pendingCount} pending on the board`;
|
|
375
|
+
return { content: [{ type: "text", text: lines.length ? `${header}
|
|
376
|
+
${lines.join("\n")}` : header }] };
|
|
377
|
+
} catch (error) {
|
|
378
|
+
return toToolError(`Failed to list bugs: ${error instanceof Error ? error.message : String(error)}`);
|
|
379
|
+
}
|
|
380
|
+
});
|
|
381
|
+
mcp.registerTool("get_bug", {
|
|
382
|
+
description: "Read one bug in full from the user's Happy bug board: its description, screenshots, every comment and how it moved between states. Use when the user asks about a specific bug, or before editing one so the rewrite keeps what is still true.",
|
|
383
|
+
title: "Get Bug",
|
|
384
|
+
inputSchema: {
|
|
385
|
+
bug: z.string().describe('Which bug, as the user refers to it: "BUG-236", "#236" or "236". An internal bug id also works.')
|
|
386
|
+
}
|
|
387
|
+
}, async (args) => {
|
|
388
|
+
const credentials = await readCredentials();
|
|
389
|
+
if (!credentials) {
|
|
390
|
+
return toToolError("No Happy credentials on this machine.");
|
|
391
|
+
}
|
|
392
|
+
try {
|
|
393
|
+
return { content: [{ type: "text", text: formatBugDetail(await getBug(credentials, args.bug)) }] };
|
|
394
|
+
} catch (error) {
|
|
395
|
+
return toToolError(`Failed to read bug: ${error instanceof Error ? error.message : String(error)}`);
|
|
396
|
+
}
|
|
397
|
+
});
|
|
299
398
|
mcp.registerTool("edit_bug", {
|
|
300
399
|
description: "Change a bug already on the user's Happy bug board: rewrite its description, add screenshots to it, or both. Use when the user wants to correct, expand or illustrate an existing bug.",
|
|
301
400
|
title: "Edit Bug",
|
|
302
401
|
inputSchema: {
|
|
303
402
|
bug: z.string().describe('Which bug, as the user refers to it: "BUG-236", "#236" or "236". An internal bug id also works.'),
|
|
304
|
-
description: z.string().optional().describe("The full replacement description. It replaces the old one outright, so carry over anything still true. Omit to leave the description alone."),
|
|
403
|
+
description: z.string().optional().describe("The full replacement description. It replaces the old one outright, so carry over anything still true \u2014 including any [[bug-image:N]] markers, which is where the Nth screenshot appears inline. Drop a marker and that image moves to the end. Omit this field to leave the description alone."),
|
|
305
404
|
images: z.array(z.string()).optional().describe("Absolute paths to screenshots on this machine, added to any already on the bug. JPEG and PNG only, 10 per bug in total, 20MB each.")
|
|
306
405
|
}
|
|
307
406
|
}, async (args) => {
|
|
@@ -341,7 +440,7 @@ ${result.stderr}`);
|
|
|
341
440
|
async function startHappyServer(client) {
|
|
342
441
|
const transports = /* @__PURE__ */ new Map();
|
|
343
442
|
const enableOrchestratorTools = shouldEnableOrchestratorTools();
|
|
344
|
-
const toolNames = ["change_title", "preview_html", "device_list", "device_exec", "submit_bug", "edit_bug", "delete_bug"];
|
|
443
|
+
const toolNames = ["change_title", "preview_html", "device_list", "device_exec", "list_bugs", "get_bug", "submit_bug", "edit_bug", "delete_bug"];
|
|
345
444
|
const originalConsoleError = console.error;
|
|
346
445
|
console.error = (...args) => {
|
|
347
446
|
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-OthK5iIu.cjs');
|
|
7
|
+
var logger = require('./persistence-BJVrfFPM.cjs');
|
|
8
|
+
var auth = require('./auth-BpoPI35K.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-BqwlWV1d.cjs');
|
|
11
|
+
var spawnHappyCLI = require('./spawnHappyCLI-C6Peiy6h.cjs');
|
|
12
|
+
var controlClient = require('./controlClient-DEk3NLK2.cjs');
|
|
13
|
+
var deviceKeys = require('./deviceKeys-CdzEV43E.cjs');
|
|
14
|
+
var install = require('./install-B8z_dWSt.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-DgjBoynq.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-CO8Q0Eh6.mjs';
|
|
6
|
+
import { authAndSetupMachineIfNeeded } from './auth-BCH_VzFY.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-36V4kFd8.mjs';
|
|
9
|
+
import { s as spawnHappyCLI } from './spawnHappyCLI-C7Fu7xsF.mjs';
|
|
10
|
+
import { isDaemonRunningCurrentlyInstalledHappyVersion, stopDaemon, cleanupDaemonState } from './controlClient-BXUvvi9h.mjs';
|
|
11
|
+
import { a as readCachedDeviceKey, d as deviceExec } from './deviceKeys-BghZEVQM.mjs';
|
|
12
|
+
import { P as PLIST_LABEL } from './install-CdGqsOnL.mjs';
|
|
13
13
|
import fastify from 'fastify';
|
|
14
14
|
import { createReadStream } from 'node:fs';
|
|
15
15
|
import { stat } from 'node:fs/promises';
|
|
@@ -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-DgjBoynq.mjs';
|
|
6
|
+
import { l as logger, i as isDebug, c as configuration, a as readSettings, p as packageJson } from './persistence-CO8Q0Eh6.mjs';
|
|
7
|
+
import { g as getProjectPath, a as claudeLocal, E as ExitCodeError, b as claudeCheckSession, s as systemPrompt } from './claudeLocal-BgGmploP.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-qav0UxBl.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-C7Fu7xsF.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-Biyy3pJR.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-C-nwXCvH.mjs';
|
|
32
|
+
import { getEnvironmentInfo } from './doctor-36V4kFd8.mjs';
|
|
33
|
+
import { notifyDaemonSessionStarted } from './controlClient-BXUvvi9h.mjs';
|
|
34
|
+
import { c as createMcpContext, r as registerKillSessionHandler, d as detectGitWorktree } from './registerKillSessionHandler-OVE8Wm5b.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-D9_P4Mhm.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-BCH_VzFY.mjs';
|
|
52
52
|
import 'qrcode-terminal';
|
|
53
|
-
import './browser-
|
|
53
|
+
import './browser-oD4Fhplt.mjs';
|
|
54
54
|
import 'open';
|
|
55
|
-
import './deviceKeys-
|
|
56
|
-
import './install-
|
|
55
|
+
import './deviceKeys-BghZEVQM.mjs';
|
|
56
|
+
import './install-CdGqsOnL.mjs';
|
|
57
57
|
import 'fastify';
|
|
58
58
|
import 'fastify-type-provider-zod';
|
|
59
59
|
import './doctor-ON7pN5G5.mjs';
|
|
@@ -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-OthK5iIu.cjs');
|
|
8
|
+
var logger = require('./persistence-BJVrfFPM.cjs');
|
|
9
|
+
var claudeLocal = require('./claudeLocal-D1aqQU3U.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-CRORmK1A.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-C6Peiy6h.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-D-tA2oNc.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-B5dg8uPo.cjs');
|
|
34
|
+
var doctor = require('./doctor-BqwlWV1d.cjs');
|
|
35
|
+
var controlClient = require('./controlClient-DEk3NLK2.cjs');
|
|
36
|
+
var registerKillSessionHandler = require('./registerKillSessionHandler-Bdw4uNLH.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-BOxbaLH3.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-BpoPI35K.cjs');
|
|
54
54
|
require('qrcode-terminal');
|
|
55
|
-
require('./browser-
|
|
55
|
+
require('./browser-BPhM1lYb.cjs');
|
|
56
56
|
require('open');
|
|
57
|
-
require('./deviceKeys-
|
|
58
|
-
require('./install-
|
|
57
|
+
require('./deviceKeys-CdzEV43E.cjs');
|
|
58
|
+
require('./install-B8z_dWSt.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-rkxGCTc2.cjs', document.baseURI).href)));
|
|
736
736
|
const __dirname$1 = path.join(__filename$1, "..");
|
|
737
737
|
function getGlobalClaudeVersion() {
|
|
738
738
|
try {
|
|
@@ -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-OthK5iIu.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-BJVrfFPM.cjs');
|
|
9
|
+
var setupOfflineReconnection = require('./setupOfflineReconnection-BHuXHSbt.cjs');
|
|
10
|
+
var loadableToolOutput = require('./loadableToolOutput-Bv22WdF2.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-CRORmK1A.cjs');
|
|
13
|
+
var run = require('./run-B5dg8uPo.cjs');
|
|
14
|
+
var registerKillSessionHandler = require('./registerKillSessionHandler-Bdw4uNLH.cjs');
|
|
15
15
|
var constants = require('./constants-E_UWYTo3.cjs');
|
|
16
|
-
var controlClient = require('./controlClient-
|
|
16
|
+
var controlClient = require('./controlClient-DEk3NLK2.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-BOxbaLH3.cjs');
|
|
42
42
|
require('chalk');
|
|
43
43
|
require('fs');
|
|
44
44
|
require('os');
|
|
45
45
|
require('tmp');
|
|
46
|
-
require('./auth-
|
|
46
|
+
require('./auth-BpoPI35K.cjs');
|
|
47
47
|
require('qrcode-terminal');
|
|
48
|
-
require('./browser-
|
|
48
|
+
require('./browser-BPhM1lYb.cjs');
|
|
49
49
|
require('open');
|
|
50
|
-
require('./doctor-
|
|
50
|
+
require('./doctor-BqwlWV1d.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-C6Peiy6h.cjs');
|
|
55
|
+
require('./deviceKeys-CdzEV43E.cjs');
|
|
56
|
+
require('./install-B8z_dWSt.cjs');
|
|
57
57
|
require('./trimIdent-4gvk9Wk6.cjs');
|
|
58
58
|
require('fastify');
|
|
59
59
|
require('fastify-type-provider-zod');
|
|
@@ -1341,8 +1341,8 @@ class CodexPermissionHandler extends setupOfflineReconnection.BasePermissionHand
|
|
|
1341
1341
|
logger.logger.debug(`${this.getLogPrefix()} Permission mode set to: ${mode}`);
|
|
1342
1342
|
}
|
|
1343
1343
|
shouldAutoApprove(toolName, toolCallId) {
|
|
1344
|
-
const alwaysAutoApproveNames = ["change_title", "happy__change_title", "preview_html", "happy__preview_html", "CodexReasoning", "think", "save_memory"];
|
|
1345
|
-
const alwaysAutoApproveIds = ["change_title", "preview_html", "save_memory"];
|
|
1344
|
+
const alwaysAutoApproveNames = ["change_title", "happy__change_title", "preview_html", "happy__preview_html", "list_bugs", "happy__list_bugs", "get_bug", "happy__get_bug", "CodexReasoning", "think", "save_memory"];
|
|
1345
|
+
const alwaysAutoApproveIds = ["change_title", "preview_html", "list_bugs", "get_bug", "save_memory"];
|
|
1346
1346
|
if (alwaysAutoApproveNames.some((name) => toolName.toLowerCase().includes(name.toLowerCase()))) {
|
|
1347
1347
|
return true;
|
|
1348
1348
|
}
|
|
@@ -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-DgjBoynq.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-CO8Q0Eh6.mjs';
|
|
7
|
+
import { B as BasePermissionHandler, c as createSessionMetadata, s as setupOfflineReconnection } from './setupOfflineReconnection-B1YuEpwl.mjs';
|
|
8
|
+
import { B as BaseReasoningProcessor, h as handleConfigMetadataEvent, s as summarizeBashToolOutput } from './loadableToolOutput-DvlJj7PM.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-qav0UxBl.mjs';
|
|
11
|
+
import { i as initialMachineMetadata, s as stopCaffeinate } from './run-C-nwXCvH.mjs';
|
|
12
|
+
import { c as createMcpContext, r as registerKillSessionHandler } from './registerKillSessionHandler-OVE8Wm5b.mjs';
|
|
13
13
|
import { g as getFirstTurnInstruction } from './constants-pmXZGibX.mjs';
|
|
14
|
-
import { notifyDaemonSessionStarted } from './controlClient-
|
|
14
|
+
import { notifyDaemonSessionStarted } from './controlClient-BXUvvi9h.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-D9_P4Mhm.mjs';
|
|
40
40
|
import 'chalk';
|
|
41
41
|
import 'fs';
|
|
42
42
|
import 'os';
|
|
43
43
|
import 'tmp';
|
|
44
|
-
import './auth-
|
|
44
|
+
import './auth-BCH_VzFY.mjs';
|
|
45
45
|
import 'qrcode-terminal';
|
|
46
|
-
import './browser-
|
|
46
|
+
import './browser-oD4Fhplt.mjs';
|
|
47
47
|
import 'open';
|
|
48
|
-
import './doctor-
|
|
48
|
+
import './doctor-36V4kFd8.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-C7Fu7xsF.mjs';
|
|
53
|
+
import './deviceKeys-BghZEVQM.mjs';
|
|
54
|
+
import './install-CdGqsOnL.mjs';
|
|
55
55
|
import './trimIdent-BAjmv_TG.mjs';
|
|
56
56
|
import 'fastify';
|
|
57
57
|
import 'fastify-type-provider-zod';
|
|
@@ -1339,8 +1339,8 @@ class CodexPermissionHandler extends BasePermissionHandler {
|
|
|
1339
1339
|
logger.debug(`${this.getLogPrefix()} Permission mode set to: ${mode}`);
|
|
1340
1340
|
}
|
|
1341
1341
|
shouldAutoApprove(toolName, toolCallId) {
|
|
1342
|
-
const alwaysAutoApproveNames = ["change_title", "happy__change_title", "preview_html", "happy__preview_html", "CodexReasoning", "think", "save_memory"];
|
|
1343
|
-
const alwaysAutoApproveIds = ["change_title", "preview_html", "save_memory"];
|
|
1342
|
+
const alwaysAutoApproveNames = ["change_title", "happy__change_title", "preview_html", "happy__preview_html", "list_bugs", "happy__list_bugs", "get_bug", "happy__get_bug", "CodexReasoning", "think", "save_memory"];
|
|
1343
|
+
const alwaysAutoApproveIds = ["change_title", "preview_html", "list_bugs", "get_bug", "save_memory"];
|
|
1344
1344
|
if (alwaysAutoApproveNames.some((name) => toolName.toLowerCase().includes(name.toLowerCase()))) {
|
|
1345
1345
|
return true;
|
|
1346
1346
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
|
-
import { A as ApiClient } from './api-
|
|
4
|
-
import { l as logger, a as readSettings } from './persistence-
|
|
5
|
-
import { i as initialMachineMetadata } from './run-
|
|
6
|
-
import { B as BasePermissionHandler, c as createSessionMetadata, s as setupOfflineReconnection } from './setupOfflineReconnection-
|
|
7
|
-
import { notifyDaemonSessionStarted } from './controlClient-
|
|
8
|
-
import { c as createMcpContext, r as registerKillSessionHandler } from './registerKillSessionHandler-
|
|
3
|
+
import { A as ApiClient } from './api-DgjBoynq.mjs';
|
|
4
|
+
import { l as logger, a as readSettings } from './persistence-CO8Q0Eh6.mjs';
|
|
5
|
+
import { i as initialMachineMetadata } from './run-C-nwXCvH.mjs';
|
|
6
|
+
import { B as BasePermissionHandler, c as createSessionMetadata, s as setupOfflineReconnection } from './setupOfflineReconnection-B1YuEpwl.mjs';
|
|
7
|
+
import { notifyDaemonSessionStarted } from './controlClient-BXUvvi9h.mjs';
|
|
8
|
+
import { c as createMcpContext, r as registerKillSessionHandler } from './registerKillSessionHandler-OVE8Wm5b.mjs';
|
|
9
9
|
import { spawn } from 'node:child_process';
|
|
10
|
-
import { n as normalizeCursorTool, C as CursorApprovalBridge } from './cursorApprovalServer-
|
|
10
|
+
import { n as normalizeCursorTool, C as CursorApprovalBridge } from './cursorApprovalServer-CU4HY7HJ.mjs';
|
|
11
11
|
import 'axios';
|
|
12
12
|
import 'node:events';
|
|
13
13
|
import 'socket.io-client';
|
|
@@ -33,23 +33,23 @@ import 'tweetnacl';
|
|
|
33
33
|
import '@stablelib/base64';
|
|
34
34
|
import 'node:readline';
|
|
35
35
|
import 'expo-server-sdk';
|
|
36
|
-
import './sessionKeyCache-
|
|
36
|
+
import './sessionKeyCache-D9_P4Mhm.mjs';
|
|
37
37
|
import 'fs';
|
|
38
38
|
import 'os';
|
|
39
39
|
import 'tmp';
|
|
40
|
-
import './auth-
|
|
40
|
+
import './auth-BCH_VzFY.mjs';
|
|
41
41
|
import 'qrcode-terminal';
|
|
42
|
-
import './browser-
|
|
42
|
+
import './browser-oD4Fhplt.mjs';
|
|
43
43
|
import 'open';
|
|
44
44
|
import 'react';
|
|
45
45
|
import 'ink';
|
|
46
|
-
import './doctor-
|
|
46
|
+
import './doctor-36V4kFd8.mjs';
|
|
47
47
|
import './doctor-ON7pN5G5.mjs';
|
|
48
48
|
import 'ps-list';
|
|
49
49
|
import 'cross-spawn';
|
|
50
|
-
import './spawnHappyCLI-
|
|
51
|
-
import './deviceKeys-
|
|
52
|
-
import './install-
|
|
50
|
+
import './spawnHappyCLI-C7Fu7xsF.mjs';
|
|
51
|
+
import './deviceKeys-BghZEVQM.mjs';
|
|
52
|
+
import './install-CdGqsOnL.mjs';
|
|
53
53
|
import './trimIdent-BAjmv_TG.mjs';
|
|
54
54
|
import 'fastify';
|
|
55
55
|
import 'fastify-type-provider-zod';
|
|
@@ -464,7 +464,7 @@ function agentMessageToAcp(message, newId) {
|
|
|
464
464
|
}
|
|
465
465
|
}
|
|
466
466
|
|
|
467
|
-
const ALWAYS_ALLOWED_TOOLS = ["change_title", "happy__change_title", "preview_html", "happy__preview_html"];
|
|
467
|
+
const ALWAYS_ALLOWED_TOOLS = ["change_title", "happy__change_title", "preview_html", "happy__preview_html", "list_bugs", "happy__list_bugs", "get_bug", "happy__get_bug"];
|
|
468
468
|
const UNATTENDED_MODES = ["yolo", "safe-yolo", "bypassPermissions"];
|
|
469
469
|
class CursorPermissionHandler extends BasePermissionHandler {
|
|
470
470
|
/** Set by "allow all tools for this session", or by an unattended mode. */
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
var node_crypto = require('node:crypto');
|
|
4
4
|
var chalk = require('chalk');
|
|
5
|
-
var api = require('./api-
|
|
6
|
-
var logger = require('./persistence-
|
|
7
|
-
var run = require('./run-
|
|
8
|
-
var setupOfflineReconnection = require('./setupOfflineReconnection-
|
|
9
|
-
var controlClient = require('./controlClient-
|
|
10
|
-
var registerKillSessionHandler = require('./registerKillSessionHandler-
|
|
5
|
+
var api = require('./api-OthK5iIu.cjs');
|
|
6
|
+
var logger = require('./persistence-BJVrfFPM.cjs');
|
|
7
|
+
var run = require('./run-B5dg8uPo.cjs');
|
|
8
|
+
var setupOfflineReconnection = require('./setupOfflineReconnection-BHuXHSbt.cjs');
|
|
9
|
+
var controlClient = require('./controlClient-DEk3NLK2.cjs');
|
|
10
|
+
var registerKillSessionHandler = require('./registerKillSessionHandler-Bdw4uNLH.cjs');
|
|
11
11
|
var node_child_process = require('node:child_process');
|
|
12
|
-
var cursorApprovalServer = require('./cursorApprovalServer-
|
|
12
|
+
var cursorApprovalServer = require('./cursorApprovalServer-PWI0z_6u.cjs');
|
|
13
13
|
require('axios');
|
|
14
14
|
require('node:events');
|
|
15
15
|
require('socket.io-client');
|
|
@@ -35,23 +35,23 @@ require('tweetnacl');
|
|
|
35
35
|
require('@stablelib/base64');
|
|
36
36
|
require('node:readline');
|
|
37
37
|
require('expo-server-sdk');
|
|
38
|
-
require('./sessionKeyCache-
|
|
38
|
+
require('./sessionKeyCache-BOxbaLH3.cjs');
|
|
39
39
|
require('fs');
|
|
40
40
|
require('os');
|
|
41
41
|
require('tmp');
|
|
42
|
-
require('./auth-
|
|
42
|
+
require('./auth-BpoPI35K.cjs');
|
|
43
43
|
require('qrcode-terminal');
|
|
44
|
-
require('./browser-
|
|
44
|
+
require('./browser-BPhM1lYb.cjs');
|
|
45
45
|
require('open');
|
|
46
46
|
require('react');
|
|
47
47
|
require('ink');
|
|
48
|
-
require('./doctor-
|
|
48
|
+
require('./doctor-BqwlWV1d.cjs');
|
|
49
49
|
require('./doctor-C08m5Z9f.cjs');
|
|
50
50
|
require('ps-list');
|
|
51
51
|
require('cross-spawn');
|
|
52
|
-
require('./spawnHappyCLI-
|
|
53
|
-
require('./deviceKeys-
|
|
54
|
-
require('./install-
|
|
52
|
+
require('./spawnHappyCLI-C6Peiy6h.cjs');
|
|
53
|
+
require('./deviceKeys-CdzEV43E.cjs');
|
|
54
|
+
require('./install-B8z_dWSt.cjs');
|
|
55
55
|
require('./trimIdent-4gvk9Wk6.cjs');
|
|
56
56
|
require('fastify');
|
|
57
57
|
require('fastify-type-provider-zod');
|
|
@@ -466,7 +466,7 @@ function agentMessageToAcp(message, newId) {
|
|
|
466
466
|
}
|
|
467
467
|
}
|
|
468
468
|
|
|
469
|
-
const ALWAYS_ALLOWED_TOOLS = ["change_title", "happy__change_title", "preview_html", "happy__preview_html"];
|
|
469
|
+
const ALWAYS_ALLOWED_TOOLS = ["change_title", "happy__change_title", "preview_html", "happy__preview_html", "list_bugs", "happy__list_bugs", "get_bug", "happy__get_bug"];
|
|
470
470
|
const UNATTENDED_MODES = ["yolo", "safe-yolo", "bypassPermissions"];
|
|
471
471
|
class CursorPermissionHandler extends setupOfflineReconnection.BasePermissionHandler {
|
|
472
472
|
/** Set by "allow all tools for this session", or by an unattended mode. */
|