@acosmi/sdk-ts 2.19.3 → 2.19.5
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/CHANGELOG.md +22 -0
- package/README.md +27 -2
- package/dist/browser/index.mjs +537 -372
- package/dist/browser/index.mjs.map +1 -1
- package/dist/index.mjs +537 -372
- package/dist/index.mjs.map +1 -1
- package/dist/node/adapters/anthropic.cjs +0 -7
- package/dist/node/adapters/anthropic.cjs.map +1 -1
- package/dist/node/adapters/anthropic.d.cts +1 -1
- package/dist/node/adapters/anthropic.d.ts +1 -1
- package/dist/node/adapters/anthropic.mjs +0 -7
- package/dist/node/adapters/anthropic.mjs.map +1 -1
- package/dist/node/adapters/openai.cjs +114 -24
- package/dist/node/adapters/openai.cjs.map +1 -1
- package/dist/node/adapters/openai.d.cts +2 -2
- package/dist/node/adapters/openai.d.ts +2 -2
- package/dist/node/adapters/openai.mjs +114 -24
- package/dist/node/adapters/openai.mjs.map +1 -1
- package/dist/node/{index-CqxPqbsl.d.cts → format-DWA12pVT.d.cts} +35 -27
- package/dist/node/{index-CqxPqbsl.d.ts → format-DWA12pVT.d.ts} +35 -27
- package/dist/node/index.cjs +538 -371
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +157 -16
- package/dist/node/index.d.ts +157 -16
- package/dist/node/index.mjs +537 -372
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/{openai-mkTSir6E.d.ts → openai-Cuu_DPxM.d.cts} +34 -4
- package/dist/node/{openai-Ce85qh14.d.cts → openai-DsbJUOOW.d.ts} +34 -4
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as ProviderAdapter, p as ProviderFormat, n as ModelCapabilities, e as ChatRequest, f as ChatResponse,
|
|
1
|
+
import { P as ProviderAdapter, p as ProviderFormat, n as ModelCapabilities, e as ChatRequest, f as ChatResponse, z as StreamEvent } from './format-DWA12pVT.cjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Anthropic 内容块
|
|
@@ -121,8 +121,18 @@ declare class OpenAIStreamConverter {
|
|
|
121
121
|
private toolArgsAccum;
|
|
122
122
|
/** 上一次解析出的 tool 键,供缺 index 且缺 id 的后续增量沿用。 */
|
|
123
123
|
private lastToolKey;
|
|
124
|
-
/** 已发出 message_delta/message_stop,避免 finish_reason
|
|
124
|
+
/** 已发出 message_delta/message_stop,避免 finish_reason、usage 尾帧、`[DONE]` 与
|
|
125
|
+
* {@link flush} 重复收口 —— 整条流恰好一个 message_stop。 */
|
|
125
126
|
private messageClosed;
|
|
127
|
+
/** 已为仍打开的块发出 content_block_stop。与 {@link messageClosed} 分开记:块在
|
|
128
|
+
* finish_reason 帧上就关,message_delta/message_stop 却可能推迟到之后的帧。 */
|
|
129
|
+
private blocksClosed;
|
|
130
|
+
/** [W-QUAD-CHAIN-20260914] finish_reason 已到、但 message_delta/message_stop 因等待
|
|
131
|
+
* usage 尾帧而推迟时记下的 stop_reason;没有推迟中的收尾时为 null。 */
|
|
132
|
+
private pendingStopReason;
|
|
133
|
+
/** [W-QUAD-CHAIN-20260914] 最近一次带 usage 对象的帧搬出的 usage(后到覆盖先到);
|
|
134
|
+
* 整条流从未出现 usage 对象时为 null,收尾 message_delta 据此不写 usage 键。 */
|
|
135
|
+
private usage;
|
|
126
136
|
/**
|
|
127
137
|
* 解析一条 tool_call delta 归属的块键。
|
|
128
138
|
*
|
|
@@ -134,13 +144,24 @@ declare class OpenAIStreamConverter {
|
|
|
134
144
|
*/
|
|
135
145
|
private resolveToolKey;
|
|
136
146
|
/**
|
|
137
|
-
* 关闭仍打开的 text / thinking / tool
|
|
147
|
+
* 关闭仍打开的 text / thinking / tool 块(整条流只关一次)。
|
|
138
148
|
*
|
|
139
149
|
* 由 `finish_reason` 分支与 `[DONE]` 分支共用:上游断流或只发 `[DONE]` 而不发
|
|
140
150
|
* `finish_reason` 时,此前一个 `content_block_stop` 都不会发,下游拿到的是一个
|
|
141
151
|
* 永不闭合的 tool_use 块。
|
|
152
|
+
*
|
|
153
|
+
* [W-QUAD-CHAIN-20260914] 此前关块与 message_delta/message_stop 是同一个方法里同一时刻
|
|
154
|
+
* 的事;usage 尾帧要求收尾推迟,于是拆成本方法与 {@link emitMessageEnd} 两段,各自防重。
|
|
155
|
+
*/
|
|
156
|
+
private closeContentBlocks;
|
|
157
|
+
/**
|
|
158
|
+
* 发出 message_delta + message_stop,整条流只发一次;同时清掉推迟中的收尾。
|
|
159
|
+
*
|
|
160
|
+
* 见过 usage 对象就把它放进 message_delta:usage 必须出现在唯一的 message_stop 之前,
|
|
161
|
+
* message_stop 之后下游已无处安放用量。整条流从未出现 usage 对象时不写 usage 键 ——
|
|
162
|
+
* 缺席表示「上游没给」,不是 0。
|
|
142
163
|
*/
|
|
143
|
-
private
|
|
164
|
+
private emitMessageEnd;
|
|
144
165
|
/**
|
|
145
166
|
* 将一行 OpenAI SSE data 转换为零或多个 Anthropic 格式 StreamEvent
|
|
146
167
|
* 返回 { events, done }
|
|
@@ -149,6 +170,15 @@ declare class OpenAIStreamConverter {
|
|
|
149
170
|
events: StreamEvent[];
|
|
150
171
|
done: boolean;
|
|
151
172
|
};
|
|
173
|
+
/**
|
|
174
|
+
* 流在**没有** `[DONE]` 的情况下结束 (EOF) 时, 由驱动方在读循环结束后调用一次。
|
|
175
|
+
*
|
|
176
|
+
* 只补发「finish_reason 已到、仅因等待 usage 尾帧而推迟」的 message_delta + message_stop。
|
|
177
|
+
* 从未收到 finish_reason 的流是被截断的流, 这里刻意**不**替它伪造正常结束 —— 一个
|
|
178
|
+
* `end_turn` 的 message_stop 会把被截断的回答当成完整回答交给下游。
|
|
179
|
+
* 已经收口 (usage 帧 / `[DONE]` / 上一次 flush) 后再调用返回空数组, 不会发出第二个 message_stop。
|
|
180
|
+
*/
|
|
181
|
+
flush(): StreamEvent[];
|
|
152
182
|
}
|
|
153
183
|
declare function newOpenAIStreamConverter(): OpenAIStreamConverter;
|
|
154
184
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as ProviderAdapter, p as ProviderFormat, n as ModelCapabilities, e as ChatRequest, f as ChatResponse,
|
|
1
|
+
import { P as ProviderAdapter, p as ProviderFormat, n as ModelCapabilities, e as ChatRequest, f as ChatResponse, z as StreamEvent } from './format-DWA12pVT.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Anthropic 内容块
|
|
@@ -121,8 +121,18 @@ declare class OpenAIStreamConverter {
|
|
|
121
121
|
private toolArgsAccum;
|
|
122
122
|
/** 上一次解析出的 tool 键,供缺 index 且缺 id 的后续增量沿用。 */
|
|
123
123
|
private lastToolKey;
|
|
124
|
-
/** 已发出 message_delta/message_stop,避免 finish_reason
|
|
124
|
+
/** 已发出 message_delta/message_stop,避免 finish_reason、usage 尾帧、`[DONE]` 与
|
|
125
|
+
* {@link flush} 重复收口 —— 整条流恰好一个 message_stop。 */
|
|
125
126
|
private messageClosed;
|
|
127
|
+
/** 已为仍打开的块发出 content_block_stop。与 {@link messageClosed} 分开记:块在
|
|
128
|
+
* finish_reason 帧上就关,message_delta/message_stop 却可能推迟到之后的帧。 */
|
|
129
|
+
private blocksClosed;
|
|
130
|
+
/** [W-QUAD-CHAIN-20260914] finish_reason 已到、但 message_delta/message_stop 因等待
|
|
131
|
+
* usage 尾帧而推迟时记下的 stop_reason;没有推迟中的收尾时为 null。 */
|
|
132
|
+
private pendingStopReason;
|
|
133
|
+
/** [W-QUAD-CHAIN-20260914] 最近一次带 usage 对象的帧搬出的 usage(后到覆盖先到);
|
|
134
|
+
* 整条流从未出现 usage 对象时为 null,收尾 message_delta 据此不写 usage 键。 */
|
|
135
|
+
private usage;
|
|
126
136
|
/**
|
|
127
137
|
* 解析一条 tool_call delta 归属的块键。
|
|
128
138
|
*
|
|
@@ -134,13 +144,24 @@ declare class OpenAIStreamConverter {
|
|
|
134
144
|
*/
|
|
135
145
|
private resolveToolKey;
|
|
136
146
|
/**
|
|
137
|
-
* 关闭仍打开的 text / thinking / tool
|
|
147
|
+
* 关闭仍打开的 text / thinking / tool 块(整条流只关一次)。
|
|
138
148
|
*
|
|
139
149
|
* 由 `finish_reason` 分支与 `[DONE]` 分支共用:上游断流或只发 `[DONE]` 而不发
|
|
140
150
|
* `finish_reason` 时,此前一个 `content_block_stop` 都不会发,下游拿到的是一个
|
|
141
151
|
* 永不闭合的 tool_use 块。
|
|
152
|
+
*
|
|
153
|
+
* [W-QUAD-CHAIN-20260914] 此前关块与 message_delta/message_stop 是同一个方法里同一时刻
|
|
154
|
+
* 的事;usage 尾帧要求收尾推迟,于是拆成本方法与 {@link emitMessageEnd} 两段,各自防重。
|
|
155
|
+
*/
|
|
156
|
+
private closeContentBlocks;
|
|
157
|
+
/**
|
|
158
|
+
* 发出 message_delta + message_stop,整条流只发一次;同时清掉推迟中的收尾。
|
|
159
|
+
*
|
|
160
|
+
* 见过 usage 对象就把它放进 message_delta:usage 必须出现在唯一的 message_stop 之前,
|
|
161
|
+
* message_stop 之后下游已无处安放用量。整条流从未出现 usage 对象时不写 usage 键 ——
|
|
162
|
+
* 缺席表示「上游没给」,不是 0。
|
|
142
163
|
*/
|
|
143
|
-
private
|
|
164
|
+
private emitMessageEnd;
|
|
144
165
|
/**
|
|
145
166
|
* 将一行 OpenAI SSE data 转换为零或多个 Anthropic 格式 StreamEvent
|
|
146
167
|
* 返回 { events, done }
|
|
@@ -149,6 +170,15 @@ declare class OpenAIStreamConverter {
|
|
|
149
170
|
events: StreamEvent[];
|
|
150
171
|
done: boolean;
|
|
151
172
|
};
|
|
173
|
+
/**
|
|
174
|
+
* 流在**没有** `[DONE]` 的情况下结束 (EOF) 时, 由驱动方在读循环结束后调用一次。
|
|
175
|
+
*
|
|
176
|
+
* 只补发「finish_reason 已到、仅因等待 usage 尾帧而推迟」的 message_delta + message_stop。
|
|
177
|
+
* 从未收到 finish_reason 的流是被截断的流, 这里刻意**不**替它伪造正常结束 —— 一个
|
|
178
|
+
* `end_turn` 的 message_stop 会把被截断的回答当成完整回答交给下游。
|
|
179
|
+
* 已经收口 (usage 帧 / `[DONE]` / 上一次 flush) 后再调用返回空数组, 不会发出第二个 message_stop。
|
|
180
|
+
*/
|
|
181
|
+
flush(): StreamEvent[];
|
|
152
182
|
}
|
|
153
183
|
declare function newOpenAIStreamConverter(): OpenAIStreamConverter;
|
|
154
184
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acosmi/sdk-ts",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.5",
|
|
4
4
|
"description": "Acosmi TypeScript SDK:模型网关、Agent Run Gateway 与 Compliance(电子证据、时间章、报告、签署 envelope)统一客户端,支持浏览器 / Node ≥18 / Deno / Bun。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/node/index.cjs",
|