happy-imou-cloud 2.1.46 → 2.1.48

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 (25) hide show
  1. package/dist/{BaseReasoningProcessor-Bsnew7fc.cjs → BaseReasoningProcessor-CKtDfihV.cjs} +2 -2
  2. package/dist/{BaseReasoningProcessor-Mrdbmfl3.mjs → BaseReasoningProcessor-CM3JbXUC.mjs} +2 -2
  3. package/dist/{ProviderSelectionHandler-gaUVvyCU.cjs → ProviderSelectionHandler-BHKIBw4t.cjs} +2 -2
  4. package/dist/{ProviderSelectionHandler-BymmO261.mjs → ProviderSelectionHandler-vgZ2egD_.mjs} +2 -2
  5. package/dist/{api-DTSpLLTK.mjs → api-CSjP-Z3Y.mjs} +3 -3
  6. package/dist/{api-Bekjk9d5.cjs → api-eaGKJjMt.cjs} +3 -3
  7. package/dist/{command-umgXYSY2.mjs → command-BzPI4N1n.mjs} +2 -3
  8. package/dist/{command-BwhJX0G5.cjs → command-DDoz1Eky.cjs} +2 -3
  9. package/dist/{index-CUVIZLuf.mjs → index-BzsBo3_Z.mjs} +364 -49
  10. package/dist/{index-DkaYNlRO.cjs → index-C8X1VlHZ.cjs} +338 -42
  11. package/dist/index.cjs +2 -3
  12. package/dist/index.mjs +2 -3
  13. package/dist/lib.cjs +1 -1
  14. package/dist/lib.d.cts +2 -0
  15. package/dist/lib.d.mts +2 -0
  16. package/dist/lib.mjs +1 -1
  17. package/dist/{registerKillSessionHandler-hQE08yMO.mjs → registerKillSessionHandler-BHu-3hZQ.mjs} +2 -2
  18. package/dist/{registerKillSessionHandler-BYWJJDre.cjs → registerKillSessionHandler-CLCYBgZX.cjs} +2 -2
  19. package/dist/{runClaude-jpo2aFey.cjs → runClaude-BkUbXE2F.cjs} +4 -5
  20. package/dist/{runClaude-CFeIMCY2.mjs → runClaude-D3CBLW5o.mjs} +4 -5
  21. package/dist/{runCodex-CrxyWcga.cjs → runCodex-CdgrZK7P.cjs} +29 -9
  22. package/dist/{runCodex-ByjUfTyr.mjs → runCodex-DqzdgDwZ.mjs} +29 -9
  23. package/dist/{runGemini-BhIz1N_b.cjs → runGemini-BE05R24D.cjs} +4 -5
  24. package/dist/{runGemini-CihCRgcR.mjs → runGemini-UZuiKe59.mjs} +4 -5
  25. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { l as logger, k as backoff, m as delay, d as AssistantMessageStream, o as AsyncLock, c as configuration, s as startOfflineReconnection, b as connectionState, A as ApiClient, i as isAuthenticationRequiredError, h as hashObject } from './api-DTSpLLTK.mjs';
2
+ import { l as logger, k as backoff, m as delay, d as AssistantMessageStream, o as AsyncLock, c as configuration, s as startOfflineReconnection, b as connectionState, A as ApiClient, i as isAuthenticationRequiredError, h as hashObject } from './api-CSjP-Z3Y.mjs';
3
3
  import 'cross-spawn';
4
4
  import '@agentclientprotocol/sdk';
