very-happy-cli 0.2.122 → 0.2.123

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 (35) hide show
  1. package/dist/{AcpBackend-YPVwACkW.cjs → AcpBackend-DzIvpTxZ.cjs} +1 -1
  2. package/dist/{AcpBackend-pgDnK76l.mjs → AcpBackend-hM-qHLN3.mjs} +1 -1
  3. package/dist/{AcpSessionManager-Bq5Tiky1.mjs → AcpSessionManager-CRPZPHPa.mjs} +1 -1
  4. package/dist/{AcpSessionManager-6rypahwH.cjs → AcpSessionManager-DyU3Ikgj.cjs} +1 -1
  5. package/dist/{config-rQdv_Yr0.cjs → config-4RaHrVSV.cjs} +2 -2
  6. package/dist/{config-BTEW041n.mjs → config-alG86PDN.mjs} +2 -2
  7. package/dist/{index-BTnlYGaP.mjs → index-36AkXNF2.mjs} +388 -188
  8. package/dist/{index-DKRU6E-x.cjs → index-5b9YhV-1.cjs} +390 -190
  9. package/dist/{index-uPpFZhhr.cjs → index-Beh0UZf8.cjs} +4 -4
  10. package/dist/{index-BeHr5uMY.mjs → index-Cg3Vfc00.mjs} +5 -5
  11. package/dist/{index-BHg0P9cY.cjs → index-DWBKJ5zy.cjs} +2 -2
  12. package/dist/{index-CaIsj1q7.mjs → index-vyYHKKk6.mjs} +2 -2
  13. package/dist/index.cjs +2 -2
  14. package/dist/index.mjs +2 -2
  15. package/dist/{installTerminalHooks-CGqopr1A.cjs → installTerminalHooks-DWCa5j7u.cjs} +2 -2
  16. package/dist/{installTerminalHooks-DFmKhCto.mjs → installTerminalHooks-DqUPkh0l.mjs} +2 -2
  17. package/dist/lib.cjs +1 -1
  18. package/dist/lib.d.cts +7 -0
  19. package/dist/lib.d.mts +7 -0
  20. package/dist/lib.mjs +1 -1
  21. package/dist/{mcp-FlbfMw6_.cjs → mcp-BBya5dsZ.cjs} +2 -2
  22. package/dist/{mcp-DnKBKXYa.mjs → mcp-DZIdcsJp.mjs} +2 -2
  23. package/dist/{runGemini-BsfadDSa.mjs → runGemini-BQa2eF3i.mjs} +4 -4
  24. package/dist/{runGemini-DYawZQTu.cjs → runGemini-DmWxHIwS.cjs} +4 -4
  25. package/dist/{runOpenClaw-xGtbJ7f8.mjs → runOpenClaw-362eg04u.mjs} +3 -3
  26. package/dist/{runOpenClaw-C2XjFP2m.cjs → runOpenClaw-boyJtPBq.cjs} +3 -3
  27. package/dist/{send-B0Wojz18.cjs → send-BINA__Ke.cjs} +2 -2
  28. package/dist/{send-DRZppEr2.mjs → send-CT22-8Tp.mjs} +2 -2
  29. package/dist/{sessions-CTuUV0TW.cjs → sessions-DXYxV6Np.cjs} +2 -2
  30. package/dist/{sessions-BuMgxuxd.mjs → sessions-DemgtCkr.mjs} +2 -2
  31. package/dist/{spawn-7U_4QTHw.cjs → spawn-BtV9dU1i.cjs} +2 -2
  32. package/dist/{spawn-BRdfNDsu.mjs → spawn-D2egvPgO.mjs} +2 -2
  33. package/dist/{types-q7wtjfxb.mjs → types-BqW7nEN_.mjs} +14 -8
  34. package/dist/{types-Jag0GwhO.cjs → types-Cd_tUN3U.cjs} +15 -8
  35. package/package.json +7 -7
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var AcpBackend = require('./AcpBackend-YPVwACkW.cjs');
4
- var persistence = require('./types-Jag0GwhO.cjs');
5
- var AcpSessionManager = require('./AcpSessionManager-6rypahwH.cjs');
3
+ var AcpBackend = require('./AcpBackend-DzIvpTxZ.cjs');
4
+ var persistence = require('./types-Cd_tUN3U.cjs');
5
+ var AcpSessionManager = require('./AcpSessionManager-DyU3Ikgj.cjs');
6
6
  var node_crypto = require('node:crypto');
7
7
  var path = require('node:path');
8
- var index = require('./index-DKRU6E-x.cjs');
8
+ var index = require('./index-5b9YhV-1.cjs');
9
9
  require('node:child_process');
