very-happy-cli 0.2.141 → 0.2.143

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.
Files changed (57) hide show
  1. package/dist/{AcpBackend-CnWSwaHk.cjs → AcpBackend-B8oehrfU.cjs} +2 -2
  2. package/dist/{AcpBackend-CWmjboOm.mjs → AcpBackend-LEgn9vol.mjs} +2 -2
  3. package/dist/{AcpSessionManager-Dxt78rPO.cjs → AcpSessionManager-BomdfyhZ.cjs} +1 -1
  4. package/dist/{AcpSessionManager-CtXoi6PN.mjs → AcpSessionManager-Yfbs5bi2.mjs} +1 -1
  5. package/dist/{agentGuidance-Do7cQka3.mjs → agentGuidance-BU4hxm8M.mjs} +1 -1
  6. package/dist/{agentGuidance-B9ENxSaS.cjs → agentGuidance-CJSl54ua.cjs} +1 -1
  7. package/dist/codex/happyMcpStdioBridge.cjs +2 -2
  8. package/dist/codex/happyMcpStdioBridge.mjs +2 -2
  9. package/dist/{config-Dn7nAHcA.cjs → config-CfqWoHmO.cjs} +5 -4
  10. package/dist/{config-DY57frJF.mjs → config-euZ_K5Lo.mjs} +5 -4
  11. package/dist/{index-BSVgut_Y.cjs → index-BREtikhm.cjs} +5 -4
  12. package/dist/{index-3STVDtNO.cjs → index-Bj68y6ee.cjs} +12 -40
  13. package/dist/{index-ChWePQEd.cjs → index-C510dSUn.cjs} +188 -132
  14. package/dist/{index-C55sW8E9.mjs → index-DoiG88oX.mjs} +169 -114
  15. package/dist/{index-DhfgAB8K.mjs → index-PM_SsRpw.mjs} +5 -4
  16. package/dist/{index-Dz6FgNFg.mjs → index-ZOMC8Gzn.mjs} +11 -39
  17. package/dist/index.cjs +7 -6
  18. package/dist/index.mjs +7 -6
  19. package/dist/installPiTools-BKnXjrVu.cjs +82 -0
  20. package/dist/installPiTools-C-Lxv4Bt.mjs +77 -0
  21. package/dist/{installTerminalHooks-zmtIrf3E.mjs → installTerminalHooks-BGVQqbgq.mjs} +8 -7
  22. package/dist/{installTerminalHooks--jkP17uE.cjs → installTerminalHooks-C_jraM1j.cjs} +9 -8
  23. package/dist/lib.cjs +3 -2
  24. package/dist/lib.d.cts +6 -1
  25. package/dist/lib.d.mts +6 -1
  26. package/dist/lib.mjs +3 -2
  27. package/dist/{limits-DbLWXlJm.cjs → limits-B3oVgqBJ.cjs} +29 -10
  28. package/dist/{limits-DT5Yk_UH.mjs → limits-uABU-yq3.mjs} +29 -11
  29. package/dist/{mcp-Bzy-X9kI.mjs → mcp-CfbTQXyh.mjs} +28 -14
  30. package/dist/{mcp-kE0n1dBF.cjs → mcp-G-3lL_KH.cjs} +29 -15
  31. package/dist/piExtension.d.mts +17 -0
  32. package/dist/piExtension.mjs +84 -0
  33. package/dist/piRuntime-BE6iYQwU.mjs +37 -0
  34. package/dist/piRuntime-CWE-1W-y.cjs +39 -0
  35. package/dist/piTerminal-Dyc_9pGP.cjs +132 -0
  36. package/dist/piTerminal-rqKn1_Zy.mjs +129 -0
  37. package/dist/projectPath-CSpqWdxp.mjs +10 -0
  38. package/dist/projectPath-ChLhdOyt.cjs +13 -0
  39. package/dist/{runGemini-BmdhYEzM.mjs → runGemini-BMlXIaTL.mjs} +8 -7
  40. package/dist/{runGemini-CxUz95A1.cjs → runGemini-C6qMFzcn.cjs} +9 -8
  41. package/dist/{runOpenClaw-RLIFJx61.cjs → runOpenClaw-C2_aCP7v.cjs} +6 -5
  42. package/dist/{runOpenClaw-CYpO3Vv8.mjs → runOpenClaw-CoO5Vp3S.mjs} +6 -5
  43. package/dist/{send-DT04hV8o.mjs → send-CBrJylJc.mjs} +5 -4
  44. package/dist/{send-BGcCrMUT.cjs → send-DGVwmB-p.cjs} +5 -4
  45. package/dist/{sessions-DDWTq2AG.mjs → sessions-DbLubh2N.mjs} +7 -6
  46. package/dist/{sessions-Jt9lrcrG.cjs → sessions-DyQXMN-8.cjs} +7 -6
  47. package/dist/{spawn-CdZgvthE.cjs → spawn-DIyFOn3W.cjs} +5 -4
  48. package/dist/{spawn-Ca0A70dX.mjs → spawn-wkkxEGdF.mjs} +5 -4
  49. package/dist/{teams-CzK1zg0m.mjs → teams-BTyVFK3P.mjs} +5 -4
  50. package/dist/{teams-DfVwVZ4x.cjs → teams-QOkGFjkJ.cjs} +5 -4
  51. package/dist/terminalToolContext-CFeGeaNm.mjs +7 -0
  52. package/dist/terminalToolContext-DoV9Gs7K.cjs +9 -0
  53. package/dist/{todo-4WhOom8k.mjs → todo-DoLkqdBe.mjs} +4 -3
  54. package/dist/{todo-D9nFaYpQ.cjs → todo-Du6pjwx_.cjs} +4 -3
  55. package/dist/{types-Bk3W89Z3.cjs → types-6__wqmmP.cjs} +80 -17
  56. package/dist/{types-CLosaeZT.mjs → types-BG4gFjLL.mjs} +79 -15
  57. package/package.json +11 -7
