very-happy-cli 0.2.143 → 0.2.145
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-LEgn9vol.mjs → AcpBackend-BITeBnbV.mjs} +2 -2
- package/dist/{AcpBackend-B8oehrfU.cjs → AcpBackend-FPv5uXFa.cjs} +30 -30
- package/dist/{AcpSessionManager-BomdfyhZ.cjs → AcpSessionManager-vqLzM219.cjs} +9 -9
- package/dist/{AcpSessionManager-Yfbs5bi2.mjs → AcpSessionManager-w2srpWQJ.mjs} +1 -1
- package/dist/{agentGuidance-CJSl54ua.cjs → agentGuidance-Bd6GEiYp.cjs} +1 -1
- package/dist/{agentGuidance-BU4hxm8M.mjs → agentGuidance-HFHrz3C1.mjs} +1 -1
- package/dist/agentHome-CGl7FF7a.cjs +113 -0
- package/dist/agentHome-DBqr8rpv.mjs +107 -0
- package/dist/codex/happyMcpStdioBridge.cjs +2 -2
- package/dist/codex/happyMcpStdioBridge.mjs +2 -2
- package/dist/{config-euZ_K5Lo.mjs → config-B9zAvnGT.mjs} +4 -4
- package/dist/{config-CfqWoHmO.cjs → config-CPfFuHP6.cjs} +4 -4
- package/dist/{index-ZOMC8Gzn.mjs → index-BzLZu_aF.mjs} +8 -8
- package/dist/{index-PM_SsRpw.mjs → index-CxK0l_t0.mjs} +4 -4
- package/dist/{index-BREtikhm.cjs → index-D4Smqppj.cjs} +4 -4
- package/dist/{index-C510dSUn.cjs → index-DhwtFJEe.cjs} +309 -212
- package/dist/{index-Bj68y6ee.cjs → index-avfJgX4p.cjs} +31 -31
- package/dist/{index-DoiG88oX.mjs → index-eBrE-0R1.mjs} +136 -39
- package/dist/index.cjs +4 -4
- package/dist/index.mjs +4 -4
- package/dist/{installTerminalHooks-BGVQqbgq.mjs → installTerminalHooks-Dq1MFFDQ.mjs} +4 -4
- package/dist/{installTerminalHooks-C_jraM1j.cjs → installTerminalHooks-DspFGxBI.cjs} +4 -4
- package/dist/lib.cjs +5 -5
- package/dist/lib.mjs +2 -2
- package/dist/{limits-uABU-yq3.mjs → limits-CzWD9hWU.mjs} +8 -8
- package/dist/{limits-B3oVgqBJ.cjs → limits-DGZB-OVl.cjs} +7 -7
- package/dist/{mcp-G-3lL_KH.cjs → mcp-BioGrTC_.cjs} +9 -9
- package/dist/{mcp-CfbTQXyh.mjs → mcp-L1Yq25LB.mjs} +4 -4
- package/dist/{piRuntime-CWE-1W-y.cjs → piRuntime-DodWS0UI.cjs} +2 -2
- package/dist/{piRuntime-BE6iYQwU.mjs → piRuntime-UdVG4eJ7.mjs} +2 -2
- package/dist/{piTerminal-Dyc_9pGP.cjs → piTerminal-6P00O_w8.cjs} +6 -6
- package/dist/{piTerminal-rqKn1_Zy.mjs → piTerminal-BIRroC_N.mjs} +6 -6
- package/dist/{runGemini-BMlXIaTL.mjs → runGemini-B-It6K8t.mjs} +6 -6
- package/dist/{runGemini-C6qMFzcn.cjs → runGemini-ChCHjnIh.cjs} +24 -24
- package/dist/{runOpenClaw-C2_aCP7v.cjs → runOpenClaw-Cc4_zmHz.cjs} +26 -26
- package/dist/{runOpenClaw-CoO5Vp3S.mjs → runOpenClaw-DET6LY2v.mjs} +5 -5
- package/dist/{send-CBrJylJc.mjs → send-CPayvXBm.mjs} +4 -4
- package/dist/{send-DGVwmB-p.cjs → send-LBjLfAos.cjs} +4 -4
- package/dist/{sessions-DbLubh2N.mjs → sessions-CJUEp43_.mjs} +4 -4
- package/dist/{sessions-DyQXMN-8.cjs → sessions-WBowxNO-.cjs} +5 -5
- package/dist/{spawn-DIyFOn3W.cjs → spawn-BqgZc7YE.cjs} +6 -6
- package/dist/{spawn-wkkxEGdF.mjs → spawn-Dcetf5Jt.mjs} +4 -4
- package/dist/{teams-BTyVFK3P.mjs → teams-CW_Zb2Q1.mjs} +4 -4
- package/dist/{teams-QOkGFjkJ.cjs → teams-eIUxGmqg.cjs} +4 -4
- package/dist/{todo-DoLkqdBe.mjs → todo-CV5fwHg_.mjs} +3 -3
- package/dist/{todo-Du6pjwx_.cjs → todo-DeouLiGa.cjs} +5 -5
- package/dist/{types-BG4gFjLL.mjs → types-BbvxVQF3.mjs} +321 -11
- package/dist/{types-6__wqmmP.cjs → types-Bqo68u61.cjs} +328 -9
- package/package.json +7 -7
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-DhwtFJEe.cjs');
|
|
5
|
+
require('./limits-DGZB-OVl.cjs');
|
|
6
6
|
require('zod');
|
|
7
|
-
require('./types-
|
|
7
|
+
require('./types-Bqo68u61.cjs');
|
|
8
8
|
require('node:child_process');
|
|
9
9
|
require('node:os');
|
|
10
10
|
require('node:crypto');
|
|
@@ -15,7 +15,7 @@ require('node:fs');
|
|
|
15
15
|
require('./projectPath-ChLhdOyt.cjs');
|
|
16
16
|
require('path');
|
|
17
17
|
require('url');
|
|
18
|
-
require('./agentGuidance-
|
|
18
|
+
require('./agentGuidance-Bd6GEiYp.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-eBrE-0R1.mjs';
|
|
3
|
+
import './limits-CzWD9hWU.mjs';
|
|
4
4
|
import 'zod';
|
|
5
|
-
import './types-
|
|
5
|
+
import './types-BbvxVQF3.mjs';
|
|
6
6
|
import 'node:child_process';
|
|
7
7
|
import 'node:os';
|
|
8
8
|
import 'node:crypto';
|
|
@@ -13,7 +13,7 @@ import 'node:fs';
|
|
|
13
13
|
import './projectPath-CSpqWdxp.mjs';
|
|
14
14
|
import 'path';
|
|
15
15
|
import 'url';
|
|
16
|
-
import './agentGuidance-
|
|
16
|
+
import './agentGuidance-HFHrz3C1.mjs';
|
|
17
17
|
import 'node:fs/promises';
|
|
18
18
|
import 'fs/promises';
|
|
19
19
|
import 'ink';
|
|
@@ -4,13 +4,13 @@ import { homedir } from 'node:os';
|
|
|
4
4
|
import { spawnSync } from 'node:child_process';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
6
|
import { p as projectPath } from './projectPath-CSpqWdxp.mjs';
|
|
7
|
-
import { t as tmuxSupportsSessionEnv } from './index-
|
|
7
|
+
import { t as tmuxSupportsSessionEnv } from './index-eBrE-0R1.mjs';
|
|
8
8
|
import 'path';
|
|
9
9
|
import 'url';
|
|
10
10
|
import 'node:crypto';
|
|
11
|
-
import './types-
|
|
11
|
+
import './types-BbvxVQF3.mjs';
|
|
12
12
|
import 'axios';
|
|
13
|
-
import './limits-
|
|
13
|
+
import './limits-CzWD9hWU.mjs';
|
|
14
14
|
import 'node:fs/promises';
|
|
15
15
|
import 'zod';
|
|
16
16
|
import 'tweetnacl';
|
|
@@ -29,7 +29,7 @@ import 'fs';
|
|
|
29
29
|
import 'node:readline';
|
|
30
30
|
import '@anthropic-ai/sandbox-runtime';
|
|
31
31
|
import 'expo-server-sdk';
|
|
32
|
-
import './agentGuidance-
|
|
32
|
+
import './agentGuidance-HFHrz3C1.mjs';
|
|
33
33
|
import 'ink';
|
|
34
34
|
import 'react';
|
|
35
35
|
import '@anthropic-ai/claude-agent-sdk';
|
|
@@ -6,13 +6,13 @@ var os = require('node:os');
|
|
|
6
6
|
var node_child_process = require('node:child_process');
|
|
7
7
|
var chalk = require('chalk');
|
|
8
8
|
var projectPath = require('./projectPath-ChLhdOyt.cjs');
|
|
9
|
-
var index = require('./index-
|
|
9
|
+
var index = require('./index-DhwtFJEe.cjs');
|
|
10
10
|
require('path');
|
|
11
11
|
require('url');
|
|
12
12
|
require('node:crypto');
|
|
13
|
-
require('./types-
|
|
13
|
+
require('./types-Bqo68u61.cjs');
|
|
14
14
|
require('axios');
|
|
15
|
-
require('./limits-
|
|
15
|
+
require('./limits-DGZB-OVl.cjs');
|
|
16
16
|
require('node:fs/promises');
|
|
17
17
|
require('zod');
|
|
18
18
|
require('tweetnacl');
|
|
@@ -31,7 +31,7 @@ require('fs');
|
|
|
31
31
|
require('node:readline');
|
|
32
32
|
require('@anthropic-ai/sandbox-runtime');
|
|
33
33
|
require('expo-server-sdk');
|
|
34
|
-
require('./agentGuidance-
|
|
34
|
+
require('./agentGuidance-Bd6GEiYp.cjs');
|
|
35
35
|
require('ink');
|
|
36
36
|
require('react');
|
|
37
37
|
require('@anthropic-ai/claude-agent-sdk');
|
package/dist/lib.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var persistence = require('./limits-
|
|
3
|
+
var index = require('./types-Bqo68u61.cjs');
|
|
4
|
+
var persistence = require('./limits-DGZB-OVl.cjs');
|
|
5
5
|
require('axios');
|
|
6
6
|
require('node:events');
|
|
7
7
|
require('socket.io-client');
|
|
@@ -33,8 +33,8 @@ require('node:util');
|
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
exports.ApiClient =
|
|
37
|
-
exports.ApiSessionClient =
|
|
38
|
-
exports.RawJSONLinesSchema =
|
|
36
|
+
exports.ApiClient = index.ApiClient;
|
|
37
|
+
exports.ApiSessionClient = index.ApiSessionClient;
|
|
38
|
+
exports.RawJSONLinesSchema = index.RawJSONLinesSchema;
|
|
39
39
|
exports.configuration = persistence.configuration;
|
|
40
40
|
exports.logger = persistence.logger;
|
package/dist/lib.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema } from './types-
|
|
2
|
-
export { c as configuration, l as logger } from './limits-
|
|
1
|
+
export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema } from './types-BbvxVQF3.mjs';
|
|
2
|
+
export { c as configuration, l as logger } from './limits-CzWD9hWU.mjs';
|
|
3
3
|
import 'axios';
|
|
4
4
|
import 'node:events';
|
|
5
5
|
import 'socket.io-client';
|
|
@@ -9,7 +9,7 @@ import chalk from 'chalk';
|
|
|
9
9
|
import { inspect } from 'node:util';
|
|
10
10
|
|
|
11
11
|
var name = "very-happy-cli";
|
|
12
|
-
var version = "0.2.
|
|
12
|
+
var version = "0.2.145";
|
|
13
13
|
var description = "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.";
|
|
14
14
|
var author = "Kirill Dubovitskiy";
|
|
15
15
|
var contributors = [
|
|
@@ -126,12 +126,12 @@ var dependencies = {
|
|
|
126
126
|
zod: "^4.0.0"
|
|
127
127
|
};
|
|
128
128
|
var optionalDependencies = {
|
|
129
|
-
"very-happy-tools-arm64-darwin": "0.2.
|
|
130
|
-
"very-happy-tools-x64-darwin": "0.2.
|
|
131
|
-
"very-happy-tools-arm64-linux": "0.2.
|
|
132
|
-
"very-happy-tools-x64-linux": "0.2.
|
|
133
|
-
"very-happy-tools-arm64-win32": "0.2.
|
|
134
|
-
"very-happy-tools-x64-win32": "0.2.
|
|
129
|
+
"very-happy-tools-arm64-darwin": "0.2.145",
|
|
130
|
+
"very-happy-tools-x64-darwin": "0.2.145",
|
|
131
|
+
"very-happy-tools-arm64-linux": "0.2.145",
|
|
132
|
+
"very-happy-tools-x64-linux": "0.2.145",
|
|
133
|
+
"very-happy-tools-arm64-win32": "0.2.145",
|
|
134
|
+
"very-happy-tools-x64-win32": "0.2.145"
|
|
135
135
|
};
|
|
136
136
|
var devDependencies = {
|
|
137
137
|
"@slopus/happy-wire": "workspace:*",
|
|
@@ -1162,4 +1162,4 @@ function prepareClipboardHistoryText(input) {
|
|
|
1162
1162
|
return { text, truncated: true, totalBytes: prepared.totalBytes };
|
|
1163
1163
|
}
|
|
1164
1164
|
|
|
1165
|
-
export {
|
|
1165
|
+
export { libsodiumEncryptForPublicKey as A, libsodiumPublicKeyFromSecretKey as B, CLIPBOARD_TOOL_NAME as C, getRandomBytes as D, redactLogValue as E, ensurePrivateDirectory as F, hardenPrivateFile as G, readCredentials as H, readSettingsOutcome as I, encodeBase64Url as J, writeCredentialsLegacy as K, writeCredentialsDataKey as L, decryptWithDataKey as M, decryptLegacy as N, persistSession as O, acquireDaemonLock as P, deletePersistedSessions as Q, writeDaemonState as R, writeSettings as S, releaseDaemonLock as T, clearCredentials as U, clearMachineId as V, SandboxConfigSchema as W, getLatestDaemonLog as X, persistence as Y, CLIPBOARD_TOOL_TITLE as a, CLIPBOARD_TOOL_DESCRIPTION as b, configuration as c, readPersistedSessions as d, readCredentialsForConfiguredRelay as e, CLIPBOARD_MAX_BYTES as f, encodeBase64 as g, ensurePrivateDirectorySync as h, hardenPrivateFileSync as i, encrypt as j, decrypt as k, logger as l, decodeBase64 as m, normalizeHttpEndpoint as n, readDaemonState as o, packageJson as p, clearDaemonState as q, readSettings as r, decryptBlob as s, prepareClipboardText as t, updateSettings as u, prepareClipboardHistoryText as v, writePrivateFileSync as w, credentialRelayProblem as x, readTrackedClaudeSessionIds as y, readTrackedCodexThreadIds as z };
|
|
@@ -30,7 +30,7 @@ function _interopNamespaceDefault(e) {
|
|
|
30
30
|
var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
|
|
31
31
|
|
|
32
32
|
var name = "very-happy-cli";
|
|
33
|
-
var version = "0.2.
|
|
33
|
+
var version = "0.2.145";
|
|
34
34
|
var description = "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.";
|
|
35
35
|
var author = "Kirill Dubovitskiy";
|
|
36
36
|
var contributors = [
|
|
@@ -147,12 +147,12 @@ var dependencies = {
|
|
|
147
147
|
zod: "^4.0.0"
|
|
148
148
|
};
|
|
149
149
|
var optionalDependencies = {
|
|
150
|
-
"very-happy-tools-arm64-darwin": "0.2.
|
|
151
|
-
"very-happy-tools-x64-darwin": "0.2.
|
|
152
|
-
"very-happy-tools-arm64-linux": "0.2.
|
|
153
|
-
"very-happy-tools-x64-linux": "0.2.
|
|
154
|
-
"very-happy-tools-arm64-win32": "0.2.
|
|
155
|
-
"very-happy-tools-x64-win32": "0.2.
|
|
150
|
+
"very-happy-tools-arm64-darwin": "0.2.145",
|
|
151
|
+
"very-happy-tools-x64-darwin": "0.2.145",
|
|
152
|
+
"very-happy-tools-arm64-linux": "0.2.145",
|
|
153
|
+
"very-happy-tools-x64-linux": "0.2.145",
|
|
154
|
+
"very-happy-tools-arm64-win32": "0.2.145",
|
|
155
|
+
"very-happy-tools-x64-win32": "0.2.145"
|
|
156
156
|
};
|
|
157
157
|
var devDependencies = {
|
|
158
158
|
"@slopus/happy-wire": "workspace:*",
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var agentGuidance = require('./agentGuidance-
|
|
3
|
+
var agentGuidance = require('./agentGuidance-Bd6GEiYp.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 z = require('zod');
|
|
7
|
-
var
|
|
8
|
-
var persistence = require('./limits-
|
|
9
|
-
var index = require('./index-
|
|
7
|
+
var index = require('./types-Bqo68u61.cjs');
|
|
8
|
+
var persistence = require('./limits-DGZB-OVl.cjs');
|
|
9
|
+
var index$1 = require('./index-DhwtFJEe.cjs');
|
|
10
10
|
require('node:fs/promises');
|
|
11
11
|
require('node:os');
|
|
12
12
|
require('node:crypto');
|
|
@@ -67,7 +67,7 @@ function registerMcpTools(server, surface, terminalId = null) {
|
|
|
67
67
|
}
|
|
68
68
|
}, async (args) => {
|
|
69
69
|
persistence.logger.debug(`[MCP] copy_to_clipboard called (${args.text.length} chars)`);
|
|
70
|
-
const result = await
|
|
70
|
+
const result = await index.pushClipboardViaDaemon(args.text, terminalId ?? void 0);
|
|
71
71
|
if (result.delivered) {
|
|
72
72
|
const note = result.truncated ? ` (truncated to ${persistence.CLIPBOARD_MAX_BYTES / 1024}KB \u2014 original was ${result.totalBytes} bytes)` : "";
|
|
73
73
|
return {
|
|
@@ -95,9 +95,9 @@ function registerMcpTools(server, surface, terminalId = null) {
|
|
|
95
95
|
mode: z.z.enum(["file", "diff"]).optional().describe("'file' (default) previews the file; 'diff' is reserved and currently falls back to 'file'")
|
|
96
96
|
}
|
|
97
97
|
}, async (args) => {
|
|
98
|
-
const verdict = index.checkPreviewPath(args.path);
|
|
98
|
+
const verdict = index$1.checkPreviewPath(args.path);
|
|
99
99
|
if (verdict.deniedReason) return { content: [{ type: "text", text: verdict.deniedReason }], isError: true };
|
|
100
|
-
const result = await
|
|
100
|
+
const result = await index.pushFilePreviewViaDaemon(terminalId, verdict.resolved, args.mode ?? "file");
|
|
101
101
|
return {
|
|
102
102
|
content: [{ type: "text", text: result.delivered ? `Queued a preview request for ${verdict.resolved}. This does not confirm that a browser opened it.` : `Failed to request preview: ${result.error || "unknown error"}` }],
|
|
103
103
|
isError: !result.delivered
|
|
@@ -111,7 +111,7 @@ function registerMcpTools(server, surface, terminalId = null) {
|
|
|
111
111
|
}
|
|
112
112
|
}, async (args) => {
|
|
113
113
|
persistence.logger.debug(`[MCP] change_title called for terminal ${terminalId}`);
|
|
114
|
-
const result = await
|
|
114
|
+
const result = await index.setTerminalTitleViaDaemon(terminalId, args.title);
|
|
115
115
|
if (result.ok) {
|
|
116
116
|
return {
|
|
117
117
|
content: [{ type: "text", text: `Successfully changed terminal title to: "${args.title}"` }],
|
|
@@ -128,7 +128,7 @@ function registerMcpTools(server, surface, terminalId = null) {
|
|
|
128
128
|
});
|
|
129
129
|
}
|
|
130
130
|
if (surface === "assistant" && !process.env.VH_TEAM_SCOPE_FILE) {
|
|
131
|
-
index.registerAssistantSessionTools(server);
|
|
131
|
+
index$1.registerAssistantSessionTools(server);
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
async function handleMcpCommand(terminalToolsOnly = false) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { r as registerTeamsTools, P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION } from './agentGuidance-
|
|
1
|
+
import { r as registerTeamsTools, P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION } from './agentGuidance-HFHrz3C1.mjs';
|
|
2
2
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
3
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
4
|
import { z } from 'zod';
|
|
5
|
-
import {
|
|
6
|
-
import { l as logger, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION,
|
|
7
|
-
import { h as checkPreviewPath, j as registerAssistantSessionTools } from './index-
|
|
5
|
+
import { j as pushClipboardViaDaemon, k as pushFilePreviewViaDaemon, l as setTerminalTitleViaDaemon } from './types-BbvxVQF3.mjs';
|
|
6
|
+
import { l as logger, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, f as CLIPBOARD_MAX_BYTES } from './limits-CzWD9hWU.mjs';
|
|
7
|
+
import { h as checkPreviewPath, j as registerAssistantSessionTools } from './index-eBrE-0R1.mjs';
|
|
8
8
|
import 'node:fs/promises';
|
|
9
9
|
import 'node:os';
|
|
10
10
|
import 'node:crypto';
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
var promises = require('node:fs/promises');
|
|
4
4
|
var node_crypto = require('node:crypto');
|
|
5
5
|
var path = require('node:path');
|
|
6
|
-
var persistence = require('./limits-
|
|
7
|
-
var index = require('./index-
|
|
6
|
+
var persistence = require('./limits-DGZB-OVl.cjs');
|
|
7
|
+
var index = require('./index-DhwtFJEe.cjs');
|
|
8
8
|
|
|
9
9
|
async function publish(path, content, mode) {
|
|
10
10
|
const temporary = `${path}.${node_crypto.randomUUID()}.new`;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { mkdir, chmod, writeFile, rename } from 'node:fs/promises';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
-
import { c as configuration } from './limits-
|
|
5
|
-
import { P as PI_TEAMS_EXTENSION } from './index-
|
|
4
|
+
import { c as configuration } from './limits-CzWD9hWU.mjs';
|
|
5
|
+
import { P as PI_TEAMS_EXTENSION } from './index-eBrE-0R1.mjs';
|
|
6
6
|
|
|
7
7
|
async function publish(path, content, mode) {
|
|
8
8
|
const temporary = `${path}.${randomUUID()}.new`;
|
|
@@ -5,21 +5,21 @@ var node_crypto = require('node:crypto');
|
|
|
5
5
|
var node_http = require('node:http');
|
|
6
6
|
var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
7
7
|
var streamableHttp_js = require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
8
|
-
var piRuntime = require('./piRuntime-
|
|
9
|
-
var mcp = require('./mcp-
|
|
10
|
-
require('./agentGuidance-
|
|
8
|
+
var piRuntime = require('./piRuntime-DodWS0UI.cjs');
|
|
9
|
+
var mcp = require('./mcp-BioGrTC_.cjs');
|
|
10
|
+
require('./agentGuidance-Bd6GEiYp.cjs');
|
|
11
11
|
require('node:fs/promises');
|
|
12
12
|
require('node:os');
|
|
13
13
|
require('zod');
|
|
14
|
-
require('./limits-
|
|
14
|
+
require('./limits-DGZB-OVl.cjs');
|
|
15
15
|
require('axios');
|
|
16
16
|
require('tweetnacl');
|
|
17
17
|
require('socket.io-client');
|
|
18
|
-
require('./types-
|
|
18
|
+
require('./types-Bqo68u61.cjs');
|
|
19
19
|
require('node:fs');
|
|
20
20
|
require('node:path');
|
|
21
21
|
var terminalToolContext = require('./terminalToolContext-DoV9Gs7K.cjs');
|
|
22
|
-
require('./index-
|
|
22
|
+
require('./index-DhwtFJEe.cjs');
|
|
23
23
|
require('chalk');
|
|
24
24
|
require('cross-spawn');
|
|
25
25
|
require('node:readline');
|
|
@@ -3,21 +3,21 @@ import { randomUUID } from 'node:crypto';
|
|
|
3
3
|
import { createServer } from 'node:http';
|
|
4
4
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
5
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
6
|
-
import { p as preparePiTeamsRuntime } from './piRuntime-
|
|
7
|
-
import { registerMcpTools } from './mcp-
|
|
8
|
-
import './agentGuidance-
|
|
6
|
+
import { p as preparePiTeamsRuntime } from './piRuntime-UdVG4eJ7.mjs';
|
|
7
|
+
import { registerMcpTools } from './mcp-L1Yq25LB.mjs';
|
|
8
|
+
import './agentGuidance-HFHrz3C1.mjs';
|
|
9
9
|
import 'node:fs/promises';
|
|
10
10
|
import 'node:os';
|
|
11
11
|
import 'zod';
|
|
12
|
-
import './limits-
|
|
12
|
+
import './limits-CzWD9hWU.mjs';
|
|
13
13
|
import 'axios';
|
|
14
14
|
import 'tweetnacl';
|
|
15
15
|
import 'socket.io-client';
|
|
16
|
-
import './types-
|
|
16
|
+
import './types-BbvxVQF3.mjs';
|
|
17
17
|
import 'node:fs';
|
|
18
18
|
import 'node:path';
|
|
19
19
|
import { r as resolveMcpTerminalId } from './terminalToolContext-CFeGeaNm.mjs';
|
|
20
|
-
import './index-
|
|
20
|
+
import './index-eBrE-0R1.mjs';
|
|
21
21
|
import 'chalk';
|
|
22
22
|
import 'cross-spawn';
|
|
23
23
|
import 'node:readline';
|
|
@@ -2,12 +2,12 @@ import { useStdout, useInput, Box, Text, render } from 'ink';
|
|
|
2
2
|
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
3
3
|
import { randomUUID } from 'node:crypto';
|
|
4
4
|
import { join } from 'node:path';
|
|
5
|
-
import {
|
|
6
|
-
import { l as logger,
|
|
7
|
-
import { K as GEMINI_API_KEY_ENV, L as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, E as BasePermissionHandler, N as BaseReasoningProcessor, k as initialMachineMetadata, m as createSessionMetadata, n as setupOfflineReconnection, p as MessageQueue2, u as hashObject, O as MessageBuffer, Q as CHANGE_TITLE_INSTRUCTION, y as registerKillSessionHandler, v as startHappyServer } from './index-
|
|
5
|
+
import { m as connectionState, A as ApiClient, q as errorLogMetadata, n as notifyDaemonSessionStarted, t as contentLogMetadata } from './types-BbvxVQF3.mjs';
|
|
6
|
+
import { l as logger, r as readSettings, g as encodeBase64 } from './limits-CzWD9hWU.mjs';
|
|
7
|
+
import { K as GEMINI_API_KEY_ENV, L as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, E as BasePermissionHandler, N as BaseReasoningProcessor, k as initialMachineMetadata, m as createSessionMetadata, n as setupOfflineReconnection, p as MessageQueue2, u as hashObject, O as MessageBuffer, Q as CHANGE_TITLE_INSTRUCTION, y as registerKillSessionHandler, v as startHappyServer } from './index-eBrE-0R1.mjs';
|
|
8
8
|
import { p as projectPath } from './projectPath-CSpqWdxp.mjs';
|
|
9
|
-
import { A as AcpBackend } from './AcpBackend-
|
|
10
|
-
import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-
|
|
9
|
+
import { A as AcpBackend } from './AcpBackend-BITeBnbV.mjs';
|
|
10
|
+
import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-B9zAvnGT.mjs';
|
|
11
11
|
import 'axios';
|
|
12
12
|
import 'node:events';
|
|
13
13
|
import 'socket.io-client';
|
|
@@ -32,7 +32,7 @@ import '@anthropic-ai/sandbox-runtime';
|
|
|
32
32
|
import 'expo-server-sdk';
|
|
33
33
|
import 'chalk';
|
|
34
34
|
import 'node:util';
|
|
35
|
-
import './agentGuidance-
|
|
35
|
+
import './agentGuidance-HFHrz3C1.mjs';
|
|
36
36
|
import '@anthropic-ai/claude-agent-sdk';
|
|
37
37
|
import 'ps-list';
|
|
38
38
|
import 'tmp';
|
|
@@ -4,12 +4,12 @@ var ink = require('ink');
|
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var node_crypto = require('node:crypto');
|
|
6
6
|
var path = require('node:path');
|
|
7
|
-
var
|
|
8
|
-
var persistence = require('./limits-
|
|
9
|
-
var index = require('./index-
|
|
7
|
+
var index$1 = require('./types-Bqo68u61.cjs');
|
|
8
|
+
var persistence = require('./limits-DGZB-OVl.cjs');
|
|
9
|
+
var index = require('./index-DhwtFJEe.cjs');
|
|
10
10
|
var projectPath = require('./projectPath-ChLhdOyt.cjs');
|
|
11
|
-
var AcpBackend = require('./AcpBackend-
|
|
12
|
-
var config = require('./config-
|
|
11
|
+
var AcpBackend = require('./AcpBackend-FPv5uXFa.cjs');
|
|
12
|
+
var config = require('./config-CPfFuHP6.cjs');
|
|
13
13
|
require('axios');
|
|
14
14
|
require('node:events');
|
|
15
15
|
require('socket.io-client');
|
|
@@ -34,7 +34,7 @@ require('@anthropic-ai/sandbox-runtime');
|
|
|
34
34
|
require('expo-server-sdk');
|
|
35
35
|
require('chalk');
|
|
36
36
|
require('node:util');
|
|
37
|
-
require('./agentGuidance-
|
|
37
|
+
require('./agentGuidance-Bd6GEiYp.cjs');
|
|
38
38
|
require('@anthropic-ai/claude-agent-sdk');
|
|
39
39
|
require('ps-list');
|
|
40
40
|
require('tmp');
|
|
@@ -861,8 +861,8 @@ ${formattedMessages}
|
|
|
861
861
|
|
|
862
862
|
async function runGemini(opts) {
|
|
863
863
|
const sessionTag = node_crypto.randomUUID();
|
|
864
|
-
|
|
865
|
-
const api
|
|
864
|
+
index$1.connectionState.setBackend("Gemini");
|
|
865
|
+
const api = await index$1.ApiClient.create(opts.credentials);
|
|
866
866
|
const settings = await persistence.readSettings();
|
|
867
867
|
const machineId = settings?.machineId;
|
|
868
868
|
const sandboxConfig = settings?.sandboxConfig;
|
|
@@ -871,14 +871,14 @@ async function runGemini(opts) {
|
|
|
871
871
|
process.exit(1);
|
|
872
872
|
}
|
|
873
873
|
persistence.logger.debug(`Using machineId: ${machineId}`);
|
|
874
|
-
await api
|
|
874
|
+
await api.getOrCreateMachine({
|
|
875
875
|
machineId,
|
|
876
876
|
metadata: index.initialMachineMetadata
|
|
877
877
|
});
|
|
878
878
|
let cloudToken = void 0;
|
|
879
879
|
let currentUserEmail = void 0;
|
|
880
880
|
try {
|
|
881
|
-
const vendorToken = await api
|
|
881
|
+
const vendorToken = await api.getVendorToken("gemini");
|
|
882
882
|
if (vendorToken?.oauth?.access_token) {
|
|
883
883
|
cloudToken = vendorToken.oauth.access_token;
|
|
884
884
|
persistence.logger.debug("[Gemini] Using OAuth token from Happy cloud");
|
|
@@ -898,7 +898,7 @@ async function runGemini(opts) {
|
|
|
898
898
|
}
|
|
899
899
|
}
|
|
900
900
|
} catch (error) {
|
|
901
|
-
persistence.logger.debug("[Gemini] Failed to fetch cloud token:",
|
|
901
|
+
persistence.logger.debug("[Gemini] Failed to fetch cloud token:", index$1.errorLogMetadata(error));
|
|
902
902
|
}
|
|
903
903
|
const { state, metadata } = index.createSessionMetadata({
|
|
904
904
|
flavor: "gemini",
|
|
@@ -906,7 +906,7 @@ async function runGemini(opts) {
|
|
|
906
906
|
startedBy: opts.startedBy,
|
|
907
907
|
sandbox: sandboxConfig
|
|
908
908
|
});
|
|
909
|
-
const response = await api
|
|
909
|
+
const response = await api.getOrCreateSession({ tag: sessionTag, metadata, state });
|
|
910
910
|
let session;
|
|
911
911
|
let permissionHandler;
|
|
912
912
|
let isProcessingMessage = false;
|
|
@@ -922,7 +922,7 @@ async function runGemini(opts) {
|
|
|
922
922
|
}
|
|
923
923
|
};
|
|
924
924
|
const { session: initialSession, reconnectionHandle } = index.setupOfflineReconnection({
|
|
925
|
-
api
|
|
925
|
+
api,
|
|
926
926
|
sessionTag,
|
|
927
927
|
metadata,
|
|
928
928
|
state,
|
|
@@ -943,7 +943,7 @@ async function runGemini(opts) {
|
|
|
943
943
|
if (response) {
|
|
944
944
|
try {
|
|
945
945
|
persistence.logger.debug(`[START] Reporting session ${response.id} to daemon`);
|
|
946
|
-
const result = await
|
|
946
|
+
const result = await index$1.notifyDaemonSessionStarted(response.id, metadata, {
|
|
947
947
|
encryptionKey: persistence.encodeBase64(response.encryptionKey),
|
|
948
948
|
encryptionVariant: response.encryptionVariant,
|
|
949
949
|
seq: response.seq,
|
|
@@ -1029,7 +1029,7 @@ async function runGemini(opts) {
|
|
|
1029
1029
|
const sendReady = () => {
|
|
1030
1030
|
session.sendSessionEvent({ type: "ready" });
|
|
1031
1031
|
try {
|
|
1032
|
-
api
|
|
1032
|
+
api.push().sendSessionNotification({
|
|
1033
1033
|
kind: "done",
|
|
1034
1034
|
metadata: session.getMetadata(),
|
|
1035
1035
|
data: {
|
|
@@ -1212,10 +1212,10 @@ async function runGemini(opts) {
|
|
|
1212
1212
|
case "status":
|
|
1213
1213
|
const statusDetail = msg.detail ? typeof msg.detail === "object" ? JSON.stringify(msg.detail) : String(msg.detail) : "";
|
|
1214
1214
|
persistence.logger.debug(`[gemini] Status changed: ${msg.status}`, {
|
|
1215
|
-
detail:
|
|
1215
|
+
detail: index$1.contentLogMetadata(statusDetail)
|
|
1216
1216
|
});
|
|
1217
1217
|
if (msg.status === "error") {
|
|
1218
|
-
persistence.logger.debug("[gemini] Error status received:",
|
|
1218
|
+
persistence.logger.debug("[gemini] Error status received:", index$1.contentLogMetadata(statusDetail));
|
|
1219
1219
|
session.sendAgentMessage("gemini", {
|
|
1220
1220
|
type: "turn_aborted",
|
|
1221
1221
|
id: node_crypto.randomUUID()
|
|
@@ -1267,7 +1267,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
1267
1267
|
const isInvestigationTool = msg.toolName === "codebase_investigator" || typeof msg.toolName === "string" && msg.toolName.includes("investigator");
|
|
1268
1268
|
persistence.logger.debug(`[gemini] \u{1F527} Tool call received: ${msg.toolName} (${msg.callId})${isInvestigationTool ? " [INVESTIGATION]" : ""}`);
|
|
1269
1269
|
if (isInvestigationTool && msg.args && typeof msg.args === "object" && "objective" in msg.args) {
|
|
1270
|
-
persistence.logger.debug("[gemini] Investigation objective received:",
|
|
1270
|
+
persistence.logger.debug("[gemini] Investigation objective received:", index$1.contentLogMetadata(msg.args.objective));
|
|
1271
1271
|
}
|
|
1272
1272
|
messageBuffer.addMessage(`Executing: ${msg.toolName}${toolArgs ? ` ${toolArgs}${toolArgs.length >= 100 ? "..." : ""}` : ""}`, "tool");
|
|
1273
1273
|
session.sendAgentMessage("gemini", {
|
|
@@ -1293,7 +1293,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
1293
1293
|
}
|
|
1294
1294
|
if (isError) {
|
|
1295
1295
|
const errorMsg = msg.result.error || "Tool call failed";
|
|
1296
|
-
persistence.logger.debug("[gemini] Tool call error received:",
|
|
1296
|
+
persistence.logger.debug("[gemini] Tool call error received:", index$1.contentLogMetadata(errorMsg));
|
|
1297
1297
|
messageBuffer.addMessage(`Error: ${errorMsg}`, "status");
|
|
1298
1298
|
} else {
|
|
1299
1299
|
if (resultSize > 1e3) {
|
|
@@ -1411,7 +1411,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
1411
1411
|
const thinkingText = thinkingPayload && typeof thinkingPayload === "object" && "text" in thinkingPayload ? String(thinkingPayload.text || "") : "";
|
|
1412
1412
|
if (thinkingText) {
|
|
1413
1413
|
reasoningProcessor.processChunk(thinkingText);
|
|
1414
|
-
persistence.logger.debug("[gemini] Thinking chunk received:",
|
|
1414
|
+
persistence.logger.debug("[gemini] Thinking chunk received:", index$1.contentLogMetadata(thinkingText));
|
|
1415
1415
|
if (!thinkingText.startsWith("**")) {
|
|
1416
1416
|
const thinkingPreview = thinkingText.substring(0, 100);
|
|
1417
1417
|
messageBuffer.updateLastMessage(`[Thinking] ${thinkingPreview}...`, "system");
|
|
@@ -1550,7 +1550,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
1550
1550
|
promptToSend = historyContext + promptToSend;
|
|
1551
1551
|
persistence.logger.debug(`[gemini] Injected conversation history context (${historyContext.length} chars)`);
|
|
1552
1552
|
}
|
|
1553
|
-
persistence.logger.debug("[gemini] Sending prompt to Gemini:",
|
|
1553
|
+
persistence.logger.debug("[gemini] Sending prompt to Gemini:", index$1.contentLogMetadata(promptToSend));
|
|
1554
1554
|
const MAX_RETRIES = 3;
|
|
1555
1555
|
const RETRY_DELAY_MS = 2e3;
|
|
1556
1556
|
let lastError = null;
|
|
@@ -1585,7 +1585,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
1585
1585
|
const isInternalError = errorCode === -32603;
|
|
1586
1586
|
const isRetryable = isEmptyResponseError || isInternalError;
|
|
1587
1587
|
if (isRetryable && attempt < MAX_RETRIES) {
|
|
1588
|
-
persistence.logger.debug(`[gemini] Retryable error on attempt ${attempt}/${MAX_RETRIES}:`,
|
|
1588
|
+
persistence.logger.debug(`[gemini] Retryable error on attempt ${attempt}/${MAX_RETRIES}:`, index$1.contentLogMetadata(errorDetails));
|
|
1589
1589
|
messageBuffer.addMessage(`Gemini returned empty response, retrying (${attempt}/${MAX_RETRIES})...`, "status");
|
|
1590
1590
|
await new Promise((resolve2) => setTimeout(resolve2, RETRY_DELAY_MS * attempt));
|
|
1591
1591
|
continue;
|
|
@@ -1600,7 +1600,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
1600
1600
|
first = false;
|
|
1601
1601
|
}
|
|
1602
1602
|
} catch (error) {
|
|
1603
|
-
persistence.logger.debug("[gemini] Error in gemini session:",
|
|
1603
|
+
persistence.logger.debug("[gemini] Error in gemini session:", index$1.errorLogMetadata(error));
|
|
1604
1604
|
const isAbortError = error instanceof Error && error.name === "AbortError";
|
|
1605
1605
|
if (isAbortError) {
|
|
1606
1606
|
messageBuffer.addMessage("Aborted by user", "status");
|
|
@@ -1668,7 +1668,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
1668
1668
|
id: node_crypto.randomUUID(),
|
|
1669
1669
|
...options.length > 0 && { options }
|
|
1670
1670
|
};
|
|
1671
|
-
persistence.logger.debug("[gemini] Sending complete message to mobile:",
|
|
1671
|
+
persistence.logger.debug("[gemini] Sending complete message to mobile:", index$1.contentLogMetadata(finalMessageText));
|
|
1672
1672
|
session.sendAgentMessage("gemini", messagePayload);
|
|
1673
1673
|
accumulatedResponse = "";
|
|
1674
1674
|
isResponseInProgress = false;
|