@fses/workbench-app 0.2.9 → 0.2.10

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.
@@ -15,14 +15,14 @@
15
15
  {
16
16
  "name": "@fses/ai-chat",
17
17
  "relativePath": "node_modules/@fses/ai-chat",
18
- "treeIntegrity": "sha512-EQ2Ula6SyenaIHeU6xhnGiBJD8ugmZv8xJGBAhI+VfTNmYncyUcGZK+G/mtWHfw2rQ9Fru7cFnoxChIvj40BDg==",
19
- "version": "1.0.7"
18
+ "treeIntegrity": "sha512-Vjo/fIsp5pxdaYbVcIPRa5UNOEtDtAYJQSTMvzhmoVoYO0a+3A8GhHosd3PBOgxTMaI0hESP8bVzBM2CuS6Mrw==",
19
+ "version": "1.0.8"
20
20
  },
21
21
  {
22
22
  "name": "@fses/workbench-card",
23
23
  "relativePath": "node_modules/@fses/workbench-card",
24
- "treeIntegrity": "sha512-fRERIFjz1OiukeaQYVKypIPe5yDwi/QidJ70vw9sgodadLv1B8aT5lDt65k6o+SWOm8Ard+TmAYH07+DKCzLrQ==",
25
- "version": "0.3.7"
24
+ "treeIntegrity": "sha512-gbhdsW3ynB0Ye0x9jg9aBvCXJJFCuaglCU+s04fD1TORM5Z9o6QKGQy+UMjSrgtxLd/jfd59sHH46Lpm0063Ew==",
25
+ "version": "0.3.8"
26
26
  },
27
27
  {
28
28
  "name": "dompurify",
@@ -52,15 +52,15 @@
52
52
  },
53
53
  {
54
54
  "name": "@fses/ai-chat",
55
- "sourceTarballIntegrity": "sha512-3Tb/kIYJvDO0aWMUgJ7a7kb/Ow/lQ//BljzaqzCXueAF1CqrP6ZZRIELGRtq7D/XnE7PpKVtUeSRC1BeBz2HAA==",
56
- "treeIntegrity": "sha512-EQ2Ula6SyenaIHeU6xhnGiBJD8ugmZv8xJGBAhI+VfTNmYncyUcGZK+G/mtWHfw2rQ9Fru7cFnoxChIvj40BDg==",
57
- "version": "1.0.7"
55
+ "sourceTarballIntegrity": "sha512-wp9QwI1tc7yE/bHVsQkQKBKo2jPddryvy1zEhMwdiogErxXaR29GbBm7IVIM1FP8IYSi1QuoBruVwlh7HXcDrA==",
56
+ "treeIntegrity": "sha512-Vjo/fIsp5pxdaYbVcIPRa5UNOEtDtAYJQSTMvzhmoVoYO0a+3A8GhHosd3PBOgxTMaI0hESP8bVzBM2CuS6Mrw==",
57
+ "version": "1.0.8"
58
58
  },
59
59
  {
60
60
  "name": "@fses/workbench-card",
61
- "sourceTarballIntegrity": "sha512-ssayKrRuKVkPO4ZyOktYc3+k3XzWQzEFrkc7P1oYY4FxF1Y8rWYM2ufrNZdXBIKsE9svdi4DJMO8i3Cr8iplsQ==",
62
- "treeIntegrity": "sha512-fRERIFjz1OiukeaQYVKypIPe5yDwi/QidJ70vw9sgodadLv1B8aT5lDt65k6o+SWOm8Ard+TmAYH07+DKCzLrQ==",
63
- "version": "0.3.7"
61
+ "sourceTarballIntegrity": "sha512-hnJmbZ8rLVp/NoCWGh/Ls/8fuXdRvWa+7qXqjC3Zd5qgO0ow+dT0BC8xVFAPDXr/j3JRwfHv8nmQzRnOgQlclA==",
62
+ "treeIntegrity": "sha512-gbhdsW3ynB0Ye0x9jg9aBvCXJJFCuaglCU+s04fD1TORM5Z9o6QKGQy+UMjSrgtxLd/jfd59sHH46Lpm0063Ew==",
63
+ "version": "0.3.8"
64
64
  }
65
65
  ],
66
66
  "omittedOptionalDependencies": [
@@ -74,7 +74,7 @@
74
74
  "schemaVersion": 1,
75
75
  "workbenchApp": {
76
76
  "name": "@fses/workbench-app",
77
- "sourceGitCommit": "8e4029b5753060ecd15f516b9992be72c9a1b152",
78
- "version": "0.2.9"
77
+ "sourceGitCommit": "8dc702b9cc5776f354570441503c1635540b180e",
78
+ "version": "0.2.10"
79
79
  }
80
80
  }
@@ -6,7 +6,7 @@ import { FsesAiChat as Jb, canShowRecommendationFieldConfig as Zb } from "@fses/
6
6
  import "@fses/ai-chat/chart-card/from-markdown";
7
7
  import { resolveCardRecommendationFieldLabel as Ao } from "@fses/ai-chat/utils/card-recommendation-field-label";
8
8
  import "@fses/ai-chat/utils/card-recommendation-source";
9
- import { _ as un, r as Po, a as jp, b as ey, D as il, n as Fo, W as ty, f as ny, s as ry, w as ay, c as Jm, d as oy, p as iy, e as sy, g as ly, h as cy, i as uy, j as Zm, k as dy, l as fy, m as my, o as hy } from "./index-BneiYLQz.js";
9
+ import { _ as un, r as Po, a as jp, b as ey, D as il, n as Fo, W as ty, f as ny, s as ry, w as ay, c as Jm, d as oy, p as iy, e as sy, g as ly, h as cy, i as uy, j as Zm, k as dy, l as fy, m as my, o as hy } from "./index-BodxGKnW.js";
10
10
  import { workbenchCardShellStyle as py } from "@fses/workbench-card";
11
11
  import { CARD_CATEGORIES as Xc, CARD_REGISTRY as wf } from "@fses/workbench-card/registry";
12
12
  import { WorkbenchBlockRenderer as pu, EChartsProtocolRenderer as gy, EChartsProtocolAdapter as vy, applyWorkbenchResizableColumns as by, workbenchResizableTableScrollX as yy, setWorkbenchResizableColumnWidth as wy } from "@fses/workbench-card/renderers";
