happy-imou-cloud 2.0.14 → 2.0.16

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 (25) hide show
  1. package/dist/{BaseReasoningProcessor-Cwhs4PwS.cjs → BaseReasoningProcessor-BqMAZlIw.cjs} +3 -3
  2. package/dist/{BaseReasoningProcessor-CB7luAdI.mjs → BaseReasoningProcessor-C04_LHjN.mjs} +3 -3
  3. package/dist/{ProviderSelectionHandler-CmDe9yDh.cjs → ProviderSelectionHandler-CO9NkAt6.cjs} +2 -2
  4. package/dist/{ProviderSelectionHandler-DnnCwXqU.mjs → ProviderSelectionHandler-DDWyn9Lo.mjs} +2 -2
  5. package/dist/{api-CaqY_2x_.cjs → api-Db1SQcP_.cjs} +2 -2
  6. package/dist/{api-Bad69WzY.mjs → api-sRF6xXi-.mjs} +2 -2
  7. package/dist/{command-D9ZaQZQN.mjs → command-WcgGTRnG.mjs} +3 -3
  8. package/dist/{command-DkVbAV9p.cjs → command-eRjSBm2C.cjs} +3 -3
  9. package/dist/{index-oxTpdQx2.cjs → index-B6ID1zDR.cjs} +11 -11
  10. package/dist/{index-naa51zV7.mjs → index-DpWeKfvS.mjs} +8 -8
  11. package/dist/index.cjs +3 -3
  12. package/dist/index.mjs +3 -3
  13. package/dist/lib.cjs +1 -1
  14. package/dist/lib.mjs +1 -1
  15. package/dist/{persistence-4BmGePWc.mjs → persistence-B89V4xY5.mjs} +1 -1
  16. package/dist/{persistence-Byr0hWCR.cjs → persistence-Btu2VPXI.cjs} +1 -1
  17. package/dist/{registerKillSessionHandler-HO4ql8g-.mjs → registerKillSessionHandler-CwmYlUfS.mjs} +3 -3
  18. package/dist/{registerKillSessionHandler-CodtiIoq.cjs → registerKillSessionHandler-eZ2TsHqx.cjs} +3 -3
  19. package/dist/{runClaude-C3UNcGqk.cjs → runClaude-C9-ylbQh.cjs} +21 -5
  20. package/dist/{runClaude-Ev-A-kLN.mjs → runClaude-kRPXCaBj.mjs} +21 -5
  21. package/dist/{runCodex-BwFOTxMW.mjs → runCodex-B1xN0wAU.mjs} +6 -6
  22. package/dist/{runCodex-CNM6wz69.cjs → runCodex-CRNBxY5f.cjs} +6 -6
  23. package/dist/{runGemini-DqfqSBsP.cjs → runGemini-BZ5hqJyl.cjs} +5 -5
  24. package/dist/{runGemini-CXctVflO.mjs → runGemini-Xn2VwS88.mjs} +5 -5
  25. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-oxTpdQx2.cjs');
4
- var api = require('./api-CaqY_2x_.cjs');
5
- var registerKillSessionHandler = require('./registerKillSessionHandler-CodtiIoq.cjs');
3
+ var index = require('./index-B6ID1zDR.cjs');
4
+ var api = require('./api-Db1SQcP_.cjs');
5
+ var registerKillSessionHandler = require('./registerKillSessionHandler-eZ2TsHqx.cjs');
6
6
  var node_events = require('node:events');
7
7
  var node_crypto = require('node:crypto');
8
8
 
@@ -1,6 +1,6 @@
1
- import { p as publishSessionRegistration } from './index-naa51zV7.mjs';
2
- import { s as startOfflineReconnection, c as configuration, i as isAuthenticationRequiredError, l as logger } from './api-Bad69WzY.mjs';
3
- import { c as createSessionMetadata } from './registerKillSessionHandler-HO4ql8g-.mjs';
1
+ import { p as publishSessionRegistration } from './index-DpWeKfvS.mjs';
2
+ import { s as startOfflineReconnection, c as configuration, i as isAuthenticationRequiredError, l as logger } from './api-sRF6xXi-.mjs';
3
+ import { c as createSessionMetadata } from './registerKillSessionHandler-CwmYlUfS.mjs';
4
4
  import { EventEmitter } from 'node:events';
5
5
  import { randomUUID } from 'node:crypto';
6
6
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var api = require('./api-CaqY_2x_.cjs');
4
- var registerKillSessionHandler = require('./registerKillSessionHandler-CodtiIoq.cjs');
3
+ var api = require('./api-Db1SQcP_.cjs');
4
+ var registerKillSessionHandler = require('./registerKillSessionHandler-eZ2TsHqx.cjs');
5
5
 
