@brainpilot/web 0.0.5 → 0.0.7
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/assets/index-DWOsU22G.css +1 -0
- package/dist/assets/index-j3rGyO6m.js +445 -0
- package/dist/index.html +2 -2
- package/package.json +6 -3
- package/src/__tests__/agentsReducer.test.ts +67 -0
- package/src/__tests__/api.test.ts +118 -0
- package/src/__tests__/chatScrollBehavior.test.ts +48 -0
- package/src/__tests__/chatScrollMemory.test.ts +49 -0
- package/src/__tests__/demoConversation.test.ts +96 -0
- package/src/__tests__/demoReset.test.ts +24 -0
- package/src/__tests__/internalToolStrip.test.ts +108 -0
- package/src/__tests__/runningToast.test.ts +29 -0
- package/src/__tests__/tokenUsage.test.ts +48 -0
- package/src/__tests__/toolDisplay.test.ts +55 -0
- package/src/__tests__/traceReducer.test.ts +62 -0
- package/src/components/chat/MessageStream.tsx +104 -56
- package/src/components/chat/PromptComposer.tsx +120 -29
- package/src/components/chat/chatScrollMemory.ts +49 -0
- package/src/components/demo/DemoView.tsx +98 -29
- package/src/components/demo/TraceNodeModal.tsx +6 -2
- package/src/components/demo/demoBundle.ts +7 -2
- package/src/components/demo/demoReset.ts +16 -0
- package/src/components/session/AgentNetwork.tsx +68 -75
- package/src/components/session/AgentTraceViews.tsx +35 -70
- package/src/components/session/AnalyticsTab.tsx +58 -224
- package/src/components/session/TraceGraphView.tsx +36 -30
- package/src/components/session/TraceNodeDetail.tsx +61 -24
- package/src/components/session/agentNetworkShared.ts +10 -0
- package/src/components/session/traceLayout.ts +32 -0
- package/src/components/settings/SettingsDialog.tsx +19 -1
- package/src/components/shell/DesktopShell.tsx +72 -17
- package/src/components/sidebar/SessionList.tsx +127 -0
- package/src/components/sidebar/Sidebar.tsx +94 -98
- package/src/contexts/SSEContext.tsx +90 -1
- package/src/contexts/SessionContext.tsx +397 -43
- package/src/contexts/agentsReducer.ts +49 -0
- package/src/contexts/messageGroups.ts +56 -0
- package/src/contexts/messageReducer.ts +4 -0
- package/src/contexts/runningToast.ts +33 -0
- package/src/contexts/traceReducer.ts +62 -0
- package/src/contexts/turnTimer.test.ts +97 -0
- package/src/contexts/turnTimer.ts +108 -0
- package/src/contexts/useTurnTimer.ts +104 -0
- package/src/contracts/backend.ts +53 -2
- package/src/i18n/messages/analytics.ts +16 -6
- package/src/i18n/messages/chat.ts +26 -4
- package/src/i18n/messages/contexts.ts +2 -0
- package/src/i18n/messages/network.ts +13 -9
- package/src/i18n/messages/profile.ts +4 -0
- package/src/i18n/messages/settings.ts +4 -0
- package/src/i18n/messages/shell.ts +2 -0
- package/src/i18n/messages/trace.ts +69 -17
- package/src/mocks/backend.ts +7 -0
- package/src/styles/global.css +289 -70
- package/src/utils/api.ts +105 -8
- package/src/utils/toolDisplay.ts +74 -0
- package/dist/assets/index-C-8G4D4j.js +0 -448
- package/dist/assets/index-C501m5OS.css +0 -1
|
@@ -2,18 +2,25 @@ import { defineMessages } from "../types";
|
|
|
2
2
|
|
|
3
3
|
export default defineMessages(
|
|
4
4
|
{
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
"chat.generating": "正在生成...",
|
|
6
|
+
"chat.streamingPending": "正在组织回复…",
|
|
7
|
+
"chat.totalTime": "本轮对话用时 {time}",
|
|
8
|
+
"chat.turnTimeRunning": "本轮进行中 {time}",
|
|
9
|
+
"chat.stoppedByUser": "已停止本轮任务",
|
|
7
10
|
"chat.streaming": "生成中",
|
|
8
11
|
"chat.toolPrefix": "工具:{name}",
|
|
9
12
|
"chat.thinkingSteps": "思考过程 · {count} 步",
|
|
10
13
|
"chat.toolCall": "调用工具:{name}",
|
|
14
|
+
"chat.toolArgs": "参数",
|
|
15
|
+
"chat.toolResult": "返回",
|
|
11
16
|
"chat.thinking": "思考中…",
|
|
12
17
|
"chat.heading": "要在 BrainPilot 中研究什么?",
|
|
13
18
|
"chat.aria.messages": "对话消息",
|
|
14
19
|
"chat.messageCount": "{count} 条消息",
|
|
15
20
|
"chat.aria.expandThinking": "展开思考过程",
|
|
16
21
|
"chat.agentThinking": "智能体思考中",
|
|
22
|
+
"chat.agentWorking": "{name} 正在工作",
|
|
23
|
+
"chat.agentsWorking": "{names} 正在工作",
|
|
17
24
|
"chat.aria.stop": "停止生成",
|
|
18
25
|
"chat.stop": "停止",
|
|
19
26
|
"chat.aria.newPrompt": "新的研究提问",
|
|
@@ -24,6 +31,10 @@ export default defineMessages(
|
|
|
24
31
|
"chat.modelPlaceholder": "模型",
|
|
25
32
|
"chat.aria.voice": "语音输入",
|
|
26
33
|
"chat.aria.attachFile": "添加文件",
|
|
34
|
+
"chat.aria.removeAttachment": "移除附件",
|
|
35
|
+
"chat.upload.failed": "上传失败:{msg}",
|
|
36
|
+
"chat.upload.uploading": "正在上传…",
|
|
37
|
+
"chat.upload.notice": "[已上传文件:{names}]",
|
|
27
38
|
"chat.aria.send": "发送消息",
|
|
28
39
|
"chat.copy": "复制",
|
|
29
40
|
"chat.copied": "已复制",
|
|
@@ -54,18 +65,25 @@ export default defineMessages(
|
|
|
54
65
|
"chat.retry.cancelled": "已取消重试",
|
|
55
66
|
},
|
|
56
67
|
{
|
|
57
|
-
|
|
58
|
-
|
|
68
|
+
"chat.generating": "Generating...",
|
|
69
|
+
"chat.streamingPending": "Preparing the response...",
|
|
70
|
+
"chat.totalTime": "Total time: {time}",
|
|
71
|
+
"chat.turnTimeRunning": "In progress {time}",
|
|
72
|
+
"chat.stoppedByUser": "Turn stopped",
|
|
59
73
|
"chat.streaming": "streaming",
|
|
60
74
|
"chat.toolPrefix": "Tool: {name}",
|
|
61
75
|
"chat.thinkingSteps": "Thinking · {count} steps",
|
|
62
76
|
"chat.toolCall": "Calling tool: {name}",
|
|
77
|
+
"chat.toolArgs": "Args",
|
|
78
|
+
"chat.toolResult": "Result",
|
|
63
79
|
"chat.thinking": "Thinking…",
|
|
64
80
|
"chat.heading": "What would you like to research in BrainPilot?",
|
|
65
81
|
"chat.aria.messages": "Conversation messages",
|
|
66
82
|
"chat.messageCount": "{count} messages",
|
|
67
83
|
"chat.aria.expandThinking": "Expand thinking process",
|
|
68
84
|
"chat.agentThinking": "Agent is thinking",
|
|
85
|
+
"chat.agentWorking": "{name} is working",
|
|
86
|
+
"chat.agentsWorking": "{names} are working",
|
|
69
87
|
"chat.aria.stop": "Stop generating",
|
|
70
88
|
"chat.stop": "stop",
|
|
71
89
|
"chat.aria.newPrompt": "New research prompt",
|
|
@@ -76,6 +94,10 @@ export default defineMessages(
|
|
|
76
94
|
"chat.modelPlaceholder": "Model",
|
|
77
95
|
"chat.aria.voice": "Voice input",
|
|
78
96
|
"chat.aria.attachFile": "Attach file",
|
|
97
|
+
"chat.aria.removeAttachment": "Remove attachment",
|
|
98
|
+
"chat.upload.failed": "Upload failed: {msg}",
|
|
99
|
+
"chat.upload.uploading": "Uploading…",
|
|
100
|
+
"chat.upload.notice": "[Uploaded file: {names}]",
|
|
79
101
|
"chat.aria.send": "Send message",
|
|
80
102
|
"chat.copy": "Copy",
|
|
81
103
|
"chat.copied": "Copied",
|
|
@@ -10,6 +10,7 @@ export default defineMessages(
|
|
|
10
10
|
"ctx.session.newSession": "新研究会话",
|
|
11
11
|
"ctx.session.noConnection": "实时连接尚未建立",
|
|
12
12
|
"ctx.session.sendFailed": "发送失败",
|
|
13
|
+
"ctx.session.sendTimeout": "发送超时,请重试",
|
|
13
14
|
"ctx.session.interruptFailed": "中断失败",
|
|
14
15
|
"ctx.session.refreshFailed": "刷新消息失败",
|
|
15
16
|
"ctx.sandbox.loadFailed": "加载沙箱失败",
|
|
@@ -28,6 +29,7 @@ export default defineMessages(
|
|
|
28
29
|
"ctx.session.newSession": "New research session",
|
|
29
30
|
"ctx.session.noConnection": "Live connection not established yet",
|
|
30
31
|
"ctx.session.sendFailed": "Failed to send",
|
|
32
|
+
"ctx.session.sendTimeout": "Send timed out — please retry",
|
|
31
33
|
"ctx.session.interruptFailed": "Failed to interrupt",
|
|
32
34
|
"ctx.session.refreshFailed": "Failed to refresh messages",
|
|
33
35
|
"ctx.sandbox.loadFailed": "Failed to load sandbox",
|
|
@@ -12,8 +12,9 @@ export default defineMessages(
|
|
|
12
12
|
"network.legend.dormant": "休眠",
|
|
13
13
|
"network.legend.error": "错误",
|
|
14
14
|
"network.legend.delegate": "委派",
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
"network.legend.result": "结果",
|
|
16
|
+
"network.legend.counter": "{live} 个参与 · {running} 运行中 · {edges} 条连线 · {msgs} 条消息",
|
|
17
|
+
"network.available.summary": "{count} 个可用但未参与的 Agent",
|
|
17
18
|
|
|
18
19
|
// Aria labels
|
|
19
20
|
"network.aria.legend": "网络图例",
|
|
@@ -47,9 +48,10 @@ export default defineMessages(
|
|
|
47
48
|
"network.detail.responsibility": "职责",
|
|
48
49
|
"network.detail.status": "状态",
|
|
49
50
|
"network.detail.state": "状态",
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
"network.detail.currentTask": "当前任务",
|
|
52
|
+
"network.detail.idleWaiting": "空闲 — 等待指令",
|
|
53
|
+
"network.detail.runningTask": "正在处理任务",
|
|
54
|
+
"network.detail.notSpawnedByPrincipal": "尚未由 Principal 创建",
|
|
53
55
|
"network.detail.updated": "更新于",
|
|
54
56
|
"network.detail.communication": "通信",
|
|
55
57
|
"network.detail.commCount": "{sent} 已发送 · {received} 已接收",
|
|
@@ -107,7 +109,8 @@ export default defineMessages(
|
|
|
107
109
|
"network.legend.error": "error",
|
|
108
110
|
"network.legend.delegate": "delegate",
|
|
109
111
|
"network.legend.result": "result",
|
|
110
|
-
|
|
112
|
+
"network.legend.counter": "{live} active · {running} running · {edges} links · {msgs} messages",
|
|
113
|
+
"network.available.summary": "{count} available agents not used",
|
|
111
114
|
|
|
112
115
|
"network.aria.legend": "Network legend",
|
|
113
116
|
"network.aria.viewport": "Agent collaboration network",
|
|
@@ -136,9 +139,10 @@ export default defineMessages(
|
|
|
136
139
|
"network.detail.responsibility": "Responsibility",
|
|
137
140
|
"network.detail.status": "Status",
|
|
138
141
|
"network.detail.state": "State",
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
+
"network.detail.currentTask": "Current task",
|
|
143
|
+
"network.detail.idleWaiting": "Idle — waiting for instructions",
|
|
144
|
+
"network.detail.runningTask": "Working on the task",
|
|
145
|
+
"network.detail.notSpawnedByPrincipal": "Not yet spawned by Principal",
|
|
142
146
|
"network.detail.updated": "Updated",
|
|
143
147
|
"network.detail.communication": "Communication",
|
|
144
148
|
"network.detail.commCount": "{sent} sent · {received} received",
|
|
@@ -14,6 +14,8 @@ export default defineMessages(
|
|
|
14
14
|
"profile.engineer.desc": "将科学意图转化为可运行的代码,管理环境、数据管线、统计计算与可视化,并保证可复现性。",
|
|
15
15
|
"profile.writer.role": "科学写作 · 报告",
|
|
16
16
|
"profile.writer.desc": "将研究发现转化为清晰、严谨的论文、文档与报告,并针对受众进行调整。",
|
|
17
|
+
"profile.auditor.role": "稽核 · 杜撰检测",
|
|
18
|
+
"profile.auditor.desc": "在主研究员交付前,依据会话的真实执行记录(Bash 输出、文件写入、轨迹图、信箱)逐条核验报告中的数字、文件路径与外部引用,标记无证据支撑的杜撰主张。仅核对“主张是否有证据”,不评判科学正确性;为顾问角色,最终由主研究员决定是否采纳。",
|
|
17
19
|
"profile.user.role": "人类用户",
|
|
18
20
|
"profile.user.desc": "通过聊天提示驱动会话的人类研究者。",
|
|
19
21
|
"profile.default.role": "专家 · 领域 Agent",
|
|
@@ -32,6 +34,8 @@ export default defineMessages(
|
|
|
32
34
|
"profile.engineer.desc": "Translates scientific intent into working code, manages environments, data pipelines, statistical computation and visualization with reproducibility guarantees.",
|
|
33
35
|
"profile.writer.role": "Scientific writing · Reporting",
|
|
34
36
|
"profile.writer.desc": "Transforms research findings into clear, rigorous papers, documentation and reports tailored to the audience.",
|
|
37
|
+
"profile.auditor.role": "Audit · Fabrication detection",
|
|
38
|
+
"profile.auditor.desc": "Before the principal delivers its final report, cross-checks every numeric claim, file path and external citation against the session's actual execution record (Bash output, file writes, the Graph of Trace, the mailbox) and flags fabricated claims with no supporting evidence. Judges only whether claims match evidence, not scientific correctness; advisory — the principal makes the final call.",
|
|
35
39
|
"profile.user.role": "Human user",
|
|
36
40
|
"profile.user.desc": "The human researcher driving the session through chat prompts.",
|
|
37
41
|
"profile.default.role": "Expert · Domain agent",
|
|
@@ -65,6 +65,8 @@ export default defineMessages(
|
|
|
65
65
|
"settings.providerForm.close": "关闭服务商表单",
|
|
66
66
|
"settings.providerForm.name": "服务商名称",
|
|
67
67
|
"settings.providerForm.baseUrl": "基础 URL",
|
|
68
|
+
"settings.providerForm.protocol": "协议",
|
|
69
|
+
"settings.providerForm.protocolAria": "提供商协议",
|
|
68
70
|
"settings.providerForm.apiKey": "API 密钥",
|
|
69
71
|
"settings.providerForm.apiKeyKeep": "(留空则保持不变)",
|
|
70
72
|
"settings.providerForm.hideKey": "隐藏 API 密钥",
|
|
@@ -153,6 +155,8 @@ export default defineMessages(
|
|
|
153
155
|
"settings.providerForm.close": "Close provider form",
|
|
154
156
|
"settings.providerForm.name": "Provider name",
|
|
155
157
|
"settings.providerForm.baseUrl": "Base URL",
|
|
158
|
+
"settings.providerForm.protocol": "Protocol",
|
|
159
|
+
"settings.providerForm.protocolAria": "Provider protocol",
|
|
156
160
|
"settings.providerForm.apiKey": "API key",
|
|
157
161
|
"settings.providerForm.apiKeyKeep": "(leave blank to keep current)",
|
|
158
162
|
"settings.providerForm.hideKey": "Hide API key",
|
|
@@ -11,6 +11,7 @@ export default defineMessages(
|
|
|
11
11
|
"shell.view.chat": "对话",
|
|
12
12
|
"shell.view.agents": "智能体",
|
|
13
13
|
"shell.view.trace": "轨迹",
|
|
14
|
+
"shell.view.traceUpdated": "轨迹有新更新",
|
|
14
15
|
"shell.aria.refreshMessages": "刷新消息",
|
|
15
16
|
"shell.terminal.minimize": "最小化终端",
|
|
16
17
|
"shell.terminal.open": "打开终端",
|
|
@@ -28,6 +29,7 @@ export default defineMessages(
|
|
|
28
29
|
"shell.view.chat": "Chat",
|
|
29
30
|
"shell.view.agents": "Agents",
|
|
30
31
|
"shell.view.trace": "Trace",
|
|
32
|
+
"shell.view.traceUpdated": "Trace has new updates",
|
|
31
33
|
"shell.aria.refreshMessages": "Refresh messages",
|
|
32
34
|
"shell.terminal.minimize": "Minimize terminal",
|
|
33
35
|
"shell.terminal.open": "Open terminal",
|
|
@@ -12,11 +12,26 @@ export default defineMessages(
|
|
|
12
12
|
"trace.title": "Trace",
|
|
13
13
|
"trace.loadFailed": "加载 Trace 失败",
|
|
14
14
|
"trace.aria.layoutDir": "Trace 布局方向",
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
"trace.aria.refreshControls": "Trace 刷新控制",
|
|
16
|
+
"trace.aria.refresh": "刷新 Trace",
|
|
17
|
+
"trace.layout.horizontal": "横向",
|
|
18
|
+
"trace.layout.vertical": "纵向",
|
|
19
|
+
"trace.liveTitle": "Trace 随事件实时更新",
|
|
20
|
+
"trace.live": "实时",
|
|
21
|
+
"trace.node.auto": "自动捕获",
|
|
22
|
+
"trace.node.autoTitle": "由系统在回合结束时自动记录(非 Agent 主动调用)",
|
|
23
|
+
"trace.node.noneSelected": "尚未选择 Trace 节点。",
|
|
24
|
+
"trace.node.parentFallback": "上游任务",
|
|
25
|
+
"trace.node.tools": "{count} 个工具",
|
|
26
|
+
"trace.node.artifacts": "{count} 个产物",
|
|
27
|
+
"trace.node.dependencies": "依赖关系",
|
|
28
|
+
"trace.node.toolCalls": "工具调用",
|
|
29
|
+
"trace.node.error": "错误",
|
|
30
|
+
"trace.node.artifactsTitle": "产物",
|
|
31
|
+
"trace.node.timeline": "时间线",
|
|
32
|
+
"trace.node.created": "创建",
|
|
33
|
+
"trace.node.children": "后续任务",
|
|
34
|
+
"trace.emptyNoSession": "创建或选择会话后,这里会显示任务分解和 Agent 协作轨迹。",
|
|
20
35
|
"trace.untitled": "未命名会话",
|
|
21
36
|
"trace.focus": "聚焦:{focus}",
|
|
22
37
|
"trace.nodes": "{visible}/{total} 个节点",
|
|
@@ -39,10 +54,21 @@ export default defineMessages(
|
|
|
39
54
|
"trace.aria.pause": "暂停回放",
|
|
40
55
|
"trace.aria.play": "开始回放",
|
|
41
56
|
"trace.aria.playbackProgress": "回放进度",
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
57
|
+
"trace.status.done": "完成",
|
|
58
|
+
"trace.status.running": "进行中",
|
|
59
|
+
"trace.kind.task": "任务",
|
|
60
|
+
"trace.kind.trace": "轨迹",
|
|
61
|
+
"trace.kind.action": "行动",
|
|
62
|
+
"trace.kind.observation": "观察",
|
|
63
|
+
"trace.kind.decision": "决策",
|
|
64
|
+
"trace.kind.milestone": "里程碑",
|
|
65
|
+
"trace.kind.validation": "验证",
|
|
66
|
+
"trace.kind.audit": "审计",
|
|
67
|
+
"trace.kind.writing": "写作",
|
|
68
|
+
"trace.kind.research": "研究",
|
|
69
|
+
"trace.kind.step": "步骤",
|
|
70
|
+
},
|
|
71
|
+
{
|
|
46
72
|
"trace.agents.eyebrow": "Live agent network",
|
|
47
73
|
"trace.agents.title": "Agents",
|
|
48
74
|
"trace.agents.emptyNoSession": "Once you create or select a session, the agents involved in the current task and the message flow between them will appear here.",
|
|
@@ -51,11 +77,26 @@ export default defineMessages(
|
|
|
51
77
|
"trace.title": "Trace",
|
|
52
78
|
"trace.loadFailed": "Failed to load trace",
|
|
53
79
|
"trace.aria.layoutDir": "Trace layout direction",
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
80
|
+
"trace.aria.refreshControls": "Trace refresh controls",
|
|
81
|
+
"trace.aria.refresh": "Refresh trace",
|
|
82
|
+
"trace.layout.horizontal": "Horizontal",
|
|
83
|
+
"trace.layout.vertical": "Vertical",
|
|
84
|
+
"trace.liveTitle": "Trace updates live as events arrive",
|
|
85
|
+
"trace.live": "Live",
|
|
86
|
+
"trace.node.auto": "Auto-captured",
|
|
87
|
+
"trace.node.autoTitle": "Recorded automatically at turn end by the system (not an explicit agent call)",
|
|
88
|
+
"trace.node.noneSelected": "No trace node selected.",
|
|
89
|
+
"trace.node.parentFallback": "Upstream task",
|
|
90
|
+
"trace.node.tools": "{count} tools",
|
|
91
|
+
"trace.node.artifacts": "{count} artifacts",
|
|
92
|
+
"trace.node.dependencies": "Dependencies",
|
|
93
|
+
"trace.node.toolCalls": "Tool calls",
|
|
94
|
+
"trace.node.error": "Error",
|
|
95
|
+
"trace.node.artifactsTitle": "Artifacts",
|
|
96
|
+
"trace.node.timeline": "Timeline",
|
|
97
|
+
"trace.node.created": "Created",
|
|
98
|
+
"trace.node.children": "Next tasks",
|
|
99
|
+
"trace.emptyNoSession": "Once you create or select a session, the task breakdown and agent collaboration trace will appear here.",
|
|
59
100
|
"trace.untitled": "Untitled session",
|
|
60
101
|
"trace.focus": "Focus: {focus}",
|
|
61
102
|
"trace.nodes": "{visible}/{total} nodes",
|
|
@@ -78,7 +119,18 @@ export default defineMessages(
|
|
|
78
119
|
"trace.aria.pause": "Pause playback",
|
|
79
120
|
"trace.aria.play": "Play playback",
|
|
80
121
|
"trace.aria.playbackProgress": "Playback progress",
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
122
|
+
"trace.status.done": "done",
|
|
123
|
+
"trace.status.running": "running",
|
|
124
|
+
"trace.kind.task": "Task",
|
|
125
|
+
"trace.kind.trace": "Trace",
|
|
126
|
+
"trace.kind.action": "Action",
|
|
127
|
+
"trace.kind.observation": "Observation",
|
|
128
|
+
"trace.kind.decision": "Decision",
|
|
129
|
+
"trace.kind.milestone": "Milestone",
|
|
130
|
+
"trace.kind.validation": "Validation",
|
|
131
|
+
"trace.kind.audit": "Audit",
|
|
132
|
+
"trace.kind.writing": "Writing",
|
|
133
|
+
"trace.kind.research": "Research",
|
|
134
|
+
"trace.kind.step": "Step",
|
|
135
|
+
},
|
|
84
136
|
);
|
package/src/mocks/backend.ts
CHANGED
|
@@ -73,6 +73,9 @@ let mockProviders: ProviderProfile[] = [
|
|
|
73
73
|
id: "provider-anthropic",
|
|
74
74
|
name: "Anthropic",
|
|
75
75
|
baseUrl: "https://api.anthropic.com",
|
|
76
|
+
api: "anthropic-messages",
|
|
77
|
+
adapter: "anthropic",
|
|
78
|
+
isShared: false,
|
|
76
79
|
models: ["claude-sonnet-4-6", "claude-opus-4-6", "claude-haiku-4-5-20251001"],
|
|
77
80
|
icon: "sparkles",
|
|
78
81
|
iconColor: "#111111",
|
|
@@ -502,6 +505,9 @@ export const mockBackend = {
|
|
|
502
505
|
id: crypto.randomUUID(),
|
|
503
506
|
name: data.name,
|
|
504
507
|
baseUrl: data.baseUrl,
|
|
508
|
+
api: data.api ?? "anthropic-messages",
|
|
509
|
+
adapter: data.adapter ?? "auto",
|
|
510
|
+
isShared: false,
|
|
505
511
|
models: data.models || [],
|
|
506
512
|
icon: data.icon || "circle",
|
|
507
513
|
iconColor: data.iconColor || "#111111",
|
|
@@ -529,6 +535,7 @@ export const mockBackend = {
|
|
|
529
535
|
...profile,
|
|
530
536
|
...(data.name !== undefined ? { name: data.name } : {}),
|
|
531
537
|
...(data.baseUrl !== undefined ? { baseUrl: data.baseUrl } : {}),
|
|
538
|
+
...(data.api !== undefined ? { api: data.api } : {}),
|
|
532
539
|
...(data.models !== undefined ? { models: data.models } : {}),
|
|
533
540
|
...(data.icon !== undefined ? { icon: data.icon } : {}),
|
|
534
541
|
...(data.iconColor !== undefined ? { iconColor: data.iconColor } : {}),
|