happy-imou-cloud 2.1.1 → 2.1.2

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 (44) hide show
  1. package/bin/happy-cloud.mjs +21 -21
  2. package/compat/acp-sdk-schema/index.js +27 -27
  3. package/compat/acp-sdk-schema/types.gen.js +2 -2
  4. package/compat/acp-sdk-schema/zod.gen.js +1553 -1553
  5. package/compat/ink-build/components/Cursor.d.ts +83 -83
  6. package/compat/ink-build/components/Cursor.js +52 -52
  7. package/compat/ink-build/components/CursorContext.d.ts +11 -11
  8. package/compat/ink-build/components/CursorContext.js +7 -7
  9. package/compat/ink-build/components/ErrorBoundary.d.ts +18 -18
  10. package/compat/ink-build/components/ErrorBoundary.js +22 -22
  11. package/compat/ink-build/hooks/use-cursor.d.ts +12 -12
  12. package/compat/ink-build/hooks/use-cursor.js +28 -28
  13. package/dist/{BaseReasoningProcessor-Dn9FxfxU.mjs → BaseReasoningProcessor-BaOWkVcu.mjs} +3 -3
  14. package/dist/{BaseReasoningProcessor-CBMK-8Gi.cjs → BaseReasoningProcessor-CzvqwxuY.cjs} +3 -3
  15. package/dist/ProviderSelectionHandler-Q8pl7e-d.mjs +261 -0
  16. package/dist/ProviderSelectionHandler-wwbfeK_s.cjs +265 -0
  17. package/dist/{api-DBy5lPZw.mjs → api-Cxifhw5r.mjs} +3 -3
  18. package/dist/{api-DId_j3C2.cjs → api-DZimmN4C.cjs} +2 -2
  19. package/dist/{command-CeaBwYCW.mjs → command-B6LM3Nml.mjs} +3 -3
  20. package/dist/{command-DwfUpmId.cjs → command-RcCJI1jl.cjs} +3 -3
  21. package/dist/{index-CuuYSKiv.cjs → index-Cuvs0lFS.cjs} +168 -75
  22. package/dist/{index-66vjECEd.mjs → index-Des7I5WX.mjs} +165 -72
  23. package/dist/index.cjs +3 -3
  24. package/dist/index.mjs +3 -3
  25. package/dist/lib.cjs +1 -1
  26. package/dist/lib.d.cts +36 -36
  27. package/dist/lib.d.mts +36 -36
  28. package/dist/lib.mjs +1 -1
  29. package/dist/{persistence-BOWh1NER.mjs → persistence-6d4U4Sh8.mjs} +1 -1
  30. package/dist/{persistence-Dzr6sFwD.cjs → persistence-C8-MtdQK.cjs} +1 -1
  31. package/dist/{registerKillSessionHandler-D4_wpN18.mjs → registerKillSessionHandler-BFBkz_XT.mjs} +417 -5
  32. package/dist/{registerKillSessionHandler-Dg_iRBPm.cjs → registerKillSessionHandler-BapPCRmp.cjs} +419 -4
  33. package/dist/{runClaude-B74dHAnQ.mjs → runClaude-CPV5Uap2.mjs} +34 -5
  34. package/dist/{runClaude-oIFzkfuU.cjs → runClaude-DVnqKa1q.cjs} +37 -8
  35. package/dist/{runCodex-D_9CuL6M.cjs → runCodex-Bzsp8gFO.cjs} +29 -21
  36. package/dist/{runCodex-mLHjsgVj.mjs → runCodex-CwtLSTMJ.mjs} +26 -18
  37. package/dist/{runGemini-CcWGezMt.cjs → runGemini-6Dwyk_Km.cjs} +267 -82
  38. package/dist/{runGemini-BMiho2ab.mjs → runGemini-Bmoxehlh.mjs} +267 -82
  39. package/package.json +9 -9
  40. package/scripts/build.mjs +68 -68
  41. package/scripts/ensureAcpSdkCompat.mjs +170 -172
  42. package/scripts/release-smoke.mjs +38 -35
  43. package/dist/ProviderSelectionHandler-BuXk-8ji.cjs +0 -680
  44. package/dist/ProviderSelectionHandler-CMaQThYO.mjs +0 -673
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var node_crypto = require('node:crypto');
4
- var api = require('./api-DId_j3C2.cjs');
5
- var registerKillSessionHandler = require('./registerKillSessionHandler-Dg_iRBPm.cjs');
6
- var index = require('./index-CuuYSKiv.cjs');
4
+ var api = require('./api-DZimmN4C.cjs');
5
+ var registerKillSessionHandler = require('./registerKillSessionHandler-BapPCRmp.cjs');
6
+ var index = require('./index-Cuvs0lFS.cjs');
7
7
  require('cross-spawn');