5
- import { q as getProjectPath, F as Future, u as claudeLocal, E as ExitCodeError, w as trimIdent, x as createClaudeBackend, f as formatDisplayMessage, t as truncateDisplayMessage, y as claudeCheckSession, z as projectPath, B as mapToClaudeMode, P as PushableAsyncIterable, C as query, D as AbortError, e as stopCaffeinate, p as publishSessionRegistration, H as getEnvironmentInfo, a as createSessionMetadata, I as startCaffeinate, b as closeProviderSession } from './index-CUVIZLuf.mjs';
5
+ import { q as getProjectPath, F as Future, u as claudeLocal, E as ExitCodeError, w as trimIdent, x as createClaudeBackend, f as formatDisplayMessage, t as truncateDisplayMessage, y as claudeCheckSession, z as projectPath, B as mapToClaudeMode, P as PushableAsyncIterable, C as query, D as AbortError, e as stopCaffeinate, p as publishSessionRegistration, H as getEnvironmentInfo, a as createSessionMetadata, I as startCaffeinate, b as closeProviderSession } from './index-BzsBo3_Z.mjs';
6
6
  import 'ps-list';
7
7
  import 'fs';
8
8
  import 'path';
@@ -23,15 +23,14 @@ import 'tweetnacl';
23
23
  import 'open';
24
24
  import React, { useState, useRef, useEffect, useCallback } from 'react';
25
25
  import { useStdout, useInput, Box, Text, render } from 'ink';
26
- import { c as createKeepAliveController, P as ProviderSelectionHandler, r as runModeLoop } from './ProviderSelectionHandler-BymmO261.mjs';
26
+ import { c as createKeepAliveController, P as ProviderSelectionHandler, r as runModeLoop } from './ProviderSelectionHandler-vgZ2egD_.mjs';
27
27
  import { R as RawJSONLinesSchema } from './types-CiliQpqS.mjs';
28
- import { B as BasePermissionHandler, d as MessageBuffer, C as ConversationHistory$1, f as buildHappyOrgTurnPrompt, w as waitForResponseCompleteWithAbort, h as finalizeHappyOrgTurnWithBusinessAck, i as buildTurnResultPushNotification, t as createSessionTranscriptInkRenderer, j as buildReadyPushNotification, l as launchRuntimeHandleWithFactoryResult, n as renderTerminalOutputPreview, p as prepareTerminalOutputForForwarding, q as forwardAgentMessageToProviderSession, m as buildPermissionPushNotification, s as syncControlledByUserState, r as resolveHappyOrgQueuedTurn, e as ensureManagedProviderMachine, M as MissingMachineIdError, b as MessageQueue2, c as registerKillSessionHandler } from './registerKillSessionHandler-hQE08yMO.mjs';
28
+ import { B as BasePermissionHandler, d as MessageBuffer, C as ConversationHistory$1, f as buildHappyOrgTurnPrompt, w as waitForResponseCompleteWithAbort, h as finalizeHappyOrgTurnWithBusinessAck, i as buildTurnResultPushNotification, t as createSessionTranscriptInkRenderer, j as buildReadyPushNotification, l as launchRuntimeHandleWithFactoryResult, n as renderTerminalOutputPreview, p as prepareTerminalOutputForForwarding, q as forwardAgentMessageToProviderSession, m as buildPermissionPushNotification, s as syncControlledByUserState, r as resolveHappyOrgQueuedTurn, e as ensureManagedProviderMachine, M as MissingMachineIdError, b as MessageQueue2, c as registerKillSessionHandler } from './registerKillSessionHandler-BHu-3hZQ.mjs';
29
29
  import 'socket.io-client';
30
30
  import 'expo-server-sdk';
31
31
  import { isDeepStrictEqual } from 'node:util';
32
32
  import { createServer } from 'node:http';
33
33
  import 'zod';
34
- import 'tmp';
35
34
  import 'qrcode-terminal';
36
35
  import 'node:module';
37
36
  import 'url';
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var persistence = require('./api-Bekjk9d5.cjs');
4
- var registerKillSessionHandler = require('./registerKillSessionHandler-BYWJJDre.cjs');
5
- var index = require('./index-DkaYNlRO.cjs');
3
+ var persistence = require('./api-eaGKJjMt.cjs');
4
+ var registerKillSessionHandler = require('./registerKillSessionHandler-CLCYBgZX.cjs');
5
+ var index = require('./index-C8X1VlHZ.cjs');
6
6
  require('cross-spawn');
