@bike4mind/cli 0.2.29-feat-cli-websocket-streaming.18879 → 0.2.29-feat-cli-websocket-streaming.18880
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/index.js +33 -24
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -13484,9 +13484,10 @@ var WebSocketLlmBackend = class {
|
|
|
13484
13484
|
this.apiClient = options.apiClient;
|
|
13485
13485
|
this.currentModel = options.model;
|
|
13486
13486
|
this.tokenGetter = options.tokenGetter;
|
|
13487
|
+
this.wsCompletionUrl = options.wsCompletionUrl;
|
|
13487
13488
|
}
|
|
13488
13489
|
/**
|
|
13489
|
-
*
|
|
13490
|
+
* Send completion request via HTTP POST, receive streaming response via WebSocket.
|
|
13490
13491
|
* Collects all streamed chunks, then calls callback once at completion
|
|
13491
13492
|
* with the full accumulated content.
|
|
13492
13493
|
*/
|
|
@@ -13500,10 +13501,6 @@ var WebSocketLlmBackend = class {
|
|
|
13500
13501
|
throw new Error("WebSocket is not connected");
|
|
13501
13502
|
}
|
|
13502
13503
|
const requestId = uuidv411();
|
|
13503
|
-
const token = await this.tokenGetter();
|
|
13504
|
-
if (!token) {
|
|
13505
|
-
throw new Error("No access token available");
|
|
13506
|
-
}
|
|
13507
13504
|
return new Promise((resolve3, reject) => {
|
|
13508
13505
|
const isVerbose = process.env.B4M_VERBOSE === "1";
|
|
13509
13506
|
const isUltraVerbose = process.env.B4M_DEBUG_STREAM === "1";
|
|
@@ -13584,10 +13581,10 @@ var WebSocketLlmBackend = class {
|
|
|
13584
13581
|
settleReject(new Error(errorMsg));
|
|
13585
13582
|
}
|
|
13586
13583
|
});
|
|
13587
|
-
|
|
13588
|
-
|
|
13589
|
-
|
|
13590
|
-
|
|
13584
|
+
const axiosInstance = this.apiClient.getAxiosInstance();
|
|
13585
|
+
axiosInstance.post(
|
|
13586
|
+
this.wsCompletionUrl,
|
|
13587
|
+
{
|
|
13591
13588
|
requestId,
|
|
13592
13589
|
model,
|
|
13593
13590
|
messages,
|
|
@@ -13597,10 +13594,12 @@ var WebSocketLlmBackend = class {
|
|
|
13597
13594
|
stream: true,
|
|
13598
13595
|
tools: options.tools || []
|
|
13599
13596
|
}
|
|
13600
|
-
}
|
|
13601
|
-
|
|
13602
|
-
|
|
13603
|
-
|
|
13597
|
+
},
|
|
13598
|
+
{ signal: options.abortSignal }
|
|
13599
|
+
).catch((err) => {
|
|
13600
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
13601
|
+
settleReject(new Error(`HTTP request failed: ${msg}`));
|
|
13602
|
+
});
|
|
13604
13603
|
});
|
|
13605
13604
|
}
|
|
13606
13605
|
/**
|
|
@@ -13757,7 +13756,13 @@ var WebSocketConnectionManager = class {
|
|
|
13757
13756
|
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
|
|
13758
13757
|
throw new Error("WebSocket is not connected");
|
|
13759
13758
|
}
|
|
13760
|
-
|
|
13759
|
+
const payload = JSON.stringify(data);
|
|
13760
|
+
const sizeKB = (payload.length / 1024).toFixed(1);
|
|
13761
|
+
logger.debug(`[WS] Sending ${sizeKB} KB (action: ${data.action})`);
|
|
13762
|
+
if (payload.length > 32e3) {
|
|
13763
|
+
logger.warn(`[WS] Payload ${sizeKB} KB exceeds API Gateway 32 KB frame limit \u2014 connection will be closed`);
|
|
13764
|
+
}
|
|
13765
|
+
this.ws.send(payload);
|
|
13761
13766
|
}
|
|
13762
13767
|
/**
|
|
13763
13768
|
* Register a handler for messages matching a specific requestId.
|
|
@@ -14048,7 +14053,7 @@ import { isAxiosError as isAxiosError2 } from "axios";
|
|
|
14048
14053
|
// package.json
|
|
14049
14054
|
var package_default = {
|
|
14050
14055
|
name: "@bike4mind/cli",
|
|
14051
|
-
version: "0.2.29-feat-cli-websocket-streaming.
|
|
14056
|
+
version: "0.2.29-feat-cli-websocket-streaming.18880+855c924c8",
|
|
14052
14057
|
type: "module",
|
|
14053
14058
|
description: "Interactive CLI tool for Bike4Mind with ReAct agents",
|
|
14054
14059
|
license: "UNLICENSED",
|
|
@@ -14158,10 +14163,10 @@ var package_default = {
|
|
|
14158
14163
|
},
|
|
14159
14164
|
devDependencies: {
|
|
14160
14165
|
"@bike4mind/agents": "0.1.0",
|
|
14161
|
-
"@bike4mind/common": "2.50.1-feat-cli-websocket-streaming.
|
|
14162
|
-
"@bike4mind/mcp": "1.29.1-feat-cli-websocket-streaming.
|
|
14163
|
-
"@bike4mind/services": "2.48.1-feat-cli-websocket-streaming.
|
|
14164
|
-
"@bike4mind/utils": "2.5.1-feat-cli-websocket-streaming.
|
|
14166
|
+
"@bike4mind/common": "2.50.1-feat-cli-websocket-streaming.18880+855c924c8",
|
|
14167
|
+
"@bike4mind/mcp": "1.29.1-feat-cli-websocket-streaming.18880+855c924c8",
|
|
14168
|
+
"@bike4mind/services": "2.48.1-feat-cli-websocket-streaming.18880+855c924c8",
|
|
14169
|
+
"@bike4mind/utils": "2.5.1-feat-cli-websocket-streaming.18880+855c924c8",
|
|
14165
14170
|
"@types/better-sqlite3": "^7.6.13",
|
|
14166
14171
|
"@types/diff": "^5.0.9",
|
|
14167
14172
|
"@types/jsonwebtoken": "^9.0.4",
|
|
@@ -14178,7 +14183,7 @@ var package_default = {
|
|
|
14178
14183
|
optionalDependencies: {
|
|
14179
14184
|
"@vscode/ripgrep": "^1.17.0"
|
|
14180
14185
|
},
|
|
14181
|
-
gitHead: "
|
|
14186
|
+
gitHead: "855c924c80996fa2e1ed1f16b536416809a8b87c"
|
|
14182
14187
|
};
|
|
14183
14188
|
|
|
14184
14189
|
// src/config/constants.ts
|
|
@@ -16113,9 +16118,12 @@ function CliApp() {
|
|
|
16113
16118
|
let wsManager = null;
|
|
16114
16119
|
let llm;
|
|
16115
16120
|
try {
|
|
16116
|
-
const serverConfig = await apiClient.get(
|
|
16121
|
+
const serverConfig = await apiClient.get(
|
|
16122
|
+
"/api/settings/serverConfig"
|
|
16123
|
+
);
|
|
16117
16124
|
const wsUrl = serverConfig?.websocketUrl;
|
|
16118
|
-
|
|
16125
|
+
const wsCompletionUrl = serverConfig?.wsCompletionUrl;
|
|
16126
|
+
if (wsUrl && wsCompletionUrl) {
|
|
16119
16127
|
wsManager = new WebSocketConnectionManager(wsUrl, tokenGetter);
|
|
16120
16128
|
await wsManager.connect();
|
|
16121
16129
|
const wsToolExecutor2 = new WebSocketToolExecutor(wsManager, tokenGetter);
|
|
@@ -16124,11 +16132,12 @@ function CliApp() {
|
|
|
16124
16132
|
wsManager,
|
|
16125
16133
|
apiClient,
|
|
16126
16134
|
model: config.defaultModel,
|
|
16127
|
-
tokenGetter
|
|
16135
|
+
tokenGetter,
|
|
16136
|
+
wsCompletionUrl
|
|
16128
16137
|
});
|
|
16129
16138
|
logger.debug("\u{1F50C} Using WebSocket transport (bypasses CloudFront timeout)");
|
|
16130
16139
|
} else {
|
|
16131
|
-
throw new Error("No websocketUrl in server config");
|
|
16140
|
+
throw new Error("No websocketUrl or wsCompletionUrl in server config");
|
|
16132
16141
|
}
|
|
16133
16142
|
} catch (wsError) {
|
|
16134
16143
|
logger.debug(
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bike4mind/cli",
|
|
3
|
-
"version": "0.2.29-feat-cli-websocket-streaming.
|
|
3
|
+
"version": "0.2.29-feat-cli-websocket-streaming.18880+855c924c8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Interactive CLI tool for Bike4Mind with ReAct agents",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -110,10 +110,10 @@
|
|
|
110
110
|
},
|
|
111
111
|
"devDependencies": {
|
|
112
112
|
"@bike4mind/agents": "0.1.0",
|
|
113
|
-
"@bike4mind/common": "2.50.1-feat-cli-websocket-streaming.
|
|
114
|
-
"@bike4mind/mcp": "1.29.1-feat-cli-websocket-streaming.
|
|
115
|
-
"@bike4mind/services": "2.48.1-feat-cli-websocket-streaming.
|
|
116
|
-
"@bike4mind/utils": "2.5.1-feat-cli-websocket-streaming.
|
|
113
|
+
"@bike4mind/common": "2.50.1-feat-cli-websocket-streaming.18880+855c924c8",
|
|
114
|
+
"@bike4mind/mcp": "1.29.1-feat-cli-websocket-streaming.18880+855c924c8",
|
|
115
|
+
"@bike4mind/services": "2.48.1-feat-cli-websocket-streaming.18880+855c924c8",
|
|
116
|
+
"@bike4mind/utils": "2.5.1-feat-cli-websocket-streaming.18880+855c924c8",
|
|
117
117
|
"@types/better-sqlite3": "^7.6.13",
|
|
118
118
|
"@types/diff": "^5.0.9",
|
|
119
119
|
"@types/jsonwebtoken": "^9.0.4",
|
|
@@ -130,5 +130,5 @@
|
|
|
130
130
|
"optionalDependencies": {
|
|
131
131
|
"@vscode/ripgrep": "^1.17.0"
|
|
132
132
|
},
|
|
133
|
-
"gitHead": "
|
|
133
|
+
"gitHead": "855c924c80996fa2e1ed1f16b536416809a8b87c"
|
|
134
134
|
}
|