@ddlqhd/agent-sdk 0.1.0 → 0.2.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/README.md +4 -2
- package/dist/{chunk-5QMA2YBY.cjs → chunk-6X7EYQLS.cjs} +782 -114
- package/dist/chunk-6X7EYQLS.cjs.map +1 -0
- package/dist/{chunk-NDSL7NPN.js → chunk-D3UZNLZO.js} +769 -71
- package/dist/chunk-D3UZNLZO.js.map +1 -0
- package/dist/{chunk-Q3SOMX26.js → chunk-EQ5CXH44.js} +772 -111
- package/dist/chunk-EQ5CXH44.js.map +1 -0
- package/dist/chunk-LOYIGOBZ.js +54 -0
- package/dist/chunk-LOYIGOBZ.js.map +1 -0
- package/dist/{chunk-OHXW2YM6.js → chunk-MEJHTQJM.js} +289 -166
- package/dist/chunk-MEJHTQJM.js.map +1 -0
- package/dist/chunk-NYZD3THB.cjs +1521 -0
- package/dist/chunk-NYZD3THB.cjs.map +1 -0
- package/dist/chunk-OZO7D77N.cjs +59 -0
- package/dist/chunk-OZO7D77N.cjs.map +1 -0
- package/dist/{chunk-JF5AJQMU.cjs → chunk-Z45DHTDX.cjs} +291 -170
- package/dist/chunk-Z45DHTDX.cjs.map +1 -0
- package/dist/cli/index.cjs +47 -39
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.js +22 -14
- package/dist/cli/index.js.map +1 -1
- package/dist/{index-DPsZ1zat.d.ts → index-Cw3SfEAB.d.ts} +20 -34
- package/dist/{index-RTPmFjMp.d.cts → index-D2Qntkn_.d.cts} +20 -34
- package/dist/index.cjs +125 -89
- package/dist/index.d.cts +62 -22
- package/dist/index.d.ts +62 -22
- package/dist/index.js +4 -4
- package/dist/models/index.cjs +19 -15
- package/dist/models/index.d.cts +55 -6
- package/dist/models/index.d.ts +55 -6
- package/dist/models/index.js +2 -2
- package/dist/tools/index.cjs +53 -61
- package/dist/tools/index.d.cts +3 -3
- package/dist/tools/index.d.ts +3 -3
- package/dist/tools/index.js +2 -2
- package/dist/{types-C0aX_Qdp.d.cts → types-CWPAYWzr.d.cts} +307 -61
- package/dist/{types-C0aX_Qdp.d.ts → types-CWPAYWzr.d.ts} +307 -61
- package/package.json +25 -14
- package/dist/chunk-5QMA2YBY.cjs.map +0 -1
- package/dist/chunk-CNSGZVRN.cjs +0 -152
- package/dist/chunk-CNSGZVRN.cjs.map +0 -1
- package/dist/chunk-JF5AJQMU.cjs.map +0 -1
- package/dist/chunk-NDSL7NPN.js.map +0 -1
- package/dist/chunk-OHXW2YM6.js.map +0 -1
- package/dist/chunk-Q3SOMX26.js.map +0 -1
- package/dist/chunk-WH3APNQ5.js +0 -147
- package/dist/chunk-WH3APNQ5.js.map +0 -1
- package/dist/chunk-X35MHWXE.cjs +0 -817
- package/dist/chunk-X35MHWXE.cjs.map +0 -1
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
|
|
4
|
+
function zodToJsonSchema(schema, options) {
|
|
5
|
+
return z.toJSONSchema(schema, options);
|
|
6
|
+
}
|
|
7
|
+
function toolsToModelSchema(tools) {
|
|
8
|
+
return tools.map((tool) => ({
|
|
9
|
+
name: tool.name,
|
|
10
|
+
description: tool.description,
|
|
11
|
+
parameters: zodToJsonSchema(tool.parameters)
|
|
12
|
+
}));
|
|
13
|
+
}
|
|
14
|
+
function mergeTokenUsage(...usages) {
|
|
15
|
+
const merged = {
|
|
16
|
+
promptTokens: 0,
|
|
17
|
+
completionTokens: 0,
|
|
18
|
+
totalTokens: 0
|
|
19
|
+
};
|
|
20
|
+
for (const usage of usages) {
|
|
21
|
+
if (usage) {
|
|
22
|
+
merged.promptTokens += usage.promptTokens;
|
|
23
|
+
merged.completionTokens += usage.completionTokens;
|
|
24
|
+
merged.totalTokens += usage.totalTokens;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return merged;
|
|
28
|
+
}
|
|
29
|
+
var BaseModelAdapter = class {
|
|
30
|
+
/** 模型能力描述 */
|
|
31
|
+
capabilities;
|
|
32
|
+
/**
|
|
33
|
+
* 转换消息格式
|
|
34
|
+
*/
|
|
35
|
+
transformMessages(messages) {
|
|
36
|
+
return messages.map((msg) => ({
|
|
37
|
+
role: msg.role,
|
|
38
|
+
content: msg.content,
|
|
39
|
+
...msg.toolCalls && { tool_calls: msg.toolCalls.map((tc) => ({
|
|
40
|
+
id: tc.id,
|
|
41
|
+
type: "function",
|
|
42
|
+
function: {
|
|
43
|
+
name: tc.name,
|
|
44
|
+
arguments: typeof tc.arguments === "string" ? tc.arguments : JSON.stringify(tc.arguments)
|
|
45
|
+
}
|
|
46
|
+
})) },
|
|
47
|
+
...msg.toolCallId && { tool_call_id: msg.toolCallId }
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export { BaseModelAdapter, mergeTokenUsage, toolsToModelSchema, zodToJsonSchema };
|
|
53
|
+
//# sourceMappingURL=chunk-LOYIGOBZ.js.map
|
|
54
|
+
//# sourceMappingURL=chunk-LOYIGOBZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/models/base.ts"],"names":[],"mappings":";;;AAkBO,SAAS,eAAA,CACd,QACA,OAAA,EACS;AACT,EAAA,OAAO,CAAA,CAAE,YAAA,CAAa,MAAA,EAAQ,OAAO,CAAA;AACvC;AAKO,SAAS,mBAAmB,KAAA,EAAuC;AACxE,EAAA,OAAO,KAAA,CAAM,IAAI,CAAA,IAAA,MAAS;AAAA,IACxB,MAAM,IAAA,CAAK,IAAA;AAAA,IACX,aAAa,IAAA,CAAK,WAAA;AAAA,IAClB,UAAA,EAAY,eAAA,CAAgB,IAAA,CAAK,UAAU;AAAA,GAC7C,CAAE,CAAA;AACJ;AAKO,SAAS,mBAAmB,MAAA,EAAgD;AACjF,EAAA,MAAM,MAAA,GAAqB;AAAA,IACzB,YAAA,EAAc,CAAA;AAAA,IACd,gBAAA,EAAkB,CAAA;AAAA,IAClB,WAAA,EAAa;AAAA,GACf;AAEA,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,MAAA,CAAO,gBAAgB,KAAA,CAAM,YAAA;AAC7B,MAAA,MAAA,CAAO,oBAAoB,KAAA,CAAM,gBAAA;AACjC,MAAA,MAAA,CAAO,eAAe,KAAA,CAAM,WAAA;AAAA,IAC9B;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT;AAKO,IAAe,mBAAf,MAAwD;AAAA;AAAA,EAI7D,YAAA;AAAA;AAAA;AAAA;AAAA,EAQU,kBAAkB,QAAA,EAA8C;AACxE,IAAA,OAAO,QAAA,CAAS,IAAI,CAAA,GAAA,MAAQ;AAAA,MAC1B,MAAM,GAAA,CAAI,IAAA;AAAA,MACV,SAAS,GAAA,CAAI,OAAA;AAAA,MACb,GAAI,IAAI,SAAA,IAAa,EAAE,YAAY,GAAA,CAAI,SAAA,CAAU,IAAI,CAAA,EAAA,MAAO;AAAA,QAC1D,IAAI,EAAA,CAAG,EAAA;AAAA,QACP,IAAA,EAAM,UAAA;AAAA,QACN,QAAA,EAAU;AAAA,UACR,MAAM,EAAA,CAAG,IAAA;AAAA,UACT,SAAA,EAAW,OAAO,EAAA,CAAG,SAAA,KAAc,QAAA,GAC/B,GAAG,SAAA,GACH,IAAA,CAAK,SAAA,CAAU,EAAA,CAAG,SAAS;AAAA;AACjC,QACA,CAAA,EAAC;AAAA,MACH,GAAI,GAAA,CAAI,UAAA,IAAc,EAAE,YAAA,EAAc,IAAI,UAAA;AAAW,KACvD,CAAE,CAAA;AAAA,EACJ;AACF","file":"chunk-LOYIGOBZ.js","sourcesContent":["import { z } from 'zod';\nimport type {\n ModelAdapter,\n ModelCapabilities,\n ModelParams,\n StreamChunk,\n CompletionResult,\n ToolDefinition,\n ToolSchema,\n TokenUsage\n} from '../core/types.js';\n\n/** Options passed through to Zod’s JSON Schema conversion (target, io, etc.). */\nexport type ZodToJsonSchemaOptions = NonNullable<Parameters<typeof z.toJSONSchema>[1]>;\n\n/**\n * 将 Zod Schema 转换为 JSON Schema(使用 Zod 4 内置转换,避免跨副本 instanceof 失效)\n */\nexport function zodToJsonSchema(\n schema: z.ZodType,\n options?: ZodToJsonSchemaOptions\n): unknown {\n return z.toJSONSchema(schema, options);\n}\n\n/**\n * 将工具定义转换为模型工具 Schema\n */\nexport function toolsToModelSchema(tools: ToolDefinition[]): ToolSchema[] {\n return tools.map(tool => ({\n name: tool.name,\n description: tool.description,\n parameters: zodToJsonSchema(tool.parameters) as Record<string, unknown>\n }));\n}\n\n/**\n * 合并 Token 使用统计\n */\nexport function mergeTokenUsage(...usages: (TokenUsage | undefined)[]): TokenUsage {\n const merged: TokenUsage = {\n promptTokens: 0,\n completionTokens: 0,\n totalTokens: 0\n };\n\n for (const usage of usages) {\n if (usage) {\n merged.promptTokens += usage.promptTokens;\n merged.completionTokens += usage.completionTokens;\n merged.totalTokens += usage.totalTokens;\n }\n }\n\n return merged;\n}\n\n/**\n * 基础模型适配器抽象类\n */\nexport abstract class BaseModelAdapter implements ModelAdapter {\n abstract readonly name: string;\n\n /** 模型能力描述 */\n capabilities?: ModelCapabilities;\n\n abstract stream(params: ModelParams): AsyncIterable<StreamChunk>;\n abstract complete(params: ModelParams): Promise<CompletionResult>;\n\n /**\n * 转换消息格式\n */\n protected transformMessages(messages: ModelParams['messages']): unknown[] {\n return messages.map(msg => ({\n role: msg.role,\n content: msg.content,\n ...(msg.toolCalls && { tool_calls: msg.toolCalls.map(tc => ({\n id: tc.id,\n type: 'function',\n function: {\n name: tc.name,\n arguments: typeof tc.arguments === 'string'\n ? tc.arguments\n : JSON.stringify(tc.arguments)\n }\n }))}),\n ...(msg.toolCallId && { tool_call_id: msg.toolCallId })\n }));\n }\n}\n"]}
|