@lvce-editor/chat-view 5.2.0 → 5.4.0
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/chatViewWorkerMain.js +162 -54
- package/package.json +1 -1
|
@@ -1027,7 +1027,7 @@ const createMockRpc = ({
|
|
|
1027
1027
|
};
|
|
1028
1028
|
|
|
1029
1029
|
const rpcs = Object.create(null);
|
|
1030
|
-
const set$
|
|
1030
|
+
const set$6 = (id, rpc) => {
|
|
1031
1031
|
rpcs[id] = rpc;
|
|
1032
1032
|
};
|
|
1033
1033
|
const get$2 = id => {
|
|
@@ -1060,7 +1060,7 @@ const create$2 = rpcId => {
|
|
|
1060
1060
|
const mockRpc = createMockRpc({
|
|
1061
1061
|
commandMap
|
|
1062
1062
|
});
|
|
1063
|
-
set$
|
|
1063
|
+
set$6(rpcId, mockRpc);
|
|
1064
1064
|
// @ts-ignore
|
|
1065
1065
|
mockRpc[Symbol.dispose] = () => {
|
|
1066
1066
|
remove(rpcId);
|
|
@@ -1069,20 +1069,20 @@ const create$2 = rpcId => {
|
|
|
1069
1069
|
return mockRpc;
|
|
1070
1070
|
},
|
|
1071
1071
|
set(rpc) {
|
|
1072
|
-
set$
|
|
1072
|
+
set$6(rpcId, rpc);
|
|
1073
1073
|
}
|
|
1074
1074
|
};
|
|
1075
1075
|
};
|
|
1076
1076
|
|
|
1077
1077
|
const {
|
|
1078
|
-
invoke: invoke$
|
|
1079
|
-
set: set$
|
|
1078
|
+
invoke: invoke$4,
|
|
1079
|
+
set: set$5
|
|
1080
1080
|
} = create$2(6007);
|
|
1081
1081
|
const getMathBlockDom = async node => {
|
|
1082
|
-
return invoke$
|
|
1082
|
+
return invoke$4('ChatMath.getMathBlockDom', node);
|
|
1083
1083
|
};
|
|
1084
1084
|
const getMathInlineDom = async node => {
|
|
1085
|
-
return invoke$
|
|
1085
|
+
return invoke$4('ChatMath.getMathInlineDom', node);
|
|
1086
1086
|
};
|
|
1087
1087
|
|
|
1088
1088
|
const Button$2 = 'button';
|
|
@@ -1171,26 +1171,26 @@ const SetPatches = 'Viewlet.setPatches';
|
|
|
1171
1171
|
const FocusChatInput = 8000;
|
|
1172
1172
|
|
|
1173
1173
|
const {
|
|
1174
|
-
invoke: invoke$
|
|
1175
|
-
set: set$
|
|
1174
|
+
invoke: invoke$3,
|
|
1175
|
+
set: set$4
|
|
1176
1176
|
} = create$2(ChatNetworkWorker);
|
|
1177
1177
|
|
|
1178
1178
|
const {
|
|
1179
|
-
invoke: invoke$
|
|
1180
|
-
set: set$
|
|
1179
|
+
invoke: invoke$2,
|
|
1180
|
+
set: set$3
|
|
1181
1181
|
} = create$2(ExtensionHostWorker);
|
|
1182
1182
|
|
|
1183
1183
|
const {
|
|
1184
|
-
invoke,
|
|
1184
|
+
invoke: invoke$1,
|
|
1185
1185
|
invokeAndTransfer,
|
|
1186
|
-
set: set$
|
|
1186
|
+
set: set$2
|
|
1187
1187
|
} = create$2(RendererWorker);
|
|
1188
1188
|
const sendMessagePortToChatMathWorker$1 = async (port, rpcId) => {
|
|
1189
1189
|
const command = 'HandleMessagePort.handleMessagePort';
|
|
1190
1190
|
await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToChatMathWorker', port, command, rpcId);
|
|
1191
1191
|
};
|
|
1192
1192
|
const readFile = async uri => {
|
|
1193
|
-
return invoke('FileSystem.readFile', uri);
|
|
1193
|
+
return invoke$1('FileSystem.readFile', uri);
|
|
1194
1194
|
};
|
|
1195
1195
|
const sendMessagePortToExtensionHostWorker$1 = async (port, rpcId = 0) => {
|
|
1196
1196
|
const command = 'HandleMessagePort.handleMessagePort2';
|
|
@@ -1200,22 +1200,22 @@ const sendMessagePortToChatNetworkWorker = async port => {
|
|
|
1200
1200
|
await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToChatNetworkWorker', port, 'HandleMessagePort.handleMessagePort');
|
|
1201
1201
|
};
|
|
1202
1202
|
const writeFile = async (uri, text) => {
|
|
1203
|
-
await invoke('FileSystem.writeFile', uri, text);
|
|
1203
|
+
await invoke$1('FileSystem.writeFile', uri, text);
|
|
1204
1204
|
};
|
|
1205
1205
|
const activateByEvent$1 = (event, assetDir, platform) => {
|
|
1206
|
-
return invoke('ExtensionHostManagement.activateByEvent', event, assetDir, platform);
|
|
1206
|
+
return invoke$1('ExtensionHostManagement.activateByEvent', event, assetDir, platform);
|
|
1207
1207
|
};
|
|
1208
1208
|
const getWorkspacePath = () => {
|
|
1209
|
-
return invoke('Workspace.getPath');
|
|
1209
|
+
return invoke$1('Workspace.getPath');
|
|
1210
1210
|
};
|
|
1211
1211
|
const getPreference = async key => {
|
|
1212
|
-
return await invoke('Preferences.get', key);
|
|
1212
|
+
return await invoke$1('Preferences.get', key);
|
|
1213
1213
|
};
|
|
1214
1214
|
const openExternal = async uri => {
|
|
1215
|
-
await invoke('Open.openExternal', uri);
|
|
1215
|
+
await invoke$1('Open.openExternal', uri);
|
|
1216
1216
|
};
|
|
1217
1217
|
const measureTextBlockHeight$1 = async (actualInput, fontFamily, fontSize, lineHeightPx, width) => {
|
|
1218
|
-
return invoke(`MeasureTextHeight.measureTextBlockHeight`, actualInput, fontFamily, fontSize, lineHeightPx, width);
|
|
1218
|
+
return invoke$1(`MeasureTextHeight.measureTextBlockHeight`, actualInput, fontFamily, fontSize, lineHeightPx, width);
|
|
1219
1219
|
};
|
|
1220
1220
|
|
|
1221
1221
|
const toCommandId = key => {
|
|
@@ -1643,6 +1643,7 @@ const createDefaultState = () => {
|
|
|
1643
1643
|
tokensUsed: 0,
|
|
1644
1644
|
uid: 0,
|
|
1645
1645
|
usageOverviewEnabled: false,
|
|
1646
|
+
useChatCoordinatorWorker: false,
|
|
1646
1647
|
useChatMathWorker: true,
|
|
1647
1648
|
useChatNetworkWorkerForRequests: false,
|
|
1648
1649
|
useMockApi: false,
|
|
@@ -1660,7 +1661,7 @@ const {
|
|
|
1660
1661
|
get: get$1,
|
|
1661
1662
|
getCommandIds,
|
|
1662
1663
|
registerCommands,
|
|
1663
|
-
set,
|
|
1664
|
+
set: set$1,
|
|
1664
1665
|
wrapCommand,
|
|
1665
1666
|
wrapGetter
|
|
1666
1667
|
} = create$1();
|
|
@@ -1676,7 +1677,7 @@ const create = (uid, x, y, width, height, platform, assetDir) => {
|
|
|
1676
1677
|
x,
|
|
1677
1678
|
y
|
|
1678
1679
|
};
|
|
1679
|
-
set(uid, state, state);
|
|
1680
|
+
set$1(uid, state, state);
|
|
1680
1681
|
};
|
|
1681
1682
|
|
|
1682
1683
|
const toError = error => {
|
|
@@ -2952,7 +2953,7 @@ const handleChatListContextMenu = async (state, eventX, eventY) => {
|
|
|
2952
2953
|
if (!item) {
|
|
2953
2954
|
return state;
|
|
2954
2955
|
}
|
|
2955
|
-
await invoke('ContextMenu.show', eventX, eventY, CHAT_LIST_ITEM_CONTEXT_MENU, item.id);
|
|
2956
|
+
await invoke$1('ContextMenu.show', eventX, eventY, CHAT_LIST_ITEM_CONTEXT_MENU, item.id);
|
|
2956
2957
|
return state;
|
|
2957
2958
|
};
|
|
2958
2959
|
|
|
@@ -2983,7 +2984,7 @@ const createSession = async (state, projectIdOverride = '') => {
|
|
|
2983
2984
|
|
|
2984
2985
|
const openFolder = async () => {
|
|
2985
2986
|
try {
|
|
2986
|
-
return await invoke('FilePicker.showDirectoryPicker');
|
|
2987
|
+
return await invoke$1('FilePicker.showDirectoryPicker');
|
|
2987
2988
|
} catch {
|
|
2988
2989
|
return '';
|
|
2989
2990
|
}
|
|
@@ -3060,7 +3061,7 @@ const handleClickCreateProject = async state => {
|
|
|
3060
3061
|
};
|
|
3061
3062
|
|
|
3062
3063
|
const handleClickOpenApiApiKeySettings = async state => {
|
|
3063
|
-
await invoke('Main.openUri', 'app://settings.json');
|
|
3064
|
+
await invoke$1('Main.openUri', 'app://settings.json');
|
|
3064
3065
|
return state;
|
|
3065
3066
|
};
|
|
3066
3067
|
|
|
@@ -3070,7 +3071,7 @@ const handleClickOpenApiApiKeyWebsite = async state => {
|
|
|
3070
3071
|
};
|
|
3071
3072
|
|
|
3072
3073
|
const handleClickOpenRouterApiKeySettings = async state => {
|
|
3073
|
-
await invoke('Main.openUri', 'app://settings.json');
|
|
3074
|
+
await invoke$1('Main.openUri', 'app://settings.json');
|
|
3074
3075
|
return state;
|
|
3075
3076
|
};
|
|
3076
3077
|
|
|
@@ -3088,6 +3089,21 @@ const openRouterTooManyRequestsMessage = 'OpenRouter rate limit reached (429). P
|
|
|
3088
3089
|
const openRouterRequestFailureReasons = ['ContentSecurityPolicyViolation: Check DevTools for details.', 'OpenRouter server offline: Check DevTools for details.', 'Check your internet connection.'];
|
|
3089
3090
|
const openRouterTooManyRequestsReasons = ['Wait a short time and retry your request.', 'Reduce request frequency to avoid rate limits.', 'Use a different model if this one is saturated.'];
|
|
3090
3091
|
|
|
3092
|
+
let rpc;
|
|
3093
|
+
const set = value => {
|
|
3094
|
+
rpc = value;
|
|
3095
|
+
};
|
|
3096
|
+
const invoke = async (method, ...params) => {
|
|
3097
|
+
if (!rpc) {
|
|
3098
|
+
throw new Error('ChatCoordinatorWorker is not initialized');
|
|
3099
|
+
}
|
|
3100
|
+
return rpc.invoke(method, ...params);
|
|
3101
|
+
};
|
|
3102
|
+
|
|
3103
|
+
const getAiResponse$1 = async options => {
|
|
3104
|
+
return invoke('ChatCoordinator.getAiResponse', options);
|
|
3105
|
+
};
|
|
3106
|
+
|
|
3091
3107
|
const getToolErrorPayload = error => {
|
|
3092
3108
|
const rawStack = error && typeof error === 'object' ? Reflect.get(error, 'stack') : undefined;
|
|
3093
3109
|
return {
|
|
@@ -3121,7 +3137,7 @@ const executeListFilesTool = async (args, _options) => {
|
|
|
3121
3137
|
});
|
|
3122
3138
|
}
|
|
3123
3139
|
try {
|
|
3124
|
-
const entries = await invoke('FileSystem.readDirWithFileTypes', uri);
|
|
3140
|
+
const entries = await invoke$1('FileSystem.readDirWithFileTypes', uri);
|
|
3125
3141
|
return JSON.stringify({
|
|
3126
3142
|
entries,
|
|
3127
3143
|
uri
|
|
@@ -3442,6 +3458,15 @@ const setHttpErrorResponse = (statusCode, body) => {
|
|
|
3442
3458
|
type: 'error'
|
|
3443
3459
|
};
|
|
3444
3460
|
};
|
|
3461
|
+
const setRequestFailedResponse = (isOffline = false) => {
|
|
3462
|
+
errorResult = {
|
|
3463
|
+
details: 'request-failed',
|
|
3464
|
+
...(isOffline ? {
|
|
3465
|
+
isOffline: true
|
|
3466
|
+
} : {}),
|
|
3467
|
+
type: 'error'
|
|
3468
|
+
};
|
|
3469
|
+
};
|
|
3445
3470
|
const takeErrorResponse = () => {
|
|
3446
3471
|
const error = errorResult;
|
|
3447
3472
|
errorResult = undefined;
|
|
@@ -3713,7 +3738,7 @@ const executeProvider = async ({
|
|
|
3713
3738
|
}) => {
|
|
3714
3739
|
await activateByEvent(event, assetDir, platform);
|
|
3715
3740
|
// @ts-ignore
|
|
3716
|
-
const result = invoke$
|
|
3741
|
+
const result = invoke$2(method, ...params);
|
|
3717
3742
|
return result;
|
|
3718
3743
|
};
|
|
3719
3744
|
|
|
@@ -3845,10 +3870,10 @@ const getOpenApiApiEndpoint = openApiApiBaseUrl => {
|
|
|
3845
3870
|
};
|
|
3846
3871
|
|
|
3847
3872
|
const makeApiRequest = async options => {
|
|
3848
|
-
return invoke$
|
|
3873
|
+
return invoke$3('ChatNetwork.makeApiRequest', options);
|
|
3849
3874
|
};
|
|
3850
3875
|
const makeStreamingApiRequest = async options => {
|
|
3851
|
-
return invoke$
|
|
3876
|
+
return invoke$3('ChatNetwork.makeStreamingApiRequest', options);
|
|
3852
3877
|
};
|
|
3853
3878
|
|
|
3854
3879
|
const getTextContent = content => {
|
|
@@ -4894,7 +4919,7 @@ const getOpenApiErrorMessage = errorResult => {
|
|
|
4894
4919
|
return openApiRequestFailedMessage;
|
|
4895
4920
|
}
|
|
4896
4921
|
case 'request-failed':
|
|
4897
|
-
if (isOffline()) {
|
|
4922
|
+
if (errorResult.isOffline || isOffline()) {
|
|
4898
4923
|
return openApiRequestFailedOfflineMessage;
|
|
4899
4924
|
}
|
|
4900
4925
|
return openApiRequestFailedMessage;
|
|
@@ -5309,6 +5334,7 @@ const getAiResponse = async ({
|
|
|
5309
5334
|
mockAiResponseDelay = 800,
|
|
5310
5335
|
mockApiCommandId,
|
|
5311
5336
|
models,
|
|
5337
|
+
nextMessageId,
|
|
5312
5338
|
onDataEvent,
|
|
5313
5339
|
onEventStreamFinished,
|
|
5314
5340
|
onTextChunk,
|
|
@@ -5321,11 +5347,50 @@ const getAiResponse = async ({
|
|
|
5321
5347
|
platform,
|
|
5322
5348
|
selectedModelId,
|
|
5323
5349
|
streamingEnabled = true,
|
|
5350
|
+
useChatCoordinatorWorker = false,
|
|
5324
5351
|
useChatNetworkWorkerForRequests = false,
|
|
5325
5352
|
useMockApi,
|
|
5326
5353
|
userText,
|
|
5327
5354
|
webSearchEnabled = false
|
|
5328
5355
|
}) => {
|
|
5356
|
+
if (useChatCoordinatorWorker) {
|
|
5357
|
+
try {
|
|
5358
|
+
const result = await getAiResponse$1({
|
|
5359
|
+
assetDir,
|
|
5360
|
+
...(messageId ? {
|
|
5361
|
+
messageId
|
|
5362
|
+
} : {}),
|
|
5363
|
+
messages,
|
|
5364
|
+
mockAiResponseDelay,
|
|
5365
|
+
mockApiCommandId,
|
|
5366
|
+
models,
|
|
5367
|
+
nextMessageId,
|
|
5368
|
+
openApiApiBaseUrl,
|
|
5369
|
+
openApiApiKey,
|
|
5370
|
+
openRouterApiBaseUrl,
|
|
5371
|
+
openRouterApiKey,
|
|
5372
|
+
passIncludeObfuscation,
|
|
5373
|
+
platform,
|
|
5374
|
+
selectedModelId,
|
|
5375
|
+
streamingEnabled,
|
|
5376
|
+
useChatNetworkWorkerForRequests,
|
|
5377
|
+
useMockApi,
|
|
5378
|
+
userText,
|
|
5379
|
+
webSearchEnabled
|
|
5380
|
+
});
|
|
5381
|
+
if (streamingEnabled) {
|
|
5382
|
+
if (onTextChunk) {
|
|
5383
|
+
await onTextChunk(result.text);
|
|
5384
|
+
}
|
|
5385
|
+
if (onEventStreamFinished) {
|
|
5386
|
+
await onEventStreamFinished();
|
|
5387
|
+
}
|
|
5388
|
+
}
|
|
5389
|
+
return result;
|
|
5390
|
+
} catch {
|
|
5391
|
+
// Fall back to the local implementation if coordinator worker RPC is unavailable.
|
|
5392
|
+
}
|
|
5393
|
+
}
|
|
5329
5394
|
let text = '';
|
|
5330
5395
|
const usesOpenApiModel = isOpenApiModel(selectedModelId, models);
|
|
5331
5396
|
const usesOpenRouterModel = isOpenRouterModel(selectedModelId, models);
|
|
@@ -5448,7 +5513,7 @@ const get = async key => {
|
|
|
5448
5513
|
return getPreference(key);
|
|
5449
5514
|
};
|
|
5450
5515
|
const update = async settings => {
|
|
5451
|
-
await invoke('Preferences.update', settings);
|
|
5516
|
+
await invoke$1('Preferences.update', settings);
|
|
5452
5517
|
};
|
|
5453
5518
|
|
|
5454
5519
|
const setOpenApiApiKey = async (state, openApiApiKey, persist = true) => {
|
|
@@ -5493,6 +5558,7 @@ const handleClickSaveOpenApiApiKey = async state => {
|
|
|
5493
5558
|
mockAiResponseDelay: updatedState.mockAiResponseDelay,
|
|
5494
5559
|
mockApiCommandId: updatedState.mockApiCommandId,
|
|
5495
5560
|
models: updatedState.models,
|
|
5561
|
+
nextMessageId: updatedState.nextMessageId,
|
|
5496
5562
|
openApiApiBaseUrl: updatedState.openApiApiBaseUrl,
|
|
5497
5563
|
openApiApiKey: updatedState.openApiApiKey,
|
|
5498
5564
|
openRouterApiBaseUrl: updatedState.openRouterApiBaseUrl,
|
|
@@ -5500,6 +5566,7 @@ const handleClickSaveOpenApiApiKey = async state => {
|
|
|
5500
5566
|
platform: updatedState.platform,
|
|
5501
5567
|
selectedModelId: updatedState.selectedModelId,
|
|
5502
5568
|
streamingEnabled: updatedState.streamingEnabled,
|
|
5569
|
+
useChatCoordinatorWorker: updatedState.useChatCoordinatorWorker,
|
|
5503
5570
|
useChatNetworkWorkerForRequests: updatedState.useChatNetworkWorkerForRequests,
|
|
5504
5571
|
useMockApi: updatedState.useMockApi,
|
|
5505
5572
|
userText: previousUserMessage.text
|
|
@@ -5547,9 +5614,9 @@ const handleClickSaveOpenRouterApiKey = async state => {
|
|
|
5547
5614
|
...state,
|
|
5548
5615
|
openRouterApiKeyState: 'saving'
|
|
5549
5616
|
};
|
|
5550
|
-
set(state.uid, state, optimisticState);
|
|
5617
|
+
set$1(state.uid, state, optimisticState);
|
|
5551
5618
|
// @ts-ignore
|
|
5552
|
-
await invoke('Chat.rerender');
|
|
5619
|
+
await invoke$1('Chat.rerender');
|
|
5553
5620
|
const persistedState = await setOpenRouterApiKey(optimisticState, openRouterApiKey);
|
|
5554
5621
|
const updatedState = {
|
|
5555
5622
|
...persistedState,
|
|
@@ -5575,12 +5642,14 @@ const handleClickSaveOpenRouterApiKey = async state => {
|
|
|
5575
5642
|
mockAiResponseDelay: updatedState.mockAiResponseDelay,
|
|
5576
5643
|
mockApiCommandId: updatedState.mockApiCommandId,
|
|
5577
5644
|
models: updatedState.models,
|
|
5645
|
+
nextMessageId: updatedState.nextMessageId,
|
|
5578
5646
|
openApiApiBaseUrl: updatedState.openApiApiBaseUrl,
|
|
5579
5647
|
openApiApiKey: updatedState.openApiApiKey,
|
|
5580
5648
|
openRouterApiBaseUrl: updatedState.openRouterApiBaseUrl,
|
|
5581
5649
|
openRouterApiKey,
|
|
5582
5650
|
platform: updatedState.platform,
|
|
5583
5651
|
selectedModelId: updatedState.selectedModelId,
|
|
5652
|
+
useChatCoordinatorWorker: updatedState.useChatCoordinatorWorker,
|
|
5584
5653
|
useChatNetworkWorkerForRequests: updatedState.useChatNetworkWorkerForRequests,
|
|
5585
5654
|
useMockApi: updatedState.useMockApi,
|
|
5586
5655
|
userText: previousUserMessage.text
|
|
@@ -6511,6 +6580,7 @@ Assistant: ${assistantText}`;
|
|
|
6511
6580
|
mockAiResponseDelay: state.mockAiResponseDelay,
|
|
6512
6581
|
mockApiCommandId: state.mockApiCommandId,
|
|
6513
6582
|
models,
|
|
6583
|
+
nextMessageId: state.nextMessageId,
|
|
6514
6584
|
openApiApiBaseUrl,
|
|
6515
6585
|
openApiApiKey,
|
|
6516
6586
|
openRouterApiBaseUrl,
|
|
@@ -6519,6 +6589,7 @@ Assistant: ${assistantText}`;
|
|
|
6519
6589
|
platform: state.platform,
|
|
6520
6590
|
selectedModelId,
|
|
6521
6591
|
streamingEnabled: false,
|
|
6592
|
+
useChatCoordinatorWorker: state.useChatCoordinatorWorker,
|
|
6522
6593
|
useChatNetworkWorkerForRequests: state.useChatNetworkWorkerForRequests,
|
|
6523
6594
|
useMockApi,
|
|
6524
6595
|
userText: titlePrompt,
|
|
@@ -6670,9 +6741,9 @@ const handleTextChunkFunction = async (uid, assistantMessageId, chunk, handleTex
|
|
|
6670
6741
|
parsedMessages: updated.parsedMessages,
|
|
6671
6742
|
sessions: updated.sessions
|
|
6672
6743
|
};
|
|
6673
|
-
set(uid, handleTextChunkState.previousState, nextState);
|
|
6744
|
+
set$1(uid, handleTextChunkState.previousState, nextState);
|
|
6674
6745
|
// @ts-ignore
|
|
6675
|
-
await invoke('Chat.rerender');
|
|
6746
|
+
await invoke$1('Chat.rerender');
|
|
6676
6747
|
return {
|
|
6677
6748
|
latestState: nextState,
|
|
6678
6749
|
previousState: nextState
|
|
@@ -6699,9 +6770,9 @@ const handleToolCallsChunkFunction = async (uid, assistantMessageId, toolCalls,
|
|
|
6699
6770
|
parsedMessages: updated.parsedMessages,
|
|
6700
6771
|
sessions: updated.sessions
|
|
6701
6772
|
};
|
|
6702
|
-
set(uid, handleTextChunkState.previousState, nextState);
|
|
6773
|
+
set$1(uid, handleTextChunkState.previousState, nextState);
|
|
6703
6774
|
// @ts-ignore
|
|
6704
|
-
await invoke('Chat.rerender');
|
|
6775
|
+
await invoke$1('Chat.rerender');
|
|
6705
6776
|
return {
|
|
6706
6777
|
latestState: nextState,
|
|
6707
6778
|
previousState: nextState
|
|
@@ -6781,6 +6852,7 @@ const handleSubmit = async state => {
|
|
|
6781
6852
|
selectedSessionId,
|
|
6782
6853
|
sessions,
|
|
6783
6854
|
streamingEnabled,
|
|
6855
|
+
useChatCoordinatorWorker,
|
|
6784
6856
|
useChatNetworkWorkerForRequests,
|
|
6785
6857
|
useMockApi,
|
|
6786
6858
|
viewMode,
|
|
@@ -6886,9 +6958,9 @@ const handleSubmit = async state => {
|
|
|
6886
6958
|
sessions: updatedSessions
|
|
6887
6959
|
});
|
|
6888
6960
|
}
|
|
6889
|
-
set(state.uid, state, optimisticState);
|
|
6961
|
+
set$1(state.uid, state, optimisticState);
|
|
6890
6962
|
// @ts-ignore
|
|
6891
|
-
await invoke('Chat.rerender');
|
|
6963
|
+
await invoke$1('Chat.rerender');
|
|
6892
6964
|
let handleTextChunkState = {
|
|
6893
6965
|
latestState: optimisticState,
|
|
6894
6966
|
previousState: optimisticState
|
|
@@ -6907,6 +6979,7 @@ const handleSubmit = async state => {
|
|
|
6907
6979
|
mockAiResponseDelay,
|
|
6908
6980
|
mockApiCommandId,
|
|
6909
6981
|
models,
|
|
6982
|
+
nextMessageId: optimisticState.nextMessageId,
|
|
6910
6983
|
onDataEvent: async value => {
|
|
6911
6984
|
if (!emitStreamingFunctionCallEvents && isStreamingFunctionCallEvent(value)) {
|
|
6912
6985
|
return;
|
|
@@ -6941,6 +7014,7 @@ const handleSubmit = async state => {
|
|
|
6941
7014
|
platform,
|
|
6942
7015
|
selectedModelId,
|
|
6943
7016
|
streamingEnabled,
|
|
7017
|
+
useChatCoordinatorWorker,
|
|
6944
7018
|
useChatNetworkWorkerForRequests,
|
|
6945
7019
|
useMockApi,
|
|
6946
7020
|
userText,
|
|
@@ -7227,7 +7301,7 @@ const handleClickBack = async state => {
|
|
|
7227
7301
|
|
|
7228
7302
|
const handleClickClose = async () => {
|
|
7229
7303
|
// @ts-ignore
|
|
7230
|
-
await invoke('Layout.hideSecondarySideBar');
|
|
7304
|
+
await invoke$1('Layout.hideSecondarySideBar');
|
|
7231
7305
|
};
|
|
7232
7306
|
|
|
7233
7307
|
const handleClickDelete = async (state, sessionId = '') => {
|
|
@@ -7246,17 +7320,17 @@ const handleClickReadFile = async uri => {
|
|
|
7246
7320
|
if (!uri) {
|
|
7247
7321
|
return;
|
|
7248
7322
|
}
|
|
7249
|
-
await invoke('Main.openUri', uri);
|
|
7323
|
+
await invoke$1('Main.openUri', uri);
|
|
7250
7324
|
};
|
|
7251
7325
|
|
|
7252
7326
|
const handleClickSessionDebug = async state => {
|
|
7253
|
-
await invoke('Main.openUri', `chat-debug://${state.selectedSessionId}`);
|
|
7327
|
+
await invoke$1('Main.openUri', `chat-debug://${state.selectedSessionId}`);
|
|
7254
7328
|
return state;
|
|
7255
7329
|
};
|
|
7256
7330
|
|
|
7257
7331
|
const handleClickSettings = async () => {
|
|
7258
7332
|
// TODO
|
|
7259
|
-
await invoke('Main.openUri', 'app://settings.json');
|
|
7333
|
+
await invoke$1('Main.openUri', 'app://settings.json');
|
|
7260
7334
|
};
|
|
7261
7335
|
|
|
7262
7336
|
const handleDragEnter = async (state, name, hasFiles = true) => {
|
|
@@ -7469,7 +7543,7 @@ const handleKeyDown = async (state, key, shiftKey) => {
|
|
|
7469
7543
|
};
|
|
7470
7544
|
|
|
7471
7545
|
const handleMessagesContextMenu = async state => {
|
|
7472
|
-
await invoke('ContextMenu.show', 1234);
|
|
7546
|
+
await invoke$1('ContextMenu.show', 1234);
|
|
7473
7547
|
return state;
|
|
7474
7548
|
};
|
|
7475
7549
|
|
|
@@ -7538,7 +7612,7 @@ const createExtensionHostRpc = async () => {
|
|
|
7538
7612
|
|
|
7539
7613
|
const initialize = async () => {
|
|
7540
7614
|
const rpc = await createExtensionHostRpc();
|
|
7541
|
-
set$
|
|
7615
|
+
set$3(rpc);
|
|
7542
7616
|
};
|
|
7543
7617
|
|
|
7544
7618
|
const isObject = value => {
|
|
@@ -7694,6 +7768,15 @@ const loadStreamingEnabled = async () => {
|
|
|
7694
7768
|
}
|
|
7695
7769
|
};
|
|
7696
7770
|
|
|
7771
|
+
const loadUseChatCoordinatorWorker = async () => {
|
|
7772
|
+
try {
|
|
7773
|
+
const savedUseChatCoordinatorWorker = await get('chatView.useChatCoordinatorWorker');
|
|
7774
|
+
return typeof savedUseChatCoordinatorWorker === 'boolean' ? savedUseChatCoordinatorWorker : false;
|
|
7775
|
+
} catch {
|
|
7776
|
+
return false;
|
|
7777
|
+
}
|
|
7778
|
+
};
|
|
7779
|
+
|
|
7697
7780
|
const loadUseChatMathWorker = async () => {
|
|
7698
7781
|
try {
|
|
7699
7782
|
const savedUseChatMathWorker = await get('chatView.useChatMathWorker');
|
|
@@ -7722,7 +7805,7 @@ const loadVoiceDictationEnabled = async () => {
|
|
|
7722
7805
|
};
|
|
7723
7806
|
|
|
7724
7807
|
const loadPreferences = async () => {
|
|
7725
|
-
const [aiSessionTitleGenerationEnabled, composerDropEnabled, openApiApiKey, openRouterApiKey, emitStreamingFunctionCallEvents, streamingEnabled, passIncludeObfuscation, useChatMathWorker, useChatNetworkWorkerForRequests, voiceDictationEnabled] = await Promise.all([loadAiSessionTitleGenerationEnabled(), loadComposerDropEnabled(), loadOpenApiApiKey(), loadOpenRouterApiKey(), loadEmitStreamingFunctionCallEvents(), loadStreamingEnabled(), loadPassIncludeObfuscation(), loadUseChatMathWorker(), loadUseChatNetworkWorkerForRequests(), loadVoiceDictationEnabled()]);
|
|
7808
|
+
const [aiSessionTitleGenerationEnabled, composerDropEnabled, openApiApiKey, openRouterApiKey, emitStreamingFunctionCallEvents, streamingEnabled, passIncludeObfuscation, useChatCoordinatorWorker, useChatMathWorker, useChatNetworkWorkerForRequests, voiceDictationEnabled] = await Promise.all([loadAiSessionTitleGenerationEnabled(), loadComposerDropEnabled(), loadOpenApiApiKey(), loadOpenRouterApiKey(), loadEmitStreamingFunctionCallEvents(), loadStreamingEnabled(), loadPassIncludeObfuscation(), loadUseChatCoordinatorWorker(), loadUseChatMathWorker(), loadUseChatNetworkWorkerForRequests(), loadVoiceDictationEnabled()]);
|
|
7726
7809
|
return {
|
|
7727
7810
|
aiSessionTitleGenerationEnabled,
|
|
7728
7811
|
composerDropEnabled,
|
|
@@ -7731,6 +7814,7 @@ const loadPreferences = async () => {
|
|
|
7731
7814
|
openRouterApiKey,
|
|
7732
7815
|
passIncludeObfuscation,
|
|
7733
7816
|
streamingEnabled,
|
|
7817
|
+
useChatCoordinatorWorker,
|
|
7734
7818
|
useChatMathWorker,
|
|
7735
7819
|
useChatNetworkWorkerForRequests,
|
|
7736
7820
|
voiceDictationEnabled
|
|
@@ -7870,6 +7954,7 @@ const loadContent = async (state, savedState) => {
|
|
|
7870
7954
|
openRouterApiKey,
|
|
7871
7955
|
passIncludeObfuscation,
|
|
7872
7956
|
streamingEnabled,
|
|
7957
|
+
useChatCoordinatorWorker,
|
|
7873
7958
|
useChatMathWorker,
|
|
7874
7959
|
useChatNetworkWorkerForRequests,
|
|
7875
7960
|
voiceDictationEnabled
|
|
@@ -7945,6 +8030,7 @@ const loadContent = async (state, savedState) => {
|
|
|
7945
8030
|
selectedSessionId,
|
|
7946
8031
|
sessions,
|
|
7947
8032
|
streamingEnabled,
|
|
8033
|
+
useChatCoordinatorWorker,
|
|
7948
8034
|
useChatMathWorker,
|
|
7949
8035
|
useChatNetworkWorkerForRequests,
|
|
7950
8036
|
viewMode,
|
|
@@ -7966,6 +8052,11 @@ const mockOpenApiSetHttpErrorResponse = (state, statusCode, body) => {
|
|
|
7966
8052
|
return state;
|
|
7967
8053
|
};
|
|
7968
8054
|
|
|
8055
|
+
const mockOpenApiSetRequestFailedResponse = (state, isOffline = false) => {
|
|
8056
|
+
setRequestFailedResponse(isOffline);
|
|
8057
|
+
return state;
|
|
8058
|
+
};
|
|
8059
|
+
|
|
7969
8060
|
const mockOpenApiStreamFinish = state => {
|
|
7970
8061
|
finish();
|
|
7971
8062
|
return state;
|
|
@@ -8879,6 +8970,7 @@ const getMissingApiKeyDom = ({
|
|
|
8879
8970
|
}, text(saveButtonText), {
|
|
8880
8971
|
childCount: 1,
|
|
8881
8972
|
className: mergeClassNames(Button, ButtonSecondary),
|
|
8973
|
+
inputType: 'button',
|
|
8882
8974
|
name: openSettingsButtonName,
|
|
8883
8975
|
onClick: HandleClick,
|
|
8884
8976
|
type: Button$1
|
|
@@ -9975,7 +10067,7 @@ const render2 = (uid, diffResult) => {
|
|
|
9975
10067
|
newState,
|
|
9976
10068
|
oldState
|
|
9977
10069
|
} = get$1(uid);
|
|
9978
|
-
set(uid, newState, newState);
|
|
10070
|
+
set$1(uid, newState, newState);
|
|
9979
10071
|
const commands = applyRender(oldState, newState, diffResult);
|
|
9980
10072
|
return commands;
|
|
9981
10073
|
};
|
|
@@ -10142,7 +10234,9 @@ const reset = async state => {
|
|
|
10142
10234
|
composerHeight: getMinComposerHeightForState(state),
|
|
10143
10235
|
composerValue: '',
|
|
10144
10236
|
mockAiResponseDelay: 0,
|
|
10237
|
+
openApiApiKey: '',
|
|
10145
10238
|
openRouterApiKey: '',
|
|
10239
|
+
openRouterApiKeyInput: '',
|
|
10146
10240
|
selectedModelId: 'test',
|
|
10147
10241
|
selectedSessionId: '',
|
|
10148
10242
|
sessions: [],
|
|
@@ -10227,6 +10321,18 @@ const setStreamingEnabled = (state, streamingEnabled) => {
|
|
|
10227
10321
|
};
|
|
10228
10322
|
};
|
|
10229
10323
|
|
|
10324
|
+
const setUseChatCoordinatorWorker = async (state, useChatCoordinatorWorker, persist = true) => {
|
|
10325
|
+
if (persist) {
|
|
10326
|
+
await update({
|
|
10327
|
+
'chatView.useChatCoordinatorWorker': useChatCoordinatorWorker
|
|
10328
|
+
});
|
|
10329
|
+
}
|
|
10330
|
+
return {
|
|
10331
|
+
...state,
|
|
10332
|
+
useChatCoordinatorWorker
|
|
10333
|
+
};
|
|
10334
|
+
};
|
|
10335
|
+
|
|
10230
10336
|
const setUseChatMathWorker = async (state, useChatMathWorker, persist = true) => {
|
|
10231
10337
|
if (persist) {
|
|
10232
10338
|
await update({
|
|
@@ -10309,6 +10415,7 @@ const commandMap = {
|
|
|
10309
10415
|
'Chat.mockOpenApiRequestGetAll': wrapGetter(mockOpenApiRequestGetAll),
|
|
10310
10416
|
'Chat.mockOpenApiRequestReset': wrapCommand(mockOpenApiRequestReset),
|
|
10311
10417
|
'Chat.mockOpenApiSetHttpErrorResponse': wrapCommand(mockOpenApiSetHttpErrorResponse),
|
|
10418
|
+
'Chat.mockOpenApiSetRequestFailedResponse': wrapCommand(mockOpenApiSetRequestFailedResponse),
|
|
10312
10419
|
'Chat.mockOpenApiStreamFinish': wrapCommand(mockOpenApiStreamFinish),
|
|
10313
10420
|
'Chat.mockOpenApiStreamPushChunk': wrapCommand(mockOpenApiStreamPushChunk),
|
|
10314
10421
|
'Chat.mockOpenApiStreamReset': wrapCommand(mockOpenApiStreamReset),
|
|
@@ -10324,6 +10431,7 @@ const commandMap = {
|
|
|
10324
10431
|
'Chat.setEmitStreamingFunctionCallEvents': wrapCommand(setEmitStreamingFunctionCallEvents),
|
|
10325
10432
|
'Chat.setOpenRouterApiKey': wrapCommand(setOpenRouterApiKey),
|
|
10326
10433
|
'Chat.setStreamingEnabled': wrapCommand(setStreamingEnabled),
|
|
10434
|
+
'Chat.setUseChatCoordinatorWorker': wrapCommand(setUseChatCoordinatorWorker),
|
|
10327
10435
|
'Chat.setUseChatMathWorker': wrapCommand(setUseChatMathWorker),
|
|
10328
10436
|
'Chat.setUseChatNetworkWorkerForRequests': wrapCommand(setUseChatNetworkWorkerForRequests),
|
|
10329
10437
|
'Chat.terminate': terminate,
|
|
@@ -10331,15 +10439,15 @@ const commandMap = {
|
|
|
10331
10439
|
};
|
|
10332
10440
|
|
|
10333
10441
|
const sendMessagePortToChatCoordinatorWorker = async port => {
|
|
10334
|
-
|
|
10335
|
-
await
|
|
10442
|
+
const command = 'HandleMessagePort.handleMessagePort';
|
|
10443
|
+
await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToChatCoordinatorWorker', port, command);
|
|
10336
10444
|
};
|
|
10337
10445
|
const initializeChatCoordinatorWorker = async () => {
|
|
10338
10446
|
const rpc = await create$4({
|
|
10339
10447
|
commandMap: {},
|
|
10340
10448
|
send: sendMessagePortToChatCoordinatorWorker
|
|
10341
10449
|
});
|
|
10342
|
-
set
|
|
10450
|
+
set(rpc);
|
|
10343
10451
|
};
|
|
10344
10452
|
|
|
10345
10453
|
const sendMessagePortToChatMathWorker = async port => {
|
|
@@ -10350,7 +10458,7 @@ const initializeChatMathWorker = async () => {
|
|
|
10350
10458
|
commandMap: {},
|
|
10351
10459
|
send: sendMessagePortToChatMathWorker
|
|
10352
10460
|
});
|
|
10353
|
-
set$
|
|
10461
|
+
set$5(rpc);
|
|
10354
10462
|
};
|
|
10355
10463
|
|
|
10356
10464
|
const send = port => {
|
|
@@ -10361,7 +10469,7 @@ const initializeChatNetworkWorker = async () => {
|
|
|
10361
10469
|
commandMap: {},
|
|
10362
10470
|
send
|
|
10363
10471
|
});
|
|
10364
|
-
set$
|
|
10472
|
+
set$4(rpc);
|
|
10365
10473
|
};
|
|
10366
10474
|
|
|
10367
10475
|
const listen = async () => {
|
|
@@ -10369,7 +10477,7 @@ const listen = async () => {
|
|
|
10369
10477
|
const rpc = await create$3({
|
|
10370
10478
|
commandMap: commandMap
|
|
10371
10479
|
});
|
|
10372
|
-
set$
|
|
10480
|
+
set$2(rpc);
|
|
10373
10481
|
await Promise.all([initializeChatNetworkWorker(), initializeChatMathWorker(), initializeChatCoordinatorWorker()]);
|
|
10374
10482
|
};
|
|
10375
10483
|
|