@@ -1,94 +1,95 @@
1
- import { D as s, q as o, t as r, k as t, u as n, v as c, x as i, l, y as p, z as C, A, B as m, C as g, E as d, F as E, m as _, p as u, j as T, a as R, c as S, e as h, g as L, s as M, d as P, G as v, w as y } from "./index-BneiYLQz.js";
2
- import { c as W } from "./canvasFacade-B0oy__da.js";
3
- import { D as b, c as D, d as N, e as O, f as B, g as I, h as x, i as w, j as H, k as F, l as G, m as K, n as U, o as V, p as j, q as z, r as Y, s as q, t as X, v as J, w as Z, x as Q, y as $, z as ee, A as ae, B as se, C as oe, E as re, F as te, G as ne, H as ce, u as ie, a as le, I as pe, J as Ce } from "./useWorkbenchRuntime-C3RRfCDd.js";
4
- import { D as me, L as ge, S as de, d as Ee, e as _e, b as ue, f as Te, g as Re, h as Se, i as he, j as Le, k as Me, l as Pe, m as ve, p as ye, n as ke, o as We, q as fe, r as be, s as De } from "./cardFactory-CoDF-zsR.js";
5
- import { W as Oe, a as Be, b as Ie, c as xe, d as we } from "./workbenchCustomComponentRegistry-6GHzavdM.js";
1
+ import { D as s, q as o, t as r, u as t, k as n, v as c, x as i, y as l, l as p, z as C, A, B as m, C as E, E as g, F as d, G as _, m as R, p as u, j as S, a as T, c as P, e as h, g as L, s as M, d as v, H as y, w as W } from "./index-BodxGKnW.js";
2
+ import { c as f } from "./canvasFacade-B0oy__da.js";
3
+ import { D as N, c as O, d as D, e as B, f as I, g as x, h as H, i as w, j as F, k as G, l as K, m as U, n as V, o as j, p as z, q as Y, r as q, s as X, t as J, v as Z, w as Q, x as $, y as ee, z as ae, A as se, B as oe, C as re, E as te, F as ne, G as ce, H as ie, u as le, a as pe, I as Ce, J as Ae } from "./useWorkbenchRuntime-C3RRfCDd.js";
4
+ import { D as Ee, L as ge, S as de, d as _e, e as Re, b as ue, f as Se, g as Te, h as Pe, i as he, j as Le, k as Me, l as ve, m as ye, p as We, n as ke, o as fe, q as be, r as Ne, s as Oe } from "./cardFactory-CoDF-zsR.js";
5
+ import { W as Be, a as Ie, b as xe, c as He, d as we } from "./workbenchCustomComponentRegistry-6GHzavdM.js";
6
6
  export {
7
- b as DEEP_AGENT_TOOL_DISPLAY_NAMES,
8
- D as DEEP_AGENT_VISIBLE_PROGRESS_TEXTS,
9
- me as DEFAULT_LOGICAL_CARD_PRESET_SIZES,
7
+ N as DEEP_AGENT_TOOL_DISPLAY_NAMES,
8
+ O as DEEP_AGENT_VISIBLE_PROGRESS_TEXTS,
9
+ Ee as DEFAULT_LOGICAL_CARD_PRESET_SIZES,
10
10
  s as DEFAULT_WORKBENCH_CARD_STYLE_CONFIG,
11
11
  ge as LOGICAL_CANVAS_COLUMNS,
12
12
  de as SNAP_UNIT,
13
13
  o as WORKBENCH_APP_CONTEXT_KEY,
14
14
  r as WORKBENCH_APP_PACKAGE_NAME,
15
- Oe as WORKBENCH_CUSTOM_CARD_CATALOG,
16
- Be as WORKBENCH_TEMPLATE_WEATHER_CAPABILITY_ID,
17
- Ie as WORKBENCH_TEMPLATE_WEATHER_COMPONENT_REF,
18
- xe as WORKBENCH_TEMPLATE_WEATHER_PREVIEW_URL,
19
- t as WorkbenchAppHost,
20
- n as WorkbenchApplication,
21
- c as WorkbenchShell,
22
- i as WorkbenchWorkspaceCore,
23
- N as applyDeepAgentPreambleMessageToTurn,
24
- O as applyDeepAgentProcessEventToTurn,
25
- B as approveMemory,
26
- Ee as canvasLogicalHeight,
27
- l as cardStyleConfigFromSnapshotVisualConfig,
28
- _e as clampLogicalRect,
15
+ t as WORKBENCH_APP_VERSION,
16
+ Be as WORKBENCH_CUSTOM_CARD_CATALOG,
17
+ Ie as WORKBENCH_TEMPLATE_WEATHER_CAPABILITY_ID,
18
+ xe as WORKBENCH_TEMPLATE_WEATHER_COMPONENT_REF,
19
+ He as WORKBENCH_TEMPLATE_WEATHER_PREVIEW_URL,
20
+ n as WorkbenchAppHost,
21
+ c as WorkbenchApplication,
22
+ i as WorkbenchShell,
23
+ l as WorkbenchWorkspaceCore,
24
+ D as applyDeepAgentPreambleMessageToTurn,
25
+ B as applyDeepAgentProcessEventToTurn,
26
+ I as approveMemory,
27
+ _e as canvasLogicalHeight,
28
+ p as cardStyleConfigFromSnapshotVisualConfig,
29
+ Re as clampLogicalRect,
29
30
  ue as compactLogicalBlocksAfterInsert,
30
- Te as compactLogicalRows,
31
- p as createBrowserStorageAdapter,
32
- W as createCanvasApiFacade,
33
- I as createConversationMemoryCandidate,
34
- x as createManualMemoryCandidate,
35
- C as createWorkbenchAppContext,
36
- A as createWorkbenchAppTestAdapters,
31
+ Se as compactLogicalRows,
32
+ C as createBrowserStorageAdapter,
33
+ f as createCanvasApiFacade,
34
+ x as createConversationMemoryCandidate,
35
+ H as createManualMemoryCandidate,
36
+ A as createWorkbenchAppContext,
37
+ m as createWorkbenchAppTestAdapters,
37
38
  we as customComponentRegistry,
38
39
  w as deepAgentToolDisplayName,
39
- Re as defaultLogicalSize,
40
- m as defaultWorkbenchAssetAdapter,
40
+ Te as defaultLogicalSize,
41
+ E as defaultWorkbenchAssetAdapter,
41
42
  g as defaultWorkbenchLoggerAdapter,
42
43
  d as defaultWorkbenchMessageAdapter,
43
- H as deleteMemoryPermanently,
44
- F as ensurePlatformUserSessionReady,
45
- G as extractConversationMemoryCandidates,
46
- Se as findAutoInsertLogicalRect,
44
+ F as deleteMemoryPermanently,
45
+ G as ensurePlatformUserSessionReady,
46
+ K as extractConversationMemoryCandidates,
47
+ Pe as findAutoInsertLogicalRect,
47
48
  he as findFreeLogicalRect,
48
- K as forgetMemory,
49
- E as formatAmount,
50
- U as getConversationContextSnapshot,
49
+ U as forgetMemory,
50
+ _ as formatAmount,
51
+ V as getConversationContextSnapshot,
51
52
  Le as getLogicalScale,
52
- V as getMemoryMarkdown,
53
- _ as isDefaultWorkbenchCardStyleConfig,
54
- j as isPossibleDeepAgentProgressMessagePrefix,
53
+ j as getMemoryMarkdown,
54
+ R as isDefaultWorkbenchCardStyleConfig,
55
+ z as isPossibleDeepAgentProgressMessagePrefix,
55
56
  Me as isSlotFree,
56
- z as listAgentMemoryItems,
57
- Y as listMemoryEvents,
58
- Pe as logicalRectToBlockLayout,
59
- ve as logicalToPixel,
60
- ye as pixelToLogical,
57
+ Y as listAgentMemoryItems,
58
+ q as listMemoryEvents,
59
+ ve as logicalRectToBlockLayout,
60
+ ye as logicalToPixel,
61
+ We as pixelToLogical,
61
62
  u as placeCardRecommendationDraftMessagesAfterTurnReplies,
62
- q as previewConversationMemoryCandidates,
63
- X as previewMemoryRecall,
64
- J as previewRecentConversationMemory,
65
- Z as readCanvasLocalSnapshot,
63
+ X as previewConversationMemoryCandidates,
64
+ J as previewMemoryRecall,
65
+ Z as previewRecentConversationMemory,
66
+ Q as readCanvasLocalSnapshot,
66
67
  ke as rectsOverlap,
67
- Q as refreshConversationContextSnapshot,
68
- $ as rejectMemory,
69
- ee as removeTemporaryPreambleProcessGroup,
70
- We as repackLogicalBlocksPreserveSize,
71
- fe as resolveAutoInsertLogicalRect,
72
- T as resolveBrowserWorkbenchEntryParams,
73
- R as resolveFdeSkillVisibleColumnTitle,
74
- be as resolveInitialLogicalRect,
75
- S as resolveWorkbenchCompletedStatusContent,
68
+ $ as refreshConversationContextSnapshot,
69
+ ee as rejectMemory,
70
+ ae as removeTemporaryPreambleProcessGroup,
71
+ fe as repackLogicalBlocksPreserveSize,
72
+ be as resolveAutoInsertLogicalRect,
73
+ S as resolveBrowserWorkbenchEntryParams,
74
+ T as resolveFdeSkillVisibleColumnTitle,
75
+ Ne as resolveInitialLogicalRect,
76
+ P as resolveWorkbenchCompletedStatusContent,
76
77
  h as resolveWorkbenchCompletedStatusPatch,
77
78
  L as returnItemPayloadSignature,
78
- ae as reviewConversationMemories,
79
- se as saveSimplifiedConversationMemory,
79
+ se as reviewConversationMemories,
80
+ oe as saveSimplifiedConversationMemory,
80
81
  M as shouldAutoRefreshWorkbenchDataBinding,
81
- De as snapLogical,
82
- oe as splitDeepAgentProgressMessage,
83
- P as syncWorkbenchChatStructuredMessageFields,
84
- re as toggleConversationProcessCollapsed,
85
- te as updateMemoryContent,
86
- ne as updateMemoryMarkdown,
87
- ce as updateMemoryPolicy,
88
- v as useWorkbenchAppContext,
89
- ie as useWorkbenchRuntime,
90
- le as useWorkbenchRuntimeStore,
91
- pe as workbenchCanvasBus,
92
- y as workbenchDataBindingRefreshApi,
93
- Ce as writeCanvasLocalSnapshot
82
+ Oe as snapLogical,
83
+ re as splitDeepAgentProgressMessage,
84
+ v as syncWorkbenchChatStructuredMessageFields,
85
+ te as toggleConversationProcessCollapsed,
86
+ ne as updateMemoryContent,
87
+ ce as updateMemoryMarkdown,
88
+ ie as updateMemoryPolicy,
89
+ y as useWorkbenchAppContext,
90
+ le as useWorkbenchRuntime,
91
+ pe as useWorkbenchRuntimeStore,
92
+ Ce as workbenchCanvasBus,
93
+ W as workbenchDataBindingRefreshApi,
94
+ Ae as writeCanvasLocalSnapshot
94
95
  };
