happy-imou-cloud 2.0.3 → 2.0.5

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 (23) hide show
  1. package/dist/{BaseReasoningProcessor-_wxlqKB8.cjs → BaseReasoningProcessor-DPVZIJ4n.cjs} +2 -2
  2. package/dist/{BaseReasoningProcessor-B37yOHxo.mjs → BaseReasoningProcessor-bFVTvf3Q.mjs} +2 -2
  3. package/dist/{api-D9dIR956.cjs → api-DaqnNHfl.cjs} +4 -2
  4. package/dist/{api-DpQIC-DJ.mjs → api-DoHt-HyL.mjs} +4 -2
  5. package/dist/{command-CdXv1zNF.cjs → command-D9-hmqVq.cjs} +3 -3
  6. package/dist/{command-DRqrBuHM.mjs → command-Dl9SrMnv.mjs} +3 -3
  7. package/dist/{index-CriPm_z9.mjs → index-C5wR2qKT.mjs} +359 -70
  8. package/dist/{index-LYPXVO_L.cjs → index-Dc92gnxM.cjs} +361 -72
  9. package/dist/index.cjs +3 -3
  10. package/dist/index.mjs +3 -3
  11. package/dist/lib.cjs +1 -1
  12. package/dist/lib.mjs +1 -1
  13. package/dist/{persistence-PzKU0QCa.cjs → persistence-D6Y0604_.cjs} +1 -1
  14. package/dist/{persistence-CqgPgbzN.mjs → persistence-QqeBvUxX.mjs} +1 -1
  15. package/dist/{registerKillSessionHandler-BDBPoQSA.cjs → registerKillSessionHandler-C6yXr8ky.cjs} +2 -2
  16. package/dist/{registerKillSessionHandler-C3M_-4Zg.mjs → registerKillSessionHandler-CC9zGBPE.mjs} +2 -2
  17. package/dist/{runClaude-D6Pdkevn.mjs → runClaude-CZ8gxaJL.mjs} +4 -4
  18. package/dist/{runClaude-IeRSC5qX.cjs → runClaude-gHKFB1UG.cjs} +5 -5
  19. package/dist/{runCodex-WRmgSK6L.cjs → runCodex-CdjzG1N7.cjs} +113 -25
  20. package/dist/{runCodex-CsfUU1Wb.mjs → runCodex-DT7g4MPm.mjs} +111 -26
  21. package/dist/{runGemini-CrH3dQ0Y.mjs → runGemini-CmY5386l.mjs} +55 -21
  22. package/dist/{runGemini-qBh6zs5G.cjs → runGemini-DxjvRmOc.cjs} +55 -21
  23. package/package.json +2 -1
package/dist/index.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  require('chalk');
4
- require('./api-D9dIR956.cjs');
5
- require('./persistence-PzKU0QCa.cjs');
4
+ require('./api-DaqnNHfl.cjs');
5
+ require('./persistence-D6Y0604_.cjs');
6
6
  require('zod');
7
- require('./index-LYPXVO_L.cjs');
7
+ require('./index-Dc92gnxM.cjs');
8
8
  require('node:child_process');
9
9
  require('node:fs');
10
10
  require('@agentclientprotocol/sdk');
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  import 'chalk';
2
- import './api-DpQIC-DJ.mjs';
3
- import './persistence-CqgPgbzN.mjs';
2
+ import './api-DoHt-HyL.mjs';
3
+ import './persistence-QqeBvUxX.mjs';
4
4
  import 'zod';
5
- import './index-CriPm_z9.mjs';
5
+ import './index-C5wR2qKT.mjs';
6
6
  import 'node:child_process';
7
7
  import 'node:fs';
8
8
  import '@agentclientprotocol/sdk';
package/dist/lib.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var api = require('./api-D9dIR956.cjs');
3
+ var api = require('./api-DaqnNHfl.cjs');
4
4
  var types = require('./types-DVk3crez.cjs');
5
5
  require('axios');
6
6
  require('chalk');
package/dist/lib.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { A as ApiClient, a as ApiSessionClient, c as configuration, l as logger } from './api-DpQIC-DJ.mjs';
1
+ export { A as ApiClient, a as ApiSessionClient, c as configuration, l as logger } from './api-DoHt-HyL.mjs';
2
2
  export { R as RawJSONLinesSchema } from './types-CiliQpqS.mjs';