10
10
  require('@agentclientprotocol/sdk');
11
11
  require('axios');
@@ -1,10 +1,10 @@
1
- import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-pgDnK76l.mjs';
2
- export { a as DEFAULT_IDLE_TIMEOUT_MS, b as DEFAULT_TOOL_CALL_TIMEOUT_MS, e as extractErrorDetail, f as formatDuration, c as formatDurationMinutes, h as handleAgentMessageChunk, d as handleAgentThoughtChunk, g as handleLegacyMessageChunk, i as handlePlanUpdate, j as handleThinkingUpdate, k as handleToolCall, l as handleToolCallUpdate, p as parseArgsFromContent } from './AcpBackend-pgDnK76l.mjs';
3
- import { d as connectionState, A as ApiClient, e as readSettings, f as encodeBase64, l as logger, p as projectPath } from './types-q7wtjfxb.mjs';
4
- import { A as AcpSessionManager } from './AcpSessionManager-Bq5Tiky1.mjs';
1
+ import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-hM-qHLN3.mjs';
2
+ export { a as DEFAULT_IDLE_TIMEOUT_MS, b as DEFAULT_TOOL_CALL_TIMEOUT_MS, e as extractErrorDetail, f as formatDuration, c as formatDurationMinutes, h as handleAgentMessageChunk, d as handleAgentThoughtChunk, g as handleLegacyMessageChunk, i as handlePlanUpdate, j as handleThinkingUpdate, k as handleToolCall, l as handleToolCallUpdate, p as parseArgsFromContent } from './AcpBackend-hM-qHLN3.mjs';
3
+ import { d as connectionState, A as ApiClient, e as readSettings, f as encodeBase64, l as logger, p as projectPath } from './types-BqW7nEN_.mjs';
4
+ import { A as AcpSessionManager } from './AcpSessionManager-CRPZPHPa.mjs';
5
5
  import { randomUUID } from 'node:crypto';
6
6
  import { join } from 'node:path';
7
- import { n as initialMachineMetadata, o as createSessionMetadata, u as setupOfflineReconnection, v as notifyDaemonSessionStarted, x as StreamRelay, y as MessageQueue2, z as hashObject, B as startHappyServer, T as TitleGenerator, C as registerKillSessionHandler, E as BasePermissionHandler, F as writeSessionModeFile, H as normalizeAcpPermissionMode, I as removeSessionModeFile } from './index-BTnlYGaP.mjs';
7
+ import { n as initialMachineMetadata, o as createSessionMetadata, u as setupOfflineReconnection, v as notifyDaemonSessionStarted, x as StreamRelay, y as MessageQueue2, z as hashObject, B as startHappyServer, T as TitleGenerator, C as registerKillSessionHandler, E as BasePermissionHandler, F as writeSessionModeFile, H as normalizeAcpPermissionMode, I as removeSessionModeFile } from './index-36AkXNF2.mjs';
8
8
  import 'node:child_process';
9
9
  import '@agentclientprotocol/sdk';
10
10
  import 'axios';
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-DKRU6E-x.cjs');
3
+ var index = require('./index-5b9YhV-1.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-Jag0GwhO.cjs');
8
+ require('./types-Cd_tUN3U.cjs');
9
9
  require('axios');
10
10
  require('node:util');
11
11
  require('node:fs');
@@ -1,9 +1,9 @@
1
- import { q as query } from './index-BTnlYGaP.mjs';
1
+ import { q as query } from './index-36AkXNF2.mjs';
2
2
  export { AbortError } from '@anthropic-ai/claude-agent-sdk';
3
3
  import 'chalk';
4
4
  import 'node:os';
5
5
  import 'node:crypto';
6
- import './types-q7wtjfxb.mjs';
6
+ import './types-BqW7nEN_.mjs';
7
7
  import 'axios';
8
8
  import 'node:util';
9
9
  import 'node:fs';
package/dist/index.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  require('chalk');
4
- require('./index-DKRU6E-x.cjs');
5
- require('./types-Jag0GwhO.cjs');
4
+ require('./index-5b9YhV-1.cjs');
5
+ require('./types-Cd_tUN3U.cjs');
6
6
  require('zod');
7
7
  require('node:child_process');
8
8
  require('node:os');
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import 'chalk';
2
- import './index-BTnlYGaP.mjs';
3
- import './types-q7wtjfxb.mjs';
2
+ import './index-36AkXNF2.mjs';
3
+ import './types-BqW7nEN_.mjs';
4
4
  import 'zod';
5
5
  import 'node:child_process';
6
6
  import 'node:os';
@@ -5,8 +5,8 @@ var path = require('node:path');
5
5
  var os = require('node:os');