@@ -1,24 +1,31 @@
1
- import { toRefs as te, shallowReadonly as W, inject as oe, defineComponent as E, provide as ae, openBlock as b, createElementBlock as k, renderSlot as g, createElementVNode as A, normalizeClass as q, normalizeStyle as R, withModifiers as se, createCommentVNode as P, createVNode as z, Transition as ie, withCtx as w, computed as de, createBlock as K, defineAsyncComponent as ce, unref as le } from "vue";
1
+ import { toRefs as oe, shallowReadonly as W, inject as ae, defineComponent as T, provide as se, openBlock as b, createElementBlock as k, renderSlot as y, createElementVNode as A, normalizeClass as q, normalizeStyle as R, withModifiers as ie, createCommentVNode as P, createVNode as K, Transition as de, withCtx as w, computed as ce, createBlock as G, defineAsyncComponent as le, unref as ue } from "vue";
2
2
  import "./canvasFacade-B0oy__da.js";
3
- import { b as ue } from "./useWorkbenchRuntime-C3RRfCDd.js";
3
+ import { b as fe } from "./useWorkbenchRuntime-C3RRfCDd.js";
4
4
  import "./cardFactory-CoDF-zsR.js";
5
5
  import "./workbenchCustomComponentRegistry-6GHzavdM.js";