3
3
  import 'axios';
4
4
  import 'chalk';
@@ -3,7 +3,7 @@
3
3
  var promises = require('node:fs/promises');
4
4
  var node_fs = require('node:fs');
5
5
  var node_path = require('node:path');
6
- var api = require('./api-D9dIR956.cjs');
6
+ var api = require('./api-DaqnNHfl.cjs');
7
7
  var z = require('zod');
8
8
  require('axios');
9
9
  require('chalk');
@@ -1,7 +1,7 @@
1
1
  import { readFile, unlink, mkdir, open, stat, writeFile, rename } from 'node:fs/promises';
2
2
  import { existsSync, unlinkSync, writeFileSync, readdirSync, readFileSync, constants } from 'node:fs';
3
3
  import { join, dirname } from 'node:path';
4
- import { c as configuration, l as logger, e as encodeBase64 } from './api-DpQIC-DJ.mjs';
4
+ import { c as configuration, l as logger, e as encodeBase64 } from './api-DoHt-HyL.mjs';
5
5
  import * as z from 'zod';
6
6
  import 'axios';
7
7
  import 'chalk';
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-LYPXVO_L.cjs');
4
- var api = require('./api-D9dIR956.cjs');
3
+ var index = require('./index-Dc92gnxM.cjs');
4
+ var api = require('./api-DaqnNHfl.cjs');
5
5
  var crypto = require('crypto');
6
6
  require('axios');
7
7
  require('node:events');
@@ -1,5 +1,5 @@
1
- import { f as formatDisplayMessage } from './index-CriPm_z9.mjs';
2
- import { l as logger } from './api-DpQIC-DJ.mjs';
1
+ import { f as formatDisplayMessage } from './index-C5wR2qKT.mjs';
2
+ import { l as logger } from './api-DoHt-HyL.mjs';
3
3
  import { createHash } from 'crypto';
4
4
  import 'axios';
5
5
  import 'node:events';
@@ -1,13 +1,13 @@
1
1
  import os, { homedir } from 'node:os';
2
2
  import { randomUUID } from 'node:crypto';
3
- import { l as logger, d as backoff, f as delay, g as AsyncLock, c as configuration, b as connectionState, A as ApiClient, p as packageJson, i as isAuthenticationRequiredError, s as startOfflineReconnection } from './api-DpQIC-DJ.mjs';
4
- import { e as getProjectPath, h as claudeLocal, E as ExitCodeError, j as isBun, k as trimIdent, l as claudeCheckSession, p as projectPath, m as getEnvironmentInfo, i as initialMachineMetadata, b as stopCaffeinate, n as notifyDaemonSessionStarted, o as startCaffeinate } from './index-CriPm_z9.mjs';
3
+ import { l as logger, d as backoff, f as delay, g as AsyncLock, c as configuration, b as connectionState, A as ApiClient, p as packageJson, i as isAuthenticationRequiredError, s as startOfflineReconnection } from './api-DoHt-HyL.mjs';
4
+ import { e as getProjectPath, h as claudeLocal, E as ExitCodeError, j as isBun, k as trimIdent, l as claudeCheckSession, p as projectPath, m as getEnvironmentInfo, i as initialMachineMetadata, b as stopCaffeinate, n as notifyDaemonSessionStarted, o as startCaffeinate } from './index-C5wR2qKT.mjs';
5
5
  import { R as RawJSONLinesSchema } from './types-CiliQpqS.mjs';
6
6
  import { dirname, basename, join, resolve } from 'node:path';
7
7
  import { readFile } from 'node:fs/promises';
8
8
  import { stat, watch, access } from 'fs/promises';
9
9
  import { useStdout, useInput, Box, Text, render } from 'ink';
10
- import { a as MessageBuffer, M as MessageQueue2, h as hashObject, r as registerKillSessionHandler } from './registerKillSessionHandler-C3M_-4Zg.mjs';
10
+ import { a as MessageBuffer, M as MessageQueue2, h as hashObject, r as registerKillSessionHandler } from './registerKillSessionHandler-CC9zGBPE.mjs';
11
11
  import React, { useState, useRef, useEffect, useCallback } from 'react';
12
12
  import { execSync, spawn } from 'node:child_process';
13
13
  import { createInterface } from 'node:readline';
