very-happy-cli 0.2.143 → 0.2.144

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 (49) hide show
  1. package/dist/{AcpBackend-LEgn9vol.mjs → AcpBackend-DLsPpWnc.mjs} +2 -2
  2. package/dist/{AcpBackend-B8oehrfU.cjs → AcpBackend-DssrjZDS.cjs} +30 -30
  3. package/dist/{AcpSessionManager-Yfbs5bi2.mjs → AcpSessionManager-1pAH8SdV.mjs} +1 -1
  4. package/dist/{AcpSessionManager-BomdfyhZ.cjs → AcpSessionManager-DkBV80Rr.cjs} +9 -9
  5. package/dist/{agentGuidance-BU4hxm8M.mjs → agentGuidance-CupQ9Lve.mjs} +1 -1
  6. package/dist/{agentGuidance-CJSl54ua.cjs → agentGuidance-D1PDVswF.cjs} +1 -1
  7. package/dist/agentHome-BaSxP7lQ.mjs +107 -0
  8. package/dist/agentHome-uf1zs2Fi.cjs +113 -0
  9. package/dist/codex/happyMcpStdioBridge.cjs +2 -2
  10. package/dist/codex/happyMcpStdioBridge.mjs +2 -2
  11. package/dist/{config-euZ_K5Lo.mjs → config-CxHoQo52.mjs} +4 -4
  12. package/dist/{config-CfqWoHmO.cjs → config-kx4y9oAI.cjs} +4 -4
  13. package/dist/{index-BREtikhm.cjs → index-DIoSNgtt.cjs} +4 -4
  14. package/dist/{index-DoiG88oX.mjs → index-Diu81aSC.mjs} +69 -24
  15. package/dist/{index-C510dSUn.cjs → index-Dn0JMM8l.cjs} +242 -197
  16. package/dist/{index-Bj68y6ee.cjs → index-Dox9iD5R.cjs} +31 -31
  17. package/dist/{index-PM_SsRpw.mjs → index-DxEaiVzX.mjs} +4 -4
  18. package/dist/{index-ZOMC8Gzn.mjs → index-J6a8OHS6.mjs} +8 -8
  19. package/dist/index.cjs +4 -4
  20. package/dist/index.mjs +4 -4
  21. package/dist/{installTerminalHooks-BGVQqbgq.mjs → installTerminalHooks-BBMGk3q5.mjs} +4 -4
  22. package/dist/{installTerminalHooks-C_jraM1j.cjs → installTerminalHooks-De7_iOOC.cjs} +4 -4
  23. package/dist/lib.cjs +5 -5
  24. package/dist/lib.mjs +2 -2
  25. package/dist/{limits-B3oVgqBJ.cjs → limits-C_Sklt--.cjs} +7 -7
  26. package/dist/{limits-uABU-yq3.mjs → limits-DxArdmkZ.mjs} +8 -8
  27. package/dist/{mcp-CfbTQXyh.mjs → mcp-C1oNnlw5.mjs} +4 -4
  28. package/dist/{mcp-G-3lL_KH.cjs → mcp-xyb8dYIQ.cjs} +9 -9
  29. package/dist/{piRuntime-CWE-1W-y.cjs → piRuntime-3Vbdgv6X.cjs} +2 -2
  30. package/dist/{piRuntime-BE6iYQwU.mjs → piRuntime-CzJdE4z4.mjs} +2 -2
  31. package/dist/{piTerminal-Dyc_9pGP.cjs → piTerminal-BFpwVGWr.cjs} +6 -6
  32. package/dist/{piTerminal-rqKn1_Zy.mjs → piTerminal-Do2GiKMN.mjs} +6 -6
  33. package/dist/{runGemini-C6qMFzcn.cjs → runGemini-CCdGxTF2.cjs} +24 -24
  34. package/dist/{runGemini-BMlXIaTL.mjs → runGemini-De5NRMT9.mjs} +6 -6
  35. package/dist/{runOpenClaw-CoO5Vp3S.mjs → runOpenClaw-C2t4DRyi.mjs} +5 -5
  36. package/dist/{runOpenClaw-C2_aCP7v.cjs → runOpenClaw-CRMUfrWk.cjs} +26 -26
  37. package/dist/{send-DGVwmB-p.cjs → send-BA1Dgpgn.cjs} +4 -4
  38. package/dist/{send-CBrJylJc.mjs → send-l6Rj09c0.mjs} +4 -4
  39. package/dist/{sessions-DyQXMN-8.cjs → sessions-CtVcoXvG.cjs} +5 -5
  40. package/dist/{sessions-DbLubh2N.mjs → sessions-MWLDqQk-.mjs} +4 -4
  41. package/dist/{spawn-DIyFOn3W.cjs → spawn-Be4nsNuQ.cjs} +6 -6
  42. package/dist/{spawn-wkkxEGdF.mjs → spawn-DKWR-6Qc.mjs} +4 -4
  43. package/dist/{teams-QOkGFjkJ.cjs → teams-CcjjNLi8.cjs} +4 -4
  44. package/dist/{teams-BTyVFK3P.mjs → teams-DMf9GNGE.mjs} +4 -4
  45. package/dist/{todo-DoLkqdBe.mjs → todo-BEXZRm1A.mjs} +3 -3
  46. package/dist/{todo-Du6pjwx_.cjs → todo-EffYAnre.cjs} +5 -5
  47. package/dist/{types-BG4gFjLL.mjs → types-D6YKR7wo.mjs} +321 -11
  48. package/dist/{types-6__wqmmP.cjs → types-DZ5c-9f3.cjs} +328 -9
  49. package/package.json +7 -7