6
- const G = Symbol("workbench-app-context");
7
- function fe(e) {
8
- const { adapters: r, config: n, extensions: t } = te(e);
6
+ const me = "0.2.10", L = "workbench-app-version";
7
+ function he() {
8
+ if (typeof document > "u" || document.querySelector(`meta[name="${L}"]`)) return !1;
9
+ const e = document.createElement("meta");
10
+ return e.name = L, e.content = me, document.head.appendChild(e), !0;
11
+ }
12
+ he();
13
+ const Y = Symbol("workbench-app-context");
14
+ function pe(e) {
15
+ const { adapters: r, config: n, extensions: t } = oe(e);
9
16
  return {
10
17
  adapters: W(r),
11
18
  config: W(n),
12
19
  extensions: W(t)
13
20
  };
14
21
  }
15
- function rr() {
16
- const e = oe(G);
22
+ function or() {
23
+ const e = ae(Y);
17
24
  if (!e)
18
25
  throw new Error("useWorkbenchAppContext must be used inside WorkbenchWorkspaceCore");
19
26
  return e;
20
27
  }
21
- const me = { class: "fses-workbench-app" }, he = /* @__PURE__ */ E({
28
+ const ye = { class: "fses-workbench-app" }, ge = /* @__PURE__ */ T({
22
29
  __name: "WorkbenchWorkspaceCore",
23
30
  props: {
24
31
  adapters: {},
@@ -26,11 +33,11 @@ const me = { class: "fses-workbench-app" }, he = /* @__PURE__ */ E({
26
33
  extensions: {}
27
34
  },
28
35
  setup(e) {
29
- return ae(G, fe(e)), (n, t) => (b(), k("div", me, [
30
- g(n.$slots, "default")
36
+ return se(Y, pe(e)), (n, t) => (b(), k("div", ye, [
37
+ y(n.$slots, "default")
31
38
  ]));
32
39
  }
33
- }), pe = { class: "workbench-shell" }, ge = ["aria-hidden", "inert"], ye = { class: "workbench-studio-panel__body" }, L = 48, be = /* @__PURE__ */ E({
40
+ }), be = { class: "workbench-shell" }, we = ["aria-hidden", "inert"], Ie = { class: "workbench-studio-panel__body" }, U = 48, ke = /* @__PURE__ */ T({
34
41
  __name: "WorkbenchShell",
35
42
  props: {
36
43
  studioPanelWidth: {},
@@ -45,17 +52,17 @@ const me = { class: "fses-workbench-app" }, he = /* @__PURE__ */ E({
45
52
  emits: ["startDrag"],
46
53
  setup(e, { emit: r }) {
47
54
  const n = r;
48
- return (t, o) => (b(), k("div", pe, [
55
+ return (t, o) => (b(), k("div", be, [
49
56
  A("div", {
50
57
  class: q(["workbench-shell__body", { "workbench-shell__body--dragging": e.dragging }])
51
58
  }, [
52
59
  A("div", {
53
60
  class: "workbench-shell__canvas-pane",
54
61
  style: R({
55
- flexBasis: e.drawerOpen ? `calc(100% - ${e.drawerWidth || 392}px)` : e.canvasFocusMode || !e.studioPanelEnabled ? "100%" : e.studioPanelCollapsed ? `calc(100% - ${L}px)` : `calc(100% - ${e.studioPanelWidth}px - 8px)`
62
+ flexBasis: e.drawerOpen ? `calc(100% - ${e.drawerWidth || 392}px)` : e.canvasFocusMode || !e.studioPanelEnabled ? "100%" : e.studioPanelCollapsed ? `calc(100% - ${U}px)` : `calc(100% - ${e.studioPanelWidth}px - 8px)`
56
63
  })
57
64
  }, [
58
- g(t.$slots, "left", {}, void 0, !0)
65
+ y(t.$slots, "left", {}, void 0, !0)
59
66
  ], 4),
60
67
  e.studioPanelEnabled && !e.studioPanelCollapsed && !e.canvasFocusMode && !e.drawerOpen ? (b(), k("div", {
61
68
  key: 0,
@@ -64,7 +71,7 @@ const me = { class: "fses-workbench-app" }, he = /* @__PURE__ */ E({
64
71
  class: "workbench-splitter",
65
72
  role: "separator",
66
73
  onPointerdown: o[0] || (o[0] = (d) => n("startDrag", d)),
67
- onDragstart: o[1] || (o[1] = se(() => {
74
+ onDragstart: o[1] || (o[1] = ie(() => {
68
75
  }, ["prevent"]))
69
76
  }, [...o[2] || (o[2] = [
70
77
  A("div", { class: "workbench-splitter__track" }, null, -1)
@@ -76,19 +83,19 @@ const me = { class: "fses-workbench-app" }, he = /* @__PURE__ */ E({
76
83
  "aria-hidden": e.studioPanelCollapsed ? "true" : void 0,
77
84
  inert: e.studioPanelCollapsed ? !0 : void 0
78
85
  }, [
79
- A("div", ye, [
80
- g(t.$slots, "right", {}, void 0, !0)
86
+ A("div", Ie, [
87
+ y(t.$slots, "right", {}, void 0, !0)
81
88
  ])
82
- ], 14, ge)) : P("", !0),
83
- z(ie, { name: "workbench-assistant-rail-shell" }, {
89
+ ], 14, we)) : P("", !0),
90
+ K(de, { name: "workbench-assistant-rail-shell" }, {
84
91
  default: w(() => [
85
92
  e.studioPanelEnabled && e.studioPanelCollapsed && !e.canvasFocusMode && !e.drawerOpen ? (b(), k("div", {
86
93
  key: 0,
87
94
  class: "workbench-assistant-rail-shell",
88
- style: R({ flexBasis: `${L}px` }),
95
+ style: R({ flexBasis: `${U}px` }),
89
96
  "aria-label": "收起状态问数助手入口"
90
97
  }, [
91
- g(t.$slots, "collapsed-right", {}, void 0, !0)
98
+ y(t.$slots, "collapsed-right", {}, void 0, !0)
92
99
  ], 4)) : P("", !0)
93
100
  ]),
94
101
  _: 3
@@ -98,17 +105,17 @@ const me = { class: "fses-workbench-app" }, he = /* @__PURE__ */ E({
98
105
  class: "workbench-shell__drawer",
99
106
  style: R({ flexBasis: `${e.drawerWidth || 392}px` })
100
107
  }, [
101
- g(t.$slots, "drawer", {}, void 0, !0)
108
+ y(t.$slots, "drawer", {}, void 0, !0)
102
109
  ], 4)) : P("", !0)
103
110
  ], 2)
104
111
  ]));
105
112
  }
106
- }), we = (e, r) => {
113
+ }), Se = (e, r) => {
107
114
  const n = e.__vccOpts || e;
108
115
  for (const [t, o] of r)
109
116
  n[t] = o;
110
117
  return n;
111
- }, Ie = /* @__PURE__ */ we(be, [["__scopeId", "data-v-352c4f8f"]]), nr = /* @__PURE__ */ E({
118
+ }, Ce = /* @__PURE__ */ Se(ke, [["__scopeId", "data-v-352c4f8f"]]), ar = /* @__PURE__ */ T({
112
119
  __name: "WorkbenchAppHost",
113
120
  props: {
114
121
  adapters: {},
@@ -117,7 +124,7 @@ const me = { class: "fses-workbench-app" }, he = /* @__PURE__ */ E({
117
124
  runtime: {}
118
125
  },
119
126
  setup(e) {
120
- const r = e, n = de(() => ({
127
+ const r = e, n = ce(() => ({
121
128
  canvasFocusMode: r.runtime.canvasFocusMode ?? !1,
122
129
  drawerOpen: r.runtime.drawerOpen ?? !1,
123
130
  drawerWidth: r.runtime.drawerWidth,
@@ -127,13 +134,13 @@ const me = { class: "fses-workbench-app" }, he = /* @__PURE__ */ E({
127
134
  studioPanelEnabled: r.runtime.studioPanelEnabled ?? !0,
128
135
  studioPanelWidth: r.runtime.studioPanelWidth ?? 420
129
136
  }));
130
- return (t, o) => (b(), K(he, {
137
+ return (t, o) => (b(), G(ge, {
131
138
  adapters: r.adapters,
132
139
  config: r.config,
133
140
  extensions: r.extensions
134
141
  }, {
135
142
  default: w(() => [
136
- z(Ie, {
143
+ K(Ce, {
137
144
  "canvas-focus-mode": n.value.canvasFocusMode,
138
145
  "drawer-open": n.value.drawerOpen,
139
146
  "drawer-width": n.value.drawerWidth,
@@ -143,21 +150,21 @@ const me = { class: "fses-workbench-app" }, he = /* @__PURE__ */ E({
143
150
  "studio-panel-enabled": n.value.studioPanelEnabled,
144
151
  "studio-panel-width": n.value.studioPanelWidth,
145
152
  onStartDrag: o[0] || (o[0] = (d) => {
146
- var h, y;
147
- return (y = (h = r.runtime).startStudioPanelDrag) == null ? void 0 : y.call(h, d);
153
+ var h, g;
154
+ return (g = (h = r.runtime).startStudioPanelDrag) == null ? void 0 : g.call(h, d);
148
155
  })
149
156
  }, {
150
157
  left: w(() => [
151
- g(t.$slots, "left")
158
+ y(t.$slots, "left")
152
159
  ]),
153
160
  right: w(() => [
154
- g(t.$slots, "right")
161
+ y(t.$slots, "right")
155
162
  ]),
156
163
  "collapsed-right": w(() => [
157
- g(t.$slots, "collapsed-right")
164
+ y(t.$slots, "collapsed-right")
158
165
  ]),
159
166
  drawer: w(() => [
160
- g(t.$slots, "drawer")
167
+ y(t.$slots, "drawer")
161
168
  ]),
162
169
  _: 3
163
170
  }, 8, ["canvas-focus-mode", "drawer-open", "drawer-width", "dragging", "image-workbench", "studio-panel-collapsed", "studio-panel-enabled", "studio-panel-width"])
@@ -166,27 +173,27 @@ const me = { class: "fses-workbench-app" }, he = /* @__PURE__ */ E({
166
173
  }, 8, ["adapters", "config", "extensions"]));
167
174
  }
168
175
  });
169
- let v = {}, Y = {}, J = {};
170
- function ke(e) {
171
- v = e;
172
- }
173
- function Se(e, r, n) {
174
- Y = e, J = r, ke(n);
176
+ let N = {}, J = {}, X = {};
177
+ function Ae(e) {
178
+ N = e;
175
179
  }
176
- function tr() {
177
- return Y;
180
+ function Re(e, r, n) {
181
+ J = e, X = r, Ae(n);
178
182
  }
179
- function or() {
183
+ function sr() {
180
184
  return J;
181
185
  }
182
- function ar() {
183
- return v;
186
+ function ir() {
187
+ return X;
184
188
  }
185
- function sr() {
189
+ function dr() {
190
+ return N;
191
+ }
192
+ function cr() {
186
193
  var e;
187
- return (e = v.fde) == null ? void 0 : e.generatedTemplateShell;
194
+ return (e = N.fde) == null ? void 0 : e.generatedTemplateShell;
188
195
  }
189
- const ir = /* @__PURE__ */ E({
196
+ const lr = /* @__PURE__ */ T({
190
197
  __name: "WorkbenchApplication",
191
198
  props: {
192
199
  adapters: {},
@@ -196,39 +203,39 @@ const ir = /* @__PURE__ */ E({
196
203
  },
197
204
  setup(e) {
198
205
  const r = e;
199
- Se(r.adapters, r.config, r.extensions);
200
- const n = ce(() => import("./Workspace-CTsmuV7g.js"));
201
- return (t, o) => (b(), K(le(n), {
206
+ Re(r.adapters, r.config, r.extensions);
207
+ const n = le(() => import("./Workspace-C1a42cX9.js"));
208
+ return (t, o) => (b(), G(ue(n), {
202
209
  "embed-in-portal": r.embedInPortal
203
210
  }, {
204
211
  "before-workbench": w(() => [
205
- g(t.$slots, "before-workbench")
212
+ y(t.$slots, "before-workbench")
206
213
  ]),
207
214
  _: 3
208
215
  }, 8, ["embed-in-portal"]));
209
216
  }
210
217
  });
211
- function dr(e) {
218
+ function ur(e) {
212
219
  return {
213
220
  getItem: (r) => e.getItem(r),
214
221
  removeItem: (r) => e.removeItem(r),
215
222
  setItem: (r, n) => e.setItem(r, n)
216
223
  };
217
224
  }
218
- const Ce = {
225
+ const Pe = {
219
226
  resolveAssetUrl: (e) => e
220
227
  }, S = {
221
228
  debug: (e, r) => console.debug(e, r),
222
229
  error: (e, r) => console.error(e, r),
223
230
  info: (e, r) => console.info(e, r),
224
231
  warn: (e, r) => console.warn(e, r)
225
- }, Ae = {
232
+ }, Ee = {
226
233
  error: (e) => S.error(e),
227
234
  info: (e) => S.info(e),
228
235
  success: (e) => S.info(e),
229
236
  warning: (e) => S.warn(e)
230
237
  };
231
- function cr(e = {}) {
238
+ function fr(e = {}) {
232
239
  const r = /* @__PURE__ */ new Map();
233
240
  return {
234
241
  agentTransportAdapter: {
@@ -236,12 +243,12 @@ function cr(e = {}) {
236
243
  },
237
244
  requestJson: async () => ({})
238
245
  },
239
- assetAdapter: Ce,
246
+ assetAdapter: Pe,
240
247
  identityAdapter: {
241
248
  readIdentity: () => ({ appId: "test-app", roleId: "default", tenantId: "test-tenant", userId: "test-user" })
242
249
  },
243
250
  loggerAdapter: S,
244
- messageAdapter: Ae,
251
+ messageAdapter: Ee,
245
252
  platformRequestAdapter: {
246
253
  ensureSessionReady: async () => !0,
247
254
  requestJson: async () => ({})
@@ -268,7 +275,7 @@ function cr(e = {}) {
268
275
  ...e
269
276
  };
270
277
  }
271
- const Re = [
278
+ const Te = [
272
279
  "attachments",
273
280
  "cards",
274
281
  "cardRecommendationDraft",
@@ -290,27 +297,27 @@ const Re = [
290
297
  "thinkingProcessMessages",
291
298
  "workbenchTurnId"
292
299
  ];
293
- function lr(e, r) {
294
- for (const n of Re)
300
+ function mr(e, r) {
301
+ for (const n of Te)
295
302
  e[n] = r[n];
296
303
  }
297
- function Pe(e) {
304
+ function We(e) {
298
305
  const r = e.cardRecommendationDraft;
299
306
  if (!r || typeof r != "object") return "";
300
307
  const n = r.sourceTurnId;
301
308
  return typeof n == "string" && n.trim() ? n.trim() : "";
302
309
  }
303
- function Te(e) {
310
+ function _e(e) {
304
311
  const r = e.cardRecommendationDraft;
305
312
  if (!r || typeof r != "object") return "";
306
313
  const n = r.placementTurnId;
307
314
  return typeof n == "string" && n.trim() ? n.trim() : "";
308
315
  }
309
- function X(e) {
316
+ function Z(e) {
310
317
  const r = e.workbenchTurnId;
311
318
  return typeof r == "string" && r.trim() ? r.trim() : "";
312
319
  }
313
- function Z(e) {
320
+ function ee(e) {
314
321
  if (typeof e != "string" || !e.startsWith("workbench-turn-")) return "";
315
322
  const r = ["-reply", "-conclusion-stream", "-item-", "-process-", "-task-", "-card-mutation-confirmation"];
316
323
  for (const n of r) {
@@ -322,26 +329,26 @@ function Z(e) {
322
329
  function _(e, r) {
323
330
  var t;
324
331
  if (e.role !== "assistant" || !((t = e.content) != null && t.trim())) return !1;
325
- const n = X(e);
326
- return n ? n === r : Z(e.id) !== r ? !1 : typeof e.id == "string" && (e.id.endsWith("-reply") || e.id.endsWith("-conclusion-stream"));
332
+ const n = Z(e);
333
+ return n ? n === r : ee(e.id) !== r ? !1 : typeof e.id == "string" && (e.id.endsWith("-reply") || e.id.endsWith("-conclusion-stream"));
327
334
  }
328
- function U(e, r) {
335
+ function V(e, r) {
329
336
  return !!(r && e.some((n) => _(n, r)));
330
337
  }
331
- function Ee(e, r) {
332
- const n = Pe(r), t = Te(r);
333
- return U(e, n) ? n : U(e, t) ? t : t || X(r) || n || Z(r.id);
338
+ function Me(e, r) {
339
+ const n = We(r), t = _e(r);
340
+ return V(e, n) ? n : V(e, t) ? t : t || Z(r) || n || ee(r.id);
334
341
  }
335
- function ur(e) {
342
+ function hr(e) {
336
343
  for (const r of e.appendedMessages.values()) {
337
344
  if (!r.cardRecommendationDraft) continue;
338
- const n = Ee(e.messages, r);
345
+ const n = Me(e.messages, r);
339
346
  if (!n) continue;
340
347
  const t = e.messages.indexOf(r);
341
348
  if (t < 0) continue;
342
- const o = e.messages.findIndex((y) => _(y, n));
349
+ const o = e.messages.findIndex((g) => _(g, n));
343
350
  if (o < 0 || t === o + 1) continue;
344
- const [d] = e.messages.splice(t, 1), h = e.messages.findIndex((y) => _(y, n));
351
+ const [d] = e.messages.splice(t, 1), h = e.messages.findIndex((g) => _(g, n));
345
352
  if (h < 0) {
346
353
  e.messages.splice(t, 0, d);
347
354
  continue;
@@ -349,16 +356,16 @@ function ur(e) {
349
356
  e.messages.splice(h + 1, 0, d);
350
357
  }
351
358
  }
352
- function We(e) {
359
+ function Be(e) {
353
360
  return !e.thinkingProcess;
354
361
  }
355
- function _e(e) {
362
+ function De(e) {
356
363
  const r = e.content.trim();
357
- return We(e) ? `${r.replace(/完成(?:,用时 .*)?$/u, "").trim()}完成` : r;
364
+ return Be(e) ? `${r.replace(/完成(?:,用时 .*)?$/u, "").trim()}完成` : r;
358
365
  }
359
- function fr(e, r) {
366
+ function pr(e, r) {
360
367
  return {
361
- content: _e(e),
368
+ content: De(e),
362
369
  loading: !1,
363
370
  ...typeof e.startTime == "number" ? { startTime: e.startTime } : {},
364
371
  ...typeof e.endTime == "number" ? { endTime: e.endTime } : typeof r == "number" ? { endTime: r } : {}
@@ -373,7 +380,7 @@ function a(e) {
373
380
  function Q(e) {
374
381
  return Array.isArray(e) ? String(e.length) : "";
375
382
  }
376
- function ee(e) {
383
+ function re(e) {
377
384
  const r = p(e);
378
385
  return [
379
386
  a(r.bindingId),
@@ -387,7 +394,7 @@ function ee(e) {
387
394
  a(r.contractHash)
388
395
  ].join("|");
389
396
  }
390
- function re(e) {
397
+ function ne(e) {
391
398
  const r = p(e), n = p(r.data);
392
399
  return [
393
400
  a(r.resultId),
@@ -395,10 +402,10 @@ function re(e) {
395
402
  a(r.rowCount),
396
403
  Q(r.rows || n.rows),
397
404
  Q(r.columns || n.columns),
398
- ee(r.dataBinding || n.dataBinding)
405
+ re(r.dataBinding || n.dataBinding)
399
406
  ].join("|");
400
407
  }
401
- function Me(e) {
408
+ function Ne(e) {
402
409
  const r = p(e), n = p(r.blockPlan), t = p(n.data), o = p(n.meta), d = p(o.queryResult);
403
410
  return [
404
411
  a(r.recommendationId),
@@ -409,14 +416,14 @@ function Me(e) {
409
416
  a(r.dataShape),
410
417
  a(n.id),
411
418
  a(n.title),
412
- ee(r.dataBinding || t.dataBinding),
413
- re(r.queryResult || d)
419
+ re(r.dataBinding || t.dataBinding),
420
+ ne(r.queryResult || d)
414
421
  ].join(":");
415
422
  }
416
- function mr(e) {
423
+ function yr(e) {
417
424
  const r = p(e), n = typeof r.type == "string" ? r.type : "";
418
425
  if (n === "card_recommendations_ready") {
419
- const t = Array.isArray(r.recommendations) ? r.recommendations : [], o = ue({
426
+ const t = Array.isArray(r.recommendations) ? r.recommendations : [], o = fe({
420
427
  payload: r,
421
428
  conversationId: a(r.conversationId),
422
429
  groupType: n
@@ -426,8 +433,8 @@ function mr(e) {
426
433
  o.renderKey,
427
434
  a(r.sourceTurnId),
428
435
  a(r.placementTurnId),
429
- re(r.queryResult),
430
- t.map(Me).join(",")
436
+ ne(r.queryResult),
437
+ t.map(Ne).join(",")
431
438
  ].join(":");
432
439
  }
433
440
  if (n === "query_result_table_ready") {
@@ -436,21 +443,21 @@ function mr(e) {
436
443
  }
437
444
  return n;
438
445
  }
439
- const Be = /* @__PURE__ */ new Set(["pending", "running"]), De = "/data-binding-candidate/query", ve = "/workbench/v2/documents/", Ne = "/data-bindings/";
440
- function $e(e) {
446
+ const ve = /* @__PURE__ */ new Set(["pending", "running"]), Oe = "/data-binding-candidate/query", $e = "/workbench/v2/documents/", He = "/data-bindings/";
447
+ function Fe(e) {
441
448
  return typeof (e == null ? void 0 : e.refreshApi) == "string" ? e.refreshApi.trim() : "";
442
449
  }
443
- function Oe(e) {
444
- return e.includes(De);
450
+ function xe(e) {
451
+ return e.includes(Oe);
445
452
  }
446
- function ne(e) {
453
+ function te(e) {
447
454
  let r = e;
448
455
  try {
449
456
  r = new URL(e, "http://localhost").pathname;
450
457
  } catch {
451
458
  r = e;
452
459
  }
453
- return r.includes(ve) && r.includes(Ne);
460
+ return r.includes($e) && r.includes(He);
454
461
  }
455
462
  function M(e) {
456
463
  return !!(e && typeof e == "object" && !Array.isArray(e));
@@ -463,39 +470,39 @@ function m(e) {
463
470
  function C(e) {
464
471
  return M(e) ? m(e) || m(e.recognition) ? !0 : M(e.v2) ? C(e.v2) : !1 : !1;
465
472
  }
466
- function Fe(e, r, n) {
467
- return (r == null ? void 0 : r.suppressImageComposeAutoRefresh) !== !0 || !ne(n) ? !1 : m(e == null ? void 0 : e.params) || m(e) || m(r) || m(r == null ? void 0 : r.source) || m(r == null ? void 0 : r.data) || C(r == null ? void 0 : r.recognition) || C(r == null ? void 0 : r.meta);
473
+ function qe(e, r, n) {
474
+ return (r == null ? void 0 : r.suppressImageComposeAutoRefresh) !== !0 || !te(n) ? !1 : m(e == null ? void 0 : e.params) || m(e) || m(r) || m(r == null ? void 0 : r.source) || m(r == null ? void 0 : r.data) || C(r == null ? void 0 : r.recognition) || C(r == null ? void 0 : r.meta);
468
475
  }
469
- function He(e, r) {
476
+ function Le(e, r) {
470
477
  return m(e == null ? void 0 : e.params) || m(e) || m(r) || m(r == null ? void 0 : r.source) || m(r == null ? void 0 : r.data) || C(r == null ? void 0 : r.recognition) || C(r == null ? void 0 : r.meta);
471
478
  }
472
- function hr(e, r) {
479
+ function gr(e, r) {
473
480
  if (!e) return !1;
474
- const n = $e(e);
475
- if (!n || Oe(n) || Fe(e, r, n)) return !1;
481
+ const n = Fe(e);
482
+ if (!n || xe(n) || qe(e, r, n)) return !1;
476
483
  const t = typeof (e == null ? void 0 : e.status) == "string" ? e.status.trim().toLowerCase() : "";
477
- return !(Be.has(t) || ne(n) && He(e, r));
484
+ return !(ve.has(t) || te(n) && Le(e, r));
478
485
  }
479
- function pr(e) {
486
+ function br(e) {
480
487
  var t;
481
- const r = (t = e.title) == null ? void 0 : t.trim(), n = r ? xe(r) : void 0;
488
+ const r = (t = e.title) == null ? void 0 : t.trim(), n = r ? Ue(r) : void 0;
482
489
  return n || `字段 ${e.index + 1}`;
483
490
  }
484
- function xe(e) {
491
+ function Ue(e) {
485
492
  const r = e.replace(/[A-Za-z0-9_./\\()[\]{}::,,;;#%+\-=]+/gu, "").replace(/\s+/gu, "").trim();
486
493
  return r && /[\u3400-\u9fff]/u.test(r) ? r : void 0;
487
494
  }
488
495
  function B(e, r = {}, n = "-") {
489
496
  return Number.isFinite(e) ? new Intl.NumberFormat("zh-CN", r).format(e) : n;
490
497
  }
491
- function gr(e, r = "") {
498
+ function wr(e, r = "") {
492
499
  return r === "percent" ? `${(e * 100).toFixed(1)}%` : r === "currency" ? Math.abs(e) >= 1e8 ? `¥${(e / 1e8).toFixed(2)}亿` : Math.abs(e) >= 1e4 ? `¥${(e / 1e4).toFixed(1)}万` : `¥${B(e)}` : B(e);
493
500
  }
494
- function yr(e, r = {}) {
501
+ function Ir(e, r = {}) {
495
502
  return e === 0 ? "-" : B(e, r);
496
503
  }
497
504
  function j(e = {}) {
498
- var n, t, o, d, h, y, N, $, O, F, H, x;
505
+ var n, t, o, d, h, g, v, O, $, H, F, x;
499
506
  const r = {
500
507
  workspaceId: l([
501
508
  s((n = e.routeQuery) == null ? void 0 : n.workspaceId),
@@ -509,8 +516,8 @@ function j(e = {}) {
509
516
  u(e.locationHash, "userId"),
510
517
  f(e.locationPathname, "userId")
511
518
  ]),
512
- tenantId: V(e, ["tenantId", "tenant_id", "tenant-id"]),
513
- appId: V(e, ["appId", "app_id", "app-id"]),
519
+ tenantId: z(e, ["tenantId", "tenant_id", "tenant-id"]),
520
+ appId: z(e, ["appId", "app_id", "app-id"]),
514
521
  roleId: "",
515
522
  mode: l([
516
523
  s((o = e.routeQuery) == null ? void 0 : o.mode),
@@ -531,37 +538,37 @@ function j(e = {}) {
531
538
  f(e.locationPathname, "workbenchEditable")
532
539
  ]),
533
540
  conversationId: l([
534
- s((y = e.routeQuery) == null ? void 0 : y.conversationId),
541
+ s((g = e.routeQuery) == null ? void 0 : g.conversationId),
535
542
  c(e.locationSearch, "conversationId"),
536
543
  u(e.locationHash, "conversationId"),
537
544
  f(e.locationPathname, "conversationId")
538
545
  ]),
539
546
  resourceId: l([
540
- s((N = e.routeQuery) == null ? void 0 : N.resourceId),
547
+ s((v = e.routeQuery) == null ? void 0 : v.resourceId),
541
548
  c(e.locationSearch, "resourceId"),
542
549
  u(e.locationHash, "resourceId"),
543
550
  f(e.locationPathname, "resourceId")
544
551
  ]),
545
552
  fdeResourceId: l([
546
- s(($ = e.routeQuery) == null ? void 0 : $.fdeResourceId),
553
+ s((O = e.routeQuery) == null ? void 0 : O.fdeResourceId),
547
554
  c(e.locationSearch, "fdeResourceId"),
548
555
  u(e.locationHash, "fdeResourceId"),
549
556
  f(e.locationPathname, "fdeResourceId")
550
557
  ]),
551
558
  path: l([
552
- s((O = e.routeQuery) == null ? void 0 : O.path),
559
+ s(($ = e.routeQuery) == null ? void 0 : $.path),
553
560
  c(e.locationSearch, "path"),
554
561
  u(e.locationHash, "path"),
555
562
  f(e.locationPathname, "path")
556
563
  ]),
557
564
  fdePath: l([
558
- s((F = e.routeQuery) == null ? void 0 : F.fdePath),
565
+ s((H = e.routeQuery) == null ? void 0 : H.fdePath),
559
566
  c(e.locationSearch, "fdePath"),
560
567
  u(e.locationHash, "fdePath"),
561
568
  f(e.locationPathname, "fdePath")
562
569
  ]),
563
570
  name: l([
564
- s((H = e.routeQuery) == null ? void 0 : H.name),
571
+ s((F = e.routeQuery) == null ? void 0 : F.name),
565
572
  c(e.locationSearch, "name"),
566
573
  u(e.locationHash, "name"),
567
574
  f(e.locationPathname, "name")
@@ -573,9 +580,9 @@ function j(e = {}) {
573
580
  f(e.locationPathname, "fdeName")
574
581
  ])
575
582
  };
576
- return Ue(r);
583
+ return je(r);
577
584
  }
578
- function br(e) {
585
+ function kr(e) {
579
586
  if (typeof window > "u")
580
587
  return j({ routeQuery: e });
581
588
  const r = j({
@@ -586,7 +593,7 @@ function br(e) {
586
593
  });
587
594
  return {
588
595
  ...r,
589
- userId: r.userId || qe(window)
596
+ userId: r.userId || Ve(window)
590
597
  };
591
598
  }
592
599
  function s(e) {
@@ -608,7 +615,7 @@ function f(e, r) {
608
615
  const n = e.split("/").filter(Boolean).find((t) => t.includes("="));
609
616
  return n ? c(n, r) : "";
610
617
  }
611
- function V(e, r) {
618
+ function z(e, r) {
612
619
  return l(r.flatMap((n) => {
613
620
  var t;
614
621
  return [
@@ -622,19 +629,19 @@ function V(e, r) {
622
629
  function l(e) {
623
630
  return e.find((r) => r.trim()) || "";
624
631
  }
625
- function qe(e) {
632
+ function Ve(e) {
626
633
  const r = [
627
634
  e.__BT_WORKBENCH_USER__,
628
635
  e.__BT_RUNTIME_IDENTITY__,
629
636
  e.__BT_RUNTIME_CONTEXT__
630
637
  ];
631
638
  for (const n of r) {
632
- const t = Le(n);
639
+ const t = Qe(n);
633
640
  if (t) return t;
634
641
  }
635
642
  return "";
636
643
  }
637
- function Le(e) {
644
+ function Qe(e) {
638
645
  if (!e || typeof e != "object" || Array.isArray(e)) return "";
639
646
  const r = e;
640
647
  return l([
@@ -645,8 +652,8 @@ function Le(e) {
645
652
  s(r["ego-userinfo"])
646
653
  ]);
647
654
  }
648
- function Ue(e) {
649
- if (!Qe(e)) return e;
655
+ function je(e) {
656
+ if (!ze(e)) return e;
650
657
  const r = e.fdeResourceId || e.resourceId;
651
658
  return {
652
659
  ...e,
@@ -656,7 +663,7 @@ function Ue(e) {
656
663
  fdeResourceId: r
657
664
  };
658
665
  }
659
- function Qe(e) {
666
+ function ze(e) {
660
667
  const r = e.mode.trim().toLowerCase(), n = e.fdeMode.trim().toLowerCase();
661
668
  return r === "fde" || n === "true" || n === "1" || n === "yes";
662
669
  }
@@ -668,7 +675,7 @@ const i = {
668
675
  textureColor: "#ffffff",
669
676
  motion: "none",
670
677
  density: "standard"
671
- }, wr = [
678
+ }, Sr = [
672
679
  {
673
680
  key: "radius",
674
681
  label: "圆角",
@@ -725,7 +732,7 @@ const i = {
725
732
  { value: "compact", label: "高密度紧凑版" }
726
733
  ]
727
734
  }
728
- ], je = {
735
+ ], Ke = {
729
736
  radius: ["square", "small", "standard", "large"],
730
737
  border: ["none", "light", "strong"],
731
738
  shadow: ["none", "soft", "strong"],
@@ -738,48 +745,48 @@ function D(e) {
738
745
  }
739
746
  function I(e, r) {
740
747
  const n = i[e];
741
- return typeof r == "string" && je[e].includes(r) ? r : n;
748
+ return typeof r == "string" && Ke[e].includes(r) ? r : n;
742
749
  }
743
- function Ve(e) {
750
+ function Ge(e) {
744
751
  return typeof e == "string" && /^#[0-9a-fA-F]{6}$/.test(e) ? e.toLowerCase() : i.textureColor;
745
752
  }
746
- function T(e) {
753
+ function E(e) {
747
754
  const r = D(e);
748
755
  return {
749
756
  radius: I("radius", r.radius),
750
757
  border: I("border", r.border),
751
758
  shadow: I("shadow", r.shadow),
752
759
  texture: I("texture", r.texture),
753
- textureColor: Ve(r.textureColor),
760
+ textureColor: Ge(r.textureColor),
754
761
  motion: I("motion", r.motion),
755
762
  density: I("density", r.density)
756
763
  };
757
764
  }
758
- function Ir(e) {
759
- const r = T(e);
765
+ function Cr(e) {
766
+ const r = E(e);
760
767
  return r.radius === i.radius && r.border === i.border && r.shadow === i.shadow && r.texture === i.texture && r.textureColor === i.textureColor && r.motion === i.motion && r.density === i.density;
761
768
  }
762
- const ze = {
769
+ const Ye = {
763
770
  square: 0,
764
771
  small: 4,
765
772
  standard: 8,
766
773
  large: 16
767
- }, Ke = {
774
+ }, Je = {
768
775
  none: "none",
769
776
  soft: "soft",
770
777
  standard: "soft",
771
778
  strong: "strong"
772
- }, Ge = {
779
+ }, Xe = {
773
780
  thumbnail: "compact",
774
781
  compact: "compact",
775
782
  standard: "standard",
776
783
  expanded: "loose"
777
784
  };
778
- function kr(e) {
779
- const r = T(e);
785
+ function Ar(e) {
786
+ const r = E(e);
780
787
  return {
781
788
  cardStyle: {
782
- cardRadius: ze[r.radius],
789
+ cardRadius: Ye[r.radius],
783
790
  cardShadow: r.shadow === "strong" ? "strong" : r.shadow,
784
791
  density: r.density === "loose" ? "expanded" : r.density,
785
792
  ...r.texture === "color" ? { backgroundColor: r.textureColor } : {},
@@ -787,12 +794,12 @@ function kr(e) {
787
794
  }
788
795
  };
789
796
  }
790
- function Sr(e) {
797
+ function Rr(e) {
791
798
  const r = D(e == null ? void 0 : e.cardStyle), n = D(r.shell);
792
799
  if (Object.keys(n).length > 0)
793
- return T(n);
794
- const t = typeof r.cardRadius == "number" ? r.cardRadius <= 0 ? "square" : r.cardRadius <= 4 ? "small" : r.cardRadius >= 16 ? "large" : "standard" : i.radius, o = typeof r.cardShadow == "string" && Ke[r.cardShadow] || i.shadow, d = typeof r.density == "string" && Ge[r.density] || i.density, h = typeof r.backgroundColor == "string" ? r.backgroundColor : void 0;
795
- return T({
800
+ return E(n);
801
+ const t = typeof r.cardRadius == "number" ? r.cardRadius <= 0 ? "square" : r.cardRadius <= 4 ? "small" : r.cardRadius >= 16 ? "large" : "standard" : i.radius, o = typeof r.cardShadow == "string" && Je[r.cardShadow] || i.shadow, d = typeof r.density == "string" && Xe[r.density] || i.density, h = typeof r.backgroundColor == "string" ? r.backgroundColor : void 0;
802
+ return E({
796
803
  radius: t,
797
804
  border: i.border,
798
805
  shadow: o,
@@ -802,41 +809,42 @@ function Sr(e) {
802
809
  density: d
803
810
  });
804
811
  }
805
- const Cr = "@fses/workbench-app";
812
+ const Pr = "@fses/workbench-app";
806
813
  export {
807
- cr as A,
808
- Ce as B,
809
- S as C,
814
+ pe as A,
815
+ fr as B,
816
+ Pe as C,
810
817
  i as D,
811
- Ae as E,
812
- yr as F,
813
- rr as G,
814
- wr as W,
815
- we as _,
816
- pr as a,
817
- sr as b,
818
- _e as c,
819
- lr as d,
820
- fr as e,
821
- gr as f,
822
- mr as g,
823
- tr as h,
824
- or as i,
825
- br as j,
826
- nr as k,
827
- Sr as l,
828
- Ir as m,
829
- T as n,
830
- kr as o,
831
- ur as p,
832
- G as q,
833
- ar as r,
834
- hr as s,
835
- Cr as t,
836
- ir as u,
837
- Ie as v,
838
- $e as w,
839
- he as x,
840
- dr as y,
841
- fe as z
818
+ S as E,
819
+ Ee as F,
820
+ Ir as G,
821
+ or as H,
822
+ Sr as W,
823
+ Se as _,
824
+ br as a,
825
+ cr as b,
826
+ De as c,
827
+ mr as d,
828
+ pr as e,
829
+ wr as f,
830
+ yr as g,
831
+ sr as h,
832
+ ir as i,
833
+ kr as j,
834
+ ar as k,
835
+ Rr as l,
836
+ Cr as m,
837
+ E as n,
838
+ Ar as o,
839
+ hr as p,
840
+ Y as q,
841
+ dr as r,
842
+ gr as s,
843
+ Pr as t,
844
+ me as u,
845
+ lr as v,
846
+ Fe as w,
847
+ Ce as x,
848
+ ge as y,
849
+ ur as z
842
850
  };
package/dist/index.d.ts CHANGED
@@ -4,6 +4,8 @@
4
4
  * @created 2026-08-11
5
5
  */
6
6
  import './styles/workbench-app.css';
7
+ import './version';
8
+ export { WORKBENCH_APP_VERSION } from './version';
7
9
  export { default as WorkbenchWorkspaceCore } from './components/WorkbenchWorkspaceCore.vue';
8
10
  export { default as WorkbenchAppHost } from './components/WorkbenchAppHost.vue';
9
11
  export { default as WorkbenchApplication } from './components/WorkbenchApplication.vue';
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @fileoverview workbench-app 版本信息 - 由 scripts/write-version.mjs 在构建前生成,禁止手工编辑。
3
+ * 运行时会把版本写入页面 meta 标签,便于线上仅更换 workbench-app 包时排查版本问题。
4
+ * @author seadon
5
+ * @created 2026-08-17
6
+ */
7
+ export declare const WORKBENCH_APP_VERSION = "0.2.10";
8
+ export declare const WORKBENCH_APP_VERSION_META_NAME = "workbench-app-version";
9
+ /**
10
+ * 将当前包版本写入页面 head 的 meta 标签。
11
+ *
12
+ * 线上部署形态是“宿主 web-workbench 不动、只更新 workbench-app 包”,宿主构建期的静态注入
13
+ * 无法覆盖这种发版方式,因此由包入口在运行时自报版本;已存在同名标签时不覆盖。
14
+ * @returns 注入成功时返回 true,非浏览器环境或标签已存在时返回 false。
15
+ */
16
+ export declare function installWorkbenchAppVersionMeta(): boolean;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fses/ai-chat",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "files": [
@@ -48,7 +48,7 @@
48
48
  "echarts": "^5.4.0 || ^6.0.0",
49
49
  "marked": "^18.0.0",
50
50
  "vue": "^3.5.32",
51
- "@fses/workbench-card": "0.3.7"
51
+ "@fses/workbench-card": "0.3.8"
52
52
  },
53
53
  "dependencies": {
54
54
  "dompurify": "^3.4.0",
@@ -70,7 +70,7 @@
70
70
  "typescript": "^5.4.5",
71
71
  "vite": "^5.4.19",
72
72
  "vue-tsc": "^2.2.10",
73
- "@fses/workbench-card": "0.3.7"
73
+ "@fses/workbench-card": "0.3.8"
74
74
  },
75
75
  "scripts": {
76
76
  "stub": "node ./scripts/clean-tsbuildinfo.mjs && vue-tsc --emitDeclarationOnly",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fses/workbench-card",
3
- "version": "0.3.7",
3
+ "version": "0.3.8",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "files": [
package/package.json CHANGED
@@ -10,8 +10,8 @@
10
10
  "@byteluck-fe/workbench-template": "0.1.1",
11
11
  "@byteluck/agentic-protocol": "2.2.1",
12
12
  "@byteluck/workbench-skill-contracts": "0.1.0",
13
- "@fses/ai-chat": "1.0.7",
14
- "@fses/workbench-card": "0.3.7",
13
+ "@fses/ai-chat": "1.0.8",
14
+ "@fses/workbench-card": "0.3.8",
15
15
  "@microsoft/fetch-event-source": "2.0.1",
16
16
  "axios": "^1.15.0",
17
17
  "clsx": "^2.1.1",
@@ -135,12 +135,12 @@
135
135
  "access": "public"
136
136
  },
137
137
  "scripts": {
138
- "build": "node ./scripts/clean-tsbuildinfo.mjs && vite build && vue-tsc --emitDeclarationOnly",
139
- "stub": "node ./scripts/clean-tsbuildinfo.mjs && vue-tsc --emitDeclarationOnly",
138
+ "build": "node ./scripts/write-version.mjs && node ./scripts/clean-tsbuildinfo.mjs && vite build && vue-tsc --emitDeclarationOnly",
139
+ "stub": "node ./scripts/write-version.mjs && node ./scripts/clean-tsbuildinfo.mjs && vue-tsc --emitDeclarationOnly",
140
140
  "test": "node ./scripts/run-tests.mjs",
141
141
  "verify:exports": "node ../../scripts/verify-package-exports.mjs ."
142
142
  },
143
143
  "type": "module",
144
144
  "types": "./dist/index.d.ts",
145
- "version": "0.2.9"
145
+ "version": "0.2.10"
146
146
  }