8
8
  require('@agentclientprotocol/sdk');
9
9
  require('ps-list');
@@ -16,7 +16,7 @@ require('node:path');
16
16
  require('node:os');
17
17
  require('node:child_process');
18
18
  require('node:readline');
19
- require('./persistence-Dzr6sFwD.cjs');
19
+ require('./persistence-C8-MtdQK.cjs');
20
20
  require('node:fs/promises');
21
21
  require('fs/promises');
22
22
  require('crypto');
@@ -27,8 +27,8 @@ require('tweetnacl');
27
27
  require('open');
28
28
  var React = require('react');
29
29
  var ink = require('ink');
30
- var ProviderSelectionHandler = require('./ProviderSelectionHandler-BuXk-8ji.cjs');
31
- var BaseReasoningProcessor = require('./BaseReasoningProcessor-CBMK-8Gi.cjs');
30
+ var ProviderSelectionHandler = require('./ProviderSelectionHandler-wwbfeK_s.cjs');
31
+ var BaseReasoningProcessor = require('./BaseReasoningProcessor-CzvqwxuY.cjs');
32
32
  require('zod');
33
33
  require('socket.io-client');
34
34
  require('expo-server-sdk');
@@ -575,8 +575,8 @@ async function codexRemoteLauncher(session) {
575
575
  let shouldCommitAccumulatedResponse = false;
576
576
  let currentAssistantMessageId = null;
577
577
  let currentThinkingMessageId = null;
578
- let fatalRuntimeStopError = null;
579
578
  let currentHappyOrgTurn = null;
579
+ let unexpectedRuntimeStopRecovery = null;
580
580
  const permissionHandler = new CodexPermissionHandler(session.client);
581
581
  const selectionHandler = new CodexSelectionHandler(session.client);
582
582
  const conversationHistory = new registerKillSessionHandler.ConversationHistory({ maxMessages: 20, maxCharacters: 5e4 });
@@ -656,16 +656,27 @@ async function codexRemoteLauncher(session) {
656
656
  report
657
657
  });
658
658
  };