7
7
  require('@agentclientprotocol/sdk');
8
8
  var node_crypto = require('node:crypto');
@@ -26,13 +26,12 @@ require('tweetnacl');
26
26
  require('open');
27
27
  var React = require('react');
28
28
  var ink = require('ink');
29
- var ProviderSelectionHandler = require('./ProviderSelectionHandler-gaUVvyCU.cjs');
30
- var BaseReasoningProcessor = require('./BaseReasoningProcessor-Bsnew7fc.cjs');
29
+ var ProviderSelectionHandler = require('./ProviderSelectionHandler-BHKIBw4t.cjs');
30
+ var BaseReasoningProcessor = require('./BaseReasoningProcessor-CKtDfihV.cjs');
31
31
  require('zod');
32
32
  require('socket.io-client');
33
33
  require('expo-server-sdk');
34
34
  require('./types-DVk3crez.cjs');
35
- require('tmp');
36
35
  require('qrcode-terminal');
37
36
  require('node:module');
38
37
  require('url');
@@ -613,7 +612,13 @@ function extractFirstRelevantStderrLine(stderrText) {
613
612
  return lines[0] ?? null;
614
613
  }
615
614
  function looksLikeUpstreamApiError(searchableLower) {
616
- return searchableLower.includes("upstream") || searchableLower.includes("rate limit") || searchableLower.includes("429") || searchableLower.includes("quota") || searchableLower.includes("insufficient_quota") || searchableLower.includes("unauthorized") || searchableLower.includes("forbidden");
615
+ return searchableLower.includes("upstream") || searchableLower.includes("rate limit") || searchableLower.includes("429") || searchableLower.includes("503") || searchableLower.includes("service unavailable") || searchableLower.includes("temporarily unavailable") || searchableLower.includes("quota") || searchableLower.includes("insufficient_quota") || searchableLower.includes("unauthorized") || searchableLower.includes("forbidden");
616
+ }
617
+ function appendCodexAuthScopeHint(message, searchableLower) {
618
+ if (!searchableLower.includes("api.responses.write") && !searchableLower.includes("missing scopes") && !searchableLower.includes("insufficient permissions")) {
619
+ return message;
620
+ }
621
+ return `${message} Happy hint: the Codex credential used by this process cannot call the OpenAI Responses API. Use an OpenAI key/OAuth login with api.responses.write, or remove restricted OPENAI_API_KEY values from the daemon/profile environment and restart the Happy daemon.`;
617
622
  }