6
6
  var node_child_process = require('node:child_process');
7
7
  var chalk = require('chalk');
8
- var persistence = require('./types-Jag0GwhO.cjs');
9
- var index = require('./index-DKRU6E-x.cjs');
8
+ var persistence = require('./types-Cd_tUN3U.cjs');
9
+ var index = require('./index-5b9YhV-1.cjs');
10
10
  require('axios');
11
11
  require('node:util');
12
12
  require('node:fs/promises');
@@ -3,8 +3,8 @@ import { join, resolve } from 'node:path';
3
3
  import { homedir } from 'node:os';
4
4
  import { spawnSync } from 'node:child_process';
5
5
  import chalk from 'chalk';
6
- import { p as projectPath } from './types-q7wtjfxb.mjs';
7
- import { t as tmuxSupportsSessionEnv } from './index-BTnlYGaP.mjs';
6
+ import { p as projectPath } from './types-BqW7nEN_.mjs';
7
+ import { t as tmuxSupportsSessionEnv } from './index-36AkXNF2.mjs';
8
8
  import 'axios';
9
9
  import 'node:util';
10
10
  import 'node:fs/promises';
package/dist/lib.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var persistence = require('./types-Jag0GwhO.cjs');
3
+ var persistence = require('./types-Cd_tUN3U.cjs');
4
4
  require('axios');
5
5
  require('chalk');
6
6
  require('node:util');
package/dist/lib.d.cts CHANGED
@@ -341,6 +341,7 @@ declare const CliUpdateStateSchema: z$1.ZodObject<{
341
341
  required: "required";
342
342
  }>;
343
343
  autoUpdateVersion: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
344
+ retrySupported: z$1.ZodOptional<z$1.ZodBoolean>;
344
345
  checkedAt: z$1.ZodNumber;
