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
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var axios = require('axios');
4
- var persistence = require('./limits-CrwtFbi8.cjs');
4
+ var persistence = require('./limits-BhK6ovLz.cjs');
5
5
  var node_events = require('node:events');
6
6
  var socket_ioClient = require('socket.io-client');
7
7
  var z = require('zod');
@@ -351,6 +351,8 @@ const sessionStreamBlockEndSchema = z__namespace.object({
351
351
  });
352
352
  const sessionStreamProgressSchema = z__namespace.object({
353
353
  t: z__namespace.literal("progress"),
354
+ inputTokens: z__namespace.number().int().min(0).optional(),
355
+ cacheTokens: z__namespace.number().int().min(0).optional(),
354
356
  thinkingTokens: z__namespace.number().int().min(0).optional(),
355
357
  outputTokens: z__namespace.number().int().min(0).optional(),
356
358
  status: z__namespace.enum(["requesting", "compacting"]).optional()
@@ -1335,7 +1337,7 @@ class RpcHandlerManager {
1335
1337
  }
1336
1338
  }
1337
1339
 
1338
- 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-DfatCoQL.cjs', document.baseURI).href))));
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))));
1339
1341
  function projectPath() {
1340
1342
  const path$1 = path.resolve(__dirname$1, "..");
1341
1343
  return path$1;
@@ -13414,7 +13416,8 @@ class CodexAppServerClient {
13414
13416
  throw new Error("No active thread. Call startThread first.");
13415
13417
  }
13416
13418
  const input = [
13417
- { type: "text", text: prompt }
13419
+ { type: "text", text: prompt },
13420
+ ...(opts?.images ?? []).map((path) => ({ type: "localImage", path }))
13418
13421
  ];
13419
13422
  const params = {
13420
13423
  threadId: this._threadId,
@@ -13522,6 +13525,19 @@ class CodexAppServerClient {
13522
13525
  // ─── JSON-RPC transport ─────────────────────────────────────
13523
13526
  /** Default timeout for RPC requests (ms). */
13524
13527
  static REQUEST_TIMEOUT_MS = 3e4;
13528
+ async listModels() {
13529
+ const models = [];
13530
+ let cursor = null;
13531
+ const seenCursors = /* @__PURE__ */ new Set();
13532
+ do {
13533
+ const response = await this.request("model/list", { limit: 100, cursor, includeHidden: false });
13534
+ models.push(...response.data.filter((model) => !model.hidden));
13535
+ cursor = response.nextCursor ?? null;
13536
+ if (cursor && seenCursors.has(cursor)) throw new Error("Repeated model/list cursor");
13537
+ if (cursor) seenCursors.add(cursor);
13538
+ } while (cursor);
13539
+ return models;
13540
+ }
13525
13541
  request(method, params, timeoutMs) {
13526
13542
  const timeout = timeoutMs ?? CodexAppServerClient.REQUEST_TIMEOUT_MS;
13527
13543
  return new Promise((resolve, reject) => {
@@ -14228,12 +14244,12 @@ class ApiMachineClient {
14228
14244
  this.stopSessionHandler = stopSession;
14229
14245
  this.listTrackedSessionIds = listTrackedSessionIds ?? null;
14230
14246
  this.rpcHandlerManager.registerHandler("spawn-happy-session", async (params) => {
14231
- const { directory, sessionId, machineId, approvedNewDirectoryCreation, agent, environmentVariables, token, resumeClaudeSessionId, resumeCodexThreadId, parentSessionId, forkedFromMessageId, importedFromClaudeSessionId, variant, forceNew, permissionMode } = params || {};
14247
+ const { directory, sessionId, machineId, approvedNewDirectoryCreation, agent, environmentVariables, token, resumeClaudeSessionId, resumeCodexThreadId, parentSessionId, forkedFromMessageId, importedFromClaudeSessionId, variant, forceNew, permissionMode, model } = params || {};
14232
14248
  persistence.logger.debug("[API MACHINE] Spawning session:", summarizeSpawnSessionForLog(params));
14233
14249
  if (!directory && variant !== "assistant") {
14234
14250
  throw new Error("Directory is required");
14235
14251
  }
14236
- 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 });
14252
+ 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 });
14237
14253
  switch (result.type) {
14238
14254
  case "success":
14239
14255
  persistence.logger.debug(`[API MACHINE] Spawned session ${result.sessionId}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "very-happy-cli",
3
- "version": "0.2.128",
3
+ "version": "0.2.130",
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.128",
117
- "very-happy-tools-x64-darwin": "0.2.128",
118
- "very-happy-tools-arm64-linux": "0.2.128",
119
- "very-happy-tools-x64-linux": "0.2.128",
120
- "very-happy-tools-arm64-win32": "0.2.128",
121
- "very-happy-tools-x64-win32": "0.2.128"
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"
122
122
  },
123
123
  "devDependencies": {
124
124
  "@slopus/happy-wire": "workspace:*",