happy-imou-cloud 2.1.52 → 2.1.53
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/{AcpBackend-DtxGBKiz.cjs → AcpBackend-B3s99ivd.cjs} +3 -3
- package/dist/{AcpBackend-3-XDjrku.mjs → AcpBackend-Dephumdg.mjs} +3 -3
- package/dist/{BaseReasoningProcessor-GrsmssbV.mjs → BaseReasoningProcessor-D0lBynU3.mjs} +1 -1
- package/dist/{BaseReasoningProcessor-CAQB14n9.cjs → BaseReasoningProcessor-DgyEX2ex.cjs} +1 -1
- package/dist/{ConversationHistory-DblMPp5X.cjs → ConversationHistory-DYF60lvE.cjs} +3 -3
- package/dist/{ConversationHistory-BtPGSkJU.mjs → ConversationHistory-Dr1H-t58.mjs} +3 -3
- package/dist/{ProviderSelectionHandler-DrWMeahq.cjs → ProviderSelectionHandler-BsIj6tUM.cjs} +2 -2
- package/dist/{ProviderSelectionHandler-AbhoRyth.mjs → ProviderSelectionHandler-oIejggTi.mjs} +2 -2
- package/dist/{RuntimeShell-DCeyYzOs.cjs → RuntimeShell-CoXntnel.cjs} +2 -2
- package/dist/{RuntimeShell-BbEINPUC.mjs → RuntimeShell-DZhi4Zhd.mjs} +2 -2
- package/dist/{bootstrapManagedProviderSession-BM1PDHRS.cjs → bootstrapManagedProviderSession-DuPoeGsz.cjs} +2 -2
- package/dist/{bootstrapManagedProviderSession-pAWC0cg8.mjs → bootstrapManagedProviderSession-HezKZOHo.mjs} +2 -2
- package/dist/{claude-Cd1EV34h.cjs → claude-DJ98mF1g.cjs} +3 -3
- package/dist/{claude-CwRWUUVR.mjs → claude-Dm0RQqLD.mjs} +3 -3
- package/dist/{codex-suiruFqm.cjs → codex-CGoezd1l.cjs} +4 -4
- package/dist/{codex-B0MiKtqc.mjs → codex-CjtUx7la.mjs} +4 -4
- package/dist/{command-BNdy9kbh.mjs → command-CX3Ijure.mjs} +8 -8
- package/dist/{command-DD7nnM4r.cjs → command-DAb1FNFD.cjs} +8 -8
- package/dist/{config-BuQStBK_.cjs → config-D9ppiOqF.cjs} +1 -1
- package/dist/{config-C9Yb905M.mjs → config-DsOkKwwg.mjs} +1 -1
- package/dist/{createDefaultRuntimeShell-BM2lyPQ4.mjs → createDefaultRuntimeShell-BJdgPwWt.mjs} +6 -6
- package/dist/{createDefaultRuntimeShell-DQlet_Es.cjs → createDefaultRuntimeShell-Dt2klFXx.cjs} +6 -6
- package/dist/{cursor-Cf87RaxN.mjs → cursor-BxWThmbf.mjs} +4 -4
- package/dist/{cursor-D4eQeadD.cjs → cursor-DOu6sau_.cjs} +4 -4
- package/dist/{index-CxPxEDeE.mjs → index-B_Cm6MhB.mjs} +11 -11
- package/dist/{index-Ca00OSY5.cjs → index-Cd7d2BMe.cjs} +14 -14
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{installFatalProcessHandlers-CwVyatD4.cjs → installFatalProcessHandlers-CNnOiioM.cjs} +1 -1
- package/dist/{installFatalProcessHandlers-DG1QZYHP.mjs → installFatalProcessHandlers-DeJFoOCl.mjs} +1 -1
- package/dist/{launch-Cj9fXgj3.mjs → launch-CTC8E1YI.mjs} +8 -8
- package/dist/{launch-BZfxJTsA.cjs → launch-CVYm-vTg.cjs} +8 -8
- package/dist/lib.cjs +1 -1
- package/dist/lib.d.cts +8 -1
- package/dist/lib.d.mts +8 -1
- package/dist/lib.mjs +1 -1
- package/dist/{runClaude-CqqJipYj.mjs → runClaude-BB-5Su2y.mjs} +29 -37
- package/dist/{runClaude-vRuF9RZV.cjs → runClaude-DbiPMUS4.cjs} +29 -37
- package/dist/{runCodex-BuENvdll.mjs → runCodex-BAWWDwBE.mjs} +49 -34
- package/dist/{runCodex-D61xJnYS.cjs → runCodex-CIZFYkTI.cjs} +49 -34
- package/dist/{runCursor-BuIUSR5U.mjs → runCursor-DJgPZ-11.mjs} +17 -28
- package/dist/{runCursor-avWVar8f.cjs → runCursor-GR8a5T-H.cjs} +17 -28
- package/dist/{runGemini-DPeGLZXt.mjs → runGemini-CwKyhP0O.mjs} +23 -34
- package/dist/{runGemini-Dkmy1MA6.cjs → runGemini-yWXF4JBe.cjs} +23 -34
- package/dist/{sessionControl-DoQKVLbo.cjs → sessionControl-BM3380c0.cjs} +122 -3
- package/dist/{sessionControl-BmmjRdC4.mjs → sessionControl-D8sHsOfs.mjs} +122 -4
- package/dist/{types-CwpYbO-W.cjs → types-Be833t7e.cjs} +82 -11
- package/dist/{types-DleyDaIf.mjs → types-CDuesyX_.mjs} +83 -12
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { c as createDefaultRuntimeShell } from './createDefaultRuntimeShell-
|
|
1
|
+
import { c as createDefaultRuntimeShell } from './createDefaultRuntimeShell-BJdgPwWt.mjs';
|
|
2
2
|
import 'cross-spawn';
|
|
3
3
|
import '@agentclientprotocol/sdk';
|
|
4
4
|
import 'node:crypto';
|
|
5
|
-
import './types-
|
|
5
|
+
import './types-CDuesyX_.mjs';
|
|
6
6
|
import 'axios';
|
|
7
7
|
import 'chalk';
|
|
8
8
|
import 'fs';
|
|
@@ -19,7 +19,7 @@ import 'crypto';
|
|
|
19
19
|
import 'path';
|
|
20
20
|
import 'node:child_process';
|
|
21
21
|
import 'expo-server-sdk';
|
|
22
|
-
import './index-
|
|
22
|
+
import './index-B_Cm6MhB.mjs';
|
|
23
23
|
import 'os';
|
|
24
24
|
import 'qrcode-terminal';
|
|
25
25
|
import 'node:module';
|
|
@@ -35,13 +35,13 @@ import 'node:readline';
|
|
|
35
35
|
import 'http';
|
|
36
36
|
import 'util';
|
|
37
37
|
import 'node:url';
|
|
38
|
-
import './codex-
|
|
39
|
-
import './AcpBackend-
|
|
40
|
-
import './RuntimeShell-
|
|
38
|
+
import './codex-CjtUx7la.mjs';
|
|
39
|
+
import './AcpBackend-Dephumdg.mjs';
|
|
40
|
+
import './RuntimeShell-DZhi4Zhd.mjs';
|
|
41
41
|
import './resolveCommand-B3BGyBE2.mjs';
|
|
42
|
-
import './claude-
|
|
42
|
+
import './claude-Dm0RQqLD.mjs';
|
|
43
43
|
import './future-xRdLl3vf.mjs';
|
|
44
|
-
import './cursor-
|
|
44
|
+
import './cursor-BxWThmbf.mjs';
|
|
45
45
|
|
|
46
46
|
function isRuntimeProvider(value) {
|
|
47
47
|
return value === "claude" || value === "codex" || value === "cursor";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var createDefaultRuntimeShell = require('./createDefaultRuntimeShell-
|
|
3
|
+
var createDefaultRuntimeShell = require('./createDefaultRuntimeShell-Dt2klFXx.cjs');
|
|
4
4
|
require('cross-spawn');
|
|
5
5
|
require('@agentclientprotocol/sdk');
|
|
6
6
|
require('node:crypto');
|
|
7
|
-
require('./types-
|
|
7
|
+
require('./types-Be833t7e.cjs');
|
|
8
8
|
require('axios');
|
|
9
9
|
require('chalk');
|
|
10
10
|
require('fs');
|
|
@@ -21,7 +21,7 @@ require('crypto');
|
|
|
21
21
|
require('path');
|
|
22
22
|
require('node:child_process');
|
|
23
23
|
require('expo-server-sdk');
|
|
24
|
-
require('./index-
|
|
24
|
+
require('./index-Cd7d2BMe.cjs');
|
|
25
25
|
require('os');
|
|
26
26
|
require('qrcode-terminal');
|
|
27
27
|
require('node:module');
|
|
@@ -37,13 +37,13 @@ require('node:readline');
|
|
|
37
37
|
require('http');
|
|
38
38
|
require('util');
|
|
39
39
|
require('node:url');
|
|
40
|
-
require('./codex-
|
|
41
|
-
require('./AcpBackend-
|
|
42
|
-
require('./RuntimeShell-
|
|
40
|
+
require('./codex-CGoezd1l.cjs');
|
|
41
|
+
require('./AcpBackend-B3s99ivd.cjs');
|
|
42
|
+
require('./RuntimeShell-CoXntnel.cjs');
|
|
43
43
|
require('./resolveCommand-DYMd9PNC.cjs');
|
|
44
|
-
require('./claude-
|
|
44
|
+
require('./claude-DJ98mF1g.cjs');
|
|
45
45
|
require('./future-Dq4Ha1Dn.cjs');
|
|
46
|
-
require('./cursor-
|
|
46
|
+
require('./cursor-DOu6sau_.cjs');
|
|
47
47
|
|
|
48
48
|
function isRuntimeProvider(value) {
|
|
49
49
|
return value === "claude" || value === "codex" || value === "cursor";
|
package/dist/lib.cjs
CHANGED
package/dist/lib.d.cts
CHANGED
|
@@ -3855,6 +3855,11 @@ interface ProtocolV3SessionSyncOptions {
|
|
|
3855
3855
|
snapshotLimit?: number;
|
|
3856
3856
|
changesLimit?: number;
|
|
3857
3857
|
}
|
|
3858
|
+
type MetadataUpdateDurability = 'durable' | 'snapshot-only';
|
|
3859
|
+
interface UpdateMetadataOptions {
|
|
3860
|
+
durability?: MetadataUpdateDurability;
|
|
3861
|
+
requireCapability?: boolean;
|
|
3862
|
+
}
|
|
3858
3863
|
declare class ApiSessionClient extends EventEmitter {
|
|
3859
3864
|
private credentials;
|
|
3860
3865
|
readonly sessionId: string;
|
|
@@ -3950,7 +3955,7 @@ declare class ApiSessionClient extends EventEmitter {
|
|
|
3950
3955
|
* Update session metadata
|
|
3951
3956
|
* @param handler - Handler function that returns the updated metadata
|
|
3952
3957
|
*/
|
|
3953
|
-
updateMetadata(handler: (metadata: Metadata) => Metadata): void;
|
|
3958
|
+
updateMetadata(handler: (metadata: Metadata) => Metadata, options?: UpdateMetadataOptions): void;
|
|
3954
3959
|
/**
|
|
3955
3960
|
* Update session agent state
|
|
3956
3961
|
* @param handler - Handler function that returns the updated agent state
|
|
@@ -3993,8 +3998,10 @@ declare class ApiSessionClient extends EventEmitter {
|
|
|
3993
3998
|
private replayBufferedLiveSessionEvent;
|
|
3994
3999
|
private bufferLiveSessionEvent;
|
|
3995
4000
|
private supportsKnownProtocolCapability;
|
|
4001
|
+
private resolveMetadataUpdateDurability;
|
|
3996
4002
|
private shouldUseCommittedSessionWriteAcks;
|
|
3997
4003
|
private emitEncryptedSessionMessage;
|
|
4004
|
+
private emitTransientSessionMessage;
|
|
3998
4005
|
private enqueueReliableSessionMessage;
|
|
3999
4006
|
private dequeueReliableSessionMessage;
|
|
4000
4007
|
private flushReliableSessionMessages;
|
package/dist/lib.d.mts
CHANGED
|
@@ -3855,6 +3855,11 @@ interface ProtocolV3SessionSyncOptions {
|
|
|
3855
3855
|
snapshotLimit?: number;
|
|
3856
3856
|
changesLimit?: number;
|
|
3857
3857
|
}
|
|
3858
|
+
type MetadataUpdateDurability = 'durable' | 'snapshot-only';
|
|
3859
|
+
interface UpdateMetadataOptions {
|
|
3860
|
+
durability?: MetadataUpdateDurability;
|
|
3861
|
+
requireCapability?: boolean;
|
|
3862
|
+
}
|
|
3858
3863
|
declare class ApiSessionClient extends EventEmitter {
|
|
3859
3864
|
private credentials;
|
|
3860
3865
|
readonly sessionId: string;
|
|
@@ -3950,7 +3955,7 @@ declare class ApiSessionClient extends EventEmitter {
|
|
|
3950
3955
|
* Update session metadata
|
|
3951
3956
|
* @param handler - Handler function that returns the updated metadata
|
|
3952
3957
|
*/
|
|
3953
|
-
updateMetadata(handler: (metadata: Metadata) => Metadata): void;
|
|
3958
|
+
updateMetadata(handler: (metadata: Metadata) => Metadata, options?: UpdateMetadataOptions): void;
|
|
3954
3959
|
/**
|
|
3955
3960
|
* Update session agent state
|
|
3956
3961
|
* @param handler - Handler function that returns the updated agent state
|
|
@@ -3993,8 +3998,10 @@ declare class ApiSessionClient extends EventEmitter {
|
|
|
3993
3998
|
private replayBufferedLiveSessionEvent;
|
|
3994
3999
|
private bufferLiveSessionEvent;
|
|
3995
4000
|
private supportsKnownProtocolCapability;
|
|
4001
|
+
private resolveMetadataUpdateDurability;
|
|
3996
4002
|
private shouldUseCommittedSessionWriteAcks;
|
|
3997
4003
|
private emitEncryptedSessionMessage;
|
|
4004
|
+
private emitTransientSessionMessage;
|
|
3998
4005
|
private enqueueReliableSessionMessage;
|
|
3999
4006
|
private dequeueReliableSessionMessage;
|
|
4000
4007
|
private flushReliableSessionMessages;
|
package/dist/lib.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema, c as configuration, l as logger } from './types-
|
|
1
|
+
export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema, c as configuration, l as logger } from './types-CDuesyX_.mjs';
|
|
2
2
|
import 'axios';
|
|
3
3
|
import 'chalk';
|
|
4
4
|
import 'fs';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
|
-
import { l as logger, o as backoff,
|
|
2
|
+
import { l as logger, o as backoff, d as delay, R as RawJSONLinesSchema, q as AsyncLock, c as configuration, s as startOfflineReconnection, b as connectionState, A as ApiClient, i as isAuthenticationRequiredError, h as hashObject } from './types-CDuesyX_.mjs';
|
|
3
3
|
import 'cross-spawn';
|
|
4
4
|
import '@agentclientprotocol/sdk';
|
|
5
|
-
import { t as getProjectPath, u as claudeLocal, E as ExitCodeError, v as trimIdent, w as claudeCheckSession, p as projectPath, s as stopCaffeinate, e as publishSessionRegistration, x as getEnvironmentInfo, d as createSessionMetadata, y as startCaffeinate, b as closeProviderSession } from './index-
|
|
5
|
+
import { t as getProjectPath, u as claudeLocal, E as ExitCodeError, v as trimIdent, w as claudeCheckSession, p as projectPath, s as stopCaffeinate, e as publishSessionRegistration, x as getEnvironmentInfo, d as createSessionMetadata, y as startCaffeinate, b as closeProviderSession } from './index-B_Cm6MhB.mjs';
|
|
6
6
|
import 'ps-list';
|
|
7
7
|
import 'fs';
|
|
8
8
|
import 'path';
|
|
@@ -23,14 +23,14 @@ import 'tweetnacl';
|
|
|
23
23
|
import 'open';
|
|
24
24
|
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
25
25
|
import { useStdout, useInput, Box, Text, render } from 'ink';
|
|
26
|
-
import { c as createKeepAliveController, P as ProviderSelectionHandler, r as runModeLoop } from './ProviderSelectionHandler-
|
|
26
|
+
import { c as createKeepAliveController, P as ProviderSelectionHandler, r as runModeLoop } from './ProviderSelectionHandler-oIejggTi.mjs';
|
|
27
27
|
import 'socket.io-client';
|
|
28
28
|
import 'expo-server-sdk';
|
|
29
29
|
import { F as Future } from './future-xRdLl3vf.mjs';
|
|
30
|
-
import { M as MessageBuffer, C as ConversationHistory$1, b as buildTurnResultPushNotification, d as createSessionTranscriptInkRenderer, a as buildReadyPushNotification, l as launchRuntimeHandleWithFactoryResult, c as buildPermissionPushNotification } from './ConversationHistory-
|
|
31
|
-
import { c as createClaudeBackend, m as mapToClaudeMode, P as PushableAsyncIterable, q as query, A as AbortError } from './claude-
|
|
32
|
-
import { B as BasePermissionHandler,
|
|
33
|
-
import { f as formatDisplayMessage, t as truncateDisplayMessage } from './RuntimeShell-
|
|
30
|
+
import { M as MessageBuffer, C as ConversationHistory$1, b as buildTurnResultPushNotification, d as createSessionTranscriptInkRenderer, a as buildReadyPushNotification, l as launchRuntimeHandleWithFactoryResult, c as buildPermissionPushNotification } from './ConversationHistory-Dr1H-t58.mjs';
|
|
31
|
+
import { c as createClaudeBackend, m as mapToClaudeMode, P as PushableAsyncIterable, q as query, A as AbortError } from './claude-Dm0RQqLD.mjs';
|
|
32
|
+
import { B as BasePermissionHandler, c as BufferedAssistantStreamEmitter, f as buildHappyOrgTurnPrompt, w as waitForResponseCompleteWithAbort, h as finalizeHappyOrgTurnWithBusinessAck, j as renderTerminalOutputPreview, p as prepareTerminalOutputForForwarding, i as forwardAgentMessageToProviderSession, s as syncControlledByUserState, d as resolveHappyOrgQueuedTurn, e as ensureManagedProviderMachine, M as MissingMachineIdError, b as MessageQueue2, r as registerKillSessionHandler } from './sessionControl-D8sHsOfs.mjs';
|
|
33
|
+
import { f as formatDisplayMessage, t as truncateDisplayMessage } from './RuntimeShell-DZhi4Zhd.mjs';
|
|
34
34
|
import { isDeepStrictEqual } from 'node:util';
|
|
35
35
|
import { createServer } from 'node:http';
|
|
36
36
|
import 'zod';
|
|
@@ -1011,7 +1011,9 @@ async function claudeAcpRemoteLauncher(session) {
|
|
|
1011
1011
|
let unexpectedRuntimeStopRecovery = null;
|
|
1012
1012
|
let readyAlreadySent = false;
|
|
1013
1013
|
let currentHappyOrgTurn = null;
|
|
1014
|
-
const
|
|
1014
|
+
const assistantMessageEmitter = new BufferedAssistantStreamEmitter({
|
|
1015
|
+
send: (payload) => session.client.sendAgentMessage("claude", payload)
|
|
1016
|
+
});
|
|
1015
1017
|
const permissionHandler = new ClaudeAcpPermissionHandler(session.client);
|
|
1016
1018
|
const selectionHandler = new ProviderSelectionHandler(session.client, "Claude");
|
|
1017
1019
|
const conversationHistory = new ConversationHistory$1({
|
|
@@ -1070,7 +1072,7 @@ async function claudeAcpRemoteLauncher(session) {
|
|
|
1070
1072
|
currentAssistantMessageId = null;
|
|
1071
1073
|
currentThinkingMessageId = null;
|
|
1072
1074
|
currentHappyOrgTurn = null;
|
|
1073
|
-
|
|
1075
|
+
assistantMessageEmitter.reset();
|
|
1074
1076
|
session.onThinkingChange(false);
|
|
1075
1077
|
};
|
|
1076
1078
|
const emitAssistantMessageDelta = (text) => {
|
|
@@ -1080,17 +1082,10 @@ async function claudeAcpRemoteLauncher(session) {
|
|
|
1080
1082
|
if (!text.trim()) {
|
|
1081
1083
|
return false;
|
|
1082
1084
|
}
|
|
1083
|
-
if (!
|
|
1085
|
+
if (!assistantMessageEmitter.hasActive()) {
|
|
1084
1086
|
currentAssistantStreamStartLength = accumulatedResponse.length - text.length;
|
|
1085
1087
|
}
|
|
1086
|
-
|
|
1087
|
-
session.client.sendAgentMessage("claude", {
|
|
1088
|
-
type: "message",
|
|
1089
|
-
message: text,
|
|
1090
|
-
id: stream.messageId,
|
|
1091
|
-
...stream
|
|
1092
|
-
});
|
|
1093
|
-
return true;
|
|
1088
|
+
return assistantMessageEmitter.pushDelta(text);
|
|
1094
1089
|
};
|
|
1095
1090
|
const emitPendingThinkingMessage = () => {
|
|
1096
1091
|
const thinking = accumulatedThinking.trim();
|
|
@@ -1109,20 +1104,22 @@ async function claudeAcpRemoteLauncher(session) {
|
|
|
1109
1104
|
if (!finalMessage) {
|
|
1110
1105
|
accumulatedResponse = "";
|
|
1111
1106
|
isResponseInProgress = false;
|
|
1112
|
-
|
|
1107
|
+
assistantMessageEmitter.reset();
|
|
1113
1108
|
return;
|
|
1114
1109
|
}
|
|
1115
1110
|
if (currentAssistantMessageId) {
|
|
1116
1111
|
messageBuffer.updateMessage(currentAssistantMessageId, finalMessage, { mode: "replace" });
|
|
1117
1112
|
}
|
|
1118
1113
|
conversationHistory.addAssistantMessage(finalMessage);
|
|
1119
|
-
const hadActiveStream =
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1114
|
+
const hadActiveStream = assistantMessageEmitter.hasActive();
|
|
1115
|
+
if (hadActiveStream) {
|
|
1116
|
+
assistantMessageEmitter.commit(finalMessage.slice(currentAssistantStreamStartLength));
|
|
1117
|
+
} else {
|
|
1118
|
+
session.client.sendAgentMessage("claude", {
|
|
1119
|
+
type: "message",
|
|
1120
|
+
message: finalMessage
|
|
1121
|
+
});
|
|
1122
|
+
}
|
|
1126
1123
|
session.client.sendClaudeSessionMessage({
|
|
1127
1124
|
type: "assistant",
|
|
1128
1125
|
uuid: randomUUID(),
|
|
@@ -1143,22 +1140,16 @@ async function claudeAcpRemoteLauncher(session) {
|
|
|
1143
1140
|
isResponseInProgress = false;
|
|
1144
1141
|
};
|
|
1145
1142
|
const commitActiveAssistantMessageStream = () => {
|
|
1146
|
-
if (!
|
|
1143
|
+
if (!assistantMessageEmitter.hasActive()) {
|
|
1147
1144
|
return false;
|
|
1148
1145
|
}
|
|
1149
1146
|
const finalMessage = accumulatedResponse.trim();
|
|
1150
1147
|
if (!finalMessage) {
|
|
1151
|
-
|
|
1148
|
+
assistantMessageEmitter.reset();
|
|
1152
1149
|
currentAssistantStreamStartLength = accumulatedResponse.length;
|
|
1153
1150
|
return false;
|
|
1154
1151
|
}
|
|
1155
|
-
|
|
1156
|
-
session.client.sendAgentMessage("claude", {
|
|
1157
|
-
type: "message",
|
|
1158
|
-
message: finalMessage.slice(currentAssistantStreamStartLength),
|
|
1159
|
-
id: stream.messageId,
|
|
1160
|
-
...stream
|
|
1161
|
-
});
|
|
1152
|
+
assistantMessageEmitter.commit(finalMessage.slice(currentAssistantStreamStartLength));
|
|
1162
1153
|
currentAssistantStreamStartLength = accumulatedResponse.length;
|
|
1163
1154
|
return true;
|
|
1164
1155
|
};
|
|
@@ -1386,7 +1377,7 @@ ${systemPrompt}` : systemPrompt,
|
|
|
1386
1377
|
const abortActiveTurn = async () => {
|
|
1387
1378
|
const activeController = rotateAbortController();
|
|
1388
1379
|
activeController.abort();
|
|
1389
|
-
|
|
1380
|
+
assistantMessageEmitter.reset();
|
|
1390
1381
|
session.onThinkingChange(false);
|
|
1391
1382
|
if (runtimeHandle) {
|
|
1392
1383
|
await runtimeHandle.cancel().catch((error) => {
|
|
@@ -3273,7 +3264,7 @@ async function runOfflineClaudeLocalFallback(opts) {
|
|
|
3273
3264
|
serverUrl: configuration.serverUrl,
|
|
3274
3265
|
onReconnected: async () => {
|
|
3275
3266
|
const response = await opts.api.getOrCreateSession({
|
|
3276
|
-
tag: randomUUID(),
|
|
3267
|
+
tag: opts.sessionTag ?? randomUUID(),
|
|
3277
3268
|
metadata: opts.metadata,
|
|
3278
3269
|
state: opts.state
|
|
3279
3270
|
});
|
|
@@ -3470,6 +3461,7 @@ async function runClaude(credentials, options = {}) {
|
|
|
3470
3461
|
if (!response) {
|
|
3471
3462
|
await runOfflineClaudeLocalFallback({
|
|
3472
3463
|
api,
|
|
3464
|
+
sessionTag,
|
|
3473
3465
|
metadata,
|
|
3474
3466
|
state,
|
|
3475
3467
|
workingDirectory,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var node_crypto = require('node:crypto');
|
|
4
|
-
var persistence = require('./types-
|
|
4
|
+
var persistence = require('./types-Be833t7e.cjs');
|
|
5
5
|
require('cross-spawn');
|
|
6
6
|
require('@agentclientprotocol/sdk');
|
|
7
|
-
var index = require('./index-
|
|
7
|
+
var index = require('./index-Cd7d2BMe.cjs');
|
|
8
8
|
require('ps-list');
|
|
9
9
|
require('fs');
|
|
10
10
|
require('path');
|
|
@@ -25,14 +25,14 @@ require('tweetnacl');
|
|
|
25
25
|
require('open');
|
|
26
26
|
var React = require('react');
|
|
27
27
|
var ink = require('ink');
|
|
28
|
-
var ProviderSelectionHandler = require('./ProviderSelectionHandler-
|
|
28
|
+
var ProviderSelectionHandler = require('./ProviderSelectionHandler-BsIj6tUM.cjs');
|
|
29
29
|
require('socket.io-client');
|
|
30
30
|
require('expo-server-sdk');
|
|
31
31
|
var future = require('./future-Dq4Ha1Dn.cjs');
|
|
32
|
-
var ConversationHistory = require('./ConversationHistory-
|
|
33
|
-
var claude = require('./claude-
|
|
34
|
-
var sessionControl = require('./sessionControl-
|
|
35
|
-
var RuntimeShell = require('./RuntimeShell-
|
|
32
|
+
var ConversationHistory = require('./ConversationHistory-DYF60lvE.cjs');
|
|
33
|
+
var claude = require('./claude-DJ98mF1g.cjs');
|
|
34
|
+
var sessionControl = require('./sessionControl-BM3380c0.cjs');
|
|
35
|
+
var RuntimeShell = require('./RuntimeShell-CoXntnel.cjs');
|
|
36
36
|
var node_util = require('node:util');
|
|
37
37
|
var node_http = require('node:http');
|
|
38
38
|
require('zod');
|
|
@@ -1013,7 +1013,9 @@ async function claudeAcpRemoteLauncher(session) {
|
|
|
1013
1013
|
let unexpectedRuntimeStopRecovery = null;
|
|
1014
1014
|
let readyAlreadySent = false;
|
|
1015
1015
|
let currentHappyOrgTurn = null;
|
|
1016
|
-
const
|
|
1016
|
+
const assistantMessageEmitter = new sessionControl.BufferedAssistantStreamEmitter({
|
|
1017
|
+
send: (payload) => session.client.sendAgentMessage("claude", payload)
|
|
1018
|
+
});
|
|
1017
1019
|
const permissionHandler = new ClaudeAcpPermissionHandler(session.client);
|
|
1018
1020
|
const selectionHandler = new ProviderSelectionHandler.ProviderSelectionHandler(session.client, "Claude");
|
|
1019
1021
|
const conversationHistory = new ConversationHistory.ConversationHistory({
|
|
@@ -1072,7 +1074,7 @@ async function claudeAcpRemoteLauncher(session) {
|
|
|
1072
1074
|
currentAssistantMessageId = null;
|
|
1073
1075
|
currentThinkingMessageId = null;
|
|
1074
1076
|
currentHappyOrgTurn = null;
|
|
1075
|
-
|
|
1077
|
+
assistantMessageEmitter.reset();
|
|
1076
1078
|
session.onThinkingChange(false);
|
|
1077
1079
|
};
|
|
1078
1080
|
const emitAssistantMessageDelta = (text) => {
|
|
@@ -1082,17 +1084,10 @@ async function claudeAcpRemoteLauncher(session) {
|
|
|
1082
1084
|
if (!text.trim()) {
|
|
1083
1085
|
return false;
|
|
1084
1086
|
}
|
|
1085
|
-
if (!
|
|
1087
|
+
if (!assistantMessageEmitter.hasActive()) {
|
|
1086
1088
|
currentAssistantStreamStartLength = accumulatedResponse.length - text.length;
|
|
1087
1089
|
}
|
|
1088
|
-
|
|
1089
|
-
session.client.sendAgentMessage("claude", {
|
|
1090
|
-
type: "message",
|
|
1091
|
-
message: text,
|
|
1092
|
-
id: stream.messageId,
|
|
1093
|
-
...stream
|
|
1094
|
-
});
|
|
1095
|
-
return true;
|
|
1090
|
+
return assistantMessageEmitter.pushDelta(text);
|
|
1096
1091
|
};
|
|
1097
1092
|
const emitPendingThinkingMessage = () => {
|
|
1098
1093
|
const thinking = accumulatedThinking.trim();
|
|
@@ -1111,20 +1106,22 @@ async function claudeAcpRemoteLauncher(session) {
|
|
|
1111
1106
|
if (!finalMessage) {
|
|
1112
1107
|
accumulatedResponse = "";
|
|
1113
1108
|
isResponseInProgress = false;
|
|
1114
|
-
|
|
1109
|
+
assistantMessageEmitter.reset();
|
|
1115
1110
|
return;
|
|
1116
1111
|
}
|
|
1117
1112
|
if (currentAssistantMessageId) {
|
|
1118
1113
|
messageBuffer.updateMessage(currentAssistantMessageId, finalMessage, { mode: "replace" });
|
|
1119
1114
|
}
|
|
1120
1115
|
conversationHistory.addAssistantMessage(finalMessage);
|
|
1121
|
-
const hadActiveStream =
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1116
|
+
const hadActiveStream = assistantMessageEmitter.hasActive();
|
|
1117
|
+
if (hadActiveStream) {
|
|
1118
|
+
assistantMessageEmitter.commit(finalMessage.slice(currentAssistantStreamStartLength));
|
|
1119
|
+
} else {
|
|
1120
|
+
session.client.sendAgentMessage("claude", {
|
|
1121
|
+
type: "message",
|
|
1122
|
+
message: finalMessage
|
|
1123
|
+
});
|
|
1124
|
+
}
|
|
1128
1125
|
session.client.sendClaudeSessionMessage({
|
|
1129
1126
|
type: "assistant",
|
|
1130
1127
|
uuid: node_crypto.randomUUID(),
|
|
@@ -1145,22 +1142,16 @@ async function claudeAcpRemoteLauncher(session) {
|
|
|
1145
1142
|
isResponseInProgress = false;
|
|
1146
1143
|
};
|
|
1147
1144
|
const commitActiveAssistantMessageStream = () => {
|
|
1148
|
-
if (!
|
|
1145
|
+
if (!assistantMessageEmitter.hasActive()) {
|
|
1149
1146
|
return false;
|
|
1150
1147
|
}
|
|
1151
1148
|
const finalMessage = accumulatedResponse.trim();
|
|
1152
1149
|
if (!finalMessage) {
|
|
1153
|
-
|
|
1150
|
+
assistantMessageEmitter.reset();
|
|
1154
1151
|
currentAssistantStreamStartLength = accumulatedResponse.length;
|
|
1155
1152
|
return false;
|
|
1156
1153
|
}
|
|
1157
|
-
|
|
1158
|
-
session.client.sendAgentMessage("claude", {
|
|
1159
|
-
type: "message",
|
|
1160
|
-
message: finalMessage.slice(currentAssistantStreamStartLength),
|
|
1161
|
-
id: stream.messageId,
|
|
1162
|
-
...stream
|
|
1163
|
-
});
|
|
1154
|
+
assistantMessageEmitter.commit(finalMessage.slice(currentAssistantStreamStartLength));
|
|
1164
1155
|
currentAssistantStreamStartLength = accumulatedResponse.length;
|
|
1165
1156
|
return true;
|
|
1166
1157
|
};
|
|
@@ -1388,7 +1379,7 @@ ${systemPrompt}` : systemPrompt,
|
|
|
1388
1379
|
const abortActiveTurn = async () => {
|
|
1389
1380
|
const activeController = rotateAbortController();
|
|
1390
1381
|
activeController.abort();
|
|
1391
|
-
|
|
1382
|
+
assistantMessageEmitter.reset();
|
|
1392
1383
|
session.onThinkingChange(false);
|
|
1393
1384
|
if (runtimeHandle) {
|
|
1394
1385
|
await runtimeHandle.cancel().catch((error) => {
|
|
@@ -3275,7 +3266,7 @@ async function runOfflineClaudeLocalFallback(opts) {
|
|
|
3275
3266
|
serverUrl: persistence.configuration.serverUrl,
|
|
3276
3267
|
onReconnected: async () => {
|
|
3277
3268
|
const response = await opts.api.getOrCreateSession({
|
|
3278
|
-
tag: node_crypto.randomUUID(),
|
|
3269
|
+
tag: opts.sessionTag ?? node_crypto.randomUUID(),
|
|
3279
3270
|
metadata: opts.metadata,
|
|
3280
3271
|
state: opts.state
|
|
3281
3272
|
});
|
|
@@ -3472,6 +3463,7 @@ async function runClaude(credentials, options = {}) {
|
|
|
3472
3463
|
if (!response) {
|
|
3473
3464
|
await runOfflineClaudeLocalFallback({
|
|
3474
3465
|
api,
|
|
3466
|
+
sessionTag,
|
|
3475
3467
|
metadata,
|
|
3476
3468
|
state,
|
|
3477
3469
|
workingDirectory,
|