very-happy-cli 0.2.130 → 0.2.131

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 (45) hide show
  1. package/dist/{AcpBackend-Co3atHW2.mjs → AcpBackend-DSRZM4lo.mjs} +2 -2
  2. package/dist/{AcpBackend-5slez7vM.cjs → AcpBackend-Dv_EKDIQ.cjs} +2 -2
  3. package/dist/{AcpSessionManager-B0sD6Zi7.mjs → AcpSessionManager-DtXOAeQ0.mjs} +1 -1
  4. package/dist/{AcpSessionManager-CxvVg8ec.cjs → AcpSessionManager-r8SLweP4.cjs} +1 -1
  5. package/dist/{agentGuidance-TjPzDO7d.cjs → agentGuidance-B4bH8Nuz.cjs} +1 -1
  6. package/dist/{agentGuidance-7pJxf_3b.mjs → agentGuidance-CeuhVA2K.mjs} +1 -1
  7. package/dist/codex/happyMcpStdioBridge.cjs +2 -2
  8. package/dist/codex/happyMcpStdioBridge.mjs +2 -2
  9. package/dist/{config-BWu8j7bO.mjs → config-Ur8QEJ0U.mjs} +4 -4
  10. package/dist/{config-B4Md4FvK.cjs → config-onxMcdX3.cjs} +4 -4
  11. package/dist/{index-DksoP9b2.cjs → index-B1hbB5R7.cjs} +14 -7
  12. package/dist/{index-C7TA3haC.cjs → index-B5Vv72dN.cjs} +70 -24
  13. package/dist/{index-BUhcXX8R.mjs → index-BPYVCjjs.mjs} +66 -20
  14. package/dist/{index-C13U8MkT.mjs → index-BXB-84P_.mjs} +4 -4
  15. package/dist/{index-Ds0aHXiU.cjs → index-BjctcFpG.cjs} +4 -4
  16. package/dist/{index-CdOVizh_.mjs → index-CsfUI8Bw.mjs} +15 -8
  17. package/dist/index.cjs +4 -4
  18. package/dist/index.mjs +4 -4
  19. package/dist/{installTerminalHooks-kUC6I6Rn.mjs → installTerminalHooks-DLwx6m7I.mjs} +4 -4
  20. package/dist/{installTerminalHooks-cNXov61F.cjs → installTerminalHooks-IaEGKZDR.cjs} +4 -4
  21. package/dist/lib.cjs +2 -2
  22. package/dist/lib.d.cts +32 -22
  23. package/dist/lib.d.mts +32 -22
  24. package/dist/lib.mjs +2 -2
  25. package/dist/{limits-CIcZA0Bn.mjs → limits-BusZ5sPV.mjs} +7 -7
  26. package/dist/{limits-BhK6ovLz.cjs → limits-C9bJJEyR.cjs} +7 -7
  27. package/dist/{mcp-D5uyhbfB.mjs → mcp-CZJM3obK.mjs} +4 -4
  28. package/dist/{mcp-CNX1qErQ.cjs → mcp-D4_4kl0R.cjs} +4 -4
  29. package/dist/{runGemini-DvV6X_GE.cjs → runGemini-CRoqO5Mf.cjs} +6 -6
  30. package/dist/{runGemini-BQd3qlVY.mjs → runGemini-DGHhBbmk.mjs} +6 -6
  31. package/dist/{runOpenClaw-jxvPz3bo.cjs → runOpenClaw-BzY__v8T.cjs} +5 -5
  32. package/dist/{runOpenClaw-BgtE2jKF.mjs → runOpenClaw-Ca9ygi8M.mjs} +5 -5
  33. package/dist/{send-BdhUFGTm.mjs → send-B1lln_bW.mjs} +4 -4
  34. package/dist/{send-Di8Q32Ds.cjs → send-CkfdImmJ.cjs} +4 -4
  35. package/dist/{sessions-Bo2THj4y.mjs → sessions-Cyzh822v.mjs} +4 -4
  36. package/dist/{sessions-eaAew6IP.cjs → sessions-D4cvTe7G.cjs} +4 -4
  37. package/dist/{spawn-CJxg1JUO.mjs → spawn-CdOt7Cv_.mjs} +4 -4
  38. package/dist/{spawn-6GfCYB5i.cjs → spawn-ID9-RfTN.cjs} +4 -4
  39. package/dist/{teams-CHGj90rR.mjs → teams-Bf2D8dwL.mjs} +4 -4
  40. package/dist/{teams-WdwFtptw.cjs → teams-CZ9xg-Rv.cjs} +4 -4
  41. package/dist/{todo-C8hDSNBP.mjs → todo-9iv7_n7i.mjs} +3 -3
  42. package/dist/{todo-C-wktj2K.cjs → todo-DK3L93BC.cjs} +3 -3
  43. package/dist/{types-QB33ckXt.cjs → types-B20MYc5R.cjs} +9 -2
  44. package/dist/{types-B-ySoSY9.mjs → types-lFZhC_6M.mjs} +8 -2
  45. package/package.json +7 -7