@@ -3,8 +3,8 @@
3
3
  var node_child_process = require('node:child_process');
4
4
  var sdk = require('@agentclientprotocol/sdk');
5
5
  var node_crypto = require('node:crypto');
6
- var persistence = require('./limits-DbLWXlJm.cjs');
7
- var api = require('./types-Bk3W89Z3.cjs');
6
+ var persistence = require('./limits-B3oVgqBJ.cjs');
7
+ var api = require('./types-6__wqmmP.cjs');
8
8
 
9
9
  function acpImageBlocks(attachments, supportsImages) {
10
10
  return attachments.filter((file) => ["image/jpeg", "image/png", "image/gif", "image/webp"].includes(file.mimeType)).map((file) => {
@@ -1,8 +1,8 @@
1
1
  import { spawn } from 'node:child_process';
2
2
  import { ndJsonStream, ClientSideConnection } from '@agentclientprotocol/sdk';
3
3
  import { randomUUID } from 'node:crypto';
4
- import { l as logger, p as packageJson } from './limits-DT5Yk_UH.mjs';
5
- import { j as contentLogMetadata, h as errorLogMetadata, m as delay } from './types-CLosaeZT.mjs';
4
+ import { l as logger, p as packageJson } from './limits-uABU-yq3.mjs';
5
+ import { l as contentLogMetadata, k as errorLogMetadata, m as delay } from './types-BG4gFjLL.mjs';
6
6
 
7
7
  function acpImageBlocks(attachments, supportsImages) {
8
8
  return attachments.filter((file) => ["image/jpeg", "image/png", "image/gif", "image/webp"].includes(file.mimeType)).map((file) => {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var cuid2 = require('@paralleldrive/cuid2');
4
- var api = require('./types-Bk3W89Z3.cjs');
4
+ var api = require('./types-6__wqmmP.cjs');
5
5
 
6
6
  function turnOptions(turnId, time) {
7
7
  return turnId ? { turn: turnId, time } : { time };
@@ -1,5 +1,5 @@
1
1
  import { createId } from '@paralleldrive/cuid2';
2
- import { b as streamKeyOf, d as createEnvelope } from './types-CLosaeZT.mjs';
2
+ import { b as streamKeyOf, d as createEnvelope } from './types-BG4gFjLL.mjs';
3
3
 
4
4
  function turnOptions(turnId, time) {
5
5
  return turnId ? { turn: turnId, time } : { time };
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { randomUUID } from 'node:crypto';
3
- import { n as normalizeHttpEndpoint, c as configuration, g as readSettings, r as readPersistedSessions, d as readCredentialsForConfiguredRelay } from './limits-DT5Yk_UH.mjs';
3
+ import { n as normalizeHttpEndpoint, c as configuration, f as readSettings, r as readPersistedSessions, d as readCredentialsForConfiguredRelay } from './limits-uABU-yq3.mjs';
4
4
  import { open, mkdir, rename, unlink } from 'node:fs/promises';
5
5
  import { constants } from 'node:fs';
6
6
  import { isAbsolute, join, dirname } from 'node:path';
@@ -2,7 +2,7 @@
2
2
 
3
3
  var z = require('zod');
4
4
  var node_crypto = require('node:crypto');
5
- var persistence = require('./limits-DbLWXlJm.cjs');
5
+ var persistence = require('./limits-B3oVgqBJ.cjs');
6
6
  var promises = require('node:fs/promises');
7
7
  var node_fs = require('node:fs');
8
8
  var path = require('node:path');
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var agentGuidance = require('../agentGuidance-B9ENxSaS.cjs');
3
+ var agentGuidance = require('../agentGuidance-CJSl54ua.cjs');
4
4
  var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
5
5
  var stdio_js = require('@modelcontextprotocol/sdk/server/stdio.js');
6
6
  var index_js = require('@modelcontextprotocol/sdk/client/index.js');
7
7
  var streamableHttp_js = require('@modelcontextprotocol/sdk/client/streamableHttp.js');
8
8
  var z = require('zod');
9
- var persistence = require('../limits-DbLWXlJm.cjs');
9
+ var persistence = require('../limits-B3oVgqBJ.cjs');
10
10
  require('node:crypto');
11
11
  require('node:fs/promises');
12
12
  require('node:fs');
@@ -1,10 +1,10 @@
1
- import { P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, r as registerTeamsTools } from '../agentGuidance-Do7cQka3.mjs';
1
+ import { P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, r as registerTeamsTools } from '../agentGuidance-BU4hxm8M.mjs';
2
2
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
3
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
4
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
5
5
  import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
6
6
  import { z } from 'zod';
7
- import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION } from '../limits-DT5Yk_UH.mjs';
7
+ import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION } from '../limits-uABU-yq3.mjs';
8
8
  import 'node:crypto';
9
9
  import 'node:fs/promises';
10
10
  import 'node:fs';
@@ -4,8 +4,8 @@ var fs = require('fs');
4
4
  var path = require('path');
5
5
  var os = require('os');
6
6
  var child_process = require('child_process');
7
- var persistence = require('./limits-DbLWXlJm.cjs');
8
- var index = require('./index-ChWePQEd.cjs');
7
+ var persistence = require('./limits-B3oVgqBJ.cjs');
8
+ var index = require('./index-C510dSUn.cjs');
9
9
  require('node:fs/promises');
10
10
  require('node:fs');
11
11
  require('node:os');
@@ -15,7 +15,7 @@ require('node:crypto');
15
15
  require('tweetnacl');
16
16
  require('chalk');
17
17
  require('node:util');
18
- require('./types-Bk3W89Z3.cjs');
18
+ require('./types-6__wqmmP.cjs');
19
19
  require('axios');
20
20
  require('node:events');
21
21
  require('socket.io-client');
@@ -24,13 +24,14 @@ require('util');
24
24
  require('fs/promises');
25
25
  require('crypto');
26
26
  require('cross-spawn');
27
+ require('./projectPath-ChLhdOyt.cjs');
27
28
  require('url');
28
29
  require('node:child_process');
29
30
  require('node-pty');
30
31
  require('node:readline');
31
32
  require('@anthropic-ai/sandbox-runtime');
32
33
  require('expo-server-sdk');
33
- require('./agentGuidance-B9ENxSaS.cjs');
34
+ require('./agentGuidance-CJSl54ua.cjs');
34
35
  require('ink');
35
36
  require('react');
36
37
  require('@anthropic-ai/claude-agent-sdk');
@@ -2,8 +2,8 @@ import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
2
2
  import { join } from 'path';
3
3
  import { homedir } from 'os';
4
4
  import { execSync } from 'child_process';
5
- import { l as logger } from './limits-DT5Yk_UH.mjs';
6
- import { g as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-C55sW8E9.mjs';
5
+ import { l as logger } from './limits-uABU-yq3.mjs';
6
+ import { g as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-DoiG88oX.mjs';
7
7
  import 'node:fs/promises';
8
8
  import 'node:fs';
9
9
  import 'node:os';
@@ -13,7 +13,7 @@ import 'node:crypto';
13
13
  import 'tweetnacl';
14
14
  import 'chalk';
15
15
  import 'node:util';
16
- import './types-CLosaeZT.mjs';
16
+ import './types-BG4gFjLL.mjs';
17
17
  import 'axios';
18
18
  import 'node:events';
19
19
  import 'socket.io-client';
@@ -22,13 +22,14 @@ import 'util';
22
22
  import 'fs/promises';
23
23
  import 'crypto';
24
24
  import 'cross-spawn';
25
+ import './projectPath-CSpqWdxp.mjs';
25
26
  import 'url';
26
27
  import 'node:child_process';
27
28
  import 'node-pty';
28
29
  import 'node:readline';
29
30
  import '@anthropic-ai/sandbox-runtime';
30
31
  import 'expo-server-sdk';
31
- import './agentGuidance-Do7cQka3.mjs';
32
+ import './agentGuidance-BU4hxm8M.mjs';
32
33
  import 'ink';
33
34
  import 'react';
34
35
  import '@anthropic-ai/claude-agent-sdk';
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-ChWePQEd.cjs');
3
+ var index = require('./index-C510dSUn.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-Bk3W89Z3.cjs');
8
+ require('./types-6__wqmmP.cjs');
9
9
  require('axios');
10
- require('./limits-DbLWXlJm.cjs');
10
+ require('./limits-B3oVgqBJ.cjs');
11
11
  require('node:fs/promises');
12
12
  require('node:fs');
13
13
  require('node:path');
@@ -23,6 +23,7 @@ require('fs/promises');
23
23
  require('crypto');
24
24
  require('path');
25
25
  require('cross-spawn');
26
+ require('./projectPath-ChLhdOyt.cjs');
26
27
  require('url');
27
28
  require('os');
28
29
  require('node:child_process');
@@ -31,7 +32,7 @@ require('fs');
31
32
  require('node:readline');
32
33
  require('@anthropic-ai/sandbox-runtime');
33
34
  require('expo-server-sdk');
34
- require('./agentGuidance-B9ENxSaS.cjs');
35
+ require('./agentGuidance-CJSl54ua.cjs');
35
36
  require('ink');
36
37
  require('react');
37
38
  require('ps-list');
@@ -1,15 +1,17 @@
1
1
  'use strict';
2
2
 
3
- var AcpBackend = require('./AcpBackend-CnWSwaHk.cjs');
4
- var persistence = require('./limits-DbLWXlJm.cjs');
5
- var AcpSessionManager = require('./AcpSessionManager-Dxt78rPO.cjs');
6
- var api = require('./types-Bk3W89Z3.cjs');
7
- var index = require('./index-ChWePQEd.cjs');
8
- var promises = require('node:fs/promises');
3
+ var AcpBackend = require('./AcpBackend-B8oehrfU.cjs');
4
+ var persistence = require('./limits-B3oVgqBJ.cjs');
5
+ var AcpSessionManager = require('./AcpSessionManager-BomdfyhZ.cjs');
6
+ var api = require('./types-6__wqmmP.cjs');
7
+ var index = require('./index-C510dSUn.cjs');
8
+ var piRuntime = require('./piRuntime-CWE-1W-y.cjs');
9
9
  var node_crypto = require('node:crypto');
10
10
  var path = require('node:path');
11
+ var projectPath = require('./projectPath-ChLhdOyt.cjs');
11
12
  require('node:child_process');
12
13
  require('@agentclientprotocol/sdk');
14
+ require('node:fs/promises');
13
15
  require('node:fs');
14
16
  require('node:os');
15
17
  require('zod');
@@ -26,14 +28,13 @@ require('fs/promises');
26
28
  require('crypto');
27
29
  require('path');
28
30
  require('cross-spawn');
29
- require('url');
30
31
  require('os');
31
32
  require('node-pty');
32
33
  require('fs');
33
34
  require('node:readline');
34
35
  require('@anthropic-ai/sandbox-runtime');
35
36
  require('expo-server-sdk');
36
- require('./agentGuidance-B9ENxSaS.cjs');
37
+ require('./agentGuidance-CJSl54ua.cjs');
37
38
  require('ink');
38
39
  require('react');
39
40
  require('@anthropic-ai/claude-agent-sdk');
@@ -50,6 +51,7 @@ require('http');
50
51
  require('inquirer');
51
52
  require('node:url');
52
53
  require('node:readline/promises');
54
+ require('url');
53
55
 
54
56
  function createAcpBackend(options) {
55
57
  const backendOptions = {
@@ -65,36 +67,6 @@ function createAcpBackend(options) {
65
67
  return new AcpBackend.AcpBackend(backendOptions);
66
68
  }
67
69
 
68
- async function publish(path, content, mode) {
69
- const temporary = `${path}.${node_crypto.randomUUID()}.new`;
70
- await promises.writeFile(temporary, content, { mode, flag: "wx" });
71
- await promises.rename(temporary, path);
72
- }
73
- async function preparePiTeamsRuntime() {
74
- const directory = path.join(persistence.configuration.happyHomeDir, "teams", "pi-runtime");
75
- await promises.mkdir(directory, { recursive: true, mode: 448 });
76
- const extension = path.join(directory, "very-happy-teams.mjs");
77
- await publish(extension, index.PI_TEAMS_EXTENSION, 384);
78
- const launcher = path.join(directory, "pi-teams.mjs");
79
- const script = `#!${process.execPath}
80
- import { spawn } from 'node:child_process';
81
- const child = spawn(process.env.VH_TEAM_PI_COMMAND || 'pi', ['--extension', ${JSON.stringify(extension)}, ...process.argv.slice(2)], {stdio:'inherit',env:process.env,shell:process.platform==='win32'});
82
- child.on('error',()=>{process.stderr.write('Very Happy could not launch pi\\n');process.exitCode=1});
83
- child.on('exit',(code)=>{process.exitCode=code ?? 1});
84
- for(const signal of ['SIGINT','SIGTERM'])process.on(signal,()=>child.kill(signal));
85
- `;
86
- await publish(launcher, script, 448);
87
- await promises.chmod(launcher, 448);
88
- let command = launcher;
89
- if (process.platform === "win32") {
90
- command = path.join(directory, "pi-teams.cmd");
91
- await publish(command, `@echo off\r
92
- "${process.execPath}" "${launcher}" %*\r
93
- `, 448);
94
- }
95
- return { PI_ACP_PI_COMMAND: command, VH_TEAM_PI_COMMAND: (process.env.PI_ACP_PI_COMMAND === command ? process.env.VH_TEAM_PI_COMMAND : process.env.PI_ACP_PI_COMMAND) || "pi" };
96
- }
97
-
98
70
  const SUPPORTED_CATEGORIES = /* @__PURE__ */ new Set(["mode", "model", "thought_level"]);
99
71
  function isRecord$1(value) {
100
72
  return !!value && typeof value === "object";
@@ -716,11 +688,11 @@ async function runAcp(opts) {
716
688
  if (opts.agentName === "pi") session.updateAgentState((state2) => ({ ...state2, contextUsage: null }));
717
689
  const mcpServers = {
718
690
  happy: {
719
- command: path.join(api.projectPath(), "bin", "very-happy-mcp.mjs"),
691
+ command: path.join(projectPath.projectPath(), "bin", "very-happy-mcp.mjs"),
720
692
  args: ["--url", happyServer.url]
721
693
  }
722
694
  };
723
- const teamsPiEnv = opts.agentName === "pi" ? await preparePiTeamsRuntime() : {};
695
+ const teamsPiEnv = opts.agentName === "pi" ? await piRuntime.preparePiTeamsRuntime() : {};
724
696
  const backend = new AcpBackend.AcpBackend({
725
697
  agentName: opts.agentName,
726
698
  cwd: process.cwd(),