happy-imou-cloud 2.1.39 → 2.1.40
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/dist/{BaseReasoningProcessor-BUTolvO5.cjs → BaseReasoningProcessor-C8w4XM-x.cjs} +2 -2
- package/dist/{BaseReasoningProcessor-Cbp6sIDm.mjs → BaseReasoningProcessor-e-2bxjFB.mjs} +2 -2
- package/dist/{ProviderSelectionHandler-B22eXuym.cjs → ProviderSelectionHandler-CCSEAoQk.cjs} +2 -2
- package/dist/{ProviderSelectionHandler-DrSgStLw.mjs → ProviderSelectionHandler-DI3-RSW_.mjs} +2 -2
- package/dist/{api-wcqkneTg.mjs → api-BEKN9moW.mjs} +61 -2
- package/dist/{api-BoeZDGwx.cjs → api-Ixv6TLYP.cjs} +61 -1
- package/dist/{command-CkYq_KwA.cjs → command-DycfJnzn.cjs} +2 -2
- package/dist/{command-DcgK0y3F.mjs → command-bEdScxsw.mjs} +2 -2
- package/dist/{index-B9mt95QV.mjs → index-CNIT6feF.mjs} +7 -7
- package/dist/{index-Cgor8CE7.cjs → index-Mvx4hucr.cjs} +10 -10
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/lib.cjs +1 -1
- package/dist/lib.d.cts +19 -4
- package/dist/lib.d.mts +19 -4
- package/dist/lib.mjs +1 -1
- package/dist/{registerKillSessionHandler-Buc97BEh.mjs → registerKillSessionHandler--KMYjyvz.mjs} +2 -2
- package/dist/{registerKillSessionHandler-DtXhn2Cd.cjs → registerKillSessionHandler-CqjocTSr.cjs} +2 -2
- package/dist/{runClaude-CwXQwmgw.cjs → runClaude-DFdTqEU8.cjs} +59 -5
- package/dist/{runClaude-BYKNCDEU.mjs → runClaude-V1hBSsrL.mjs} +59 -5
- package/dist/{runCodex-BkB_YKhV.cjs → runCodex-BMafN7eI.cjs} +34 -8
- package/dist/{runCodex-DqAddhDE.mjs → runCodex-goHWKOd0.mjs} +34 -8
- package/dist/{runGemini-3jkfOtlr.mjs → runGemini-BDorYx-I.mjs} +65 -7
- package/dist/{runGemini-B4uXPrue.cjs → runGemini-CQBCnzbz.cjs} +65 -7
- package/package.json +1 -1
|
@@ -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 } from './api-
|
|
5
|
-
import { B as BasePermissionHandler, C as ConversationHistory$1, r as resolveHappyOrgQueuedTurn, e as ensureManagedProviderMachine, M as MissingMachineIdError, s as syncControlledByUserState, b as MessageQueue2, h as hashObject, c as registerKillSessionHandler, d as MessageBuffer, f as buildHappyOrgTurnPrompt, w as waitForResponseCompleteWithAbort, i as finalizeHappyOrgTurnWithBusinessAck, j as buildTurnResultPushNotification, k as buildReadyPushNotification, l as launchRuntimeHandleWithFactoryResult, m as extractPermissionRequestPushContext, n as buildPermissionPushNotification, o as renderTerminalOutputPreview, p as inferToolResultError, q as forwardAgentMessageToProviderSession } from './registerKillSessionHandler
|
|
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-
|
|
7
|
-
import { B as BaseReasoningProcessor, b as bootstrapManagedProviderSession } from './BaseReasoningProcessor-
|
|
4
|
+
import { l as logger, b as connectionState, A as ApiClient, d as AssistantMessageStream } from './api-BEKN9moW.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, h as hashObject, c as registerKillSessionHandler, d as MessageBuffer, f as buildHappyOrgTurnPrompt, w as waitForResponseCompleteWithAbort, i as finalizeHappyOrgTurnWithBusinessAck, j as buildTurnResultPushNotification, k as buildReadyPushNotification, l as launchRuntimeHandleWithFactoryResult, m as extractPermissionRequestPushContext, n as buildPermissionPushNotification, o as renderTerminalOutputPreview, p as inferToolResultError, q as forwardAgentMessageToProviderSession } from './registerKillSessionHandler--KMYjyvz.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-CNIT6feF.mjs';
|
|
7
|
+
import { B as BaseReasoningProcessor, b as bootstrapManagedProviderSession } from './BaseReasoningProcessor-e-2bxjFB.mjs';
|
|
8
8
|
import 'cross-spawn';
|
|
9
9
|
import '@agentclientprotocol/sdk';
|
|
10
10
|
import 'ps-list';
|
|
@@ -690,6 +690,7 @@ async function runGemini(opts) {
|
|
|
690
690
|
let currentModeHash = null;
|
|
691
691
|
let unexpectedRuntimeStopRecovery = null;
|
|
692
692
|
let readyAlreadySent = false;
|
|
693
|
+
let currentHappyOrgTurn = null;
|
|
693
694
|
async function handleAbort() {
|
|
694
695
|
logger.debug("[Gemini] Abort requested - stopping current task");
|
|
695
696
|
if (!turnAbortedSent) {
|
|
@@ -701,6 +702,7 @@ async function runGemini(opts) {
|
|
|
701
702
|
}
|
|
702
703
|
reasoningProcessor.abort();
|
|
703
704
|
diffProcessor.reset();
|
|
705
|
+
assistantMessageStream.reset();
|
|
704
706
|
try {
|
|
705
707
|
abortController.abort();
|
|
706
708
|
messageQueue.reset();
|
|
@@ -840,20 +842,72 @@ async function runGemini(opts) {
|
|
|
840
842
|
});
|
|
841
843
|
};
|
|
842
844
|
let accumulatedResponse = "";
|
|
845
|
+
let currentAssistantStreamStartLength = 0;
|
|
843
846
|
let isResponseInProgress = false;
|
|
844
847
|
let hadToolCallInTurn = false;
|
|
845
848
|
let taskStartedSent = false;
|
|
849
|
+
const assistantMessageStream = new AssistantMessageStream();
|
|
846
850
|
const resetTurnState = () => {
|
|
847
851
|
reasoningProcessor.abort();
|
|
848
852
|
diffProcessor.reset();
|
|
849
853
|
accumulatedResponse = "";
|
|
854
|
+
currentAssistantStreamStartLength = 0;
|
|
850
855
|
isResponseInProgress = false;
|
|
851
856
|
hadToolCallInTurn = false;
|
|
852
857
|
taskStartedSent = false;
|
|
853
858
|
turnAbortedSent = false;
|
|
859
|
+
currentHappyOrgTurn = null;
|
|
860
|
+
assistantMessageStream.reset();
|
|
854
861
|
thinking = false;
|
|
855
862
|
session.keepAlive(thinking, "remote");
|
|
856
863
|
};
|
|
864
|
+
const emitAssistantMessageDelta = (text) => {
|
|
865
|
+
if (currentHappyOrgTurn) {
|
|
866
|
+
return false;
|
|
867
|
+
}
|
|
868
|
+
if (!text.trim()) {
|
|
869
|
+
return false;
|
|
870
|
+
}
|
|
871
|
+
if (!assistantMessageStream.hasActive()) {
|
|
872
|
+
currentAssistantStreamStartLength = accumulatedResponse.length - text.length;
|
|
873
|
+
}
|
|
874
|
+
const stream = assistantMessageStream.delta();
|
|
875
|
+
session.sendAgentMessage("gemini", {
|
|
876
|
+
type: "message",
|
|
877
|
+
message: text,
|
|
878
|
+
id: stream.messageId,
|
|
879
|
+
...stream
|
|
880
|
+
});
|
|
881
|
+
return true;
|
|
882
|
+
};
|
|
883
|
+
const buildAssistantMessageCommit = (message) => {
|
|
884
|
+
if (!assistantMessageStream.hasActive()) {
|
|
885
|
+
return {
|
|
886
|
+
type: "message",
|
|
887
|
+
message,
|
|
888
|
+
id: randomUUID()
|
|
889
|
+
};
|
|
890
|
+
}
|
|
891
|
+
const stream = assistantMessageStream.commit();
|
|
892
|
+
return {
|
|
893
|
+
type: "message",
|
|
894
|
+
message: message.slice(currentAssistantStreamStartLength),
|
|
895
|
+
id: stream.messageId,
|
|
896
|
+
...stream
|
|
897
|
+
};
|
|
898
|
+
};
|
|
899
|
+
const commitActiveAssistantMessageStream = () => {
|
|
900
|
+
if (!assistantMessageStream.hasActive()) {
|
|
901
|
+
return false;
|
|
902
|
+
}
|
|
903
|
+
const messagePayload = buildAssistantMessageCommit(accumulatedResponse);
|
|
904
|
+
if (!messagePayload.message.trim()) {
|
|
905
|
+
return false;
|
|
906
|
+
}
|
|
907
|
+
session.sendAgentMessage("gemini", messagePayload);
|
|
908
|
+
currentAssistantStreamStartLength = accumulatedResponse.length;
|
|
909
|
+
return true;
|
|
910
|
+
};
|
|
857
911
|
const disposeRuntimeHandle = async () => {
|
|
858
912
|
if (!runtimeHandle) {
|
|
859
913
|
return;
|
|
@@ -921,6 +975,7 @@ async function runGemini(opts) {
|
|
|
921
975
|
logger.debug(`[gemini] Updated response, chunk length: ${msg.textDelta.length}, total accumulated: ${accumulatedResponse.length + msg.textDelta.length}`);
|
|
922
976
|
}
|
|
923
977
|
accumulatedResponse += msg.textDelta;
|
|
978
|
+
emitAssistantMessageDelta(msg.textDelta);
|
|
924
979
|
}
|
|
925
980
|
break;
|
|
926
981
|
case "status":
|
|
@@ -977,9 +1032,11 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
977
1032
|
type: "message",
|
|
978
1033
|
message: `Error: ${errorMessage}`
|
|
979
1034
|
});
|
|
1035
|
+
assistantMessageStream.reset();
|
|
980
1036
|
}
|
|
981
1037
|
break;
|
|
982
1038
|
case "tool-call":
|
|
1039
|
+
commitActiveAssistantMessageStream();
|
|
983
1040
|
hadToolCallInTurn = true;
|
|
984
1041
|
const toolArgs = msg.args ? JSON.stringify(msg.args).substring(0, 100) : "";
|
|
985
1042
|
const isInvestigationTool = msg.toolName === "codebase_investigator" || typeof msg.toolName === "string" && msg.toolName.includes("investigator");
|
|
@@ -1204,10 +1261,12 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
1204
1261
|
throw new Error("Gemini runtime session not started");
|
|
1205
1262
|
}
|
|
1206
1263
|
accumulatedResponse = "";
|
|
1264
|
+
currentAssistantStreamStartLength = 0;
|
|
1207
1265
|
isResponseInProgress = false;
|
|
1208
1266
|
hadToolCallInTurn = false;
|
|
1209
1267
|
taskStartedSent = false;
|
|
1210
1268
|
turnAbortedSent = false;
|
|
1269
|
+
currentHappyOrgTurn = message.mode.happyOrg ?? null;
|
|
1211
1270
|
let promptToSend = message.message;
|
|
1212
1271
|
if (shouldInjectHistoryOnNextSession && conversationHistory.hasHistory()) {
|
|
1213
1272
|
const historyContext = conversationHistory.getContextForNewSession();
|
|
@@ -1359,11 +1418,10 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
1359
1418
|
logger.debug(`[gemini] Warning: Incomplete options block detected`);
|
|
1360
1419
|
}
|
|
1361
1420
|
const messagePayload = {
|
|
1362
|
-
|
|
1363
|
-
message: finalMessageText,
|
|
1364
|
-
id: randomUUID(),
|
|
1421
|
+
...buildAssistantMessageCommit(finalMessageText),
|
|
1365
1422
|
...options.length > 0 && { options }
|
|
1366
1423
|
};
|
|
1424
|
+
currentAssistantStreamStartLength = accumulatedResponse.length;
|
|
1367
1425
|
logger.debug(`[gemini] Sending complete message to mobile (length: ${finalMessageText.length}): ${finalMessageText.substring(0, 100)}...`);
|
|
1368
1426
|
session.sendAgentMessage("gemini", messagePayload);
|
|
1369
1427
|
if (!shouldExit) {
|
|
@@ -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-
|
|
7
|
-
var registerKillSessionHandler = require('./registerKillSessionHandler-
|
|
8
|
-
var index = require('./index-
|
|
9
|
-
var BaseReasoningProcessor = require('./BaseReasoningProcessor-
|
|
6
|
+
var persistence = require('./api-Ixv6TLYP.cjs');
|
|
7
|
+
var registerKillSessionHandler = require('./registerKillSessionHandler-CqjocTSr.cjs');
|
|
8
|
+
var index = require('./index-Mvx4hucr.cjs');
|
|
9
|
+
var BaseReasoningProcessor = require('./BaseReasoningProcessor-C8w4XM-x.cjs');
|
|
10
10
|
require('cross-spawn');
|
|
11
11
|
require('@agentclientprotocol/sdk');
|
|
12
12
|
require('ps-list');
|
|
@@ -692,6 +692,7 @@ async function runGemini(opts) {
|
|
|
692
692
|
let currentModeHash = null;
|
|
693
693
|
let unexpectedRuntimeStopRecovery = null;
|
|
694
694
|
let readyAlreadySent = false;
|
|
695
|
+
let currentHappyOrgTurn = null;
|
|
695
696
|
async function handleAbort() {
|
|
696
697
|
persistence.logger.debug("[Gemini] Abort requested - stopping current task");
|
|
697
698
|
if (!turnAbortedSent) {
|
|
@@ -703,6 +704,7 @@ async function runGemini(opts) {
|
|
|
703
704
|
}
|
|
704
705
|
reasoningProcessor.abort();
|
|
705
706
|
diffProcessor.reset();
|
|
707
|
+
assistantMessageStream.reset();
|
|
706
708
|
try {
|
|
707
709
|
abortController.abort();
|
|
708
710
|
messageQueue.reset();
|
|
@@ -842,20 +844,72 @@ async function runGemini(opts) {
|
|
|
842
844
|
});
|
|
843
845
|
};
|
|
844
846
|
let accumulatedResponse = "";
|
|
847
|
+
let currentAssistantStreamStartLength = 0;
|
|
845
848
|
let isResponseInProgress = false;
|
|
846
849
|
let hadToolCallInTurn = false;
|
|
847
850
|
let taskStartedSent = false;
|
|
851
|
+
const assistantMessageStream = new persistence.AssistantMessageStream();
|
|
848
852
|
const resetTurnState = () => {
|
|
849
853
|
reasoningProcessor.abort();
|
|
850
854
|
diffProcessor.reset();
|
|
851
855
|
accumulatedResponse = "";
|
|
856
|
+
currentAssistantStreamStartLength = 0;
|
|
852
857
|
isResponseInProgress = false;
|
|
853
858
|
hadToolCallInTurn = false;
|
|
854
859
|
taskStartedSent = false;
|
|
855
860
|
turnAbortedSent = false;
|
|
861
|
+
currentHappyOrgTurn = null;
|
|
862
|
+
assistantMessageStream.reset();
|
|
856
863
|
thinking = false;
|
|
857
864
|
session.keepAlive(thinking, "remote");
|
|
858
865
|
};
|
|
866
|
+
const emitAssistantMessageDelta = (text) => {
|
|
867
|
+
if (currentHappyOrgTurn) {
|
|
868
|
+
return false;
|
|
869
|
+
}
|
|
870
|
+
if (!text.trim()) {
|
|
871
|
+
return false;
|
|
872
|
+
}
|
|
873
|
+
if (!assistantMessageStream.hasActive()) {
|
|
874
|
+
currentAssistantStreamStartLength = accumulatedResponse.length - text.length;
|
|
875
|
+
}
|
|
876
|
+
const stream = assistantMessageStream.delta();
|
|
877
|
+
session.sendAgentMessage("gemini", {
|
|
878
|
+
type: "message",
|
|
879
|
+
message: text,
|
|
880
|
+
id: stream.messageId,
|
|
881
|
+
...stream
|
|
882
|
+
});
|
|
883
|
+
return true;
|
|
884
|
+
};
|
|
885
|
+
const buildAssistantMessageCommit = (message) => {
|
|
886
|
+
if (!assistantMessageStream.hasActive()) {
|
|
887
|
+
return {
|
|
888
|
+
type: "message",
|
|
889
|
+
message,
|
|
890
|
+
id: node_crypto.randomUUID()
|
|
891
|
+
};
|
|
892
|
+
}
|
|
893
|
+
const stream = assistantMessageStream.commit();
|
|
894
|
+
return {
|
|
895
|
+
type: "message",
|
|
896
|
+
message: message.slice(currentAssistantStreamStartLength),
|
|
897
|
+
id: stream.messageId,
|
|
898
|
+
...stream
|
|
899
|
+
};
|
|
900
|
+
};
|
|
901
|
+
const commitActiveAssistantMessageStream = () => {
|
|
902
|
+
if (!assistantMessageStream.hasActive()) {
|
|
903
|
+
return false;
|
|
904
|
+
}
|
|
905
|
+
const messagePayload = buildAssistantMessageCommit(accumulatedResponse);
|
|
906
|
+
if (!messagePayload.message.trim()) {
|
|
907
|
+
return false;
|
|
908
|
+
}
|
|
909
|
+
session.sendAgentMessage("gemini", messagePayload);
|
|
910
|
+
currentAssistantStreamStartLength = accumulatedResponse.length;
|
|
911
|
+
return true;
|
|
912
|
+
};
|
|
859
913
|
const disposeRuntimeHandle = async () => {
|
|
860
914
|
if (!runtimeHandle) {
|
|
861
915
|
return;
|
|
@@ -923,6 +977,7 @@ async function runGemini(opts) {
|
|
|
923
977
|
persistence.logger.debug(`[gemini] Updated response, chunk length: ${msg.textDelta.length}, total accumulated: ${accumulatedResponse.length + msg.textDelta.length}`);
|
|
924
978
|
}
|
|
925
979
|
accumulatedResponse += msg.textDelta;
|
|
980
|
+
emitAssistantMessageDelta(msg.textDelta);
|
|
926
981
|
}
|
|
927
982
|
break;
|
|
928
983
|
case "status":
|
|
@@ -979,9 +1034,11 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
979
1034
|
type: "message",
|
|
980
1035
|
message: `Error: ${errorMessage}`
|
|
981
1036
|
});
|
|
1037
|
+
assistantMessageStream.reset();
|
|
982
1038
|
}
|
|
983
1039
|
break;
|
|
984
1040
|
case "tool-call":
|
|
1041
|
+
commitActiveAssistantMessageStream();
|
|
985
1042
|
hadToolCallInTurn = true;
|
|
986
1043
|
const toolArgs = msg.args ? JSON.stringify(msg.args).substring(0, 100) : "";
|
|
987
1044
|
const isInvestigationTool = msg.toolName === "codebase_investigator" || typeof msg.toolName === "string" && msg.toolName.includes("investigator");
|
|
@@ -1206,10 +1263,12 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
1206
1263
|
throw new Error("Gemini runtime session not started");
|
|
1207
1264
|
}
|
|
1208
1265
|
accumulatedResponse = "";
|
|
1266
|
+
currentAssistantStreamStartLength = 0;
|
|
1209
1267
|
isResponseInProgress = false;
|
|
1210
1268
|
hadToolCallInTurn = false;
|
|
1211
1269
|
taskStartedSent = false;
|
|
1212
1270
|
turnAbortedSent = false;
|
|
1271
|
+
currentHappyOrgTurn = message.mode.happyOrg ?? null;
|
|
1213
1272
|
let promptToSend = message.message;
|
|
1214
1273
|
if (shouldInjectHistoryOnNextSession && conversationHistory.hasHistory()) {
|
|
1215
1274
|
const historyContext = conversationHistory.getContextForNewSession();
|
|
@@ -1361,11 +1420,10 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
1361
1420
|
persistence.logger.debug(`[gemini] Warning: Incomplete options block detected`);
|
|
1362
1421
|
}
|
|
1363
1422
|
const messagePayload = {
|
|
1364
|
-
|
|
1365
|
-
message: finalMessageText,
|
|
1366
|
-
id: node_crypto.randomUUID(),
|
|
1423
|
+
...buildAssistantMessageCommit(finalMessageText),
|
|
1367
1424
|
...options.length > 0 && { options }
|
|
1368
1425
|
};
|
|
1426
|
+
currentAssistantStreamStartLength = accumulatedResponse.length;
|
|
1369
1427
|
persistence.logger.debug(`[gemini] Sending complete message to mobile (length: ${finalMessageText.length}): ${finalMessageText.substring(0, 100)}...`);
|
|
1370
1428
|
session.sendAgentMessage("gemini", messagePayload);
|
|
1371
1429
|
if (!shouldExit) {
|