very-happy-cli 0.2.128 → 0.2.130

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-BYU6J2n0.cjs → AcpBackend-5slez7vM.cjs} +16 -4
  2. package/dist/{AcpBackend-D7987ody.mjs → AcpBackend-Co3atHW2.mjs} +16 -4
  3. package/dist/{AcpSessionManager-BwrjVZyn.mjs → AcpSessionManager-B0sD6Zi7.mjs} +1 -1
  4. package/dist/{AcpSessionManager-artXJgqb.cjs → AcpSessionManager-CxvVg8ec.cjs} +1 -1
  5. package/dist/{agentGuidance-BPGPaNlo.mjs → agentGuidance-7pJxf_3b.mjs} +1 -1
  6. package/dist/{agentGuidance-B1xYgHx6.cjs → agentGuidance-TjPzDO7d.cjs} +1 -1
  7. package/dist/codex/happyMcpStdioBridge.cjs +2 -2
  8. package/dist/codex/happyMcpStdioBridge.mjs +2 -2
  9. package/dist/{config-Dmkzs3o4.cjs → config-B4Md4FvK.cjs} +4 -4
  10. package/dist/{config-DSBE0Az0.mjs → config-BWu8j7bO.mjs} +4 -4
  11. package/dist/{index-CfM6ewd8.mjs → index-BUhcXX8R.mjs} +187 -83
  12. package/dist/{index-35FahgEU.mjs → index-C13U8MkT.mjs} +4 -4
  13. package/dist/{index-D_YVlpsW.cjs → index-C7TA3haC.cjs} +194 -86
  14. package/dist/{index-m0Dnccc_.mjs → index-CdOVizh_.mjs} +115 -32
  15. package/dist/{index-vyTJsT_R.cjs → index-DksoP9b2.cjs} +114 -31
  16. package/dist/{index-CJmXLSQc.cjs → index-Ds0aHXiU.cjs} +4 -4
  17. package/dist/index.cjs +4 -4
  18. package/dist/index.mjs +4 -4
  19. package/dist/{installTerminalHooks-C1zwiJJ2.cjs → installTerminalHooks-cNXov61F.cjs} +4 -4
  20. package/dist/{installTerminalHooks-ClrFe2fA.mjs → installTerminalHooks-kUC6I6Rn.mjs} +4 -4
  21. package/dist/lib.cjs +2 -2
  22. package/dist/lib.d.cts +7 -0
  23. package/dist/lib.d.mts +7 -0
  24. package/dist/lib.mjs +2 -2
  25. package/dist/{limits-CrwtFbi8.cjs → limits-BhK6ovLz.cjs} +7 -7
  26. package/dist/{limits-BNTLh2lw.mjs → limits-CIcZA0Bn.mjs} +7 -7
  27. package/dist/{mcp-Bc_mmJt8.cjs → mcp-CNX1qErQ.cjs} +4 -4
  28. package/dist/{mcp-BsohER5A.mjs → mcp-D5uyhbfB.mjs} +4 -4
  29. package/dist/{runGemini-B9S85Vms.mjs → runGemini-BQd3qlVY.mjs} +6 -6
  30. package/dist/{runGemini-B2GesRWm.cjs → runGemini-DvV6X_GE.cjs} +6 -6
  31. package/dist/{runOpenClaw-Byhq-B1y.mjs → runOpenClaw-BgtE2jKF.mjs} +5 -5
  32. package/dist/{runOpenClaw-DCK-R8qe.cjs → runOpenClaw-jxvPz3bo.cjs} +5 -5
  33. package/dist/{send-DQS1zNWp.mjs → send-BdhUFGTm.mjs} +4 -4
  34. package/dist/{send-CPdT1nOg.cjs → send-Di8Q32Ds.cjs} +4 -4
  35. package/dist/{sessions-DIOdWnPe.mjs → sessions-Bo2THj4y.mjs} +4 -4
  36. package/dist/{sessions-DC0IKaD9.cjs → sessions-eaAew6IP.cjs} +4 -4
  37. package/dist/{spawn-DrnCW2QK.cjs → spawn-6GfCYB5i.cjs} +4 -4
  38. package/dist/{spawn-DV4pIAHZ.mjs → spawn-CJxg1JUO.mjs} +4 -4
  39. package/dist/{teams-DlTHOiCk.mjs → teams-CHGj90rR.mjs} +4 -4
  40. package/dist/{teams-CwXEJs9I.cjs → teams-WdwFtptw.cjs} +4 -4
  41. package/dist/{todo-DrME15xq.cjs → todo-C-wktj2K.cjs} +3 -3
  42. package/dist/{todo-BwXURAbQ.mjs → todo-C8hDSNBP.mjs} +3 -3
  43. package/dist/{types-CFs8FmiY.mjs → types-B-ySoSY9.mjs} +21 -5
  44. package/dist/{types-DfatCoQL.cjs → types-QB33ckXt.cjs} +21 -5
  45. package/package.json +7 -7
