@open-multi-agent/core 1.4.2 → 1.6.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 +135 -79
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +5 -0
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/runner.d.ts +12 -0
- package/dist/agent/runner.d.ts.map +1 -1
- package/dist/agent/runner.js +48 -12
- package/dist/agent/runner.js.map +1 -1
- package/dist/cli/oma.d.ts +10 -2
- package/dist/cli/oma.d.ts.map +1 -1
- package/dist/cli/oma.js +12 -5
- package/dist/cli/oma.js.map +1 -1
- package/dist/dashboard/render-team-run-dashboard.d.ts.map +1 -1
- package/dist/dashboard/render-team-run-dashboard.js +177 -84
- package/dist/dashboard/render-team-run-dashboard.js.map +1 -1
- package/dist/errors.d.ts +10 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +13 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/llm/adapter.d.ts +5 -1
- package/dist/llm/adapter.d.ts.map +1 -1
- package/dist/llm/adapter.js +16 -0
- package/dist/llm/adapter.js.map +1 -1
- package/dist/llm/ai-sdk.d.ts +2 -1
- package/dist/llm/ai-sdk.d.ts.map +1 -1
- package/dist/llm/ai-sdk.js +48 -13
- package/dist/llm/ai-sdk.js.map +1 -1
- package/dist/llm/anthropic.d.ts.map +1 -1
- package/dist/llm/anthropic.js +27 -13
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/azure-openai.d.ts.map +1 -1
- package/dist/llm/azure-openai.js +5 -2
- package/dist/llm/azure-openai.js.map +1 -1
- package/dist/llm/bedrock.d.ts.map +1 -1
- package/dist/llm/bedrock.js +32 -19
- package/dist/llm/bedrock.js.map +1 -1
- package/dist/llm/copilot.d.ts.map +1 -1
- package/dist/llm/copilot.js +5 -2
- package/dist/llm/copilot.js.map +1 -1
- package/dist/llm/deepseek.d.ts +9 -2
- package/dist/llm/deepseek.d.ts.map +1 -1
- package/dist/llm/deepseek.js +21 -2
- package/dist/llm/deepseek.js.map +1 -1
- package/dist/llm/doubao.d.ts +21 -0
- package/dist/llm/doubao.d.ts.map +1 -0
- package/dist/llm/doubao.js +24 -0
- package/dist/llm/doubao.js.map +1 -0
- package/dist/llm/gemini.d.ts.map +1 -1
- package/dist/llm/gemini.js +35 -18
- package/dist/llm/gemini.js.map +1 -1
- package/dist/llm/hunyuan.d.ts +40 -0
- package/dist/llm/hunyuan.d.ts.map +1 -0
- package/dist/llm/hunyuan.js +59 -0
- package/dist/llm/hunyuan.js.map +1 -0
- package/dist/llm/mimo.d.ts +24 -0
- package/dist/llm/mimo.d.ts.map +1 -0
- package/dist/llm/mimo.js +30 -0
- package/dist/llm/mimo.js.map +1 -0
- package/dist/llm/openai-common.d.ts +10 -17
- package/dist/llm/openai-common.d.ts.map +1 -1
- package/dist/llm/openai-common.js +92 -43
- package/dist/llm/openai-common.js.map +1 -1
- package/dist/llm/openai.d.ts +22 -1
- package/dist/llm/openai.d.ts.map +1 -1
- package/dist/llm/openai.js +51 -7
- package/dist/llm/openai.js.map +1 -1
- package/dist/llm/reasoning-fallback.d.ts +80 -15
- package/dist/llm/reasoning-fallback.d.ts.map +1 -1
- package/dist/llm/reasoning-fallback.js +45 -12
- package/dist/llm/reasoning-fallback.js.map +1 -1
- package/dist/llm/validate.d.ts +26 -0
- package/dist/llm/validate.d.ts.map +1 -0
- package/dist/llm/validate.js +55 -0
- package/dist/llm/validate.js.map +1 -0
- package/dist/memory/shared.d.ts +14 -7
- package/dist/memory/shared.d.ts.map +1 -1
- package/dist/memory/shared.js +97 -14
- package/dist/memory/shared.js.map +1 -1
- package/dist/orchestrator/orchestrator.d.ts +22 -1
- package/dist/orchestrator/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator/orchestrator.js +155 -32
- package/dist/orchestrator/orchestrator.js.map +1 -1
- package/dist/tool/built-in/bash.d.ts +1 -1
- package/dist/tool/built-in/bash.d.ts.map +1 -1
- package/dist/tool/built-in/bash.js +60 -7
- package/dist/tool/built-in/bash.js.map +1 -1
- package/dist/tool/built-in/file-edit.d.ts.map +1 -1
- package/dist/tool/built-in/file-edit.js +13 -8
- package/dist/tool/built-in/file-edit.js.map +1 -1
- package/dist/tool/built-in/file-read.d.ts.map +1 -1
- package/dist/tool/built-in/file-read.js +9 -4
- package/dist/tool/built-in/file-read.js.map +1 -1
- package/dist/tool/built-in/file-write.d.ts.map +1 -1
- package/dist/tool/built-in/file-write.js +11 -6
- package/dist/tool/built-in/file-write.js.map +1 -1
- package/dist/tool/built-in/fs-walk.d.ts.map +1 -1
- package/dist/tool/built-in/fs-walk.js +6 -3
- package/dist/tool/built-in/fs-walk.js.map +1 -1
- package/dist/tool/built-in/glob.d.ts.map +1 -1
- package/dist/tool/built-in/glob.js +10 -4
- package/dist/tool/built-in/glob.js.map +1 -1
- package/dist/tool/built-in/grep.d.ts.map +1 -1
- package/dist/tool/built-in/grep.js +15 -6
- package/dist/tool/built-in/grep.js.map +1 -1
- package/dist/tool/built-in/path-safety.d.ts +30 -0
- package/dist/tool/built-in/path-safety.d.ts.map +1 -0
- package/dist/tool/built-in/path-safety.js +106 -0
- package/dist/tool/built-in/path-safety.js.map +1 -0
- package/dist/tool/mcp.d.ts.map +1 -1
- package/dist/tool/mcp.js +58 -33
- package/dist/tool/mcp.js.map +1 -1
- package/dist/types.d.ts +151 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/redaction.d.ts +4 -0
- package/dist/utils/redaction.d.ts.map +1 -0
- package/dist/utils/redaction.js +78 -0
- package/dist/utils/redaction.js.map +1 -0
- package/package.json +7 -4
- package/docs/DECISIONS.md +0 -49
- package/docs/cli.md +0 -265
- package/docs/context-management.md +0 -64
- package/docs/featured-partner.md +0 -28
- package/docs/observability.md +0 -56
- package/docs/providers/minimax.md +0 -75
- package/docs/providers.md +0 -80
- package/docs/shared-memory.md +0 -27
- package/docs/tool-configuration.md +0 -152
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Pure HTML renderer for the post-run team task DAG dashboard (no filesystem or network I/O).
|
|
3
3
|
*/
|
|
4
4
|
import { layoutTasks } from './layout-tasks.js';
|
|
5
|
+
import { redactSensitiveObject } from '../utils/redaction.js';
|
|
5
6
|
/**
|
|
6
7
|
* Escape serialized JSON so it can be embedded in HTML without closing a {@code <script>} tag.
|
|
7
8
|
* The HTML tokenizer ends a script on {@code </script>} even for {@code type="application/json"}.
|
|
@@ -26,106 +27,198 @@ export function renderTeamRunDashboard(result) {
|
|
|
26
27
|
nodeH: layout.nodeH,
|
|
27
28
|
},
|
|
28
29
|
};
|
|
29
|
-
const dataJson = escapeJsonForHtmlScript(JSON.stringify(payload));
|
|
30
|
+
const dataJson = escapeJsonForHtmlScript(JSON.stringify(redactSensitiveObject(payload)));
|
|
30
31
|
return `<!DOCTYPE html>
|
|
31
32
|
<html class="dark" lang="en">
|
|
32
33
|
<head>
|
|
33
34
|
<meta charset="utf-8" />
|
|
34
35
|
<meta content="width=device-width, initial-scale=1.0" name="viewport" />
|
|
35
36
|
<title>Open Multi Agent</title>
|
|
36
|
-
<script src="https://cdn.tailwindcss.com?plugins=forms,container-queries"></script>
|
|
37
|
-
<link
|
|
38
|
-
href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=Inter:wght@400;500;600&display=swap"
|
|
39
|
-
rel="stylesheet" />
|
|
40
|
-
<link
|
|
41
|
-
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap"
|
|
42
|
-
rel="stylesheet" />
|
|
43
|
-
<script id="tailwind-config">
|
|
44
|
-
tailwind.config = {
|
|
45
|
-
darkMode: "class",
|
|
46
|
-
theme: {
|
|
47
|
-
extend: {
|
|
48
|
-
"colors": {
|
|
49
|
-
"inverse-surface": "#faf8ff",
|
|
50
|
-
"secondary-dim": "#ecb200",
|
|
51
|
-
"on-primary": "#005762",
|
|
52
|
-
"on-tertiary-fixed-variant": "#006827",
|
|
53
|
-
"primary-fixed-dim": "#00d4ec",
|
|
54
|
-
"tertiary-container": "#5cfd80",
|
|
55
|
-
"secondary": "#fdc003",
|
|
56
|
-
"primary-dim": "#00d4ec",
|
|
57
|
-
"surface-container": "#0f1930",
|
|
58
|
-
"on-secondary": "#553e00",
|
|
59
|
-
"surface": "#060e20",
|
|
60
|
-
"on-surface": "#dee5ff",
|
|
61
|
-
"surface-container-highest": "#192540",
|
|
62
|
-
"on-secondary-fixed-variant": "#674c00",
|
|
63
|
-
"on-tertiary-container": "#005d22",
|
|
64
|
-
"secondary-fixed-dim": "#f7ba00",
|
|
65
|
-
"surface-variant": "#192540",
|
|
66
|
-
"surface-container-low": "#091328",
|
|
67
|
-
"secondary-container": "#785900",
|
|
68
|
-
"tertiary-fixed-dim": "#4bee74",
|
|
69
|
-
"on-primary-fixed-variant": "#005762",
|
|
70
|
-
"primary-container": "#00e3fd",
|
|
71
|
-
"surface-dim": "#060e20",
|
|
72
|
-
"error-container": "#9f0519",
|
|
73
|
-
"on-error-container": "#ffa8a3",
|
|
74
|
-
"primary-fixed": "#00e3fd",
|
|
75
|
-
"tertiary-dim": "#4bee74",
|
|
76
|
-
"surface-container-high": "#141f38",
|
|
77
|
-
"background": "#060e20",
|
|
78
|
-
"surface-bright": "#1f2b49",
|
|
79
|
-
"error-dim": "#d7383b",
|
|
80
|
-
"on-primary-container": "#004d57",
|
|
81
|
-
"outline": "#6d758c",
|
|
82
|
-
"error": "#ff716c",
|
|
83
|
-
"on-secondary-container": "#fff6ec",
|
|
84
|
-
"on-primary-fixed": "#003840",
|
|
85
|
-
"inverse-on-surface": "#4d556b",
|
|
86
|
-
"secondary-fixed": "#ffca4d",
|
|
87
|
-
"tertiary-fixed": "#5cfd80",
|
|
88
|
-
"on-tertiary-fixed": "#004819",
|
|
89
|
-
"surface-tint": "#81ecff",
|
|
90
|
-
"tertiary": "#b8ffbb",
|
|
91
|
-
"outline-variant": "#40485d",
|
|
92
|
-
"on-error": "#490006",
|
|
93
|
-
"on-surface-variant": "#a3aac4",
|
|
94
|
-
"surface-container-lowest": "#000000",
|
|
95
|
-
"on-tertiary": "#006727",
|
|
96
|
-
"primary": "#81ecff",
|
|
97
|
-
"on-secondary-fixed": "#443100",
|
|
98
|
-
"inverse-primary": "#006976",
|
|
99
|
-
"on-background": "#dee5ff"
|
|
100
|
-
},
|
|
101
|
-
"borderRadius": {
|
|
102
|
-
"DEFAULT": "0px",
|
|
103
|
-
"lg": "0px",
|
|
104
|
-
"xl": "0px",
|
|
105
|
-
"full": "9999px"
|
|
106
|
-
},
|
|
107
|
-
"fontFamily": {
|
|
108
|
-
"headline": ["Space Grotesk"],
|
|
109
|
-
"body": ["Inter"],
|
|
110
|
-
"label": ["Space Grotesk"]
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
},
|
|
114
|
-
}
|
|
115
|
-
</script>
|
|
116
37
|
<style>
|
|
38
|
+
:root {
|
|
39
|
+
--surface: #060e20;
|
|
40
|
+
--surface-container: #0f1930;
|
|
41
|
+
--surface-container-high: #141f38;
|
|
42
|
+
--surface-container-low: #091328;
|
|
43
|
+
--surface-container-lowest: #000000;
|
|
44
|
+
--surface-variant: #192540;
|
|
45
|
+
--on-surface: #dee5ff;
|
|
46
|
+
--on-surface-variant: #a3aac4;
|
|
47
|
+
--primary: #81ecff;
|
|
48
|
+
--secondary: #fdc003;
|
|
49
|
+
--tertiary: #b8ffbb;
|
|
50
|
+
--error: #ff716c;
|
|
51
|
+
--outline: #6d758c;
|
|
52
|
+
--outline-variant: #40485d;
|
|
53
|
+
}
|
|
54
|
+
* { box-sizing: border-box; }
|
|
55
|
+
body {
|
|
56
|
+
margin: 0;
|
|
57
|
+
min-height: 100vh;
|
|
58
|
+
background: var(--surface);
|
|
59
|
+
color: var(--on-surface);
|
|
60
|
+
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
61
|
+
}
|
|
62
|
+
p, h2, h3 { margin: 0; }
|
|
63
|
+
main {
|
|
64
|
+
display: flex;
|
|
65
|
+
gap: 1.5rem;
|
|
66
|
+
min-height: calc(100vh - 64px);
|
|
67
|
+
padding: 2rem;
|
|
68
|
+
position: relative;
|
|
69
|
+
overflow: hidden;
|
|
70
|
+
}
|
|
71
|
+
#viewport {
|
|
72
|
+
flex: 1;
|
|
73
|
+
min-height: 600px;
|
|
74
|
+
position: relative;
|
|
75
|
+
overflow: hidden;
|
|
76
|
+
cursor: grab;
|
|
77
|
+
}
|
|
78
|
+
#viewport.cursor-grabbing { cursor: grabbing; }
|
|
79
|
+
#canvas {
|
|
80
|
+
position: absolute;
|
|
81
|
+
inset: 0;
|
|
82
|
+
transform-origin: top left;
|
|
83
|
+
}
|
|
84
|
+
#edgesLayer {
|
|
85
|
+
position: absolute;
|
|
86
|
+
inset: 0;
|
|
87
|
+
width: 100%;
|
|
88
|
+
height: 100%;
|
|
89
|
+
pointer-events: none;
|
|
90
|
+
}
|
|
91
|
+
#detailsPanel {
|
|
92
|
+
position: relative;
|
|
93
|
+
width: min(400px, 100%);
|
|
94
|
+
background: var(--surface-container-high);
|
|
95
|
+
padding: 1.5rem;
|
|
96
|
+
border-left: 1px solid rgba(64, 72, 93, 0.4);
|
|
97
|
+
display: flex;
|
|
98
|
+
flex-direction: column;
|
|
99
|
+
gap: 2rem;
|
|
100
|
+
}
|
|
101
|
+
#closePanel {
|
|
102
|
+
position: absolute;
|
|
103
|
+
top: 1rem;
|
|
104
|
+
right: 1rem;
|
|
105
|
+
color: var(--on-surface-variant);
|
|
106
|
+
background: transparent;
|
|
107
|
+
border: 0;
|
|
108
|
+
cursor: pointer;
|
|
109
|
+
}
|
|
110
|
+
#closePanel:hover { color: var(--primary); }
|
|
111
|
+
#liveOutput {
|
|
112
|
+
background: var(--surface-container-lowest);
|
|
113
|
+
flex: 1;
|
|
114
|
+
min-height: 160px;
|
|
115
|
+
padding: 0.75rem;
|
|
116
|
+
font: 10px/1.45 ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
117
|
+
overflow-y: auto;
|
|
118
|
+
}
|
|
119
|
+
#selectedTokenRatio {
|
|
120
|
+
height: 100%;
|
|
121
|
+
width: 0;
|
|
122
|
+
background: var(--primary);
|
|
123
|
+
}
|
|
124
|
+
.hidden { display: none !important; }
|
|
117
125
|
.material-symbols-outlined {
|
|
118
|
-
font-
|
|
126
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
127
|
+
font-size: 0.75rem;
|
|
128
|
+
line-height: 1;
|
|
119
129
|
}
|
|
120
|
-
|
|
121
130
|
.grid-pattern {
|
|
122
131
|
background-image: radial-gradient(circle, #40485d 1px, transparent 1px);
|
|
123
132
|
background-size: 24px 24px;
|
|
124
133
|
}
|
|
125
|
-
|
|
126
134
|
.node-active-glow {
|
|
127
135
|
box-shadow: 0 0 15px rgba(129, 236, 255, 0.15);
|
|
128
136
|
}
|
|
137
|
+
.node {
|
|
138
|
+
position: absolute;
|
|
139
|
+
width: 16rem;
|
|
140
|
+
border-left: 2px solid var(--outline);
|
|
141
|
+
padding: 1rem;
|
|
142
|
+
cursor: pointer;
|
|
143
|
+
overflow: hidden;
|
|
144
|
+
}
|
|
145
|
+
.node h3 {
|
|
146
|
+
margin: 0.25rem 0;
|
|
147
|
+
font-size: 0.875rem;
|
|
148
|
+
font-weight: 700;
|
|
149
|
+
overflow-wrap: anywhere;
|
|
150
|
+
}
|
|
151
|
+
.node span { display: inline-block; }
|
|
152
|
+
.flex { display: flex; }
|
|
153
|
+
.flex-1 { flex: 1; }
|
|
154
|
+
.flex-col { flex-direction: column; }
|
|
155
|
+
.grid { display: grid; }
|
|
156
|
+
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
157
|
+
.justify-between { justify-content: space-between; }
|
|
158
|
+
.items-start { align-items: flex-start; }
|
|
159
|
+
.items-center { align-items: center; }
|
|
160
|
+
.gap-1 { gap: 0.25rem; }
|
|
161
|
+
.gap-2 { gap: 0.5rem; }
|
|
162
|
+
.gap-4 { gap: 1rem; }
|
|
163
|
+
.gap-8 { gap: 2rem; }
|
|
164
|
+
.mb-1 { margin-bottom: 0.25rem; }
|
|
165
|
+
.mb-4 { margin-bottom: 1rem; }
|
|
166
|
+
.mb-6 { margin-bottom: 1.5rem; }
|
|
167
|
+
.mt-2 { margin-top: 0.5rem; }
|
|
168
|
+
.p-2 { padding: 0.5rem; }
|
|
169
|
+
.p-3 { padding: 0.75rem; }
|
|
170
|
+
.p-4 { padding: 1rem; }
|
|
171
|
+
.px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
|
|
172
|
+
.py-0\\.5 { padding-top: 0.125rem; padding-bottom: 0.125rem; }
|
|
173
|
+
.w-full { width: 100%; }
|
|
174
|
+
.h-1 { height: 0.25rem; }
|
|
175
|
+
.text-xs { font-size: 0.75rem; }
|
|
176
|
+
.text-sm { font-size: 0.875rem; }
|
|
177
|
+
.text-lg { font-size: 1.125rem; }
|
|
178
|
+
.font-mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
|
|
179
|
+
.font-bold { font-weight: 700; }
|
|
180
|
+
.font-black { font-weight: 900; }
|
|
181
|
+
.uppercase { text-transform: uppercase; }
|
|
182
|
+
.tracking-widest { letter-spacing: 0.08em; }
|
|
183
|
+
.bg-surface-container { background: var(--surface-container); }
|
|
184
|
+
.bg-surface-container-low { background: var(--surface-container-low); }
|
|
185
|
+
.bg-surface-container-lowest { background: var(--surface-container-lowest); }
|
|
186
|
+
.bg-surface-variant { background: var(--surface-variant); }
|
|
187
|
+
.text-primary { color: var(--primary); }
|
|
188
|
+
.text-secondary { color: var(--secondary); }
|
|
189
|
+
.text-tertiary { color: var(--tertiary); }
|
|
190
|
+
.text-error { color: var(--error); }
|
|
191
|
+
.text-outline { color: var(--outline); }
|
|
192
|
+
.text-on-surface { color: var(--on-surface); }
|
|
193
|
+
.text-on-surface-variant { color: var(--on-surface-variant); }
|
|
194
|
+
.border-tertiary { border-color: var(--tertiary); }
|
|
195
|
+
.border-error { border-color: var(--error); }
|
|
196
|
+
.border-outline { border-color: var(--outline); }
|
|
197
|
+
.border-secondary { border-color: var(--secondary); }
|
|
198
|
+
.opacity-60 { opacity: 0.6; }
|
|
199
|
+
.grayscale { filter: grayscale(1); }
|
|
200
|
+
.space-y-1 > * + * { margin-top: 0.25rem; }
|
|
201
|
+
.space-y-2 > * + * { margin-top: 0.5rem; }
|
|
202
|
+
.space-y-6 > * + * { margin-top: 1.5rem; }
|
|
203
|
+
.bg-gradient-to-b {
|
|
204
|
+
position: fixed;
|
|
205
|
+
left: 0;
|
|
206
|
+
top: 0;
|
|
207
|
+
width: 4px;
|
|
208
|
+
height: 100vh;
|
|
209
|
+
background: linear-gradient(to bottom, var(--primary), var(--secondary), var(--tertiary));
|
|
210
|
+
opacity: 0.3;
|
|
211
|
+
z-index: 60;
|
|
212
|
+
}
|
|
213
|
+
.animate-spin { animation: spin 1s linear infinite; }
|
|
214
|
+
@keyframes spin { to { transform: rotate(360deg); } }
|
|
215
|
+
@media (max-width: 1023px) {
|
|
216
|
+
main { flex-direction: column; padding: 1rem; }
|
|
217
|
+
#detailsPanel { border-left: 0; border-top: 1px solid rgba(64, 72, 93, 0.4); }
|
|
218
|
+
}
|
|
219
|
+
@media (min-width: 1024px) {
|
|
220
|
+
main { flex-direction: row; }
|
|
221
|
+
}
|
|
129
222
|
</style>
|
|
130
223
|
</head>
|
|
131
224
|
<body class="bg-surface text-on-surface font-body selection:bg-primary selection:text-on-primary">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-team-run-dashboard.js","sourceRoot":"","sources":["../../src/dashboard/render-team-run-dashboard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"render-team-run-dashboard.js","sourceRoot":"","sources":["../../src/dashboard/render-team-run-dashboard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAE7D;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;AAClD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAqB;IAC1D,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAA;IAChC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;IACjC,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAChE,MAAM,OAAO,GAAG;QACd,WAAW;QACX,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;QACvB,KAAK;QACL,MAAM,EAAE;YACN,SAAS,EAAE,mBAAmB;YAC9B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB;KACF,CAAA;IACD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAExF,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oDAwQ2C,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4PpD,CAAA;AACR,CAAC"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -11,4 +11,14 @@ export declare class TokenBudgetExceededError extends Error {
|
|
|
11
11
|
readonly code = "TOKEN_BUDGET_EXCEEDED";
|
|
12
12
|
constructor(agent: string, tokensUsed: number, budget: number);
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Raised when a message list passed to an adapter violates the
|
|
16
|
+
* {@link LLMMessage}[] contract (e.g. a `content` that isn't a `ContentBlock[]`).
|
|
17
|
+
* Surfaced at the adapter entry so the violation fails loudly instead of
|
|
18
|
+
* crashing deep in provider-specific message conversion.
|
|
19
|
+
*/
|
|
20
|
+
export declare class InvalidMessageError extends Error {
|
|
21
|
+
readonly code = "INVALID_MESSAGE";
|
|
22
|
+
constructor(message: string);
|
|
23
|
+
}
|
|
14
24
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IAI/C,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM;IALzB,QAAQ,CAAC,IAAI,2BAA0B;gBAG5B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM;CAK1B"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IAI/C,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM;IALzB,QAAQ,CAAC,IAAI,2BAA0B;gBAG5B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM;CAK1B;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,qBAAoB;gBAErB,OAAO,EAAE,MAAM;CAI5B"}
|
package/dist/errors.js
CHANGED
|
@@ -17,4 +17,17 @@ export class TokenBudgetExceededError extends Error {
|
|
|
17
17
|
this.name = 'TokenBudgetExceededError';
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Raised when a message list passed to an adapter violates the
|
|
22
|
+
* {@link LLMMessage}[] contract (e.g. a `content` that isn't a `ContentBlock[]`).
|
|
23
|
+
* Surfaced at the adapter entry so the violation fails loudly instead of
|
|
24
|
+
* crashing deep in provider-specific message conversion.
|
|
25
|
+
*/
|
|
26
|
+
export class InvalidMessageError extends Error {
|
|
27
|
+
code = 'INVALID_MESSAGE';
|
|
28
|
+
constructor(message) {
|
|
29
|
+
super(message);
|
|
30
|
+
this.name = 'InvalidMessageError';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
20
33
|
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAItC;IACA;IACA;IALF,IAAI,GAAG,uBAAuB,CAAA;IAEvC,YACW,KAAa,EACb,UAAkB,EAClB,MAAc;QAEvB,KAAK,CAAC,UAAU,KAAK,4BAA4B,UAAU,yBAAyB,MAAM,GAAG,CAAC,CAAA;QAJrF,UAAK,GAAL,KAAK,CAAQ;QACb,eAAU,GAAV,UAAU,CAAQ;QAClB,WAAM,GAAN,MAAM,CAAQ;QAGvB,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAA;IACxC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAItC;IACA;IACA;IALF,IAAI,GAAG,uBAAuB,CAAA;IAEvC,YACW,KAAa,EACb,UAAkB,EAClB,MAAc;QAEvB,KAAK,CAAC,UAAU,KAAK,4BAA4B,UAAU,yBAAyB,MAAM,GAAG,CAAC,CAAA;QAJrF,UAAK,GAAL,KAAK,CAAQ;QACb,eAAU,GAAV,UAAU,CAAQ;QAClB,WAAM,GAAN,MAAM,CAAQ;QAGvB,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAA;IACxC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,IAAI,GAAG,iBAAiB,CAAA;IAEjC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAA;IACnC,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -71,9 +71,9 @@ export { registerBuiltInTools, BUILT_IN_TOOLS, ALL_BUILT_IN_TOOLS_WITH_DELEGATE,
|
|
|
71
71
|
export type { RegisterBuiltInToolsOptions } from './tool/built-in/index.js';
|
|
72
72
|
export { createAdapter } from './llm/adapter.js';
|
|
73
73
|
export type { SupportedProvider } from './llm/adapter.js';
|
|
74
|
-
export { TokenBudgetExceededError } from './errors.js';
|
|
74
|
+
export { TokenBudgetExceededError, InvalidMessageError } from './errors.js';
|
|
75
75
|
export { InMemoryStore } from './memory/store.js';
|
|
76
76
|
export { SharedMemory } from './memory/shared.js';
|
|
77
|
-
export type { ReasoningBlock, TextBlock, ToolUseBlock, ToolResultBlock, ImageBlock, ContentBlock, LLMMessage, LLMResponse, LLMAdapter, LLMChatOptions, LLMStreamOptions, LLMToolDef, TokenUsage, StreamEvent, ToolDefinition, ToolResult, ToolUseContext, AgentInfo, TeamInfo, DelegationPoolView, AgentConfig, AgentState, AgentRunResult, BeforeRunHookContext, ToolCallRecord, LoopDetectionConfig, LoopDetectionInfo, ContextStrategy, TeamConfig, TeamRunResult, RunTeamOptions, TaskExecutionMetrics, TaskExecutionRecord, Task, TaskStatus, OrchestratorConfig, OrchestratorEvent, CoordinatorConfig, TraceEventType, TraceEventBase, TraceEvent, LLMCallTrace, ToolCallTrace, TaskTrace, AgentTrace, PlanReadyTrace, AgentStreamTrace, MemoryEntry, MemoryStore, } from './types.js';
|
|
77
|
+
export type { ReasoningBlock, TextBlock, ToolUseBlock, ToolResultBlock, ImageBlock, ContentBlock, LLMMessage, LLMResponse, LLMAdapter, LLMChatOptions, LLMStreamOptions, LLMToolDef, TokenUsage, StreamEvent, ToolDefinition, ToolResult, ToolUseContext, AgentInfo, TeamInfo, DelegationPoolView, AgentConfig, AgentState, AgentRunResult, BeforeRunHookContext, ToolCallRecord, LoopDetectionConfig, LoopDetectionInfo, ContextStrategy, TeamConfig, TeamRunResult, RunTeamOptions, PlanArtifact, PlanTaskArtifact, TaskExecutionMetrics, TaskExecutionRecord, Task, TaskStatus, OrchestratorConfig, OrchestratorEvent, CoordinatorConfig, TraceEventType, TraceEventBase, TraceEvent, LLMCallTrace, ToolCallTrace, TaskTrace, AgentTrace, PlanReadyTrace, AgentStreamTrace, MemoryEntry, MemoryStore, SharedMemoryEntry, SharedMemoryValue, SharedMemoryWriteOptions, } from './types.js';
|
|
78
78
|
export { generateRunId } from './utils/trace.js';
|
|
79
79
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAMH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACvD,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAA;AAMjF,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,gCAAgC,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC5G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACtD,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAMjD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAMlD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAC1G,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAMrD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACrE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,gCAAgC,EAChC,QAAQ,EACR,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,QAAQ,GACT,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AAM3E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -82,7 +82,7 @@ export { registerBuiltInTools, BUILT_IN_TOOLS, ALL_BUILT_IN_TOOLS_WITH_DELEGATE,
|
|
|
82
82
|
// LLM adapters
|
|
83
83
|
// ---------------------------------------------------------------------------
|
|
84
84
|
export { createAdapter } from './llm/adapter.js';
|
|
85
|
-
export { TokenBudgetExceededError } from './errors.js';
|
|
85
|
+
export { TokenBudgetExceededError, InvalidMessageError } from './errors.js';
|
|
86
86
|
// ---------------------------------------------------------------------------
|
|
87
87
|
// Memory
|
|
88
88
|
// ---------------------------------------------------------------------------
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,8EAA8E;AAC9E,qCAAqC;AACrC,8EAA8E;AAE9E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAGvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAA;AAEjF,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,gCAAgC,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC5G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGtD,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAGhD,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAG1G,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAErE,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,gCAAgC,EAChC,QAAQ,EACR,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,QAAQ,GACT,MAAM,0BAA0B,CAAA;AAGjC,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,8EAA8E;AAC9E,qCAAqC;AACrC,8EAA8E;AAE9E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAGvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAA;AAEjF,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,gCAAgC,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC5G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGtD,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAGhD,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAG1G,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAErE,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,gCAAgC,EAChC,QAAQ,EACR,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,QAAQ,GACT,MAAM,0BAA0B,CAAA;AAGjC,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAE3E,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAkFjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA"}
|
package/dist/llm/adapter.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ import type { LLMAdapter } from '../types.js';
|
|
|
22
22
|
* directly and bypassing this factory, or via {@link AISdkAdapter} from
|
|
23
23
|
* `@open-multi-agent/core/ai-sdk` (optional peer `ai`).
|
|
24
24
|
*/
|
|
25
|
-
export type SupportedProvider = 'anthropic' | 'azure-openai' | 'bedrock' | 'copilot' | 'deepseek' | 'grok' | 'minimax' | 'openai' | 'gemini' | 'qiniu';
|
|
25
|
+
export type SupportedProvider = 'anthropic' | 'azure-openai' | 'bedrock' | 'copilot' | 'deepseek' | 'doubao' | 'grok' | 'hunyuan' | 'minimax' | 'mimo' | 'openai' | 'gemini' | 'qiniu';
|
|
26
26
|
/**
|
|
27
27
|
* Instantiate the appropriate {@link LLMAdapter} for the given provider.
|
|
28
28
|
*
|
|
@@ -34,7 +34,11 @@ export type SupportedProvider = 'anthropic' | 'azure-openai' | 'bedrock' | 'copi
|
|
|
34
34
|
* - `gemini` → `GEMINI_API_KEY` / `GOOGLE_API_KEY`
|
|
35
35
|
* - `grok` → `XAI_API_KEY`
|
|
36
36
|
* - `minimax` → `MINIMAX_API_KEY`
|
|
37
|
+
* - `mimo` → `MIMO_API_KEY`, optional `MIMO_BASE_URL`
|
|
37
38
|
* - `deepseek` → `DEEPSEEK_API_KEY`
|
|
39
|
+
* - `doubao` → `ARK_API_KEY`
|
|
40
|
+
* - `hunyuan` → `HUNYUAN_API_KEY`, optional `HUNYUAN_BASE_URL`
|
|
41
|
+
* (defaults to the Tencent MaaS / TokenHub endpoint)
|
|
38
42
|
* - `qiniu` → `QINIU_API_KEY`
|
|
39
43
|
* - `bedrock` → no API key; credentials via AWS SDK default provider chain
|
|
40
44
|
* (env vars, shared config, IAM role). Pass `region` (4th arg)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/llm/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,YAAY,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,eAAe,EACf,UAAU,GACX,MAAM,aAAa,CAAA;AAEpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/llm/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,YAAY,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,eAAe,EACf,UAAU,GACX,MAAM,aAAa,CAAA;AAEpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;AAEtL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC,CAkErB"}
|
package/dist/llm/adapter.js
CHANGED
|
@@ -25,7 +25,11 @@
|
|
|
25
25
|
* - `gemini` → `GEMINI_API_KEY` / `GOOGLE_API_KEY`
|
|
26
26
|
* - `grok` → `XAI_API_KEY`
|
|
27
27
|
* - `minimax` → `MINIMAX_API_KEY`
|
|
28
|
+
* - `mimo` → `MIMO_API_KEY`, optional `MIMO_BASE_URL`
|
|
28
29
|
* - `deepseek` → `DEEPSEEK_API_KEY`
|
|
30
|
+
* - `doubao` → `ARK_API_KEY`
|
|
31
|
+
* - `hunyuan` → `HUNYUAN_API_KEY`, optional `HUNYUAN_BASE_URL`
|
|
32
|
+
* (defaults to the Tencent MaaS / TokenHub endpoint)
|
|
29
33
|
* - `qiniu` → `QINIU_API_KEY`
|
|
30
34
|
* - `bedrock` → no API key; credentials via AWS SDK default provider chain
|
|
31
35
|
* (env vars, shared config, IAM role). Pass `region` (4th arg)
|
|
@@ -71,10 +75,22 @@ export async function createAdapter(provider, apiKey, baseURL, region) {
|
|
|
71
75
|
const { MiniMaxAdapter } = await import('./minimax.js');
|
|
72
76
|
return new MiniMaxAdapter(apiKey, baseURL);
|
|
73
77
|
}
|
|
78
|
+
case 'mimo': {
|
|
79
|
+
const { MiMoAdapter } = await import('./mimo.js');
|
|
80
|
+
return new MiMoAdapter(apiKey, baseURL);
|
|
81
|
+
}
|
|
74
82
|
case 'deepseek': {
|
|
75
83
|
const { DeepSeekAdapter } = await import('./deepseek.js');
|
|
76
84
|
return new DeepSeekAdapter(apiKey, baseURL);
|
|
77
85
|
}
|
|
86
|
+
case 'doubao': {
|
|
87
|
+
const { DoubaoAdapter } = await import('./doubao.js');
|
|
88
|
+
return new DoubaoAdapter(apiKey, baseURL);
|
|
89
|
+
}
|
|
90
|
+
case 'hunyuan': {
|
|
91
|
+
const { HunyuanAdapter } = await import('./hunyuan.js');
|
|
92
|
+
return new HunyuanAdapter(apiKey, baseURL);
|
|
93
|
+
}
|
|
78
94
|
case 'qiniu': {
|
|
79
95
|
const { QiniuAdapter } = await import('./qiniu.js');
|
|
80
96
|
return new QiniuAdapter(apiKey, baseURL);
|
package/dist/llm/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/llm/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA4BH
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/llm/adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/ai-sdk.d.ts
CHANGED
|
@@ -7,11 +7,12 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { LanguageModel, ModelMessage } from 'ai';
|
|
9
9
|
import type { LLMAdapter, LLMChatOptions, LLMMessage, LLMResponse, LLMStreamOptions, StreamEvent } from '../types.js';
|
|
10
|
+
import { type ReasoningOutboundOptions } from './reasoning-fallback.js';
|
|
10
11
|
/**
|
|
11
12
|
* Convert framework {@link LLMMessage}s to AI SDK {@link ModelMessage}s.
|
|
12
13
|
* Exported for unit tests and for callers who need to preflight prompts.
|
|
13
14
|
*/
|
|
14
|
-
export declare function llmMessagesToAiSdkModelMessages(messages: readonly LLMMessage[]): ModelMessage[];
|
|
15
|
+
export declare function llmMessagesToAiSdkModelMessages(messages: readonly LLMMessage[], outboundOptions?: ReasoningOutboundOptions): ModelMessage[];
|
|
15
16
|
/**
|
|
16
17
|
* {@link LLMAdapter} implementation backed by the Vercel AI SDK `generateText` /
|
|
17
18
|
* `streamText` APIs. Pass any `LanguageModel` from an `@ai-sdk/*` provider.
|
package/dist/llm/ai-sdk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-sdk.d.ts","sourceRoot":"","sources":["../../src/llm/ai-sdk.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AAErD,OAAO,KAAK,EAEV,UAAU,EACV,cAAc,EACd,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,WAAW,EAIZ,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"ai-sdk.d.ts","sourceRoot":"","sources":["../../src/llm/ai-sdk.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AAErD,OAAO,KAAK,EAEV,UAAU,EACV,cAAc,EACd,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,WAAW,EAIZ,MAAM,aAAa,CAAA;AAGpB,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,yBAAyB,CAAA;AAiBhC;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,eAAe,CAAC,EAAE,wBAAwB,GACzC,YAAY,EAAE,CAoGhB;AA8DD;;;GAGG;AACH,qBAAa,YAAa,YAAW,UAAU;;IAC7C,QAAQ,CAAC,IAAI,YAAW;IAExB,QAAQ,CAAC,YAAY;;MAiBpB;gBAIW,KAAK,EAAE,aAAa;IAI1B,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAyC1E,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC;CAwG7F"}
|
package/dist/llm/ai-sdk.js
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
* provider package you need (for example `@ai-sdk/openai`).
|
|
7
7
|
*/
|
|
8
8
|
import { normalizeFinishReason } from './openai-common.js';
|
|
9
|
+
import { assertValidMessages } from './validate.js';
|
|
10
|
+
import { reasoningBlockToInlineText, resolveReasoningOutboundMaxChars, } from './reasoning-fallback.js';
|
|
9
11
|
// ---------------------------------------------------------------------------
|
|
10
12
|
// Message conversion — OMA <-> AI SDK ModelMessage
|
|
11
13
|
// ---------------------------------------------------------------------------
|
|
@@ -25,9 +27,16 @@ function collectToolNamesByCallId(messages) {
|
|
|
25
27
|
* Convert framework {@link LLMMessage}s to AI SDK {@link ModelMessage}s.
|
|
26
28
|
* Exported for unit tests and for callers who need to preflight prompts.
|
|
27
29
|
*/
|
|
28
|
-
export function llmMessagesToAiSdkModelMessages(messages) {
|
|
30
|
+
export function llmMessagesToAiSdkModelMessages(messages, outboundOptions) {
|
|
29
31
|
const toolNamesByCallId = collectToolNamesByCallId(messages);
|
|
30
32
|
const out = [];
|
|
33
|
+
// When `preserveReasoningAsText` is enabled, swap the AI SDK structured
|
|
34
|
+
// reasoning emit for a `<thinking>` text part — honouring the adapter's
|
|
35
|
+
// declared `'never'` capability (see #223 Phase 2). When the flag is off,
|
|
36
|
+
// we preserve the pre-Phase-2 behaviour of passing structured reasoning
|
|
37
|
+
// through to the AI SDK provider, since some providers may handle it.
|
|
38
|
+
const preserveAsText = outboundOptions?.preserveReasoningAsText === true;
|
|
39
|
+
const maxChars = resolveReasoningOutboundMaxChars(outboundOptions);
|
|
31
40
|
for (const msg of messages) {
|
|
32
41
|
if (msg.role === 'assistant') {
|
|
33
42
|
const acc = [];
|
|
@@ -36,10 +45,25 @@ export function llmMessagesToAiSdkModelMessages(messages) {
|
|
|
36
45
|
acc.push({ type: 'text', text: block.text });
|
|
37
46
|
}
|
|
38
47
|
else if (block.type === 'reasoning') {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
48
|
+
if (preserveAsText) {
|
|
49
|
+
const text = maxChars === undefined
|
|
50
|
+
? reasoningBlockToInlineText(block)
|
|
51
|
+
: reasoningBlockToInlineText(block, { maxChars });
|
|
52
|
+
if (text.length > 0)
|
|
53
|
+
acc.push({ type: 'text', text });
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// Default-off back-compat path: pass framework reasoning through
|
|
57
|
+
// as AI SDK structured `{ type: 'reasoning' }`. For redacted
|
|
58
|
+
// blocks emit ONLY the `[redacted_thinking]` marker — never the
|
|
59
|
+
// opaque `redactedData` payload (would leak Anthropic-issued
|
|
60
|
+
// encrypted content into the AI SDK provider's request body;
|
|
61
|
+
// hardened upstream in 6b63302).
|
|
62
|
+
const text = block.redactedData !== undefined && block.redactedData.length > 0
|
|
63
|
+
? '[redacted_thinking]'
|
|
64
|
+
: block.text;
|
|
65
|
+
acc.push({ type: 'reasoning', text });
|
|
66
|
+
}
|
|
43
67
|
}
|
|
44
68
|
else if (block.type === 'tool_use') {
|
|
45
69
|
acc.push({
|
|
@@ -153,12 +177,21 @@ function buildLlmResponseFromGenerateText(result) {
|
|
|
153
177
|
export class AISdkAdapter {
|
|
154
178
|
name = 'ai-sdk';
|
|
155
179
|
capabilities = {
|
|
156
|
-
//
|
|
157
|
-
//
|
|
158
|
-
//
|
|
159
|
-
//
|
|
160
|
-
//
|
|
161
|
-
//
|
|
180
|
+
// `'never'` means: this framework cannot natively round-trip a
|
|
181
|
+
// {@link ReasoningBlock} into the AI SDK in a provider-agnostic way —
|
|
182
|
+
// the AI SDK proxies many providers and we can't introspect at
|
|
183
|
+
// IR-conversion time which underlying provider would accept reasoning.
|
|
184
|
+
//
|
|
185
|
+
// When `preserveReasoningAsText` is set, the outbound conversion in
|
|
186
|
+
// `llmMessagesToAiSdkModelMessages` honours this by downgrading to
|
|
187
|
+
// inline `<thinking>` text via the shared helper.
|
|
188
|
+
//
|
|
189
|
+
// When the opt-in is OFF, however, we keep the pre-Phase-2 back-compat
|
|
190
|
+
// behaviour of passing the framework's `ReasoningBlock` through as an
|
|
191
|
+
// AI SDK structured `{ type: 'reasoning' }` part, letting the SDK
|
|
192
|
+
// handle it per-provider. This is a deliberate exception to the
|
|
193
|
+
// `'never'` semantic (which strictly would mean drop-on-default), made
|
|
194
|
+
// to avoid silently changing what existing AI-SDK users see today.
|
|
162
195
|
echoesReasoning: 'never',
|
|
163
196
|
};
|
|
164
197
|
#model;
|
|
@@ -166,8 +199,9 @@ export class AISdkAdapter {
|
|
|
166
199
|
this.#model = model;
|
|
167
200
|
}
|
|
168
201
|
async chat(messages, options) {
|
|
202
|
+
assertValidMessages(messages);
|
|
169
203
|
const { generateText, tool, jsonSchema } = await import('ai');
|
|
170
|
-
const aiMessages = llmMessagesToAiSdkModelMessages(messages);
|
|
204
|
+
const aiMessages = llmMessagesToAiSdkModelMessages(messages, { preserveReasoningAsText: options.preserveReasoningAsText, compressReasoningText: options.compressReasoningText });
|
|
171
205
|
const tools = options.tools !== undefined && options.tools.length > 0
|
|
172
206
|
? Object.fromEntries(options.tools.map((def) => [
|
|
173
207
|
def.name,
|
|
@@ -199,8 +233,9 @@ export class AISdkAdapter {
|
|
|
199
233
|
return buildLlmResponseFromGenerateText(result);
|
|
200
234
|
}
|
|
201
235
|
async *stream(messages, options) {
|
|
236
|
+
assertValidMessages(messages);
|
|
202
237
|
const { streamText, tool, jsonSchema } = await import('ai');
|
|
203
|
-
const aiMessages = llmMessagesToAiSdkModelMessages(messages);
|
|
238
|
+
const aiMessages = llmMessagesToAiSdkModelMessages(messages, { preserveReasoningAsText: options.preserveReasoningAsText, compressReasoningText: options.compressReasoningText });
|
|
204
239
|
const tools = options.tools !== undefined && options.tools.length > 0
|
|
205
240
|
? Object.fromEntries(options.tools.map((def) => [
|
|
206
241
|
def.name,
|