@blade-hq/agent-client 2610.0.0-beta.26 → 2610.0.0-beta.27
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/README.md +3 -1
- package/dist/blade-client.d.ts +0 -2
- package/dist/index.js +11 -12
- package/dist/index.js.map +1 -1
- package/dist/schemas/projection.d.ts +2 -0
- package/dist/session/agent-session.d.ts +0 -3
- package/dist/types/socket-events.d.ts +0 -6
- package/package.json +1 -1
- package/public-api.md +1 -2
package/README.md
CHANGED
|
@@ -82,10 +82,12 @@ new BladeClient({
|
|
|
82
82
|
baseUrl: "https://blade.example.com", // 后端地址;同域部署可传 ""
|
|
83
83
|
token: "sk-blade-xxx", // 可选:PAT。不传则用 cookie 或 login()
|
|
84
84
|
tokenStorage: "local", // 可选:login() 的令牌存哪("local" 默认 / "memory")
|
|
85
|
-
streamTokens: false, // 可选:只接收完成态内容,不订阅逐 token 增量
|
|
86
85
|
})
|
|
87
86
|
```
|
|
88
87
|
|
|
88
|
+
SDK 会固定订阅普通聊天所需的完整实时事件。产品内置 Web 的精简/开发者展示模式不属于
|
|
89
|
+
公共 SDK 契约,也没有对应的构造参数或 Socket.IO 字段。
|
|
90
|
+
|
|
89
91
|
> **`baseUrl` 填哪个地址?** 必须是 Blade Agent 后端的地址(形如 `http://<主机>:8020`),只要域名和端口、不带路径。
|
|
90
92
|
> 注意别填成你平时打开的 Blade OS 地址(同主机的 `:80`)—— 那是另一套接口,SDK 连不上。
|
|
91
93
|
|
package/dist/blade-client.d.ts
CHANGED
|
@@ -23,8 +23,6 @@ export interface BladeClientOptions {
|
|
|
23
23
|
tokenStorage?: TokenStorageMode;
|
|
24
24
|
fetchImpl?: typeof fetch;
|
|
25
25
|
onRefreshSuccess?: () => void | Promise<void>;
|
|
26
|
-
/** 是否订阅逐 token 增量,默认 true。关闭后仍接收完整消息和语义事件。 */
|
|
27
|
-
streamTokens?: boolean;
|
|
28
26
|
}
|
|
29
27
|
export declare class BladeClient {
|
|
30
28
|
private refreshPromise;
|
package/dist/index.js
CHANGED
|
@@ -352,8 +352,7 @@ var HeadlessResource = class {
|
|
|
352
352
|
socket.on("system:error", onSystemError);
|
|
353
353
|
socket.emit("session:subscribe", {
|
|
354
354
|
session_id,
|
|
355
|
-
event_format: "raw"
|
|
356
|
-
stream_tokens: this.client.options.streamTokens !== false
|
|
355
|
+
event_format: "raw"
|
|
357
356
|
});
|
|
358
357
|
socket.emit(
|
|
359
358
|
"chat:send",
|
|
@@ -1027,12 +1026,14 @@ function toolStatusFromResult(result) {
|
|
|
1027
1026
|
var BUILTIN_CONTEXT_TITLES = {
|
|
1028
1027
|
"agent-instructions": "\u9879\u76EE\u8BF4\u660E",
|
|
1029
1028
|
"skill-catalog": "\u53EF\u7528\u80FD\u529B",
|
|
1030
|
-
"runtime-context": "\u5F53\u524D\u5DE5\u4F5C\u73AF\u5883"
|
|
1029
|
+
"runtime-context": "\u5F53\u524D\u5DE5\u4F5C\u73AF\u5883",
|
|
1030
|
+
"workspace-context": "\u5F53\u524D\u5DE5\u4F5C\u533A\u73AF\u5883"
|
|
1031
1031
|
};
|
|
1032
1032
|
var BUILTIN_CONTEXT_DETAILS = {
|
|
1033
1033
|
"agent-instructions": "\u8FD9\u4E9B\u8BF4\u660E\u4F1A\u5E2E\u52A9\u667A\u80FD\u4F53\u7406\u89E3\u5F53\u524D\u9879\u76EE\u548C\u5DE5\u4F5C\u8981\u6C42\u3002",
|
|
1034
1034
|
"skill-catalog": "\u8FD9\u4E9B\u80FD\u529B\u4F1A\u5E2E\u52A9\u667A\u80FD\u4F53\u9009\u62E9\u5408\u9002\u7684\u65B9\u5F0F\u5B8C\u6210\u4EFB\u52A1\u3002",
|
|
1035
|
-
"runtime-context": "\u8FD9\u4E9B\u4FE1\u606F\u4F1A\u5E2E\u52A9\u667A\u80FD\u4F53\u4E86\u89E3\u5F53\u524D\u6587\u4EF6\u5939\u548C\u8FD0\u884C\u6761\u4EF6\u3002"
|
|
1035
|
+
"runtime-context": "\u8FD9\u4E9B\u4FE1\u606F\u4F1A\u5E2E\u52A9\u667A\u80FD\u4F53\u4E86\u89E3\u5F53\u524D\u6587\u4EF6\u5939\u548C\u8FD0\u884C\u6761\u4EF6\u3002",
|
|
1036
|
+
"workspace-context": "\u8FD9\u4E9B\u4FE1\u606F\u4F1A\u5E2E\u52A9\u667A\u80FD\u4F53\u4E86\u89E3\u5F53\u524D\u5DE5\u4F5C\u76EE\u5F55\u3001\u6587\u4EF6\u548C\u8FD0\u884C\u73AF\u5883\u3002"
|
|
1036
1037
|
};
|
|
1037
1038
|
function nonEmptyString(value) {
|
|
1038
1039
|
return typeof value === "string" && value.trim() ? value.trim() : null;
|
|
@@ -1060,7 +1061,7 @@ function contextProjectionData(fields) {
|
|
|
1060
1061
|
function getContextDisplayState(context) {
|
|
1061
1062
|
const title = BUILTIN_CONTEXT_TITLES[context.context_kind] ?? nonEmptyString(context.display_title) ?? "\u5BF9\u8BDD\u80CC\u666F";
|
|
1062
1063
|
const isRemoved = context.context_action === "removed";
|
|
1063
|
-
const summary = nonEmptyString(context.display_summary) ?? (isRemoved ? "\u5DF2\u505C\u6B62\u7528\u4E8E\u540E\u7EED\u5BF9\u8BDD" : context.context_action === "retained" ? "\u7EE7\u7EED\u7528\u4E8E\u540E\u7EED\u5BF9\u8BDD" : context.context_kind === "agent-instructions" ? "\u5DF2\u66F4\u65B0\u672C\u6B21\u5BF9\u8BDD\u4F7F\u7528\u7684\u9879\u76EE\u8BF4\u660E" : context.context_kind === "skill-catalog" ? "\u5DF2\u66F4\u65B0\u672C\u6B21\u53EF\u7528\u80FD\u529B" : context.context_kind === "runtime-context" ? "\u5DF2\u66F4\u65B0\u672C\u6B21\u5DE5\u4F5C\u73AF\u5883" : "\u5DF2\u66F4\u65B0\u672C\u6B21\u5BF9\u8BDD\u80CC\u666F");
|
|
1064
|
+
const summary = nonEmptyString(context.display_summary) ?? (isRemoved ? "\u5DF2\u505C\u6B62\u7528\u4E8E\u540E\u7EED\u5BF9\u8BDD" : context.context_action === "retained" ? "\u7EE7\u7EED\u7528\u4E8E\u540E\u7EED\u5BF9\u8BDD" : context.context_kind === "agent-instructions" ? "\u5DF2\u66F4\u65B0\u672C\u6B21\u5BF9\u8BDD\u4F7F\u7528\u7684\u9879\u76EE\u8BF4\u660E" : context.context_kind === "skill-catalog" ? "\u5DF2\u66F4\u65B0\u672C\u6B21\u53EF\u7528\u80FD\u529B" : context.context_kind === "runtime-context" ? "\u5DF2\u66F4\u65B0\u672C\u6B21\u5DE5\u4F5C\u73AF\u5883" : context.context_kind === "workspace-context" ? "\u5DF2\u66F4\u65B0\u672C\u6B21\u5DE5\u4F5C\u533A\u73AF\u5883" : "\u5DF2\u66F4\u65B0\u672C\u6B21\u5BF9\u8BDD\u80CC\u666F");
|
|
1064
1065
|
const detail = isRemoved ? `${title}\u5DF2\u4E0D\u518D\u7528\u4E8E\u540E\u7EED\u5BF9\u8BDD\u3002` : BUILTIN_CONTEXT_DETAILS[context.context_kind] ?? "\u8FD9\u4E9B\u4FE1\u606F\u4F1A\u5E2E\u52A9\u667A\u80FD\u4F53\u7406\u89E3\u5F53\u524D\u4EFB\u52A1\u3002";
|
|
1065
1066
|
return { title, summary, detail, isRemoved };
|
|
1066
1067
|
}
|
|
@@ -1074,6 +1075,7 @@ function buildContextTurn(entry, sequence) {
|
|
|
1074
1075
|
return null;
|
|
1075
1076
|
}
|
|
1076
1077
|
const display = isRecord2(entry.data.display) ? entry.data.display : {};
|
|
1078
|
+
const message = isRecord2(entry.message) ? entry.message : {};
|
|
1077
1079
|
const context = contextProjectionData({
|
|
1078
1080
|
context_kind: typeof entry.source.kind === "string" ? entry.source.kind : null,
|
|
1079
1081
|
context_key: typeof entry.source.key === "string" ? entry.source.key : null,
|
|
@@ -1100,6 +1102,7 @@ function buildContextTurn(entry, sequence) {
|
|
|
1100
1102
|
model: null,
|
|
1101
1103
|
usage: null,
|
|
1102
1104
|
duration_ms: 0,
|
|
1105
|
+
context_content: Object.hasOwn(message, "content") ? message.content : null,
|
|
1103
1106
|
...context
|
|
1104
1107
|
};
|
|
1105
1108
|
}
|
|
@@ -3540,7 +3543,6 @@ var AgentSession = class _AgentSession {
|
|
|
3540
3543
|
const session = new _AgentSession(
|
|
3541
3544
|
sessionId,
|
|
3542
3545
|
{
|
|
3543
|
-
streamTokens: false,
|
|
3544
3546
|
emitEvent: readonlyError,
|
|
3545
3547
|
emitWithAck: async () => readonlyError(),
|
|
3546
3548
|
ensureConnected: readonlyError,
|
|
@@ -3695,8 +3697,7 @@ var AgentSession = class _AgentSession {
|
|
|
3695
3697
|
thinking_override: options.thinkingOverride,
|
|
3696
3698
|
whatif: options.whatif,
|
|
3697
3699
|
replay_decision: options.replayDecision,
|
|
3698
|
-
app_context: appContext
|
|
3699
|
-
kb_ids: options.kbIds && options.kbIds.length > 0 ? options.kbIds : void 0
|
|
3700
|
+
app_context: appContext
|
|
3700
3701
|
};
|
|
3701
3702
|
try {
|
|
3702
3703
|
await this.ensureJoined();
|
|
@@ -4273,8 +4274,7 @@ var AgentSession = class _AgentSession {
|
|
|
4273
4274
|
{
|
|
4274
4275
|
session_id: this.sessionId,
|
|
4275
4276
|
event_format: "raw",
|
|
4276
|
-
resume: true
|
|
4277
|
-
stream_tokens: this.runtime.streamTokens
|
|
4277
|
+
resume: true
|
|
4278
4278
|
},
|
|
4279
4279
|
5e3
|
|
4280
4280
|
).then((response) => {
|
|
@@ -4411,7 +4411,6 @@ var SessionHub = class {
|
|
|
4411
4411
|
}
|
|
4412
4412
|
runtimeFor() {
|
|
4413
4413
|
return {
|
|
4414
|
-
streamTokens: this.client.options?.streamTokens !== false,
|
|
4415
4414
|
emitEvent: (event, data) => {
|
|
4416
4415
|
;
|
|
4417
4416
|
this.client.socket().emit(event, data);
|
|
@@ -4651,7 +4650,7 @@ function resolveAuthToken(options) {
|
|
|
4651
4650
|
|
|
4652
4651
|
// src/version.ts
|
|
4653
4652
|
var SDK_NAME = "agent-client";
|
|
4654
|
-
var SDK_VERSION = true ? "2610.0.0-beta.
|
|
4653
|
+
var SDK_VERSION = true ? "2610.0.0-beta.27" : "1.1.1";
|
|
4655
4654
|
|
|
4656
4655
|
// src/socket.ts
|
|
4657
4656
|
function withSdkIdentity(auth) {
|