@redplanethq/corebrain 2.8.18 → 2.8.21
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/commands/browser/close-session.d.ts.map +1 -1
- package/dist/commands/browser/close-session.js +3 -0
- package/dist/commands/browser/close-session.js.map +1 -1
- package/dist/commands/browser/close.d.ts.map +1 -1
- package/dist/commands/browser/close.js +3 -0
- package/dist/commands/browser/close.js.map +1 -1
- package/dist/commands/browser/command.d.ts.map +1 -1
- package/dist/commands/browser/command.js +3 -0
- package/dist/commands/browser/command.js.map +1 -1
- package/dist/commands/browser/create-profile.d.ts.map +1 -1
- package/dist/commands/browser/create-profile.js +3 -0
- package/dist/commands/browser/create-profile.js.map +1 -1
- package/dist/commands/browser/create-session.d.ts.map +1 -1
- package/dist/commands/browser/create-session.js +3 -0
- package/dist/commands/browser/create-session.js.map +1 -1
- package/dist/commands/browser/delete-profile.d.ts.map +1 -1
- package/dist/commands/browser/delete-profile.js +3 -0
- package/dist/commands/browser/delete-profile.js.map +1 -1
- package/dist/commands/browser/delete-session.d.ts.map +1 -1
- package/dist/commands/browser/delete-session.js +3 -0
- package/dist/commands/browser/delete-session.js.map +1 -1
- package/dist/commands/browser/install.d.ts.map +1 -1
- package/dist/commands/browser/install.js +3 -0
- package/dist/commands/browser/install.js.map +1 -1
- package/dist/commands/browser/list-sessions.d.ts.map +1 -1
- package/dist/commands/browser/list-sessions.js +3 -0
- package/dist/commands/browser/list-sessions.js.map +1 -1
- package/dist/commands/browser/open-head.d.ts.map +1 -1
- package/dist/commands/browser/open-head.js +3 -0
- package/dist/commands/browser/open-head.js.map +1 -1
- package/dist/commands/browser/open.d.ts.map +1 -1
- package/dist/commands/browser/open.js +3 -0
- package/dist/commands/browser/open.js.map +1 -1
- package/dist/commands/browser/set-browser.d.ts.map +1 -1
- package/dist/commands/browser/set-browser.js +3 -0
- package/dist/commands/browser/set-browser.js.map +1 -1
- package/dist/commands/browser/status.d.ts.map +1 -1
- package/dist/commands/browser/status.js +3 -0
- package/dist/commands/browser/status.js.map +1 -1
- package/dist/commands/coding/agents.d.ts.map +1 -1
- package/dist/commands/coding/agents.js +3 -0
- package/dist/commands/coding/agents.js.map +1 -1
- package/dist/commands/coding/config.d.ts.map +1 -1
- package/dist/commands/coding/config.js +3 -0
- package/dist/commands/coding/config.js.map +1 -1
- package/dist/commands/coding/list.d.ts.map +1 -1
- package/dist/commands/coding/list.js +3 -0
- package/dist/commands/coding/list.js.map +1 -1
- package/dist/commands/coding/read.d.ts.map +1 -1
- package/dist/commands/coding/read.js +3 -0
- package/dist/commands/coding/read.js.map +1 -1
- package/dist/commands/coding/remove.d.ts.map +1 -1
- package/dist/commands/coding/remove.js +3 -0
- package/dist/commands/coding/remove.js.map +1 -1
- package/dist/commands/coding/setup.d.ts.map +1 -1
- package/dist/commands/coding/setup.js +3 -0
- package/dist/commands/coding/setup.js.map +1 -1
- package/dist/commands/exec/config.d.ts.map +1 -1
- package/dist/commands/exec/config.js +3 -0
- package/dist/commands/exec/config.js.map +1 -1
- package/dist/commands/folder/add.d.ts.map +1 -1
- package/dist/commands/folder/add.js +3 -0
- package/dist/commands/folder/add.js.map +1 -1
- package/dist/commands/folder/list.d.ts.map +1 -1
- package/dist/commands/folder/list.js +3 -0
- package/dist/commands/folder/list.js.map +1 -1
- package/dist/commands/folder/remove.d.ts.map +1 -1
- package/dist/commands/folder/remove.js +3 -0
- package/dist/commands/folder/remove.js.map +1 -1
- package/dist/commands/folder/scope.d.ts.map +1 -1
- package/dist/commands/folder/scope.js +3 -0
- package/dist/commands/folder/scope.js.map +1 -1
- package/dist/commands/gateway/config.d.ts +16 -0
- package/dist/commands/gateway/config.d.ts.map +1 -1
- package/dist/commands/gateway/config.js +21 -2
- package/dist/commands/gateway/config.js.map +1 -1
- package/dist/commands/gateway/index.d.ts +1 -1
- package/dist/commands/gateway/index.d.ts.map +1 -1
- package/dist/commands/gateway/index.js +9 -1
- package/dist/commands/gateway/index.js.map +1 -1
- package/dist/commands/gateway/list.d.ts +9 -0
- package/dist/commands/gateway/list.d.ts.map +1 -0
- package/dist/commands/gateway/list.js +63 -0
- package/dist/commands/gateway/list.js.map +1 -0
- package/dist/commands/gateway/setup.d.ts +15 -0
- package/dist/commands/gateway/setup.d.ts.map +1 -0
- package/dist/commands/gateway/setup.js +82 -0
- package/dist/commands/gateway/setup.js.map +1 -0
- package/dist/commands/gateway/status.d.ts +4 -1
- package/dist/commands/gateway/status.d.ts.map +1 -1
- package/dist/commands/gateway/status.js +97 -17
- package/dist/commands/gateway/status.js.map +1 -1
- package/dist/commands/setup.d.ts +9 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +28 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/config/folders.d.ts.map +1 -1
- package/dist/config/folders.js +9 -1
- package/dist/config/folders.js.map +1 -1
- package/dist/server/api/gateways.d.ts +50 -0
- package/dist/server/api/gateways.d.ts.map +1 -0
- package/dist/server/api/gateways.js +63 -0
- package/dist/server/api/gateways.js.map +1 -0
- package/dist/server/pty/manager.d.ts +7 -0
- package/dist/server/pty/manager.d.ts.map +1 -1
- package/dist/server/pty/manager.js +37 -0
- package/dist/server/pty/manager.js.map +1 -1
- package/dist/server/tools/coding-tools.d.ts.map +1 -1
- package/dist/server/tools/coding-tools.js +34 -1
- package/dist/server/tools/coding-tools.js.map +1 -1
- package/dist/templates/env-overrides.d.ts +15 -0
- package/dist/templates/env-overrides.d.ts.map +1 -0
- package/dist/templates/env-overrides.js +40 -0
- package/dist/templates/env-overrides.js.map +1 -0
- package/dist/templates/gateway-compose.d.ts +14 -0
- package/dist/templates/gateway-compose.d.ts.map +1 -0
- package/dist/templates/gateway-compose.js +34 -0
- package/dist/templates/gateway-compose.js.map +1 -0
- package/dist/templates/webapp-compose.d.ts +11 -0
- package/dist/templates/webapp-compose.d.ts.map +1 -0
- package/dist/templates/webapp-compose.js +31 -0
- package/dist/templates/webapp-compose.js.map +1 -0
- package/dist/tui/chat.d.ts.map +1 -1
- package/dist/tui/chat.js +305 -54
- package/dist/tui/chat.js.map +1 -1
- package/dist/tui/components/approval-panel.d.ts +21 -2
- package/dist/tui/components/approval-panel.d.ts.map +1 -1
- package/dist/tui/components/approval-panel.js +87 -16
- package/dist/tui/components/approval-panel.js.map +1 -1
- package/dist/tui/components/status-line.d.ts +3 -0
- package/dist/tui/components/status-line.d.ts.map +1 -1
- package/dist/tui/components/status-line.js +9 -0
- package/dist/tui/components/status-line.js.map +1 -1
- package/dist/tui/components/task-detail.d.ts +21 -0
- package/dist/tui/components/task-detail.d.ts.map +1 -0
- package/dist/tui/components/task-detail.js +105 -0
- package/dist/tui/components/task-detail.js.map +1 -0
- package/dist/tui/components/task-list.d.ts +34 -0
- package/dist/tui/components/task-list.d.ts.map +1 -0
- package/dist/tui/components/task-list.js +245 -0
- package/dist/tui/components/task-list.js.map +1 -0
- package/dist/tui/components/tool-call-item.d.ts +6 -0
- package/dist/tui/components/tool-call-item.d.ts.map +1 -1
- package/dist/tui/components/tool-call-item.js +78 -12
- package/dist/tui/components/tool-call-item.js.map +1 -1
- package/dist/tui/hooks/use-conversation.d.ts.map +1 -1
- package/dist/tui/hooks/use-conversation.js +116 -35
- package/dist/tui/hooks/use-conversation.js.map +1 -1
- package/dist/tui/utils/avatar.d.ts +7 -23
- package/dist/tui/utils/avatar.d.ts.map +1 -1
- package/dist/tui/utils/avatar.js +102 -84
- package/dist/tui/utils/avatar.js.map +1 -1
- package/dist/tui/utils/html-to-md.d.ts +2 -0
- package/dist/tui/utils/html-to-md.d.ts.map +1 -0
- package/dist/tui/utils/html-to-md.js +17 -0
- package/dist/tui/utils/html-to-md.js.map +1 -0
- package/dist/tui/utils/stream.d.ts +59 -5
- package/dist/tui/utils/stream.d.ts.map +1 -1
- package/dist/tui/utils/stream.js +69 -0
- package/dist/tui/utils/stream.js.map +1 -1
- package/dist/utils/require-native-gateway.d.ts +11 -0
- package/dist/utils/require-native-gateway.d.ts.map +1 -0
- package/dist/utils/require-native-gateway.js +22 -0
- package/dist/utils/require-native-gateway.js.map +1 -0
- package/dist/utils/setup/docker.d.ts +10 -0
- package/dist/utils/setup/docker.d.ts.map +1 -0
- package/dist/utils/setup/docker.js +253 -0
- package/dist/utils/setup/docker.js.map +1 -0
- package/dist/utils/setup/local.d.ts +9 -0
- package/dist/utils/setup/local.d.ts.map +1 -0
- package/dist/utils/setup/local.js +226 -0
- package/dist/utils/setup/local.js.map +1 -0
- package/dist/utils/setup/railway.d.ts +9 -0
- package/dist/utils/setup/railway.d.ts.map +1 -0
- package/dist/utils/setup/railway.js +244 -0
- package/dist/utils/setup/railway.js.map +1 -0
- package/package.json +5 -3
|
@@ -66,6 +66,26 @@ export function createConversation(baseUrl, apiKey) {
|
|
|
66
66
|
let activeAbortController = null;
|
|
67
67
|
// Equivalent of webapp's cachedNestedPartsRef — persists agent item across streams
|
|
68
68
|
let savedAgentItem = null;
|
|
69
|
+
const partsByCallId = new Map();
|
|
70
|
+
function rememberPart(toolCallId, updates) {
|
|
71
|
+
const existing = partsByCallId.get(toolCallId);
|
|
72
|
+
partsByCallId.set(toolCallId, {
|
|
73
|
+
toolName: updates.toolName || existing?.toolName || toolCallId,
|
|
74
|
+
input: updates.input ?? existing?.input,
|
|
75
|
+
state: updates.state ?? existing?.state,
|
|
76
|
+
parentCallId: updates.parentCallId ?? existing?.parentCallId,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
const TERMINAL_STATES = new Set(['output-available', 'output-denied', 'output-error', 'approval-responded']);
|
|
80
|
+
function findPendingChildrenOf(parentCallId) {
|
|
81
|
+
const out = [];
|
|
82
|
+
for (const [callId, part] of partsByCallId) {
|
|
83
|
+
if (part.parentCallId === parentCallId && (!part.state || !TERMINAL_STATES.has(part.state))) {
|
|
84
|
+
out.push({ toolName: part.toolName, input: part.input ?? {}, toolCallId: callId });
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return out;
|
|
88
|
+
}
|
|
69
89
|
// ── Shared stream event processor ─────────────────────────────────────────
|
|
70
90
|
async function processStream(gen, callbacks, controller) {
|
|
71
91
|
const streamNum = ++streamCounter;
|
|
@@ -75,6 +95,7 @@ export function createConversation(baseUrl, apiKey) {
|
|
|
75
95
|
const toolInputMap = new Map(); // toolCallId → input
|
|
76
96
|
let activeParent = null;
|
|
77
97
|
let lastAgentItem = savedAgentItem; // restored from prior stream (like cachedNestedPartsRef)
|
|
98
|
+
let lastAgentCallId = null; // tracks lastAgentItem's toolCallId for parent linkage
|
|
78
99
|
let hadApprovalRequest = false;
|
|
79
100
|
const approvedContainerIds = new Set(); // prevent duplicate approval expansion
|
|
80
101
|
try {
|
|
@@ -94,15 +115,20 @@ export function createConversation(baseUrl, apiKey) {
|
|
|
94
115
|
activeTools.set(event.toolCallId, item);
|
|
95
116
|
if (CONTAINER_TOOLS.has(event.toolName)) {
|
|
96
117
|
activeParent = { id: event.toolCallId, item };
|
|
97
|
-
if (event.toolName.startsWith('agent-'))
|
|
118
|
+
if (event.toolName.startsWith('agent-')) {
|
|
98
119
|
lastAgentItem = item;
|
|
120
|
+
lastAgentCallId = event.toolCallId;
|
|
121
|
+
}
|
|
122
|
+
rememberPart(event.toolCallId, { toolName: event.toolName, state: 'input-streaming' });
|
|
99
123
|
callbacks.onToolStart?.(event.toolCallId, event.toolName, item);
|
|
100
124
|
}
|
|
101
125
|
else if (activeParent) {
|
|
102
126
|
activeParent.item.addChild(item);
|
|
127
|
+
rememberPart(event.toolCallId, { toolName: event.toolName, state: 'input-streaming', parentCallId: activeParent.id });
|
|
103
128
|
callbacks.onRerender?.();
|
|
104
129
|
}
|
|
105
130
|
else {
|
|
131
|
+
rememberPart(event.toolCallId, { toolName: event.toolName, state: 'input-streaming' });
|
|
106
132
|
callbacks.onToolStart?.(event.toolCallId, event.toolName, item);
|
|
107
133
|
}
|
|
108
134
|
break;
|
|
@@ -116,6 +142,7 @@ export function createConversation(baseUrl, apiKey) {
|
|
|
116
142
|
}
|
|
117
143
|
case 'tool-input-available': {
|
|
118
144
|
toolInputMap.set(event.toolCallId, event.input);
|
|
145
|
+
rememberPart(event.toolCallId, { input: event.input, state: 'in-progress' });
|
|
119
146
|
break;
|
|
120
147
|
}
|
|
121
148
|
case 'tool-call': {
|
|
@@ -126,21 +153,27 @@ export function createConversation(baseUrl, apiKey) {
|
|
|
126
153
|
activeTools.set(event.toolCallId, item);
|
|
127
154
|
if (CONTAINER_TOOLS.has(event.toolName)) {
|
|
128
155
|
activeParent = { id: event.toolCallId, item };
|
|
129
|
-
if (event.toolName.startsWith('agent-'))
|
|
156
|
+
if (event.toolName.startsWith('agent-')) {
|
|
130
157
|
lastAgentItem = item;
|
|
158
|
+
lastAgentCallId = event.toolCallId;
|
|
159
|
+
}
|
|
160
|
+
rememberPart(event.toolCallId, { toolName: event.toolName, input: event.args, state: 'in-progress' });
|
|
131
161
|
callbacks.onToolStart?.(event.toolCallId, event.toolName, item);
|
|
132
162
|
}
|
|
133
163
|
else if (activeParent) {
|
|
134
164
|
item.setDone();
|
|
135
165
|
activeParent.item.addChild(item);
|
|
166
|
+
rememberPart(event.toolCallId, { toolName: event.toolName, input: event.args, state: 'in-progress', parentCallId: activeParent.id });
|
|
136
167
|
callbacks.onRerender?.();
|
|
137
168
|
}
|
|
138
169
|
else {
|
|
170
|
+
rememberPart(event.toolCallId, { toolName: event.toolName, input: event.args, state: 'in-progress' });
|
|
139
171
|
callbacks.onToolStart?.(event.toolCallId, event.toolName, item);
|
|
140
172
|
}
|
|
141
173
|
break;
|
|
142
174
|
}
|
|
143
175
|
case 'tool-output-available': {
|
|
176
|
+
rememberPart(event.toolCallId, { state: 'output-available' });
|
|
144
177
|
const parentItem = activeTools.get(event.toolCallId);
|
|
145
178
|
if (parentItem && event.output) {
|
|
146
179
|
let parts = null;
|
|
@@ -150,8 +183,26 @@ export function createConversation(baseUrl, apiKey) {
|
|
|
150
183
|
else if (event.output.toolCalls ?? event.output.toolResults ?? event.output.steps) {
|
|
151
184
|
parts = mastraDataToOutputParts(event.output);
|
|
152
185
|
}
|
|
153
|
-
if (parts)
|
|
186
|
+
if (parts) {
|
|
154
187
|
parentItem.updateFromOutputParts(parts);
|
|
188
|
+
// Mirror the nested children into the persistent parts model so
|
|
189
|
+
// approval expansion can find them when the container's
|
|
190
|
+
// ToolCallItem isn't in activeTools (cross-stream resumption).
|
|
191
|
+
for (const part of parts) {
|
|
192
|
+
if (!part.type.startsWith('tool-') || !part.toolCallId)
|
|
193
|
+
continue;
|
|
194
|
+
const childToolName = part.type.slice('tool-'.length);
|
|
195
|
+
const isTerminal = part.state === 'output-available' ||
|
|
196
|
+
part.state === 'output-denied' ||
|
|
197
|
+
part.state === 'output-error';
|
|
198
|
+
rememberPart(part.toolCallId, {
|
|
199
|
+
toolName: childToolName,
|
|
200
|
+
input: part.input,
|
|
201
|
+
parentCallId: event.toolCallId,
|
|
202
|
+
state: isTerminal ? 'output-available' : (part.state ?? 'in-progress'),
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
}
|
|
155
206
|
}
|
|
156
207
|
if (!event.preliminary && activeParent?.id === event.toolCallId) {
|
|
157
208
|
parentItem?.setDone();
|
|
@@ -163,6 +214,7 @@ export function createConversation(baseUrl, apiKey) {
|
|
|
163
214
|
break;
|
|
164
215
|
}
|
|
165
216
|
case 'tool-result': {
|
|
217
|
+
rememberPart(event.toolCallId, { state: 'output-available' });
|
|
166
218
|
const item = activeTools.get(event.toolCallId);
|
|
167
219
|
if (item) {
|
|
168
220
|
item.setDone(event.result);
|
|
@@ -175,40 +227,54 @@ export function createConversation(baseUrl, apiKey) {
|
|
|
175
227
|
}
|
|
176
228
|
case 'tool-approval-request': {
|
|
177
229
|
hadApprovalRequest = true;
|
|
178
|
-
|
|
230
|
+
// Mark the approval-requested state on the persistent part.
|
|
231
|
+
rememberPart(event.toolCallId, { state: 'approval-requested' });
|
|
232
|
+
// Resolve toolName from the persistent parts model first, then
|
|
233
|
+
// fall back to the per-stream toolNameMap. This catches the case
|
|
234
|
+
// where the approval arrives in a fresh stream session that didn't
|
|
235
|
+
// see the original tool-input-start.
|
|
236
|
+
const persistedPart = partsByCallId.get(event.toolCallId);
|
|
237
|
+
const toolName = persistedPart?.toolName ?? toolNameMap.get(event.toolCallId) ?? event.toolCallId;
|
|
179
238
|
// Save agent item unconditionally — must happen before any early break
|
|
180
239
|
// so the next processStream (approval resume stream) can look up children.
|
|
181
240
|
if (lastAgentItem)
|
|
182
241
|
savedAgentItem = lastAgentItem;
|
|
183
242
|
// Mirror webapp's findPendingApprovals: expand container tools into
|
|
184
243
|
// their pending children so the user sees the actual leaf tools.
|
|
185
|
-
|
|
244
|
+
// Find pending children via the persistent parts model (works across
|
|
245
|
+
// stream resumptions, unlike activeTools which is per-stream).
|
|
186
246
|
const isContainerTool = toolName === 'agent-take_action' || toolName === 'take_action';
|
|
187
|
-
if (isContainerTool
|
|
247
|
+
if (isContainerTool) {
|
|
188
248
|
// Deduplicate: parallel tool calls fire multiple approval events for
|
|
189
249
|
// the same container. Only expand once — one approval covers all children.
|
|
190
250
|
if (approvedContainerIds.has(event.toolCallId))
|
|
191
251
|
break;
|
|
192
252
|
approvedContainerIds.add(event.toolCallId);
|
|
193
|
-
|
|
253
|
+
// Source 1 (in-stream): the container's ToolCallItem in activeTools
|
|
254
|
+
// has nested children registered via tool-output-available's
|
|
255
|
+
// updateFromOutputParts. This is the most reliable source when the
|
|
256
|
+
// container was started in this same stream.
|
|
257
|
+
const containerItem = activeTools.get(event.toolCallId);
|
|
258
|
+
let pendingChildren = containerItem?.getPendingChildren() ?? [];
|
|
259
|
+
// Source 2 (cross-stream resumption): the persistent parts model.
|
|
260
|
+
// The container's ToolCallItem may have been cleared but
|
|
261
|
+
// partsByCallId entries with parentCallId === containerId persist.
|
|
262
|
+
if (pendingChildren.length === 0) {
|
|
263
|
+
pendingChildren = findPendingChildrenOf(event.toolCallId);
|
|
264
|
+
}
|
|
194
265
|
if (pendingChildren.length > 0) {
|
|
195
266
|
for (const child of pendingChildren) {
|
|
196
|
-
|
|
267
|
+
// Pass child's own toolCallId — sharing the container's id
|
|
268
|
+
// across children would collapse decisions in the panel
|
|
269
|
+
// (decisions Map keyed by toolCallId).
|
|
270
|
+
callbacks.onApprovalRequested?.(event.approvalId, child.toolCallId, child.toolName, child.input);
|
|
197
271
|
}
|
|
198
272
|
break;
|
|
199
273
|
}
|
|
200
274
|
}
|
|
201
|
-
// Fall back:
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
if (resolvedName === event.toolCallId && lastAgentItem) {
|
|
205
|
-
const childInfo = lastAgentItem.getChildInfo(event.toolCallId);
|
|
206
|
-
if (childInfo) {
|
|
207
|
-
resolvedName = childInfo.toolName;
|
|
208
|
-
toolInput = childInfo.input;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
callbacks.onApprovalRequested?.(event.approvalId, event.toolCallId, resolvedName, toolInput);
|
|
275
|
+
// Fall back: single approval. resolvedName comes from persistedPart.
|
|
276
|
+
const toolInput = persistedPart?.input ?? toolInputMap.get(event.toolCallId);
|
|
277
|
+
callbacks.onApprovalRequested?.(event.approvalId, event.toolCallId, toolName, toolInput);
|
|
212
278
|
break;
|
|
213
279
|
}
|
|
214
280
|
case 'data-tool-agent': {
|
|
@@ -231,6 +297,28 @@ export function createConversation(baseUrl, apiKey) {
|
|
|
231
297
|
toolNameMap.set(call.toolCallId, call.toolName);
|
|
232
298
|
if (call.args)
|
|
233
299
|
toolInputMap.set(call.toolCallId, call.args);
|
|
300
|
+
// Children registered via data-tool-agent are nested inside the
|
|
301
|
+
// active agent container — link them so approval expansion can find them.
|
|
302
|
+
rememberPart(call.toolCallId, {
|
|
303
|
+
toolName: call.toolName,
|
|
304
|
+
input: call.args,
|
|
305
|
+
parentCallId: lastAgentCallId ?? undefined,
|
|
306
|
+
state: 'in-progress',
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
// Mark any toolResults as output-available in the parts model so
|
|
311
|
+
// findPendingChildrenOf doesn't return completed tools as "pending".
|
|
312
|
+
const allResults = [
|
|
313
|
+
...(agentData.toolResults ?? []),
|
|
314
|
+
...(Array.isArray(agentData.steps)
|
|
315
|
+
? agentData.steps.flatMap((s) => s.toolResults ?? [])
|
|
316
|
+
: []),
|
|
317
|
+
];
|
|
318
|
+
for (const r of allResults) {
|
|
319
|
+
const res = r.payload ?? r;
|
|
320
|
+
if (res.toolCallId) {
|
|
321
|
+
rememberPart(res.toolCallId, { state: 'output-available' });
|
|
234
322
|
}
|
|
235
323
|
}
|
|
236
324
|
const parts = mastraDataToOutputParts(agentData);
|
|
@@ -238,25 +326,17 @@ export function createConversation(baseUrl, apiKey) {
|
|
|
238
326
|
lastAgentItem.updateFromOutputParts(parts);
|
|
239
327
|
callbacks.onRerender?.();
|
|
240
328
|
}
|
|
241
|
-
else {
|
|
329
|
+
else if (allResults.length > 0) {
|
|
242
330
|
// Post-approval pattern: toolCalls is [] but toolResults has results
|
|
243
331
|
// for children registered in an earlier snapshot — mark them done.
|
|
244
|
-
const
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
];
|
|
250
|
-
if (allResults.length > 0) {
|
|
251
|
-
const resultMap = new Map();
|
|
252
|
-
for (const r of allResults) {
|
|
253
|
-
const res = r.payload ?? r;
|
|
254
|
-
if (res.toolCallId)
|
|
255
|
-
resultMap.set(res.toolCallId, res.result);
|
|
256
|
-
}
|
|
257
|
-
lastAgentItem.markChildrenDoneByIds(resultMap);
|
|
258
|
-
callbacks.onRerender?.();
|
|
332
|
+
const resultMap = new Map();
|
|
333
|
+
for (const r of allResults) {
|
|
334
|
+
const res = r.payload ?? r;
|
|
335
|
+
if (res.toolCallId)
|
|
336
|
+
resultMap.set(res.toolCallId, res.result);
|
|
259
337
|
}
|
|
338
|
+
lastAgentItem.markChildrenDoneByIds(resultMap);
|
|
339
|
+
callbacks.onRerender?.();
|
|
260
340
|
}
|
|
261
341
|
}
|
|
262
342
|
break;
|
|
@@ -319,6 +399,7 @@ export function createConversation(baseUrl, apiKey) {
|
|
|
319
399
|
clear() {
|
|
320
400
|
conversationId = null;
|
|
321
401
|
savedAgentItem = null;
|
|
402
|
+
partsByCallId.clear();
|
|
322
403
|
},
|
|
323
404
|
resume(id) {
|
|
324
405
|
conversationId = id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-conversation.js","sourceRoot":"","sources":["../../../src/tui/hooks/use-conversation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-conversation.js","sourceRoot":"","sources":["../../../src/tui/hooks/use-conversation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,11 @@
|
|
|
1
|
-
import { Text } from '@mariozechner/pi-tui';
|
|
2
1
|
import type { Component } from '@mariozechner/pi-tui';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* Renders the workspace name (up to MAX_LETTERS chars) as a compact 3×5
|
|
4
|
+
* pixel-font monogram using ▀ ▄ █ half-blocks (3 lines tall per letter).
|
|
5
|
+
* Top pixel of each cell uses the full accent; bottom pixel uses a 70%
|
|
6
|
+
* shaded accent — gives a subtle vertical gradient for visual interest
|
|
7
|
+
* without losing readability. OFF pixels emit a plain space so it works
|
|
8
|
+
* on light and dark themes alike.
|
|
6
9
|
*/
|
|
7
|
-
export declare function
|
|
8
|
-
/**
|
|
9
|
-
* Builds an inline PNG Image component from base64 data.
|
|
10
|
-
* Returns null if terminal doesn't support images.
|
|
11
|
-
*/
|
|
12
|
-
export declare function buildImageAvatar(base64Png: string, accentHex: string): Component | null;
|
|
13
|
-
/**
|
|
14
|
-
* Renders a PNG (base64) as colored Unicode half-block characters.
|
|
15
|
-
* Uses ▀ (upper half block) with ANSI 24-bit fg/bg colors to pack
|
|
16
|
-
* 2 pixel rows into each terminal line, preserving aspect ratio.
|
|
17
|
-
* Works in any terminal that supports truecolor (no Kitty/iTerm2 needed).
|
|
18
|
-
*/
|
|
19
|
-
export declare function buildColorBlockAvatar(base64Png: string, targetCols?: number): Text;
|
|
20
|
-
/**
|
|
21
|
-
* Returns the best available avatar component:
|
|
22
|
-
* - Inline PNG image (if terminal supports Kitty/iTerm2 protocol)
|
|
23
|
-
* - Colored half-block rendering (truecolor, works everywhere)
|
|
24
|
-
* - Deterministic accent-colored pixel grid (final fallback, no PNG needed)
|
|
25
|
-
*/
|
|
26
|
-
export declare function buildAvatar(name: string, accentHex: string, base64Png?: string | null): Component;
|
|
10
|
+
export declare function buildAvatar(name: string, accentHex: string, _base64Png?: string | null): Component;
|
|
27
11
|
//# sourceMappingURL=avatar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../../src/tui/utils/avatar.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../../src/tui/utils/avatar.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAkEpD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAC1B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,SAAS,CAwCX"}
|
package/dist/tui/utils/avatar.js
CHANGED
|
@@ -1,96 +1,114 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
2
|
+
import { Text } from '@mariozechner/pi-tui';
|
|
3
|
+
// 3×5 bitmap font for digits and uppercase letters.
|
|
4
|
+
// Each glyph is 5 rows of 3 columns; '1' = pixel on, '0' = off.
|
|
5
|
+
const FONT_3X5 = {
|
|
6
|
+
A: ['010', '101', '111', '101', '101'],
|
|
7
|
+
B: ['110', '101', '110', '101', '110'],
|
|
8
|
+
C: ['011', '100', '100', '100', '011'],
|
|
9
|
+
D: ['110', '101', '101', '101', '110'],
|
|
10
|
+
E: ['111', '100', '110', '100', '111'],
|
|
11
|
+
F: ['111', '100', '110', '100', '100'],
|
|
12
|
+
G: ['011', '100', '101', '101', '011'],
|
|
13
|
+
H: ['101', '101', '111', '101', '101'],
|
|
14
|
+
I: ['111', '010', '010', '010', '111'],
|
|
15
|
+
J: ['001', '001', '001', '101', '010'],
|
|
16
|
+
K: ['101', '101', '110', '101', '101'],
|
|
17
|
+
L: ['100', '100', '100', '100', '111'],
|
|
18
|
+
M: ['101', '111', '111', '101', '101'],
|
|
19
|
+
N: ['101', '111', '111', '111', '101'],
|
|
20
|
+
O: ['010', '101', '101', '101', '010'],
|
|
21
|
+
P: ['110', '101', '110', '100', '100'],
|
|
22
|
+
Q: ['010', '101', '101', '110', '011'],
|
|
23
|
+
R: ['110', '101', '110', '110', '101'],
|
|
24
|
+
S: ['011', '100', '010', '001', '110'],
|
|
25
|
+
T: ['111', '010', '010', '010', '010'],
|
|
26
|
+
U: ['101', '101', '101', '101', '011'],
|
|
27
|
+
V: ['101', '101', '101', '101', '010'],
|
|
28
|
+
W: ['101', '101', '111', '111', '101'],
|
|
29
|
+
X: ['101', '101', '010', '101', '101'],
|
|
30
|
+
Y: ['101', '101', '010', '010', '010'],
|
|
31
|
+
Z: ['111', '001', '010', '100', '111'],
|
|
32
|
+
'0': ['010', '101', '101', '101', '010'],
|
|
33
|
+
'1': ['010', '110', '010', '010', '111'],
|
|
34
|
+
'2': ['110', '001', '010', '100', '111'],
|
|
35
|
+
'3': ['110', '001', '010', '001', '110'],
|
|
36
|
+
'4': ['101', '101', '111', '001', '001'],
|
|
37
|
+
'5': ['111', '100', '110', '001', '110'],
|
|
38
|
+
'6': ['011', '100', '110', '101', '010'],
|
|
39
|
+
'7': ['111', '001', '010', '010', '010'],
|
|
40
|
+
'8': ['010', '101', '010', '101', '010'],
|
|
41
|
+
'9': ['010', '101', '011', '001', '110'],
|
|
42
|
+
'?': ['111', '001', '010', '000', '010'],
|
|
43
|
+
};
|
|
44
|
+
const LETTER_W = 3;
|
|
45
|
+
const LETTER_H = 5;
|
|
46
|
+
const LETTER_GAP = 1;
|
|
47
|
+
const MAX_LETTERS = 3;
|
|
48
|
+
function parseHexColor(hex) {
|
|
49
|
+
const h = hex.replace('#', '');
|
|
50
|
+
return [
|
|
51
|
+
parseInt(h.substring(0, 2), 16) || 0,
|
|
52
|
+
parseInt(h.substring(2, 4), 16) || 0,
|
|
53
|
+
parseInt(h.substring(4, 6), 16) || 0,
|
|
54
|
+
];
|
|
28
55
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
return null;
|
|
36
|
-
const dims = getPngDimensions(base64Png);
|
|
37
|
-
if (!dims)
|
|
38
|
-
return null;
|
|
39
|
-
return new Image(base64Png, 'image/png', { fallbackColor: chalk.hex(accentHex) }, { maxWidthCells: 8, maxHeightCells: 4 }, dims);
|
|
56
|
+
function scale([r, g, b], factor) {
|
|
57
|
+
return [
|
|
58
|
+
Math.max(0, Math.min(255, Math.round(r * factor))),
|
|
59
|
+
Math.max(0, Math.min(255, Math.round(g * factor))),
|
|
60
|
+
Math.max(0, Math.min(255, Math.round(b * factor))),
|
|
61
|
+
];
|
|
40
62
|
}
|
|
41
63
|
/**
|
|
42
|
-
* Renders
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
64
|
+
* Renders the workspace name (up to MAX_LETTERS chars) as a compact 3×5
|
|
65
|
+
* pixel-font monogram using ▀ ▄ █ half-blocks (3 lines tall per letter).
|
|
66
|
+
* Top pixel of each cell uses the full accent; bottom pixel uses a 70%
|
|
67
|
+
* shaded accent — gives a subtle vertical gradient for visual interest
|
|
68
|
+
* without losing readability. OFF pixels emit a plain space so it works
|
|
69
|
+
* on light and dark themes alike.
|
|
46
70
|
*/
|
|
47
|
-
export function
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
71
|
+
export function buildAvatar(name, accentHex, _base64Png) {
|
|
72
|
+
const accent = parseHexColor(accentHex);
|
|
73
|
+
const accentDim = scale(accent, 0.7);
|
|
74
|
+
const top = chalk.rgb(accent[0], accent[1], accent[2]);
|
|
75
|
+
const bot = chalk.rgb(accentDim[0], accentDim[1], accentDim[2]);
|
|
76
|
+
const both = chalk.rgb(accent[0], accent[1], accent[2]).bgRgb(accentDim[0], accentDim[1], accentDim[2]);
|
|
77
|
+
const upper = (name || '').toUpperCase();
|
|
78
|
+
let chars = upper.split('').filter(c => FONT_3X5[c]);
|
|
79
|
+
if (chars.length === 0)
|
|
80
|
+
chars = ['?'];
|
|
81
|
+
chars = chars.slice(0, MAX_LETTERS);
|
|
82
|
+
// Pad letter to even row count so half-blocks divide cleanly.
|
|
83
|
+
const paddedRows = LETTER_H + (LETTER_H % 2); // 6
|
|
84
|
+
const lineCount = paddedRows / 2; // 3
|
|
85
|
+
function bitAt(charIdx, row, col) {
|
|
86
|
+
if (row >= LETTER_H)
|
|
87
|
+
return false;
|
|
88
|
+
const glyph = FONT_3X5[chars[charIdx] ?? '?'];
|
|
89
|
+
return glyph?.[row]?.[col] === '1';
|
|
61
90
|
}
|
|
62
91
|
const lines = [];
|
|
63
|
-
for (let
|
|
64
|
-
let
|
|
65
|
-
for (let
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
92
|
+
for (let line = 0; line < lineCount; line++) {
|
|
93
|
+
let out = '';
|
|
94
|
+
for (let ci = 0; ci < chars.length; ci++) {
|
|
95
|
+
for (let col = 0; col < LETTER_W; col++) {
|
|
96
|
+
const t = bitAt(ci, line * 2, col);
|
|
97
|
+
const b = bitAt(ci, line * 2 + 1, col);
|
|
98
|
+
if (t && b)
|
|
99
|
+
out += both('▀');
|
|
100
|
+
else if (t)
|
|
101
|
+
out += top('▀');
|
|
102
|
+
else if (b)
|
|
103
|
+
out += bot('▄');
|
|
104
|
+
else
|
|
105
|
+
out += ' ';
|
|
106
|
+
}
|
|
107
|
+
if (ci < chars.length - 1)
|
|
108
|
+
out += ' '.repeat(LETTER_GAP);
|
|
69
109
|
}
|
|
70
|
-
lines.push(
|
|
110
|
+
lines.push(out);
|
|
71
111
|
}
|
|
72
112
|
return new Text(lines.join('\n'), 0, 1);
|
|
73
113
|
}
|
|
74
|
-
/**
|
|
75
|
-
* Returns the best available avatar component:
|
|
76
|
-
* - Inline PNG image (if terminal supports Kitty/iTerm2 protocol)
|
|
77
|
-
* - Colored half-block rendering (truecolor, works everywhere)
|
|
78
|
-
* - Deterministic accent-colored pixel grid (final fallback, no PNG needed)
|
|
79
|
-
*/
|
|
80
|
-
export function buildAvatar(name, accentHex, base64Png) {
|
|
81
|
-
if (base64Png) {
|
|
82
|
-
const img = buildImageAvatar(base64Png, accentHex);
|
|
83
|
-
if (img)
|
|
84
|
-
return img;
|
|
85
|
-
try {
|
|
86
|
-
return buildColorBlockAvatar(base64Png);
|
|
87
|
-
}
|
|
88
|
-
catch {
|
|
89
|
-
// fall through to accent-colored fallback
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
// Final fallback: simple accent block (no PNG)
|
|
93
|
-
const block = chalk.hex(accentHex)('██\n██\n██');
|
|
94
|
-
return new Text(block, 0, 1);
|
|
95
|
-
}
|
|
96
114
|
//# sourceMappingURL=avatar.js.map
|