659
- const handleUnexpectedRuntimeStop = (detail) => {
660
- if (shouldExit || fatalRuntimeStopError) {
659
+ const recoverUnexpectedRuntimeStop = async (detail) => {
660
+ if (shouldExit || session.queue.isClosed() || unexpectedRuntimeStopRecovery) {
661
661
  return;
662
662
  }
663
663
  const errorMessage = normalizeCodexBackendError(detail);
664
- fatalRuntimeStopError = new Error(errorMessage);
665
- emitUserVisibleErrorMessage(errorMessage);
666
- session.runtimeSession.sendSessionDeath();
667
- shouldExit = true;
668
- abortController.abort();
664
+ unexpectedRuntimeStopRecovery = (async () => {
665
+ queueHistoryInjectionForRestart(
666
+ `Codex runtime stopped unexpectedly (${errorMessage}). Starting a new Codex session on the next message...`
667
+ );
668
+ await disposeRuntimeHandle();
669
+ session.clearSessionId();
670
+ currentModeHash = null;
671
+ permissionHandler.reset();
672
+ selectionHandler.reset();
673
+ resetTurnState();
674
+ })();
675
+ try {
676
+ await unexpectedRuntimeStopRecovery;
677
+ } finally {
678
+ unexpectedRuntimeStopRecovery = null;
679
+ }
669
680
  };
670
681
  const queueHistoryInjectionForRestart = (reason) => {
671
682
  messageBuffer.addMessage("\u2550".repeat(40), "status");
@@ -768,7 +779,7 @@ async function codexRemoteLauncher(session) {
768
779
  emitPendingAssistantMessageDelta();
769
780
  reasoningProcessor.completeCurrent();
770
781
  if (msg.status === "stopped" && !turnInFlight) {
771
- handleUnexpectedRuntimeStop(msg.detail);
782
+ void recoverUnexpectedRuntimeStop(msg.detail);
772
783
  }
773
784
  return;
774
785
  }
@@ -1021,7 +1032,7 @@ async function codexRemoteLauncher(session) {
1021
1032
  api.logger.debug(`[Codex] Injected conversation history context (${historyContext.length} chars)`);
1022
1033
  }
1023
1034
  if (message.mode.happyOrg) {
1024
- promptToSend = ProviderSelectionHandler.buildHappyOrgTurnPrompt(promptToSend, message.mode.happyOrg);
1035
+ promptToSend = registerKillSessionHandler.buildHappyOrgTurnPrompt(promptToSend, message.mode.happyOrg);
1025
1036
  }
1026
1037
  conversationHistory.addUserMessage(message.message);
1027
1038
  await activeRuntimeHandle.sendPrompt(promptToSend);
@@ -1051,7 +1062,7 @@ async function codexRemoteLauncher(session) {
1051
1062
  }
1052
1063
  } finally {
1053
1064
  turnInFlight = false;
1054
- const finalizedTurn = ProviderSelectionHandler.finalizeHappyOrgTurn({
1065
+ const finalizedTurn = registerKillSessionHandler.finalizeHappyOrgTurn({
1055
1066
  metadata: session.runtimeSession.getMetadataSnapshot?.() ?? null,
1056
1067
  queuedTurn: message.mode.happyOrg,
1057
1068
  responseText: accumulatedResponse,
@@ -1116,9 +1127,6 @@ async function codexRemoteLauncher(session) {
1116
1127
  }
1117
1128
  messageBuffer.clear();
1118
1129
  }
1119
- if (fatalRuntimeStopError) {
1120
- throw fatalRuntimeStopError;
1121
- }
1122
1130
  api.logger.debug("[Codex] ACP remote launcher returning: exit", {
1123
1131
  shouldExit,
1124
1132
  queueClosed: session.queue.isClosed(),
@@ -1233,7 +1241,7 @@ async function runCodex(opts) {
1233
1241
  let currentPermissionMode = initialPermissionMode;
1234
1242
  let currentModel;
1235
1243
  sessionClient.onUserMessage((message) => {
1236
- const happyOrgResult = ProviderSelectionHandler.resolveHappyOrgQueuedTurn({
1244
+ const happyOrgResult = registerKillSessionHandler.resolveHappyOrgQueuedTurn({
1237
1245
  metadata: sessionClient.getMetadataSnapshot?.() ?? metadata,
1238
1246
  message
1239
1247
  });
@@ -1,7 +1,7 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { l as logger, f as connectionState, A as ApiClient } from './api-DBy5lPZw.mjs';
3
- import { B as BasePermissionHandler, h as hashObject, d as MessageBuffer, C as ConversationHistory$1, w as waitForResponseCompleteWithAbort, r as registerKillSessionHandler, l as launchRuntimeHandleWithFactoryResult, i as inferToolResultError, j as forwardAgentMessageToProviderSession, f as closeProviderSession, e as ensureManagedProviderMachine, M as MissingMachineIdError, b as MessageQueue2, s as syncControlledByUserState } from './registerKillSessionHandler-D4_wpN18.mjs';
4
- import { f as formatDisplayMessage, v as validateCodexAcpSpawn, d as createCodexBackend, t as truncateDisplayMessage, b as stopCaffeinate } from './index-66vjECEd.mjs';
2
+ import { l as logger, b as connectionState, A as ApiClient } from './api-Cxifhw5r.mjs';
3
+ import { B as BasePermissionHandler, h as hashObject, f as MessageBuffer, C as ConversationHistory$1, i as buildHappyOrgTurnPrompt, w as waitForResponseCompleteWithAbort, j as finalizeHappyOrgTurn, d as registerKillSessionHandler, l as launchRuntimeHandleWithFactoryResult, m as inferToolResultError, n as forwardAgentMessageToProviderSession, k as closeProviderSession, e as ensureManagedProviderMachine, M as MissingMachineIdError, b as MessageQueue2, r as resolveHappyOrgQueuedTurn, s as syncControlledByUserState } from './registerKillSessionHandler-BFBkz_XT.mjs';
4
+ import { f as formatDisplayMessage, v as validateCodexAcpSpawn, d as createCodexBackend, t as truncateDisplayMessage, b as stopCaffeinate } from './index-Des7I5WX.mjs';
5
5
  import 'cross-spawn';
6
6
  import '@agentclientprotocol/sdk';
7
7
  import 'ps-list';
@@ -14,7 +14,7 @@ import 'node:path';
14
14
  import 'node:os';
15
15
  import 'node:child_process';
16
16
  import 'node:readline';
17
- import './persistence-BOWh1NER.mjs';
17
+ import './persistence-6d4U4Sh8.mjs';
18
18
  import 'node:fs/promises';
19
19
  import 'fs/promises';
20
20
  import 'crypto';
@@ -25,8 +25,8 @@ import 'tweetnacl';
25
25
  import 'open';
26
26
  import React, { useState, useRef, useEffect, useCallback } from 'react';
27
27
  import { useStdout, useInput, Box, Text, render } from 'ink';
28
- import { c as createKeepAliveController, P as ProviderSelectionHandler, b as buildHappyOrgTurnPrompt, f as finalizeHappyOrgTurn, r as runModeLoop, a as resolveHappyOrgQueuedTurn } from './ProviderSelectionHandler-CMaQThYO.mjs';
29
- import { B as BaseReasoningProcessor, b as bootstrapManagedProviderSession } from './BaseReasoningProcessor-Dn9FxfxU.mjs';
28
+ import { c as createKeepAliveController, P as ProviderSelectionHandler, r as runModeLoop } from './ProviderSelectionHandler-Q8pl7e-d.mjs';
29
+ import { B as BaseReasoningProcessor, b as bootstrapManagedProviderSession } from './BaseReasoningProcessor-BaOWkVcu.mjs';
30
30
  import 'zod';
31
31
  import 'socket.io-client';
32
32
  import 'expo-server-sdk';
@@ -573,8 +573,8 @@ async function codexRemoteLauncher(session) {
573
573
  let shouldCommitAccumulatedResponse = false;
574
574
  let currentAssistantMessageId = null;
575
575
  let currentThinkingMessageId = null;
576
- let fatalRuntimeStopError = null;
577
576
  let currentHappyOrgTurn = null;
577
+ let unexpectedRuntimeStopRecovery = null;
578
578
  const permissionHandler = new CodexPermissionHandler(session.client);
579
579
  const selectionHandler = new CodexSelectionHandler(session.client);
580
580
  const conversationHistory = new ConversationHistory$1({ maxMessages: 20, maxCharacters: 5e4 });
@@ -654,16 +654,27 @@ async function codexRemoteLauncher(session) {
654
654
  report
655
655
  });
656
656
  };
657
- const handleUnexpectedRuntimeStop = (detail) => {
658
- if (shouldExit || fatalRuntimeStopError) {
657
+ const recoverUnexpectedRuntimeStop = async (detail) => {
658
+ if (shouldExit || session.queue.isClosed() || unexpectedRuntimeStopRecovery) {
659
659
  return;
660
660
  }
661
661
  const errorMessage = normalizeCodexBackendError(detail);
662
- fatalRuntimeStopError = new Error(errorMessage);
663
- emitUserVisibleErrorMessage(errorMessage);
664
- session.runtimeSession.sendSessionDeath();
665
- shouldExit = true;
666
- abortController.abort();
662
+ unexpectedRuntimeStopRecovery = (async () => {
663
+ queueHistoryInjectionForRestart(
664
+ `Codex runtime stopped unexpectedly (${errorMessage}). Starting a new Codex session on the next message...`
665
+ );
666
+ await disposeRuntimeHandle();
667
+ session.clearSessionId();
668
+ currentModeHash = null;
669
+ permissionHandler.reset();
670
+ selectionHandler.reset();
671
+ resetTurnState();
672
+ })();
673
+ try {
674
+ await unexpectedRuntimeStopRecovery;
675
+ } finally {
676
+ unexpectedRuntimeStopRecovery = null;
677
+ }
667
678
  };
668
679
  const queueHistoryInjectionForRestart = (reason) => {
669
680
  messageBuffer.addMessage("\u2550".repeat(40), "status");
@@ -766,7 +777,7 @@ async function codexRemoteLauncher(session) {
766
777
  emitPendingAssistantMessageDelta();
767
778
  reasoningProcessor.completeCurrent();
768
779
  if (msg.status === "stopped" && !turnInFlight) {
769
- handleUnexpectedRuntimeStop(msg.detail);
780
+ void recoverUnexpectedRuntimeStop(msg.detail);
770
781
  }
771
782
  return;
772
783
  }
@@ -1114,9 +1125,6 @@ async function codexRemoteLauncher(session) {
1114
1125
  }
1115
1126
  messageBuffer.clear();
1116
1127
  }
1117
- if (fatalRuntimeStopError) {
1118
- throw fatalRuntimeStopError;
1119
- }
1120
1128
  logger.debug("[Codex] ACP remote launcher returning: exit", {
1121
1129
  shouldExit,
1122
1130
  queueClosed: session.queue.isClosed(),