very-happy-cli 0.2.152 → 0.2.153
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/{AcpBackend-CogiKCng.cjs → AcpBackend-DSt8nTYm.cjs} +2 -2
- package/dist/{AcpBackend-Bs3wwYbt.mjs → AcpBackend-YDGv4E-g.mjs} +2 -2
- package/dist/{AcpSessionManager-BT8PJMEm.mjs → AcpSessionManager-Cxf5HQX1.mjs} +1 -1
- package/dist/{AcpSessionManager-BazkBuFo.cjs → AcpSessionManager-uov6I9C8.cjs} +1 -1
- package/dist/{agentGuidance-CqBn77AI.cjs → agentGuidance-BM4kMNyr.cjs} +1 -1
- package/dist/{agentGuidance-Daxn5Nvj.mjs → agentGuidance-C8unGWp7.mjs} +1 -1
- package/dist/{agentHome-CpJjrQZc.cjs → agentHome-BJ7bde35.cjs} +3 -3
- package/dist/{agentHome-CCYfs8Ec.mjs → agentHome-D68Xh2ae.mjs} +3 -3
- package/dist/{auto-DncmTDvw.cjs → auto-C-90ojIH.cjs} +7 -7
- package/dist/{auto-DV5emt1-.mjs → auto-CcXxfqkC.mjs} +7 -7
- package/dist/codex/happyMcpStdioBridge.cjs +2 -2
- package/dist/codex/happyMcpStdioBridge.mjs +2 -2
- package/dist/{config-DbKpQpdL.mjs → config-CHJ189UJ.mjs} +5 -5
- package/dist/{config-DeJgSMh-.cjs → config-D23kF0_u.cjs} +5 -5
- package/dist/{index-CN7OF2cU.mjs → index-BXA9fxbK.mjs} +5 -5
- package/dist/{index-BauTv2jB.mjs → index-BacwoXzs.mjs} +61 -41
- package/dist/{index-DahaLbu4.mjs → index-BgYZGODP.mjs} +9 -9
- package/dist/{index-CRaJ9k2p.cjs → index-D49WvbDT.cjs} +5 -5
- package/dist/{index-imt4mC41.cjs → index-DEOVn46R.cjs} +9 -9
- package/dist/{index-ZIW1jrYm.cjs → index-DHrwHxHf.cjs} +83 -62
- package/dist/index.cjs +5 -5
- package/dist/index.mjs +5 -5
- package/dist/{install-CDR3qBhs.cjs → install-BiOXBnnS.cjs} +1 -1
- package/dist/{install-C1K3nrxF.mjs → install-Ca7_Z3bV.mjs} +1 -1
- package/dist/{installPiTools-C-Lxv4Bt.mjs → installPiTools-Cj7yU9Fc.mjs} +2 -1
- package/dist/{installPiTools-BKnXjrVu.cjs → installPiTools-DuZ6jZvX.cjs} +3 -2
- package/dist/{installTerminalHooks-BoDxpaBO.cjs → installTerminalHooks-BF0kL0ae.cjs} +7 -7
- package/dist/{installTerminalHooks-VvmlO6Ue.mjs → installTerminalHooks-Bpl32K75.mjs} +6 -6
- package/dist/lib.cjs +3 -3
- package/dist/lib.mjs +3 -3
- package/dist/{limits-CKR_HJnO.mjs → limits-BtAuKRl2.mjs} +7 -7
- package/dist/{limits-BNTWyUaZ.cjs → limits-DY_sFA3J.cjs} +7 -7
- package/dist/{mcp-D4dAo5BQ.mjs → mcp-DQkmk4VV.mjs} +14 -7
- package/dist/{mcp-CCKCKL6l.cjs → mcp-JpqI2POW.cjs} +14 -6
- package/dist/piExtension.d.mts +4 -1
- package/dist/piExtension.mjs +24 -1
- package/dist/{piRuntime-CW-XA4rz.mjs → piRuntime-DBpe12NN.mjs} +2 -2
- package/dist/{piRuntime-Bn5ypbjH.cjs → piRuntime-DRbbeQ72.cjs} +2 -2
- package/dist/{piTerminal-BLSXK1u2.mjs → piTerminal-BoHvPEZ_.mjs} +8 -7
- package/dist/{piTerminal-B7K75aXB.cjs → piTerminal-qdJ9KZVL.cjs} +8 -7
- package/dist/{runGemini-Bgg1BzDK.cjs → runGemini-CtOEFvhf.cjs} +8 -8
- package/dist/{runGemini-D5N11LxO.mjs → runGemini-YqH7a-7O.mjs} +7 -7
- package/dist/{runOpenClaw-CCpyKbrn.mjs → runOpenClaw-DSSyFQBb.mjs} +6 -6
- package/dist/{runOpenClaw-B9qWHybc.cjs → runOpenClaw-DoqZXBvL.cjs} +6 -6
- package/dist/{send-wl9ei8yG.cjs → send-9075kHZP.cjs} +5 -5
- package/dist/{send-C44kcXz5.mjs → send-Cs-RwqNf.mjs} +5 -5
- package/dist/{sessions-DXJEcUg6.mjs → sessions-iBnYzVUK.mjs} +5 -5
- package/dist/{sessions-Tad8elmy.cjs → sessions-qULzUzlI.cjs} +5 -5
- package/dist/{spawn-BOlb5y1_.mjs → spawn-C6fRkedx.mjs} +5 -5
- package/dist/{spawn-DA8WAFmm.cjs → spawn-od9V23cc.cjs} +5 -5
- package/dist/{teams-Bs8lI887.mjs → teams-CkrWQ4uM.mjs} +6 -6
- package/dist/{teams-qVLrFcdd.cjs → teams-CrCzU-AV.cjs} +6 -6
- package/dist/terminalTitleSuggest-DKgX3osW.mjs +38 -0
- package/dist/terminalTitleSuggest-Dji8I0Jy.cjs +45 -0
- package/dist/{todo-mCMoGjJk.cjs → todo-BCT_ZPuV.cjs} +2 -2
- package/dist/{todo-nzsqGZqp.mjs → todo-aCZmSt27.mjs} +2 -2
- package/dist/{types-xKrxbCRv.mjs → types-BvqOVUOW.mjs} +11 -6
- package/dist/{types-CN28qJl7.cjs → types-CUCU7Vw8.cjs} +13 -8
- package/package.json +7 -7
- package/dist/projectPath-CSpqWdxp.mjs +0 -10
- package/dist/projectPath-ChLhdOyt.cjs +0 -13
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-DHrwHxHf.cjs');
|
|
4
4
|
var claudeAgentSdk = require('@anthropic-ai/claude-agent-sdk');
|
|
5
5
|
require('chalk');
|
|
6
6
|
require('node:os');
|
|
7
7
|
require('node:crypto');
|
|
8
|
-
require('./types-
|
|
8
|
+
require('./types-CUCU7Vw8.cjs');
|
|
9
9
|
require('axios');
|
|
10
|
-
require('./limits-
|
|
10
|
+
require('./limits-DY_sFA3J.cjs');
|
|
11
11
|
require('node:fs/promises');
|
|
12
12
|
require('node:fs');
|
|
13
13
|
require('node:path');
|
|
@@ -23,7 +23,7 @@ require('fs/promises');
|
|
|
23
23
|
require('crypto');
|
|
24
24
|
require('path');
|
|
25
25
|
require('cross-spawn');
|
|
26
|
-
require('./
|
|
26
|
+
require('./terminalTitleSuggest-Dji8I0Jy.cjs');
|
|
27
27
|
require('url');
|
|
28
28
|
require('os');
|
|
29
29
|
require('node:child_process');
|
|
@@ -32,7 +32,7 @@ require('fs');
|
|
|
32
32
|
require('node:readline');
|
|
33
33
|
require('@anthropic-ai/sandbox-runtime');
|
|
34
34
|
require('expo-server-sdk');
|
|
35
|
-
require('./agentGuidance-
|
|
35
|
+
require('./agentGuidance-BM4kMNyr.cjs');
|
|
36
36
|
require('ink');
|
|
37
37
|
require('react');
|
|
38
38
|
require('ps-list');
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var AcpBackend = require('./AcpBackend-
|
|
4
|
-
var persistence = require('./limits-
|
|
5
|
-
var AcpSessionManager = require('./AcpSessionManager-
|
|
6
|
-
var index$1 = require('./index-
|
|
7
|
-
var piRuntime = require('./piRuntime-
|
|
3
|
+
var AcpBackend = require('./AcpBackend-DSt8nTYm.cjs');
|
|
4
|
+
var persistence = require('./limits-DY_sFA3J.cjs');
|
|
5
|
+
var AcpSessionManager = require('./AcpSessionManager-uov6I9C8.cjs');
|
|
6
|
+
var index$1 = require('./index-DHrwHxHf.cjs');
|
|
7
|
+
var piRuntime = require('./piRuntime-DRbbeQ72.cjs');
|
|
8
8
|
var node_crypto = require('node:crypto');
|
|
9
9
|
var path = require('node:path');
|
|
10
|
-
var index = require('./types-
|
|
11
|
-
var
|
|
10
|
+
var index = require('./types-CUCU7Vw8.cjs');
|
|
11
|
+
var terminalTitleSuggest = require('./terminalTitleSuggest-Dji8I0Jy.cjs');
|
|
12
12
|
require('node:child_process');
|
|
13
13
|
require('@agentclientprotocol/sdk');
|
|
14
14
|
require('node:fs/promises');
|
|
@@ -21,7 +21,7 @@ require('node:util');
|
|
|
21
21
|
require('@paralleldrive/cuid2');
|
|
22
22
|
require('cross-spawn');
|
|
23
23
|
require('node:readline');
|
|
24
|
-
require('./agentGuidance-
|
|
24
|
+
require('./agentGuidance-BM4kMNyr.cjs');
|
|
25
25
|
require('fs/promises');
|
|
26
26
|
require('ink');
|
|
27
27
|
require('react');
|
|
@@ -688,7 +688,7 @@ async function runAcp(opts) {
|
|
|
688
688
|
if (opts.agentName === "pi") session.updateAgentState((state2) => ({ ...state2, contextUsage: null }));
|
|
689
689
|
const mcpServers = {
|
|
690
690
|
happy: {
|
|
691
|
-
command: path.join(
|
|
691
|
+
command: path.join(terminalTitleSuggest.projectPath(), "bin", "very-happy-mcp.mjs"),
|
|
692
692
|
args: ["--url", happyServer.url]
|
|
693
693
|
}
|
|
694
694
|
};
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
4
|
var os = require('node:os');
|
|
5
5
|
var node_crypto = require('node:crypto');
|
|
6
|
-
var index = require('./types-
|
|
7
|
-
var persistence = require('./limits-
|
|
6
|
+
var index = require('./types-CUCU7Vw8.cjs');
|
|
7
|
+
var persistence = require('./limits-DY_sFA3J.cjs');
|
|
8
8
|
var spawn = require('cross-spawn');
|
|
9
9
|
var path = require('node:path');
|
|
10
10
|
var node_readline = require('node:readline');
|
|
11
11
|
var node_fs = require('node:fs');
|
|
12
|
-
var
|
|
13
|
-
var agentGuidance = require('./agentGuidance-
|
|
12
|
+
var terminalTitleSuggest = require('./terminalTitleSuggest-Dji8I0Jy.cjs');
|
|
13
|
+
var agentGuidance = require('./agentGuidance-BM4kMNyr.cjs');
|
|
14
14
|
var promises = require('node:fs/promises');
|
|
15
15
|
var fs = require('fs/promises');
|
|
16
16
|
var ink = require('ink');
|
|
@@ -522,7 +522,7 @@ class ExitCodeError extends Error {
|
|
|
522
522
|
this.exitCode = exitCode;
|
|
523
523
|
}
|
|
524
524
|
}
|
|
525
|
-
const claudeCliPath = path.resolve(path.join(
|
|
525
|
+
const claudeCliPath = path.resolve(path.join(terminalTitleSuggest.projectPath(), "scripts", "claude_local_launcher.cjs"));
|
|
526
526
|
function quoteShellArg(value) {
|
|
527
527
|
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
528
528
|
}
|
|
@@ -4878,8 +4878,8 @@ function createSessionMetadata(opts) {
|
|
|
4878
4878
|
...opts.teamOperationId ? { teamOperationId: opts.teamOperationId } : {},
|
|
4879
4879
|
homeDir: os.homedir(),
|
|
4880
4880
|
happyHomeDir: persistence.configuration.happyHomeDir,
|
|
4881
|
-
happyLibDir:
|
|
4882
|
-
happyToolsDir: path.resolve(
|
|
4881
|
+
happyLibDir: terminalTitleSuggest.projectPath(),
|
|
4882
|
+
happyToolsDir: path.resolve(terminalTitleSuggest.projectPath(), "tools", "unpacked"),
|
|
4883
4883
|
startedFromDaemon: opts.startedBy === "daemon",
|
|
4884
4884
|
hostPid: process.pid,
|
|
4885
4885
|
startedBy: opts.startedBy || "terminal",
|
|
@@ -5206,7 +5206,7 @@ function printCliUpdateStatus(state) {
|
|
|
5206
5206
|
console.log(chalk.yellow(" \u25B3 A newer CLI is available."));
|
|
5207
5207
|
}
|
|
5208
5208
|
if (summary.installCommand) console.log(` Update: ${summary.installCommand}`);
|
|
5209
|
-
const facts = gatherInstallLocationFacts(
|
|
5209
|
+
const facts = gatherInstallLocationFacts(terminalTitleSuggest.projectPath());
|
|
5210
5210
|
for (const warning of facts ? installLocationWarnings(facts, state?.cliUpdate?.recommendedVersion ?? void 0) : []) {
|
|
5211
5211
|
console.log(chalk.yellow(` \u26A0 ${warning}`));
|
|
5212
5212
|
}
|
|
@@ -5338,7 +5338,7 @@ ${typeLabels[type] || type}:`));
|
|
|
5338
5338
|
console.log(chalk.yellow("No log files found"));
|
|
5339
5339
|
}
|
|
5340
5340
|
console.log(chalk.bold("\n\u{1F527} Daemon Spawn Diagnostics"));
|
|
5341
|
-
const projectRoot =
|
|
5341
|
+
const projectRoot = terminalTitleSuggest.projectPath();
|
|
5342
5342
|
const wrapperPath = path.join(projectRoot, "bin", "very-happy.mjs");
|
|
5343
5343
|
const cliEntrypoint = path.join(projectRoot, "dist", "index.mjs");
|
|
5344
5344
|
console.log(`Project Root: ${chalk.blue(projectRoot)}`);
|
|
@@ -5402,8 +5402,8 @@ ${typeLabels[type] || type}:`));
|
|
|
5402
5402
|
}
|
|
5403
5403
|
console.log(chalk.gray(" An external claude command is only needed for native terminal/mirror use."));
|
|
5404
5404
|
try {
|
|
5405
|
-
const { resolveAgentHomesForCli } = await Promise.resolve().then(function () { return require('./agentHome-
|
|
5406
|
-
const { describeAgentHome } = await Promise.resolve().then(function () { return require('./types-
|
|
5405
|
+
const { resolveAgentHomesForCli } = await Promise.resolve().then(function () { return require('./agentHome-BJ7bde35.cjs'); });
|
|
5406
|
+
const { describeAgentHome } = await Promise.resolve().then(function () { return require('./types-CUCU7Vw8.cjs'); }).then(function (n) { return n.index; });
|
|
5407
5407
|
const homes = await resolveAgentHomesForCli();
|
|
5408
5408
|
console.log(chalk.green(`\u2713 Claude config dir: ${describeAgentHome(homes.claudeConfigDir)}`));
|
|
5409
5409
|
console.log(chalk.green(`\u2713 Codex home: ${describeAgentHome(homes.codexHome)}`));
|
|
@@ -5953,7 +5953,7 @@ function getRuntime() {
|
|
|
5953
5953
|
const isBun = () => getRuntime() === "bun";
|
|
5954
5954
|
|
|
5955
5955
|
function spawnHappyCLI(args, options = {}) {
|
|
5956
|
-
const projectRoot =
|
|
5956
|
+
const projectRoot = terminalTitleSuggest.projectPath();
|
|
5957
5957
|
const entrypoint = path.join(projectRoot, "dist", "index.mjs");
|
|
5958
5958
|
let directory;
|
|
5959
5959
|
if ("cwd" in options) {
|
|
@@ -7784,7 +7784,7 @@ const defaults = {
|
|
|
7784
7784
|
npm: runNpm,
|
|
7785
7785
|
fs: { lstat: promises.lstat, readlink: promises.readlink, unlink: promises.unlink, rm: promises.rm, readFile: promises.readFile, symlink: promises.symlink, access: promises.access },
|
|
7786
7786
|
platform: process.platform,
|
|
7787
|
-
runningPackageDir:
|
|
7787
|
+
runningPackageDir: terminalTitleSuggest.projectPath()
|
|
7788
7788
|
};
|
|
7789
7789
|
async function runningVersion(deps) {
|
|
7790
7790
|
if (!deps.runningPackageDir) return null;
|
|
@@ -8144,7 +8144,7 @@ function parseJsonObject(text) {
|
|
|
8144
8144
|
return null;
|
|
8145
8145
|
}
|
|
8146
8146
|
}
|
|
8147
|
-
function resolveSdkClaudeBinary(platform = process.platform, arch = process.arch, resolver = (s) => node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-
|
|
8147
|
+
function resolveSdkClaudeBinary(platform = process.platform, arch = process.arch, resolver = (s) => node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-DHrwHxHf.cjs', document.baseURI).href))).resolve(s)) {
|
|
8148
8148
|
const platformArch = `${platform}-${arch}`;
|
|
8149
8149
|
const candidates = [
|
|
8150
8150
|
`@anthropic-ai/claude-agent-sdk-${platformArch}/claude`,
|
|
@@ -8857,8 +8857,8 @@ function createMirrorManager(deps) {
|
|
|
8857
8857
|
machineId: deps.machineId,
|
|
8858
8858
|
homeDir: os.homedir(),
|
|
8859
8859
|
happyHomeDir: persistence.configuration.happyHomeDir,
|
|
8860
|
-
happyLibDir:
|
|
8861
|
-
happyToolsDir: path.resolve(
|
|
8860
|
+
happyLibDir: terminalTitleSuggest.projectPath(),
|
|
8861
|
+
happyToolsDir: path.resolve(terminalTitleSuggest.projectPath(), "tools", "unpacked"),
|
|
8862
8862
|
startedBy: "terminal",
|
|
8863
8863
|
lifecycleState: "running",
|
|
8864
8864
|
lifecycleStateSince: Date.now(),
|
|
@@ -9380,6 +9380,20 @@ export default async function(pi) {
|
|
|
9380
9380
|
return data.result;
|
|
9381
9381
|
}
|
|
9382
9382
|
await rpc('initialize', {protocolVersion:'2024-11-05',capabilities:{},clientInfo:{name:'very-happy-pi-teams',version:'1'}});
|
|
9383
|
+
if (!managed && pi.setSessionName) {
|
|
9384
|
+
// B-500: name the pi session from its first prompt (managed sessions are titled by TitleGenerator).
|
|
9385
|
+
let titleArmed = false, generation = 0;
|
|
9386
|
+
pi.on('session_start', async () => { generation += 1; titleArmed = !pi.getSessionName?.(); });
|
|
9387
|
+
pi.on('before_agent_start', async (event) => {
|
|
9388
|
+
const prompt = event && typeof event.prompt === 'string' ? event.prompt : '';
|
|
9389
|
+
if (!titleArmed || !prompt.trim()) return;
|
|
9390
|
+
titleArmed = false;
|
|
9391
|
+
const expected = generation;
|
|
9392
|
+
rpc('very-happy/terminal-title-suggest', {prompt}).then(result => {
|
|
9393
|
+
if (result && result.title && expected === generation && !pi.getSessionName?.()) pi.setSessionName(result.title);
|
|
9394
|
+
}).catch(() => {});
|
|
9395
|
+
});
|
|
9396
|
+
}
|
|
9383
9397
|
const available = await rpc('tools/list', {});
|
|
9384
9398
|
for (const tool of available.tools || []) {
|
|
9385
9399
|
pi.registerTool({name:tool.name,label:tool.name,description:tool.description || tool.name,parameters:tool.inputSchema,
|
|
@@ -10993,7 +11007,7 @@ const initialMachineMetadata = {
|
|
|
10993
11007
|
happyCliVersion: persistence.packageJson.version,
|
|
10994
11008
|
homeDir: os$1.homedir(),
|
|
10995
11009
|
happyHomeDir: persistence.configuration.happyHomeDir,
|
|
10996
|
-
happyLibDir:
|
|
11010
|
+
happyLibDir: terminalTitleSuggest.projectPath(),
|
|
10997
11011
|
cliAvailability: startupCliAvailability,
|
|
10998
11012
|
resumeSupport: { ...index.detectResumeSupport(), rpcAvailable: true }
|
|
10999
11013
|
};
|
|
@@ -11451,7 +11465,7 @@ async function startDaemon() {
|
|
|
11451
11465
|
const sessionDesc = tmuxSessionName || "current/most recent session";
|
|
11452
11466
|
persistence.logger.debug(`[DAEMON RUN] Attempting to spawn session in tmux: ${sessionDesc}`);
|
|
11453
11467
|
const tmux = getTmuxUtilities(tmuxSessionName);
|
|
11454
|
-
const cliPath = path$1.join(
|
|
11468
|
+
const cliPath = path$1.join(terminalTitleSuggest.projectPath(), "dist", "index.mjs");
|
|
11455
11469
|
const agent = options.agent ?? "claude";
|
|
11456
11470
|
if (!isSpawnAgent(agent)) {
|
|
11457
11471
|
return {
|
|
@@ -12104,7 +12118,7 @@ async function startDaemon() {
|
|
|
12104
12118
|
};
|
|
12105
12119
|
persistence.writeDaemonState(fileState);
|
|
12106
12120
|
persistence.logger.debug("[DAEMON RUN] Daemon state written");
|
|
12107
|
-
const bundlePath = path$1.join(
|
|
12121
|
+
const bundlePath = path$1.join(terminalTitleSuggest.projectPath(), "dist", "index.mjs");
|
|
12108
12122
|
let initialBundleMtimeMs = 0;
|
|
12109
12123
|
try {
|
|
12110
12124
|
initialBundleMtimeMs = fs$1.statSync(bundlePath).mtimeMs;
|
|
@@ -12160,7 +12174,7 @@ async function startDaemon() {
|
|
|
12160
12174
|
});
|
|
12161
12175
|
const claudeAuthService = new ClaudeAuthService({
|
|
12162
12176
|
happyHomeDir: persistence.configuration.happyHomeDir,
|
|
12163
|
-
happyLibDir:
|
|
12177
|
+
happyLibDir: terminalTitleSuggest.projectPath(),
|
|
12164
12178
|
credentialSource: daemonClaudeCredentials.source,
|
|
12165
12179
|
getCredentialStore: () => claudeCredentialStoreSetting,
|
|
12166
12180
|
setCredentialStore: async (store) => {
|
|
@@ -13176,7 +13190,7 @@ function generateHookSettingsFile(port) {
|
|
|
13176
13190
|
node_fs.mkdirSync(hooksDir, { recursive: true });
|
|
13177
13191
|
const filename = `session-hook-${process.pid}.json`;
|
|
13178
13192
|
const filepath = path.join(hooksDir, filename);
|
|
13179
|
-
const forwarderScript = path.resolve(
|
|
13193
|
+
const forwarderScript = path.resolve(terminalTitleSuggest.projectPath(), "scripts", "session_hook_forwarder.cjs");
|
|
13180
13194
|
const hookCommand = `node "${forwarderScript}" ${port}`;
|
|
13181
13195
|
const settings = {
|
|
13182
13196
|
hooks: {
|
|
@@ -13413,7 +13427,7 @@ function registerSideQuestionHandler(rpc, deps) {
|
|
|
13413
13427
|
const retainMs = deps.retainMs ?? SIDE_QUESTION_RETAIN_MS;
|
|
13414
13428
|
const maxRunMs = deps.maxRunMs ?? SIDE_QUESTION_MAX_RUN_MS;
|
|
13415
13429
|
const fork = deps.run ?? (async (input) => {
|
|
13416
|
-
const { query } = await Promise.resolve().then(function () { return require('./index-
|
|
13430
|
+
const { query } = await Promise.resolve().then(function () { return require('./index-D49WvbDT.cjs'); });
|
|
13417
13431
|
return runSideQuestion(query, input);
|
|
13418
13432
|
});
|
|
13419
13433
|
const run = async (input, live) => {
|
|
@@ -13532,8 +13546,8 @@ const MAX_TITLE_CHARS = 60;
|
|
|
13532
13546
|
const GENERATION_TIMEOUT_MS = 3e4;
|
|
13533
13547
|
function resolveClaudeBinary() {
|
|
13534
13548
|
try {
|
|
13535
|
-
const require$1 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-
|
|
13536
|
-
const utilsPath = path.resolve(path.join(
|
|
13549
|
+
const require$1 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-DHrwHxHf.cjs', document.baseURI).href)));
|
|
13550
|
+
const utilsPath = path.resolve(path.join(terminalTitleSuggest.projectPath(), "scripts", "claude_version_utils.cjs"));
|
|
13537
13551
|
const { getClaudeCliPath } = require$1(utilsPath);
|
|
13538
13552
|
const path$1 = getClaudeCliPath();
|
|
13539
13553
|
if (typeof path$1 === "string" && path$1.length > 0) return path$1;
|
|
@@ -13590,7 +13604,12 @@ function runClaudeOneShot(binary, prompt) {
|
|
|
13590
13604
|
try {
|
|
13591
13605
|
child = node_child_process.spawn(binary, ["-p", "--model", "haiku", prompt], {
|
|
13592
13606
|
stdio: ["ignore", "pipe", "ignore"],
|
|
13593
|
-
|
|
13607
|
+
// HAPPY_MANAGED=1: this claude is run BY happy. The user-wide
|
|
13608
|
+
// terminal-mirror SessionStart hook exits on it, so a one-shot
|
|
13609
|
+
// spawned from inside a vh web terminal (VH_TERMINAL_ID
|
|
13610
|
+
// inherited — B-500's pi terminal bridge, or `very-happy` typed
|
|
13611
|
+
// in a terminal) never binds a mirror session to itself.
|
|
13612
|
+
env: { ...process.env, HAPPY_MANAGED: "1" }
|
|
13594
13613
|
});
|
|
13595
13614
|
} catch (error) {
|
|
13596
13615
|
persistence.logger.debug("[titleGenerator] spawn failed", { error: String(error) });
|
|
@@ -13625,6 +13644,18 @@ function runClaudeOneShot(binary, prompt) {
|
|
|
13625
13644
|
});
|
|
13626
13645
|
});
|
|
13627
13646
|
}
|
|
13647
|
+
async function suggestTitleForPrompt(prompt) {
|
|
13648
|
+
const binary = resolveClaudeBinary();
|
|
13649
|
+
if (!binary) {
|
|
13650
|
+
persistence.logger.debug("[titleGenerator] no claude binary; skipping auto-title");
|
|
13651
|
+
return null;
|
|
13652
|
+
}
|
|
13653
|
+
const stdout = await runClaudeOneShot(binary, buildPrompt(prompt));
|
|
13654
|
+
if (stdout == null) return null;
|
|
13655
|
+
const title = sanitizeTitle(stdout);
|
|
13656
|
+
if (!title) persistence.logger.debug("[titleGenerator] empty/unusable title output; skipping");
|
|
13657
|
+
return title;
|
|
13658
|
+
}
|
|
13628
13659
|
class TitleGenerator {
|
|
13629
13660
|
constructor(session) {
|
|
13630
13661
|
this.session = session;
|
|
@@ -13648,23 +13679,12 @@ class TitleGenerator {
|
|
|
13648
13679
|
});
|
|
13649
13680
|
}
|
|
13650
13681
|
async generate(firstUserMessage) {
|
|
13651
|
-
const binary = resolveClaudeBinary();
|
|
13652
|
-
if (!binary) {
|
|
13653
|
-
persistence.logger.debug("[titleGenerator] no claude binary; skipping auto-title");
|
|
13654
|
-
return;
|
|
13655
|
-
}
|
|
13656
13682
|
if (this.session.getMetadata()?.summary?.text) {
|
|
13657
13683
|
persistence.logger.debug("[titleGenerator] summary appeared before generation; skipping");
|
|
13658
13684
|
return;
|
|
13659
13685
|
}
|
|
13660
|
-
const
|
|
13661
|
-
|
|
13662
|
-
if (stdout == null) return;
|
|
13663
|
-
const title = sanitizeTitle(stdout);
|
|
13664
|
-
if (!title) {
|
|
13665
|
-
persistence.logger.debug("[titleGenerator] empty/unusable title output; skipping");
|
|
13666
|
-
return;
|
|
13667
|
-
}
|
|
13686
|
+
const title = await suggestTitleForPrompt(firstUserMessage);
|
|
13687
|
+
if (!title) return;
|
|
13668
13688
|
if (this.session.getMetadata()?.summary?.text) {
|
|
13669
13689
|
persistence.logger.debug("[titleGenerator] summary set during generation; not overwriting");
|
|
13670
13690
|
return;
|
|
@@ -13979,8 +13999,8 @@ async function runClaude(credentials, options = {}) {
|
|
|
13979
13999
|
machineId,
|
|
13980
14000
|
homeDir: os.homedir(),
|
|
13981
14001
|
happyHomeDir: persistence.configuration.happyHomeDir,
|
|
13982
|
-
happyLibDir:
|
|
13983
|
-
happyToolsDir: path.resolve(
|
|
14002
|
+
happyLibDir: terminalTitleSuggest.projectPath(),
|
|
14003
|
+
happyToolsDir: path.resolve(terminalTitleSuggest.projectPath(), "tools", "unpacked"),
|
|
13984
14004
|
startedFromDaemon: options.startedBy === "daemon",
|
|
13985
14005
|
hostPid: process.pid,
|
|
13986
14006
|
startedBy: options.startedBy || "terminal",
|
|
@@ -15761,9 +15781,9 @@ function resolveLocalSignupBootstrap(configuredMode, configuredInviteCodes, gene
|
|
|
15761
15781
|
};
|
|
15762
15782
|
}
|
|
15763
15783
|
|
|
15764
|
-
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-
|
|
15784
|
+
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-DHrwHxHf.cjs', document.baseURI).href)));
|
|
15765
15785
|
const __dirname$1 = path.dirname(__filename$1);
|
|
15766
|
-
const require_ = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-
|
|
15786
|
+
const require_ = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-DHrwHxHf.cjs', document.baseURI).href)));
|
|
15767
15787
|
const PRISMA_QUERY_ENGINE_FILES = {
|
|
15768
15788
|
"arm64-darwin": "libquery_engine-darwin-arm64.dylib.node",
|
|
15769
15789
|
"x64-darwin": "libquery_engine-darwin.dylib.node",
|
|
@@ -18279,7 +18299,7 @@ async function runCodex(opts) {
|
|
|
18279
18299
|
}
|
|
18280
18300
|
});
|
|
18281
18301
|
const happyServer = await startHappyServer(session);
|
|
18282
|
-
const bridgeEntrypoint = path.join(
|
|
18302
|
+
const bridgeEntrypoint = path.join(terminalTitleSuggest.projectPath(), "bin", "very-happy-mcp.mjs");
|
|
18283
18303
|
const mcpServers = {
|
|
18284
18304
|
happy: {
|
|
18285
18305
|
command: process.execPath,
|
|
@@ -18692,7 +18712,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
18692
18712
|
process.exit(0);
|
|
18693
18713
|
} else if (subcommand === "install-pi-tools") {
|
|
18694
18714
|
try {
|
|
18695
|
-
const { handleInstallPiTools } = await Promise.resolve().then(function () { return require('./installPiTools-
|
|
18715
|
+
const { handleInstallPiTools } = await Promise.resolve().then(function () { return require('./installPiTools-DuZ6jZvX.cjs'); });
|
|
18696
18716
|
await handleInstallPiTools(args.slice(1));
|
|
18697
18717
|
} catch (error) {
|
|
18698
18718
|
console.error(error instanceof Error ? error.message : "Pi tools installation failed");
|
|
@@ -18701,7 +18721,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
18701
18721
|
return;
|
|
18702
18722
|
} else if (subcommand === "install-terminal-hooks") {
|
|
18703
18723
|
try {
|
|
18704
|
-
const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await Promise.resolve().then(function () { return require('./installTerminalHooks-
|
|
18724
|
+
const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await Promise.resolve().then(function () { return require('./installTerminalHooks-BF0kL0ae.cjs'); });
|
|
18705
18725
|
const command = parseTerminalHooksArgs(args.slice(1));
|
|
18706
18726
|
if (command.action === "help") {
|
|
18707
18727
|
console.log(TERMINAL_HOOKS_HELP);
|
|
@@ -18718,7 +18738,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
18718
18738
|
}
|
|
18719
18739
|
} else if (subcommand === "agent-home") {
|
|
18720
18740
|
try {
|
|
18721
|
-
const { parseAgentHomeArgs, runAgentHomeCommand } = await Promise.resolve().then(function () { return require('./agentHome-
|
|
18741
|
+
const { parseAgentHomeArgs, runAgentHomeCommand } = await Promise.resolve().then(function () { return require('./agentHome-BJ7bde35.cjs'); });
|
|
18722
18742
|
await runAgentHomeCommand(parseAgentHomeArgs(args.slice(1)));
|
|
18723
18743
|
process.exit(0);
|
|
18724
18744
|
} catch (error) {
|
|
@@ -18727,7 +18747,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
18727
18747
|
}
|
|
18728
18748
|
} else if (subcommand === "spawn") {
|
|
18729
18749
|
try {
|
|
18730
|
-
const { handleSpawnCommand } = await Promise.resolve().then(function () { return require('./spawn-
|
|
18750
|
+
const { handleSpawnCommand } = await Promise.resolve().then(function () { return require('./spawn-od9V23cc.cjs'); });
|
|
18731
18751
|
await handleSpawnCommand(args.slice(1));
|
|
18732
18752
|
} catch (error) {
|
|
18733
18753
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -18739,7 +18759,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
18739
18759
|
return;
|
|
18740
18760
|
} else if (subcommand === "sessions") {
|
|
18741
18761
|
try {
|
|
18742
|
-
const { handleSessionsCommand } = await Promise.resolve().then(function () { return require('./sessions-
|
|
18762
|
+
const { handleSessionsCommand } = await Promise.resolve().then(function () { return require('./sessions-qULzUzlI.cjs'); });
|
|
18743
18763
|
await handleSessionsCommand(args.slice(1));
|
|
18744
18764
|
} catch (error) {
|
|
18745
18765
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -18751,7 +18771,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
18751
18771
|
return;
|
|
18752
18772
|
} else if (subcommand === "send") {
|
|
18753
18773
|
try {
|
|
18754
|
-
const { handleSendCommand } = await Promise.resolve().then(function () { return require('./send-
|
|
18774
|
+
const { handleSendCommand } = await Promise.resolve().then(function () { return require('./send-9075kHZP.cjs'); });
|
|
18755
18775
|
await handleSendCommand(args.slice(1));
|
|
18756
18776
|
} catch (error) {
|
|
18757
18777
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -18857,9 +18877,9 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
18857
18877
|
if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
|
|
18858
18878
|
const projectId = args[3];
|
|
18859
18879
|
try {
|
|
18860
|
-
const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-
|
|
18861
|
-
const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await Promise.resolve().then(function () { return require('./limits-
|
|
18862
|
-
const { ApiClient: ApiClient2 } = await Promise.resolve().then(function () { return require('./types-
|
|
18880
|
+
const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-D23kF0_u.cjs'); });
|
|
18881
|
+
const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await Promise.resolve().then(function () { return require('./limits-DY_sFA3J.cjs'); }).then(function (n) { return n.persistence; });
|
|
18882
|
+
const { ApiClient: ApiClient2 } = await Promise.resolve().then(function () { return require('./types-CUCU7Vw8.cjs'); }).then(function (n) { return n.api; });
|
|
18863
18883
|
let userEmail = void 0;
|
|
18864
18884
|
try {
|
|
18865
18885
|
const credentials = await readCredentialsForConfiguredRelay2();
|
|
@@ -18890,7 +18910,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
18890
18910
|
}
|
|
18891
18911
|
if (geminiSubcommand === "project" && args[2] === "get") {
|
|
18892
18912
|
try {
|
|
18893
|
-
const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-
|
|
18913
|
+
const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-D23kF0_u.cjs'); });
|
|
18894
18914
|
const config = readGeminiLocalConfig();
|
|
18895
18915
|
if (config.googleCloudProject) {
|
|
18896
18916
|
console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
|
|
@@ -18930,7 +18950,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
18930
18950
|
process.exit(0);
|
|
18931
18951
|
}
|
|
18932
18952
|
try {
|
|
18933
|
-
const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-
|
|
18953
|
+
const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-CtOEFvhf.cjs'); });
|
|
18934
18954
|
let startedBy = void 0;
|
|
18935
18955
|
for (let i = 1; i < args.length; i++) {
|
|
18936
18956
|
if (args[i] === "--started-by") {
|
|
@@ -18953,7 +18973,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
18953
18973
|
} else if (subcommand === "pi") {
|
|
18954
18974
|
if (args[1] === "--terminal") {
|
|
18955
18975
|
try {
|
|
18956
|
-
const { runPiTerminal } = await Promise.resolve().then(function () { return require('./piTerminal-
|
|
18976
|
+
const { runPiTerminal } = await Promise.resolve().then(function () { return require('./piTerminal-qdJ9KZVL.cjs'); });
|
|
18957
18977
|
process.exitCode = await runPiTerminal(args.slice(2));
|
|
18958
18978
|
} catch (error) {
|
|
18959
18979
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -18970,7 +18990,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
18970
18990
|
}
|
|
18971
18991
|
};
|
|
18972
18992
|
try {
|
|
18973
|
-
const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-
|
|
18993
|
+
const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-DEOVn46R.cjs'); });
|
|
18974
18994
|
const parsed = parsePiRunnerArgs(args.slice(1));
|
|
18975
18995
|
const resolved = resolveAcpAgentConfig(["pi", ...parsed.passthrough]);
|
|
18976
18996
|
const { credentials } = await authAndSetupMachineIfNeeded();
|
|
@@ -18998,7 +19018,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
18998
19018
|
return;
|
|
18999
19019
|
} else if (subcommand === "acp") {
|
|
19000
19020
|
try {
|
|
19001
|
-
const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-
|
|
19021
|
+
const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-DEOVn46R.cjs'); });
|
|
19002
19022
|
let startedBy = void 0;
|
|
19003
19023
|
let verbose = false;
|
|
19004
19024
|
const acpArgs = [];
|
|
@@ -19038,7 +19058,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
19038
19058
|
return;
|
|
19039
19059
|
} else if (subcommand === "openclaw") {
|
|
19040
19060
|
try {
|
|
19041
|
-
const { runOpenClaw } = await Promise.resolve().then(function () { return require('./runOpenClaw-
|
|
19061
|
+
const { runOpenClaw } = await Promise.resolve().then(function () { return require('./runOpenClaw-DoqZXBvL.cjs'); });
|
|
19042
19062
|
let startedBy = void 0;
|
|
19043
19063
|
let verbose = false;
|
|
19044
19064
|
let gatewayUrl;
|
|
@@ -19089,7 +19109,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
19089
19109
|
return;
|
|
19090
19110
|
} else if (subcommand === "todo") {
|
|
19091
19111
|
try {
|
|
19092
|
-
const { handleTodoCommand } = await Promise.resolve().then(function () { return require('./todo-
|
|
19112
|
+
const { handleTodoCommand } = await Promise.resolve().then(function () { return require('./todo-BCT_ZPuV.cjs'); });
|
|
19093
19113
|
await handleTodoCommand(args.slice(1));
|
|
19094
19114
|
} catch (error) {
|
|
19095
19115
|
console.error(JSON.stringify({ error: error instanceof Error ? error.message : "Todo command failed" }));
|
|
@@ -19098,7 +19118,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
19098
19118
|
return;
|
|
19099
19119
|
} else if (subcommand === "teams") {
|
|
19100
19120
|
try {
|
|
19101
|
-
const { handleTeamsCommand } = await Promise.resolve().then(function () { return require('./teams-
|
|
19121
|
+
const { handleTeamsCommand } = await Promise.resolve().then(function () { return require('./teams-CrCzU-AV.cjs'); });
|
|
19102
19122
|
await handleTeamsCommand(args.slice(1));
|
|
19103
19123
|
} catch (error) {
|
|
19104
19124
|
console.error(error instanceof Error ? error.message : "Teams command failed");
|
|
@@ -19107,7 +19127,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
19107
19127
|
return;
|
|
19108
19128
|
} else if (subcommand === "auto") {
|
|
19109
19129
|
try {
|
|
19110
|
-
const { handleAutoCommand } = await Promise.resolve().then(function () { return require('./auto-
|
|
19130
|
+
const { handleAutoCommand } = await Promise.resolve().then(function () { return require('./auto-C-90ojIH.cjs'); });
|
|
19111
19131
|
await handleAutoCommand(args.slice(1));
|
|
19112
19132
|
} catch (error) {
|
|
19113
19133
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Automation command failed");
|
|
@@ -19119,7 +19139,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
19119
19139
|
return;
|
|
19120
19140
|
} else if (subcommand === "mcp" && (args.length === 1 || args.length === 2 && args[1] === "--terminal-tools")) {
|
|
19121
19141
|
try {
|
|
19122
|
-
const { handleMcpCommand } = await Promise.resolve().then(function () { return require('./mcp-
|
|
19142
|
+
const { handleMcpCommand } = await Promise.resolve().then(function () { return require('./mcp-JpqI2POW.cjs'); });
|
|
19123
19143
|
await handleMcpCommand(args[1] === "--terminal-tools");
|
|
19124
19144
|
} catch (error) {
|
|
19125
19145
|
process.stderr.write(`[very-happy mcp] Fatal: ${error instanceof Error ? error.message : String(error)}
|
|
@@ -19538,6 +19558,7 @@ exports.setupOfflineReconnection = setupOfflineReconnection;
|
|
|
19538
19558
|
exports.stageClaudeAttachments = stageClaudeAttachments;
|
|
19539
19559
|
exports.startHappyServer = startHappyServer;
|
|
19540
19560
|
exports.stopSession = stopSession;
|
|
19561
|
+
exports.suggestTitleForPrompt = suggestTitleForPrompt;
|
|
19541
19562
|
exports.tmuxSupportsSessionEnv = tmuxSupportsSessionEnv;
|
|
19542
19563
|
exports.triggerFromFlags = triggerFromFlags;
|
|
19543
19564
|
exports.waitForSessionKey = waitForSessionKey;
|
package/dist/index.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
require('chalk');
|
|
4
|
-
require('./index-
|
|
5
|
-
require('./limits-
|
|
4
|
+
require('./index-DHrwHxHf.cjs');
|
|
5
|
+
require('./limits-DY_sFA3J.cjs');
|
|
6
6
|
require('zod');
|
|
7
|
-
require('./types-
|
|
7
|
+
require('./types-CUCU7Vw8.cjs');
|
|
8
8
|
require('node:child_process');
|
|
9
9
|
require('node:os');
|
|
10
10
|
require('node:crypto');
|
|
@@ -12,10 +12,10 @@ require('cross-spawn');
|
|
|
12
12
|
require('node:path');
|
|
13
13
|
require('node:readline');
|
|
14
14
|
require('node:fs');
|
|
15
|
-
require('./
|
|
15
|
+
require('./terminalTitleSuggest-Dji8I0Jy.cjs');
|
|
16
16
|
require('path');
|
|
17
17
|
require('url');
|
|
18
|
-
require('./agentGuidance-
|
|
18
|
+
require('./agentGuidance-BM4kMNyr.cjs');
|
|
19
19
|
require('node:fs/promises');
|
|
20
20
|
require('fs/promises');
|
|
21
21
|
require('ink');
|
package/dist/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import 'chalk';
|
|
2
|
-
import './index-
|
|
3
|
-
import './limits-
|
|
2
|
+
import './index-BacwoXzs.mjs';
|
|
3
|
+
import './limits-BtAuKRl2.mjs';
|
|
4
4
|
import 'zod';
|
|
5
|
-
import './types-
|
|
5
|
+
import './types-BvqOVUOW.mjs';
|
|
6
6
|
import 'node:child_process';
|
|
7
7
|
import 'node:os';
|
|
8
8
|
import 'node:crypto';
|
|
@@ -10,10 +10,10 @@ import 'cross-spawn';
|
|
|
10
10
|
import 'node:path';
|
|
11
11
|
import 'node:readline';
|
|
12
12
|
import 'node:fs';
|
|
13
|
-
import './
|
|
13
|
+
import './terminalTitleSuggest-DKgX3osW.mjs';
|
|
14
14
|
import 'path';
|
|
15
15
|
import 'url';
|
|
16
|
-
import './agentGuidance-
|
|
16
|
+
import './agentGuidance-C8unGWp7.mjs';
|
|
17
17
|
import 'node:fs/promises';
|
|
18
18
|
import 'fs/promises';
|
|
19
19
|
import 'ink';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var node_crypto = require('node:crypto');
|
|
4
4
|
var promises = require('node:fs/promises');
|
|
5
5
|
var path = require('node:path');
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-DHrwHxHf.cjs');
|
|
7
7
|
|
|
8
8
|
async function assertPrivateDestination(directory) {
|
|
9
9
|
for (let path$1 = directory; ; path$1 = path.dirname(path$1)) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHash, randomUUID } from 'node:crypto';
|
|
2
2
|
import { unlink, rmdir, mkdir, lstat, readFile, writeFile, rename } from 'node:fs/promises';
|
|
3
3
|
import { join, resolve, dirname } from 'node:path';
|
|
4
|
-
import {
|
|
4
|
+
import { z as TEAM_SKILL } from './index-BacwoXzs.mjs';
|
|
5
5
|
|
|
6
6
|
async function assertPrivateDestination(directory) {
|
|
7
7
|
for (let path = directory; ; path = dirname(path)) {
|
|
@@ -3,9 +3,10 @@ import { homedir } from 'node:os';
|
|
|
3
3
|
import { join, resolve, dirname } from 'node:path';
|
|
4
4
|
import { pathToFileURL } from 'node:url';
|
|
5
5
|
import { randomUUID } from 'node:crypto';
|
|
6
|
-
import { p as projectPath } from './
|
|
6
|
+
import { p as projectPath } from './terminalTitleSuggest-DKgX3osW.mjs';
|
|
7
7
|
import 'path';
|
|
8
8
|
import 'url';
|
|
9
|
+
import 'zod';
|
|
9
10
|
|
|
10
11
|
const HEADER = "// Managed by Very Happy: native Pi terminal tools.\n";
|
|
11
12
|
const PI_TOOLS_HELP = `very-happy install-pi-tools - enable tools in native Pi
|
|
@@ -5,9 +5,10 @@ var os = require('node:os');
|
|
|
5
5
|
var path = require('node:path');
|
|
6
6
|
var node_url = require('node:url');
|
|
7
7
|
var node_crypto = require('node:crypto');
|
|
8
|
-
var
|
|
8
|
+
var terminalTitleSuggest = require('./terminalTitleSuggest-Dji8I0Jy.cjs');
|
|
9
9
|
require('path');
|
|
10
10
|
require('url');
|
|
11
|
+
require('zod');
|
|
11
12
|
|
|
12
13
|
const HEADER = "// Managed by Very Happy: native Pi terminal tools.\n";
|
|
13
14
|
const PI_TOOLS_HELP = `very-happy install-pi-tools - enable tools in native Pi
|
|
@@ -51,7 +52,7 @@ async function installPiTools(remove = false) {
|
|
|
51
52
|
await promises.unlink(target);
|
|
52
53
|
return target;
|
|
53
54
|
}
|
|
54
|
-
const content = piToolsLoader(path.resolve(
|
|
55
|
+
const content = piToolsLoader(path.resolve(terminalTitleSuggest.projectPath(), "dist/piExtension.mjs"));
|
|
55
56
|
await promises.mkdir(path.dirname(target), { recursive: true, mode: 448 });
|
|
56
57
|
const temporary = `${target}.${node_crypto.randomUUID()}.new`;
|
|
57
58
|
try {
|