345
346
  handoverHold: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodObject<{
346
347
  reason: z$1.ZodString;
@@ -436,6 +437,7 @@ declare const DaemonStateSchema: z$1.ZodObject<{
436
437
  required: "required";
437
438
  }>;
438
439
  autoUpdateVersion: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
440
+ retrySupported: z$1.ZodOptional<z$1.ZodBoolean>;
439
441
  checkedAt: z$1.ZodNumber;
440
442
  handoverHold: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodObject<{
441
443
  reason: z$1.ZodString;
@@ -1363,6 +1365,11 @@ declare class ApiMachineClient {
1363
1365
  * and the open-terminal snapshot/replay payloads. */
1364
1366
  private encTerminalData;
1365
1367
  constructor(token: string, machine: Machine);
1368
+ setCliUpdateRetryHandler(handler: (version: unknown) => Promise<{
1369
+ accepted: true;
1370
+ } | {
1371
+ error: string;
1372
+ }>): void;
1366
1373
  /** Cache the latest relay policy locally and publish it now or on the next
1367
1374
  * socket connect. This makes startup/offline races harmless. */
1368
1375
  setCliUpdateState(state: CliUpdateState | null): void;
package/dist/lib.d.mts CHANGED
@@ -341,6 +341,7 @@ declare const CliUpdateStateSchema: z$1.ZodObject<{
341
341
  required: "required";
342
342
  }>;
343
343
  autoUpdateVersion: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
344
+ retrySupported: z$1.ZodOptional<z$1.ZodBoolean>;
344
345
  checkedAt: z$1.ZodNumber;
345
346
  handoverHold: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodObject<{
346
347
  reason: z$1.ZodString;
@@ -436,6 +437,7 @@ declare const DaemonStateSchema: z$1.ZodObject<{
436
437
  required: "required";
437
438
  }>;
438
439
  autoUpdateVersion: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
440
+ retrySupported: z$1.ZodOptional<z$1.ZodBoolean>;
439
441
  checkedAt: z$1.ZodNumber;
440
442
  handoverHold: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodObject<{
441
443
  reason: z$1.ZodString;
@@ -1363,6 +1365,11 @@ declare class ApiMachineClient {
1363
1365
  * and the open-terminal snapshot/replay payloads. */
1364
1366
  private encTerminalData;
1365
1367
  constructor(token: string, machine: Machine);
1368
+ setCliUpdateRetryHandler(handler: (version: unknown) => Promise<{
1369
+ accepted: true;
1370
+ } | {
1371
+ error: string;
1372
+ }>): void;
1366
1373
  /** Cache the latest relay policy locally and publish it now or on the next
1367
1374
  * socket connect. This makes startup/offline races harmless. */
1368
1375
  setCliUpdateState(state: CliUpdateState | null): void;
package/dist/lib.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema, c as configuration, l as logger } from './types-q7wtjfxb.mjs';
1
+ export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema, c as configuration, l as logger } from './types-BqW7nEN_.mjs';
2
2
  import 'axios';
3
3
  import 'chalk';
4
4
  import 'node:util';
@@ -3,9 +3,9 @@
3
3
  var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
4
4
  var stdio_js = require('@modelcontextprotocol/sdk/server/stdio.js');
5
5
  var z = require('zod');
6
- var index = require('./index-DKRU6E-x.cjs');
6
+ var index = require('./index-5b9YhV-1.cjs');
7
7
  var limits = require('./limits-KdWKmwtH.cjs');
8
- var persistence = require('./types-Jag0GwhO.cjs');
8
+ var persistence = require('./types-Cd_tUN3U.cjs');
9
9
  require('node:fs/promises');
10
10
  require('node:os');
11
11
  require('node:crypto');
@@ -1,9 +1,9 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
3
  import { z } from 'zod';
4
- import { p as pushClipboardViaDaemon, k as setTerminalTitleViaDaemon, m as registerAssistantSessionTools } from './index-BTnlYGaP.mjs';
4
+ import { p as pushClipboardViaDaemon, k as setTerminalTitleViaDaemon, m as registerAssistantSessionTools } from './index-36AkXNF2.mjs';
5
5
  import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, c as CLIPBOARD_MAX_BYTES } from './limits-CwFb5S2b.mjs';
6
- import { l as logger } from './types-q7wtjfxb.mjs';
6
+ import { l as logger } from './types-BqW7nEN_.mjs';
7
7
  import 'node:fs/promises';
8
8
  import 'node:os';
9
9
  import 'node:crypto';
@@ -2,10 +2,10 @@ 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 { l as logger, d as connectionState, A as ApiClient, e as readSettings, h as errorLogMetadata, f as encodeBase64, p as projectPath, g as contentLogMetadata } from './types-q7wtjfxb.mjs';
6
- import { J as GEMINI_API_KEY_ENV, K as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, E as BasePermissionHandler, L as BaseReasoningProcessor, n as initialMachineMetadata, o as createSessionMetadata, u as setupOfflineReconnection, v as notifyDaemonSessionStarted, y as MessageQueue2, z as hashObject, N as MessageBuffer, O as CHANGE_TITLE_INSTRUCTION, C as registerKillSessionHandler, B as startHappyServer } from './index-BTnlYGaP.mjs';
7
- import { A as AcpBackend } from './AcpBackend-pgDnK76l.mjs';
8
- import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-BTEW041n.mjs';
5
+ import { l as logger, d as connectionState, A as ApiClient, e as readSettings, h as errorLogMetadata, f as encodeBase64, p as projectPath, g as contentLogMetadata } from './types-BqW7nEN_.mjs';
6
+ import { J as GEMINI_API_KEY_ENV, K as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, E as BasePermissionHandler, L as BaseReasoningProcessor, n as initialMachineMetadata, o as createSessionMetadata, u as setupOfflineReconnection, v as notifyDaemonSessionStarted, y as MessageQueue2, z as hashObject, N as MessageBuffer, O as CHANGE_TITLE_INSTRUCTION, C as registerKillSessionHandler, B as startHappyServer } from './index-36AkXNF2.mjs';
7
+ import { A as AcpBackend } from './AcpBackend-hM-qHLN3.mjs';
8
+ import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-alG86PDN.mjs';
9
9
  import 'axios';
10
10
  import 'chalk';
11
11
  import 'node:util';
@@ -4,10 +4,10 @@ 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 persistence = require('./types-Jag0GwhO.cjs');
8
- var index = require('./index-DKRU6E-x.cjs');
9
- var AcpBackend = require('./AcpBackend-YPVwACkW.cjs');
10
- var config = require('./config-rQdv_Yr0.cjs');
7
+ var persistence = require('./types-Cd_tUN3U.cjs');
8
+ var index = require('./index-5b9YhV-1.cjs');
9
+ var AcpBackend = require('./AcpBackend-DzIvpTxZ.cjs');
10
+ var config = require('./config-4RaHrVSV.cjs');
11
11
  require('axios');
12
12
  require('chalk');
13
13
  require('node:util');
@@ -3,9 +3,9 @@ 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 { m as ensurePrivateDirectorySync, n as hardenPrivateFileSync, w as writePrivateFileSync, h as errorLogMetadata, g as contentLogMetadata, d as connectionState, A as ApiClient, e as readSettings, f as encodeBase64, l as logger, c as configuration } from './types-q7wtjfxb.mjs';
7
- import { A as AcpSessionManager } from './AcpSessionManager-Bq5Tiky1.mjs';
8
- import { n as initialMachineMetadata, o as createSessionMetadata, u as setupOfflineReconnection, v as notifyDaemonSessionStarted, y as MessageQueue2, C as registerKillSessionHandler } from './index-BTnlYGaP.mjs';
6
+ import { m as ensurePrivateDirectorySync, n as hardenPrivateFileSync, w as writePrivateFileSync, h as errorLogMetadata, g as contentLogMetadata, d as connectionState, A as ApiClient, e as readSettings, f as encodeBase64, l as logger, c as configuration } from './types-BqW7nEN_.mjs';
7
+ import { A as AcpSessionManager } from './AcpSessionManager-CRPZPHPa.mjs';
8
+ import { n as initialMachineMetadata, o as createSessionMetadata, u as setupOfflineReconnection, v as notifyDaemonSessionStarted, y as MessageQueue2, C as registerKillSessionHandler } from './index-36AkXNF2.mjs';
9
9
  import WebSocket from 'ws';
10
10
  import * as ed from '@noble/ed25519';
11
11
  import { sha512 } from '@noble/hashes/sha2.js';
@@ -5,9 +5,9 @@ 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 persistence = require('./types-Jag0GwhO.cjs');
9
- var AcpSessionManager = require('./AcpSessionManager-6rypahwH.cjs');
10
- var index = require('./index-DKRU6E-x.cjs');
8
+ var persistence = require('./types-Cd_tUN3U.cjs');
9
+ var AcpSessionManager = require('./AcpSessionManager-DyU3Ikgj.cjs');
10
+ var index = require('./index-5b9YhV-1.cjs');
11
11
  var WebSocket = require('ws');
12
12
  var ed = require('@noble/ed25519');
13
13
  var sha2_js = require('@noble/hashes/sha2.js');
@@ -3,8 +3,8 @@
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('./types-Jag0GwhO.cjs');
7
- var index = require('./index-DKRU6E-x.cjs');
6
+ var persistence = require('./types-Cd_tUN3U.cjs');
7
+ var index = require('./index-5b9YhV-1.cjs');
8
8
  require('axios');
9
9
  require('node:util');
10
10
  require('node:os');
@@ -1,8 +1,8 @@
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 './types-q7wtjfxb.mjs';
5
- import { d as sendUserMessage, a as sessionWebUrl } from './index-BTnlYGaP.mjs';
4
+ import { r as readPersistedSessions, c as configuration } from './types-BqW7nEN_.mjs';
5
+ import { d as sendUserMessage, a as sessionWebUrl } from './index-36AkXNF2.mjs';
6
6
  import 'axios';
7
7
  import 'node:util';
8
8
  import 'node:os';
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var index = require('./index-DKRU6E-x.cjs');
5
- var persistence = require('./types-Jag0GwhO.cjs');
4
+ var index = require('./index-5b9YhV-1.cjs');
5
+ var persistence = require('./types-Cd_tUN3U.cjs');
6
6
  require('node:os');
7
7
  require('node:crypto');
8
8
  require('cross-spawn');
@@ -1,6 +1,6 @@
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-BTnlYGaP.mjs';
3
- import { i as isValidSessionId } from './types-q7wtjfxb.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-36AkXNF2.mjs';
3
+ import { i as isValidSessionId } from './types-BqW7nEN_.mjs';
4
4
  import 'node:os';
5
5
  import 'node:crypto';
6
6
  import 'cross-spawn';
@@ -3,8 +3,8 @@
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-DKRU6E-x.cjs');
7
- var persistence = require('./types-Jag0GwhO.cjs');
6
+ var index = require('./index-5b9YhV-1.cjs');
7
+ var persistence = require('./types-Cd_tUN3U.cjs');
8
8
  require('node:os');
9
9
  require('node:crypto');
10
10
  require('cross-spawn');
@@ -1,8 +1,8 @@
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-BTnlYGaP.mjs';
5
- import { l as logger } from './types-q7wtjfxb.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-36AkXNF2.mjs';
5
+ import { l as logger } from './types-BqW7nEN_.mjs';
6
6
  import 'node:os';
7
7
  import 'node:crypto';
8
8
  import 'cross-spawn';
@@ -29,7 +29,7 @@ import { SandboxManager } from '@anthropic-ai/sandbox-runtime';
29
29
  import { Expo } from 'expo-server-sdk';
30
30
 
31
31
  var name = "very-happy-cli";
32
- var version = "0.2.122";
32
+ var version = "0.2.123";
33
33
  var description = "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.";
34
34
  var author = "Kirill Dubovitskiy";
35
35
  var contributors = [
@@ -142,12 +142,12 @@ var dependencies = {
142
142
  zod: "^4.0.0"
143
143
  };
144
144
  var optionalDependencies = {
145
- "very-happy-tools-arm64-darwin": "0.2.122",
146
- "very-happy-tools-x64-darwin": "0.2.122",
147
- "very-happy-tools-arm64-linux": "0.2.122",
148
- "very-happy-tools-x64-linux": "0.2.122",
149
- "very-happy-tools-arm64-win32": "0.2.122",
150
- "very-happy-tools-x64-win32": "0.2.122"
145
+ "very-happy-tools-arm64-darwin": "0.2.123",
146
+ "very-happy-tools-x64-darwin": "0.2.123",
147
+ "very-happy-tools-arm64-linux": "0.2.123",
148
+ "very-happy-tools-x64-linux": "0.2.123",
149
+ "very-happy-tools-arm64-win32": "0.2.123",
150
+ "very-happy-tools-x64-win32": "0.2.123"
151
151
  };
152
152
  var devDependencies = {
153
153
  "@slopus/happy-wire": "workspace:*",
@@ -1019,6 +1019,8 @@ const ConnectionDiagnosticEventSchema = z$1.object({
1019
1019
  durationMs: z$1.number().int().min(0).max(3e5),
1020
1020
  deviceClass: z$1.enum(["mobile", "desktop", "unknown"]),
1021
1021
  visibility: z$1.enum(["visible", "hidden"]),
1022
+ relayRegion: z$1.enum(["central", "sg", "us", "other", "unknown"]).optional(),
1023
+ timing: z$1.enum(["active", "background", "censored", "unknown"]).optional(),
1022
1024
  client: z$1.string().regex(/^web\/(?:[a-f0-9]{7,40}|unknown)$/)
1023
1025
  }).strict();
1024
1026
  z$1.object({
@@ -1073,6 +1075,7 @@ const CliUpdateStateSchema = z$1.object({
1073
1075
  /** B-351: the version this machine may install by itself. Pinned separately
1074
1076
  * from `recommendedVersion`; null means no unattended install. */
1075
1077
  autoUpdateVersion: z$1.string().nullable().optional(),
1078
+ retrySupported: z$1.boolean().optional(),
1076
1079
  checkedAt: z$1.number(),
1077
1080
  /**
1078
1081
  * B-321: a new bundle is on disk but refused to run, so the daemon is still
@@ -14803,6 +14806,9 @@ class ApiMachineClient {
14803
14806
  encTerminalData(dataBase64) {
14804
14807
  return encodeBase64(encrypt(this.machine.encryptionKey, this.machine.encryptionVariant, dataBase64));
14805
14808
  }
14809
+ setCliUpdateRetryHandler(handler) {
14810
+ this.rpcHandlerManager.registerHandler("cli-update-retry", (params) => handler(params && typeof params === "object" ? params.version : void 0));
14811
+ }
14806
14812
  /** Cache the latest relay policy locally and publish it now or on the next
14807
14813
  * socket connect. This makes startup/offline races harmless. */
14808
14814
  setCliUpdateState(state) {
@@ -16814,4 +16820,4 @@ const RawJSONLinesSchema = z$1.discriminatedUnion("type", [
16814
16820
  }).passthrough()
16815
16821
  ]);
16816
16822
 
16817
- export { scrubTmuxClientEnv as $, ApiClient as A, commandOnPath as B, readCredentials as C, credentialRelayProblem as D, deriveLocalCliUpdateSummary as E, readSettingsOutcome as F, updateSettings as G, encodeBase64Url as H, InvalidateSync as I, decodeBase64 as J, writeCredentialsLegacy as K, writeCredentialsDataKey as L, MAX_CHAT_ATTACHMENT_SOURCE_BYTES as M, readCredentialsForConfiguredRelay as N, encrypt as O, isClaudeSessionId as P, getLocalHappyAgentCredentialPath as Q, RawJSONLinesSchema as R, STREAM_DELTA_MAX_CHARS as S, readLocalHappyAgentCredentials as T, decryptWithDataKey as U, decryptLegacy as V, compareExactVersions as W, extractCompleteLines as X, decideBackfill as Y, parseTerminalHookPayload as Z, tmuxArgs as _, ApiSessionClient as a, decideMirrorBinding as a0, MIRROR_BACKFILL_LINES_DEFAULT as a1, persistSession as a2, mirrorLineKey as a3, mirrorLocalId as a4, detectCLIAvailability as a5, detectResumeSupport as a6, acquireDaemonLock as a7, summarizeSpawnSessionForLog as a8, deletePersistedSessions as a9, shellescape as aa, decrypt as ab, writeDaemonState as ac, writeSettings as ad, fetchCliUpdateState as ae, resolveCliUpdateCheckInterval as af, DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS as ag, releaseDaemonLock as ah, listVhTerminals as ai, isValidTerminalId as aj, readVhTerminal as ak, sendToVhTerminal as al, TITLE_PROMPT_PREFIX as am, BOARD_ANALYZER_PROMPT_PREFIX as an, startOfflineReconnection as ao, clearCredentials as ap, clearMachineId as aq, SandboxConfigSchema as ar, CodexAppServerClient as as, getLatestDaemonLog as at, persistence as au, api as av, createEnvelope as b, configuration as c, connectionState as d, readSettings as e, encodeBase64 as f, contentLogMetadata as g, errorLogMetadata as h, isValidSessionId as i, packageJson as j, delay as k, logger as l, ensurePrivateDirectorySync as m, hardenPrivateFileSync as n, readDaemonState as o, projectPath as p, clearDaemonState as q, readPersistedSessions as r, streamKeyOf as s, getProjectPath as t, initializeSandbox as u, wrapCommand as v, writePrivateFileSync as w, AsyncLock as x, ensurePrivateDirectory as y, hardenPrivateFile as z };
16823
+ export { tmuxArgs as $, ApiClient as A, commandOnPath as B, readCredentials as C, credentialRelayProblem as D, deriveLocalCliUpdateSummary as E, readSettingsOutcome as F, updateSettings as G, encodeBase64Url as H, InvalidateSync as I, decodeBase64 as J, writeCredentialsLegacy as K, writeCredentialsDataKey as L, MAX_CHAT_ATTACHMENT_SOURCE_BYTES as M, readCredentialsForConfiguredRelay as N, encrypt as O, isClaudeSessionId as P, getLocalHappyAgentCredentialPath as Q, RawJSONLinesSchema as R, STREAM_DELTA_MAX_CHARS as S, readLocalHappyAgentCredentials as T, decryptWithDataKey as U, decryptLegacy as V, parseExactVersion as W, compareExactVersions as X, extractCompleteLines as Y, decideBackfill as Z, parseTerminalHookPayload as _, ApiSessionClient as a, scrubTmuxClientEnv as a0, decideMirrorBinding as a1, MIRROR_BACKFILL_LINES_DEFAULT as a2, persistSession as a3, mirrorLineKey as a4, mirrorLocalId as a5, detectCLIAvailability as a6, detectResumeSupport as a7, acquireDaemonLock as a8, summarizeSpawnSessionForLog as a9, deletePersistedSessions as aa, shellescape as ab, decrypt as ac, writeDaemonState as ad, writeSettings as ae, fetchCliUpdateState as af, resolveCliUpdateCheckInterval as ag, DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS as ah, releaseDaemonLock as ai, listVhTerminals as aj, isValidTerminalId as ak, readVhTerminal as al, sendToVhTerminal as am, TITLE_PROMPT_PREFIX as an, BOARD_ANALYZER_PROMPT_PREFIX as ao, startOfflineReconnection as ap, clearCredentials as aq, clearMachineId as ar, SandboxConfigSchema as as, CodexAppServerClient as at, getLatestDaemonLog as au, persistence as av, api as aw, createEnvelope as b, configuration as c, connectionState as d, readSettings as e, encodeBase64 as f, contentLogMetadata as g, errorLogMetadata as h, isValidSessionId as i, packageJson as j, delay as k, logger as l, ensurePrivateDirectorySync as m, hardenPrivateFileSync as n, readDaemonState as o, projectPath as p, clearDaemonState as q, readPersistedSessions as r, streamKeyOf as s, getProjectPath as t, initializeSandbox as u, wrapCommand as v, writePrivateFileSync as w, AsyncLock as x, ensurePrivateDirectory as y, hardenPrivateFile as z };
@@ -51,7 +51,7 @@ var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
51
51
  var pty__namespace = /*#__PURE__*/_interopNamespaceDefault(pty);
52
52
 
53
53
  var name = "very-happy-cli";
54
- var version = "0.2.122";
54
+ var version = "0.2.123";
55
55
  var description = "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.";
56
56
  var author = "Kirill Dubovitskiy";
57
57
  var contributors = [
@@ -164,12 +164,12 @@ var dependencies = {
164
164
  zod: "^4.0.0"
165
165
  };
166
166
  var optionalDependencies = {
167
- "very-happy-tools-arm64-darwin": "0.2.122",
168
- "very-happy-tools-x64-darwin": "0.2.122",
169
- "very-happy-tools-arm64-linux": "0.2.122",
170
- "very-happy-tools-x64-linux": "0.2.122",
171
- "very-happy-tools-arm64-win32": "0.2.122",
172
- "very-happy-tools-x64-win32": "0.2.122"
167
+ "very-happy-tools-arm64-darwin": "0.2.123",
168
+ "very-happy-tools-x64-darwin": "0.2.123",
169
+ "very-happy-tools-arm64-linux": "0.2.123",
170
+ "very-happy-tools-x64-linux": "0.2.123",
171
+ "very-happy-tools-arm64-win32": "0.2.123",
172
+ "very-happy-tools-x64-win32": "0.2.123"
173
173
  };
174
174
  var devDependencies = {
175
175
  "@slopus/happy-wire": "workspace:*",
@@ -1041,6 +1041,8 @@ const ConnectionDiagnosticEventSchema = z.z.object({
1041
1041
  durationMs: z.z.number().int().min(0).max(3e5),
1042
1042
  deviceClass: z.z.enum(["mobile", "desktop", "unknown"]),
1043
1043
  visibility: z.z.enum(["visible", "hidden"]),
1044
+ relayRegion: z.z.enum(["central", "sg", "us", "other", "unknown"]).optional(),
1045
+ timing: z.z.enum(["active", "background", "censored", "unknown"]).optional(),
1044
1046
  client: z.z.string().regex(/^web\/(?:[a-f0-9]{7,40}|unknown)$/)
1045
1047
  }).strict();
1046
1048
  z.z.object({
@@ -1095,6 +1097,7 @@ const CliUpdateStateSchema = z.z.object({
1095
1097
  /** B-351: the version this machine may install by itself. Pinned separately
1096
1098
  * from `recommendedVersion`; null means no unattended install. */
1097
1099
  autoUpdateVersion: z.z.string().nullable().optional(),
1100
+ retrySupported: z.z.boolean().optional(),
1098
1101
  checkedAt: z.z.number(),
1099
1102
  /**
1100
1103
  * B-321: a new bundle is on disk but refused to run, so the daemon is still
@@ -1705,7 +1708,7 @@ class RpcHandlerManager {
1705
1708
  }
1706
1709
  }
1707
1710
 
1708
- const __dirname$1 = path$1.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('types-Jag0GwhO.cjs', document.baseURI).href))));
1711
+ const __dirname$1 = path$1.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('types-Cd_tUN3U.cjs', document.baseURI).href))));
1709
1712
  function projectPath() {
1710
1713
  const path = path$1.resolve(__dirname$1, "..");
1711
1714
  return path;
@@ -14825,6 +14828,9 @@ class ApiMachineClient {
14825
14828
  encTerminalData(dataBase64) {
14826
14829
  return encodeBase64(encrypt(this.machine.encryptionKey, this.machine.encryptionVariant, dataBase64));
14827
14830
  }
14831
+ setCliUpdateRetryHandler(handler) {
14832
+ this.rpcHandlerManager.registerHandler("cli-update-retry", (params) => handler(params && typeof params === "object" ? params.version : void 0));
14833
+ }
14828
14834
  /** Cache the latest relay policy locally and publish it now or on the next
14829
14835
  * socket connect. This makes startup/offline races harmless. */
14830
14836
  setCliUpdateState(state) {
@@ -16894,6 +16900,7 @@ exports.logger = logger;
16894
16900
  exports.mirrorLineKey = mirrorLineKey;
16895
16901
  exports.mirrorLocalId = mirrorLocalId;
16896
16902
  exports.packageJson = packageJson;
16903
+ exports.parseExactVersion = parseExactVersion;
16897
16904
  exports.parseTerminalHookPayload = parseTerminalHookPayload;
16898
16905
  exports.persistSession = persistSession;
16899
16906
  exports.persistence = persistence;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "very-happy-cli",
3
- "version": "0.2.122",
3
+ "version": "0.2.123",
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.122",
117
- "very-happy-tools-x64-darwin": "0.2.122",
118
- "very-happy-tools-arm64-linux": "0.2.122",
119
- "very-happy-tools-x64-linux": "0.2.122",
120
- "very-happy-tools-arm64-win32": "0.2.122",
121
- "very-happy-tools-x64-win32": "0.2.122"
116
+ "very-happy-tools-arm64-darwin": "0.2.123",
117
+ "very-happy-tools-x64-darwin": "0.2.123",
118
+ "very-happy-tools-arm64-linux": "0.2.123",
119
+ "very-happy-tools-x64-linux": "0.2.123",
120
+ "very-happy-tools-arm64-win32": "0.2.123",
121
+ "very-happy-tools-x64-win32": "0.2.123"
122
122
  },
123
123
  "devDependencies": {
124
124
  "@slopus/happy-wire": "workspace:*",