@tutti-os/agent-gui 0.0.145 → 0.0.146
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/agent-conversation/index.d.ts +36 -2
- package/dist/agent-conversation/index.js +3 -1
- package/dist/agent-conversation/index.js.map +1 -1
- package/dist/agent-gui.js +3 -3
- package/dist/app/renderer/agentactivity.css +41 -16
- package/dist/{chunk-4DIYEFHH.js → chunk-3CZYC2YN.js} +425 -57
- package/dist/chunk-3CZYC2YN.js.map +1 -0
- package/dist/{chunk-57W6N7EW.js → chunk-4WSWPMV7.js} +117 -476
- package/dist/chunk-4WSWPMV7.js.map +1 -0
- package/dist/{chunk-EGEYJLG2.js → chunk-ZF65NZ4B.js} +15 -8
- package/dist/chunk-ZF65NZ4B.js.map +1 -0
- package/dist/index.js +3 -3
- package/dist/workbench/contribution.js +1 -1
- package/dist/workbench/index.d.ts +2 -1
- package/dist/workbench/index.js +1 -1
- package/package.json +13 -13
- package/dist/chunk-4DIYEFHH.js.map +0 -1
- package/dist/chunk-57W6N7EW.js.map +0 -1
- package/dist/chunk-EGEYJLG2.js.map +0 -1
|
@@ -4981,6 +4981,372 @@ function projectGeneratedImageRow(call, turnId) {
|
|
|
4981
4981
|
};
|
|
4982
4982
|
}
|
|
4983
4983
|
|
|
4984
|
+
// agent-gui/agentGuiNode/model/agentConversationCopy.ts
|
|
4985
|
+
var COPY_PAGE_SIZE = 200;
|
|
4986
|
+
var MAX_COPY_PAGES = 1e3;
|
|
4987
|
+
var AGENT_CONVERSATION_COPY_MAX_EMBEDDED_IMAGE_BYTES = 2 * 1024 * 1024;
|
|
4988
|
+
async function loadCompleteAgentConversationMessages(input) {
|
|
4989
|
+
const messagesById = /* @__PURE__ */ new Map();
|
|
4990
|
+
let beforeVersion;
|
|
4991
|
+
for (let pageIndex = 0; pageIndex < MAX_COPY_PAGES; pageIndex += 1) {
|
|
4992
|
+
const page = await input.runtime.listSessionMessages({
|
|
4993
|
+
agentSessionId: input.agentSessionId,
|
|
4994
|
+
...beforeVersion === void 0 ? {} : { beforeVersion },
|
|
4995
|
+
cache: false,
|
|
4996
|
+
limit: COPY_PAGE_SIZE,
|
|
4997
|
+
order: "desc",
|
|
4998
|
+
workspaceId: input.workspaceId
|
|
4999
|
+
});
|
|
5000
|
+
for (const message of page.messages) {
|
|
5001
|
+
const key = message.messageId.trim() || `${message.version}`;
|
|
5002
|
+
const existing = messagesById.get(key);
|
|
5003
|
+
if (!existing || message.version >= existing.version) {
|
|
5004
|
+
messagesById.set(key, message);
|
|
5005
|
+
}
|
|
5006
|
+
}
|
|
5007
|
+
if (!page.hasMore) {
|
|
5008
|
+
return [...messagesById.values()].sort(compareMessagesAscending);
|
|
5009
|
+
}
|
|
5010
|
+
const nextBeforeVersion = minimumPositiveVersion(page.messages);
|
|
5011
|
+
if (nextBeforeVersion === null || beforeVersion !== void 0 && nextBeforeVersion >= beforeVersion) {
|
|
5012
|
+
throw new Error("Conversation message pagination did not advance.");
|
|
5013
|
+
}
|
|
5014
|
+
beforeVersion = nextBeforeVersion;
|
|
5015
|
+
}
|
|
5016
|
+
throw new Error("Conversation message pagination exceeded the safety limit.");
|
|
5017
|
+
}
|
|
5018
|
+
async function serializeAgentConversationForClipboard(input) {
|
|
5019
|
+
const context = {
|
|
5020
|
+
labels: input.labels,
|
|
5021
|
+
readAttachment: input.readAttachment,
|
|
5022
|
+
readLocalImage: input.readLocalImage,
|
|
5023
|
+
stats: { omittedImages: 0 }
|
|
5024
|
+
};
|
|
5025
|
+
const kept = [];
|
|
5026
|
+
for (const message of [...input.messages].sort(compareMessagesAscending)) {
|
|
5027
|
+
if (isSystemNoticeMessage(message)) {
|
|
5028
|
+
continue;
|
|
5029
|
+
}
|
|
5030
|
+
if (isToolMessage(message)) {
|
|
5031
|
+
const body2 = await serializeImagesOnly(message.payload ?? {}, context);
|
|
5032
|
+
if (body2.plain) {
|
|
5033
|
+
kept.push({ body: body2, isToolImage: true, role: "assistant" });
|
|
5034
|
+
}
|
|
5035
|
+
continue;
|
|
5036
|
+
}
|
|
5037
|
+
const role = keptMessageRole(message);
|
|
5038
|
+
if (!role) {
|
|
5039
|
+
continue;
|
|
5040
|
+
}
|
|
5041
|
+
const body = await serializeMessageContent(message.payload ?? {}, context);
|
|
5042
|
+
if (body.plain) {
|
|
5043
|
+
kept.push({ body, role });
|
|
5044
|
+
}
|
|
5045
|
+
}
|
|
5046
|
+
const markdownBlocks = [`# ${singleLine(input.title)}`];
|
|
5047
|
+
const hydratedBlocks = [`# ${singleLine(input.title)}`];
|
|
5048
|
+
const pushBlock = (plain, hydrated) => {
|
|
5049
|
+
markdownBlocks.push(plain);
|
|
5050
|
+
hydratedBlocks.push(hydrated);
|
|
5051
|
+
};
|
|
5052
|
+
let index = 0;
|
|
5053
|
+
while (index < kept.length) {
|
|
5054
|
+
const entry = kept[index];
|
|
5055
|
+
if (entry.role === "user") {
|
|
5056
|
+
pushBlock(
|
|
5057
|
+
blockquoteMarkdown(entry.body.plain),
|
|
5058
|
+
blockquoteMarkdown(entry.body.hydrated)
|
|
5059
|
+
);
|
|
5060
|
+
index += 1;
|
|
5061
|
+
continue;
|
|
5062
|
+
}
|
|
5063
|
+
let last = index;
|
|
5064
|
+
while (last + 1 < kept.length && kept[last + 1].role === "assistant") {
|
|
5065
|
+
last += 1;
|
|
5066
|
+
}
|
|
5067
|
+
const run = kept.slice(index, last + 1);
|
|
5068
|
+
const textEntries = run.filter((item) => !item.isToolImage);
|
|
5069
|
+
const interim = textEntries.slice(0, -1);
|
|
5070
|
+
const finalText = textEntries.at(-1);
|
|
5071
|
+
if (interim.length > 0) {
|
|
5072
|
+
const summary = input.labels.previousMessages.replace(
|
|
5073
|
+
"{{count}}",
|
|
5074
|
+
`${interim.length}`
|
|
5075
|
+
);
|
|
5076
|
+
const detailsBlock = (side) => [
|
|
5077
|
+
`<details><summary>${summary}</summary>`,
|
|
5078
|
+
...interim.map((item) => blockquoteMarkdown(item.body[side])),
|
|
5079
|
+
"</details>"
|
|
5080
|
+
].join("\n\n");
|
|
5081
|
+
pushBlock(detailsBlock("plain"), detailsBlock("hydrated"));
|
|
5082
|
+
}
|
|
5083
|
+
for (const item of run) {
|
|
5084
|
+
if (item.isToolImage || item === finalText) {
|
|
5085
|
+
pushBlock(item.body.plain, item.body.hydrated);
|
|
5086
|
+
}
|
|
5087
|
+
}
|
|
5088
|
+
index = last + 1;
|
|
5089
|
+
}
|
|
5090
|
+
return {
|
|
5091
|
+
hydratedMarkdown: hydratedBlocks.join("\n\n").trim(),
|
|
5092
|
+
markdown: markdownBlocks.join("\n\n").trim(),
|
|
5093
|
+
omittedImages: context.stats.omittedImages
|
|
5094
|
+
};
|
|
5095
|
+
}
|
|
5096
|
+
function sameBody(value) {
|
|
5097
|
+
return { hydrated: value, plain: value };
|
|
5098
|
+
}
|
|
5099
|
+
function joinBodies(bodies) {
|
|
5100
|
+
return {
|
|
5101
|
+
hydrated: bodies.map((body) => body.hydrated).filter(Boolean).join("\n\n").trim(),
|
|
5102
|
+
plain: bodies.map((body) => body.plain).filter(Boolean).join("\n\n").trim()
|
|
5103
|
+
};
|
|
5104
|
+
}
|
|
5105
|
+
function keptMessageRole(message) {
|
|
5106
|
+
const role = normalizedRole(message.role);
|
|
5107
|
+
if (role === "user") {
|
|
5108
|
+
return "user";
|
|
5109
|
+
}
|
|
5110
|
+
if (role === "assistant" || role === "agent") {
|
|
5111
|
+
return "assistant";
|
|
5112
|
+
}
|
|
5113
|
+
return null;
|
|
5114
|
+
}
|
|
5115
|
+
function blockquoteMarkdown(value) {
|
|
5116
|
+
const quoted = value.replace(
|
|
5117
|
+
/\n(.?)/g,
|
|
5118
|
+
(_match, next) => next ? `
|
|
5119
|
+
> ${next}` : "\n>"
|
|
5120
|
+
);
|
|
5121
|
+
return `> ${quoted}`;
|
|
5122
|
+
}
|
|
5123
|
+
async function serializeMessageContent(payload, context) {
|
|
5124
|
+
const content = payload.content;
|
|
5125
|
+
if (Array.isArray(content)) {
|
|
5126
|
+
const blocks = await Promise.all(
|
|
5127
|
+
content.map((block) => serializeContentValue(block, context))
|
|
5128
|
+
);
|
|
5129
|
+
const serialized = joinBodies(blocks);
|
|
5130
|
+
if (serialized.plain) {
|
|
5131
|
+
return serialized;
|
|
5132
|
+
}
|
|
5133
|
+
} else if (typeof content === "string" && content.trim()) {
|
|
5134
|
+
return sameBody(content.trim());
|
|
5135
|
+
}
|
|
5136
|
+
return sameBody(
|
|
5137
|
+
firstString2(
|
|
5138
|
+
payload.displayPrompt,
|
|
5139
|
+
payload.text,
|
|
5140
|
+
payload.detail,
|
|
5141
|
+
payload.title,
|
|
5142
|
+
payload.summary
|
|
5143
|
+
) ?? ""
|
|
5144
|
+
);
|
|
5145
|
+
}
|
|
5146
|
+
async function serializeContentValue(value, context) {
|
|
5147
|
+
if (typeof value === "string") {
|
|
5148
|
+
return sameBody(value.trim());
|
|
5149
|
+
}
|
|
5150
|
+
if (!isRecord(value)) {
|
|
5151
|
+
return sameBody("");
|
|
5152
|
+
}
|
|
5153
|
+
if (value.type === "content" && value.content !== void 0) {
|
|
5154
|
+
return serializeContentValue(value.content, context);
|
|
5155
|
+
}
|
|
5156
|
+
const block = value;
|
|
5157
|
+
switch (block.type) {
|
|
5158
|
+
case "text":
|
|
5159
|
+
return sameBody(typeof block.text === "string" ? block.text.trim() : "");
|
|
5160
|
+
case "image":
|
|
5161
|
+
return serializeImageBlock(block, context);
|
|
5162
|
+
case "file":
|
|
5163
|
+
return sameBody(serializeFileBlock(block, context.labels));
|
|
5164
|
+
case "mention":
|
|
5165
|
+
return sameBody(serializeMentionBlock(block, context.labels));
|
|
5166
|
+
case "skill":
|
|
5167
|
+
return sameBody(serializeSkillBlock(block));
|
|
5168
|
+
default: {
|
|
5169
|
+
const nested = await Promise.all(
|
|
5170
|
+
[value.content, value.output, value.result].filter((candidate) => candidate !== void 0).map((candidate) => serializeContentValue(candidate, context))
|
|
5171
|
+
);
|
|
5172
|
+
return joinBodies(nested);
|
|
5173
|
+
}
|
|
5174
|
+
}
|
|
5175
|
+
}
|
|
5176
|
+
async function serializeImagesOnly(value, context) {
|
|
5177
|
+
if (Array.isArray(value)) {
|
|
5178
|
+
const nested = await Promise.all(
|
|
5179
|
+
value.map((item) => serializeImagesOnly(item, context))
|
|
5180
|
+
);
|
|
5181
|
+
return joinBodies(nested);
|
|
5182
|
+
}
|
|
5183
|
+
if (!isRecord(value)) {
|
|
5184
|
+
return sameBody("");
|
|
5185
|
+
}
|
|
5186
|
+
if (value.type === "content" && value.content !== void 0) {
|
|
5187
|
+
return serializeImagesOnly(value.content, context);
|
|
5188
|
+
}
|
|
5189
|
+
const block = value;
|
|
5190
|
+
switch (block.type) {
|
|
5191
|
+
case "image":
|
|
5192
|
+
return serializeImageBlock(block, context);
|
|
5193
|
+
case "text":
|
|
5194
|
+
case "file":
|
|
5195
|
+
case "mention":
|
|
5196
|
+
case "skill":
|
|
5197
|
+
return sameBody("");
|
|
5198
|
+
default: {
|
|
5199
|
+
const nested = await Promise.all(
|
|
5200
|
+
[value.content, value.output, value.result].filter((candidate) => candidate !== void 0).map((candidate) => serializeImagesOnly(candidate, context))
|
|
5201
|
+
);
|
|
5202
|
+
return joinBodies(nested);
|
|
5203
|
+
}
|
|
5204
|
+
}
|
|
5205
|
+
}
|
|
5206
|
+
async function serializeImageBlock(block, context) {
|
|
5207
|
+
const attachmentId = firstString2(block.attachmentId);
|
|
5208
|
+
const blockMimeType = firstString2(block.mimeType);
|
|
5209
|
+
const name = firstString2(block.name) ?? context.labels.image;
|
|
5210
|
+
const source = firstString2(block.url, block.uri, block.path, block.hostPath);
|
|
5211
|
+
const inlineData = typeof block.data === "string" && block.data.trim() ? block.data.trim() : null;
|
|
5212
|
+
const isDataSource = source?.startsWith("data:") ?? false;
|
|
5213
|
+
const plain = source && !isDataSource ? imageLinkMarkdown(name, source) : attachmentId ? imageLinkMarkdown(name, `attachment:${attachmentId}`) : `**${name}**`;
|
|
5214
|
+
let hydrated = plain;
|
|
5215
|
+
if (source && isDataSource) {
|
|
5216
|
+
const payload = source.slice(source.indexOf(",") + 1);
|
|
5217
|
+
if (base64BinaryByteSize(payload) <= AGENT_CONVERSATION_COPY_MAX_EMBEDDED_IMAGE_BYTES) {
|
|
5218
|
+
hydrated = imageLinkMarkdown(name, source);
|
|
5219
|
+
} else {
|
|
5220
|
+
context.stats.omittedImages += 1;
|
|
5221
|
+
}
|
|
5222
|
+
} else if (source) {
|
|
5223
|
+
const localPath = localImagePathFromSource(source);
|
|
5224
|
+
if (localPath && context.readLocalImage) {
|
|
5225
|
+
try {
|
|
5226
|
+
const attachment = await context.readLocalImage({
|
|
5227
|
+
mimeType: blockMimeType,
|
|
5228
|
+
path: localPath
|
|
5229
|
+
});
|
|
5230
|
+
hydrated = embedWithinLimit(name, attachment, plain, context);
|
|
5231
|
+
} catch {
|
|
5232
|
+
context.stats.omittedImages += 1;
|
|
5233
|
+
}
|
|
5234
|
+
}
|
|
5235
|
+
} else if (inlineData) {
|
|
5236
|
+
const dataUri = inlineData.startsWith("data:") ? inlineData : `data:${blockMimeType ?? "image/png"};base64,${inlineData}`;
|
|
5237
|
+
const payload = dataUri.slice(dataUri.indexOf(",") + 1);
|
|
5238
|
+
if (base64BinaryByteSize(payload) <= AGENT_CONVERSATION_COPY_MAX_EMBEDDED_IMAGE_BYTES) {
|
|
5239
|
+
hydrated = imageLinkMarkdown(name, dataUri);
|
|
5240
|
+
} else {
|
|
5241
|
+
context.stats.omittedImages += 1;
|
|
5242
|
+
}
|
|
5243
|
+
} else if (attachmentId && context.readAttachment) {
|
|
5244
|
+
try {
|
|
5245
|
+
const attachment = await context.readAttachment(attachmentId);
|
|
5246
|
+
hydrated = embedWithinLimit(name, attachment, plain, context);
|
|
5247
|
+
} catch {
|
|
5248
|
+
context.stats.omittedImages += 1;
|
|
5249
|
+
}
|
|
5250
|
+
}
|
|
5251
|
+
return { hydrated, plain };
|
|
5252
|
+
}
|
|
5253
|
+
function embedWithinLimit(name, attachment, fallback, context) {
|
|
5254
|
+
if (base64BinaryByteSize(attachment.data) > AGENT_CONVERSATION_COPY_MAX_EMBEDDED_IMAGE_BYTES) {
|
|
5255
|
+
context.stats.omittedImages += 1;
|
|
5256
|
+
return fallback;
|
|
5257
|
+
}
|
|
5258
|
+
return imageLinkMarkdown(
|
|
5259
|
+
name,
|
|
5260
|
+
`data:${attachment.mimeType};base64,${attachment.data}`
|
|
5261
|
+
);
|
|
5262
|
+
}
|
|
5263
|
+
function imageLinkMarkdown(name, target) {
|
|
5264
|
+
return `}>)`;
|
|
5265
|
+
}
|
|
5266
|
+
function base64BinaryByteSize(value) {
|
|
5267
|
+
const trimmed = value.trim();
|
|
5268
|
+
const padding = trimmed.endsWith("==") ? 2 : trimmed.endsWith("=") ? 1 : 0;
|
|
5269
|
+
return Math.max(0, Math.floor(trimmed.length * 3 / 4) - padding);
|
|
5270
|
+
}
|
|
5271
|
+
function localImagePathFromSource(source) {
|
|
5272
|
+
const trimmed = source.trim();
|
|
5273
|
+
if (isLocalImagePath(trimmed)) {
|
|
5274
|
+
return trimmed;
|
|
5275
|
+
}
|
|
5276
|
+
if (!/^file:\/\//i.test(trimmed)) {
|
|
5277
|
+
return null;
|
|
5278
|
+
}
|
|
5279
|
+
try {
|
|
5280
|
+
const pathname = decodeURIComponent(new URL(trimmed).pathname);
|
|
5281
|
+
return /^\/[a-zA-Z]:[\\/]/.test(pathname) ? pathname.slice(1) : pathname;
|
|
5282
|
+
} catch {
|
|
5283
|
+
return null;
|
|
5284
|
+
}
|
|
5285
|
+
}
|
|
5286
|
+
function serializeFileBlock(block, labels) {
|
|
5287
|
+
const source = firstString2(block.uri, block.path, block.hostPath, block.url);
|
|
5288
|
+
const name = firstString2(block.name) ?? source ?? labels.file;
|
|
5289
|
+
return source ? `[${escapeMarkdownLabel(name)}](<${escapeMarkdownTarget(source)}>)` : `**${labels.file}:** ${escapeMarkdownLabel(name)}`;
|
|
5290
|
+
}
|
|
5291
|
+
function serializeMentionBlock(block, labels) {
|
|
5292
|
+
const text = firstString2(block.text, block.name);
|
|
5293
|
+
if (text) {
|
|
5294
|
+
return text.startsWith(labels.mentionPrefix) ? text : `${labels.mentionPrefix}${text}`;
|
|
5295
|
+
}
|
|
5296
|
+
return firstString2(block.uri, block.path) ?? "";
|
|
5297
|
+
}
|
|
5298
|
+
function serializeSkillBlock(block) {
|
|
5299
|
+
const name = firstString2(block.name, block.text);
|
|
5300
|
+
return name ? name.startsWith("/") ? name : `/${name}` : "";
|
|
5301
|
+
}
|
|
5302
|
+
function isSystemNoticeMessage(message) {
|
|
5303
|
+
return firstString2(message.payload.kind) === "agent_system_notice";
|
|
5304
|
+
}
|
|
5305
|
+
function isToolMessage(message) {
|
|
5306
|
+
const kind = message.kind.trim().toLowerCase();
|
|
5307
|
+
return kind.includes("tool") || kind.includes("call") || firstString2(message.payload.callType, message.payload.toolName) !== null;
|
|
5308
|
+
}
|
|
5309
|
+
function compareMessagesAscending(left, right) {
|
|
5310
|
+
const leftSequence = left.sequence ?? 0;
|
|
5311
|
+
const rightSequence = right.sequence ?? 0;
|
|
5312
|
+
if (leftSequence > 0 && rightSequence > 0 && leftSequence !== rightSequence) {
|
|
5313
|
+
return leftSequence - rightSequence;
|
|
5314
|
+
}
|
|
5315
|
+
return left.occurredAtUnixMs - right.occurredAtUnixMs || left.version - right.version || left.messageId.localeCompare(right.messageId);
|
|
5316
|
+
}
|
|
5317
|
+
function minimumPositiveVersion(messages) {
|
|
5318
|
+
let minimum = Number.POSITIVE_INFINITY;
|
|
5319
|
+
for (const message of messages) {
|
|
5320
|
+
if (Number.isFinite(message.version) && message.version > 0) {
|
|
5321
|
+
minimum = Math.min(minimum, message.version);
|
|
5322
|
+
}
|
|
5323
|
+
}
|
|
5324
|
+
return Number.isFinite(minimum) ? minimum : null;
|
|
5325
|
+
}
|
|
5326
|
+
function normalizedRole(role) {
|
|
5327
|
+
return role.trim().toLowerCase();
|
|
5328
|
+
}
|
|
5329
|
+
function firstString2(...values) {
|
|
5330
|
+
for (const value of values) {
|
|
5331
|
+
if (typeof value === "string" && value.trim()) {
|
|
5332
|
+
return value.trim();
|
|
5333
|
+
}
|
|
5334
|
+
}
|
|
5335
|
+
return null;
|
|
5336
|
+
}
|
|
5337
|
+
function singleLine(value) {
|
|
5338
|
+
return value.trim().replace(/\s+/g, " ");
|
|
5339
|
+
}
|
|
5340
|
+
function escapeMarkdownLabel(value) {
|
|
5341
|
+
return value.replaceAll("\\", "\\\\").replaceAll("[", "\\[").replaceAll("]", "\\]");
|
|
5342
|
+
}
|
|
5343
|
+
function escapeMarkdownTarget(value) {
|
|
5344
|
+
return value.replace(/>/g, "%3E");
|
|
5345
|
+
}
|
|
5346
|
+
function isRecord(value) {
|
|
5347
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
5348
|
+
}
|
|
5349
|
+
|
|
4984
5350
|
// shared/agentConversation/components/AgentTranscriptSkeleton.tsx
|
|
4985
5351
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4986
5352
|
function AgentTranscriptSkeleton({
|
|
@@ -7699,7 +8065,7 @@ function getFileChangeRenderData(call) {
|
|
|
7699
8065
|
if (fromContentDiff.length > 0) {
|
|
7700
8066
|
return fromContentDiff;
|
|
7701
8067
|
}
|
|
7702
|
-
const inputPath =
|
|
8068
|
+
const inputPath = firstString3(
|
|
7703
8069
|
stringValue6(call.input?.file_path),
|
|
7704
8070
|
stringValue6(call.input?.filePath),
|
|
7705
8071
|
stringValue6(call.input?.path),
|
|
@@ -7708,31 +8074,31 @@ function getFileChangeRenderData(call) {
|
|
|
7708
8074
|
stringValue6(payloadInput?.path),
|
|
7709
8075
|
firstLocationPath(inputLocations)
|
|
7710
8076
|
);
|
|
7711
|
-
const unifiedDiff =
|
|
8077
|
+
const unifiedDiff = firstString3(
|
|
7712
8078
|
stringValue6(call.output?.patch),
|
|
7713
8079
|
stringValue6(payloadOutput?.patch),
|
|
7714
8080
|
stringValue6(call.output?.diff),
|
|
7715
8081
|
stringValue6(payloadOutput?.diff)
|
|
7716
8082
|
);
|
|
7717
|
-
const path =
|
|
8083
|
+
const path = firstString3(
|
|
7718
8084
|
inputPath,
|
|
7719
8085
|
unifiedDiff ? extractAgentPatchPath(unifiedDiff) : null
|
|
7720
8086
|
);
|
|
7721
8087
|
if (!path) {
|
|
7722
8088
|
return [];
|
|
7723
8089
|
}
|
|
7724
|
-
const content =
|
|
8090
|
+
const content = firstString3(
|
|
7725
8091
|
stringValue6(call.input?.content),
|
|
7726
8092
|
stringValue6(payloadInput?.content),
|
|
7727
8093
|
stringValue6(rawInput?.content)
|
|
7728
8094
|
);
|
|
7729
|
-
const oldString =
|
|
8095
|
+
const oldString = firstString3(
|
|
7730
8096
|
stringValue6(call.input?.old_string),
|
|
7731
8097
|
stringValue6(payloadInput?.old_string),
|
|
7732
8098
|
stringValue6(call.output?.oldString),
|
|
7733
8099
|
stringValue6(payloadOutput?.oldString)
|
|
7734
8100
|
);
|
|
7735
|
-
const newString =
|
|
8101
|
+
const newString = firstString3(
|
|
7736
8102
|
stringValue6(call.input?.new_string),
|
|
7737
8103
|
stringValue6(payloadInput?.new_string),
|
|
7738
8104
|
stringValue6(call.output?.newString),
|
|
@@ -7774,26 +8140,26 @@ function structuredPatchFiles(value) {
|
|
|
7774
8140
|
}
|
|
7775
8141
|
return patches.flatMap((item) => {
|
|
7776
8142
|
const patch = recordValue3(item);
|
|
7777
|
-
const path =
|
|
8143
|
+
const path = firstString3(
|
|
7778
8144
|
stringValue6(patch?.filePath),
|
|
7779
8145
|
stringValue6(patch?.path)
|
|
7780
8146
|
);
|
|
7781
|
-
const diff =
|
|
8147
|
+
const diff = firstString3(
|
|
7782
8148
|
stringValue6(patch?.diff),
|
|
7783
8149
|
stringValue6(patch?.patch)
|
|
7784
8150
|
);
|
|
7785
8151
|
if (!path) {
|
|
7786
8152
|
return [];
|
|
7787
8153
|
}
|
|
7788
|
-
const oldString =
|
|
8154
|
+
const oldString = firstString3(
|
|
7789
8155
|
stringValue6(patch?.oldString),
|
|
7790
8156
|
stringValue6(patch?.old_string)
|
|
7791
8157
|
);
|
|
7792
|
-
const newString =
|
|
8158
|
+
const newString = firstString3(
|
|
7793
8159
|
stringValue6(patch?.newString),
|
|
7794
8160
|
stringValue6(patch?.new_string)
|
|
7795
8161
|
);
|
|
7796
|
-
const content =
|
|
8162
|
+
const content = firstString3(stringValue6(patch?.content), newString);
|
|
7797
8163
|
if (!diff && !oldString && !newString && !content) {
|
|
7798
8164
|
return [];
|
|
7799
8165
|
}
|
|
@@ -7861,21 +8227,21 @@ function fileChangesFiles(value) {
|
|
|
7861
8227
|
if (!path) {
|
|
7862
8228
|
return [];
|
|
7863
8229
|
}
|
|
7864
|
-
const unifiedDiff =
|
|
8230
|
+
const unifiedDiff = firstString3(
|
|
7865
8231
|
stringValue6(file?.diff),
|
|
7866
8232
|
stringValue6(file?.patch),
|
|
7867
8233
|
stringValue6(file?.unifiedDiff),
|
|
7868
8234
|
stringValue6(file?.unified_diff)
|
|
7869
8235
|
);
|
|
7870
|
-
const oldString =
|
|
8236
|
+
const oldString = firstString3(
|
|
7871
8237
|
stringValue6(file?.oldString),
|
|
7872
8238
|
stringValue6(file?.old_string)
|
|
7873
8239
|
);
|
|
7874
|
-
const newString =
|
|
8240
|
+
const newString = firstString3(
|
|
7875
8241
|
stringValue6(file?.newString),
|
|
7876
8242
|
stringValue6(file?.new_string)
|
|
7877
8243
|
);
|
|
7878
|
-
const content =
|
|
8244
|
+
const content = firstString3(stringValue6(file?.content), newString);
|
|
7879
8245
|
const changeType = firstKnownChangeType(
|
|
7880
8246
|
normalizeChangeType2(stringValue6(file?.change)),
|
|
7881
8247
|
normalizeChangeType2(stringValue6(file?.kind)),
|
|
@@ -7910,7 +8276,7 @@ function changeMapFiles(value) {
|
|
|
7910
8276
|
if (!normalizedPath) {
|
|
7911
8277
|
return [];
|
|
7912
8278
|
}
|
|
7913
|
-
const unifiedDiff =
|
|
8279
|
+
const unifiedDiff = firstString3(
|
|
7914
8280
|
stringValue6(change.unified_diff),
|
|
7915
8281
|
stringValue6(change.unifiedDiff),
|
|
7916
8282
|
stringValue6(change.diff),
|
|
@@ -7918,11 +8284,11 @@ function changeMapFiles(value) {
|
|
|
7918
8284
|
);
|
|
7919
8285
|
const explicitContent = stringValue6(change.content);
|
|
7920
8286
|
const normalizedType = normalizeChangeType2(fileChangeTypeValue(change));
|
|
7921
|
-
let oldString =
|
|
8287
|
+
let oldString = firstString3(
|
|
7922
8288
|
stringValue6(change.old_string),
|
|
7923
8289
|
stringValue6(change.oldString)
|
|
7924
8290
|
);
|
|
7925
|
-
let newString =
|
|
8291
|
+
let newString = firstString3(
|
|
7926
8292
|
stringValue6(change.new_string),
|
|
7927
8293
|
stringValue6(change.newString),
|
|
7928
8294
|
explicitContent
|
|
@@ -7937,7 +8303,7 @@ function changeMapFiles(value) {
|
|
|
7937
8303
|
if (normalizedType === "deleted" && newString === null && oldString !== null) {
|
|
7938
8304
|
newString = "";
|
|
7939
8305
|
}
|
|
7940
|
-
const content =
|
|
8306
|
+
const content = firstString3(
|
|
7941
8307
|
normalizedType === "deleted" ? null : explicitContent,
|
|
7942
8308
|
normalizedType === "created" ? newString : null
|
|
7943
8309
|
);
|
|
@@ -7996,7 +8362,7 @@ function contentDiffFiles(value, changesValue, toolName) {
|
|
|
7996
8362
|
return [];
|
|
7997
8363
|
}
|
|
7998
8364
|
const relatedChange = changesByPath.get(path) ?? null;
|
|
7999
|
-
const unifiedDiff =
|
|
8365
|
+
const unifiedDiff = firstString3(
|
|
8000
8366
|
stringValue6(record.diff),
|
|
8001
8367
|
stringValue6(record.patch),
|
|
8002
8368
|
stringValue6(relatedChange?.unified_diff),
|
|
@@ -8005,13 +8371,13 @@ function contentDiffFiles(value, changesValue, toolName) {
|
|
|
8005
8371
|
const normalizedType = normalizeChangeType2(
|
|
8006
8372
|
relatedChange ? fileChangeTypeValue(relatedChange) : null
|
|
8007
8373
|
);
|
|
8008
|
-
let oldString =
|
|
8374
|
+
let oldString = firstString3(
|
|
8009
8375
|
stringValue6(record.oldText),
|
|
8010
8376
|
stringValue6(record.oldString),
|
|
8011
8377
|
stringValue6(relatedChange?.old_string),
|
|
8012
8378
|
stringValue6(relatedChange?.oldString)
|
|
8013
8379
|
);
|
|
8014
|
-
let newString =
|
|
8380
|
+
let newString = firstString3(
|
|
8015
8381
|
stringValue6(record.newText),
|
|
8016
8382
|
stringValue6(record.newString),
|
|
8017
8383
|
stringValue6(relatedChange?.new_string),
|
|
@@ -8028,7 +8394,7 @@ function contentDiffFiles(value, changesValue, toolName) {
|
|
|
8028
8394
|
if (normalizedType === "deleted" && newString === null && oldString !== null) {
|
|
8029
8395
|
newString = "";
|
|
8030
8396
|
}
|
|
8031
|
-
const explicitContent =
|
|
8397
|
+
const explicitContent = firstString3(
|
|
8032
8398
|
stringValue6(record.content),
|
|
8033
8399
|
stringValue6(relatedChange?.content)
|
|
8034
8400
|
);
|
|
@@ -8045,7 +8411,7 @@ function contentDiffFiles(value, changesValue, toolName) {
|
|
|
8045
8411
|
if (changeType === "created" && oldString === null && newString !== null) {
|
|
8046
8412
|
oldString = "";
|
|
8047
8413
|
}
|
|
8048
|
-
const content =
|
|
8414
|
+
const content = firstString3(
|
|
8049
8415
|
changeType === "deleted" ? null : explicitContent,
|
|
8050
8416
|
changeType === "created" ? newString : null
|
|
8051
8417
|
);
|
|
@@ -8225,7 +8591,7 @@ function languageForPath(path) {
|
|
|
8225
8591
|
function normalizeToolName6(value) {
|
|
8226
8592
|
return (value ?? "").trim().replace(/[_\s-]+/g, "").toLowerCase();
|
|
8227
8593
|
}
|
|
8228
|
-
function
|
|
8594
|
+
function firstString3(...values) {
|
|
8229
8595
|
for (const value of values) {
|
|
8230
8596
|
if (typeof value === "string" && value.trim()) {
|
|
8231
8597
|
return value.trim();
|
|
@@ -8264,7 +8630,7 @@ function getCommandRenderData(call) {
|
|
|
8264
8630
|
const outputRawOutput = recordValue4(call.output?.rawOutput);
|
|
8265
8631
|
const errorRawOutput = recordValue4(call.error?.rawOutput);
|
|
8266
8632
|
return {
|
|
8267
|
-
command:
|
|
8633
|
+
command: firstString4(
|
|
8268
8634
|
stringValue7(call.input?.command),
|
|
8269
8635
|
stringValue7(call.input?.cmd),
|
|
8270
8636
|
commandArrayToString(call.input?.command),
|
|
@@ -8275,7 +8641,7 @@ function getCommandRenderData(call) {
|
|
|
8275
8641
|
stringValue7(payloadInputRawInput?.command),
|
|
8276
8642
|
stringValue7(payloadInputRawInput?.cmd)
|
|
8277
8643
|
),
|
|
8278
|
-
cwd:
|
|
8644
|
+
cwd: firstString4(
|
|
8279
8645
|
stringValue7(call.input?.cwd),
|
|
8280
8646
|
stringValue7(inputRawInput?.cwd),
|
|
8281
8647
|
stringValue7(payloadInput?.cwd),
|
|
@@ -8314,7 +8680,7 @@ function getCommandRenderData(call) {
|
|
|
8314
8680
|
function getSearchRenderData(call) {
|
|
8315
8681
|
const canonicalContent = contentText(call.content);
|
|
8316
8682
|
const canonicalFiles = locationPaths(call.locations);
|
|
8317
|
-
const output =
|
|
8683
|
+
const output = firstString4(
|
|
8318
8684
|
canonicalContent,
|
|
8319
8685
|
contentText(call.output?.content),
|
|
8320
8686
|
stringValue7(call.output?.content),
|
|
@@ -8329,14 +8695,14 @@ function getSearchRenderData(call) {
|
|
|
8329
8695
|
const mode = canonicalFiles.length > 0 && !output ? "list_files" : searchMode(call.output, output);
|
|
8330
8696
|
const filenames = canonicalFiles.length > 0 ? canonicalFiles : stringArray(call.output?.filenames);
|
|
8331
8697
|
return {
|
|
8332
|
-
query:
|
|
8698
|
+
query: firstString4(
|
|
8333
8699
|
stringValue7(call.input?.pattern),
|
|
8334
8700
|
stringValue7(call.input?.query),
|
|
8335
8701
|
stringValue7(call.input?.search_query),
|
|
8336
8702
|
stringValue7(call.input?.searchQuery),
|
|
8337
8703
|
stringValue7(call.input?.glob)
|
|
8338
8704
|
),
|
|
8339
|
-
scope:
|
|
8705
|
+
scope: firstString4(
|
|
8340
8706
|
stringValue7(call.input?.path),
|
|
8341
8707
|
stringValue7(call.input?.file_path),
|
|
8342
8708
|
stringValue7(call.input?.glob)
|
|
@@ -8345,7 +8711,7 @@ function getSearchRenderData(call) {
|
|
|
8345
8711
|
files: filenames.length > 0 ? filenames : mode === "list_files" ? outputLines : [],
|
|
8346
8712
|
lines: outputLines,
|
|
8347
8713
|
output,
|
|
8348
|
-
error:
|
|
8714
|
+
error: firstString4(
|
|
8349
8715
|
stringValue7(call.error?.aggregated_output),
|
|
8350
8716
|
stringValue7(call.error?.stdout),
|
|
8351
8717
|
stringValue7(call.error?.formatted_output),
|
|
@@ -8361,17 +8727,17 @@ function getWebSearchRenderData(call) {
|
|
|
8361
8727
|
recordValue4(call.input?.action)?.searchQuery
|
|
8362
8728
|
);
|
|
8363
8729
|
return {
|
|
8364
|
-
query:
|
|
8730
|
+
query: firstString4(
|
|
8365
8731
|
stringValue7(call.input?.query),
|
|
8366
8732
|
stringValue7(recordValue4(call.input?.action)?.query),
|
|
8367
8733
|
queries[0] ?? null
|
|
8368
8734
|
),
|
|
8369
8735
|
queries,
|
|
8370
|
-
url:
|
|
8736
|
+
url: firstString4(
|
|
8371
8737
|
stringValue7(call.input?.url),
|
|
8372
8738
|
stringValue7(recordValue4(call.input?.action)?.url)
|
|
8373
8739
|
),
|
|
8374
|
-
output:
|
|
8740
|
+
output: firstString4(
|
|
8375
8741
|
stringValue7(call.output?.text),
|
|
8376
8742
|
contentText(call.content),
|
|
8377
8743
|
contentText(call.output?.content),
|
|
@@ -8379,18 +8745,18 @@ function getWebSearchRenderData(call) {
|
|
|
8379
8745
|
stringValue7(call.output?.output),
|
|
8380
8746
|
stringValue7(call.output?.content)
|
|
8381
8747
|
) ?? "",
|
|
8382
|
-
error:
|
|
8748
|
+
error: firstString4(
|
|
8383
8749
|
stringValue7(call.error?.message),
|
|
8384
8750
|
stringValue7(call.error?.stdout)
|
|
8385
8751
|
) ?? ""
|
|
8386
8752
|
};
|
|
8387
8753
|
}
|
|
8388
8754
|
function getWebFetchRenderData(call, maxContentLength = 3e3) {
|
|
8389
|
-
const url =
|
|
8755
|
+
const url = firstString4(
|
|
8390
8756
|
stringValue7(call.input?.url),
|
|
8391
8757
|
stringValue7(recordValue4(call.input?.action)?.url)
|
|
8392
8758
|
);
|
|
8393
|
-
const content =
|
|
8759
|
+
const content = firstString4(
|
|
8394
8760
|
contentText(call.content),
|
|
8395
8761
|
contentText(call.output?.content),
|
|
8396
8762
|
stringValue7(call.output?.output),
|
|
@@ -8412,7 +8778,7 @@ function getTodoRenderData(call) {
|
|
|
8412
8778
|
}
|
|
8413
8779
|
return todos.flatMap((todo) => {
|
|
8414
8780
|
const record = recordValue4(todo);
|
|
8415
|
-
const content =
|
|
8781
|
+
const content = firstString4(
|
|
8416
8782
|
stringValue7(record?.content),
|
|
8417
8783
|
stringValue7(record?.text)
|
|
8418
8784
|
);
|
|
@@ -8437,20 +8803,20 @@ function getToolSearchRenderData(call) {
|
|
|
8437
8803
|
};
|
|
8438
8804
|
}
|
|
8439
8805
|
function getPlanModeRenderData(call) {
|
|
8440
|
-
const enterText = call.rendererKind === "plan-enter" ?
|
|
8806
|
+
const enterText = call.rendererKind === "plan-enter" ? firstString4(
|
|
8441
8807
|
stringValue7(call.planMode?.plan),
|
|
8442
8808
|
stringValue7(call.output?.text),
|
|
8443
8809
|
stringValue7(call.input?.content),
|
|
8444
8810
|
nonEmpty(call.summary),
|
|
8445
8811
|
"Exploring codebase and designing implementation approach."
|
|
8446
8812
|
) : null;
|
|
8447
|
-
const filePath =
|
|
8813
|
+
const filePath = firstString4(
|
|
8448
8814
|
stringValue7(call.input?.filePath),
|
|
8449
8815
|
stringValue7(call.input?.file_path)
|
|
8450
8816
|
);
|
|
8451
8817
|
return {
|
|
8452
8818
|
enterText,
|
|
8453
|
-
plan: call.rendererKind === "plan-enter" ? null :
|
|
8819
|
+
plan: call.rendererKind === "plan-enter" ? null : firstString4(
|
|
8454
8820
|
stringValue7(call.input?.plan),
|
|
8455
8821
|
stringValue7(call.payload?.plan),
|
|
8456
8822
|
nonEmpty(call.summary)
|
|
@@ -8469,13 +8835,13 @@ function getTaskRenderData(call) {
|
|
|
8469
8835
|
status: task?.status ?? stringValue7(call.metadata?.taskStatus) ?? stringValue7(call.metadata?.subagentStatus),
|
|
8470
8836
|
durationText: typeof task?.durationMs === "number" && Number.isFinite(task.durationMs) ? formatDuration(task.durationMs) : null,
|
|
8471
8837
|
latestStepSummary: task?.status === "running" ? steps.at(-1)?.summary ?? null : null,
|
|
8472
|
-
prompt:
|
|
8838
|
+
prompt: firstString4(
|
|
8473
8839
|
stringValue7(task?.prompt),
|
|
8474
8840
|
stringValue7(call.input?.prompt),
|
|
8475
8841
|
stringValue7(call.input?.description),
|
|
8476
8842
|
stringValue7(call.payload?.description)
|
|
8477
8843
|
),
|
|
8478
|
-
childSessionId:
|
|
8844
|
+
childSessionId: firstString4(
|
|
8479
8845
|
stringValue7(task?.delegateSessionId),
|
|
8480
8846
|
stringValue7(call.metadata?.childSessionID),
|
|
8481
8847
|
stringValue7(call.metadata?.child_session_id),
|
|
@@ -8485,7 +8851,7 @@ function getTaskRenderData(call) {
|
|
|
8485
8851
|
stringValue7(call.metadata?.agentId)
|
|
8486
8852
|
),
|
|
8487
8853
|
steps,
|
|
8488
|
-
resultMarkdown:
|
|
8854
|
+
resultMarkdown: firstString4(
|
|
8489
8855
|
stringValue7(task?.resultMarkdown),
|
|
8490
8856
|
firstNonEmptyStructuredText(call.output, outputRawOutput)
|
|
8491
8857
|
),
|
|
@@ -8497,14 +8863,14 @@ function getSkillRenderData(call) {
|
|
|
8497
8863
|
const outputRawOutput = call.output?.rawOutput;
|
|
8498
8864
|
const success = booleanValue(call.output?.success) ?? legacySkillSuccess(outputRawOutput) ?? booleanValue(recordValue4(outputRawOutput)?.success);
|
|
8499
8865
|
return {
|
|
8500
|
-
skill:
|
|
8866
|
+
skill: firstString4(
|
|
8501
8867
|
stringValue7(call.input?.skill),
|
|
8502
8868
|
stringValue7(inputRawInput?.skill),
|
|
8503
8869
|
stringValue7(call.output?.commandName),
|
|
8504
8870
|
stringValue7(recordValue4(outputRawOutput)?.commandName),
|
|
8505
8871
|
nonEmpty(call.summary)
|
|
8506
8872
|
),
|
|
8507
|
-
args:
|
|
8873
|
+
args: firstString4(
|
|
8508
8874
|
stringValue7(call.input?.args),
|
|
8509
8875
|
stringValue7(inputRawInput?.args)
|
|
8510
8876
|
),
|
|
@@ -8685,7 +9051,7 @@ function contentText(value) {
|
|
|
8685
9051
|
return [];
|
|
8686
9052
|
}
|
|
8687
9053
|
return [
|
|
8688
|
-
|
|
9054
|
+
firstString4(
|
|
8689
9055
|
stringValue7(record.text),
|
|
8690
9056
|
stringValue7(record.content),
|
|
8691
9057
|
stringValue7(recordValue4(record.content)?.text)
|
|
@@ -8705,7 +9071,7 @@ function structuredText(value) {
|
|
|
8705
9071
|
if (!record) {
|
|
8706
9072
|
return null;
|
|
8707
9073
|
}
|
|
8708
|
-
const preferred =
|
|
9074
|
+
const preferred = firstString4(
|
|
8709
9075
|
stringValue7(record.plan),
|
|
8710
9076
|
stringValue7(record.text),
|
|
8711
9077
|
stringValue7(record.output),
|
|
@@ -8732,7 +9098,7 @@ function structuredText(value) {
|
|
|
8732
9098
|
}
|
|
8733
9099
|
return null;
|
|
8734
9100
|
}
|
|
8735
|
-
function
|
|
9101
|
+
function firstString4(...values) {
|
|
8736
9102
|
for (const value of values) {
|
|
8737
9103
|
if (typeof value === "string" && value.trim()) {
|
|
8738
9104
|
return value.trim();
|
|
@@ -8802,7 +9168,7 @@ function locationPaths(value) {
|
|
|
8802
9168
|
return [];
|
|
8803
9169
|
}
|
|
8804
9170
|
return [
|
|
8805
|
-
|
|
9171
|
+
firstString4(
|
|
8806
9172
|
stringValue7(record.path),
|
|
8807
9173
|
stringValue7(record.filePath),
|
|
8808
9174
|
stringValue7(record.file_path)
|
|
@@ -10724,7 +11090,7 @@ function normalizeMcpPayload(call) {
|
|
|
10724
11090
|
return {
|
|
10725
11091
|
server,
|
|
10726
11092
|
tool,
|
|
10727
|
-
inputSummary:
|
|
11093
|
+
inputSummary: firstString5(
|
|
10728
11094
|
stringValue8(call.input?.query),
|
|
10729
11095
|
stringValue8(call.input?.url),
|
|
10730
11096
|
stringValue8(call.input?.path),
|
|
@@ -10732,7 +11098,7 @@ function normalizeMcpPayload(call) {
|
|
|
10732
11098
|
stringValue8(call.input?.command)
|
|
10733
11099
|
),
|
|
10734
11100
|
structured,
|
|
10735
|
-
text:
|
|
11101
|
+
text: firstString5(
|
|
10736
11102
|
contentArrayText(call.output?.content),
|
|
10737
11103
|
stringValue8(call.output?.content),
|
|
10738
11104
|
stringValue8(call.output?.output),
|
|
@@ -10771,7 +11137,7 @@ function parsedItems(value) {
|
|
|
10771
11137
|
return [];
|
|
10772
11138
|
}
|
|
10773
11139
|
function itemPrimaryText(item) {
|
|
10774
|
-
return
|
|
11140
|
+
return firstString5(
|
|
10775
11141
|
stringValue8(item.key),
|
|
10776
11142
|
stringValue8(item.title),
|
|
10777
11143
|
stringValue8(item.name),
|
|
@@ -10781,7 +11147,7 @@ function itemPrimaryText(item) {
|
|
|
10781
11147
|
);
|
|
10782
11148
|
}
|
|
10783
11149
|
function itemSecondaryText(item) {
|
|
10784
|
-
return
|
|
11150
|
+
return firstString5(
|
|
10785
11151
|
stringValue8(item.summary),
|
|
10786
11152
|
stringValue8(item.description),
|
|
10787
11153
|
stringValue8(item.status),
|
|
@@ -10820,7 +11186,7 @@ function contentArrayText(value) {
|
|
|
10820
11186
|
return [];
|
|
10821
11187
|
}
|
|
10822
11188
|
return [
|
|
10823
|
-
|
|
11189
|
+
firstString5(
|
|
10824
11190
|
stringValue8(record.text),
|
|
10825
11191
|
stringValue8(record.content),
|
|
10826
11192
|
stringValue8(objectValue6(record.content)?.text)
|
|
@@ -10829,7 +11195,7 @@ function contentArrayText(value) {
|
|
|
10829
11195
|
}).join("\n").trim();
|
|
10830
11196
|
return text || null;
|
|
10831
11197
|
}
|
|
10832
|
-
function
|
|
11198
|
+
function firstString5(...values) {
|
|
10833
11199
|
for (const value of values) {
|
|
10834
11200
|
if (value) {
|
|
10835
11201
|
return value;
|
|
@@ -14496,9 +14862,11 @@ export {
|
|
|
14496
14862
|
reconcileProjectedAgentConversationVM,
|
|
14497
14863
|
getAppErrorCode,
|
|
14498
14864
|
toLocalShortDateTime,
|
|
14865
|
+
loadCompleteAgentConversationMessages,
|
|
14866
|
+
serializeAgentConversationForClipboard,
|
|
14499
14867
|
AgentTranscriptSkeleton,
|
|
14500
14868
|
AgentTranscriptView,
|
|
14501
14869
|
AgentConversationFlow,
|
|
14502
14870
|
useProjectedAgentConversation
|
|
14503
14871
|
};
|
|
14504
|
-
//# sourceMappingURL=chunk-
|
|
14872
|
+
//# sourceMappingURL=chunk-3CZYC2YN.js.map
|