package/dist/lib.d.cts CHANGED
@@ -163,6 +163,8 @@ declare const sessionStreamFrameSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
163
163
  idx: z.ZodNumber;
164
164
  }, z.core.$strip>, z.ZodObject<{
165
165
  t: z.ZodLiteral<"progress">;
166
+ inputTokens: z.ZodOptional<z.ZodNumber>;
167
+ cacheTokens: z.ZodOptional<z.ZodNumber>;
166
168
  thinkingTokens: z.ZodOptional<z.ZodNumber>;
167
169
  outputTokens: z.ZodOptional<z.ZodNumber>;
168
170
  status: z.ZodOptional<z.ZodEnum<{
@@ -561,6 +563,9 @@ type Metadata = {
561
563
  code: string;
562
564
  value: string;
563
565
  description?: string | null;
566
+ resolvedModel?: string;
567
+ reasoningEfforts?: string[];
568
+ defaultReasoningEffort?: string;
564
569
  }>;
565
570
  currentModelCode?: string;
566
571
  /** Resolved SDK model when no per-message model override was supplied. */
@@ -1087,6 +1092,8 @@ declare const SPAWN_AGENTS: readonly ["claude", "codex", "gemini", "openclaw", "
1087
1092
  type SpawnAgent = (typeof SPAWN_AGENTS)[number];
1088
1093
 
1089
1094
  interface SpawnSessionOptions {
1095
+ /** Optional initial model; absent preserves the runner default. */
1096
+ model?: string;
1090
1097
  machineId?: string;
1091
1098
  directory: string;
1092
1099
  sessionId?: string;
package/dist/lib.d.mts CHANGED
@@ -163,6 +163,8 @@ declare const sessionStreamFrameSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
163
163
  idx: z.ZodNumber;
164
164
  }, z.core.$strip>, z.ZodObject<{
165
165
  t: z.ZodLiteral<"progress">;
166
+ inputTokens: z.ZodOptional<z.ZodNumber>;
167
+ cacheTokens: z.ZodOptional<z.ZodNumber>;
166
168
  thinkingTokens: z.ZodOptional<z.ZodNumber>;
167
169
  outputTokens: z.ZodOptional<z.ZodNumber>;
168
170
  status: z.ZodOptional<z.ZodEnum<{
@@ -561,6 +563,9 @@ type Metadata = {
561
563
  code: string;
562
564
  value: string;
563
565
  description?: string | null;
566
+ resolvedModel?: string;
567
+ reasoningEfforts?: string[];
568
+ defaultReasoningEffort?: string;
564
569
  }>;
565
570
  currentModelCode?: string;
566
571
  /** Resolved SDK model when no per-message model override was supplied. */
@@ -1087,6 +1092,8 @@ declare const SPAWN_AGENTS: readonly ["claude", "codex", "gemini", "openclaw", "
1087
1092
  type SpawnAgent = (typeof SPAWN_AGENTS)[number];
1088
1093
 
1089
1094
  interface SpawnSessionOptions {
1095
+ /** Optional initial model; absent preserves the runner default. */
1096
+ model?: string;
1090
1097
  machineId?: string;
1091
1098
  directory: string;
1092
1099
  sessionId?: string;
package/dist/lib.mjs CHANGED
@@ -1,5 +1,5 @@
1
- export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema } from './types-CFs8FmiY.mjs';
2
- export { c as configuration, l as logger } from './limits-BNTLh2lw.mjs';
1
+ export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema } from './types-B-ySoSY9.mjs';
2
+ export { c as configuration, l as logger } from './limits-CIcZA0Bn.mjs';
3
3
  import 'axios';
4
4
  import 'node:events';
5
5
  import 'socket.io-client';
@@ -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.128";
33
+ var version = "0.2.130";
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.128",
147
- "very-happy-tools-x64-darwin": "0.2.128",
148
- "very-happy-tools-arm64-linux": "0.2.128",
149
- "very-happy-tools-x64-linux": "0.2.128",
150
- "very-happy-tools-arm64-win32": "0.2.128",
151
- "very-happy-tools-x64-win32": "0.2.128"
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"
152
152
  };
153
153
  var devDependencies = {
154
154
  "@slopus/happy-wire": "workspace:*",
@@ -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.128";
12
+ var version = "0.2.130";
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 = [
@@ -122,12 +122,12 @@ var dependencies = {
122
122
  zod: "^4.0.0"
123
123
  };
124
124
  var optionalDependencies = {
125
- "very-happy-tools-arm64-darwin": "0.2.128",
126
- "very-happy-tools-x64-darwin": "0.2.128",
127
- "very-happy-tools-arm64-linux": "0.2.128",
128
- "very-happy-tools-x64-linux": "0.2.128",
129
- "very-happy-tools-arm64-win32": "0.2.128",
130
- "very-happy-tools-x64-win32": "0.2.128"
125
+ "very-happy-tools-arm64-darwin": "0.2.130",
126
+ "very-happy-tools-x64-darwin": "0.2.130",
127
+ "very-happy-tools-arm64-linux": "0.2.130",
128
+ "very-happy-tools-x64-linux": "0.2.130",
129
+ "very-happy-tools-arm64-win32": "0.2.130",
130
+ "very-happy-tools-x64-win32": "0.2.130"
131
131
  };
132
132
  var devDependencies = {
133
133
  "@slopus/happy-wire": "workspace:*",
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var agentGuidance = require('./agentGuidance-B1xYgHx6.cjs');
3
+ var agentGuidance = require('./agentGuidance-TjPzDO7d.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-D_YVlpsW.cjs');
8
- var persistence = require('./limits-CrwtFbi8.cjs');
7
+ var index = require('./index-C7TA3haC.cjs');
8
+ var persistence = require('./limits-BhK6ovLz.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-DfatCoQL.cjs');
16
+ require('./types-QB33ckXt.cjs');
17
17
  require('node:fs');
18
18
  require('node:path');
19
19
  require('chalk');
@@ -1,9 +1,9 @@
1
- import { r as registerTeamsTools } from './agentGuidance-BPGPaNlo.mjs';
1
+ import { r as registerTeamsTools } from './agentGuidance-7pJxf_3b.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-CfM6ewd8.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-BNTLh2lw.mjs';
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';
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-CFs8FmiY.mjs';
14
+ import './types-B-ySoSY9.mjs';
15
15
  import 'node:fs';
16
16
  import 'node:path';
17
17
  import 'chalk';
@@ -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 { g as connectionState, A as ApiClient, e as errorLogMetadata, p as projectPath, d as contentLogMetadata } from './types-CFs8FmiY.mjs';
6
- import { l as logger, g as readSettings, i as encodeBase64 } from './limits-BNTLh2lw.mjs';
7
- import { K as GEMINI_API_KEY_ENV, L as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, F as BasePermissionHandler, N as BaseReasoningProcessor, n as initialMachineMetadata, o as createSessionMetadata, u as setupOfflineReconnection, v as notifyDaemonSessionStarted, x as MessageQueue2, B as hashObject, O as MessageBuffer, Q as CHANGE_TITLE_INSTRUCTION, y as registerKillSessionHandler, C as startHappyServer } from './index-CfM6ewd8.mjs';
8
- import { A as AcpBackend } from './AcpBackend-D7987ody.mjs';
9
- import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-DSBE0Az0.mjs';
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';
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-BPGPaNlo.mjs';
35
+ import './agentGuidance-7pJxf_3b.mjs';
36
36
  import '@anthropic-ai/claude-agent-sdk';
37
37
  import 'ps-list';
38
38
  import 'tmp';
@@ -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-DfatCoQL.cjs');
8
- var persistence = require('./limits-CrwtFbi8.cjs');
9
- var index = require('./index-D_YVlpsW.cjs');
10
- var AcpBackend = require('./AcpBackend-BYU6J2n0.cjs');
11
- var config = require('./config-Dmkzs3o4.cjs');
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');
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-B1xYgHx6.cjs');
37
+ require('./agentGuidance-TjPzDO7d.cjs');
38
38
  require('@anthropic-ai/claude-agent-sdk');
39
39
  require('ps-list');
40
40
  require('tmp');
@@ -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, g as connectionState, A as ApiClient } from './types-CFs8FmiY.mjs';
7
- import { A as AcpSessionManager } from './AcpSessionManager-BwrjVZyn.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-BNTLh2lw.mjs';
9
- import { n as initialMachineMetadata, o as createSessionMetadata, u as setupOfflineReconnection, v as notifyDaemonSessionStarted, x as MessageQueue2, y as registerKillSessionHandler } from './index-CfM6ewd8.mjs';
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';
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-BPGPaNlo.mjs';
35
+ import './agentGuidance-7pJxf_3b.mjs';
36
36
  import 'ink';
37
37
  import 'react';
38
38
  import '@anthropic-ai/claude-agent-sdk';
@@ -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-DfatCoQL.cjs');
9
- var AcpSessionManager = require('./AcpSessionManager-artXJgqb.cjs');
10
- var persistence = require('./limits-CrwtFbi8.cjs');
11
- var index = require('./index-D_YVlpsW.cjs');
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');
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-B1xYgHx6.cjs');
37
+ require('./agentGuidance-TjPzDO7d.cjs');
38
38
  require('ink');
39
39
  require('react');
40
40
  require('@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-BNTLh2lw.mjs';
5
- import { d as sendUserMessage, a as sessionWebUrl } from './index-CfM6ewd8.mjs';
4
+ import { r as readPersistedSessions, c as configuration } from './limits-CIcZA0Bn.mjs';
5
+ import { d as sendUserMessage, a as sessionWebUrl } from './index-BUhcXX8R.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-CFs8FmiY.mjs';
12
+ import './types-B-ySoSY9.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-BPGPaNlo.mjs';
31
+ import './agentGuidance-7pJxf_3b.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-CrwtFbi8.cjs');
7
- var index = require('./index-D_YVlpsW.cjs');
6
+ var persistence = require('./limits-BhK6ovLz.cjs');
7
+ var index = require('./index-C7TA3haC.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-DfatCoQL.cjs');
14
+ require('./types-QB33ckXt.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-B1xYgHx6.cjs');
33
+ require('./agentGuidance-TjPzDO7d.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-CfM6ewd8.mjs';
3
- import { i as isValidSessionId } from './types-CFs8FmiY.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-BUhcXX8R.mjs';
3
+ import { i as isValidSessionId } from './types-B-ySoSY9.mjs';
4
4
  import 'node:os';
5
5
  import 'node:crypto';
6
- import './limits-BNTLh2lw.mjs';
6
+ import './limits-CIcZA0Bn.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-BPGPaNlo.mjs';
15
+ import './agentGuidance-7pJxf_3b.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-D_YVlpsW.cjs');
5
- var api = require('./types-DfatCoQL.cjs');
4
+ var index = require('./index-C7TA3haC.cjs');
5
+ var api = require('./types-QB33ckXt.cjs');
6
6
  require('node:os');
7
7
  require('node:crypto');
8
- require('./limits-CrwtFbi8.cjs');
8
+ require('./limits-BhK6ovLz.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-B1xYgHx6.cjs');
17
+ require('./agentGuidance-TjPzDO7d.cjs');
18
18
  require('fs/promises');
19
19
  require('ink');
20
20
  require('react');
@@ -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-D_YVlpsW.cjs');
7
- var persistence = require('./limits-CrwtFbi8.cjs');
6
+ var index = require('./index-C7TA3haC.cjs');
7
+ var persistence = require('./limits-BhK6ovLz.cjs');
8
8
  require('node:os');
9
9
  require('node:crypto');
10
- require('./types-DfatCoQL.cjs');
10
+ require('./types-QB33ckXt.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-B1xYgHx6.cjs');
32
+ require('./agentGuidance-TjPzDO7d.cjs');
33
33
  require('ink');
34
34
  require('react');
35
35
  require('@anthropic-ai/claude-agent-sdk');
@@ -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-CfM6ewd8.mjs';
5
- import { l as logger } from './limits-BNTLh2lw.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-BUhcXX8R.mjs';
5
+ import { l as logger } from './limits-CIcZA0Bn.mjs';
6
6
  import 'node:os';
7
7
  import 'node:crypto';
8
- import './types-CFs8FmiY.mjs';
8
+ import './types-B-ySoSY9.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-BPGPaNlo.mjs';
30
+ import './agentGuidance-7pJxf_3b.mjs';
31
31
  import 'ink';
32
32
  import 'react';
33
33
  import '@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-BPGPaNlo.mjs';
6
- import { d as readCredentialsForConfiguredRelay } from './limits-BNTLh2lw.mjs';
5
+ import { d as teamRequest, e as createTeamsClient } from './agentGuidance-7pJxf_3b.mjs';
6
+ import { d as readCredentialsForConfiguredRelay } from './limits-CIcZA0Bn.mjs';
7
7
  import { join, resolve, dirname } from 'node:path';
8
- import { T as TEAM_SKILL } from './index-CfM6ewd8.mjs';
8
+ import { T as TEAM_SKILL } from './index-BUhcXX8R.mjs';
9
9
  import 'node:fs';
10
10
  import 'tweetnacl';
11
11
  import 'chalk';
12
12
  import 'node:util';
13
- import './types-CFs8FmiY.mjs';
13
+ import './types-B-ySoSY9.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-B1xYgHx6.cjs');
8
- var persistence = require('./limits-CrwtFbi8.cjs');
7
+ var agentGuidance = require('./agentGuidance-TjPzDO7d.cjs');
8
+ var persistence = require('./limits-BhK6ovLz.cjs');
9
9
  var path = require('node:path');
10
- var index = require('./index-D_YVlpsW.cjs');
10
+ var index = require('./index-C7TA3haC.cjs');
11
11
  require('node:fs');
12
12
  require('tweetnacl');
13
13
  require('chalk');
14
14
  require('node:util');
15
- require('./types-DfatCoQL.cjs');
15
+ require('./types-QB33ckXt.cjs');
16
16
  require('axios');
17
17
  require('node:events');
18
18
  require('socket.io-client');
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var persistence = require('./limits-CrwtFbi8.cjs');
4
- var api = require('./types-DfatCoQL.cjs');
5
- var agentGuidance = require('./agentGuidance-B1xYgHx6.cjs');
3
+ var persistence = require('./limits-BhK6ovLz.cjs');
4
+ var api = require('./types-QB33ckXt.cjs');
5
+ var agentGuidance = require('./agentGuidance-TjPzDO7d.cjs');
6
6
  require('node:fs/promises');
7
7
  require('node:fs');
8
8
  require('node:os');
@@ -1,6 +1,6 @@
1
- import { d as readCredentialsForConfiguredRelay, c as configuration } from './limits-BNTLh2lw.mjs';
2
- import { b as createBuiltinTodoClient, B as BUILTIN_TODO_SKILL } from './types-CFs8FmiY.mjs';
3
- import { c as readTeamScope, t as teamScopePath } from './agentGuidance-BPGPaNlo.mjs';
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';
4
4
  import 'node:fs/promises';
5
5
  import 'node:fs';
6
6
  import 'node:os';
@@ -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-BNTLh2lw.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-CIcZA0Bn.mjs';
3
3
  import { EventEmitter } from 'node:events';
4
4
  import { io } from 'socket.io-client';
5
5
  import * as z from 'zod';
@@ -329,6 +329,8 @@ const sessionStreamBlockEndSchema = z.object({
329
329
  });
330
330
  const sessionStreamProgressSchema = z.object({
331
331
  t: z.literal("progress"),
332
+ inputTokens: z.number().int().min(0).optional(),
333
+ cacheTokens: z.number().int().min(0).optional(),
332
334
  thinkingTokens: z.number().int().min(0).optional(),
333
335
  outputTokens: z.number().int().min(0).optional(),
334
336
  status: z.enum(["requesting", "compacting"]).optional()
@@ -13392,7 +13394,8 @@ class CodexAppServerClient {
13392
13394
  throw new Error("No active thread. Call startThread first.");
13393
13395
  }
13394
13396
  const input = [
13395
- { type: "text", text: prompt }
13397
+ { type: "text", text: prompt },
13398
+ ...(opts?.images ?? []).map((path) => ({ type: "localImage", path }))
13396
13399
  ];
13397
13400
  const params = {
13398
13401
  threadId: this._threadId,
@@ -13500,6 +13503,19 @@ class CodexAppServerClient {
13500
13503
  // ─── JSON-RPC transport ─────────────────────────────────────
13501
13504
  /** Default timeout for RPC requests (ms). */
13502
13505
  static REQUEST_TIMEOUT_MS = 3e4;
13506
+ async listModels() {
13507
+ const models = [];
13508
+ let cursor = null;
13509
+ const seenCursors = /* @__PURE__ */ new Set();
13510
+ do {
13511
+ const response = await this.request("model/list", { limit: 100, cursor, includeHidden: false });
13512
+ models.push(...response.data.filter((model) => !model.hidden));
13513
+ cursor = response.nextCursor ?? null;
13514
+ if (cursor && seenCursors.has(cursor)) throw new Error("Repeated model/list cursor");
13515
+ if (cursor) seenCursors.add(cursor);
13516
+ } while (cursor);
13517
+ return models;
13518
+ }
13503
13519
  request(method, params, timeoutMs) {
13504
13520
  const timeout = timeoutMs ?? CodexAppServerClient.REQUEST_TIMEOUT_MS;
13505
13521
  return new Promise((resolve, reject) => {
@@ -14206,12 +14222,12 @@ class ApiMachineClient {
14206
14222
  this.stopSessionHandler = stopSession;
14207
14223
  this.listTrackedSessionIds = listTrackedSessionIds ?? null;
14208
14224
  this.rpcHandlerManager.registerHandler("spawn-happy-session", async (params) => {
14209
- const { directory, sessionId, machineId, approvedNewDirectoryCreation, agent, environmentVariables, token, resumeClaudeSessionId, resumeCodexThreadId, parentSessionId, forkedFromMessageId, importedFromClaudeSessionId, variant, forceNew, permissionMode } = params || {};
14225
+ const { directory, sessionId, machineId, approvedNewDirectoryCreation, agent, environmentVariables, token, resumeClaudeSessionId, resumeCodexThreadId, parentSessionId, forkedFromMessageId, importedFromClaudeSessionId, variant, forceNew, permissionMode, model } = params || {};
14210
14226
  logger.debug("[API MACHINE] Spawning session:", summarizeSpawnSessionForLog(params));
14211
14227
  if (!directory && variant !== "assistant") {
14212
14228
  throw new Error("Directory is required");
14213
14229
  }
14214
- const result = await spawnSession({ directory: directory || "", sessionId, machineId, approvedNewDirectoryCreation, agent, environmentVariables, token, resumeClaudeSessionId, resumeCodexThreadId, parentSessionId, forkedFromMessageId, importedFromClaudeSessionId: typeof importedFromClaudeSessionId === "string" ? importedFromClaudeSessionId : void 0, variant: variant === "assistant" ? "assistant" : void 0, forceNew: forceNew === true, permissionMode: typeof permissionMode === "string" ? permissionMode : void 0 });
14230
+ const result = await spawnSession({ directory: directory || "", sessionId, machineId, approvedNewDirectoryCreation, agent, environmentVariables, token, resumeClaudeSessionId, resumeCodexThreadId, parentSessionId, forkedFromMessageId, importedFromClaudeSessionId: typeof importedFromClaudeSessionId === "string" ? importedFromClaudeSessionId : void 0, variant: variant === "assistant" ? "assistant" : void 0, forceNew: forceNew === true, model: typeof model === "string" ? model : void 0, permissionMode: typeof permissionMode === "string" ? permissionMode : void 0 });
14215
14231
  switch (result.type) {
14216
14232
  case "success":
14217
14233
  logger.debug(`[API MACHINE] Spawned session ${result.sessionId}`);
@@ -16179,4 +16195,4 @@ const RawJSONLinesSchema = z$1.discriminatedUnion("type", [
16179
16195
  }).passthrough()
16180
16196
  ]);
16181
16197
 
16182
- 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, delay as f, connectionState as g, BUILTIN_TODO_DISCOVERY 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 };
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 };