happy-imou-cloud 2.0.13 → 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 (30) hide show
  1. package/dist/BaseReasoningProcessor-BqMAZlIw.cjs +323 -0
  2. package/dist/BaseReasoningProcessor-C04_LHjN.mjs +320 -0
  3. package/dist/ProviderSelectionHandler-CO9NkAt6.cjs +265 -0
  4. package/dist/ProviderSelectionHandler-DDWyn9Lo.mjs +261 -0
  5. package/dist/{api-DH5-IqeM.cjs → api-Db1SQcP_.cjs} +2 -2
  6. package/dist/{api-D1meoL-9.mjs → api-sRF6xXi-.mjs} +2 -2
  7. package/dist/{command-CMvWClny.mjs → command-WcgGTRnG.mjs} +4 -3
  8. package/dist/{command-Ch8Dgidj.cjs → command-eRjSBm2C.cjs} +4 -3
  9. package/dist/{index-CryJfCh5.cjs → index-B6ID1zDR.cjs} +1106 -50
  10. package/dist/{index-Cxrx9m5D.mjs → index-DpWeKfvS.mjs} +1102 -50
  11. package/dist/index.cjs +5 -4
  12. package/dist/index.mjs +5 -4
  13. package/dist/lib.cjs +1 -1
  14. package/dist/lib.mjs +1 -1
  15. package/dist/{persistence-9Iu0wGNM.mjs → persistence-B89V4xY5.mjs} +1 -1
  16. package/dist/{persistence-Bl3FYvwd.cjs → persistence-Btu2VPXI.cjs} +1 -1
  17. package/dist/{registerKillSessionHandler-BElGmD1E.mjs → registerKillSessionHandler-CwmYlUfS.mjs} +541 -5
  18. package/dist/{registerKillSessionHandler-BjkY-oUn.cjs → registerKillSessionHandler-eZ2TsHqx.cjs} +549 -4
  19. package/dist/{runClaude-CDZxAF3l.cjs → runClaude-C9-ylbQh.cjs} +599 -747
  20. package/dist/{runClaude-D7dF4RDM.mjs → runClaude-kRPXCaBj.mjs} +591 -738
  21. package/dist/{runCodex-DnGz1XES.mjs → runCodex-B1xN0wAU.mjs} +9 -215
  22. package/dist/{runCodex-Cik8VzFs.cjs → runCodex-CRNBxY5f.cjs} +20 -226
  23. package/dist/{runGemini-BM2BQ4I7.cjs → runGemini-BZ5hqJyl.cjs} +16 -15
  24. package/dist/{runGemini-B8tXMHeL.mjs → runGemini-Xn2VwS88.mjs} +8 -7
  25. package/package.json +1 -1
  26. package/scripts/release-smoke.mjs +6 -5
  27. package/dist/ConversationHistory-V3VLmjJf.cjs +0 -868
  28. package/dist/ConversationHistory-_ciJNIgH.mjs +0 -856
  29. package/dist/createKeepAliveController-C5cQlDRr.mjs +0 -51
  30. package/dist/createKeepAliveController-DO8H6d5E.cjs +0 -54
@@ -3,24 +3,25 @@
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-DH5-IqeM.cjs');
7
- var registerKillSessionHandler = require('./registerKillSessionHandler-BjkY-oUn.cjs');
8
- var index = require('./index-CryJfCh5.cjs');
9
- var ConversationHistory$1 = require('./ConversationHistory-V3VLmjJf.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');
13
13
  require('node:fs');
14
14
  require('node:path');
15
15
  require('node:os');
16
+ require('node:child_process');
17
+ require('node:readline');
16
18
  require('tweetnacl');
17
19
  require('axios');
18
- require('./persistence-Bl3FYvwd.cjs');
20
+ require('./persistence-Btu2VPXI.cjs');
19
21
  require('open');
20
22
  require('chalk');
21
23
  require('fs');
22
24
  require('path');
23
- require('node:child_process');
24
25
  require('child_process');
25
26
  require('node:events');
26
27
  require('socket.io-client');