@@ -20,7 +20,7 @@ import 'tweetnacl';
20
20
  import 'expo-server-sdk';
21
21
  import 'chalk';
22
22
  import { isDeepStrictEqual } from 'node:util';
23
- import { readSettings } from './persistence-CqgPgbzN.mjs';
23
+ import { readSettings } from './persistence-QqeBvUxX.mjs';
24
24
  import { createServer } from 'node:http';
25
25
  import 'fs';
26
26
  import 'zod';
@@ -2,14 +2,14 @@
2
2
 
3
3
  var os = require('node:os');
4
4
  var node_crypto = require('node:crypto');
5
- var api = require('./api-D9dIR956.cjs');
6
- var index = require('./index-LYPXVO_L.cjs');
5
+ var api = require('./api-DaqnNHfl.cjs');
6
+ var index = require('./index-Dc92gnxM.cjs');
7
7
  var types = require('./types-DVk3crez.cjs');
8
8
  var node_path = require('node:path');
9
9
  var promises = require('node:fs/promises');
10
10
  var fs = require('fs/promises');
11
11
  var ink = require('ink');
12
- var registerKillSessionHandler = require('./registerKillSessionHandler-BDBPoQSA.cjs');
12
+ var registerKillSessionHandler = require('./registerKillSessionHandler-C6yXr8ky.cjs');
13
13
  var React = require('react');
14
14
  var node_child_process = require('node:child_process');
15
15
  var node_readline = require('node:readline');
@@ -22,7 +22,7 @@ require('tweetnacl');
22
22
  require('expo-server-sdk');
23
23
  require('chalk');
24
24
  var node_util = require('node:util');
25
- var persistence = require('./persistence-PzKU0QCa.cjs');
25
+ var persistence = require('./persistence-D6Y0604_.cjs');
26
26
  var node_http = require('node:http');
27
27
  require('fs');
28
28
  require('zod');
@@ -937,7 +937,7 @@ class AbortError extends Error {
937
937
  }
938
938
  }
939
939
 
940
- const __filename$1 = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('runClaude-IeRSC5qX.cjs', document.baseURI).href)));
940
+ const __filename$1 = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('runClaude-gHKFB1UG.cjs', document.baseURI).href)));
941
941
  const __dirname$1 = node_path.join(__filename$1, "..");
