@fieldwangai/agentflow 0.1.86 → 0.1.87
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/bin/lib/ui-server.mjs +40 -3
- package/builtin/web-ui/dist/assets/index-BqOb-W89.css +1 -0
- package/builtin/web-ui/dist/assets/index-Cla8u37K.js +340 -0
- package/builtin/web-ui/dist/index.html +2 -2
- package/package.json +1 -1
- package/builtin/web-ui/dist/assets/index-CSr7NGO4.js +0 -322
- package/builtin/web-ui/dist/assets/index-DIO0cfyb.css +0 -1
package/bin/lib/ui-server.mjs
CHANGED
|
@@ -2300,13 +2300,27 @@ function normalizeDisplayShareNodeIds(ids, graph) {
|
|
|
2300
2300
|
const id = String(rawId || "").trim();
|
|
2301
2301
|
if (!id || seen.has(id)) continue;
|
|
2302
2302
|
const instance = instances[id];
|
|
2303
|
-
if (!
|
|
2303
|
+
if (!workspaceDisplayKindFromInstance(instance)) continue;
|
|
2304
2304
|
seen.add(id);
|
|
2305
2305
|
out.push(id);
|
|
2306
2306
|
}
|
|
2307
2307
|
return out;
|
|
2308
2308
|
}
|
|
2309
2309
|
|
|
2310
|
+
function workspaceDisplayContentFromInstance(instance, kind = "") {
|
|
2311
|
+
const slots = [...(Array.isArray(instance?.input) ? instance.input : []), ...(Array.isArray(instance?.output) ? instance.output : [])];
|
|
2312
|
+
const primaryName = kind === "image" ? "src" : "content";
|
|
2313
|
+
const slotText = (slot) => workspaceSlotValue(slot);
|
|
2314
|
+
const hasSlotText = (slot) => slotText(slot).trim();
|
|
2315
|
+
const contentSlot =
|
|
2316
|
+
slots.find((slot) => String(slot?.name || "") === primaryName && hasSlotText(slot)) ||
|
|
2317
|
+
slots.find((slot) => String(slot?.name || "") === "result" && hasSlotText(slot)) ||
|
|
2318
|
+
slots.find((slot) => String(slot?.name || "") === "filePath" && hasSlotText(slot)) ||
|
|
2319
|
+
slots.find((slot) => String(slot?.type || "") === "text" && hasSlotText(slot));
|
|
2320
|
+
const slotContent = contentSlot ? slotText(contentSlot) : "";
|
|
2321
|
+
return String(isWorkspaceOneClickTaskDefinitionId(instance?.definitionId) ? slotContent : (instance?.body || slotContent));
|
|
2322
|
+
}
|
|
2323
|
+
|
|
2310
2324
|
function normalizeDisplayShareLayout(layout, fallback = "canvas") {
|
|
2311
2325
|
const text = String(layout || "").trim();
|
|
2312
2326
|
return ["canvas", "gallery", "slides", "document", "single"].includes(text) ? text : fallback;
|
|
@@ -2518,8 +2532,8 @@ function publicDisplayPayloadFromShare(root, share) {
|
|
|
2518
2532
|
const nodes = nodeIds.map((id) => {
|
|
2519
2533
|
const instance = instances[id] || {};
|
|
2520
2534
|
const definitionId = String(instance.definitionId || "");
|
|
2521
|
-
const kind =
|
|
2522
|
-
const rawBody =
|
|
2535
|
+
const kind = workspaceDisplayKindFromInstance(instance);
|
|
2536
|
+
const rawBody = workspaceDisplayContentFromInstance(instance, kind);
|
|
2523
2537
|
const filePath = workspaceDisplayTextFilePath(rawBody, kind);
|
|
2524
2538
|
let body = rawBody;
|
|
2525
2539
|
if (filePath) {
|
|
@@ -2811,6 +2825,20 @@ function buildWorkspaceGeneratePrompt(payload) {
|
|
|
2811
2825
|
? payload.selectedNodeIds.map((id) => String(id || "").trim()).filter(Boolean)
|
|
2812
2826
|
: [];
|
|
2813
2827
|
const skillsBlock = typeof payload?.skillsBlock === "string" ? payload.skillsBlock.trim() : "";
|
|
2828
|
+
const history = Array.isArray(payload?.messages) ? payload.messages : [];
|
|
2829
|
+
const historyBlock = history
|
|
2830
|
+
.slice(-16)
|
|
2831
|
+
.map((msg) => {
|
|
2832
|
+
const text = String(msg?.text || "").trim();
|
|
2833
|
+
if (!text) return "";
|
|
2834
|
+
const kind = String(msg?.kind || "").trim();
|
|
2835
|
+
if (kind === "raw" || kind === "prompt" || kind === "thinking") return "";
|
|
2836
|
+
const role = msg?.role === "user" ? "user" : (msg?.error ? "error" : "assistant");
|
|
2837
|
+
if (kind === "run-summary" || kind === "activity") return `context: ${text}`;
|
|
2838
|
+
return `${role}: ${text}`;
|
|
2839
|
+
})
|
|
2840
|
+
.filter(Boolean)
|
|
2841
|
+
.join("\n\n");
|
|
2814
2842
|
const contexts = Array.isArray(payload?.contexts) ? payload.contexts : [];
|
|
2815
2843
|
const contextBlocks = contexts
|
|
2816
2844
|
.map((ctx, idx) => {
|
|
@@ -2867,6 +2895,7 @@ function buildWorkspaceGeneratePrompt(payload) {
|
|
|
2867
2895
|
skillsBlock ? `\n## Selected Skills\n\n${skillsBlock}` : "",
|
|
2868
2896
|
kindInstruction,
|
|
2869
2897
|
contextBlocks ? `\n## 上下文\n\n${contextBlocks}` : "",
|
|
2898
|
+
historyBlock ? `\n## 对话历史\n\n${historyBlock}` : "",
|
|
2870
2899
|
`\n## 用户 prompt\n\n${userPrompt}`,
|
|
2871
2900
|
].filter(Boolean).join("\n");
|
|
2872
2901
|
}
|
|
@@ -3462,6 +3491,14 @@ function workspaceDisplayKind(definitionId) {
|
|
|
3462
3491
|
return "";
|
|
3463
3492
|
}
|
|
3464
3493
|
|
|
3494
|
+
function workspaceDisplayKindFromInstance(instance) {
|
|
3495
|
+
const direct = workspaceDisplayKind(instance?.definitionId);
|
|
3496
|
+
if (direct) return direct;
|
|
3497
|
+
if (!isWorkspaceOneClickTaskDefinitionId(instance?.definitionId)) return "";
|
|
3498
|
+
if (!workspaceDisplayContentFromInstance(instance, workspaceContextRunDisplayKind(instance)).trim()) return "";
|
|
3499
|
+
return workspaceContextRunDisplayKind(instance);
|
|
3500
|
+
}
|
|
3501
|
+
|
|
3465
3502
|
function workspaceDisplayTextFilePath(value, kind = "") {
|
|
3466
3503
|
const text = String(value || "").trim();
|
|
3467
3504
|
if (!text || text.length > 260) return "";
|