@@ -4,12 +4,12 @@ var ink = require('ink');
4
4
  var React = require('react');
5
5
  var node_crypto = require('node:crypto');
6
6
  var path = require('node:path');
7
- var api = require('./types-6__wqmmP.cjs');
8
- var persistence = require('./limits-B3oVgqBJ.cjs');
9
- var index = require('./index-C510dSUn.cjs');
7
+ var index$1 = require('./types-DZ5c-9f3.cjs');
8
+ var persistence = require('./limits-C_Sklt--.cjs');
9
+ var index = require('./index-Dn0JMM8l.cjs');
10
10
  var projectPath = require('./projectPath-ChLhdOyt.cjs');
11
- var AcpBackend = require('./AcpBackend-B8oehrfU.cjs');
12
- var config = require('./config-CfqWoHmO.cjs');
11
+ var AcpBackend = require('./AcpBackend-DssrjZDS.cjs');
12
+ var config = require('./config-kx4y9oAI.cjs');
13
13
  require('axios');
14
14
  require('node:events');
15
15
  require('socket.io-client');
@@ -34,7 +34,7 @@ require('@anthropic-ai/sandbox-runtime');
34
34
  require('expo-server-sdk');
35
35
  require('chalk');
36
36
  require('node:util');
37
- require('./agentGuidance-CJSl54ua.cjs');
37
+ require('./agentGuidance-D1PDVswF.cjs');
38
38
  require('@anthropic-ai/claude-agent-sdk');
39
39
  require('ps-list');
40
40
  require('tmp');
@@ -861,8 +861,8 @@ ${formattedMessages}
861
861
 
