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.
- package/bin/happy-cloud.mjs +21 -21
- package/compat/acp-sdk-schema/index.js +27 -27
- package/compat/acp-sdk-schema/types.gen.js +2 -2
- package/compat/acp-sdk-schema/zod.gen.js +1553 -1553
- package/compat/ink-build/components/Cursor.d.ts +83 -83
- package/compat/ink-build/components/Cursor.js +52 -52
- package/compat/ink-build/components/CursorContext.d.ts +11 -11
- package/compat/ink-build/components/CursorContext.js +7 -7
- package/compat/ink-build/components/ErrorBoundary.d.ts +18 -18
- package/compat/ink-build/components/ErrorBoundary.js +22 -22
- package/compat/ink-build/hooks/use-cursor.d.ts +12 -12
- package/compat/ink-build/hooks/use-cursor.js +28 -28
- package/dist/{BaseReasoningProcessor-Dn9FxfxU.mjs → BaseReasoningProcessor-BaOWkVcu.mjs} +3 -3
- package/dist/{BaseReasoningProcessor-CBMK-8Gi.cjs → BaseReasoningProcessor-CzvqwxuY.cjs} +3 -3
- package/dist/ProviderSelectionHandler-Q8pl7e-d.mjs +261 -0
- package/dist/ProviderSelectionHandler-wwbfeK_s.cjs +265 -0
- package/dist/{api-DBy5lPZw.mjs → api-Cxifhw5r.mjs} +3 -3
- package/dist/{api-DId_j3C2.cjs → api-DZimmN4C.cjs} +2 -2
- package/dist/{command-CeaBwYCW.mjs → command-B6LM3Nml.mjs} +3 -3
- package/dist/{command-DwfUpmId.cjs → command-RcCJI1jl.cjs} +3 -3
- package/dist/{index-CuuYSKiv.cjs → index-Cuvs0lFS.cjs} +168 -75
- package/dist/{index-66vjECEd.mjs → index-Des7I5WX.mjs} +165 -72
- package/dist/index.cjs +3 -3
- package/dist/index.mjs +3 -3
- package/dist/lib.cjs +1 -1
- package/dist/lib.d.cts +36 -36
- package/dist/lib.d.mts +36 -36
- package/dist/lib.mjs +1 -1
- package/dist/{persistence-BOWh1NER.mjs → persistence-6d4U4Sh8.mjs} +1 -1
- package/dist/{persistence-Dzr6sFwD.cjs → persistence-C8-MtdQK.cjs} +1 -1
- package/dist/{registerKillSessionHandler-D4_wpN18.mjs → registerKillSessionHandler-BFBkz_XT.mjs} +417 -5
- package/dist/{registerKillSessionHandler-Dg_iRBPm.cjs → registerKillSessionHandler-BapPCRmp.cjs} +419 -4
- package/dist/{runClaude-B74dHAnQ.mjs → runClaude-CPV5Uap2.mjs} +34 -5
- package/dist/{runClaude-oIFzkfuU.cjs → runClaude-DVnqKa1q.cjs} +37 -8
- package/dist/{runCodex-D_9CuL6M.cjs → runCodex-Bzsp8gFO.cjs} +29 -21
- package/dist/{runCodex-mLHjsgVj.mjs → runCodex-CwtLSTMJ.mjs} +26 -18
- package/dist/{runGemini-CcWGezMt.cjs → runGemini-6Dwyk_Km.cjs} +267 -82
- package/dist/{runGemini-BMiho2ab.mjs → runGemini-Bmoxehlh.mjs} +267 -82
- package/package.json +9 -9
- package/scripts/build.mjs +68 -68
- package/scripts/ensureAcpSdkCompat.mjs +170 -172
- package/scripts/release-smoke.mjs +38 -35
- package/dist/ProviderSelectionHandler-BuXk-8ji.cjs +0 -680
- 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-
|
|
5
|
-
var registerKillSessionHandler = require('./registerKillSessionHandler-
|
|
6
|
-
var index = require('./index-
|
|
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-
|
|
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-
|
|
31
|
-
var BaseReasoningProcessor = require('./BaseReasoningProcessor-
|
|
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
|
|
660
|
-
if (shouldExit ||
|
|
659
|
+
const recoverUnexpectedRuntimeStop = async (detail) => {
|
|
660
|
+
if (shouldExit || session.queue.isClosed() || unexpectedRuntimeStopRecovery) {
|
|
661
661
|
return;
|
|
662
662
|
}
|
|
663
663
|
const errorMessage = normalizeCodexBackendError(detail);
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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,
|
|
3
|
-
import { B as BasePermissionHandler, h as hashObject,
|
|
4
|
-
import { f as formatDisplayMessage, v as validateCodexAcpSpawn, d as createCodexBackend, t as truncateDisplayMessage, b as stopCaffeinate } from './index-
|
|
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-
|
|
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,
|
|
29
|
-
import { B as BaseReasoningProcessor, b as bootstrapManagedProviderSession } from './BaseReasoningProcessor-
|
|
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
|
|
658
|
-
if (shouldExit ||
|
|
657
|
+
const recoverUnexpectedRuntimeStop = async (detail) => {
|
|
658
|
+
if (shouldExit || session.queue.isClosed() || unexpectedRuntimeStopRecovery) {
|
|
659
659
|
return;
|
|
660
660
|
}
|
|
661
661
|
const errorMessage = normalizeCodexBackendError(detail);
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
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
|
-
|
|
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(),
|