@@ -37,9 +38,9 @@ require('node:module');
37
38
  require('url');
38
39
  require('fastify');
39
40
  require('fastify-type-provider-zod');
40
- require('node:readline');
41
41
  require('http');
42
42
  require('util');
43
+ require('node:url');
43
44
 
44
45
  const GeminiDisplay = ({ messageBuffer, logPath, currentModel, onExit }) => {
45
46
  const [messages, setMessages] = React.useState([]);
@@ -184,7 +185,7 @@ const GeminiDisplay = ({ messageBuffer, logPath, currentModel, onExit }) => {
184
185
  ));
185
186
  };
186
187
 
187
- class GeminiPermissionHandler extends ConversationHistory$1.BasePermissionHandler {
188
+ class GeminiPermissionHandler extends registerKillSessionHandler.BasePermissionHandler {
188
189
  currentPermissionMode = "default";
189
190
  constructor(session) {
190
191
  super(session);
@@ -269,7 +270,7 @@ class GeminiPermissionHandler extends ConversationHistory$1.BasePermissionHandle
269
270
  }
270
271
  }
271
272
 
272
- class GeminiReasoningProcessor extends ConversationHistory$1.BaseReasoningProcessor {
273
+ class GeminiReasoningProcessor extends BaseReasoningProcessor.BaseReasoningProcessor {
273
274
  getToolName() {
274
275
  return "GeminiReasoning";
275
276
  }
@@ -421,7 +422,7 @@ function formatOptionsXml(options) {
421
422
  return "\n<options>\n" + options.map((opt) => ` <option>${opt}</option>`).join("\n") + "\n</options>";
422
423
  }
423
424
 
424
- class ConversationHistory extends ConversationHistory$1.ConversationHistory {
425
+ class ConversationHistory extends registerKillSessionHandler.ConversationHistory {
425
426
  currentModel;
426
427
  setCurrentModel(model) {
427
428
  this.currentModel = model;
@@ -488,7 +489,7 @@ async function runGemini(opts) {
488
489
  pendingSessionSwap = null;
489
490
  }
490
491
  };
491
- const { metadata, session: initialSession, reconnectionHandle } = await ConversationHistory$1.bootstrapManagedProviderSession({
492
+ const { metadata, session: initialSession, reconnectionHandle } = await BaseReasoningProcessor.bootstrapManagedProviderSession({
492
493
  api: api$1,
493
494
  sessionTag,
494
495
  flavor: "gemini",
@@ -731,7 +732,7 @@ async function runGemini(opts) {
731
732
  };
732
733
  function setupGeminiMessageHandler(activeRuntimeHandle) {
733
734
  const forwardAgentMessage = (agentMessage) => {
734
- ConversationHistory$1.forwardAgentMessageToProviderSession(agentMessage, {
735
+ registerKillSessionHandler.forwardAgentMessageToProviderSession(agentMessage, {
735
736
  provider: "gemini",
736
737
  send: (body) => session.sendAgentMessage("gemini", body)
737
738
  });
@@ -815,7 +816,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
815
816
  forwardAgentMessage(msg);
816
817
  break;
817
818
  case "tool-result":
818
- const isError = ConversationHistory$1.inferToolResultError(msg.result);
819
+ const isError = registerKillSessionHandler.inferToolResultError(msg.result);
819
820
  const resultText = typeof msg.result === "string" ? msg.result.substring(0, 200) : JSON.stringify(msg.result).substring(0, 200);
820
821
  const truncatedResult = resultText + (typeof msg.result === "string" && msg.result.length > 200 ? "..." : "");
821
822
  const resultSize = typeof msg.result === "string" ? msg.result.length : JSON.stringify(msg.result).length;
@@ -906,7 +907,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
906
907
  const modelToUse = mode.model === void 0 ? void 0 : mode.model || null;
907
908
  let backendResult;
908
909
  updatePermissionMode(mode.permissionMode);
909
- const { session: nextRuntimeHandle, factoryResult } = await ConversationHistory$1.launchRuntimeHandleWithFactoryResult({
910
+ const { session: nextRuntimeHandle, factoryResult } = await registerKillSessionHandler.launchRuntimeHandleWithFactoryResult({
910
911
  provider: "gemini",
911
912
  cwd: process.cwd(),
912
913
  createBackendResult: (opts2) => {
@@ -1021,7 +1022,7 @@ Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca`;
1021
1022
  try {
1022
1023
  await activeHandle.sendPrompt(promptToSend);
1023
1024
  api.logger.debug("[gemini] Prompt sent successfully");
1024
- await ConversationHistory$1.waitForResponseCompleteWithAbort(activeHandle.backend, abortController.signal, 12e4);
1025
+ await registerKillSessionHandler.waitForResponseCompleteWithAbort(activeHandle.backend, abortController.signal, 12e4);
1025
1026
  api.logger.debug("[gemini] Response complete");
1026
1027
  break;
1027
1028
  } catch (promptError) {
@@ -1,24 +1,25 @@
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-D1meoL-9.mjs';
5
- import { e as ensureManagedProviderMachine, M as MissingMachineIdError, s as syncControlledByUserState, a as MessageQueue2, h as hashObject, b as MessageBuffer, r as registerKillSessionHandler, c as closeProviderSession } from './registerKillSessionHandler-BElGmD1E.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-Cxrx9m5D.mjs';
7
- import { B as BasePermissionHandler, a as BaseReasoningProcessor, C as ConversationHistory$1, b as bootstrapManagedProviderSession, w as waitForResponseCompleteWithAbort, l as launchRuntimeHandleWithFactoryResult, i as inferToolResultError, f as forwardAgentMessageToProviderSession } from './ConversationHistory-_ciJNIgH.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';
11
11
  import 'node:fs';
12
12
  import 'node:path';
13
13
  import 'node:os';
14
+ import 'node:child_process';
15
+ import 'node:readline';
14
16
  import 'tweetnacl';
15
17
  import 'axios';
16
- import './persistence-9Iu0wGNM.mjs';
18
+ import './persistence-B89V4xY5.mjs';
17
19
  import 'open';
18
20
  import 'chalk';
19
21
  import 'fs';
20
22
  import 'path';
21
- import 'node:child_process';
22
23
  import 'child_process';
23
24
  import 'node:events';
24
25
  import 'socket.io-client';
@@ -35,9 +36,9 @@ import 'node:module';
35
36
  import 'url';
36
37
  import 'fastify';
37
38
  import 'fastify-type-provider-zod';
38
- import 'node:readline';
39
39
  import 'http';
40
40
  import 'util';
41
+ import 'node:url';
41
42
 
42
43
  const GeminiDisplay = ({ messageBuffer, logPath, currentModel, onExit }) => {
43
44
  const [messages, setMessages] = useState([]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-imou-cloud",
3
- "version": "2.0.13",
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",
@@ -185,11 +185,12 @@ function main() {
185
185
  'src/runtime/createKeepAliveController.test.ts',
186
186
  'src/runtime/sessionControl.test.ts',
187
187
  'src/runtime/closeProviderSession.test.ts',
188
- 'src/runtime/waitForResponseCompleteWithAbort.test.ts',
189
- 'src/utils/ConversationHistory.test.ts',
190
- 'src/runtime/RuntimeShell.test.ts',
191
- 'src/runtime/createDefaultRuntimeShell.test.ts',
192
- 'src/claude/loop.test.ts',
188
+ 'src/runtime/waitForResponseCompleteWithAbort.test.ts',
189
+ 'src/utils/ConversationHistory.test.ts',
190
+ 'src/runtime/RuntimeShell.test.ts',
191
+ 'src/runtime/createDefaultRuntimeShell.test.ts',
192
+ 'src/agent/claude/ClaudeCodeBackend.test.ts',
193
+ 'src/claude/loop.test.ts',
193
194
  'src/claude/claudeAcpRemoteLauncher.test.ts',
194
195
  'src/claude/utils/acpPermissionHandler.test.ts',
195
196
  'src/codex/__tests__/runCodex.lifecycle.test.ts',