618
623
  function extractLocalProcessExit(error) {
619
624
  const record = typeof error === "object" && error !== null ? error : null;
@@ -714,12 +719,14 @@ function normalizeCodexBackendError(error) {
714
719
  }
715
720
  if (typeof record?.message === "string" && record.message.trim().toLowerCase() === "internal error" && dataText) {
716
721
  if (looksLikeUpstreamApiError(dataText.toLowerCase())) {
717
- return prefix ? `Codex upstream API error ${prefix} ${dataText}` : `Codex upstream API error: ${dataText}`;
722
+ const message = prefix ? `Codex upstream API error ${prefix} ${dataText}` : `Codex upstream API error: ${dataText}`;
723
+ return appendCodexAuthScopeHint(message, dataText.toLowerCase());
718
724
  }
719
725
  return prefix ? `${prefix} ${dataText}` : dataText;
720
726
  }
721
727
  if (looksLikeUpstreamApiError(searchableLower) && text) {
722
- return prefix ? `Codex upstream API error ${prefix} ${text}` : `Codex upstream API error: ${text}`;
728
+ const message = prefix ? `Codex upstream API error ${prefix} ${text}` : `Codex upstream API error: ${text}`;
729
+ return appendCodexAuthScopeHint(message, searchableLower);
723
730
  }
724
731
  if (error instanceof Error && text) {
725
732
  return text;
@@ -756,6 +763,12 @@ function hasRenderableToolPayload(value) {
756
763
  }
757
764
  return true;
758
765
  }
766
+ function isUserCancellationStop(detail) {
767
+ if (typeof detail !== "string") {
768
+ return false;
769
+ }
770
+ return /cancelled by user|canceled by user/i.test(detail);
771
+ }
759
772
  function getCodexSwitchToLocalUnavailableMessage() {
760
773
  return "Codex local mode requires an attached interactive terminal. Staying in remote mode.";
761
774
  }
@@ -1032,6 +1045,9 @@ async function codexRemoteLauncher(session) {
1032
1045
  }
1033
1046
  if (msg.status === "idle" || msg.status === "stopped") {
1034
1047
  reasoningProcessor.completeCurrent();
1048
+ if (msg.status === "stopped" && isUserCancellationStop(msg.detail)) {
1049
+ return;
1050
+ }
1035
1051
  if (msg.status === "stopped" && !turnInFlight && !shouldSwitchToLocal) {
1036
1052
  void recoverUnexpectedRuntimeStop(msg.detail);
1037
1053
  }
@@ -1207,6 +1223,10 @@ async function codexRemoteLauncher(session) {
1207
1223
  };
1208
1224
  async function handleAbort() {
1209
1225
  persistence.logger.debug("[Codex] Abort requested - stopping current task");
1226
+ if (!turnInFlight) {
1227
+ persistence.logger.debug("[Codex] Abort requested while no Codex turn is active; ignoring");
1228
+ return;
1229
+ }
1210
1230
  try {
1211
1231
  abortActiveTurn();
1212
1232
  } catch (error) {
@@ -1,6 +1,6 @@
1
- import { p as preserveSessionRuntimeMetadata, l as logger, h as hashObject, d as AssistantMessageStream, b as connectionState, A as ApiClient } from './api-DTSpLLTK.mjs';
2
- import { B as BasePermissionHandler, d as MessageBuffer, C as ConversationHistory$1, f as buildHappyOrgTurnPrompt, w as waitForResponseCompleteWithAbort, h as finalizeHappyOrgTurnWithBusinessAck, i as buildTurnResultPushNotification, c as registerKillSessionHandler, j as buildReadyPushNotification, l as launchRuntimeHandleWithFactoryResult, t as createSessionTranscriptInkRenderer, k as extractPermissionRequestPushContext, m as buildPermissionPushNotification, n as renderTerminalOutputPreview, p as prepareTerminalOutputForForwarding, o as inferToolResultError, q as forwardAgentMessageToProviderSession, e as ensureManagedProviderMachine, M as MissingMachineIdError, b as MessageQueue2, r as resolveHappyOrgQueuedTurn, s as syncControlledByUserState } from './registerKillSessionHandler-hQE08yMO.mjs';
3
- import { f as formatDisplayMessage, v as validateCodexAcpSpawn, h as createCodexBackend, A as AcpBackend, t as truncateDisplayMessage, b as closeProviderSession, e as stopCaffeinate, i as resolveCodexExecutable, j as shouldUseShellForCodex, F as Future, k as readManagedSessionTag, l as resolveManagedSessionTag } from './index-CUVIZLuf.mjs';
1
+ import { p as preserveSessionRuntimeMetadata, l as logger, h as hashObject, d as AssistantMessageStream, b as connectionState, A as ApiClient } from './api-CSjP-Z3Y.mjs';
2
+ import { B as BasePermissionHandler, d as MessageBuffer, C as ConversationHistory$1, f as buildHappyOrgTurnPrompt, w as waitForResponseCompleteWithAbort, h as finalizeHappyOrgTurnWithBusinessAck, i as buildTurnResultPushNotification, c as registerKillSessionHandler, j as buildReadyPushNotification, l as launchRuntimeHandleWithFactoryResult, t as createSessionTranscriptInkRenderer, k as extractPermissionRequestPushContext, m as buildPermissionPushNotification, n as renderTerminalOutputPreview, p as prepareTerminalOutputForForwarding, o as inferToolResultError, q as forwardAgentMessageToProviderSession, e as ensureManagedProviderMachine, M as MissingMachineIdError, b as MessageQueue2, r as resolveHappyOrgQueuedTurn, s as syncControlledByUserState } from './registerKillSessionHandler-BHu-3hZQ.mjs';
3
+ import { f as formatDisplayMessage, v as validateCodexAcpSpawn, h as createCodexBackend, A as AcpBackend, t as truncateDisplayMessage, b as closeProviderSession, e as stopCaffeinate, i as resolveCodexExecutable, j as shouldUseShellForCodex, F as Future, k as readManagedSessionTag, l as resolveManagedSessionTag } from './index-BzsBo3_Z.mjs';
4
4
  import 'cross-spawn';
5
5
  import '@agentclientprotocol/sdk';
6
6
  import { randomUUID } from 'node:crypto';
@@ -24,13 +24,12 @@ import 'tweetnacl';
24
24
  import 'open';
25
25
  import React, { useState, useRef, useEffect, useCallback } from 'react';
26
26
  import { useStdout, useInput, Box, Text, render } from 'ink';
27
- import { c as createKeepAliveController, P as ProviderSelectionHandler, r as runModeLoop } from './ProviderSelectionHandler-BymmO261.mjs';
28
- import { B as BaseReasoningProcessor, b as bootstrapManagedProviderSession } from './BaseReasoningProcessor-Mrdbmfl3.mjs';
27
+ import { c as createKeepAliveController, P as ProviderSelectionHandler, r as runModeLoop } from './ProviderSelectionHandler-vgZ2egD_.mjs';
28
+ import { B as BaseReasoningProcessor, b as bootstrapManagedProviderSession } from './BaseReasoningProcessor-CM3JbXUC.mjs';
29
29
  import 'zod';
30
30
  import 'socket.io-client';
31
31
  import 'expo-server-sdk';
32
32
  import './types-CiliQpqS.mjs';
33
- import 'tmp';
34
33
  import 'qrcode-terminal';
35
34
  import 'node:module';
36
35
  import 'url';
@@ -611,7 +610,13 @@ function extractFirstRelevantStderrLine(stderrText) {
611
610
  return lines[0] ?? null;
612
611
  }
613
612
  function looksLikeUpstreamApiError(searchableLower) {
614
- return searchableLower.includes("upstream") || searchableLower.includes("rate limit") || searchableLower.includes("429") || searchableLower.includes("quota") || searchableLower.includes("insufficient_quota") || searchableLower.includes("unauthorized") || searchableLower.includes("forbidden");
613
+ return searchableLower.includes("upstream") || searchableLower.includes("rate limit") || searchableLower.includes("429") || searchableLower.includes("503") || searchableLower.includes("service unavailable") || searchableLower.includes("temporarily unavailable") || searchableLower.includes("quota") || searchableLower.includes("insufficient_quota") || searchableLower.includes("unauthorized") || searchableLower.includes("forbidden");
614
+ }
615
+ function appendCodexAuthScopeHint(message, searchableLower) {
616
+ if (!searchableLower.includes("api.responses.write") && !searchableLower.includes("missing scopes") && !searchableLower.includes("insufficient permissions")) {
617
+ return message;
618
+ }
619
+ return `${message} Happy hint: the Codex credential used by this process cannot call the OpenAI Responses API. Use an OpenAI key/OAuth login with api.responses.write, or remove restricted OPENAI_API_KEY values from the daemon/profile environment and restart the Happy daemon.`;
615
620
  }
616
621
  function extractLocalProcessExit(error) {
617
622
  const record = typeof error === "object" && error !== null ? error : null;
@@ -712,12 +717,14 @@ function normalizeCodexBackendError(error) {
712
717
  }
713
718
  if (typeof record?.message === "string" && record.message.trim().toLowerCase() === "internal error" && dataText) {
714
719
  if (looksLikeUpstreamApiError(dataText.toLowerCase())) {
715
- return prefix ? `Codex upstream API error ${prefix} ${dataText}` : `Codex upstream API error: ${dataText}`;
720
+ const message = prefix ? `Codex upstream API error ${prefix} ${dataText}` : `Codex upstream API error: ${dataText}`;
721
+ return appendCodexAuthScopeHint(message, dataText.toLowerCase());
716
722
  }
717
723
  return prefix ? `${prefix} ${dataText}` : dataText;
718
724
  }
719
725
  if (looksLikeUpstreamApiError(searchableLower) && text) {
720
- return prefix ? `Codex upstream API error ${prefix} ${text}` : `Codex upstream API error: ${text}`;
726
+ const message = prefix ? `Codex upstream API error ${prefix} ${text}` : `Codex upstream API error: ${text}`;
727
+ return appendCodexAuthScopeHint(message, searchableLower);
721
728
  }
722
729
  if (error instanceof Error && text) {
723
730
  return text;
@@ -754,6 +761,12 @@ function hasRenderableToolPayload(value) {
754
761
  }
755
762
  return true;
756
763
  }
764
+ function isUserCancellationStop(detail) {
765
+ if (typeof detail !== "string") {
766
+ return false;
767
+ }
768
+ return /cancelled by user|canceled by user/i.test(detail);
769
+ }
757
770
  function getCodexSwitchToLocalUnavailableMessage() {
758
771
  return "Codex local mode requires an attached interactive terminal. Staying in remote mode.";
759
772
  }
@@ -1030,6 +1043,9 @@ async function codexRemoteLauncher(session) {
1030
1043
  }
1031
1044
  if (msg.status === "idle" || msg.status === "stopped") {
1032
1045
  reasoningProcessor.completeCurrent();
1046
+ if (msg.status === "stopped" && isUserCancellationStop(msg.detail)) {
1047
+ return;
1048
+ }
1033
1049
  if (msg.status === "stopped" && !turnInFlight && !shouldSwitchToLocal) {
1034
1050
  void recoverUnexpectedRuntimeStop(msg.detail);
1035
1051
  }
@@ -1205,6 +1221,10 @@ async function codexRemoteLauncher(session) {
1205
1221
  };
1206
1222
  async function handleAbort() {
1207
1223
  logger.debug("[Codex] Abort requested - stopping current task");
1224
+ if (!turnInFlight) {
1225
+ logger.debug("[Codex] Abort requested while no Codex turn is active; ignoring");
1226
+ return;
1227
+ }
1208
1228
  try {
1209
1229
  abortActiveTurn();
1210
1230
  } catch (error) {
@@ -3,10 +3,10 @@
3
3
  var ink = require('ink');
4
4
  var React = require('react');
5
5
  var node_crypto = require('node:crypto');
6
- var persistence = require('./api-Bekjk9d5.cjs');
7
- var registerKillSessionHandler = require('./registerKillSessionHandler-BYWJJDre.cjs');
8
- var index = require('./index-DkaYNlRO.cjs');
9
- var BaseReasoningProcessor = require('./BaseReasoningProcessor-Bsnew7fc.cjs');
6
+ var persistence = require('./api-eaGKJjMt.cjs');
7
+ var registerKillSessionHandler = require('./registerKillSessionHandler-CLCYBgZX.cjs');
8
+ var index = require('./index-C8X1VlHZ.cjs');
9
+ var BaseReasoningProcessor = require('./BaseReasoningProcessor-CKtDfihV.cjs');
10
10
  require('cross-spawn');
11
11
  require('@agentclientprotocol/sdk');
12
12
  require('ps-list');
@@ -31,7 +31,6 @@ require('crypto');
31
31
  require('expo-server-sdk');
32
32
  require('./types-DVk3crez.cjs');
33
33
  require('os');
34
- require('tmp');
35
34
  require('qrcode-terminal');
36
35
  require('node:module');
37
36
  require('url');
@@ -1,10 +1,10 @@
1
1
  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
- import { l as logger, b as connectionState, A as ApiClient, h as hashObject, d as AssistantMessageStream } from './api-DTSpLLTK.mjs';
5
- import { B as BasePermissionHandler, C as ConversationHistory$1, r as resolveHappyOrgQueuedTurn, e as ensureManagedProviderMachine, M as MissingMachineIdError, s as syncControlledByUserState, b as MessageQueue2, c as registerKillSessionHandler, d as MessageBuffer, f as buildHappyOrgTurnPrompt, w as waitForResponseCompleteWithAbort, h as finalizeHappyOrgTurnWithBusinessAck, i as buildTurnResultPushNotification, j as buildReadyPushNotification, l as launchRuntimeHandleWithFactoryResult, k as extractPermissionRequestPushContext, m as buildPermissionPushNotification, n as renderTerminalOutputPreview, p as prepareTerminalOutputForForwarding, o as inferToolResultError, q as forwardAgentMessageToProviderSession, t as createSessionTranscriptInkRenderer } from './registerKillSessionHandler-hQE08yMO.mjs';
6
- import { g as getInitialGeminiModel, r as readGeminiLocalConfig, G as GEMINI_MODEL_ENV, b as closeProviderSession, s as saveGeminiModelToConfig, d as createGeminiBackend, e as stopCaffeinate } from './index-CUVIZLuf.mjs';
7
- import { B as BaseReasoningProcessor, b as bootstrapManagedProviderSession } from './BaseReasoningProcessor-Mrdbmfl3.mjs';
4
+ import { l as logger, b as connectionState, A as ApiClient, h as hashObject, d as AssistantMessageStream } from './api-CSjP-Z3Y.mjs';
5
+ import { B as BasePermissionHandler, C as ConversationHistory$1, r as resolveHappyOrgQueuedTurn, e as ensureManagedProviderMachine, M as MissingMachineIdError, s as syncControlledByUserState, b as MessageQueue2, c as registerKillSessionHandler, d as MessageBuffer, f as buildHappyOrgTurnPrompt, w as waitForResponseCompleteWithAbort, h as finalizeHappyOrgTurnWithBusinessAck, i as buildTurnResultPushNotification, j as buildReadyPushNotification, l as launchRuntimeHandleWithFactoryResult, k as extractPermissionRequestPushContext, m as buildPermissionPushNotification, n as renderTerminalOutputPreview, p as prepareTerminalOutputForForwarding, o as inferToolResultError, q as forwardAgentMessageToProviderSession, t as createSessionTranscriptInkRenderer } from './registerKillSessionHandler-BHu-3hZQ.mjs';
6
+ import { g as getInitialGeminiModel, r as readGeminiLocalConfig, G as GEMINI_MODEL_ENV, b as closeProviderSession, s as saveGeminiModelToConfig, d as createGeminiBackend, e as stopCaffeinate } from './index-BzsBo3_Z.mjs';
7
+ import { B as BaseReasoningProcessor, b as bootstrapManagedProviderSession } from './BaseReasoningProcessor-CM3JbXUC.mjs';
8
8
  import 'cross-spawn';
9
9
  import '@agentclientprotocol/sdk';
10
10
  import 'ps-list';
@@ -29,7 +29,6 @@ import 'crypto';
29
29
  import 'expo-server-sdk';
30
30
  import './types-CiliQpqS.mjs';
31
31
  import 'os';
32
- import 'tmp';
33
32
  import 'qrcode-terminal';
34
33
  import 'node:module';
35
34
  import 'url';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-imou-cloud",
3
- "version": "2.1.46",
3
+ "version": "2.1.48",
4
4
  "description": "hicloud - Imou 企业定制版。关键是 happy!移动端远程 AI 编程工具,支持 Claude Code、Codex 和 Gemini CLI",
5
5
  "author": "long.zhu",
6
6
  "license": "MIT",