@@ -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.130";
33
+ var version = "0.2.131";
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 = [
@@ -143,12 +143,12 @@ var dependencies = {
143
143
  zod: "^4.0.0"
144
144
  };
145
145
  var optionalDependencies = {
146
- "very-happy-tools-arm64-darwin": "0.2.130",
147
- "very-happy-tools-x64-darwin": "0.2.130",
148
- "very-happy-tools-arm64-linux": "0.2.130",
149
- "very-happy-tools-x64-linux": "0.2.130",
150
- "very-happy-tools-arm64-win32": "0.2.130",
151
- "very-happy-tools-x64-win32": "0.2.130"
146
+ "very-happy-tools-arm64-darwin": "0.2.131",
147
+ "very-happy-tools-x64-darwin": "0.2.131",
148
+ "very-happy-tools-arm64-linux": "0.2.131",
149
+ "very-happy-tools-x64-linux": "0.2.131",
150
+ "very-happy-tools-arm64-win32": "0.2.131",
151
+ "very-happy-tools-x64-win32": "0.2.131"
152
152
  };
153
153
  var devDependencies = {
154
154
  "@slopus/happy-wire": "workspace:*",
@@ -1,9 +1,9 @@
1
- import { r as registerTeamsTools } from './agentGuidance-7pJxf_3b.mjs';
1
+ import { r as registerTeamsTools } from './agentGuidance-CeuhVA2K.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 { p as pushClipboardViaDaemon, k as setTerminalTitleViaDaemon, m as registerAssistantSessionTools } from './index-BUhcXX8R.mjs';
6
- import { l as logger, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, e as CLIPBOARD_MAX_BYTES } from './limits-CIcZA0Bn.mjs';
5
+ import { p as pushClipboardViaDaemon, k as setTerminalTitleViaDaemon, m as registerAssistantSessionTools } from './index-BPYVCjjs.mjs';
6
+ import { l as logger, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, e as CLIPBOARD_MAX_BYTES } from './limits-BusZ5sPV.mjs';
7
7
  import 'node:fs/promises';
8
8
  import 'node:os';
9
9
  import 'node:crypto';
@@ -11,7 +11,7 @@ import 'axios';
11
11
  import 'tweetnacl';
12
12
  import 'socket.io-client';
13
13
  import 'node:child_process';
14
- import './types-B-ySoSY9.mjs';
14
+ import './types-lFZhC_6M.mjs';
15
15
  import 'node:fs';
16
16
  import 'node:path';
17
17
  import 'chalk';
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var agentGuidance = require('./agentGuidance-TjPzDO7d.cjs');
3
+ var agentGuidance = require('./agentGuidance-B4bH8Nuz.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 index = require('./index-C7TA3haC.cjs');
8
- var persistence = require('./limits-BhK6ovLz.cjs');
7
+ var index = require('./index-B5Vv72dN.cjs');
8
+ var persistence = require('./limits-C9bJJEyR.cjs');
9
9
  require('node:fs/promises');
10
10
  require('node:os');
11
11
  require('node:crypto');
@@ -13,7 +13,7 @@ require('axios');
13
13
  require('tweetnacl');
14
14
  require('socket.io-client');
15
15
  require('node:child_process');
16
- require('./types-QB33ckXt.cjs');
16
+ require('./types-B20MYc5R.cjs');
17
17
  require('node:fs');
18
18
  require('node:path');
19
19
  require('chalk');
@@ -4,11 +4,11 @@ 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 api = require('./types-QB33ckXt.cjs');
8
- var persistence = require('./limits-BhK6ovLz.cjs');
9
- var index = require('./index-C7TA3haC.cjs');
10
- var AcpBackend = require('./AcpBackend-5slez7vM.cjs');
11
- var config = require('./config-B4Md4FvK.cjs');
7
+ var api = require('./types-B20MYc5R.cjs');
8
+ var persistence = require('./limits-C9bJJEyR.cjs');
9
+ var index = require('./index-B5Vv72dN.cjs');
10
+ var AcpBackend = require('./AcpBackend-Dv_EKDIQ.cjs');
11
+ var config = require('./config-onxMcdX3.cjs');
12
12
  require('axios');
13
13
  require('node:events');
14
14
  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-TjPzDO7d.cjs');
37
+ require('./agentGuidance-B4bH8Nuz.cjs');
38
38
  require('@anthropic-ai/claude-agent-sdk');
39
39
  require('ps-list');
40
40
  require('tmp');
@@ -2,11 +2,11 @@ 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 { f as connectionState, A as ApiClient, e as errorLogMetadata, p as projectPath, d as contentLogMetadata } from './types-B-ySoSY9.mjs';
6
- import { l as logger, g as readSettings, i as encodeBase64 } from './limits-CIcZA0Bn.mjs';
7
- import { Q as GEMINI_API_KEY_ENV, R as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, K as BasePermissionHandler, U as BaseReasoningProcessor, n as initialMachineMetadata, o as createSessionMetadata, u as setupOfflineReconnection, v as notifyDaemonSessionStarted, x as MessageQueue2, B as hashObject, V as MessageBuffer, W as CHANGE_TITLE_INSTRUCTION, y as registerKillSessionHandler, C as startHappyServer } from './index-BUhcXX8R.mjs';
8
- import { A as AcpBackend } from './AcpBackend-Co3atHW2.mjs';
9
- import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-BWu8j7bO.mjs';
5
+ import { f as connectionState, A as ApiClient, e as errorLogMetadata, p as projectPath, d as contentLogMetadata } from './types-lFZhC_6M.mjs';
6
+ import { l as logger, g as readSettings, i as encodeBase64 } from './limits-BusZ5sPV.mjs';
7
+ import { Q as GEMINI_API_KEY_ENV, R as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, K as BasePermissionHandler, U as BaseReasoningProcessor, n as initialMachineMetadata, o as createSessionMetadata, u as setupOfflineReconnection, v as notifyDaemonSessionStarted, x as MessageQueue2, B as hashObject, V as MessageBuffer, W as CHANGE_TITLE_INSTRUCTION, y as registerKillSessionHandler, C as startHappyServer } from './index-BPYVCjjs.mjs';
8
+ import { A as AcpBackend } from './AcpBackend-DSRZM4lo.mjs';
9
+ import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-Ur8QEJ0U.mjs';
10
10
  import 'axios';
11
11
  import 'node:events';
12
12
  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-7pJxf_3b.mjs';
35
+ import './agentGuidance-CeuhVA2K.mjs';
36
36
  import '@anthropic-ai/claude-agent-sdk';
37
37
  import 'ps-list';
38
38
  import 'tmp';
@@ -5,10 +5,10 @@ var node_child_process = require('node:child_process');
5
5
  var os = require('node:os');
6
6
  var node_fs = require('node:fs');
7
7
  var path = require('node:path');
8
- var api = require('./types-QB33ckXt.cjs');
9
- var AcpSessionManager = require('./AcpSessionManager-CxvVg8ec.cjs');
10
- var persistence = require('./limits-BhK6ovLz.cjs');
11
- var index = require('./index-C7TA3haC.cjs');
8
+ var api = require('./types-B20MYc5R.cjs');
9
+ var AcpSessionManager = require('./AcpSessionManager-r8SLweP4.cjs');
10
+ var persistence = require('./limits-C9bJJEyR.cjs');
11
+ var index = require('./index-B5Vv72dN.cjs');
12
12
  var WebSocket = require('ws');
13
13
  var ed = require('@noble/ed25519');
14
14
  var sha2_js = require('@noble/hashes/sha2.js');
@@ -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-TjPzDO7d.cjs');
37
+ require('./agentGuidance-B4bH8Nuz.cjs');
38
38
  require('ink');
39
39
  require('react');
40
40
  require('@anthropic-ai/claude-agent-sdk');
@@ -3,10 +3,10 @@ import { execFileSync } from 'node:child_process';
3
3
  import os from 'node:os';
4
4
  import { existsSync, readFileSync } from 'node:fs';
5
5
  import { join } from 'node:path';
6
- import { e as errorLogMetadata, d as contentLogMetadata, f as connectionState, A as ApiClient } from './types-B-ySoSY9.mjs';
7
- import { A as AcpSessionManager } from './AcpSessionManager-B0sD6Zi7.mjs';
8
- import { f as ensurePrivateDirectorySync, h as hardenPrivateFileSync, w as writePrivateFileSync, g as readSettings, i as encodeBase64, l as logger, c as configuration } from './limits-CIcZA0Bn.mjs';
9
- import { n as initialMachineMetadata, o as createSessionMetadata, u as setupOfflineReconnection, v as notifyDaemonSessionStarted, x as MessageQueue2, y as registerKillSessionHandler } from './index-BUhcXX8R.mjs';
6
+ import { e as errorLogMetadata, d as contentLogMetadata, f as connectionState, A as ApiClient } from './types-lFZhC_6M.mjs';
7
+ import { A as AcpSessionManager } from './AcpSessionManager-DtXOAeQ0.mjs';
8
+ import { f as ensurePrivateDirectorySync, h as hardenPrivateFileSync, w as writePrivateFileSync, g as readSettings, i as encodeBase64, l as logger, c as configuration } from './limits-BusZ5sPV.mjs';
9
+ import { n as initialMachineMetadata, o as createSessionMetadata, u as setupOfflineReconnection, v as notifyDaemonSessionStarted, x as MessageQueue2, y as registerKillSessionHandler } from './index-BPYVCjjs.mjs';
10
10
  import WebSocket from 'ws';
11
11
  import * as ed from '@noble/ed25519';
12
12
  import { sha512 } from '@noble/hashes/sha2.js';
@@ -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-7pJxf_3b.mjs';
35
+ import './agentGuidance-CeuhVA2K.mjs';
36
36
  import 'ink';
37
37
  import 'react';
38
38
  import '@anthropic-ai/claude-agent-sdk';
@@ -1,15 +1,15 @@
1
1
  import chalk from 'chalk';
2
2
  import { readFileSync } from 'node:fs';
3
3
  import { resolve } from 'node:path';
4
- import { r as readPersistedSessions, c as configuration } from './limits-CIcZA0Bn.mjs';
5
- import { d as sendUserMessage, a as sessionWebUrl } from './index-BUhcXX8R.mjs';
4
+ import { r as readPersistedSessions, c as configuration } from './limits-BusZ5sPV.mjs';
5
+ import { d as sendUserMessage, a as sessionWebUrl } from './index-BPYVCjjs.mjs';
6
6
  import 'node:fs/promises';
7
7
  import 'node:os';
8
8
  import 'zod';
9
9
  import 'node:crypto';
10
10
  import 'tweetnacl';
11
11
  import 'node:util';
12
- import './types-B-ySoSY9.mjs';
12
+ import './types-lFZhC_6M.mjs';
13
13
  import 'axios';
14
14
  import 'node:events';
15
15
  import 'socket.io-client';
@@ -28,7 +28,7 @@ import 'fs';
28
28
  import 'node:readline';
29
29
  import '@anthropic-ai/sandbox-runtime';
30
30
  import 'expo-server-sdk';
31
- import './agentGuidance-7pJxf_3b.mjs';
31
+ import './agentGuidance-CeuhVA2K.mjs';
32
32
  import 'ink';
33
33
  import 'react';
34
34
  import '@anthropic-ai/claude-agent-sdk';
@@ -3,15 +3,15 @@
3
3
  var chalk = require('chalk');
4
4
  var node_fs = require('node:fs');
5
5
  var path = require('node:path');
6
- var persistence = require('./limits-BhK6ovLz.cjs');
7
- var index = require('./index-C7TA3haC.cjs');
6
+ var persistence = require('./limits-C9bJJEyR.cjs');
7
+ var index = require('./index-B5Vv72dN.cjs');
8
8
  require('node:fs/promises');
9
9
  require('node:os');
10
10
  require('zod');
11
11
  require('node:crypto');
12
12
  require('tweetnacl');
13
13
  require('node:util');
14
- require('./types-QB33ckXt.cjs');
14
+ require('./types-B20MYc5R.cjs');
15
15
  require('axios');
16
16
  require('node:events');
17
17
  require('socket.io-client');
@@ -30,7 +30,7 @@ require('fs');
30
30
  require('node:readline');
31
31
  require('@anthropic-ai/sandbox-runtime');
32
32
  require('expo-server-sdk');
33
- require('./agentGuidance-TjPzDO7d.cjs');
33
+ require('./agentGuidance-B4bH8Nuz.cjs');
34
34
  require('ink');
35
35
  require('react');
36
36
  require('@anthropic-ai/claude-agent-sdk');
@@ -1,9 +1,9 @@
1
1
  import chalk from 'chalk';
2
- import { D as DEFAULT_RECENT_LIMIT, M as MAX_READ_LIMIT, l as listAccountSessions, e as listSessions, r as readSessionTranscript, f as stopSession, g as resolvePermissionRequest, h as archiveSession } from './index-BUhcXX8R.mjs';
3
- import { i as isValidSessionId } from './types-B-ySoSY9.mjs';
2
+ import { D as DEFAULT_RECENT_LIMIT, M as MAX_READ_LIMIT, l as listAccountSessions, e as listSessions, r as readSessionTranscript, f as stopSession, g as resolvePermissionRequest, h as archiveSession } from './index-BPYVCjjs.mjs';
3
+ import { i as isValidSessionId } from './types-lFZhC_6M.mjs';
4
4
  import 'node:os';
5
5
  import 'node:crypto';
6
- import './limits-CIcZA0Bn.mjs';
6
+ import './limits-BusZ5sPV.mjs';
7
7
  import 'node:fs/promises';
8
8
  import 'node:fs';
9
9
  import 'node:path';
@@ -12,7 +12,7 @@ import 'tweetnacl';
12
12
  import 'node:util';
13
13
  import 'cross-spawn';
14
14
  import 'node:readline';
15
- import './agentGuidance-7pJxf_3b.mjs';
15
+ import './agentGuidance-CeuhVA2K.mjs';
16
16
  import 'fs/promises';
17
17
  import 'ink';
18
18
  import 'react';
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var index = require('./index-C7TA3haC.cjs');
5
- var api = require('./types-QB33ckXt.cjs');
4
+ var index = require('./index-B5Vv72dN.cjs');
5
+ var api = require('./types-B20MYc5R.cjs');
6
6
  require('node:os');
7
7
  require('node:crypto');
8
- require('./limits-BhK6ovLz.cjs');
8
+ require('./limits-C9bJJEyR.cjs');
9
9
  require('node:fs/promises');
10
10
  require('node:fs');
11
11
  require('node:path');
@@ -14,7 +14,7 @@ require('tweetnacl');
14
14
  require('node:util');
15
15
  require('cross-spawn');
16
16
  require('node:readline');
17
- require('./agentGuidance-TjPzDO7d.cjs');
17
+ require('./agentGuidance-B4bH8Nuz.cjs');
18
18
  require('fs/promises');
19
19
  require('ink');
20
20
  require('react');
@@ -1,11 +1,11 @@
1
1
  import chalk from 'chalk';
2
2
  import { readFileSync, statSync } from 'node:fs';
3
3
  import { resolve } from 'node:path';
4
- import { c as checkIfDaemonRunningAndCleanupStaleState, s as spawnDaemonSession, a as sessionWebUrl, i as isValidSpawnOrigin, b as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES, S as SPAWN_AGENTS, w as waitForSessionKey, d as sendUserMessage } from './index-BUhcXX8R.mjs';
5
- import { l as logger } from './limits-CIcZA0Bn.mjs';
4
+ import { c as checkIfDaemonRunningAndCleanupStaleState, s as spawnDaemonSession, a as sessionWebUrl, i as isValidSpawnOrigin, b as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES, S as SPAWN_AGENTS, w as waitForSessionKey, d as sendUserMessage } from './index-BPYVCjjs.mjs';
5
+ import { l as logger } from './limits-BusZ5sPV.mjs';
6
6
  import 'node:os';
7
7
  import 'node:crypto';
8
- import './types-B-ySoSY9.mjs';
8
+ import './types-lFZhC_6M.mjs';
9
9
  import 'axios';
10
10
  import 'node:events';
11
11
  import 'socket.io-client';
@@ -27,7 +27,7 @@ import 'tweetnacl';
27
27
  import 'node:readline';
28
28
  import '@anthropic-ai/sandbox-runtime';
29
29
  import 'expo-server-sdk';
30
- import './agentGuidance-7pJxf_3b.mjs';
30
+ import './agentGuidance-CeuhVA2K.mjs';
31
31
  import 'ink';
32
32
  import 'react';
33
33
  import '@anthropic-ai/claude-agent-sdk';
@@ -3,11 +3,11 @@
3
3
  var chalk = require('chalk');
4
4
  var node_fs = require('node:fs');
5
5
  var path = require('node:path');
6
- var index = require('./index-C7TA3haC.cjs');
7
- var persistence = require('./limits-BhK6ovLz.cjs');
6
+ var index = require('./index-B5Vv72dN.cjs');
7
+ var persistence = require('./limits-C9bJJEyR.cjs');
8
8
  require('node:os');
9
9
  require('node:crypto');
10
- require('./types-QB33ckXt.cjs');
10
+ require('./types-B20MYc5R.cjs');
11
11
  require('axios');
12
12
  require('node:events');
13
13
  require('socket.io-client');
@@ -29,7 +29,7 @@ require('tweetnacl');
29
29
  require('node:readline');
30
30
  require('@anthropic-ai/sandbox-runtime');
31
31
  require('expo-server-sdk');
32
- require('./agentGuidance-TjPzDO7d.cjs');
32
+ require('./agentGuidance-B4bH8Nuz.cjs');
33
33
  require('ink');
34
34
  require('react');
35
35
  require('@anthropic-ai/claude-agent-sdk');
@@ -2,15 +2,15 @@ import { homedir } from 'node:os';
2
2
  import { unlink, rmdir, mkdir, lstat, readFile, writeFile, rename } from 'node:fs/promises';
3
3
  import { z } from 'zod';
4
4
  import { createHash, randomUUID } from 'node:crypto';
5
- import { d as teamRequest, e as createTeamsClient } from './agentGuidance-7pJxf_3b.mjs';
6
- import { d as readCredentialsForConfiguredRelay } from './limits-CIcZA0Bn.mjs';
5
+ import { d as teamRequest, e as createTeamsClient } from './agentGuidance-CeuhVA2K.mjs';
6
+ import { d as readCredentialsForConfiguredRelay } from './limits-BusZ5sPV.mjs';
7
7
  import { join, resolve, dirname } from 'node:path';
8
- import { T as TEAM_SKILL } from './index-BUhcXX8R.mjs';
8
+ import { T as TEAM_SKILL } from './index-BPYVCjjs.mjs';
9
9
  import 'node:fs';
10
10
  import 'tweetnacl';
11
11
  import 'chalk';
12
12
  import 'node:util';
13
- import './types-B-ySoSY9.mjs';
13
+ import './types-lFZhC_6M.mjs';
14
14
  import 'axios';
15
15
  import 'node:events';
16
16
  import 'socket.io-client';
@@ -4,15 +4,15 @@ var os = require('node:os');
4
4
  var promises = require('node:fs/promises');
5
5
  var z = require('zod');
6
6
  var node_crypto = require('node:crypto');
7
- var agentGuidance = require('./agentGuidance-TjPzDO7d.cjs');
8
- var persistence = require('./limits-BhK6ovLz.cjs');
7
+ var agentGuidance = require('./agentGuidance-B4bH8Nuz.cjs');
8
+ var persistence = require('./limits-C9bJJEyR.cjs');
9
9
  var path = require('node:path');
10
- var index = require('./index-C7TA3haC.cjs');
10
+ var index = require('./index-B5Vv72dN.cjs');
11
11
  require('node:fs');
12
12
  require('tweetnacl');
13
13
  require('chalk');
14
14
  require('node:util');
15
- require('./types-QB33ckXt.cjs');
15
+ require('./types-B20MYc5R.cjs');
16
16
  require('axios');
17
17
  require('node:events');
18
18
  require('socket.io-client');
@@ -1,6 +1,6 @@
1
- import { d as readCredentialsForConfiguredRelay, c as configuration } from './limits-CIcZA0Bn.mjs';
2
- import { b as createBuiltinTodoClient, B as BUILTIN_TODO_SKILL } from './types-B-ySoSY9.mjs';
3
- import { c as readTeamScope, t as teamScopePath } from './agentGuidance-7pJxf_3b.mjs';
1
+ import { d as readCredentialsForConfiguredRelay, c as configuration } from './limits-BusZ5sPV.mjs';
2
+ import { b as createBuiltinTodoClient, B as BUILTIN_TODO_SKILL } from './types-lFZhC_6M.mjs';
3
+ import { c as readTeamScope, t as teamScopePath } from './agentGuidance-CeuhVA2K.mjs';
4
4
  import 'node:fs/promises';
5
5
  import 'node:fs';
6
6
  import 'node:os';
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var persistence = require('./limits-BhK6ovLz.cjs');
4
- var api = require('./types-QB33ckXt.cjs');
5
- var agentGuidance = require('./agentGuidance-TjPzDO7d.cjs');
3
+ var persistence = require('./limits-C9bJJEyR.cjs');
4
+ var api = require('./types-B20MYc5R.cjs');
5
+ var agentGuidance = require('./agentGuidance-B4bH8Nuz.cjs');
6
6
  require('node:fs/promises');
7
7
  require('node:fs');
8
8
  require('node:os');
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var axios = require('axios');
4
- var persistence = require('./limits-BhK6ovLz.cjs');
4
+ var persistence = require('./limits-C9bJJEyR.cjs');
5
5
  var node_events = require('node:events');
6
6
  var socket_ioClient = require('socket.io-client');
7
7
  var z = require('zod');
@@ -794,6 +794,12 @@ For edit/status/delete, a conflict means the version changed. Read the task and
794
794
  Restricted team workers cannot use account-wide Todo credentials. Ask the user or supervising session to perform the account operation; do not clear scope variables or seek another credential to bypass that boundary.
795
795
  `;
796
796
  const BUILTIN_TODO_DISCOVERY = "For the user\u2019s Very Happy My todos, run `very-happy todo skill` to read the official skill, then use its CLI commands. Do not confuse account todos with your execution plan; restricted team workers must not bypass their scope.";
797
+ const ContextUsageSchema = z.z.object({
798
+ source: z.z.literal("pi"),
799
+ tokens: z.z.number().finite().nonnegative().nullable(),
800
+ contextWindow: z.z.number().finite().positive(),
801
+ updatedAt: z.z.number().finite().nonnegative()
802
+ });
797
803
 
798
804
  z.z.object({
799
805
  teamsVersion: z.z.number().int().positive().optional(),
@@ -1337,7 +1343,7 @@ class RpcHandlerManager {
1337
1343
  }
1338
1344
  }
1339
1345
 
1340
- const __dirname$1 = path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('types-QB33ckXt.cjs', document.baseURI).href))));
1346
+ const __dirname$1 = path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('types-B20MYc5R.cjs', document.baseURI).href))));
1341
1347
  function projectPath() {
1342
1348
  const path$1 = path.resolve(__dirname$1, "..");
1343
1349
  return path$1;
@@ -16224,6 +16230,7 @@ exports.BOARD_ANALYZER_PROMPT_PREFIX = BOARD_ANALYZER_PROMPT_PREFIX;
16224
16230
  exports.BUILTIN_TODO_DISCOVERY = BUILTIN_TODO_DISCOVERY;
16225
16231
  exports.BUILTIN_TODO_SKILL = BUILTIN_TODO_SKILL;
16226
16232
  exports.CodexAppServerClient = CodexAppServerClient;
16233
+ exports.ContextUsageSchema = ContextUsageSchema;
16227
16234
  exports.DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS = DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS;
16228
16235
  exports.InvalidateSync = InvalidateSync;
16229
16236
  exports.MAX_CHAT_ATTACHMENT_SOURCE_BYTES = MAX_CHAT_ATTACHMENT_SOURCE_BYTES;
@@ -1,5 +1,5 @@
1
1
  import axios from 'axios';
2
- import { l as logger, i as encodeBase64, j as encrypt, k as decrypt, m as decodeBase64, c as configuration, o as decryptBlob, q as prepareClipboardText, g as readSettings, r as readPersistedSessions, s as credentialRelayProblem, p as packageJson, t as readTrackedClaudeSessionIds, u as libsodiumEncryptForPublicKey, v as libsodiumPublicKeyFromSecretKey, x as getRandomBytes, y as redactLogValue } from './limits-CIcZA0Bn.mjs';
2
+ import { l as logger, i as encodeBase64, j as encrypt, k as decrypt, m as decodeBase64, c as configuration, o as decryptBlob, q as prepareClipboardText, g as readSettings, r as readPersistedSessions, s as credentialRelayProblem, p as packageJson, t as readTrackedClaudeSessionIds, u as libsodiumEncryptForPublicKey, v as libsodiumPublicKeyFromSecretKey, x as getRandomBytes, y as redactLogValue } from './limits-BusZ5sPV.mjs';
3
3
  import { EventEmitter } from 'node:events';
4
4
  import { io } from 'socket.io-client';
5
5
  import * as z from 'zod';
@@ -772,6 +772,12 @@ For edit/status/delete, a conflict means the version changed. Read the task and
772
772
  Restricted team workers cannot use account-wide Todo credentials. Ask the user or supervising session to perform the account operation; do not clear scope variables or seek another credential to bypass that boundary.
773
773
  `;
774
774
  const BUILTIN_TODO_DISCOVERY = "For the user\u2019s Very Happy My todos, run `very-happy todo skill` to read the official skill, then use its CLI commands. Do not confuse account todos with your execution plan; restricted team workers must not bypass their scope.";
775
+ const ContextUsageSchema = z$1.object({
776
+ source: z$1.literal("pi"),
777
+ tokens: z$1.number().finite().nonnegative().nullable(),
778
+ contextWindow: z$1.number().finite().positive(),
779
+ updatedAt: z$1.number().finite().nonnegative()
780
+ });
775
781
 
776
782
  z$1.object({
777
783
  teamsVersion: z$1.number().int().positive().optional(),
@@ -16195,4 +16201,4 @@ const RawJSONLinesSchema = z$1.discriminatedUnion("type", [
16195
16201
  }).passthrough()
16196
16202
  ]);
16197
16203
 
16198
- export { ApiClient as A, BUILTIN_TODO_SKILL as B, scrubTmuxClientEnv as C, decideMirrorBinding as D, MIRROR_BACKFILL_LINES_DEFAULT as E, mirrorLineKey as F, mirrorLocalId as G, detectCLIAvailability as H, InvalidateSync as I, detectResumeSupport as J, summarizeSpawnSessionForLog as K, shellescape as L, MAX_CHAT_ATTACHMENT_SOURCE_BYTES as M, fetchCliUpdateState as N, resolveCliUpdateCheckInterval as O, DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS as P, listVhTerminals as Q, RawJSONLinesSchema as R, STREAM_DELTA_MAX_CHARS as S, isValidTerminalId as T, readVhTerminal as U, sendToVhTerminal as V, TITLE_PROMPT_PREFIX as W, BOARD_ANALYZER_PROMPT_PREFIX as X, startOfflineReconnection as Y, CodexAppServerClient as Z, api as _, ApiSessionClient as a, createBuiltinTodoClient as b, createEnvelope as c, contentLogMetadata as d, errorLogMetadata as e, connectionState as f, BUILTIN_TODO_DISCOVERY as g, delay as h, isValidSessionId as i, getProjectPath as j, initializeSandbox as k, AsyncLock as l, commandOnPath as m, deriveLocalCliUpdateSummary as n, isClaudeSessionId as o, projectPath as p, getLocalHappyAgentCredentialPath as q, readLocalHappyAgentCredentials as r, streamKeyOf as s, parseExactVersion as t, compareExactVersions as u, extractCompleteLines as v, wrapCommand as w, decideBackfill as x, parseTerminalHookPayload as y, tmuxArgs as z };
16204
+ export { api as $, ApiClient as A, BUILTIN_TODO_SKILL as B, scrubTmuxClientEnv as C, decideMirrorBinding as D, MIRROR_BACKFILL_LINES_DEFAULT as E, mirrorLineKey as F, mirrorLocalId as G, detectCLIAvailability as H, InvalidateSync as I, detectResumeSupport as J, summarizeSpawnSessionForLog as K, shellescape as L, MAX_CHAT_ATTACHMENT_SOURCE_BYTES as M, fetchCliUpdateState as N, resolveCliUpdateCheckInterval as O, DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS as P, listVhTerminals as Q, RawJSONLinesSchema as R, STREAM_DELTA_MAX_CHARS as S, isValidTerminalId as T, readVhTerminal as U, sendToVhTerminal as V, ContextUsageSchema as W, TITLE_PROMPT_PREFIX as X, BOARD_ANALYZER_PROMPT_PREFIX as Y, startOfflineReconnection as Z, CodexAppServerClient as _, ApiSessionClient as a, createBuiltinTodoClient as b, createEnvelope as c, contentLogMetadata as d, errorLogMetadata as e, connectionState as f, BUILTIN_TODO_DISCOVERY as g, delay as h, isValidSessionId as i, getProjectPath as j, initializeSandbox as k, AsyncLock as l, commandOnPath as m, deriveLocalCliUpdateSummary as n, isClaudeSessionId as o, projectPath as p, getLocalHappyAgentCredentialPath as q, readLocalHappyAgentCredentials as r, streamKeyOf as s, parseExactVersion as t, compareExactVersions as u, extractCompleteLines as v, wrapCommand as w, decideBackfill as x, parseTerminalHookPayload as y, tmuxArgs as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "very-happy-cli",
3
- "version": "0.2.130",
3
+ "version": "0.2.131",
4
4
  "description": "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.",
5
5
  "author": "Kirill Dubovitskiy",
6
6
  "contributors": [
@@ -113,12 +113,12 @@
113
113
  "zod": "^4.0.0"
114
114
  },
115
115
  "optionalDependencies": {
116
- "very-happy-tools-arm64-darwin": "0.2.130",
117
- "very-happy-tools-x64-darwin": "0.2.130",
118
- "very-happy-tools-arm64-linux": "0.2.130",
119
- "very-happy-tools-x64-linux": "0.2.130",
120
- "very-happy-tools-arm64-win32": "0.2.130",
121
- "very-happy-tools-x64-win32": "0.2.130"
116
+ "very-happy-tools-arm64-darwin": "0.2.131",
117
+ "very-happy-tools-x64-darwin": "0.2.131",
118
+ "very-happy-tools-arm64-linux": "0.2.131",
119
+ "very-happy-tools-x64-linux": "0.2.131",
120
+ "very-happy-tools-arm64-win32": "0.2.131",
121
+ "very-happy-tools-x64-win32": "0.2.131"
122
122
  },
123
123
  "devDependencies": {
124
124
  "@slopus/happy-wire": "workspace:*",