6
6
  async function runModeLoop(opts) {
7
7
  let currentMode = opts.startingMode;
@@ -1,5 +1,5 @@
1
- import { l as logger } from './api-Bad69WzY.mjs';
2
- import { g as getPendingInteractionTimeoutMs, I as INTERACTION_SUPERSEDED_ERROR, a as INTERACTION_TIMED_OUT_ERROR } from './registerKillSessionHandler-HO4ql8g-.mjs';
1
+ import { l as logger } from './api-sRF6xXi-.mjs';
2
+ import { g as getPendingInteractionTimeoutMs, I as INTERACTION_SUPERSEDED_ERROR, a as INTERACTION_TIMED_OUT_ERROR } from './registerKillSessionHandler-CwmYlUfS.mjs';
3
3
 
4
4
  async function runModeLoop(opts) {
5
5
  let currentMode = opts.startingMode;
@@ -18,7 +18,7 @@ var node_child_process = require('node:child_process');
18
18
  var expoServerSdk = require('expo-server-sdk');
19
19
 
20
20
  var name = "happy-imou-cloud";
21
- var version = "2.0.14";
21
+ var version = "2.0.16";
22
22
  var description = "hicloud - Imou 企业定制版。关键是 happy!移动端远程 AI 编程工具,支持 Claude Code、Codex 和 Gemini CLI";
23
23
  var author = "long.zhu";
24
24
  var license = "MIT";
@@ -432,7 +432,7 @@ async function listDaemonLogFiles(limit = 50) {
432
432
  return { file, path: fullPath, modified: stats.mtime };
433
433
  }).sort((a, b) => b.modified.getTime() - a.modified.getTime());
434
434
  try {
435
- const { readDaemonState } = await Promise.resolve().then(function () { return require('./persistence-Byr0hWCR.cjs'); });
435
+ const { readDaemonState } = await Promise.resolve().then(function () { return require('./persistence-Btu2VPXI.cjs'); });
436
436
  const state = await readDaemonState();
437
437
  if (!state) {
438
438
  return logs;
@@ -16,7 +16,7 @@ import { spawn } from 'node:child_process';
16
16
  import { Expo } from 'expo-server-sdk';
17
17
 
18
18
  var name = "happy-imou-cloud";
19
- var version = "2.0.14";
19
+ var version = "2.0.16";
20
20
  var description = "hicloud - Imou 企业定制版。关键是 happy!移动端远程 AI 编程工具,支持 Claude Code、Codex 和 Gemini CLI";
21
21
  var author = "long.zhu";
22
22
  var license = "MIT";
@@ -430,7 +430,7 @@ async function listDaemonLogFiles(limit = 50) {
430
430
  return { file, path: fullPath, modified: stats.mtime };
431
431
  }).sort((a, b) => b.modified.getTime() - a.modified.getTime());
432
432
  try {
433
- const { readDaemonState } = await import('./persistence-4BmGePWc.mjs');
433
+ const { readDaemonState } = await import('./persistence-B89V4xY5.mjs');
434
434
  const state = await readDaemonState();
435
435
  if (!state) {
436
436
  return logs;
@@ -1,6 +1,6 @@
1
- import { c as createDefaultRuntimeShell } from './index-naa51zV7.mjs';
1
+ import { c as createDefaultRuntimeShell } from './index-DpWeKfvS.mjs';
2
2
  import 'chalk';
3
- import './api-Bad69WzY.mjs';
3
+ import './api-sRF6xXi-.mjs';
4
4
  import 'axios';
5
5
  import 'fs';
6
6
  import 'node:fs';
@@ -16,7 +16,7 @@ import 'crypto';
16
16
  import 'path';
17
17
  import 'node:child_process';
18
18
  import 'expo-server-sdk';
19
- import './persistence-4BmGePWc.mjs';
19
+ import './persistence-B89V4xY5.mjs';
20
20
  import 'node:fs/promises';
21
21
  import 'os';
22
22
  import 'tmp';
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-oxTpdQx2.cjs');
3
+ var index = require('./index-B6ID1zDR.cjs');
4
4
  require('chalk');
5
- require('./api-CaqY_2x_.cjs');
5
+ require('./api-Db1SQcP_.cjs');
6
6
  require('axios');
7
7
  require('fs');
8
8
  require('node:fs');
@@ -18,7 +18,7 @@ require('crypto');
18
18
  require('path');
19
19
  require('node:child_process');
20
20
  require('expo-server-sdk');
21
- require('./persistence-Byr0hWCR.cjs');
21
+ require('./persistence-Btu2VPXI.cjs');
22
22
  require('node:fs/promises');
23
23
  require('os');
24
24
  require('tmp');
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var api = require('./api-CaqY_2x_.cjs');
5
- var persistence = require('./persistence-Byr0hWCR.cjs');
4
+ var api = require('./api-Db1SQcP_.cjs');
5
+ var persistence = require('./persistence-Btu2VPXI.cjs');
6
6
  var z = require('zod');
7
7
  var fs$2 = require('fs/promises');
8
8
  var os$1 = require('os');
@@ -72,7 +72,7 @@ async function openBrowser(url) {
72
72
  }
73
73
  }
74
74
 
75
- const require$1 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-oxTpdQx2.cjs', document.baseURI).href)));
75
+ const require$1 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-B6ID1zDR.cjs', document.baseURI).href)));
76
76
  const QRCode = require$1("qrcode-terminal/vendor/QRCode");
77
77
  const QRErrorCorrectLevel = require$1("qrcode-terminal/vendor/QRCode/QRErrorCorrectLevel");
78
78
  const pendingTempFiles = /* @__PURE__ */ new Set();
@@ -695,7 +695,7 @@ function setupCleanupHandlers() {
695
695
  });
696
696
  }
697
697
 
698
- const __dirname$2 = path$1.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-oxTpdQx2.cjs', document.baseURI).href))));
698
+ const __dirname$2 = path$1.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-B6ID1zDR.cjs', document.baseURI).href))));
699
699
  function projectPath() {
700
700
  const path = path$1.resolve(__dirname$2, "..");
701
701
  return path;
@@ -7474,7 +7474,7 @@ class AbortError extends Error {
7474
7474
  }
7475
7475
  }
7476
7476
 
7477
- const __filename$1 = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-oxTpdQx2.cjs', document.baseURI).href)));
7477
+ const __filename$1 = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-B6ID1zDR.cjs', document.baseURI).href)));
7478
7478
  const __dirname$1 = path.join(__filename$1, "..");
7479
7479
  function getGlobalClaudeVersion() {
7480
7480
  try {
@@ -8725,11 +8725,11 @@ var launch = /*#__PURE__*/Object.freeze({
8725
8725
 
8726
8726
  const unifiedProviderExecutors = {
8727
8727
  claude: async (opts) => {
8728
- const { runClaude } = await Promise.resolve().then(function () { return require('./runClaude-C3UNcGqk.cjs'); });
8728
+ const { runClaude } = await Promise.resolve().then(function () { return require('./runClaude-C9-ylbQh.cjs'); });
8729
8729
  await runClaude(opts.credentials, opts.claudeOptions ?? {});
8730
8730
  },
8731
8731
  codex: async (opts) => {
8732
- const { runCodex } = await Promise.resolve().then(function () { return require('./runCodex-CNM6wz69.cjs'); });
8732
+ const { runCodex } = await Promise.resolve().then(function () { return require('./runCodex-CRNBxY5f.cjs'); });
8733
8733
  await runCodex({
8734
8734
  credentials: opts.credentials,
8735
8735
  startedBy: opts.startedBy,
@@ -8738,7 +8738,7 @@ const unifiedProviderExecutors = {
8738
8738
  });
8739
8739
  },
8740
8740
  gemini: async (opts) => {
8741
- const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-DqfqSBsP.cjs'); });
8741
+ const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-BZ5hqJyl.cjs'); });
8742
8742
  await runGemini({
8743
8743
  credentials: opts.credentials,
8744
8744
  startedBy: opts.startedBy
@@ -8814,7 +8814,7 @@ function shouldRunMainClaudeFlow(opts) {
8814
8814
  return;
8815
8815
  } else if (subcommand === "runtime") {
8816
8816
  if (args[1] === "providers") {
8817
- const { renderRuntimeProviders } = await Promise.resolve().then(function () { return require('./command-DkVbAV9p.cjs'); });
8817
+ const { renderRuntimeProviders } = await Promise.resolve().then(function () { return require('./command-eRjSBm2C.cjs'); });
8818
8818
  console.log(renderRuntimeProviders());
8819
8819
  return;
8820
8820
  }
@@ -8992,8 +8992,8 @@ function shouldRunMainClaudeFlow(opts) {
8992
8992
  const projectId = args[3];
8993
8993
  try {
8994
8994
  const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return config; });
8995
- const { readCredentials: readCredentials2 } = await Promise.resolve().then(function () { return require('./persistence-Byr0hWCR.cjs'); });
8996
- const { ApiClient: ApiClient2 } = await Promise.resolve().then(function () { return require('./api-CaqY_2x_.cjs'); }).then(function (n) { return n.api; });
8995
+ const { readCredentials: readCredentials2 } = await Promise.resolve().then(function () { return require('./persistence-Btu2VPXI.cjs'); });
8996
+ const { ApiClient: ApiClient2 } = await Promise.resolve().then(function () { return require('./api-Db1SQcP_.cjs'); }).then(function (n) { return n.api; });
8997
8997
  let userEmail = void 0;
8998
8998
  try {
8999
8999
  const credentials = await readCredentials2();
@@ -1,6 +1,6 @@
1
1
  import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import chalk from 'chalk';
2
- import { l as logger, e as encodeBase64, c as configuration, h as buildAuthenticatedHeaders, S as SigningBootstrapRequiredError, j as SIGNING_BOOTSTRAP_REQUIRED_MESSAGE, k as encodeBase64Url, f as delay, m as buildClientHeaders, n as decodeBase64, H as HAPPY_CLOUD_DAEMON_PORT, p as packageJson, A as ApiClient, o as getLatestDaemonLog } from './api-Bad69WzY.mjs';
3
- import { writeCredentialsLegacy, writeCredentialsDataKey, readCredentials, readSettings, updateSettings, readDaemonState, clearDaemonState, acquireDaemonLock, writeDaemonState, releaseDaemonLock, validateProfileForAgent, getProfileEnvironmentVariables, clearCredentials, clearMachineId } from './persistence-4BmGePWc.mjs';
2
+ import { l as logger, e as encodeBase64, c as configuration, h as buildAuthenticatedHeaders, S as SigningBootstrapRequiredError, j as SIGNING_BOOTSTRAP_REQUIRED_MESSAGE, k as encodeBase64Url, f as delay, m as buildClientHeaders, n as decodeBase64, H as HAPPY_CLOUD_DAEMON_PORT, p as packageJson, A as ApiClient, o as getLatestDaemonLog } from './api-sRF6xXi-.mjs';
3
+ import { writeCredentialsLegacy, writeCredentialsDataKey, readCredentials, readSettings, updateSettings, readDaemonState, clearDaemonState, acquireDaemonLock, writeDaemonState, releaseDaemonLock, validateProfileForAgent, getProfileEnvironmentVariables, clearCredentials, clearMachineId } from './persistence-B89V4xY5.mjs';
4
4
  import { z } from 'zod';
5
5
  import fs, { writeFile as writeFile$1, rename, unlink as unlink$1 } from 'fs/promises';
6
6
  import os, { homedir } from 'os';
@@ -8703,11 +8703,11 @@ var launch = /*#__PURE__*/Object.freeze({
8703
8703
 
8704
8704
  const unifiedProviderExecutors = {
8705
8705
  claude: async (opts) => {
8706
- const { runClaude } = await import('./runClaude-Ev-A-kLN.mjs');
8706
+ const { runClaude } = await import('./runClaude-kRPXCaBj.mjs');
8707
8707
  await runClaude(opts.credentials, opts.claudeOptions ?? {});
8708
8708
  },
8709
8709
  codex: async (opts) => {
8710
- const { runCodex } = await import('./runCodex-BwFOTxMW.mjs');
8710
+ const { runCodex } = await import('./runCodex-B1xN0wAU.mjs');
8711
8711
  await runCodex({
8712
8712
  credentials: opts.credentials,
8713
8713
  startedBy: opts.startedBy,
@@ -8716,7 +8716,7 @@ const unifiedProviderExecutors = {
8716
8716
  });
8717
8717
  },
8718
8718
  gemini: async (opts) => {
8719
- const { runGemini } = await import('./runGemini-CXctVflO.mjs');
8719
+ const { runGemini } = await import('./runGemini-Xn2VwS88.mjs');
8720
8720
  await runGemini({
8721
8721
  credentials: opts.credentials,
8722
8722
  startedBy: opts.startedBy
@@ -8792,7 +8792,7 @@ function shouldRunMainClaudeFlow(opts) {
8792
8792
  return;
8793
8793
  } else if (subcommand === "runtime") {
8794
8794
  if (args[1] === "providers") {
8795
- const { renderRuntimeProviders } = await import('./command-D9ZaQZQN.mjs');
8795
+ const { renderRuntimeProviders } = await import('./command-WcgGTRnG.mjs');
8796
8796
  console.log(renderRuntimeProviders());
8797
8797
  return;
8798
8798
  }
@@ -8970,8 +8970,8 @@ function shouldRunMainClaudeFlow(opts) {
8970
8970
  const projectId = args[3];
8971
8971
  try {
8972
8972
  const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return config; });
8973
- const { readCredentials: readCredentials2 } = await import('./persistence-4BmGePWc.mjs');
8974
- const { ApiClient: ApiClient2 } = await import('./api-Bad69WzY.mjs').then(function (n) { return n.q; });
8973
+ const { readCredentials: readCredentials2 } = await import('./persistence-B89V4xY5.mjs');
8974
+ const { ApiClient: ApiClient2 } = await import('./api-sRF6xXi-.mjs').then(function (n) { return n.q; });
8975
8975
  let userEmail = void 0;
8976
8976
  try {
8977
8977
  const credentials = await readCredentials2();
package/dist/index.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  require('chalk');
4
- require('./api-CaqY_2x_.cjs');
5
- require('./persistence-Byr0hWCR.cjs');
4
+ require('./api-Db1SQcP_.cjs');
5
+ require('./persistence-Btu2VPXI.cjs');
6
6
  require('zod');
7
- require('./index-oxTpdQx2.cjs');
7
+ require('./index-B6ID1zDR.cjs');
8
8
  require('node:child_process');
9
9
  require('node:fs');
10
10
  require('cross-spawn');
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  import 'chalk';
2
- import './api-Bad69WzY.mjs';
3
- import './persistence-4BmGePWc.mjs';
2
+ import './api-sRF6xXi-.mjs';
3
+ import './persistence-B89V4xY5.mjs';
4
4
  import 'zod';
5
- import './index-naa51zV7.mjs';
5
+ import './index-DpWeKfvS.mjs';
6
6
  import 'node:child_process';
7
7
  import 'node:fs';
8
8
  import 'cross-spawn';
package/dist/lib.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var api = require('./api-CaqY_2x_.cjs');
3
+ var api = require('./api-Db1SQcP_.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-Bad69WzY.mjs';
1
+ export { A as ApiClient, a as ApiSessionClient, c as configuration, l as logger } from './api-sRF6xXi-.mjs';
2
2
  export { R as RawJSONLinesSchema } from './types-CiliQpqS.mjs';
3
3
  import 'axios';
4
4
  import 'chalk';
@@ -1,7 +1,7 @@
1
1
  import { unlink, readFile, mkdir, open, stat, writeFile, rename } from 'node:fs/promises';
2
2
  import { existsSync, unlinkSync, readdirSync, constants, writeFileSync, readFileSync } from 'node:fs';
3
3
  import { join, dirname } from 'node:path';
4
- import { c as configuration, l as logger, e as encodeBase64 } from './api-Bad69WzY.mjs';
4
+ import { c as configuration, l as logger, e as encodeBase64 } from './api-sRF6xXi-.mjs';
5
5
  import * as z from 'zod';
6
6
  import 'axios';
7
7
  import 'chalk';
@@ -3,7 +3,7 @@
3
3
  var promises = require('node:fs/promises');
4
4
  var fs = require('node:fs');
5
5
  var path = require('node:path');
6
- var api = require('./api-CaqY_2x_.cjs');
6
+ var api = require('./api-Db1SQcP_.cjs');
7
7
  var z = require('zod');
8
8
  require('axios');
9
9
  require('chalk');
@@ -1,8 +1,8 @@
1
- import { i as initialMachineMetadata, e as projectPath, R as RuntimeShell, h as resolveCanonicalToolNameV2, f as formatDisplayMessage } from './index-naa51zV7.mjs';
2
- import { readSettings } from './persistence-4BmGePWc.mjs';
1
+ import { i as initialMachineMetadata, e as projectPath, R as RuntimeShell, h as resolveCanonicalToolNameV2, f as formatDisplayMessage } from './index-DpWeKfvS.mjs';
2
+ import { readSettings } from './persistence-B89V4xY5.mjs';
3
3
  import os from 'node:os';
4
4
  import { resolve } from 'node:path';
5
- import { c as configuration, p as packageJson, l as logger } from './api-Bad69WzY.mjs';
5
+ import { c as configuration, p as packageJson, l as logger } from './api-sRF6xXi-.mjs';
6
6
  import { randomUUID } from 'node:crypto';
7
7
  import { createHash } from 'crypto';
8
8
  import 'axios';
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-oxTpdQx2.cjs');
4
- var persistence = require('./persistence-Byr0hWCR.cjs');
3
+ var index = require('./index-B6ID1zDR.cjs');
4
+ var persistence = require('./persistence-Btu2VPXI.cjs');
5
5
  var os = require('node:os');
6
6
  var path = require('node:path');
7
- var api = require('./api-CaqY_2x_.cjs');
7
+ var api = require('./api-Db1SQcP_.cjs');
8
8
  var node_crypto = require('node:crypto');
9
9
  var crypto = require('crypto');
10
10
  require('axios');
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var node_crypto = require('node:crypto');
4
- var api = require('./api-CaqY_2x_.cjs');
4
+ var api = require('./api-Db1SQcP_.cjs');
5
5
  require('cross-spawn');
6
6
  require('@agentclientprotocol/sdk');
7
- var index = require('./index-oxTpdQx2.cjs');
7
+ var index = require('./index-B6ID1zDR.cjs');
8
8
  require('ps-list');
9
9
  require('fs');
10
10
  require('path');
@@ -15,7 +15,7 @@ var path = require('node:path');
15
15
  var os = require('node:os');
16
16
  var node_child_process = require('node:child_process');
17
17
  require('node:readline');
18
- require('./persistence-Byr0hWCR.cjs');
18
+ require('./persistence-Btu2VPXI.cjs');
19
19
  var promises = require('node:fs/promises');
20
20
  var fs = require('fs/promises');
21
21
  require('crypto');
@@ -26,9 +26,9 @@ require('tweetnacl');
26
26
  require('open');
27
27
  var React = require('react');
28
28
  var ink = require('ink');
29
- var ProviderSelectionHandler = require('./ProviderSelectionHandler-CmDe9yDh.cjs');
29
+ var ProviderSelectionHandler = require('./ProviderSelectionHandler-CO9NkAt6.cjs');
30
30
  var types = require('./types-DVk3crez.cjs');
31
- var registerKillSessionHandler = require('./registerKillSessionHandler-CodtiIoq.cjs');
31
+ var registerKillSessionHandler = require('./registerKillSessionHandler-eZ2TsHqx.cjs');
32
32
  require('socket.io-client');
33
33
  require('expo-server-sdk');
34
34
  var node_util = require('node:util');
@@ -988,6 +988,7 @@ function normalizeClaudeBackendError(error) {
988
988
  const searchable = [text, stderrText, detailText].filter(Boolean).join("\n").trim();
989
989
  return searchable || "Claude ACP backend exited unexpectedly";
990
990
  }
991
+ const CLAUDE_ACP_LEGACY_FINAL_MESSAGE_SHADOW = "claude-acp-final-message-shadow";
991
992
  async function claudeAcpRemoteLauncher(session) {
992
993
  const hasTTY = process.stdout.isTTY && process.stdin.isTTY;
993
994
  const messageBuffer = new registerKillSessionHandler.MessageBuffer({ enabled: hasTTY });
@@ -1059,6 +1060,21 @@ async function claudeAcpRemoteLauncher(session) {
1059
1060
  type: "message",
1060
1061
  message: finalMessage
1061
1062
  });
1063
+ session.client.sendClaudeSessionMessage({
1064
+ type: "assistant",
1065
+ uuid: node_crypto.randomUUID(),
1066
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
1067
+ sessionId: session.sessionId ?? void 0,
1068
+ happyCompatibilityShadow: CLAUDE_ACP_LEGACY_FINAL_MESSAGE_SHADOW,
1069
+ message: {
1070
+ role: "assistant",
1071
+ content: [{
1072
+ type: "text",
1073
+ text: finalMessage,
1074
+ happyCompatibilityShadow: CLAUDE_ACP_LEGACY_FINAL_MESSAGE_SHADOW
1075
+ }]
1076
+ }
1077
+ });
1062
1078
  accumulatedResponse = "";
1063
1079
  isResponseInProgress = false;
1064
1080
  };
@@ -1,8 +1,8 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { l as logger, d as backoff, f as delay, g as AsyncLock, c as configuration, s as startOfflineReconnection, b as connectionState, A as ApiClient, i as isAuthenticationRequiredError } from './api-Bad69WzY.mjs';
2
+ import { l as logger, d as backoff, f as delay, g as AsyncLock, c as configuration, s as startOfflineReconnection, b as connectionState, A as ApiClient, i as isAuthenticationRequiredError } from './api-sRF6xXi-.mjs';
3
3
  import 'cross-spawn';
4
4
  import '@agentclientprotocol/sdk';
5
- import { j as getProjectPath, F as Future, k as claudeLocal, E as ExitCodeError, l as trimIdent, m as createClaudeBackend, f as formatDisplayMessage, t as truncateDisplayMessage, n as claudeCheckSession, e as projectPath, o as mapToClaudeMode, P as PushableAsyncIterable, q as query, A as AbortError, b as stopCaffeinate, p as publishSessionRegistration, u as getEnvironmentInfo, w as startCaffeinate } from './index-naa51zV7.mjs';
5
+ import { j as getProjectPath, F as Future, k as claudeLocal, E as ExitCodeError, l as trimIdent, m as createClaudeBackend, f as formatDisplayMessage, t as truncateDisplayMessage, n as claudeCheckSession, e as projectPath, o as mapToClaudeMode, P as PushableAsyncIterable, q as query, A as AbortError, b as stopCaffeinate, p as publishSessionRegistration, u as getEnvironmentInfo, w as startCaffeinate } from './index-DpWeKfvS.mjs';
6
6
  import 'ps-list';
7
7
  import 'fs';
8
8
  import 'path';
@@ -13,7 +13,7 @@ import { dirname, basename, join, resolve } from 'node:path';
13
13
  import { homedir } from 'node:os';
14
14
  import { execSync } from 'node:child_process';
15
15
  import 'node:readline';
16
- import './persistence-4BmGePWc.mjs';
16
+ import './persistence-B89V4xY5.mjs';
17
17
  import { readFile } from 'node:fs/promises';
18
18
  import { stat, watch, access } from 'fs/promises';
19
19
  import 'crypto';
@@ -24,9 +24,9 @@ import 'tweetnacl';
24
24
  import 'open';
25
25
  import React, { useState, useRef, useEffect, useCallback } from 'react';
26
26
  import { useStdout, useInput, Box, Text, render } from 'ink';
27
- import { c as createKeepAliveController, P as ProviderSelectionHandler, r as runModeLoop } from './ProviderSelectionHandler-DnnCwXqU.mjs';
27
+ import { c as createKeepAliveController, P as ProviderSelectionHandler, r as runModeLoop } from './ProviderSelectionHandler-DDWyn9Lo.mjs';
28
28
  import { R as RawJSONLinesSchema } from './types-CiliQpqS.mjs';
29
- import { B as BasePermissionHandler, d as MessageBuffer, C as ConversationHistory$1, w as waitForResponseCompleteWithAbort, l as launchRuntimeHandleWithFactoryResult, j as forwardAgentMessageToProviderSession, s as syncControlledByUserState, e as ensureManagedProviderMachine, M as MissingMachineIdError, c as createSessionMetadata, b as MessageQueue2, h as hashObject, r as registerKillSessionHandler, f as closeProviderSession } from './registerKillSessionHandler-HO4ql8g-.mjs';
29
+ import { B as BasePermissionHandler, d as MessageBuffer, C as ConversationHistory$1, w as waitForResponseCompleteWithAbort, l as launchRuntimeHandleWithFactoryResult, j as forwardAgentMessageToProviderSession, s as syncControlledByUserState, e as ensureManagedProviderMachine, M as MissingMachineIdError, c as createSessionMetadata, b as MessageQueue2, h as hashObject, r as registerKillSessionHandler, f as closeProviderSession } from './registerKillSessionHandler-CwmYlUfS.mjs';
30
30
  import 'socket.io-client';
31
31
  import 'expo-server-sdk';
32
32
  import { isDeepStrictEqual } from 'node:util';
@@ -986,6 +986,7 @@ function normalizeClaudeBackendError(error) {
986
986
  const searchable = [text, stderrText, detailText].filter(Boolean).join("\n").trim();
987
987
  return searchable || "Claude ACP backend exited unexpectedly";
988
988
  }
989
+ const CLAUDE_ACP_LEGACY_FINAL_MESSAGE_SHADOW = "claude-acp-final-message-shadow";
989
990
  async function claudeAcpRemoteLauncher(session) {
990
991
  const hasTTY = process.stdout.isTTY && process.stdin.isTTY;
991
992
  const messageBuffer = new MessageBuffer({ enabled: hasTTY });
@@ -1057,6 +1058,21 @@ async function claudeAcpRemoteLauncher(session) {
1057
1058
  type: "message",
1058
1059
  message: finalMessage
1059
1060
  });
1061
+ session.client.sendClaudeSessionMessage({
1062
+ type: "assistant",
1063
+ uuid: randomUUID(),
1064
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
1065
+ sessionId: session.sessionId ?? void 0,
1066
+ happyCompatibilityShadow: CLAUDE_ACP_LEGACY_FINAL_MESSAGE_SHADOW,
1067
+ message: {
1068
+ role: "assistant",
1069
+ content: [{
1070
+ type: "text",
1071
+ text: finalMessage,
1072
+ happyCompatibilityShadow: CLAUDE_ACP_LEGACY_FINAL_MESSAGE_SHADOW
1073
+ }]
1074
+ }
1075
+ });
1060
1076
  accumulatedResponse = "";
1061
1077
  isResponseInProgress = false;
1062
1078
  };
@@ -1,7 +1,7 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { l as logger, b as connectionState, A as ApiClient } from './api-Bad69WzY.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-HO4ql8g-.mjs';
4
- import { f as formatDisplayMessage, v as validateCodexAcpSpawn, d as createCodexBackend, t as truncateDisplayMessage, b as stopCaffeinate } from './index-naa51zV7.mjs';
2
+ import { l as logger, b as connectionState, A as ApiClient } from './api-sRF6xXi-.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-CwmYlUfS.mjs';
4
+ import { f as formatDisplayMessage, v as validateCodexAcpSpawn, d as createCodexBackend, t as truncateDisplayMessage, b as stopCaffeinate } from './index-DpWeKfvS.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-4BmGePWc.mjs';
17
+ import './persistence-B89V4xY5.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, r as runModeLoop } from './ProviderSelectionHandler-DnnCwXqU.mjs';
29
- import { B as BaseReasoningProcessor, b as bootstrapManagedProviderSession } from './BaseReasoningProcessor-CB7luAdI.mjs';
28
+ import { c as createKeepAliveController, P as ProviderSelectionHandler, r as runModeLoop } from './ProviderSelectionHandler-DDWyn9Lo.mjs';
29
+ import { B as BaseReasoningProcessor, b as bootstrapManagedProviderSession } from './BaseReasoningProcessor-C04_LHjN.mjs';
30
30
  import 'socket.io-client';
31
31
  import 'zod';
32
32
  import 'expo-server-sdk';
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var node_crypto = require('node:crypto');
4
- var api = require('./api-CaqY_2x_.cjs');
5
- var registerKillSessionHandler = require('./registerKillSessionHandler-CodtiIoq.cjs');
6
- var index = require('./index-oxTpdQx2.cjs');
4
+ var api = require('./api-Db1SQcP_.cjs');
5
+ var registerKillSessionHandler = require('./registerKillSessionHandler-eZ2TsHqx.cjs');
6
+ var index = require('./index-B6ID1zDR.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-Byr0hWCR.cjs');
19
+ require('./persistence-Btu2VPXI.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-CmDe9yDh.cjs');
31
- var BaseReasoningProcessor = require('./BaseReasoningProcessor-Cwhs4PwS.cjs');
30
+ var ProviderSelectionHandler = require('./ProviderSelectionHandler-CO9NkAt6.cjs');
31
+ var BaseReasoningProcessor = require('./BaseReasoningProcessor-BqMAZlIw.cjs');
32
32
  require('socket.io-client');
33
33
  require('zod');
34
34
  require('expo-server-sdk');
@@ -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 api = require('./api-CaqY_2x_.cjs');
7
- var registerKillSessionHandler = require('./registerKillSessionHandler-CodtiIoq.cjs');
8
- var index = require('./index-oxTpdQx2.cjs');
9
- var BaseReasoningProcessor = require('./BaseReasoningProcessor-Cwhs4PwS.cjs');
6
+ var api = require('./api-Db1SQcP_.cjs');
7
+ var registerKillSessionHandler = require('./registerKillSessionHandler-eZ2TsHqx.cjs');
8
+ var index = require('./index-B6ID1zDR.cjs');
9
+ var BaseReasoningProcessor = require('./BaseReasoningProcessor-BqMAZlIw.cjs');
10
10
  require('cross-spawn');
11
11
  require('@agentclientprotocol/sdk');
12
12
  require('ps-list');
@@ -17,7 +17,7 @@ require('node:child_process');
17
17
  require('node:readline');
18
18
  require('tweetnacl');
19
19
  require('axios');
20
- require('./persistence-Byr0hWCR.cjs');
20
+ require('./persistence-Btu2VPXI.cjs');
21
21
  require('open');
22
22
  require('chalk');
23
23
  require('fs');
@@ -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-Bad69WzY.mjs';
5
- import { B as BasePermissionHandler, C as ConversationHistory$1, e as ensureManagedProviderMachine, M as MissingMachineIdError, s as syncControlledByUserState, b as MessageQueue2, h as hashObject, d as MessageBuffer, r as registerKillSessionHandler, w as waitForResponseCompleteWithAbort, f as closeProviderSession, l as launchRuntimeHandleWithFactoryResult, i as inferToolResultError, j as forwardAgentMessageToProviderSession } from './registerKillSessionHandler-HO4ql8g-.mjs';
6
- import { g as getInitialGeminiModel, r as readGeminiLocalConfig, G as GEMINI_MODEL_ENV, s as saveGeminiModelToConfig, a as createGeminiBackend, b as stopCaffeinate } from './index-naa51zV7.mjs';
7
- import { B as BaseReasoningProcessor, b as bootstrapManagedProviderSession } from './BaseReasoningProcessor-CB7luAdI.mjs';
4
+ import { l as logger, b as connectionState, A as ApiClient } from './api-sRF6xXi-.mjs';
5
+ import { B as BasePermissionHandler, C as ConversationHistory$1, e as ensureManagedProviderMachine, M as MissingMachineIdError, s as syncControlledByUserState, b as MessageQueue2, h as hashObject, d as MessageBuffer, r as registerKillSessionHandler, w as waitForResponseCompleteWithAbort, f as closeProviderSession, l as launchRuntimeHandleWithFactoryResult, i as inferToolResultError, j as forwardAgentMessageToProviderSession } from './registerKillSessionHandler-CwmYlUfS.mjs';
6
+ import { g as getInitialGeminiModel, r as readGeminiLocalConfig, G as GEMINI_MODEL_ENV, s as saveGeminiModelToConfig, a as createGeminiBackend, b as stopCaffeinate } from './index-DpWeKfvS.mjs';
7
+ import { B as BaseReasoningProcessor, b as bootstrapManagedProviderSession } from './BaseReasoningProcessor-C04_LHjN.mjs';
8
8
  import 'cross-spawn';
9
9
  import '@agentclientprotocol/sdk';
10
10
  import 'ps-list';
@@ -15,7 +15,7 @@ import 'node:child_process';
15
15
  import 'node:readline';
16
16
  import 'tweetnacl';
17
17
  import 'axios';
18
- import './persistence-4BmGePWc.mjs';
18
+ import './persistence-B89V4xY5.mjs';
19
19
  import 'open';
20
20
  import 'chalk';
21
21
  import 'fs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-imou-cloud",
3
- "version": "2.0.14",
3
+ "version": "2.0.16",
4
4
  "description": "hicloud - Imou 企业定制版。关键是 happy!移动端远程 AI 编程工具,支持 Claude Code、Codex 和 Gemini CLI",
5
5
  "author": "long.zhu",
6
6
  "license": "MIT",