@opentiny/next-sdk 0.1.14 → 0.1.15-beta.1
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/agent/AgentModelProvider.ts +539 -21
- package/agent/type.ts +12 -6
- package/agent/utils/generateReActPrompt.ts +55 -0
- package/agent/utils/parseReActAction.ts +34 -0
- package/dist/McpSdk.d.ts +14 -0
- package/dist/WebAgent.d.ts +5 -0
- package/dist/WebMcp.d.ts +20 -0
- package/dist/WebMcpClient.d.ts +389 -1152
- package/dist/WebMcpServer.d.ts +79 -78
- package/dist/Zod.d.ts +1 -0
- package/dist/agent/AgentModelProvider.d.ts +40 -4
- package/dist/agent/type.d.ts +13 -3
- package/dist/agent/utils/generateReActPrompt.d.ts +9 -0
- package/dist/agent/utils/getAISDKTools.d.ts +1 -0
- package/dist/agent/utils/parseReActAction.d.ts +14 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.es.dev.js +36351 -34349
- package/dist/index.es.js +28821 -25466
- package/dist/index.js +3880 -25
- package/dist/index.umd.dev.js +34228 -32226
- package/dist/index.umd.js +220 -128
- package/dist/mcpsdk@1.24.3.dev.js +22539 -0
- package/dist/mcpsdk@1.24.3.es.dev.js +22537 -0
- package/dist/mcpsdk@1.24.3.es.js +16781 -0
- package/dist/mcpsdk@1.24.3.js +43 -0
- package/dist/remoter/createRemoter.d.ts +9 -0
- package/dist/remoter/tooltips.d.ts +36 -0
- package/dist/script/utils.d.ts +1 -0
- package/dist/transport/ExtensionClientTransport.d.ts +3 -2
- package/dist/transport/ExtensionContentServerTransport.d.ts +3 -2
- package/dist/transport/ExtensionPageServerTransport.d.ts +4 -4
- package/dist/vite-build-tsc.d.ts +2 -0
- package/dist/vite.config.d.ts +2 -0
- package/dist/vite.config.mcpSdk.d.ts +2 -0
- package/dist/vite.config.webAgent.d.ts +2 -0
- package/dist/vite.config.webMcp.d.ts +2 -0
- package/dist/vite.config.webMcpFull.d.ts +2 -0
- package/dist/vite.config.zod.d.ts +2 -0
- package/dist/webagent.dev.js +24690 -20960
- package/dist/webagent.es.dev.js +24032 -20302
- package/dist/webagent.es.js +25326 -20723
- package/dist/webagent.js +209 -110
- package/dist/webmcp-full.dev.js +21225 -20021
- package/dist/webmcp-full.es.dev.js +21223 -20019
- package/dist/webmcp-full.es.js +16710 -14437
- package/dist/webmcp-full.js +42 -15
- package/dist/webmcp.dev.js +14 -22
- package/dist/webmcp.es.dev.js +12 -20
- package/dist/webmcp.es.js +172 -179
- package/dist/webmcp.js +1 -1
- package/dist/zod@3.25.76.dev.js +30 -32
- package/dist/zod@3.25.76.es.dev.js +28 -30
- package/dist/zod@3.25.76.es.js +143 -145
- package/dist/zod@3.25.76.js +1 -1
- package/package.json +11 -9
- package/remoter/createRemoter.ts +126 -71
- package/remoter/tooltips.ts +260 -0
- package/transport/ExtensionPageServerTransport.ts +2 -4
- package/tsconfig.json +5 -3
- package/vite-build-tsc.ts +60 -0
- package/vite-env.d.ts +5 -0
- package/dist/WebMcpClient.js +0 -363
- package/dist/WebMcpServer.js +0 -283
- package/dist/agent/AgentModelProvider.js +0 -293
- package/dist/agent/type.js +0 -1
- package/dist/agent/utils/getAISDKTools.js +0 -36
- package/dist/mcpsdk@1.17.0.dev.js +0 -21391
- package/dist/mcpsdk@1.17.0.es.dev.js +0 -21389
- package/dist/mcpsdk@1.17.0.es.js +0 -14505
- package/dist/mcpsdk@1.17.0.js +0 -16
- package/dist/remoter/QrCode.js +0 -55
- package/dist/remoter/createRemoter.js +0 -743
- package/dist/transport/ExtensionClientTransport.js +0 -81
- package/dist/transport/ExtensionContentServerTransport.js +0 -128
- package/dist/transport/ExtensionPageServerTransport.js +0 -118
- package/dist/transport/messages.js +0 -51
- package/dist/utils/uuid.js +0 -10
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { ToolSet } from 'ai'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 生成 ReAct 模式的工具描述提示词(统一使用 XML 格式)
|
|
5
|
+
* 将工具集合转换为 ReAct 格式的文本描述,用于添加到系统提示词中
|
|
6
|
+
* @param tools - 工具集合对象
|
|
7
|
+
* @returns 格式化的工具描述字符串
|
|
8
|
+
*/
|
|
9
|
+
export function generateReActToolsPrompt(tools: ToolSet): string {
|
|
10
|
+
const toolEntries = Object.entries(tools)
|
|
11
|
+
|
|
12
|
+
// 如果没有工具,返回空字符串
|
|
13
|
+
if (toolEntries.length === 0) {
|
|
14
|
+
return ''
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
let prompt = '\n\n# 工具调用\n\n'
|
|
18
|
+
prompt += '你可以根据需要调用以下工具:\n\n'
|
|
19
|
+
prompt += '<tools>\n'
|
|
20
|
+
|
|
21
|
+
// 遍历所有工具,生成工具描述
|
|
22
|
+
toolEntries.forEach(([toolName, tool]) => {
|
|
23
|
+
const toolInfo = tool as any
|
|
24
|
+
const description = toolInfo.description || '无描述'
|
|
25
|
+
const schema = toolInfo.parameters || toolInfo.inputSchema || {}
|
|
26
|
+
|
|
27
|
+
// 构造类似 OpenAI function 的格式但放在 XML 中
|
|
28
|
+
const toolJson = {
|
|
29
|
+
name: toolName,
|
|
30
|
+
description: description,
|
|
31
|
+
parameters: schema
|
|
32
|
+
}
|
|
33
|
+
prompt += `${JSON.stringify(toolJson, null, 2)}\n`
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
prompt += '</tools>\n\n'
|
|
37
|
+
prompt += '## 工具调用格式\n\n'
|
|
38
|
+
prompt += '要调用工具,请使用以下 XML 格式:\n'
|
|
39
|
+
prompt += 'Thought: [你的思考过程]\n'
|
|
40
|
+
prompt += '<tool_call>{"name": "toolName", "arguments": {"arg1": "value1"}}</tool_call>\n\n'
|
|
41
|
+
prompt += '工具执行后,你将收到 <tool_response> 格式的结果。你可以继续思考或调用其他工具。\n\n'
|
|
42
|
+
prompt += '## 使用示例\n\n'
|
|
43
|
+
prompt += '如果用户要求"获取今天的日期",你可以这样调用工具:\n'
|
|
44
|
+
prompt += 'Thought: 用户想要获取今天的日期,我需要调用日期相关的工具。\n'
|
|
45
|
+
prompt += '<tool_call>{"name": "get-today", "arguments": {}}</tool_call>\n\n'
|
|
46
|
+
prompt += '然后等待工具返回结果(Observation),再根据结果给出最终答案。\n\n'
|
|
47
|
+
prompt += '## 任务完成\n\n'
|
|
48
|
+
prompt += '当任务完成或无法继续时,直接给出最终答案即可。\n\n'
|
|
49
|
+
prompt += '**重要提示**:\n'
|
|
50
|
+
prompt += '- 必须严格按照 XML 格式调用工具\n'
|
|
51
|
+
prompt += '- arguments 必须是有效的 JSON 格式\n'
|
|
52
|
+
prompt += '- 如果不需要调用工具,直接给出最终答案即可\n'
|
|
53
|
+
|
|
54
|
+
return prompt
|
|
55
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ToolSet } from 'ai'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 解析 ReAct 格式的工具调用
|
|
5
|
+
* 从模型输出文本中提取工具名称和参数
|
|
6
|
+
* 现在统一使用 XML 格式(<call> 标签),同时保留对其他格式的兼容性支持
|
|
7
|
+
* @param text - 模型输出的文本
|
|
8
|
+
* @param availableTools - 可用的工具集合,用于验证工具名称
|
|
9
|
+
* @returns 解析出的工具调用信息,如果未找到则返回 null
|
|
10
|
+
*/
|
|
11
|
+
export function parseReActAction(text: string, availableTools: ToolSet): { toolName: string; arguments: any } | null {
|
|
12
|
+
if (!text || typeof text !== 'string') {
|
|
13
|
+
return null
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// XML 格式 <tool_call>
|
|
17
|
+
const toolCallMatchLegacy = text.match(/<tool_call>([\s\S]*?)<\/tool_call>/i)
|
|
18
|
+
if (toolCallMatchLegacy) {
|
|
19
|
+
try {
|
|
20
|
+
const jsonContent = toolCallMatchLegacy[1].trim()
|
|
21
|
+
const parsed = JSON.parse(jsonContent)
|
|
22
|
+
const toolName = parsed.name || parsed.action || parsed.tool
|
|
23
|
+
const args = parsed.arguments || parsed.args || parsed.input || {}
|
|
24
|
+
|
|
25
|
+
if (toolName && availableTools[toolName]) {
|
|
26
|
+
return { toolName, arguments: args }
|
|
27
|
+
}
|
|
28
|
+
} catch {
|
|
29
|
+
// 解析失败,继续尝试其他方法
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return null
|
|
34
|
+
}
|
package/dist/McpSdk.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { default as Ajv } from 'ajv';
|
|
2
|
+
|
|
3
|
+
export { Ajv };
|
|
4
|
+
export * from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
export * from '@modelcontextprotocol/sdk/shared/uriTemplate.js';
|
|
6
|
+
export * from '@modelcontextprotocol/sdk/server/completable.js';
|
|
7
|
+
export * from '@modelcontextprotocol/sdk/shared/metadataUtils.js';
|
|
8
|
+
export * from '@modelcontextprotocol/sdk/client/index.js';
|
|
9
|
+
export * from '@modelcontextprotocol/sdk/client/auth.js';
|
|
10
|
+
export * from '@modelcontextprotocol/sdk/client/sse.js';
|
|
11
|
+
export * from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
12
|
+
export * from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
13
|
+
export * from '@modelcontextprotocol/sdk/shared/transport.js';
|
|
14
|
+
export * from '@modelcontextprotocol/sdk/shared/protocol.js';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { AgentModelProvider } from './agent/AgentModelProvider';
|
|
2
|
+
export { createRemoter } from './remoter/createRemoter';
|
|
3
|
+
export { getAISDKTools } from './agent/utils/getAISDKTools';
|
|
4
|
+
export { QrCode, type QrCodeOption } from './remoter/QrCode';
|
|
5
|
+
export type * from './agent/type';
|
package/dist/WebMcp.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { default as Ajv } from 'ajv';
|
|
2
|
+
|
|
3
|
+
export * from './WebMcpServer';
|
|
4
|
+
export * from './WebMcpClient';
|
|
5
|
+
export { Ajv };
|
|
6
|
+
export { z } from 'zod';
|
|
7
|
+
export { AuthClientProvider } from '@opentiny/next';
|
|
8
|
+
export { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
9
|
+
export { UriTemplate } from '@modelcontextprotocol/sdk/shared/uriTemplate.js';
|
|
10
|
+
export { completable } from '@modelcontextprotocol/sdk/server/completable.js';
|
|
11
|
+
export { getDisplayName } from '@modelcontextprotocol/sdk/shared/metadataUtils.js';
|
|
12
|
+
export type * from 'zod';
|
|
13
|
+
export type * from '@opentiny/next';
|
|
14
|
+
export type * from '@modelcontextprotocol/sdk/types.js';
|
|
15
|
+
export type * from '@modelcontextprotocol/sdk/shared/protocol.js';
|
|
16
|
+
export type * from '@modelcontextprotocol/sdk/shared/transport.js';
|
|
17
|
+
export type * from '@modelcontextprotocol/sdk/client/sse.js';
|
|
18
|
+
export type * from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
19
|
+
export type * from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
20
|
+
export * from './transport/ExtensionPageServerTransport';
|