happy-imou-cloud 2.0.3 → 2.0.4
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-_wxlqKB8.cjs → BaseReasoningProcessor-DEEfNi5Y.cjs} +2 -2
- package/dist/{BaseReasoningProcessor-B37yOHxo.mjs → BaseReasoningProcessor-Di1yEMMv.mjs} +2 -2
- package/dist/{api-DpQIC-DJ.mjs → api-CIHTNilH.mjs} +2 -2
- package/dist/{api-D9dIR956.cjs → api-CyJG1mr6.cjs} +2 -2
- package/dist/{command-DRqrBuHM.mjs → command-BERqmFB0.mjs} +3 -3
- package/dist/{command-CdXv1zNF.cjs → command-CPlJKXDn.cjs} +3 -3
- package/dist/{index-LYPXVO_L.cjs → index-1zlH6s7a.cjs} +228 -33
- package/dist/{index-CriPm_z9.mjs → index-vNYxNqVZ.mjs} +226 -31
- package/dist/index.cjs +3 -3
- package/dist/index.mjs +3 -3
- package/dist/lib.cjs +1 -1
- package/dist/lib.mjs +1 -1
- package/dist/{persistence-PzKU0QCa.cjs → persistence-BeFVx6kI.cjs} +1 -1
- package/dist/{persistence-CqgPgbzN.mjs → persistence-sLEqV8vk.mjs} +1 -1
- package/dist/{registerKillSessionHandler-BDBPoQSA.cjs → registerKillSessionHandler-CCxqGFjZ.cjs} +2 -2
- package/dist/{registerKillSessionHandler-C3M_-4Zg.mjs → registerKillSessionHandler-uVHqIC4h.mjs} +2 -2
- package/dist/{runClaude-D6Pdkevn.mjs → runClaude-Dl9nIRIg.mjs} +4 -4
- package/dist/{runClaude-IeRSC5qX.cjs → runClaude-Dz-PCSvb.cjs} +5 -5
- package/dist/{runCodex-WRmgSK6L.cjs → runCodex-BtZplK1R.cjs} +65 -13
- package/dist/{runCodex-CsfUU1Wb.mjs → runCodex-DgKKw3IU.mjs} +63 -14
- package/dist/{runGemini-CrH3dQ0Y.mjs → runGemini-CM1v3I24.mjs} +10 -8
- package/dist/{runGemini-qBh6zs5G.cjs → runGemini-DUyH311Z.cjs} +10 -8
- package/package.json +1 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var node_crypto = require('node:crypto');
|
|
4
|
-
var api = require('./api-
|
|
5
|
-
var persistence = require('./persistence-
|
|
6
|
-
var index = require('./index-
|
|
7
|
-
var BaseReasoningProcessor = require('./BaseReasoningProcessor-
|
|
8
|
-
var registerKillSessionHandler = require('./registerKillSessionHandler-
|
|
4
|
+
var api = require('./api-CyJG1mr6.cjs');
|
|
5
|
+
var persistence = require('./persistence-BeFVx6kI.cjs');
|
|
6
|
+
var index = require('./index-1zlH6s7a.cjs');
|
|
7
|
+
var BaseReasoningProcessor = require('./BaseReasoningProcessor-DEEfNi5Y.cjs');
|
|
8
|
+
var registerKillSessionHandler = require('./registerKillSessionHandler-CCxqGFjZ.cjs');
|
|
9
9
|
var React = require('react');
|
|
10
10
|
var ink = require('ink');
|
|
11
11
|
require('axios');
|
|
@@ -738,7 +738,8 @@ function normalizeCodexBackendError(error) {
|
|
|
738
738
|
const text = index.formatDisplayMessage(error).trim();
|
|
739
739
|
const stderrText = record ? index.formatDisplayMessage(record.stderr).trim() : "";
|
|
740
740
|
const detailText = record ? index.formatDisplayMessage(record.detail).trim() : "";
|
|
741
|
-
const
|
|
741
|
+
const dataText = record ? index.formatDisplayMessage(record.data).trim() : "";
|
|
742
|
+
const searchableText = [text, stderrText, detailText, dataText].filter(Boolean).join("\n");
|
|
742
743
|
const prefix = typeof error === "object" && error !== null ? [
|
|
743
744
|
record?.code !== void 0 && record?.code !== null ? `[code=${String(record.code)}]` : "",
|
|
744
745
|
record?.status !== void 0 && record?.status !== null ? `[status=${String(record.status)}]` : ""
|
|
@@ -751,6 +752,9 @@ function normalizeCodexBackendError(error) {
|
|
|
751
752
|
const hint = "The configured Codex ACP command does not speak the ACP protocol. Make sure HAPPY_CODEX_ACP_BIN points to codex-acp, not the codex CLI.";
|
|
752
753
|
return prefix ? `${prefix} ${hint}` : hint;
|
|
753
754
|
}
|
|
755
|
+
if (typeof record?.message === "string" && record.message.trim().toLowerCase() === "internal error" && dataText) {
|
|
756
|
+
return prefix ? `${prefix} ${dataText}` : dataText;
|
|
757
|
+
}
|
|
754
758
|
if (error instanceof Error && text) {
|
|
755
759
|
return text;
|
|
756
760
|
}
|
|
@@ -870,6 +874,14 @@ async function codexRemoteLauncher(session) {
|
|
|
870
874
|
messageBuffer.addMessage(message, "status");
|
|
871
875
|
session.runtimeSession.sendSessionEvent({ type: "message", message });
|
|
872
876
|
};
|
|
877
|
+
const emitUserVisibleErrorMessage = (message) => {
|
|
878
|
+
emitStatusMessage(message);
|
|
879
|
+
session.runtimeSession.sendCodexMessage({
|
|
880
|
+
type: "message",
|
|
881
|
+
message,
|
|
882
|
+
id: node_crypto.randomUUID()
|
|
883
|
+
});
|
|
884
|
+
};
|
|
873
885
|
const queueHistoryInjectionForRestart = (reason) => {
|
|
874
886
|
messageBuffer.addMessage("\u2550".repeat(40), "status");
|
|
875
887
|
if (conversationHistory.hasHistory()) {
|
|
@@ -964,7 +976,8 @@ async function codexRemoteLauncher(session) {
|
|
|
964
976
|
type: "tool-call-result",
|
|
965
977
|
callId: msg.callId,
|
|
966
978
|
output: msg.result,
|
|
967
|
-
id: node_crypto.randomUUID()
|
|
979
|
+
id: node_crypto.randomUUID(),
|
|
980
|
+
isError
|
|
968
981
|
});
|
|
969
982
|
return;
|
|
970
983
|
}
|
|
@@ -1042,7 +1055,8 @@ async function codexRemoteLauncher(session) {
|
|
|
1042
1055
|
stderr: msg.stderr,
|
|
1043
1056
|
success: msg.success
|
|
1044
1057
|
},
|
|
1045
|
-
id: node_crypto.randomUUID()
|
|
1058
|
+
id: node_crypto.randomUUID(),
|
|
1059
|
+
isError: !msg.success
|
|
1046
1060
|
});
|
|
1047
1061
|
return;
|
|
1048
1062
|
}
|
|
@@ -1255,7 +1269,7 @@ async function codexRemoteLauncher(session) {
|
|
|
1255
1269
|
emitStatusMessage("Aborted by user");
|
|
1256
1270
|
} else {
|
|
1257
1271
|
const errorMessage = normalizeCodexBackendError(error);
|
|
1258
|
-
|
|
1272
|
+
emitUserVisibleErrorMessage(errorMessage);
|
|
1259
1273
|
if (conversationHistory.hasHistory()) {
|
|
1260
1274
|
shouldInjectHistoryOnNextSession = true;
|
|
1261
1275
|
}
|
|
@@ -1364,10 +1378,39 @@ async function syncControlledByUserState(sessionClient, controlledByUser) {
|
|
|
1364
1378
|
function shouldSupersedeCodexPendingInteractions(opts) {
|
|
1365
1379
|
return true;
|
|
1366
1380
|
}
|
|
1381
|
+
function resolveInitialCodexPermissionMode(opts) {
|
|
1382
|
+
if (opts.permissionMode) {
|
|
1383
|
+
return opts.permissionMode;
|
|
1384
|
+
}
|
|
1385
|
+
const startingMode = opts.startingMode ?? (opts.startedBy === "daemon" ? "remote" : "local");
|
|
1386
|
+
if (opts.startedBy === "daemon" && startingMode === "remote") {
|
|
1387
|
+
return "yolo";
|
|
1388
|
+
}
|
|
1389
|
+
return void 0;
|
|
1390
|
+
}
|
|
1391
|
+
function resolveQueuedCodexPermissionMode(opts) {
|
|
1392
|
+
if (opts.preserveCurrentOnDefault && opts.messagePermissionMode === "default" && opts.currentPermissionMode) {
|
|
1393
|
+
return opts.currentPermissionMode;
|
|
1394
|
+
}
|
|
1395
|
+
return opts.messagePermissionMode ?? opts.currentPermissionMode ?? "default";
|
|
1396
|
+
}
|
|
1397
|
+
function resolveIncomingCodexPermissionMode(opts) {
|
|
1398
|
+
const resolvedPermissionMode = resolveQueuedCodexPermissionMode(opts);
|
|
1399
|
+
return {
|
|
1400
|
+
resolvedPermissionMode,
|
|
1401
|
+
nextCurrentPermissionMode: resolvedPermissionMode
|
|
1402
|
+
};
|
|
1403
|
+
}
|
|
1367
1404
|
async function runCodex(opts) {
|
|
1368
1405
|
const sessionTag = node_crypto.randomUUID();
|
|
1369
1406
|
api.connectionState.setBackend("Codex");
|
|
1370
1407
|
const requestedStartingMode = opts.startingMode ?? (opts.startedBy === "daemon" ? "remote" : "local");
|
|
1408
|
+
const initialPermissionMode = resolveInitialCodexPermissionMode({
|
|
1409
|
+
permissionMode: opts.permissionMode,
|
|
1410
|
+
startedBy: opts.startedBy,
|
|
1411
|
+
startingMode: requestedStartingMode
|
|
1412
|
+
});
|
|
1413
|
+
const preserveCurrentPermissionModeForRemoteDefault = opts.startedBy === "daemon" && requestedStartingMode === "remote";
|
|
1371
1414
|
if (opts.startedBy === "daemon" && requestedStartingMode === "local") {
|
|
1372
1415
|
throw new Error("Daemon-spawned Codex sessions cannot use local mode.");
|
|
1373
1416
|
}
|
|
@@ -1422,14 +1465,20 @@ async function runCodex(opts) {
|
|
|
1422
1465
|
}
|
|
1423
1466
|
}
|
|
1424
1467
|
const messageQueue = new registerKillSessionHandler.MessageQueue2(getCodexExecutionFingerprint);
|
|
1425
|
-
let currentPermissionMode;
|
|
1468
|
+
let currentPermissionMode = initialPermissionMode;
|
|
1426
1469
|
let currentModel;
|
|
1427
1470
|
sessionClient.onUserMessage((message) => {
|
|
1428
|
-
|
|
1471
|
+
const previousPermissionMode = currentPermissionMode;
|
|
1472
|
+
let messagePermissionMode = previousPermissionMode;
|
|
1429
1473
|
if (message.meta?.permissionMode) {
|
|
1430
1474
|
messagePermissionMode = message.meta.permissionMode;
|
|
1431
|
-
currentPermissionMode = messagePermissionMode;
|
|
1432
1475
|
}
|
|
1476
|
+
const permissionResolution = resolveIncomingCodexPermissionMode({
|
|
1477
|
+
messagePermissionMode,
|
|
1478
|
+
currentPermissionMode: previousPermissionMode,
|
|
1479
|
+
preserveCurrentOnDefault: preserveCurrentPermissionModeForRemoteDefault
|
|
1480
|
+
});
|
|
1481
|
+
currentPermissionMode = permissionResolution.nextCurrentPermissionMode;
|
|
1433
1482
|
let messageModel = currentModel;
|
|
1434
1483
|
if (message.meta?.hasOwnProperty("model")) {
|
|
1435
1484
|
messageModel = message.meta.model || void 0;
|
|
@@ -1443,7 +1492,7 @@ async function runCodex(opts) {
|
|
|
1443
1492
|
codexSession?.supersedePendingInteractions(BaseReasoningProcessor.INTERACTION_SUPERSEDED_ERROR);
|
|
1444
1493
|
}
|
|
1445
1494
|
messageQueue.push(message.content.text, {
|
|
1446
|
-
permissionMode:
|
|
1495
|
+
permissionMode: permissionResolution.resolvedPermissionMode,
|
|
1447
1496
|
model: messageModel
|
|
1448
1497
|
});
|
|
1449
1498
|
});
|
|
@@ -1477,6 +1526,9 @@ async function runCodex(opts) {
|
|
|
1477
1526
|
}
|
|
1478
1527
|
}
|
|
1479
1528
|
|
|
1529
|
+
exports.resolveIncomingCodexPermissionMode = resolveIncomingCodexPermissionMode;
|
|
1530
|
+
exports.resolveInitialCodexPermissionMode = resolveInitialCodexPermissionMode;
|
|
1531
|
+
exports.resolveQueuedCodexPermissionMode = resolveQueuedCodexPermissionMode;
|
|
1480
1532
|
exports.runCodex = runCodex;
|
|
1481
1533
|
exports.shouldSupersedeCodexPendingInteractions = shouldSupersedeCodexPendingInteractions;
|
|
1482
1534
|
exports.supportsAgentStateUpdateEvents = supportsAgentStateUpdateEvents;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
|
-
import { l as logger, b as connectionState, A as ApiClient, i as isAuthenticationRequiredError } from './api-
|
|
3
|
-
import { readSettings } from './persistence-
|
|
4
|
-
import { f as formatDisplayMessage, v as validateCodexAcpSpawn, d as createCodexBackend, t as truncateDisplayMessage, b as stopCaffeinate, i as initialMachineMetadata, n as notifyDaemonSessionStarted } from './index-
|
|
5
|
-
import { B as BasePermissionHandler, g as getPendingInteractionTimeoutMs, I as INTERACTION_SUPERSEDED_ERROR, b as INTERACTION_TIMED_OUT_ERROR, a as BaseReasoningProcessor, c as createSessionMetadata, s as setupOfflineReconnection } from './BaseReasoningProcessor-
|
|
6
|
-
import { h as hashObject, a as MessageBuffer, r as registerKillSessionHandler, M as MessageQueue2 } from './registerKillSessionHandler-
|
|
2
|
+
import { l as logger, b as connectionState, A as ApiClient, i as isAuthenticationRequiredError } from './api-CIHTNilH.mjs';
|
|
3
|
+
import { readSettings } from './persistence-sLEqV8vk.mjs';
|
|
4
|
+
import { f as formatDisplayMessage, v as validateCodexAcpSpawn, d as createCodexBackend, t as truncateDisplayMessage, b as stopCaffeinate, i as initialMachineMetadata, n as notifyDaemonSessionStarted } from './index-vNYxNqVZ.mjs';
|
|
5
|
+
import { B as BasePermissionHandler, g as getPendingInteractionTimeoutMs, I as INTERACTION_SUPERSEDED_ERROR, b as INTERACTION_TIMED_OUT_ERROR, a as BaseReasoningProcessor, c as createSessionMetadata, s as setupOfflineReconnection } from './BaseReasoningProcessor-Di1yEMMv.mjs';
|
|
6
|
+
import { h as hashObject, a as MessageBuffer, r as registerKillSessionHandler, M as MessageQueue2 } from './registerKillSessionHandler-uVHqIC4h.mjs';
|
|
7
7
|
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
8
8
|
import { useStdout, useInput, Box, Text, render } from 'ink';
|
|
9
9
|
import 'axios';
|
|
@@ -736,7 +736,8 @@ function normalizeCodexBackendError(error) {
|
|
|
736
736
|
const text = formatDisplayMessage(error).trim();
|
|
737
737
|
const stderrText = record ? formatDisplayMessage(record.stderr).trim() : "";
|
|
738
738
|
const detailText = record ? formatDisplayMessage(record.detail).trim() : "";
|
|
739
|
-
const
|
|
739
|
+
const dataText = record ? formatDisplayMessage(record.data).trim() : "";
|
|
740
|
+
const searchableText = [text, stderrText, detailText, dataText].filter(Boolean).join("\n");
|
|
740
741
|
const prefix = typeof error === "object" && error !== null ? [
|
|
741
742
|
record?.code !== void 0 && record?.code !== null ? `[code=${String(record.code)}]` : "",
|
|
742
743
|
record?.status !== void 0 && record?.status !== null ? `[status=${String(record.status)}]` : ""
|
|
@@ -749,6 +750,9 @@ function normalizeCodexBackendError(error) {
|
|
|
749
750
|
const hint = "The configured Codex ACP command does not speak the ACP protocol. Make sure HAPPY_CODEX_ACP_BIN points to codex-acp, not the codex CLI.";
|
|
750
751
|
return prefix ? `${prefix} ${hint}` : hint;
|
|
751
752
|
}
|
|
753
|
+
if (typeof record?.message === "string" && record.message.trim().toLowerCase() === "internal error" && dataText) {
|
|
754
|
+
return prefix ? `${prefix} ${dataText}` : dataText;
|
|
755
|
+
}
|
|
752
756
|
if (error instanceof Error && text) {
|
|
753
757
|
return text;
|
|
754
758
|
}
|
|
@@ -868,6 +872,14 @@ async function codexRemoteLauncher(session) {
|
|
|
868
872
|
messageBuffer.addMessage(message, "status");
|
|
869
873
|
session.runtimeSession.sendSessionEvent({ type: "message", message });
|
|
870
874
|
};
|
|
875
|
+
const emitUserVisibleErrorMessage = (message) => {
|
|
876
|
+
emitStatusMessage(message);
|
|
877
|
+
session.runtimeSession.sendCodexMessage({
|
|
878
|
+
type: "message",
|
|
879
|
+
message,
|
|
880
|
+
id: randomUUID()
|
|
881
|
+
});
|
|
882
|
+
};
|
|
871
883
|
const queueHistoryInjectionForRestart = (reason) => {
|
|
872
884
|
messageBuffer.addMessage("\u2550".repeat(40), "status");
|
|
873
885
|
if (conversationHistory.hasHistory()) {
|
|
@@ -962,7 +974,8 @@ async function codexRemoteLauncher(session) {
|
|
|
962
974
|
type: "tool-call-result",
|
|
963
975
|
callId: msg.callId,
|
|
964
976
|
output: msg.result,
|
|
965
|
-
id: randomUUID()
|
|
977
|
+
id: randomUUID(),
|
|
978
|
+
isError
|
|
966
979
|
});
|
|
967
980
|
return;
|
|
968
981
|
}
|
|
@@ -1040,7 +1053,8 @@ async function codexRemoteLauncher(session) {
|
|
|
1040
1053
|
stderr: msg.stderr,
|
|
1041
1054
|
success: msg.success
|
|
1042
1055
|
},
|
|
1043
|
-
id: randomUUID()
|
|
1056
|
+
id: randomUUID(),
|
|
1057
|
+
isError: !msg.success
|
|
1044
1058
|
});
|
|
1045
1059
|
return;
|
|
1046
1060
|
}
|
|
@@ -1253,7 +1267,7 @@ async function codexRemoteLauncher(session) {
|
|
|
1253
1267
|
emitStatusMessage("Aborted by user");
|
|
1254
1268
|
} else {
|
|
1255
1269
|
const errorMessage = normalizeCodexBackendError(error);
|
|
1256
|
-
|
|
1270
|
+
emitUserVisibleErrorMessage(errorMessage);
|
|
1257
1271
|
if (conversationHistory.hasHistory()) {
|
|
1258
1272
|
shouldInjectHistoryOnNextSession = true;
|
|
1259
1273
|
}
|
|
@@ -1362,10 +1376,39 @@ async function syncControlledByUserState(sessionClient, controlledByUser) {
|
|
|
1362
1376
|
function shouldSupersedeCodexPendingInteractions(opts) {
|
|
1363
1377
|
return true;
|
|
1364
1378
|
}
|
|
1379
|
+
function resolveInitialCodexPermissionMode(opts) {
|
|
1380
|
+
if (opts.permissionMode) {
|
|
1381
|
+
return opts.permissionMode;
|
|
1382
|
+
}
|
|
1383
|
+
const startingMode = opts.startingMode ?? (opts.startedBy === "daemon" ? "remote" : "local");
|
|
1384
|
+
if (opts.startedBy === "daemon" && startingMode === "remote") {
|
|
1385
|
+
return "yolo";
|
|
1386
|
+
}
|
|
1387
|
+
return void 0;
|
|
1388
|
+
}
|
|
1389
|
+
function resolveQueuedCodexPermissionMode(opts) {
|
|
1390
|
+
if (opts.preserveCurrentOnDefault && opts.messagePermissionMode === "default" && opts.currentPermissionMode) {
|
|
1391
|
+
return opts.currentPermissionMode;
|
|
1392
|
+
}
|
|
1393
|
+
return opts.messagePermissionMode ?? opts.currentPermissionMode ?? "default";
|
|
1394
|
+
}
|
|
1395
|
+
function resolveIncomingCodexPermissionMode(opts) {
|
|
1396
|
+
const resolvedPermissionMode = resolveQueuedCodexPermissionMode(opts);
|
|
1397
|
+
return {
|
|
1398
|
+
resolvedPermissionMode,
|
|
1399
|
+
nextCurrentPermissionMode: resolvedPermissionMode
|
|
1400
|
+
};
|
|
1401
|
+
}
|
|
1365
1402
|
async function runCodex(opts) {
|
|
1366
1403
|
const sessionTag = randomUUID();
|
|
1367
1404
|
connectionState.setBackend("Codex");
|
|
1368
1405
|
const requestedStartingMode = opts.startingMode ?? (opts.startedBy === "daemon" ? "remote" : "local");
|
|
1406
|
+
const initialPermissionMode = resolveInitialCodexPermissionMode({
|
|
1407
|
+
permissionMode: opts.permissionMode,
|
|
1408
|
+
startedBy: opts.startedBy,
|
|
1409
|
+
startingMode: requestedStartingMode
|
|
1410
|
+
});
|
|
1411
|
+
const preserveCurrentPermissionModeForRemoteDefault = opts.startedBy === "daemon" && requestedStartingMode === "remote";
|
|
1369
1412
|
if (opts.startedBy === "daemon" && requestedStartingMode === "local") {
|
|
1370
1413
|
throw new Error("Daemon-spawned Codex sessions cannot use local mode.");
|
|
1371
1414
|
}
|
|
@@ -1420,14 +1463,20 @@ async function runCodex(opts) {
|
|
|
1420
1463
|
}
|
|
1421
1464
|
}
|
|
1422
1465
|
const messageQueue = new MessageQueue2(getCodexExecutionFingerprint);
|
|
1423
|
-
let currentPermissionMode;
|
|
1466
|
+
let currentPermissionMode = initialPermissionMode;
|
|
1424
1467
|
let currentModel;
|
|
1425
1468
|
sessionClient.onUserMessage((message) => {
|
|
1426
|
-
|
|
1469
|
+
const previousPermissionMode = currentPermissionMode;
|
|
1470
|
+
let messagePermissionMode = previousPermissionMode;
|
|
1427
1471
|
if (message.meta?.permissionMode) {
|
|
1428
1472
|
messagePermissionMode = message.meta.permissionMode;
|
|
1429
|
-
currentPermissionMode = messagePermissionMode;
|
|
1430
1473
|
}
|
|
1474
|
+
const permissionResolution = resolveIncomingCodexPermissionMode({
|
|
1475
|
+
messagePermissionMode,
|
|
1476
|
+
currentPermissionMode: previousPermissionMode,
|
|
1477
|
+
preserveCurrentOnDefault: preserveCurrentPermissionModeForRemoteDefault
|
|
1478
|
+
});
|
|
1479
|
+
currentPermissionMode = permissionResolution.nextCurrentPermissionMode;
|
|
1431
1480
|
let messageModel = currentModel;
|
|
1432
1481
|
if (message.meta?.hasOwnProperty("model")) {
|
|
1433
1482
|
messageModel = message.meta.model || void 0;
|
|
@@ -1441,7 +1490,7 @@ async function runCodex(opts) {
|
|
|
1441
1490
|
codexSession?.supersedePendingInteractions(INTERACTION_SUPERSEDED_ERROR);
|
|
1442
1491
|
}
|
|
1443
1492
|
messageQueue.push(message.content.text, {
|
|
1444
|
-
permissionMode:
|
|
1493
|
+
permissionMode: permissionResolution.resolvedPermissionMode,
|
|
1445
1494
|
model: messageModel
|
|
1446
1495
|
});
|
|
1447
1496
|
});
|
|
@@ -1475,4 +1524,4 @@ async function runCodex(opts) {
|
|
|
1475
1524
|
}
|
|
1476
1525
|
}
|
|
1477
1526
|
|
|
1478
|
-
export { runCodex, shouldSupersedeCodexPendingInteractions, supportsAgentStateUpdateEvents, syncControlledByUserState };
|
|
1527
|
+
export { resolveIncomingCodexPermissionMode, resolveInitialCodexPermissionMode, resolveQueuedCodexPermissionMode, runCodex, shouldSupersedeCodexPendingInteractions, supportsAgentStateUpdateEvents, syncControlledByUserState };
|
|
@@ -1,11 +1,11 @@
|
|
|
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, i as isAuthenticationRequiredError } from './api-
|
|
5
|
-
import { readSettings } from './persistence-
|
|
6
|
-
import { B as BasePermissionHandler, a as BaseReasoningProcessor, c as createSessionMetadata, s as setupOfflineReconnection } from './BaseReasoningProcessor-
|
|
7
|
-
import { i as initialMachineMetadata, n as notifyDaemonSessionStarted, g as getInitialGeminiModel, r as readGeminiLocalConfig, G as GEMINI_MODEL_ENV, s as saveGeminiModelToConfig, a as createGeminiBackend, b as stopCaffeinate } from './index-
|
|
8
|
-
import { M as MessageQueue2, h as hashObject, a as MessageBuffer, r as registerKillSessionHandler } from './registerKillSessionHandler-
|
|
4
|
+
import { l as logger, b as connectionState, A as ApiClient, i as isAuthenticationRequiredError } from './api-CIHTNilH.mjs';
|
|
5
|
+
import { readSettings } from './persistence-sLEqV8vk.mjs';
|
|
6
|
+
import { B as BasePermissionHandler, a as BaseReasoningProcessor, c as createSessionMetadata, s as setupOfflineReconnection } from './BaseReasoningProcessor-Di1yEMMv.mjs';
|
|
7
|
+
import { i as initialMachineMetadata, n as notifyDaemonSessionStarted, g as getInitialGeminiModel, r as readGeminiLocalConfig, G as GEMINI_MODEL_ENV, s as saveGeminiModelToConfig, a as createGeminiBackend, b as stopCaffeinate } from './index-vNYxNqVZ.mjs';
|
|
8
|
+
import { M as MessageQueue2, h as hashObject, a as MessageBuffer, r as registerKillSessionHandler } from './registerKillSessionHandler-uVHqIC4h.mjs';
|
|
9
9
|
import 'axios';
|
|
10
10
|
import 'chalk';
|
|
11
11
|
import 'fs';
|
|
@@ -958,7 +958,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
958
958
|
});
|
|
959
959
|
break;
|
|
960
960
|
case "tool-result":
|
|
961
|
-
const isError = msg.result && typeof msg.result === "object" && "error" in msg.result;
|
|
961
|
+
const isError = Boolean(msg.result && typeof msg.result === "object" && "error" in msg.result);
|
|
962
962
|
const resultText = typeof msg.result === "string" ? msg.result.substring(0, 200) : JSON.stringify(msg.result).substring(0, 200);
|
|
963
963
|
const truncatedResult = resultText + (typeof msg.result === "string" && msg.result.length > 200 ? "..." : "");
|
|
964
964
|
const resultSize = typeof msg.result === "string" ? msg.result.length : JSON.stringify(msg.result).length;
|
|
@@ -980,7 +980,8 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
980
980
|
type: "tool-result",
|
|
981
981
|
callId: msg.callId,
|
|
982
982
|
output: msg.result,
|
|
983
|
-
id: randomUUID()
|
|
983
|
+
id: randomUUID(),
|
|
984
|
+
isError
|
|
984
985
|
});
|
|
985
986
|
break;
|
|
986
987
|
case "fs-edit":
|
|
@@ -1076,7 +1077,8 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
1076
1077
|
stderr,
|
|
1077
1078
|
success
|
|
1078
1079
|
},
|
|
1079
|
-
id: randomUUID()
|
|
1080
|
+
id: randomUUID(),
|
|
1081
|
+
isError: !success
|
|
1080
1082
|
});
|
|
1081
1083
|
break;
|
|
1082
1084
|
case "event":
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
var ink = require('ink');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var node_crypto = require('node:crypto');
|
|
6
|
-
var api = require('./api-
|
|
7
|
-
var persistence = require('./persistence-
|
|
8
|
-
var BaseReasoningProcessor = require('./BaseReasoningProcessor-
|
|
9
|
-
var index = require('./index-
|
|
10
|
-
var registerKillSessionHandler = require('./registerKillSessionHandler-
|
|
6
|
+
var api = require('./api-CyJG1mr6.cjs');
|
|
7
|
+
var persistence = require('./persistence-BeFVx6kI.cjs');
|
|
8
|
+
var BaseReasoningProcessor = require('./BaseReasoningProcessor-DEEfNi5Y.cjs');
|
|
9
|
+
var index = require('./index-1zlH6s7a.cjs');
|
|
10
|
+
var registerKillSessionHandler = require('./registerKillSessionHandler-CCxqGFjZ.cjs');
|
|
11
11
|
require('axios');
|
|
12
12
|
require('chalk');
|
|
13
13
|
require('fs');
|
|
@@ -960,7 +960,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
960
960
|
});
|
|
961
961
|
break;
|
|
962
962
|
case "tool-result":
|
|
963
|
-
const isError = msg.result && typeof msg.result === "object" && "error" in msg.result;
|
|
963
|
+
const isError = Boolean(msg.result && typeof msg.result === "object" && "error" in msg.result);
|
|
964
964
|
const resultText = typeof msg.result === "string" ? msg.result.substring(0, 200) : JSON.stringify(msg.result).substring(0, 200);
|
|
965
965
|
const truncatedResult = resultText + (typeof msg.result === "string" && msg.result.length > 200 ? "..." : "");
|
|
966
966
|
const resultSize = typeof msg.result === "string" ? msg.result.length : JSON.stringify(msg.result).length;
|
|
@@ -982,7 +982,8 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
982
982
|
type: "tool-result",
|
|
983
983
|
callId: msg.callId,
|
|
984
984
|
output: msg.result,
|
|
985
|
-
id: node_crypto.randomUUID()
|
|
985
|
+
id: node_crypto.randomUUID(),
|
|
986
|
+
isError
|
|
986
987
|
});
|
|
987
988
|
break;
|
|
988
989
|
case "fs-edit":
|
|
@@ -1078,7 +1079,8 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
|
|
|
1078
1079
|
stderr,
|
|
1079
1080
|
success
|
|
1080
1081
|
},
|
|
1081
|
-
id: node_crypto.randomUUID()
|
|
1082
|
+
id: node_crypto.randomUUID(),
|
|
1083
|
+
isError: !success
|
|
1082
1084
|
});
|
|
1083
1085
|
break;
|
|
1084
1086
|
case "event":
|