862
862
  async function runGemini(opts) {
863
863
  const sessionTag = node_crypto.randomUUID();
864
- api.connectionState.setBackend("Gemini");
865
- const api$1 = await api.ApiClient.create(opts.credentials);
864
+ index$1.connectionState.setBackend("Gemini");
865
+ const api = await index$1.ApiClient.create(opts.credentials);
866
866
  const settings = await persistence.readSettings();
867
867
  const machineId = settings?.machineId;
868
868
  const sandboxConfig = settings?.sandboxConfig;
@@ -871,14 +871,14 @@ async function runGemini(opts) {
871
871
  process.exit(1);
872
872
  }
873
873
  persistence.logger.debug(`Using machineId: ${machineId}`);
874
- await api$1.getOrCreateMachine({
874
+ await api.getOrCreateMachine({
875
875
  machineId,
876
876
  metadata: index.initialMachineMetadata
877
877
  });
878
878
  let cloudToken = void 0;
879
879
  let currentUserEmail = void 0;
880
880
  try {
881
- const vendorToken = await api$1.getVendorToken("gemini");
881
+ const vendorToken = await api.getVendorToken("gemini");
882
882
  if (vendorToken?.oauth?.access_token) {
883
883
  cloudToken = vendorToken.oauth.access_token;
884
884
  persistence.logger.debug("[Gemini] Using OAuth token from Happy cloud");
@@ -898,7 +898,7 @@ async function runGemini(opts) {
898
898
  }
899
899
  }
900
900
  } catch (error) {
901
- persistence.logger.debug("[Gemini] Failed to fetch cloud token:", api.errorLogMetadata(error));
901
+ persistence.logger.debug("[Gemini] Failed to fetch cloud token:", index$1.errorLogMetadata(error));
902
902
  }
903
903
  const { state, metadata } = index.createSessionMetadata({
904
904
  flavor: "gemini",
@@ -906,7 +906,7 @@ async function runGemini(opts) {
906
906
  startedBy: opts.startedBy,
907
907
  sandbox: sandboxConfig
908
908
  });
909
- const response = await api$1.getOrCreateSession({ tag: sessionTag, metadata, state });
909
+ const response = await api.getOrCreateSession({ tag: sessionTag, metadata, state });
910
910
  let session;
911
911
  let permissionHandler;
912
912
  let isProcessingMessage = false;
@@ -922,7 +922,7 @@ async function runGemini(opts) {
922
922
  }
923
923
  };
924
924
  const { session: initialSession, reconnectionHandle } = index.setupOfflineReconnection({
925
- api: api$1,
925
+ api,
926
926
  sessionTag,
927
927
  metadata,
928
928
  state,
@@ -943,7 +943,7 @@ async function runGemini(opts) {
943
943
  if (response) {
944
944
  try {
945
945
  persistence.logger.debug(`[START] Reporting session ${response.id} to daemon`);
946
- const result = await api.notifyDaemonSessionStarted(response.id, metadata, {
946
+ const result = await index$1.notifyDaemonSessionStarted(response.id, metadata, {
947
947
  encryptionKey: persistence.encodeBase64(response.encryptionKey),
948
948
  encryptionVariant: response.encryptionVariant,
949
949
  seq: response.seq,
@@ -1029,7 +1029,7 @@ async function runGemini(opts) {
1029
1029
  const sendReady = () => {
1030
1030
  session.sendSessionEvent({ type: "ready" });
1031
1031
  try {
1032
- api$1.push().sendSessionNotification({
1032
+ api.push().sendSessionNotification({
1033
1033
  kind: "done",
1034
1034
  metadata: session.getMetadata(),
1035
1035
  data: {
@@ -1212,10 +1212,10 @@ async function runGemini(opts) {
1212
1212
  case "status":
1213
1213
  const statusDetail = msg.detail ? typeof msg.detail === "object" ? JSON.stringify(msg.detail) : String(msg.detail) : "";
1214
1214
  persistence.logger.debug(`[gemini] Status changed: ${msg.status}`, {
1215
- detail: api.contentLogMetadata(statusDetail)
1215
+ detail: index$1.contentLogMetadata(statusDetail)
1216
1216
  });
1217
1217
  if (msg.status === "error") {
1218
- persistence.logger.debug("[gemini] Error status received:", api.contentLogMetadata(statusDetail));
1218
+ persistence.logger.debug("[gemini] Error status received:", index$1.contentLogMetadata(statusDetail));
1219
1219
  session.sendAgentMessage("gemini", {
1220
1220
  type: "turn_aborted",
1221
1221
  id: node_crypto.randomUUID()
@@ -1267,7 +1267,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
1267
1267
  const isInvestigationTool = msg.toolName === "codebase_investigator" || typeof msg.toolName === "string" && msg.toolName.includes("investigator");
1268
1268
  persistence.logger.debug(`[gemini] \u{1F527} Tool call received: ${msg.toolName} (${msg.callId})${isInvestigationTool ? " [INVESTIGATION]" : ""}`);
1269
1269
  if (isInvestigationTool && msg.args && typeof msg.args === "object" && "objective" in msg.args) {
1270
- persistence.logger.debug("[gemini] Investigation objective received:", api.contentLogMetadata(msg.args.objective));
1270
+ persistence.logger.debug("[gemini] Investigation objective received:", index$1.contentLogMetadata(msg.args.objective));
1271
1271
  }
1272
1272
  messageBuffer.addMessage(`Executing: ${msg.toolName}${toolArgs ? ` ${toolArgs}${toolArgs.length >= 100 ? "..." : ""}` : ""}`, "tool");
1273
1273
  session.sendAgentMessage("gemini", {
@@ -1293,7 +1293,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
1293
1293
  }
1294
1294
  if (isError) {
1295
1295
  const errorMsg = msg.result.error || "Tool call failed";
1296
- persistence.logger.debug("[gemini] Tool call error received:", api.contentLogMetadata(errorMsg));
1296
+ persistence.logger.debug("[gemini] Tool call error received:", index$1.contentLogMetadata(errorMsg));
1297
1297
  messageBuffer.addMessage(`Error: ${errorMsg}`, "status");
1298
1298
  } else {
1299
1299
  if (resultSize > 1e3) {
@@ -1411,7 +1411,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
1411
1411
  const thinkingText = thinkingPayload && typeof thinkingPayload === "object" && "text" in thinkingPayload ? String(thinkingPayload.text || "") : "";
1412
1412
  if (thinkingText) {
1413
1413
  reasoningProcessor.processChunk(thinkingText);
1414
- persistence.logger.debug("[gemini] Thinking chunk received:", api.contentLogMetadata(thinkingText));
1414
+ persistence.logger.debug("[gemini] Thinking chunk received:", index$1.contentLogMetadata(thinkingText));
1415
1415
  if (!thinkingText.startsWith("**")) {
1416
1416
  const thinkingPreview = thinkingText.substring(0, 100);
1417
1417
  messageBuffer.updateLastMessage(`[Thinking] ${thinkingPreview}...`, "system");
@@ -1550,7 +1550,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
1550
1550
  promptToSend = historyContext + promptToSend;
1551
1551
  persistence.logger.debug(`[gemini] Injected conversation history context (${historyContext.length} chars)`);
1552
1552
  }
1553
- persistence.logger.debug("[gemini] Sending prompt to Gemini:", api.contentLogMetadata(promptToSend));
1553
+ persistence.logger.debug("[gemini] Sending prompt to Gemini:", index$1.contentLogMetadata(promptToSend));
1554
1554
  const MAX_RETRIES = 3;
1555
1555
  const RETRY_DELAY_MS = 2e3;
1556
1556
  let lastError = null;
@@ -1585,7 +1585,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
1585
1585
  const isInternalError = errorCode === -32603;
1586
1586
  const isRetryable = isEmptyResponseError || isInternalError;
1587
1587
  if (isRetryable && attempt < MAX_RETRIES) {
1588
- persistence.logger.debug(`[gemini] Retryable error on attempt ${attempt}/${MAX_RETRIES}:`, api.contentLogMetadata(errorDetails));
1588
+ persistence.logger.debug(`[gemini] Retryable error on attempt ${attempt}/${MAX_RETRIES}:`, index$1.contentLogMetadata(errorDetails));
1589
1589
  messageBuffer.addMessage(`Gemini returned empty response, retrying (${attempt}/${MAX_RETRIES})...`, "status");
1590
1590
  await new Promise((resolve2) => setTimeout(resolve2, RETRY_DELAY_MS * attempt));
1591
1591
  continue;
@@ -1600,7 +1600,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
1600
1600
  first = false;
1601
1601
  }
1602
1602
  } catch (error) {
1603
- persistence.logger.debug("[gemini] Error in gemini session:", api.errorLogMetadata(error));
1603
+ persistence.logger.debug("[gemini] Error in gemini session:", index$1.errorLogMetadata(error));
1604
1604
  const isAbortError = error instanceof Error && error.name === "AbortError";
1605
1605
  if (isAbortError) {
1606
1606
  messageBuffer.addMessage("Aborted by user", "status");
@@ -1668,7 +1668,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
1668
1668
  id: node_crypto.randomUUID(),
1669
1669
  ...options.length > 0 && { options }
1670
1670
  };
1671
- persistence.logger.debug("[gemini] Sending complete message to mobile:", api.contentLogMetadata(finalMessageText));
1671
+ persistence.logger.debug("[gemini] Sending complete message to mobile:", index$1.contentLogMetadata(finalMessageText));
1672
1672
  session.sendAgentMessage("gemini", messagePayload);
1673
1673
  accumulatedResponse = "";
1674
1674
  isResponseInProgress = false;
@@ -2,12 +2,12 @@ import { useStdout, useInput, Box, Text, render } from 'ink';
2
2
  import React, { useState, useRef, useEffect, useCallback } from 'react';
3
3
  import { randomUUID } from 'node:crypto';
4
4
  import { join } from 'node:path';
5
- import { h as connectionState, A as ApiClient, k as errorLogMetadata, n as notifyDaemonSessionStarted, l as contentLogMetadata } from './types-BG4gFjLL.mjs';
6
- import { l as logger, f as readSettings, g as encodeBase64 } from './limits-uABU-yq3.mjs';
7
- import { K as GEMINI_API_KEY_ENV, L as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, E as BasePermissionHandler, N as BaseReasoningProcessor, k as initialMachineMetadata, m as createSessionMetadata, n as setupOfflineReconnection, p as MessageQueue2, u as hashObject, O as MessageBuffer, Q as CHANGE_TITLE_INSTRUCTION, y as registerKillSessionHandler, v as startHappyServer } from './index-DoiG88oX.mjs';
5
+ import { m as connectionState, A as ApiClient, q as errorLogMetadata, n as notifyDaemonSessionStarted, t as contentLogMetadata } from './types-D6YKR7wo.mjs';
6
+ import { l as logger, r as readSettings, g as encodeBase64 } from './limits-DxArdmkZ.mjs';
7
+ import { K as GEMINI_API_KEY_ENV, L as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, E as BasePermissionHandler, N as BaseReasoningProcessor, k as initialMachineMetadata, m as createSessionMetadata, n as setupOfflineReconnection, p as MessageQueue2, u as hashObject, O as MessageBuffer, Q as CHANGE_TITLE_INSTRUCTION, y as registerKillSessionHandler, v as startHappyServer } from './index-Diu81aSC.mjs';
8
8
  import { p as projectPath } from './projectPath-CSpqWdxp.mjs';
9
- import { A as AcpBackend } from './AcpBackend-LEgn9vol.mjs';
10
- import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-euZ_K5Lo.mjs';
9
+ import { A as AcpBackend } from './AcpBackend-DLsPpWnc.mjs';
10
+ import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-CxHoQo52.mjs';
11
11
  import 'axios';
12
12
  import 'node:events';
13
13
  import 'socket.io-client';
@@ -32,7 +32,7 @@ import '@anthropic-ai/sandbox-runtime';
32
32
  import 'expo-server-sdk';
33
33
  import 'chalk';
34
34
  import 'node:util';
35
- import './agentGuidance-BU4hxm8M.mjs';
35
+ import './agentGuidance-CupQ9Lve.mjs';
36
36
  import '@anthropic-ai/claude-agent-sdk';
37
37
  import 'ps-list';
38
38
  import '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 { k as errorLogMetadata, l as contentLogMetadata, h as connectionState, A as ApiClient, n as notifyDaemonSessionStarted } from './types-BG4gFjLL.mjs';
7
- import { A as AcpSessionManager } from './AcpSessionManager-Yfbs5bi2.mjs';
8
- import { h as ensurePrivateDirectorySync, i as hardenPrivateFileSync, w as writePrivateFileSync, f as readSettings, g as encodeBase64, l as logger, c as configuration } from './limits-uABU-yq3.mjs';
9
- import { k as initialMachineMetadata, m as createSessionMetadata, n as setupOfflineReconnection, p as MessageQueue2, y as registerKillSessionHandler } from './index-DoiG88oX.mjs';
6
+ import { q as errorLogMetadata, t as contentLogMetadata, m as connectionState, A as ApiClient, n as notifyDaemonSessionStarted } from './types-D6YKR7wo.mjs';
7
+ import { A as AcpSessionManager } from './AcpSessionManager-1pAH8SdV.mjs';
8
+ import { h as ensurePrivateDirectorySync, i as hardenPrivateFileSync, w as writePrivateFileSync, r as readSettings, g as encodeBase64, l as logger, c as configuration } from './limits-DxArdmkZ.mjs';
9
+ import { k as initialMachineMetadata, m as createSessionMetadata, n as setupOfflineReconnection, p as MessageQueue2, y as registerKillSessionHandler } from './index-Diu81aSC.mjs';
10
10
  import WebSocket from 'ws';
11
11
  import * as ed from '@noble/ed25519';
12
12
  import { sha512 } from '@noble/hashes/sha2.js';
@@ -33,7 +33,7 @@ import '@anthropic-ai/sandbox-runtime';
33
33
  import 'expo-server-sdk';
34
34
  import 'chalk';
35
35
  import 'node:util';
36
- import './agentGuidance-BU4hxm8M.mjs';
36
+ import './agentGuidance-CupQ9Lve.mjs';
37
37
  import 'ink';
38
38
  import 'react';
39
39
  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-6__wqmmP.cjs');
9
- var AcpSessionManager = require('./AcpSessionManager-BomdfyhZ.cjs');
10
- var persistence = require('./limits-B3oVgqBJ.cjs');
11
- var index = require('./index-C510dSUn.cjs');
8
+ var index = require('./types-DZ5c-9f3.cjs');
9
+ var AcpSessionManager = require('./AcpSessionManager-DkBV80Rr.cjs');
10
+ var persistence = require('./limits-C_Sklt--.cjs');
11
+ var index$1 = require('./index-Dn0JMM8l.cjs');
12
12
  var WebSocket = require('ws');
13
13
  var ed = require('@noble/ed25519');
14
14
  var sha2_js = require('@noble/hashes/sha2.js');
@@ -35,7 +35,7 @@ require('@anthropic-ai/sandbox-runtime');
35
35
  require('expo-server-sdk');
36
36
  require('chalk');
37
37
  require('node:util');
38
- require('./agentGuidance-CJSl54ua.cjs');
38
+ require('./agentGuidance-D1PDVswF.cjs');
39
39
  require('ink');
40
40
  require('react');
41
41
  require('@anthropic-ai/claude-agent-sdk');
@@ -368,7 +368,7 @@ class OpenClawSocket {
368
368
  try {
369
369
  this.ws = new WebSocket(url);
370
370
  } catch (err) {
371
- this.options.log(`Failed to create WebSocket: ${JSON.stringify(api.errorLogMetadata(err))}`);
371
+ this.options.log(`Failed to create WebSocket: ${JSON.stringify(index.errorLogMetadata(err))}`);
372
372
  this.updateStatus("error", "Failed to create connection");
373
373
  this.scheduleReconnect();
374
374
  return;
@@ -380,7 +380,7 @@ class OpenClawSocket {
380
380
  this.handleMessage(data.toString());
381
381
  });
382
382
  this.ws.on("error", (err) => {
383
- this.options.log(`WebSocket error: ${JSON.stringify(api.errorLogMetadata(err))}`);
383
+ this.options.log(`WebSocket error: ${JSON.stringify(index.errorLogMetadata(err))}`);
384
384
  if (this.status === "connecting") {
385
385
  this.updateStatus("error", "Connection failed");
386
386
  }
@@ -473,7 +473,7 @@ class OpenClawSocket {
473
473
  this.options.log(`Connected: ${JSON.stringify({ hasServerHost: Boolean(this.serverHost), hasMainSession: Boolean(this.mainSessionKey) })}`);
474
474
  } catch (error) {
475
475
  const errorMsg = error instanceof Error ? error.message : "";
476
- this.options.log(`Connect failed: ${JSON.stringify(api.errorLogMetadata(error))}`);
476
+ this.options.log(`Connect failed: ${JSON.stringify(index.errorLogMetadata(error))}`);
477
477
  if (errorMsg.includes("NOT_PAIRED")) {
478
478
  const match = errorMsg.match(/requestId['":\s]+([a-f0-9-]+)/i);
479
479
  this.pairingRequestId = match?.[1] ?? null;
@@ -493,7 +493,7 @@ class OpenClawSocket {
493
493
  try {
494
494
  frame = JSON.parse(data);
495
495
  } catch {
496
- this.options.log(`Invalid JSON: ${JSON.stringify(api.contentLogMetadata(data))}`);
496
+ this.options.log(`Invalid JSON: ${JSON.stringify(index.contentLogMetadata(data))}`);
497
497
  return;
498
498
  }
499
499
  if (frame.type === "res") {
@@ -824,7 +824,7 @@ function resolveGatewayConfig(opts) {
824
824
  async function runOpenClaw(opts) {
825
825
  const verbose = opts.verbose === true;
826
826
  const sessionTag = node_crypto.randomUUID();
827
- api.connectionState.setBackend("openclaw");
827
+ index.connectionState.setBackend("openclaw");
828
828
  const gatewayConfig = resolveGatewayConfig(opts);
829
829
  const log = (msg) => {
830
830
  persistence.logger.debug(`[openclaw] ${msg}`);
@@ -833,27 +833,27 @@ async function runOpenClaw(opts) {
833
833
  }
834
834
  };
835
835
  log("Resolved configured gateway");
836
- const api$1 = await api.ApiClient.create(opts.credentials);
836
+ const api = await index.ApiClient.create(opts.credentials);
837
837
  const settings = await persistence.readSettings();
838
838
  if (!settings?.machineId) {
839
839
  throw new Error("No machine ID found in settings");
840
840
  }
841
- await api$1.getOrCreateMachine({
841
+ await api.getOrCreateMachine({
842
842
  machineId: settings.machineId,
843
- metadata: index.initialMachineMetadata
843
+ metadata: index$1.initialMachineMetadata
844
844
  });
845
- const { state, metadata } = index.createSessionMetadata({
845
+ const { state, metadata } = index$1.createSessionMetadata({
846
846
  flavor: "openclaw",
847
847
  machineId: settings.machineId,
848
848
  startedBy: opts.startedBy
849
849
  });
850
- const response = await api$1.getOrCreateSession({ tag: sessionTag, metadata, state });
850
+ const response = await api.getOrCreateSession({ tag: sessionTag, metadata, state });
851
851
  if (response) {
852
852
  log(`Happy Session ID: ${response.id}`);
853
853
  }
854
854
  let session;
855
- const { session: initialSession, reconnectionHandle } = index.setupOfflineReconnection({
856
- api: api$1,
855
+ const { session: initialSession, reconnectionHandle } = index$1.setupOfflineReconnection({
856
+ api,
857
857
  sessionTag,
858
858
  metadata,
859
859
  state,
@@ -865,7 +865,7 @@ async function runOpenClaw(opts) {
865
865
  session = initialSession;
866
866
  if (response) {
867
867
  try {
868
- await api.notifyDaemonSessionStarted(response.id, metadata, {
868
+ await index.notifyDaemonSessionStarted(response.id, metadata, {
869
869
  encryptionKey: persistence.encodeBase64(response.encryptionKey),
870
870
  encryptionVariant: response.encryptionVariant,
871
871
  seq: response.seq,
@@ -877,7 +877,7 @@ async function runOpenClaw(opts) {
877
877
  }
878
878
  }
879
879
  const sessionManager = new AcpSessionManager.AcpSessionManager();
880
- const messageQueue = new index.MessageQueue2(() => "");
880
+ const messageQueue = new index$1.MessageQueue2(() => "");
881
881
  let shouldExit = false;
882
882
  let abortController = new AbortController();
883
883
  let pendingTurn = null;
@@ -914,7 +914,7 @@ async function runOpenClaw(opts) {
914
914
  });
915
915
  const onBackendMessage = (msg) => {
916
916
  if (verbose) {
917
- log(`Backend message: ${JSON.stringify(api.contentLogMetadata(msg))}`);
917
+ log(`Backend message: ${JSON.stringify(index.contentLogMetadata(msg))}`);
918
918
  }
919
919
  if (msg.type === "status" && inTurn) {
920
920
  const nextThinking = msg.status === "running";
@@ -927,7 +927,7 @@ async function runOpenClaw(opts) {
927
927
  }
928
928
  }
929
929
  if (msg.type === "status" && (msg.status === "error" || msg.status === "stopped")) {
930
- log(`Backend ${msg.status}: ${JSON.stringify(api.contentLogMetadata(msg.detail))}`);
930
+ log(`Backend ${msg.status}: ${JSON.stringify(index.contentLogMetadata(msg.detail))}`);
931
931
  shouldExit = true;
932
932
  messageQueue.close();
933
933
  clearPendingTurn(new Error(`OpenClaw backend ${msg.status}`));
@@ -954,7 +954,7 @@ async function runOpenClaw(opts) {
954
954
  await backend.cancel(sessionKey);
955
955
  }
956
956
  } catch (error) {
957
- persistence.logger.debug("[openclaw] Abort failed:", api.errorLogMetadata(error));
957
+ persistence.logger.debug("[openclaw] Abort failed:", index.errorLogMetadata(error));
958
958
  }
959
959
  inTurn = false;
960
960
  thinking = false;
@@ -967,7 +967,7 @@ async function runOpenClaw(opts) {
967
967
  session.rpcHandlerManager.registerHandler("openclaw-retry-pairing", async () => {
968
968
  backend.retryConnect();
969
969
  });
970
- index.registerKillSessionHandler(session.rpcHandlerManager, async () => {
970
+ index$1.registerKillSessionHandler(session.rpcHandlerManager, async () => {
971
971
  shouldExit = true;
972
972
  messageQueue.close();
973
973
  clearPendingTurn(new Error("Session terminated"));
@@ -984,7 +984,7 @@ async function runOpenClaw(opts) {
984
984
  if (waitSignal.aborted) continue;
985
985
  break;
986
986
  }
987
- log(`Incoming prompt: ${JSON.stringify(api.contentLogMetadata(batch.message))}`);
987
+ log(`Incoming prompt: ${JSON.stringify(index.contentLogMetadata(batch.message))}`);
988
988
  inTurn = true;
989
989
  sendEnvelopes(sessionManager.startTurn());
990
990
  const turnEnded = waitForTurnEnd();
@@ -993,14 +993,14 @@ async function runOpenClaw(opts) {
993
993
  await turnEnded;
994
994
  sendEnvelopes(sessionManager.endTurn("completed"));
995
995
  } catch (error) {
996
- log(`Turn ended: ${JSON.stringify(api.errorLogMetadata(error))}`);
996
+ log(`Turn ended: ${JSON.stringify(index.errorLogMetadata(error))}`);
997
997
  sendEnvelopes(sessionManager.endTurn("failed"));
998
998
  }
999
999
  try {
1000
1000
  const usage = await backend.getUsageSnapshot();
1001
1001
  if (usage) session.sendAgentUsageSnapshot("openclaw", usage);
1002
1002
  } catch (error) {
1003
- persistence.logger.debug("[openclaw] Failed to report usage:", api.errorLogMetadata(error));
1003
+ persistence.logger.debug("[openclaw] Failed to report usage:", index.errorLogMetadata(error));
1004
1004
  }
1005
1005
  inTurn = false;
1006
1006
  thinking = false;
@@ -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-B3oVgqBJ.cjs');
7
- var index = require('./index-C510dSUn.cjs');
6
+ var persistence = require('./limits-C_Sklt--.cjs');
7
+ var index = require('./index-Dn0JMM8l.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-6__wqmmP.cjs');
14
+ require('./types-DZ5c-9f3.cjs');
15
15
  require('axios');
16
16
  require('node:events');
17
17
  require('socket.io-client');
@@ -31,7 +31,7 @@ require('fs');
31
31
  require('node:readline');
32
32
  require('@anthropic-ai/sandbox-runtime');
33
33
  require('expo-server-sdk');
34
- require('./agentGuidance-CJSl54ua.cjs');
34
+ require('./agentGuidance-D1PDVswF.cjs');
35
35
  require('ink');
36
36
  require('react');
37
37
  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-uABU-yq3.mjs';
5
- import { b as sendUserMessage, s as sessionWebUrl } from './index-DoiG88oX.mjs';
4
+ import { d as readPersistedSessions, c as configuration } from './limits-DxArdmkZ.mjs';
5
+ import { b as sendUserMessage, s as sessionWebUrl } from './index-Diu81aSC.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-BG4gFjLL.mjs';
12
+ import './types-D6YKR7wo.mjs';
13
13
  import 'axios';
14
14
  import 'node:events';
15
15
  import 'socket.io-client';
@@ -29,7 +29,7 @@ import 'fs';
29
29
  import 'node:readline';
30
30
  import '@anthropic-ai/sandbox-runtime';
31
31
  import 'expo-server-sdk';
32
- import './agentGuidance-BU4hxm8M.mjs';
32
+ import './agentGuidance-CupQ9Lve.mjs';
33
33
  import 'ink';
34
34
  import 'react';
35
35
  import '@anthropic-ai/claude-agent-sdk';
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var index = require('./index-C510dSUn.cjs');
5
- var api = require('./types-6__wqmmP.cjs');
4
+ var index = require('./index-Dn0JMM8l.cjs');
5
+ var index$1 = require('./types-DZ5c-9f3.cjs');
6
6
  require('node:os');
7
7
  require('node:crypto');
8
- require('./limits-B3oVgqBJ.cjs');
8
+ require('./limits-C_Sklt--.cjs');
9
9
  require('node:fs/promises');
10
10
  require('node:fs');
11
11
  require('node:path');
@@ -17,7 +17,7 @@ require('node:readline');
17
17
  require('./projectPath-ChLhdOyt.cjs');
18
18
  require('path');
19
19
  require('url');
20
- require('./agentGuidance-CJSl54ua.cjs');
20
+ require('./agentGuidance-D1PDVswF.cjs');
21
21
  require('fs/promises');
22
22
  require('ink');
23
23
  require('react');
@@ -106,7 +106,7 @@ function parseSessionsArgs(args) {
106
106
  if (ACTIONS_NEEDING_ID.has(options.action)) {
107
107
  const id = positionals[0];
108
108
  if (id === void 0) throw new Error(`${options.action} requires a session id`);
109
- if (!api.isValidSessionId(id)) throw new Error(`Invalid session id: ${id}`);
109
+ if (!index$1.isValidSessionId(id)) throw new Error(`Invalid session id: ${id}`);
110
110
  options.sessionId = id;
111
111
  }
112
112
  if (ACTIONS_NEEDING_REQUEST_ID.has(options.action)) {
@@ -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, c as listSessions, r as readSessionTranscript, d as stopSession, e as resolvePermissionRequest, f as archiveSession } from './index-DoiG88oX.mjs';
3
- import { i as isValidSessionId } from './types-BG4gFjLL.mjs';
2
+ import { D as DEFAULT_RECENT_LIMIT, M as MAX_READ_LIMIT, l as listAccountSessions, c as listSessions, r as readSessionTranscript, d as stopSession, e as resolvePermissionRequest, f as archiveSession } from './index-Diu81aSC.mjs';
3
+ import { i as isValidSessionId } from './types-D6YKR7wo.mjs';
4
4
  import 'node:os';
5
5
  import 'node:crypto';
6
- import './limits-uABU-yq3.mjs';
6
+ import './limits-DxArdmkZ.mjs';
7
7
  import 'node:fs/promises';
8
8
  import 'node:fs';
9
9
  import 'node:path';
@@ -15,7 +15,7 @@ import 'node:readline';
15
15
  import './projectPath-CSpqWdxp.mjs';
16
16
  import 'path';
17
17
  import 'url';
18
- import './agentGuidance-BU4hxm8M.mjs';
18
+ import './agentGuidance-CupQ9Lve.mjs';
19
19
  import 'fs/promises';
20
20
  import 'ink';
21
21
  import 'react';
@@ -3,9 +3,9 @@
3
3
  var chalk = require('chalk');
4
4
  var node_fs = require('node:fs');
5
5
  var path = require('node:path');
6
- var api = require('./types-6__wqmmP.cjs');
7
- var index = require('./index-C510dSUn.cjs');
8
- var persistence = require('./limits-B3oVgqBJ.cjs');
6
+ var index$1 = require('./types-DZ5c-9f3.cjs');
7
+ var index = require('./index-Dn0JMM8l.cjs');
8
+ var persistence = require('./limits-C_Sklt--.cjs');
9
9
  require('axios');
10
10
  require('node:events');
11
11
  require('socket.io-client');
@@ -30,7 +30,7 @@ require('tweetnacl');
30
30
  require('node:readline');
31
31
  require('@anthropic-ai/sandbox-runtime');
32
32
  require('expo-server-sdk');
33
- require('./agentGuidance-CJSl54ua.cjs');
33
+ require('./agentGuidance-D1PDVswF.cjs');
34
34
  require('ink');
35
35
  require('react');
36
36
  require('@anthropic-ai/claude-agent-sdk');
@@ -197,13 +197,13 @@ async function handleSpawnCommand(args) {
197
197
  console.error(chalk.red("Error:"), `Directory does not exist: ${directory}`);
198
198
  process.exit(1);
199
199
  }
200
- if (!await api.checkIfDaemonRunningAndCleanupStaleState()) {
200
+ if (!await index$1.checkIfDaemonRunningAndCleanupStaleState()) {
201
201
  console.error(chalk.red("Error:"), "Happy daemon is not running on this machine.");
202
202
  console.error(`Start it with ${chalk.cyan("very-happy daemon start")} and retry.`);
203
203
  process.exit(1);
204
204
  }
205
205
  persistence.logger.debug(`[SPAWN CMD] Spawning session in ${directory}`);
206
- const result = await api.spawnDaemonSession(directory, void 0, {
206
+ const result = await index$1.spawnDaemonSession(directory, void 0, {
207
207
  spawnedBy: options.spawnedBy,
208
208
  permissionMode: options.permissionMode,
209
209
  agent: options.agent,
@@ -1,9 +1,9 @@
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 } from './types-BG4gFjLL.mjs';
5
- import { s as sessionWebUrl, i as isValidSpawnOrigin, a as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES, S as SPAWN_AGENTS, w as waitForSessionKey, b as sendUserMessage } from './index-DoiG88oX.mjs';
6
- import { l as logger } from './limits-uABU-yq3.mjs';
4
+ import { c as checkIfDaemonRunningAndCleanupStaleState, s as spawnDaemonSession } from './types-D6YKR7wo.mjs';
5
+ import { s as sessionWebUrl, i as isValidSpawnOrigin, a as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES, S as SPAWN_AGENTS, w as waitForSessionKey, b as sendUserMessage } from './index-Diu81aSC.mjs';
6
+ import { l as logger } from './limits-DxArdmkZ.mjs';
7
7
  import 'axios';
8
8
  import 'node:events';
9
9
  import 'socket.io-client';
@@ -28,7 +28,7 @@ import 'tweetnacl';
28
28
  import 'node:readline';
29
29
  import '@anthropic-ai/sandbox-runtime';
30
30
  import 'expo-server-sdk';
31
- import './agentGuidance-BU4hxm8M.mjs';
31
+ import './agentGuidance-CupQ9Lve.mjs';
32
32
  import 'ink';
33
33
  import 'react';
34
34
  import '@anthropic-ai/claude-agent-sdk';
@@ -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-CJSl54ua.cjs');
8
- var persistence = require('./limits-B3oVgqBJ.cjs');
7
+ var agentGuidance = require('./agentGuidance-D1PDVswF.cjs');
8
+ var persistence = require('./limits-C_Sklt--.cjs');
9
9
  var path = require('node:path');
10
- var index = require('./index-C510dSUn.cjs');
10
+ var index = require('./index-Dn0JMM8l.cjs');
11
11
  require('node:fs');
12
12
  require('tweetnacl');
13
13
  require('chalk');
14
14
  require('node:util');
15
- require('./types-6__wqmmP.cjs');
15
+ require('./types-DZ5c-9f3.cjs');
16
16
  require('axios');
17
17
  require('node:events');
18
18
  require('socket.io-client');
@@ -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-BU4hxm8M.mjs';
6
- import { d as readCredentialsForConfiguredRelay } from './limits-uABU-yq3.mjs';
5
+ import { d as teamRequest, e as createTeamsClient } from './agentGuidance-CupQ9Lve.mjs';
6
+ import { e as readCredentialsForConfiguredRelay } from './limits-DxArdmkZ.mjs';
7
7
  import { join, resolve, dirname } from 'node:path';
8
- import { J as TEAM_SKILL } from './index-DoiG88oX.mjs';
8
+ import { J as TEAM_SKILL } from './index-Diu81aSC.mjs';
9
9
  import 'node:fs';
10
10
  import 'tweetnacl';
11
11
  import 'chalk';
12
12
  import 'node:util';
13
- import './types-BG4gFjLL.mjs';
13
+ import './types-D6YKR7wo.mjs';
14
14
  import 'axios';
15
15
  import 'node:events';
16
16
  import 'socket.io-client';
@@ -1,6 +1,6 @@
1
- import { d as readCredentialsForConfiguredRelay, c as configuration } from './limits-uABU-yq3.mjs';
2
- import { e as createBuiltinTodoClient, B as BUILTIN_TODO_SKILL } from './types-BG4gFjLL.mjs';
3
- import { c as readTeamScope, t as teamScopePath } from './agentGuidance-BU4hxm8M.mjs';
1
+ import { e as readCredentialsForConfiguredRelay, c as configuration } from './limits-DxArdmkZ.mjs';
2
+ import { h as createBuiltinTodoClient, B as BUILTIN_TODO_SKILL } from './types-D6YKR7wo.mjs';
3
+ import { c as readTeamScope, t as teamScopePath } from './agentGuidance-CupQ9Lve.mjs';
4
4
  import 'node:fs/promises';
5
5
  import 'node:fs';
6
6
  import 'node:os';