942
942
  function getGlobalClaudeVersion() {
943
943
  try {
@@ -1,13 +1,14 @@
1
1
  'use strict';
2
2
 
3
3
  var node_crypto = require('node:crypto');
4
- var api = require('./api-D9dIR956.cjs');
5
- var persistence = require('./persistence-PzKU0QCa.cjs');
6
- var index = require('./index-LYPXVO_L.cjs');
7
- var BaseReasoningProcessor = require('./BaseReasoningProcessor-_wxlqKB8.cjs');
8
- var registerKillSessionHandler = require('./registerKillSessionHandler-BDBPoQSA.cjs');
4
+ var api = require('./api-DaqnNHfl.cjs');
5
+ var persistence = require('./persistence-D6Y0604_.cjs');
6
+ var index = require('./index-Dc92gnxM.cjs');
7
+ var BaseReasoningProcessor = require('./BaseReasoningProcessor-DPVZIJ4n.cjs');
8
+ var registerKillSessionHandler = require('./registerKillSessionHandler-C6yXr8ky.cjs');
9
9
  var React = require('react');
10
10
  var ink = require('ink');
11
+ var happyProtocol = require('happy-protocol');
11
12
  require('axios');
12
13
  require('chalk');
13
14
  require('fs');
@@ -738,7 +739,8 @@ function normalizeCodexBackendError(error) {
738
739
  const text = index.formatDisplayMessage(error).trim();
739
740
  const stderrText = record ? index.formatDisplayMessage(record.stderr).trim() : "";
740
741
  const detailText = record ? index.formatDisplayMessage(record.detail).trim() : "";
741
- const searchableText = [text, stderrText, detailText].filter(Boolean).join("\n");
742
+ const dataText = record ? index.formatDisplayMessage(record.data).trim() : "";
743
+ const searchableText = [text, stderrText, detailText, dataText].filter(Boolean).join("\n");
742
744
  const prefix = typeof error === "object" && error !== null ? [
743
745
  record?.code !== void 0 && record?.code !== null ? `[code=${String(record.code)}]` : "",
744
746
  record?.status !== void 0 && record?.status !== null ? `[status=${String(record.status)}]` : ""
@@ -751,6 +753,9 @@ function normalizeCodexBackendError(error) {
751
753
  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
754
  return prefix ? `${prefix} ${hint}` : hint;
753
755
  }
756
+ if (typeof record?.message === "string" && record.message.trim().toLowerCase() === "internal error" && dataText) {
757
+ return prefix ? `${prefix} ${dataText}` : dataText;
758
+ }
754
759
  if (error instanceof Error && text) {
755
760
  return text;
756
761
  }
@@ -870,6 +875,14 @@ async function codexRemoteLauncher(session) {
870
875
  messageBuffer.addMessage(message, "status");
871
876
  session.runtimeSession.sendSessionEvent({ type: "message", message });
872
877
  };
878
+ const emitUserVisibleErrorMessage = (message) => {
879
+ emitStatusMessage(message);
880
+ session.runtimeSession.sendCodexMessage({
881
+ type: "message",
882
+ message,
883
+ id: node_crypto.randomUUID()
884
+ });
885
+ };
873
886
  const queueHistoryInjectionForRestart = (reason) => {
874
887
  messageBuffer.addMessage("\u2550".repeat(40), "status");
875
888
  if (conversationHistory.hasHistory()) {
@@ -940,21 +953,28 @@ async function codexRemoteLauncher(session) {
940
953
  }
941
954
  case "tool-call": {
942
955
  const toolArgs = msg.args ? index.truncateDisplayMessage(msg.args, 100) : "";
956
+ const canonicalToolName = happyProtocol.resolveCanonicalToolNameV2(msg.toolName);
943
957
  messageBuffer.addMessage(
944
958
  `Executing: ${msg.toolName}${toolArgs ? ` ${toolArgs}` : ""}`,
945
959
  "tool"
946
960
  );
947
961
  session.runtimeSession.sendCodexMessage({
948
962
  type: "tool-call",
949
- name: msg.toolName,
963
+ name: canonicalToolName,
950
964
  callId: msg.callId,
951
- input: msg.args,
965
+ input: happyProtocol.attachToolHappierMetaV2(msg.args, {
966
+ v: 2,
967
+ protocol: "acp",
968
+ provider: "codex",
969
+ rawToolName: msg.toolName,
970
+ canonicalToolName
971
+ }),
952
972
  id: node_crypto.randomUUID()
953
973
  });
954
974
  return;
955
975
  }
956
976
  case "tool-result": {
957
- const isError = msg.result && typeof msg.result === "object" && "error" in msg.result;
977
+ const isError = happyProtocol.inferToolResultError(msg.result);
958
978
  const resultText = index.truncateDisplayMessage(msg.result, 200) || (isError ? "Unknown error" : "");
959
979
  messageBuffer.addMessage(
960
980
  `${isError ? "Error:" : "Result:"} ${resultText}`.trim(),
@@ -963,8 +983,15 @@ async function codexRemoteLauncher(session) {
963
983
  session.runtimeSession.sendCodexMessage({
964
984
  type: "tool-call-result",
965
985
  callId: msg.callId,
966
- output: msg.result,
967
- id: node_crypto.randomUUID()
986
+ output: happyProtocol.attachToolHappierMetaV2(msg.result, {
987
+ v: 2,
988
+ protocol: "acp",
989
+ provider: "codex",
990
+ rawToolName: msg.toolName,
991
+ canonicalToolName: happyProtocol.resolveCanonicalToolNameV2(msg.toolName)
992
+ }),
993
+ id: node_crypto.randomUUID(),
994
+ isError
968
995
  });
969
996
  return;
970
997
  }
@@ -985,7 +1012,7 @@ async function codexRemoteLauncher(session) {
985
1012
  session.runtimeSession.sendCodexMessage({
986
1013
  type: "terminal-output",
987
1014
  data: terminalOutput,
988
- callId: node_crypto.randomUUID()
1015
+ callId: msg.callId ?? node_crypto.randomUUID()
989
1016
  });
990
1017
  return;
991
1018
  }
@@ -1003,11 +1030,19 @@ async function codexRemoteLauncher(session) {
1003
1030
  case "exec-approval-request": {
1004
1031
  const { call_id, type, ...inputs } = msg;
1005
1032
  messageBuffer.addMessage(`Exec approval requested: ${call_id}`, "tool");
1033
+ const rawToolName = "CodexBash";
1034
+ const canonicalToolName = happyProtocol.resolveCanonicalToolNameV2(rawToolName);
1006
1035
  session.runtimeSession.sendCodexMessage({
1007
1036
  type: "tool-call",
1008
- name: "CodexBash",
1037
+ name: canonicalToolName,
1009
1038
  callId: call_id,
1010
- input: inputs,
1039
+ input: happyProtocol.attachToolHappierMetaV2(inputs, {
1040
+ v: 2,
1041
+ protocol: "acp",
1042
+ provider: "codex",
1043
+ rawToolName,
1044
+ canonicalToolName
1045
+ }),
1011
1046
  id: node_crypto.randomUUID()
1012
1047
  });
1013
1048
  return;
@@ -1016,14 +1051,22 @@ async function codexRemoteLauncher(session) {
1016
1051
  const changeCount = Object.keys(msg.changes || {}).length;
1017
1052
  const filesMsg = changeCount === 1 ? "1 file" : `${changeCount} files`;
1018
1053
  messageBuffer.addMessage(`Modifying ${filesMsg}...`, "tool");
1054
+ const rawToolName = "CodexPatch";
1055
+ const canonicalToolName = happyProtocol.resolveCanonicalToolNameV2(rawToolName);
1019
1056
  session.runtimeSession.sendCodexMessage({
1020
1057
  type: "tool-call",
1021
- name: "CodexPatch",
1058
+ name: canonicalToolName,
1022
1059
  callId: msg.call_id,
1023
- input: {
1060
+ input: happyProtocol.attachToolHappierMetaV2({
1024
1061
  auto_approved: msg.auto_approved,
1025
1062
  changes: msg.changes
1026
- },
1063
+ }, {
1064
+ v: 2,
1065
+ protocol: "acp",
1066
+ provider: "codex",
1067
+ rawToolName,
1068
+ canonicalToolName
1069
+ }),
1027
1070
  id: node_crypto.randomUUID()
1028
1071
  });
1029
1072
  return;
@@ -1037,12 +1080,19 @@ async function codexRemoteLauncher(session) {
1037
1080
  session.runtimeSession.sendCodexMessage({
1038
1081
  type: "tool-call-result",
1039
1082
  callId: msg.call_id,
1040
- output: {
1083
+ output: happyProtocol.attachToolHappierMetaV2({
1041
1084
  stdout: msg.stdout,
1042
1085
  stderr: msg.stderr,
1043
1086
  success: msg.success
1044
- },
1045
- id: node_crypto.randomUUID()
1087
+ }, {
1088
+ v: 2,
1089
+ protocol: "acp",
1090
+ provider: "codex",
1091
+ rawToolName: "CodexPatch",
1092
+ canonicalToolName: happyProtocol.resolveCanonicalToolNameV2("CodexPatch")
1093
+ }),
1094
+ id: node_crypto.randomUUID(),
1095
+ isError: !msg.success
1046
1096
  });
1047
1097
  return;
1048
1098
  }
@@ -1255,7 +1305,7 @@ async function codexRemoteLauncher(session) {
1255
1305
  emitStatusMessage("Aborted by user");
1256
1306
  } else {
1257
1307
  const errorMessage = normalizeCodexBackendError(error);
1258
- emitStatusMessage(errorMessage);
1308
+ emitUserVisibleErrorMessage(errorMessage);
1259
1309
  if (conversationHistory.hasHistory()) {
1260
1310
  shouldInjectHistoryOnNextSession = true;
1261
1311
  }
@@ -1364,10 +1414,39 @@ async function syncControlledByUserState(sessionClient, controlledByUser) {
1364
1414
  function shouldSupersedeCodexPendingInteractions(opts) {
1365
1415
  return true;
1366
1416
  }
1417
+ function resolveInitialCodexPermissionMode(opts) {
1418
+ if (opts.permissionMode) {
1419
+ return opts.permissionMode;
1420
+ }
1421
+ const startingMode = opts.startingMode ?? (opts.startedBy === "daemon" ? "remote" : "local");
1422
+ if (opts.startedBy === "daemon" && startingMode === "remote") {
1423
+ return "yolo";
1424
+ }
1425
+ return void 0;
1426
+ }
1427
+ function resolveQueuedCodexPermissionMode(opts) {
1428
+ if (opts.preserveCurrentOnDefault && opts.messagePermissionMode === "default" && opts.currentPermissionMode) {
1429
+ return opts.currentPermissionMode;
1430
+ }
1431
+ return opts.messagePermissionMode ?? opts.currentPermissionMode ?? "default";
1432
+ }
1433
+ function resolveIncomingCodexPermissionMode(opts) {
1434
+ const resolvedPermissionMode = resolveQueuedCodexPermissionMode(opts);
1435
+ return {
1436
+ resolvedPermissionMode,
1437
+ nextCurrentPermissionMode: resolvedPermissionMode
1438
+ };
1439
+ }
1367
1440
  async function runCodex(opts) {
1368
1441
  const sessionTag = node_crypto.randomUUID();
1369
1442
  api.connectionState.setBackend("Codex");
1370
1443
  const requestedStartingMode = opts.startingMode ?? (opts.startedBy === "daemon" ? "remote" : "local");
1444
+ const initialPermissionMode = resolveInitialCodexPermissionMode({
1445
+ permissionMode: opts.permissionMode,
1446
+ startedBy: opts.startedBy,
1447
+ startingMode: requestedStartingMode
1448
+ });
1449
+ const preserveCurrentPermissionModeForRemoteDefault = opts.startedBy === "daemon" && requestedStartingMode === "remote";
1371
1450
  if (opts.startedBy === "daemon" && requestedStartingMode === "local") {
1372
1451
  throw new Error("Daemon-spawned Codex sessions cannot use local mode.");
1373
1452
  }
@@ -1422,14 +1501,20 @@ async function runCodex(opts) {
1422
1501
  }
1423
1502
  }
1424
1503
  const messageQueue = new registerKillSessionHandler.MessageQueue2(getCodexExecutionFingerprint);
1425
- let currentPermissionMode;
1504
+ let currentPermissionMode = initialPermissionMode;
1426
1505
  let currentModel;
1427
1506
  sessionClient.onUserMessage((message) => {
1428
- let messagePermissionMode = currentPermissionMode;
1507
+ const previousPermissionMode = currentPermissionMode;
1508
+ let messagePermissionMode = previousPermissionMode;
1429
1509
  if (message.meta?.permissionMode) {
1430
1510
  messagePermissionMode = message.meta.permissionMode;
1431
- currentPermissionMode = messagePermissionMode;
1432
1511
  }
1512
+ const permissionResolution = resolveIncomingCodexPermissionMode({
1513
+ messagePermissionMode,
1514
+ currentPermissionMode: previousPermissionMode,
1515
+ preserveCurrentOnDefault: preserveCurrentPermissionModeForRemoteDefault
1516
+ });
1517
+ currentPermissionMode = permissionResolution.nextCurrentPermissionMode;
1433
1518
  let messageModel = currentModel;
1434
1519
  if (message.meta?.hasOwnProperty("model")) {
1435
1520
  messageModel = message.meta.model || void 0;
@@ -1443,7 +1528,7 @@ async function runCodex(opts) {
1443
1528
  codexSession?.supersedePendingInteractions(BaseReasoningProcessor.INTERACTION_SUPERSEDED_ERROR);
1444
1529
  }
1445
1530
  messageQueue.push(message.content.text, {
1446
- permissionMode: messagePermissionMode || "default",
1531
+ permissionMode: permissionResolution.resolvedPermissionMode,
1447
1532
  model: messageModel
1448
1533
  });
1449
1534
  });
@@ -1477,6 +1562,9 @@ async function runCodex(opts) {
1477
1562
  }
1478
1563
  }
1479
1564
 
1565
+ exports.resolveIncomingCodexPermissionMode = resolveIncomingCodexPermissionMode;
1566
+ exports.resolveInitialCodexPermissionMode = resolveInitialCodexPermissionMode;
1567
+ exports.resolveQueuedCodexPermissionMode = resolveQueuedCodexPermissionMode;
1480
1568
  exports.runCodex = runCodex;
1481
1569
  exports.shouldSupersedeCodexPendingInteractions = shouldSupersedeCodexPendingInteractions;
1482
1570
  exports.supportsAgentStateUpdateEvents = supportsAgentStateUpdateEvents;