@freecallai/pro 0.0.11 → 0.0.13

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.
Files changed (60) hide show
  1. package/README.md +23 -2
  2. package/dist/{FkpRichText.vue_vue_type_script_setup_true_lang-D2sgT7XP.js → FkpRichText.vue_vue_type_script_setup_true_lang-D-SOdFra.js} +1811 -1781
  3. package/dist/{KnowledgeArea-Sbfs_E0C.js → KnowledgeArea-ClZoLiaZ.js} +1 -1
  4. package/dist/KnowledgeArea.vue_vue_type_script_setup_true_lang-CoFF-WCe.js +1830 -0
  5. package/dist/{ToolForm-_ZTW7lwU.js → ToolForm-BK9epxdr.js} +1 -1
  6. package/dist/agent-prompt-editor/index.js +575 -549
  7. package/dist/agent-prompt-editor/legacy-converter/index.js +98 -94
  8. package/dist/{choice-BqjECVyx.js → choice-UgePgrSl.js} +1 -1
  9. package/dist/{guard-BmLOamCj.js → guard-DPwe4mCm.js} +200 -185
  10. package/dist/{index-gS1h8iW8.js → index-BIi3k45j.js} +1 -1
  11. package/dist/index-BMHUPL5x.js +5 -0
  12. package/dist/{index-B1rTu0jX.js → index-CaA13lC9.js} +1 -1
  13. package/dist/{index-6VSUucFX.js → index-ChuzFuNm.js} +1 -1
  14. package/dist/index-DJLfgC4v.js +5 -0
  15. package/dist/{index-0BXLYaKG.js → index-DfKH-RZq.js} +2 -2
  16. package/dist/{index-CN2knQcE.js → index-DiLMgNEe.js} +1 -1
  17. package/dist/{index-BDinNJn_.js → index-RHu4JIw7.js} +1 -1
  18. package/dist/{index-CCwmXuSJ.js → index-v1UD08i6.js} +1 -1
  19. package/dist/index.js +3 -3
  20. package/dist/{inline-CRGzAti7.js → inline-CVF1zEsG.js} +1 -1
  21. package/dist/{knowledge-DNDouB-s.js → knowledge-DWM6tWnP.js} +1 -1
  22. package/dist/media-extensions-YYbGuUQa.js +341 -0
  23. package/dist/{media-migration-D1KoHKoP.js → media-migration-BctCLEuT.js} +1 -1
  24. package/dist/media-policy-B1UuSN2e.js +215 -0
  25. package/dist/{media-upload-C5N6YWHu.js → media-upload-DtH-oCtw.js} +1 -1
  26. package/dist/{model-BVh9EZ9G.js → model-VLLhEQfn.js} +1 -1
  27. package/dist/rich-text/index.js +6 -6
  28. package/dist/rich-text/legacy-converter/index.js +357 -355
  29. package/dist/style.css +1 -1
  30. package/dist/types/agent-prompt-editor/FkpAgentPromptEditor.vue.d.ts +37 -2
  31. package/dist/types/agent-prompt-editor/index.d.ts +1 -0
  32. package/dist/types/agent-prompt-editor/types.d.ts +4 -0
  33. package/dist/types/filters/FkpFilter.vue.d.ts +2 -2
  34. package/dist/types/filters/FkpFilterDateRange.vue.d.ts +2 -2
  35. package/dist/types/filters/FkpFilterPeriod.vue.d.ts +2 -2
  36. package/dist/types/filters/FkpSearchableMultiSelect.vue.d.ts +2 -2
  37. package/dist/types/index.d.ts +1 -0
  38. package/dist/types/rich-text/FkpRichText.vue.d.ts +20 -2
  39. package/dist/types/rich-text/index.d.ts +1 -0
  40. package/dist/types/rich-text/model/qianniu-video.d.ts +2 -0
  41. package/dist/types/rich-text/plugins/attribute/token.d.ts +1 -0
  42. package/dist/types/rich-text/plugins/tableKnowledge/token.d.ts +1 -0
  43. package/dist/types/rich-text/plugins/ticket/token.d.ts +2 -1
  44. package/dist/types/rich-text/plugins/token-catalog.d.ts +4 -1
  45. package/dist/types/rich-text/plugins/token-definition.d.ts +2 -0
  46. package/dist/types/rich-text/public/types.d.ts +7 -2
  47. package/dist/types/rich-text/runtime/document-adapter.d.ts +3 -0
  48. package/dist/types/rich-text/runtime/media-sources.d.ts +1 -1
  49. package/dist/types/rich-text/runtime/tag-validity.d.ts +46 -0
  50. package/dist/types/rich-text/ui/FkpKnowledgeTypePicker.vue.d.ts +2 -2
  51. package/dist/types/rich-text/ui/KnowledgeArea.vue.d.ts +10 -0
  52. package/dist/types/rich-text/ui/MediaSourceControls.vue.d.ts +23 -14
  53. package/dist/types/rich-text/ui/ToolForm.vue.d.ts +2 -2
  54. package/dist/types/switcher/FkpSwitcher.vue.d.ts +2 -2
  55. package/package.json +5 -4
  56. package/dist/KnowledgeArea.vue_vue_type_script_setup_true_lang-BNDRTWXW.js +0 -1659
  57. package/dist/index-CAczgwau.js +0 -5
  58. package/dist/index-faGbB8v6.js +0 -5
  59. package/dist/media-extensions-wlcCEdtg.js +0 -324
  60. package/dist/media-policy-D3-Qglzz.js +0 -158
@@ -1,12 +1,12 @@
1
- import { defineComponent as kt, ref as p, computed as N, onMounted as It, watch as $, onBeforeUnmount as Mt, openBlock as v, createElementBlock as b, withKeys as Et, withModifiers as ae, normalizeClass as Tt, createElementVNode as y, Fragment as fe, renderList as Ee, createCommentVNode as U, createVNode as K, unref as T, withCtx as ve, createBlock as He, createTextVNode as Te, toDisplayString as q, renderSlot as Lt, normalizeStyle as _t, withDirectives as Je, vModelText as We, nextTick as me } from "vue";
2
- import { Popover as Ct, Button as Le } from "@freecallai/ui";
1
+ import { defineComponent as It, ref as d, computed as N, onMounted as Tt, watch as $, onBeforeUnmount as Et, openBlock as m, createElementBlock as y, withKeys as Mt, withModifiers as ae, normalizeClass as Lt, createElementVNode as k, Fragment as ve, renderList as Le, createCommentVNode as q, createVNode as R, unref as T, withCtx as me, createBlock as Je, createTextVNode as Se, toDisplayString as U, renderSlot as St, normalizeStyle as Ct, withDirectives as We, vModelText as Xe, nextTick as ge } from "vue";
2
+ import { Popover as _t, Button as Ce } from "@freecallai/ui";
3
3
  import _e from "@freecallai/icons";
4
- import { u as wt, c as Xe, _ as St, m as Ce, M as Ge, a as Dt, b as Nt } from "../media-policy-D3-Qglzz.js";
5
- import { i as Ze } from "../guard-BmLOamCj.js";
6
- import { _ as Pt } from "../KnowledgeArea.vue_vue_type_script_setup_true_lang-BNDRTWXW.js";
4
+ import { u as wt, c as Ze, m as be, _ as Dt, M as je, a as Nt, b as Pt } from "../media-policy-B1UuSN2e.js";
5
+ import { i as Qe } from "../guard-DPwe4mCm.js";
6
+ import { _ as Vt } from "../KnowledgeArea.vue_vue_type_script_setup_true_lang-CoFF-WCe.js";
7
7
  import { Node as Ot } from "@tiptap/core";
8
- import { f as ne, a as je, c as zt, e as Vt, v as xt } from "../model-BVh9EZ9G.js";
9
- const Kt = Ot.create({
8
+ import { f as ne, a as et, c as zt, e as Kt, v as Rt } from "../model-VLLhEQfn.js";
9
+ const Ft = Ot.create({
10
10
  name: "agentSizeChart",
11
11
  group: "inline",
12
12
  inline: !0,
@@ -19,69 +19,74 @@ const Kt = Ot.create({
19
19
  return [
20
20
  {
21
21
  tag: "span[data-agent-size-chart]",
22
- getAttrs: (L) => ({
23
- name: L.getAttribute("data-agent-size-chart") || ""
22
+ getAttrs: (S) => ({
23
+ name: S.getAttribute("data-agent-size-chart") || ""
24
24
  })
25
25
  }
26
26
  ];
27
27
  },
28
- renderHTML({ node: L }) {
28
+ renderHTML({ node: S }) {
29
29
  return [
30
30
  "span",
31
31
  {
32
- "data-agent-size-chart": L.attrs.name,
32
+ "data-agent-size-chart": S.attrs.name,
33
33
  class: "fkp-agent-size-chart fkp-knowledge-tag",
34
34
  contenteditable: "false"
35
35
  },
36
- `#@${L.attrs.name}@#`
36
+ `#@${S.attrs.name}@#`
37
37
  ];
38
38
  },
39
- renderText({ node: L }) {
40
- return `#@${L.attrs.name}@#`;
39
+ renderText({ node: S }) {
40
+ return `#@${S.attrs.name}@#`;
41
41
  }
42
42
  });
43
- function Rt(L) {
43
+ function xt(S) {
44
44
  return {
45
45
  ariaLabel: "Agent 提示词",
46
46
  placeholder: "填写提示词",
47
- extensions: [Kt],
47
+ extensions: [Ft],
48
+ describeTagValidity: (g) => g.type.name === "agentSizeChart" ? {
49
+ kind: "agentSizeChart",
50
+ key: String(g.attrs.name || ""),
51
+ label: String(g.attrs.name || "")
52
+ } : void 0,
48
53
  clipboard: {
49
- allowBusinessToken: (_, D) => _ !== "tool" || D === "small_payment",
50
- sanitizeInlineNode(_) {
51
- if (!_.hasAttribute("data-agent-size-chart")) return;
52
- const D = _.getAttribute("data-agent-size-chart") || "";
53
- if (!L() || !D.trim() || /[#@<>\r\n]/u.test(D) || _.textContent !== `#@${D}@#`)
54
+ allowBusinessToken: (g, D) => g !== "tool" || D === "small_payment",
55
+ sanitizeInlineNode(g) {
56
+ if (!g.hasAttribute("data-agent-size-chart")) return;
57
+ const D = g.getAttribute("data-agent-size-chart") || "";
58
+ if (!S() || !D.trim() || /[#@<>\r\n]/u.test(D) || g.textContent !== `#@${D}@#`)
54
59
  return null;
55
- const o = document.createElement("span");
56
- return o.setAttribute("data-agent-size-chart", D), o.textContent = `#@${D}@#`, o;
60
+ const i = document.createElement("span");
61
+ return i.setAttribute("data-agent-size-chart", D), i.textContent = `#@${D}@#`, i;
57
62
  },
58
- serializeNode(_) {
59
- if (_.type.name === "agentSizeChart")
60
- return `#@${_.attrs.name || ""}@#`;
63
+ serializeNode(g) {
64
+ if (g.type.name === "agentSizeChart")
65
+ return `#@${g.attrs.name || ""}@#`;
61
66
  }
62
67
  }
63
68
  };
64
69
  }
65
- const Ft = {
70
+ const Bt = {
66
71
  key: 0,
67
72
  class: "fkp-toolbar-divider",
68
73
  "aria-hidden": "true"
69
- }, Bt = {
74
+ }, $t = {
70
75
  key: 0,
71
76
  class: "fkp-more-wrap"
72
- }, $t = {
77
+ }, qt = {
73
78
  key: 0,
74
79
  class: "fkp-menu fkp-more-menu",
75
80
  role: "menu",
76
81
  "aria-label": "更多提示词操作"
77
- }, Ut = { class: "fkp-toolbar-right fkp-agent-prompt-toolbar-right" }, qt = ["aria-label"], Yt = { key: 0 }, Ht = { key: 1 }, Jt = ["disabled", "onClick"], Wt = {
82
+ }, Ut = { class: "fkp-toolbar-right fkp-agent-prompt-toolbar-right" }, Yt = ["aria-label"], Ht = { key: 0 }, Gt = { key: 1 }, Jt = ["disabled", "onClick"], Wt = {
78
83
  key: 1,
79
84
  class: "fkp-agent-prompt-options"
80
85
  }, Xt = {
81
86
  key: 2,
82
87
  role: "alert",
83
88
  class: "fkp-agent-prompt-error"
84
- }, Gt = { class: "fkp-agent-prompt-footer" }, oa = /* @__PURE__ */ kt({
89
+ }, Zt = { class: "fkp-agent-prompt-footer" }, oa = /* @__PURE__ */ It({
85
90
  name: "FkpAgentPromptEditor",
86
91
  __name: "FkpAgentPromptEditor",
87
92
  props: {
@@ -99,24 +104,24 @@ const Ft = {
99
104
  maxLength: { default: 1e4 }
100
105
  },
101
106
  emits: ["update:modelValue", "change", "diagnostic", "busy-change"],
102
- setup(L, { expose: _, emit: D }) {
103
- const o = L, le = D;
107
+ setup(S, { expose: g, emit: D }) {
108
+ const i = S, le = D;
104
109
  function we(e) {
105
110
  return JSON.parse(JSON.stringify(e));
106
111
  }
107
- function Se(e) {
108
- return ne(e) ? Vt() : we(e);
112
+ function De(e) {
113
+ return ne(e) ? Kt() : we(e);
109
114
  }
110
- const C = p(Se(o.modelValue)), O = p(
111
- ne(o.modelValue)
112
- ), Y = p(0), c = p(), oe = p(), ge = p(), H = p(), J = p(Number.POSITIVE_INFINITY), I = p(!1), h = p(null), ie = p([]), W = p(""), re = p(!1), De = p(12), k = p(!1), X = p(null), G = p(0), Z = p(0), ue = p(), w = p(null), P = p(null), { suppressedMediaHint: Qe, suppressMediaHint: et, resumeMediaHintOnHover: tt } = wt(), Ne = p({});
113
- let S = null;
114
- const R = /* @__PURE__ */ new Set(), se = /* @__PURE__ */ new Map();
115
- let A = null, be = null, at = 0;
116
- const ce = p(Date.now());
115
+ const C = d(De(i.modelValue)), V = d(
116
+ ne(i.modelValue)
117
+ ), Y = d(0), c = d(), ie = d(), ye = d(), H = d(), G = d(Number.POSITIVE_INFINITY), E = d(!1), A = d(null), oe = d([]), J = d(""), re = d(!1), Ne = d(12), I = d(!1), W = d(null), X = d(0), Z = d(0), ue = d(), _ = d(null), P = d(null), se = d(!1), { suppressedMediaHint: tt, suppressMediaHint: at, resumeMediaHintOnHover: nt } = wt(), Pe = d({});
118
+ let w = null;
119
+ const F = /* @__PURE__ */ new Set(), ce = /* @__PURE__ */ new Map();
120
+ let h = null, ke = null, lt = 0;
121
+ const de = d(Date.now());
117
122
  let j;
118
- const Pe = N(
119
- () => new Set(o.capabilities || je)
123
+ const Ve = N(
124
+ () => new Set(i.capabilities || et)
120
125
  ), Oe = [
121
126
  { id: "variable", label: "变量", icon: "hashtag", group: "reference" },
122
127
  { id: "todo", label: "待办", icon: "rte-todo", group: "reference" },
@@ -138,42 +143,42 @@ const Ft = {
138
143
  { id: "originalReply", label: "原话复述", icon: "quote", group: "format" },
139
144
  { id: "separator", label: "分隔符", icon: "sep", group: "format" },
140
145
  { id: "smallPayment", label: "小额打款", icon: "rte-tool", group: "tool" }
141
- ], nt = N(
146
+ ], it = N(
142
147
  () => {
143
148
  var e;
144
149
  return new Set(
145
- ((e = o.config) == null ? void 0 : e.schemaVersion) === 1 && Array.isArray(o.config.rules) ? o.config.rules.filter((t) => (t == null ? void 0 : t.visible) === !1).map((t) => t.id) : []
150
+ ((e = i.config) == null ? void 0 : e.schemaVersion) === 1 && Array.isArray(i.config.rules) ? i.config.rules.filter((t) => (t == null ? void 0 : t.visible) === !1).map((t) => t.id) : []
146
151
  );
147
152
  }
148
153
  ), pe = N(
149
154
  () => Oe.filter(
150
- (e) => Pe.value.has(e.id) && !nt.value.has(e.id)
155
+ (e) => Ve.value.has(e.id) && !it.value.has(e.id)
151
156
  )
152
157
  ), ze = N(
153
- () => pe.value.slice(0, J.value)
154
- ), ye = N(
155
- () => pe.value.slice(J.value)
156
- ), Ve = N(
158
+ () => pe.value.slice(0, G.value)
159
+ ), Ae = N(
160
+ () => pe.value.slice(G.value)
161
+ ), Ke = N(
157
162
  () => {
158
163
  var e;
159
- return ((e = Oe.find((t) => t.id === h.value)) == null ? void 0 : e.label) || "";
164
+ return ((e = Oe.find((t) => t.id === A.value)) == null ? void 0 : e.label) || "";
160
165
  }
161
- ), z = N(
162
- () => o.readonly || o.disabled || !!O.value || !!o.policy && o.policy.expiresAt <= ce.value
166
+ ), O = N(
167
+ () => i.readonly || i.disabled || !!V.value || !!i.policy && i.policy.expiresAt <= de.value
163
168
  );
164
- function g(e) {
165
- return !z.value && je.includes(e) && Pe.value.has(e) && (!o.policy || o.policy.allowed.includes(e));
169
+ function b(e) {
170
+ return !O.value && et.includes(e) && Ve.value.has(e) && (!i.policy || i.policy.allowed.includes(e));
166
171
  }
167
- const lt = Rt(() => g("sizeChart"));
172
+ const ot = xt(() => b("sizeChart"));
168
173
  function he(e) {
169
- var t, a;
170
- return g(e) && (e === "variable" ? !!((t = o.ports) != null && t.listVariables) : !!((a = o.ports) != null && a.listCapabilityOptions));
174
+ var t, n;
175
+ return b(e) && (e === "variable" ? !!((t = i.ports) != null && t.listVariables) : !!((n = i.ports) != null && n.listCapabilityOptions));
171
176
  }
172
- function Ae(e) {
173
- return e === "image" || e === "video" ? g(e) && Ce(o.mediaSources, e).some(
177
+ function Ie(e) {
178
+ return e === "image" || e === "video" ? b(e) && be(i.mediaSources, e).some(
174
179
  (t) => {
175
- var a;
176
- return t === "online" || !!((a = o.ports) != null && a.uploadMedia);
180
+ var n;
181
+ return t !== "local" || !!((n = i.ports) != null && n.uploadMedia);
177
182
  }
178
183
  ) : [
179
184
  "variable",
@@ -181,51 +186,51 @@ const Ft = {
181
186
  "tableKnowledge",
182
187
  "sizeChart",
183
188
  "attribute"
184
- ].includes(e) ? he(e) : g(e);
189
+ ].includes(e) ? he(e) : b(e);
185
190
  }
186
- function F() {
187
- A == null || A.abort(), h.value = null;
191
+ function x() {
192
+ h == null || h.abort(), A.value = null;
188
193
  }
189
- function xe(e, t) {
190
- var a;
191
- if (Ae(e))
192
- if (I.value = !1, F(), V(), k.value = !1, ["variable", "todo", "tableKnowledge", "sizeChart", "attribute"].includes(
194
+ function Re(e, t) {
195
+ var n;
196
+ if (Ie(e))
197
+ if (E.value = !1, x(), z(), I.value = !1, ["variable", "todo", "tableKnowledge", "sizeChart", "attribute"].includes(
193
198
  e
194
199
  )) {
195
- const n = t.currentTarget, l = (a = oe.value) == null ? void 0 : a.getBoundingClientRect();
196
- l && (De.value = Math.max(
200
+ const a = t.currentTarget, l = (n = ie.value) == null ? void 0 : n.getBoundingClientRect();
201
+ l && (Ne.value = Math.max(
197
202
  12,
198
203
  Math.min(
199
- n.getBoundingClientRect().left - l.left,
204
+ a.getBoundingClientRect().left - l.left,
200
205
  l.width - 332
201
206
  )
202
- )), st(e);
203
- } else e === "image" || e === "video" ? pt(e, t) : e === "smallPayment" ? vt() : de({ type: "capability", capabilityId: e });
207
+ )), dt(e);
208
+ } else e === "image" || e === "video" ? ft(e, t) : e === "smallPayment" ? mt() : fe({ type: "capability", capabilityId: e });
204
209
  }
205
- let Q, Ke = 0;
210
+ let Q, Fe = 0;
206
211
  async function ee() {
207
- const e = ++Ke;
208
- for (J.value = pe.value.length, await me(); e === Ke && H.value && H.value.clientWidth > 0 && H.value.scrollWidth > H.value.clientWidth + 1 && J.value > 0; )
209
- J.value--, await me();
210
- ye.value.length || (I.value = !1);
212
+ const e = ++Fe;
213
+ for (G.value = pe.value.length, await ge(); e === Fe && H.value && H.value.clientWidth > 0 && H.value.scrollWidth > H.value.clientWidth + 1 && G.value > 0; )
214
+ G.value--, await ge();
215
+ Ae.value.length || (E.value = !1);
211
216
  }
212
- function Re(e) {
217
+ function xe(e) {
213
218
  var t;
214
- (t = oe.value) != null && t.contains(e.target) || (I.value = !1, F(), P.value || V(), k.value = !1);
219
+ (t = ie.value) != null && t.contains(e.target) || (E.value = !1, x(), P.value || z(), I.value = !1);
215
220
  }
216
- It(() => {
217
- window.addEventListener("resize", ee), document.addEventListener("click", Re), typeof ResizeObserver < "u" && ge.value && (Q = new ResizeObserver(() => void ee()), Q.observe(ge.value)), ee();
221
+ Tt(() => {
222
+ window.addEventListener("resize", ee), document.addEventListener("click", xe), typeof ResizeObserver < "u" && ye.value && (Q = new ResizeObserver(() => void ee()), Q.observe(ye.value)), ee();
218
223
  }), $(pe, (e) => {
219
- h.value && !e.some((t) => t.id === h.value) && F(), k.value && !e.some((t) => t.id === "smallPayment") && (k.value = !1), ee();
220
- }), $(z, (e) => {
221
- e && (F(), V(), k.value = !1, I.value = !1);
224
+ A.value && !e.some((t) => t.id === A.value) && x(), I.value && !e.some((t) => t.id === "smallPayment") && (I.value = !1), ee();
225
+ }), $(O, (e) => {
226
+ e && (x(), z(), I.value = !1, E.value = !1);
222
227
  });
223
- const ot = {
228
+ const rt = {
224
229
  businessToken: !0,
225
230
  originalReply: !0,
226
231
  separator: !0,
227
232
  mediaBlock: !0
228
- }, it = N(
233
+ }, ut = N(
229
234
  () => [
230
235
  "variable",
231
236
  "todo",
@@ -237,224 +242,224 @@ const Ft = {
237
242
  "separator",
238
243
  "tool"
239
244
  ].filter(
240
- (e) => g(e === "tool" ? "smallPayment" : e)
245
+ (e) => b(e === "tool" ? "smallPayment" : e)
241
246
  ).map((e) => ({
242
247
  id: e,
243
248
  slot: e === "image" || e === "video" || e === "originalReply" ? "knowledgeBlock" : "knowledgeInline"
244
249
  }))
245
- ), rt = N(() => zt(C.value));
246
- function Fe() {
247
- j && clearTimeout(j), ce.value = Date.now(), o.policy && o.policy.expiresAt > ce.value && (j = setTimeout(
248
- Fe,
249
- Math.min(o.policy.expiresAt - ce.value + 1, 2147483647)
250
+ ), st = N(() => zt(C.value));
251
+ function Be() {
252
+ j && clearTimeout(j), de.value = Date.now(), i.policy && i.policy.expiresAt > de.value && (j = setTimeout(
253
+ Be,
254
+ Math.min(i.policy.expiresAt - de.value + 1, 2147483647)
250
255
  ));
251
256
  }
252
257
  $(() => {
253
258
  var e;
254
- return (e = o.policy) == null ? void 0 : e.expiresAt;
255
- }, Fe, { immediate: !0 });
259
+ return (e = i.policy) == null ? void 0 : e.expiresAt;
260
+ }, Be, { immediate: !0 });
256
261
  function te() {
257
262
  le("busy-change", {
258
- uploading: G.value,
263
+ uploading: X.value,
259
264
  requesting: Z.value
260
265
  });
261
266
  }
262
- function Be() {
263
- V();
264
- for (const e of R) e.abort();
265
- R.clear(), se.clear(), A = null, h.value = null, I.value = !1, k.value = !1, ie.value = [], re.value = !1, G.value = 0, Z.value = 0, te();
267
+ function $e() {
268
+ z();
269
+ for (const e of F) e.abort();
270
+ F.clear(), ce.clear(), h = null, A.value = null, E.value = !1, I.value = !1, oe.value = [], re.value = !1, X.value = 0, Z.value = 0, te();
266
271
  }
267
272
  $(
268
- () => o.promptKey,
273
+ () => i.promptKey,
269
274
  () => {
270
- Be(), C.value = Se(o.modelValue), O.value = ne(o.modelValue), Y.value = 0;
275
+ $e(), C.value = De(i.modelValue), V.value = ne(i.modelValue), Y.value = 0;
271
276
  },
272
277
  { flush: "sync" }
273
278
  ), $(
274
- () => [o.modelValue, o.ackRevision],
279
+ () => [i.modelValue, i.ackRevision],
275
280
  ([e, t]) => {
276
- const a = ne(e);
277
- if (a) {
278
- O.value = a, m("PROMPT_DOCUMENT_INVALID", "输入的提示词文档无效", a);
281
+ const n = ne(e);
282
+ if (n) {
283
+ V.value = n, f("PROMPT_DOCUMENT_INVALID", "输入的提示词文档无效", n);
279
284
  return;
280
285
  }
281
- if (Xe(e) === Xe(C.value)) {
282
- O.value = null;
286
+ if (Ze(e) === Ze(C.value)) {
287
+ V.value = null;
283
288
  return;
284
289
  }
285
- Y.value > 0 && (t || 0) < Y.value || (O.value = null, C.value = we(e));
290
+ Y.value > 0 && (t || 0) < Y.value || (V.value = null, C.value = we(e));
286
291
  },
287
292
  { deep: !0 }
288
- ), Mt(() => {
289
- Be(), j && clearTimeout(j), Q == null || Q.disconnect(), window.removeEventListener("resize", ee), document.removeEventListener("click", Re);
293
+ ), Et(() => {
294
+ $e(), j && clearTimeout(j), Q == null || Q.disconnect(), window.removeEventListener("resize", ee), document.removeEventListener("click", xe);
290
295
  });
291
- function m(e, t, a = "doc") {
296
+ function f(e, t, n = "doc") {
292
297
  le("diagnostic", {
293
298
  code: e,
294
299
  message: t,
295
- path: a,
300
+ path: n,
296
301
  severity: "warning",
297
302
  source: "validation"
298
303
  });
299
304
  }
300
- function ke(e, t, a) {
301
- if (z.value) return !1;
302
- const n = { schemaVersion: 1, doc: e }, l = ne(n);
305
+ function Te(e, t, n) {
306
+ if (O.value) return !1;
307
+ const a = { schemaVersion: 1, doc: e }, l = ne(a);
303
308
  if (l)
304
- return m("PROMPT_DOCUMENT_INVALID", "编辑结果包含无效内容", l), me(() => {
305
- var i;
306
- return (i = c.value) == null ? void 0 : i.restoreDoc(C.value.doc);
309
+ return f("PROMPT_DOCUMENT_INVALID", "编辑结果包含无效内容", l), ge(() => {
310
+ var r;
311
+ return (r = c.value) == null ? void 0 : r.restoreDoc(C.value.doc);
307
312
  }), !1;
308
- C.value = n;
309
- const s = ++Y.value;
310
- return le("change", n, {
311
- promptKey: o.promptKey,
312
- revision: s,
313
+ C.value = a;
314
+ const o = ++Y.value;
315
+ return le("change", a, {
316
+ promptKey: i.promptKey,
317
+ revision: o,
313
318
  origin: t,
314
- ...a ? { capabilityId: a } : {}
315
- }), le("update:modelValue", n), !0;
319
+ ...n ? { capabilityId: n } : {}
320
+ }), le("update:modelValue", a), !0;
316
321
  }
317
- function ut(e) {
318
- const t = be;
319
- ke(e, (t == null ? void 0 : t.origin) || "user", t == null ? void 0 : t.capabilityId);
322
+ function ct(e) {
323
+ const t = ke;
324
+ Te(e, (t == null ? void 0 : t.origin) || "user", t == null ? void 0 : t.capabilityId);
320
325
  }
321
- function M(e, t, a) {
322
- be = { origin: t, capabilityId: a };
326
+ function M(e, t, n) {
327
+ ke = { origin: t, capabilityId: n };
323
328
  try {
324
329
  return e();
325
330
  } finally {
326
- be = null;
331
+ ke = null;
327
332
  }
328
333
  }
329
- function d(e, t) {
330
- return m(e, t), { ok: !1, code: e, message: t };
334
+ function p(e, t) {
335
+ return f(e, t), { ok: !1, code: e, message: t };
331
336
  }
332
337
  function B() {
333
338
  return { ok: !0, revision: Y.value };
334
339
  }
335
- function $e(e) {
336
- const t = /* @__PURE__ */ new Set(), a = (n) => {
337
- var l, s, i, r;
338
- e === "agentSizeChart" && n.type === e && t.add(String(((l = n.attrs) == null ? void 0 : l.name) || "").trim()), e === "tableKnowledge" && ((s = n.attrs) == null ? void 0 : s.kind) === e && t.add(String(((i = n.attrs) == null ? void 0 : i.label) || "").trim()), (r = n.content) == null || r.forEach(a);
340
+ function qe(e) {
341
+ const t = /* @__PURE__ */ new Set(), n = (a) => {
342
+ var l, o, r, u;
343
+ e === "agentSizeChart" && a.type === e && t.add(String(((l = a.attrs) == null ? void 0 : l.name) || "").trim()), e === "tableKnowledge" && ((o = a.attrs) == null ? void 0 : o.kind) === e && t.add(String(((r = a.attrs) == null ? void 0 : r.label) || "").trim()), (u = a.content) == null || u.forEach(n);
339
344
  };
340
- return a(C.value.doc), t;
345
+ return n(C.value.doc), t;
341
346
  }
342
- function Ie(e, t) {
347
+ function Ee(e, t) {
343
348
  return {
344
- promptKey: o.promptKey,
349
+ promptKey: i.promptKey,
345
350
  capabilityId: e,
346
- requestId: `agent-prompt-${++at}`,
351
+ requestId: `agent-prompt-${++lt}`,
347
352
  signal: t.signal
348
353
  };
349
354
  }
350
- async function de(e) {
351
- var i, r, x;
352
- if (z.value) return d("PROMPT_READONLY", "当前提示词不可编辑");
353
- const t = o.promptKey;
354
- let a = c.value;
355
- if (a || (await me(), a = c.value), !a || !await a.whenReady() || t !== o.promptKey)
356
- return d("EDITOR_UNAVAILABLE", "提示词编辑器尚未就绪");
355
+ async function fe(e) {
356
+ var r, u, K;
357
+ if (O.value) return p("PROMPT_READONLY", "当前提示词不可编辑");
358
+ const t = i.promptKey;
359
+ let n = c.value;
360
+ if (n || (await ge(), n = c.value), !n || !await n.whenReady() || t !== i.promptKey)
361
+ return p("EDITOR_UNAVAILABLE", "提示词编辑器尚未就绪");
357
362
  if (e.type === "text")
358
363
  return e.text ? M(
359
- () => a.insertText(e.text, e.placement, e.selectInserted),
364
+ () => n.insertText(e.text, e.placement, e.selectInserted),
360
365
  "api"
361
- ) ? B() : d("INSERT_FAILED", "文本插入失败") : d("EMPTY_TEXT", "插入文本不能为空");
366
+ ) ? B() : p("INSERT_FAILED", "文本插入失败") : p("EMPTY_TEXT", "插入文本不能为空");
362
367
  if (e.type === "media") {
363
- const { asset: u } = e;
364
- if (!g(u.kind) || !Ze(u.url))
365
- return d("MEDIA_INVALID", "媒体资源不可用");
366
- const f = a.captureMediaTarget() || a.captureEndTarget();
367
- if (!f) return d("INSERT_FAILED", "无法确定媒体插入位置");
368
+ const { asset: s } = e;
369
+ if (!b(s.kind) || !Qe(s.url))
370
+ return p("MEDIA_INVALID", "媒体资源不可用");
371
+ const v = n.captureMediaTarget() || n.captureEndTarget();
372
+ if (!v) return p("INSERT_FAILED", "无法确定媒体插入位置");
368
373
  try {
369
- const E = a.insertMedia(u, e.name || "", f, !0);
370
- return E && ke(E, "api", u.kind) ? B() : d("INSERT_FAILED", "媒体插入失败");
374
+ const L = n.insertMedia(s, e.name || "", v, !0);
375
+ return L && Te(L, "api", s.kind) ? B() : p("INSERT_FAILED", "媒体插入失败");
371
376
  } finally {
372
- f.dispose();
377
+ v.dispose();
373
378
  }
374
379
  }
375
- const n = e.capabilityId;
376
- if (!g(n)) return d("CAPABILITY_DISABLED", "当前功能不可用");
380
+ const a = e.capabilityId;
381
+ if (!b(a)) return p("CAPABILITY_DISABLED", "当前功能不可用");
377
382
  const { option: l } = e;
378
- if (n === "originalReply")
379
- return M(() => a.insertOriginal(), "api", n) ? B() : d("INSERT_FAILED", "原话复述插入失败");
380
- if (n === "separator")
381
- return M(() => a.insertSeparator(), "api", n) ? B() : d("INSERT_FAILED", "分隔符插入失败");
382
- if (n === "smallPayment") {
383
- const u = Number((i = l == null ? void 0 : l.params) == null ? void 0 : i.amount);
384
- return !Number.isInteger(u) || u < 1 || u > 99 ? d("PAYMENT_INVALID", "小额打款金额必须为 1–99 整数元") : M(
385
- () => a.upsertToken("tool", "small_payment", "小额打款", {
386
- amount: String(u)
383
+ if (a === "originalReply")
384
+ return M(() => n.insertOriginal(), "api", a) ? B() : p("INSERT_FAILED", "原话复述插入失败");
385
+ if (a === "separator")
386
+ return M(() => n.insertSeparator(), "api", a) ? B() : p("INSERT_FAILED", "分隔符插入失败");
387
+ if (a === "smallPayment") {
388
+ const s = Number((r = l == null ? void 0 : l.params) == null ? void 0 : r.amount);
389
+ return !Number.isInteger(s) || s < 1 || s > 99 ? p("PAYMENT_INVALID", "小额打款金额必须为 1–99 整数元") : M(
390
+ () => n.upsertToken("tool", "small_payment", "小额打款", {
391
+ amount: String(s)
387
392
  }),
388
393
  "api",
389
- n
390
- ) ? B() : d("PAYMENT_INVALID", "小额打款金额必须为 1–99 整数元");
394
+ a
395
+ ) ? B() : p("PAYMENT_INVALID", "小额打款金额必须为 1–99 整数元");
391
396
  }
392
- if (!((r = l == null ? void 0 : l.label) != null && r.trim()) || !((x = l.id) != null && x.trim()))
393
- return d("OPTION_INVALID", "请选择有效的功能选项");
394
- if (n === "tableKnowledge" || n === "sizeChart") {
395
- const u = $e("tableKnowledge"), f = $e("agentSizeChart");
396
- if (n === "tableKnowledge") {
397
- if (f.size)
398
- return d("TABLE_SIZE_CONFLICT", "表格知识与尺码表不能同时引用");
399
- if (!u.has(l.label) && u.size >= 5)
400
- return d("TABLE_LIMIT", "最多引用 5 个表格知识");
397
+ if (!((u = l == null ? void 0 : l.label) != null && u.trim()) || !((K = l.id) != null && K.trim()))
398
+ return p("OPTION_INVALID", "请选择有效的功能选项");
399
+ if (a === "tableKnowledge" || a === "sizeChart") {
400
+ const s = qe("tableKnowledge"), v = qe("agentSizeChart");
401
+ if (a === "tableKnowledge") {
402
+ if (v.size)
403
+ return p("TABLE_SIZE_CONFLICT", "表格知识与尺码表不能同时引用");
404
+ if (!s.has(l.label) && s.size >= 5)
405
+ return p("TABLE_LIMIT", "最多引用 5 个表格知识");
401
406
  } else {
402
- if (u.size)
403
- return d("TABLE_SIZE_CONFLICT", "表格知识与尺码表不能同时引用");
404
- if (!f.has(l.label) && f.size >= 4)
405
- return d("SIZE_LIMIT", "最多引用 4 个尺码表");
407
+ if (s.size)
408
+ return p("TABLE_SIZE_CONFLICT", "表格知识与尺码表不能同时引用");
409
+ if (!v.has(l.label) && v.size >= 4)
410
+ return p("SIZE_LIMIT", "最多引用 4 个尺码表");
406
411
  }
407
412
  }
408
413
  return M(
409
- () => n === "sizeChart" ? a.insertInlineNode("agentSizeChart", {
414
+ () => a === "sizeChart" ? n.insertInlineNode("agentSizeChart", {
410
415
  name: l.label.trim()
411
- }) : a.insertToken(
412
- n,
416
+ }) : n.insertToken(
417
+ a,
413
418
  l.id,
414
419
  l.label,
415
420
  l.token,
416
421
  l.params
417
422
  ),
418
423
  "api",
419
- n
420
- ) ? B() : d("INSERT_FAILED", "功能内容插入失败");
424
+ a
425
+ ) ? B() : p("INSERT_FAILED", "功能内容插入失败");
421
426
  }
422
427
  async function Ue(e) {
423
- var n, l, s, i;
428
+ var a, l, o, r;
424
429
  if (!he(e)) return;
425
- A == null || A.abort(), h.value = e, ie.value = [];
430
+ h == null || h.abort(), A.value = e, oe.value = [];
426
431
  const t = new AbortController();
427
- A = t, R.add(t), Z.value++, re.value = !0, te();
428
- const a = o.promptKey;
432
+ h = t, F.add(t), Z.value++, re.value = !0, te();
433
+ const n = i.promptKey;
429
434
  try {
430
- const r = e === "variable" ? await ((l = (n = o.ports) == null ? void 0 : n.listVariables) == null ? void 0 : l.call(
431
- n,
432
- { search: W.value, limit: 50 },
433
- Ie(e, t)
434
- )) : await ((i = (s = o.ports) == null ? void 0 : s.listCapabilityOptions) == null ? void 0 : i.call(
435
- s,
436
- { capabilityId: e, search: W.value, limit: 50 },
437
- Ie(e, t)
435
+ const u = e === "variable" ? await ((l = (a = i.ports) == null ? void 0 : a.listVariables) == null ? void 0 : l.call(
436
+ a,
437
+ { search: J.value, limit: 50 },
438
+ Ee(e, t)
439
+ )) : await ((r = (o = i.ports) == null ? void 0 : o.listCapabilityOptions) == null ? void 0 : r.call(
440
+ o,
441
+ { capabilityId: e, search: J.value, limit: 50 },
442
+ Ee(e, t)
438
443
  ));
439
- if (t.signal.aborted || a !== o.promptKey || h.value !== e)
444
+ if (t.signal.aborted || n !== i.promptKey || A.value !== e)
440
445
  return;
441
- if (!(r != null && r.ok)) {
442
- m("OPTION_LOAD_FAILED", (r == null ? void 0 : r.error.message) || "选项加载失败");
446
+ if (!(u != null && u.ok)) {
447
+ f("OPTION_LOAD_FAILED", (u == null ? void 0 : u.error.message) || "选项加载失败");
443
448
  return;
444
449
  }
445
- ie.value = r.data.items;
450
+ oe.value = u.data.items;
446
451
  } catch {
447
- t.signal.aborted || m("OPTION_LOAD_FAILED", "选项加载失败");
452
+ t.signal.aborted || f("OPTION_LOAD_FAILED", "选项加载失败");
448
453
  } finally {
449
- A === t && (A = null, re.value = !1), R.delete(t) && (Z.value = Math.max(0, Z.value - 1), te());
454
+ h === t && (h = null, re.value = !1), F.delete(t) && (Z.value = Math.max(0, Z.value - 1), te());
450
455
  }
451
456
  }
452
- function st(e) {
453
- he(e) && (W.value = "", Ue(e));
457
+ function dt(e) {
458
+ he(e) && (J.value = "", Ue(e));
454
459
  }
455
- function ct(e) {
456
- const t = h.value;
457
- t && (A == null || A.abort(), h.value = null, de({
460
+ function pt(e) {
461
+ const t = A.value;
462
+ t && (h == null || h.abort(), A.value = null, fe({
458
463
  type: "capability",
459
464
  capabilityId: t,
460
465
  option: {
@@ -464,454 +469,475 @@ const Ft = {
464
469
  }
465
470
  }));
466
471
  }
467
- function V() {
468
- w.value = null, P.value = null, S == null || S.dispose(), S = null;
472
+ function z() {
473
+ _.value = null, P.value = null, se.value = !1, w == null || w.dispose(), w = null;
469
474
  }
470
- $(() => o.mediaSources, V, { deep: !0 });
471
- function pt(e, t) {
472
- var s, i, r;
473
- const a = Ce(o.mediaSources, e).filter(
474
- (x) => {
475
- var u;
476
- return x === "online" || !!((u = o.ports) != null && u.uploadMedia);
475
+ $(() => i.mediaSources, z, { deep: !0 });
476
+ function ft(e, t) {
477
+ var o, r, u;
478
+ const n = be(i.mediaSources, e).filter(
479
+ (K) => {
480
+ var s;
481
+ return K !== "local" || !!((s = i.ports) != null && s.uploadMedia);
477
482
  }
478
483
  );
479
- if (!g(e) || !a.length) return;
480
- if (et(e), S = ((s = c.value) == null ? void 0 : s.captureMediaTarget()) || ((i = c.value) == null ? void 0 : i.captureEndTarget()) || null, !S) {
481
- m("EDITOR_UNAVAILABLE", "无法确定媒体插入位置");
484
+ if (!b(e) || !n.length) return;
485
+ if (at(e), w = ((o = c.value) == null ? void 0 : o.captureMediaTarget()) || ((r = c.value) == null ? void 0 : r.captureEndTarget()) || null, !w) {
486
+ f("EDITOR_UNAVAILABLE", "无法确定媒体插入位置");
482
487
  return;
483
488
  }
484
- if (a.length === 1) {
485
- qe(e, a[0]);
489
+ if (n.length === 1) {
490
+ Ye(e, n[0]);
486
491
  return;
487
492
  }
488
- const n = t.currentTarget.getBoundingClientRect(), l = (r = oe.value) == null ? void 0 : r.getBoundingClientRect();
489
- Ne.value = {
493
+ const a = t.currentTarget.getBoundingClientRect(), l = (u = ie.value) == null ? void 0 : u.getBoundingClientRect();
494
+ Pe.value = {
490
495
  left: `${Math.max(
491
496
  8,
492
497
  Math.min(
493
- n.left - ((l == null ? void 0 : l.left) || 0),
498
+ a.left - ((l == null ? void 0 : l.left) || 0),
494
499
  ((l == null ? void 0 : l.width) || 240) - 116
495
500
  )
496
501
  )}px`,
497
- top: `${n.bottom - ((l == null ? void 0 : l.top) || 0) + 4}px`
498
- }, w.value = e;
502
+ top: `${a.bottom - ((l == null ? void 0 : l.top) || 0) + 4}px`
503
+ }, _.value = e;
499
504
  }
500
- function qe(e, t) {
501
- if (w.value = null, t === "online") {
502
- P.value = e;
505
+ function Ye(e, t) {
506
+ if (_.value = null, t === "online" || t === "qianniu") {
507
+ se.value = t === "qianniu", P.value = e;
503
508
  return;
504
509
  }
505
510
  ue.value && (ue.value.accept = e === "image" ? "image/png,image/jpeg" : "video/mp4", ue.value.click());
506
511
  }
507
- function dt(e) {
508
- const t = w.value;
509
- t && qe(t, e);
512
+ function vt(e) {
513
+ const t = _.value;
514
+ t && Ye(t, e);
510
515
  }
511
- function ft(e) {
512
- var n;
513
- const t = P.value, a = S;
514
- if (S = null, P.value = null, !(!t || !a))
516
+ function He(e, t) {
517
+ var l;
518
+ const n = P.value, a = w;
519
+ if (w = null, P.value = null, se.value = !1, !(!n || !a))
515
520
  try {
516
- if (!g(t) || a.status() !== "ready") {
517
- m("INSERT_TARGET_LOST", "媒体插入位置已失效");
521
+ if (!b(n) || a.status() !== "ready") {
522
+ f("INSERT_TARGET_LOST", "媒体插入位置已失效");
518
523
  return;
519
524
  }
520
- const l = (n = c.value) == null ? void 0 : n.insertMedia({ kind: t, url: e }, "", a, !0);
521
- (!l || !ke(l, "api", t)) && m("INSERT_FAILED", "在线媒体插入失败");
525
+ const o = (l = c.value) == null ? void 0 : l.insertMedia(
526
+ {
527
+ kind: n,
528
+ url: e,
529
+ ...t ? { id: t, sourceType: "qianniuVideo" } : {}
530
+ },
531
+ "",
532
+ a,
533
+ !0
534
+ );
535
+ (!o || !Te(o, "api", n)) && f("INSERT_FAILED", "在线媒体插入失败");
522
536
  } finally {
523
537
  a.dispose();
524
538
  }
525
539
  }
526
- function vt() {
527
- if (!g("smallPayment")) return;
528
- X.value = null;
540
+ function mt() {
541
+ if (!b("smallPayment")) return;
542
+ W.value = null;
529
543
  const e = (t) => {
530
- var a, n, l;
531
- t.type === "businessToken" && ((a = t.attrs) == null ? void 0 : a.kind) === "tool" && t.attrs.key === "small_payment" && (X.value = Number((n = t.attrs.params) == null ? void 0 : n.amount)), (l = t.content) == null || l.forEach(e);
544
+ var n, a, l;
545
+ t.type === "businessToken" && ((n = t.attrs) == null ? void 0 : n.kind) === "tool" && t.attrs.key === "small_payment" && (W.value = Number((a = t.attrs.params) == null ? void 0 : a.amount)), (l = t.content) == null || l.forEach(e);
532
546
  };
533
- e(C.value.doc), k.value = !0, h.value = null;
547
+ e(C.value.doc), I.value = !0, A.value = null;
534
548
  }
535
- async function mt() {
536
- (await de({
549
+ async function gt() {
550
+ (await fe({
537
551
  type: "capability",
538
552
  capabilityId: "smallPayment",
539
553
  option: {
540
554
  id: "small_payment",
541
555
  label: "小额打款",
542
- params: { amount: X.value }
556
+ params: { amount: W.value }
543
557
  }
544
- })).ok && (k.value = !1);
558
+ })).ok && (I.value = !1);
545
559
  }
546
560
  function Me(e, t) {
547
- var s;
548
- if (!e.length || e.length > Ge) {
549
- t == null || t.dispose(), m("INVALID_MEDIA", `一次最多添加 ${Ge} 个媒体文件`);
561
+ var o;
562
+ if (!e.length || e.length > je) {
563
+ t == null || t.dispose(), f("INVALID_MEDIA", `一次最多添加 ${je} 个媒体文件`);
550
564
  return;
551
565
  }
552
- const a = e.map((i) => {
553
- var r;
566
+ const n = e.map((r) => {
567
+ var u;
554
568
  return {
555
- file: i,
556
- kind: (r = Dt(i)) == null ? void 0 : r.kind
569
+ file: r,
570
+ kind: (u = Nt(r)) == null ? void 0 : u.kind
557
571
  };
558
572
  });
559
- if (a.some(
560
- ({ file: i, kind: r }) => !r || !g(r) || i.size > Nt[r]
573
+ if (n.some(
574
+ ({ file: r, kind: u }) => !u || !b(u) || r.size > Pt[u]
561
575
  )) {
562
- t == null || t.dispose(), m("INVALID_MEDIA", "仅支持符合大小限制的 JPG、PNG、MP4 文件");
576
+ t == null || t.dispose(), f("INVALID_MEDIA", "仅支持符合大小限制的 JPG、PNG、MP4 文件");
563
577
  return;
564
578
  }
565
- if (!((s = o.ports) != null && s.uploadMedia) || !t || !c.value) {
566
- t == null || t.dispose(), m("UPLOAD_UNAVAILABLE", "上传功能不可用");
579
+ if (!((o = i.ports) != null && o.uploadMedia) || !t || !c.value) {
580
+ t == null || t.dispose(), f("UPLOAD_UNAVAILABLE", "上传功能不可用");
567
581
  return;
568
582
  }
569
- const n = a, l = M(
583
+ const a = n, l = M(
570
584
  () => {
571
- var i;
572
- return ((i = c.value) == null ? void 0 : i.insertPendingMediaBatch(n, t)) || null;
585
+ var r;
586
+ return ((r = c.value) == null ? void 0 : r.insertPendingMediaBatch(a, t)) || null;
573
587
  },
574
588
  "plugin",
575
- n[0].kind
589
+ a[0].kind
576
590
  );
577
- if (t.dispose(), !l || l.length !== n.length) {
578
- m("INSERT_FAILED", "无法插入待上传的媒体");
591
+ if (t.dispose(), !l || l.length !== a.length) {
592
+ f("INSERT_FAILED", "无法插入待上传的媒体");
579
593
  return;
580
594
  }
581
- l.forEach((i, r) => {
582
- se.set(i, n[r].file), Ye(i, n[r].file, n[r].kind);
595
+ l.forEach((r, u) => {
596
+ ce.set(r, a[u].file), Ge(r, a[u].file, a[u].kind);
583
597
  });
584
598
  }
585
- async function Ye(e, t, a) {
586
- var i, r, x;
587
- const n = (i = o.ports) == null ? void 0 : i.uploadMedia;
588
- if (!n) return;
599
+ async function Ge(e, t, n) {
600
+ var r, u, K;
601
+ const a = (r = i.ports) == null ? void 0 : r.uploadMedia;
602
+ if (!a) return;
589
603
  const l = new AbortController();
590
- R.add(l), G.value++, te();
591
- const s = o.promptKey;
604
+ F.add(l), X.value++, te();
605
+ const o = i.promptKey;
592
606
  try {
593
- const u = await n({ file: t, kind: a }, Ie(a, l));
594
- if (l.signal.aborted || s !== o.promptKey) return;
595
- const f = (r = c.value) == null ? void 0 : r.getMediaState(e);
596
- if (!f || f.status !== "uploading") return;
597
- if (!u.ok || !Ze(u.data.url) || u.data.kind !== a) {
598
- m(
607
+ const s = await a({ file: t, kind: n }, Ee(n, l));
608
+ if (l.signal.aborted || o !== i.promptKey) return;
609
+ const v = (u = c.value) == null ? void 0 : u.getMediaState(e);
610
+ if (!v || v.status !== "uploading") return;
611
+ if (!s.ok || !Qe(s.data.url) || s.data.kind !== n) {
612
+ f(
599
613
  "UPLOAD_FAILED",
600
- u.ok ? "上传资源无效" : u.error.message
614
+ s.ok ? "上传资源无效" : s.error.message
601
615
  ), M(
602
616
  () => {
603
- var E;
604
- return (E = c.value) == null ? void 0 : E.failMedia(e, "上传失败", f.nodeVersion);
617
+ var L;
618
+ return (L = c.value) == null ? void 0 : L.failMedia(e, "上传失败", v.nodeVersion);
605
619
  },
606
620
  "plugin",
607
- a
621
+ n
608
622
  );
609
623
  return;
610
624
  }
611
- if (!g(a)) {
625
+ if (!b(n)) {
612
626
  M(
613
627
  () => {
614
- var E;
615
- return (E = c.value) == null ? void 0 : E.failMedia(e, "当前无媒体权限", f.nodeVersion);
628
+ var L;
629
+ return (L = c.value) == null ? void 0 : L.failMedia(e, "当前无媒体权限", v.nodeVersion);
616
630
  },
617
631
  "plugin",
618
- a
632
+ n
619
633
  );
620
634
  return;
621
635
  }
622
636
  M(
623
637
  () => {
624
- var E;
625
- return ((E = c.value) == null ? void 0 : E.completeMedia(e, f.nodeVersion, u.data)) || !1;
638
+ var L;
639
+ return ((L = c.value) == null ? void 0 : L.completeMedia(e, v.nodeVersion, s.data)) || !1;
626
640
  },
627
641
  "plugin",
628
- a
629
- ) && se.delete(e);
642
+ n
643
+ ) && ce.delete(e);
630
644
  } catch {
631
645
  if (!l.signal.aborted) {
632
- const u = (x = c.value) == null ? void 0 : x.getMediaState(e);
633
- (u == null ? void 0 : u.status) === "uploading" && M(
646
+ const s = (K = c.value) == null ? void 0 : K.getMediaState(e);
647
+ (s == null ? void 0 : s.status) === "uploading" && M(
634
648
  () => {
635
- var f;
636
- return (f = c.value) == null ? void 0 : f.failMedia(e, "上传失败", u.nodeVersion);
649
+ var v;
650
+ return (v = c.value) == null ? void 0 : v.failMedia(e, "上传失败", s.nodeVersion);
637
651
  },
638
652
  "plugin",
639
- a
640
- ), m("UPLOAD_FAILED", "媒体上传失败");
653
+ n
654
+ ), f("UPLOAD_FAILED", "媒体上传失败");
641
655
  }
642
656
  } finally {
643
- R.delete(l) && (G.value = Math.max(0, G.value - 1), te());
657
+ F.delete(l) && (X.value = Math.max(0, X.value - 1), te());
644
658
  }
645
659
  }
646
- function gt(e) {
647
- var n;
648
- const t = se.get(e), a = (n = c.value) == null ? void 0 : n.getMediaState(e);
649
- !t || !a || a.status !== "error" || !g(a.kind) || M(
660
+ function bt(e) {
661
+ var a;
662
+ const t = ce.get(e), n = (a = c.value) == null ? void 0 : a.getMediaState(e);
663
+ !t || !n || n.status !== "error" || !b(n.kind) || M(
650
664
  () => {
651
665
  var l;
652
- return (l = c.value) == null ? void 0 : l.retryMedia(e, a.nodeVersion);
666
+ return (l = c.value) == null ? void 0 : l.retryMedia(e, n.nodeVersion);
653
667
  },
654
668
  "plugin",
655
- a.kind
656
- ) && Ye(e, t, a.kind);
669
+ n.kind
670
+ ) && Ge(e, t, n.kind);
657
671
  }
658
- async function bt(e) {
659
- var n, l, s;
672
+ async function yt(e) {
673
+ var a, l, o;
660
674
  const t = Array.from(e.target.files || []);
661
675
  e.target.value = "";
662
- const a = S;
663
- if (S = null, t.length) {
664
- const i = o.promptKey;
665
- if (!await ((n = c.value) == null ? void 0 : n.whenReady()) || i !== o.promptKey) {
666
- a == null || a.dispose();
676
+ const n = w;
677
+ if (w = null, t.length) {
678
+ const r = i.promptKey;
679
+ if (!await ((a = c.value) == null ? void 0 : a.whenReady()) || r !== i.promptKey) {
680
+ n == null || n.dispose();
667
681
  return;
668
682
  }
669
- const r = a || ((l = c.value) == null ? void 0 : l.captureMediaTarget()) || ((s = c.value) == null ? void 0 : s.captureEndTarget());
670
- Me(t, r || null);
671
- } else a == null || a.dispose();
672
- }
673
- function yt(e) {
674
- var n, l, s, i;
675
- const t = Array.from(((n = e.clipboardData) == null ? void 0 : n.files) || []);
676
- if (!t.length || z.value) return;
683
+ const u = n || ((l = c.value) == null ? void 0 : l.captureMediaTarget()) || ((o = c.value) == null ? void 0 : o.captureEndTarget());
684
+ Me(t, u || null);
685
+ } else n == null || n.dispose();
686
+ }
687
+ function kt(e) {
688
+ var a, l, o, r;
689
+ const t = Array.from(((a = e.clipboardData) == null ? void 0 : a.files) || []);
690
+ if (!t.length || O.value) return;
677
691
  e.preventDefault();
678
- const a = ((l = c.value) == null ? void 0 : l.pasteClipboardContent(e)) || ((s = c.value) == null ? void 0 : s.captureMediaTarget()) || ((i = c.value) == null ? void 0 : i.captureEndTarget());
679
- a && Me(t, a);
692
+ const n = ((l = c.value) == null ? void 0 : l.pasteClipboardContent(e)) || ((o = c.value) == null ? void 0 : o.captureMediaTarget()) || ((r = c.value) == null ? void 0 : r.captureEndTarget());
693
+ n && Me(t, n);
680
694
  }
681
- function ht(e) {
682
- var n, l, s;
683
- const t = Array.from(((n = e.dataTransfer) == null ? void 0 : n.files) || []);
684
- if (!t.length || z.value) return;
695
+ function At(e) {
696
+ var a, l, o;
697
+ const t = Array.from(((a = e.dataTransfer) == null ? void 0 : a.files) || []);
698
+ if (!t.length || O.value) return;
685
699
  e.preventDefault();
686
- const a = ((l = c.value) == null ? void 0 : l.captureMediaTargetAt(e.clientX, e.clientY)) || ((s = c.value) == null ? void 0 : s.captureEndTarget());
687
- a && Me(t, a);
700
+ const n = ((l = c.value) == null ? void 0 : l.captureMediaTargetAt(e.clientX, e.clientY)) || ((o = c.value) == null ? void 0 : o.captureEndTarget());
701
+ n && Me(t, n);
688
702
  }
689
- function At() {
690
- return xt(C.value, o.maxLength);
703
+ function ht() {
704
+ return Rt(C.value, i.maxLength);
691
705
  }
692
- return _({
693
- insertContent: de,
706
+ return g({
707
+ insertContent: fe,
708
+ validateTagValidity: async () => {
709
+ var e;
710
+ return ((e = c.value) == null ? void 0 : e.validateTagValidity()) || { status: "unavailable", items: [] };
711
+ },
694
712
  focus: () => {
695
713
  var e;
696
714
  return (e = c.value) == null ? void 0 : e.focus();
697
715
  },
698
- validate: At
699
- }), (e, t) => (v(), b("section", {
700
- ref_key: "root",
701
- ref: oe,
702
- class: Tt(["fkp-rich-text fkp-agent-prompt-editor", {
703
- "has-open-menu": !!h.value || k.value || I.value || !!w.value
704
- }]),
705
- "aria-label": "Agent 提示词编辑器",
706
- onKeydown: t[10] || (t[10] = Et(ae((a) => {
707
- F(), k.value = !1, I.value = !1, V();
708
- }, ["stop"]), ["esc"]))
709
- }, [
710
- y("div", {
711
- ref_key: "toolbar",
712
- ref: ge,
713
- class: "fkp-scene-toolbar fkp-agent-prompt-toolbar",
714
- role: "toolbar",
715
- "aria-label": "提示词工具栏"
716
+ validate: ht
717
+ }), (e, t) => {
718
+ var n;
719
+ return m(), y("section", {
720
+ ref_key: "root",
721
+ ref: ie,
722
+ class: Lt(["fkp-rich-text fkp-agent-prompt-editor", {
723
+ "has-open-menu": !!A.value || I.value || E.value || !!_.value
724
+ }]),
725
+ "aria-label": "Agent 提示词编辑器",
726
+ onKeydown: t[12] || (t[12] = Mt(ae((a) => {
727
+ x(), I.value = !1, E.value = !1, z();
728
+ }, ["stop"]), ["esc"]))
716
729
  }, [
717
- y("div", {
718
- ref_key: "toolbarLeft",
719
- ref: H,
720
- class: "fkp-toolbar-groups fkp-agent-prompt-toolbar-left"
730
+ k("div", {
731
+ ref_key: "toolbar",
732
+ ref: ye,
733
+ class: "fkp-scene-toolbar fkp-agent-prompt-toolbar",
734
+ role: "toolbar",
735
+ "aria-label": "提示词工具栏"
721
736
  }, [
722
- (v(!0), b(fe, null, Ee(ze.value, (a, n) => (v(), b(fe, {
723
- key: a.id
737
+ k("div", {
738
+ ref_key: "toolbarLeft",
739
+ ref: H,
740
+ class: "fkp-toolbar-groups fkp-agent-prompt-toolbar-left"
724
741
  }, [
725
- n > 0 && a.group !== ze.value[n - 1].group ? (v(), b("span", Ft)) : U("", !0),
726
- K(T(Ct), {
727
- trigger: "hover",
728
- position: "bottom",
729
- content: a.label,
730
- "popup-visible": T(Qe) === a.id || w.value === a.id || P.value === a.id ? !1 : void 0
731
- }, {
732
- default: ve(() => [
733
- K(T(Le), {
734
- class: "fkp-tool-button fkp-agent-prompt-tool",
735
- type: "text",
736
- "data-fkp-menu-trigger": a.id,
737
- "aria-label": a.label,
738
- disabled: !Ae(a.id),
739
- onMouseenter: (l) => T(tt)(
740
- a.id,
741
- !!w.value || !!P.value
742
- ),
743
- onMousedown: t[0] || (t[0] = ae(() => {
744
- }, ["prevent"])),
745
- onClick: (l) => xe(a.id, l)
746
- }, {
747
- default: ve(() => [
748
- K(T(_e), {
749
- name: a.icon,
750
- size: 16
751
- }, null, 8, ["name"])
752
- ]),
753
- _: 2
754
- }, 1032, ["data-fkp-menu-trigger", "aria-label", "disabled", "onMouseenter", "onClick"])
755
- ]),
756
- _: 2
757
- }, 1032, ["content", "popup-visible"])
758
- ], 64))), 128))
759
- ], 512),
760
- ye.value.length ? (v(), b("div", Bt, [
761
- K(T(Le), {
762
- class: "fkp-more-button",
763
- type: "text",
764
- "aria-label": "更多操作",
765
- "aria-haspopup": "menu",
766
- "aria-expanded": I.value,
767
- onMousedown: t[1] || (t[1] = ae(() => {
768
- }, ["prevent"])),
769
- onClick: t[2] || (t[2] = (a) => I.value = !I.value)
770
- }, {
771
- default: ve(() => [
772
- K(T(_e), {
773
- name: "more",
774
- size: 16
775
- })
776
- ]),
777
- _: 1
778
- }, 8, ["aria-expanded"]),
779
- I.value ? (v(), b("div", $t, [
780
- (v(!0), b(fe, null, Ee(ye.value, (a) => (v(), He(T(Le), {
781
- key: a.id,
782
- class: "fkp-agent-prompt-more-item",
742
+ (m(!0), y(ve, null, Le(ze.value, (a, l) => (m(), y(ve, {
743
+ key: a.id
744
+ }, [
745
+ l > 0 && a.group !== ze.value[l - 1].group ? (m(), y("span", Bt)) : q("", !0),
746
+ R(T(_t), {
747
+ trigger: "hover",
748
+ position: "bottom",
749
+ content: a.label,
750
+ "popup-visible": T(tt) === a.id || a.id === "video" && T(be)(e.mediaSources, "video").includes("qianniu") || _.value === a.id || P.value === a.id ? !1 : void 0
751
+ }, {
752
+ default: me(() => [
753
+ R(T(Ce), {
754
+ class: "fkp-tool-button fkp-agent-prompt-tool",
755
+ type: "text",
756
+ "data-fkp-menu-trigger": a.id,
757
+ "aria-label": a.label,
758
+ disabled: !Ie(a.id),
759
+ onMouseenter: (o) => T(nt)(
760
+ a.id,
761
+ !!_.value || !!P.value
762
+ ),
763
+ onMousedown: t[0] || (t[0] = ae(() => {
764
+ }, ["prevent"])),
765
+ onClick: (o) => Re(a.id, o)
766
+ }, {
767
+ default: me(() => [
768
+ R(T(_e), {
769
+ name: a.icon,
770
+ size: 16
771
+ }, null, 8, ["name"])
772
+ ]),
773
+ _: 2
774
+ }, 1032, ["data-fkp-menu-trigger", "aria-label", "disabled", "onMouseenter", "onClick"])
775
+ ]),
776
+ _: 2
777
+ }, 1032, ["content", "popup-visible"])
778
+ ], 64))), 128))
779
+ ], 512),
780
+ Ae.value.length ? (m(), y("div", $t, [
781
+ R(T(Ce), {
782
+ class: "fkp-more-button",
783
783
  type: "text",
784
- role: "menuitem",
785
- "data-fkp-menu-trigger": a.id,
786
- disabled: !Ae(a.id),
787
- onMousedown: t[3] || (t[3] = ae(() => {
784
+ "aria-label": "更多操作",
785
+ "aria-haspopup": "menu",
786
+ "aria-expanded": E.value,
787
+ onMousedown: t[1] || (t[1] = ae(() => {
788
788
  }, ["prevent"])),
789
- onClick: (n) => xe(a.id, n)
789
+ onClick: t[2] || (t[2] = (a) => E.value = !E.value)
790
790
  }, {
791
- default: ve(() => [
792
- K(T(_e), {
793
- name: a.icon,
791
+ default: me(() => [
792
+ R(T(_e), {
793
+ name: "more",
794
794
  size: 16
795
- }, null, 8, ["name"]),
796
- Te(q(a.label), 1)
795
+ })
797
796
  ]),
798
- _: 2
799
- }, 1032, ["data-fkp-menu-trigger", "disabled", "onClick"]))), 128))
800
- ])) : U("", !0)
801
- ])) : U("", !0),
802
- y("div", Ut, [
803
- Lt(e.$slots, "toolbar-action")
804
- ]),
805
- y("input", {
806
- ref_key: "fileInput",
807
- ref: ue,
808
- type: "file",
809
- hidden: "",
810
- onChange: bt
811
- }, null, 544)
812
- ], 512),
813
- K(St, {
814
- "menu-kind": w.value,
815
- "dialog-kind": P.value,
816
- "menu-style": Ne.value,
817
- sources: w.value ? T(Ce)(e.mediaSources, w.value).filter(
818
- (a) => {
819
- var n;
820
- return a === "online" || !!((n = e.ports) != null && n.uploadMedia);
821
- }
822
- ) : [],
823
- onChoose: dt,
824
- onSubmit: ft,
825
- onClose: V
826
- }, null, 8, ["menu-kind", "dialog-kind", "menu-style", "sources"]),
827
- h.value ? (v(), b("div", {
828
- key: 0,
829
- class: "fkp-agent-prompt-options",
830
- style: _t({ left: `${De.value}px` })
831
- }, [
832
- y("label", null, [
833
- Te(" 搜索" + q(Ve.value) + " ", 1),
834
- Je(y("input", {
835
- "onUpdate:modelValue": t[4] || (t[4] = (a) => W.value = a),
836
- type: "search",
837
- "aria-label": `搜索${Ve.value}`,
838
- onInput: t[5] || (t[5] = (a) => Ue(h.value))
839
- }, null, 40, qt), [
840
- [We, W.value]
841
- ])
842
- ]),
843
- y("button", {
844
- type: "button",
845
- "aria-label": "关闭选项",
846
- onClick: F
847
- }, "×"),
848
- re.value ? (v(), b("p", Yt, "加载中…")) : (v(), b("ul", Ht, [
849
- (v(!0), b(fe, null, Ee(ie.value, (a) => (v(), b("li", {
850
- key: a.id
851
- }, [
852
- y("button", {
853
- type: "button",
854
- disabled: a.disabled,
855
- onMousedown: t[6] || (t[6] = ae(() => {
856
- }, ["prevent"])),
857
- onClick: (n) => ct(a)
858
- }, q(a.label), 41, Jt)
859
- ]))), 128))
860
- ]))
861
- ], 4)) : U("", !0),
862
- k.value ? (v(), b("div", Wt, [
863
- y("label", null, [
864
- t[11] || (t[11] = Te(" 小额打款金额(元) ")),
865
- Je(y("input", {
866
- "onUpdate:modelValue": t[7] || (t[7] = (a) => X.value = a),
867
- type: "number",
868
- min: "1",
869
- max: "99",
870
- step: "1"
871
- }, null, 512), [
872
- [
873
- We,
874
- X.value,
875
- void 0,
876
- { number: !0 }
877
- ]
878
- ])
879
- ]),
880
- y("button", {
881
- type: "button",
882
- onClick: t[8] || (t[8] = (a) => k.value = !1)
883
- }, "取消"),
884
- y("button", {
885
- type: "button",
886
- onClick: mt
887
- }, "确认")
888
- ])) : U("", !0),
889
- O.value ? (v(), b("p", Xt, "提示词文档无效:" + q(O.value), 1)) : U("", !0),
890
- (v(), He(Pt, {
891
- key: e.promptKey,
892
- ref_key: "area",
893
- ref: c,
894
- "model-value": C.value.doc,
895
- editable: !z.value,
896
- placeholder: e.placeholder,
897
- "schema-plan": ot,
898
- "paste-capabilities": it.value,
899
- "document-adapter": T(lt),
900
- "onUpdate:modelValue": ut,
901
- onLoadError: t[9] || (t[9] = (a) => m("EDITOR_LOAD_FAILED", a)),
902
- onRetryMedia: gt,
903
- onPasteCapture: yt,
904
- onDropCapture: ht
905
- }, null, 8, ["model-value", "editable", "placeholder", "paste-capabilities", "document-adapter"])),
906
- y("div", Gt, [
907
- y("span", null, q(rt.value) + "/" + q(e.maxLength), 1)
908
- ])
909
- ], 34));
797
+ _: 1
798
+ }, 8, ["aria-expanded"]),
799
+ E.value ? (m(), y("div", qt, [
800
+ (m(!0), y(ve, null, Le(Ae.value, (a) => (m(), Je(T(Ce), {
801
+ key: a.id,
802
+ class: "fkp-agent-prompt-more-item",
803
+ type: "text",
804
+ role: "menuitem",
805
+ "data-fkp-menu-trigger": a.id,
806
+ disabled: !Ie(a.id),
807
+ onMousedown: t[3] || (t[3] = ae(() => {
808
+ }, ["prevent"])),
809
+ onClick: (l) => Re(a.id, l)
810
+ }, {
811
+ default: me(() => [
812
+ R(T(_e), {
813
+ name: a.icon,
814
+ size: 16
815
+ }, null, 8, ["name"]),
816
+ Se(U(a.label), 1)
817
+ ]),
818
+ _: 2
819
+ }, 1032, ["data-fkp-menu-trigger", "disabled", "onClick"]))), 128))
820
+ ])) : q("", !0)
821
+ ])) : q("", !0),
822
+ k("div", Ut, [
823
+ St(e.$slots, "toolbar-action")
824
+ ]),
825
+ k("input", {
826
+ ref_key: "fileInput",
827
+ ref: ue,
828
+ type: "file",
829
+ hidden: "",
830
+ onChange: yt
831
+ }, null, 544)
832
+ ], 512),
833
+ R(Dt, {
834
+ "menu-kind": _.value,
835
+ "dialog-kind": P.value,
836
+ "qianniu-dialog": se.value,
837
+ "menu-style": Pe.value,
838
+ sources: _.value ? T(be)(e.mediaSources, _.value).filter(
839
+ (a) => {
840
+ var l;
841
+ return a !== "local" || !!((l = e.ports) != null && l.uploadMedia);
842
+ }
843
+ ) : [],
844
+ onChoose: vt,
845
+ onSubmit: He,
846
+ onSubmitQianniu: t[4] || (t[4] = ({ id: a, url: l }) => He(l, a)),
847
+ onClose: z
848
+ }, null, 8, ["menu-kind", "dialog-kind", "qianniu-dialog", "menu-style", "sources"]),
849
+ A.value ? (m(), y("div", {
850
+ key: 0,
851
+ class: "fkp-agent-prompt-options",
852
+ style: Ct({ left: `${Ne.value}px` })
853
+ }, [
854
+ k("label", null, [
855
+ Se(" 搜索" + U(Ke.value) + " ", 1),
856
+ We(k("input", {
857
+ "onUpdate:modelValue": t[5] || (t[5] = (a) => J.value = a),
858
+ type: "search",
859
+ "aria-label": `搜索${Ke.value}`,
860
+ onInput: t[6] || (t[6] = (a) => Ue(A.value))
861
+ }, null, 40, Yt), [
862
+ [Xe, J.value]
863
+ ])
864
+ ]),
865
+ k("button", {
866
+ type: "button",
867
+ "aria-label": "关闭选项",
868
+ onClick: x
869
+ }, "×"),
870
+ re.value ? (m(), y("p", Ht, "加载中…")) : (m(), y("ul", Gt, [
871
+ (m(!0), y(ve, null, Le(oe.value, (a) => (m(), y("li", {
872
+ key: a.id
873
+ }, [
874
+ k("button", {
875
+ type: "button",
876
+ disabled: a.disabled,
877
+ onMousedown: t[7] || (t[7] = ae(() => {
878
+ }, ["prevent"])),
879
+ onClick: (l) => pt(a)
880
+ }, U(a.label), 41, Jt)
881
+ ]))), 128))
882
+ ]))
883
+ ], 4)) : q("", !0),
884
+ I.value ? (m(), y("div", Wt, [
885
+ k("label", null, [
886
+ t[13] || (t[13] = Se(" 小额打款金额(元) ")),
887
+ We(k("input", {
888
+ "onUpdate:modelValue": t[8] || (t[8] = (a) => W.value = a),
889
+ type: "number",
890
+ min: "1",
891
+ max: "99",
892
+ step: "1"
893
+ }, null, 512), [
894
+ [
895
+ Xe,
896
+ W.value,
897
+ void 0,
898
+ { number: !0 }
899
+ ]
900
+ ])
901
+ ]),
902
+ k("button", {
903
+ type: "button",
904
+ onClick: t[9] || (t[9] = (a) => I.value = !1)
905
+ }, "取消"),
906
+ k("button", {
907
+ type: "button",
908
+ onClick: gt
909
+ }, "确认")
910
+ ])) : q("", !0),
911
+ V.value ? (m(), y("p", Xt, "提示词文档无效:" + U(V.value), 1)) : q("", !0),
912
+ (m(), Je(Vt, {
913
+ key: e.promptKey,
914
+ ref_key: "area",
915
+ ref: c,
916
+ "model-value": C.value.doc,
917
+ "tag-validity-port": (n = e.ports) == null ? void 0 : n.validateTags,
918
+ "tag-validity-key": e.promptKey,
919
+ editable: !O.value,
920
+ placeholder: e.placeholder,
921
+ "schema-plan": rt,
922
+ "paste-capabilities": ut.value,
923
+ "document-adapter": T(ot),
924
+ "onUpdate:modelValue": ct,
925
+ onLoadError: t[10] || (t[10] = (a) => f("EDITOR_LOAD_FAILED", a)),
926
+ onTagValidityError: t[11] || (t[11] = (a) => f("TAG_VALIDITY_FAILED", a)),
927
+ onRetryMedia: bt,
928
+ onPasteCapture: kt,
929
+ onDropCapture: At
930
+ }, null, 8, ["model-value", "tag-validity-port", "tag-validity-key", "editable", "placeholder", "paste-capabilities", "document-adapter"])),
931
+ k("div", Zt, [
932
+ k("span", null, U(st.value) + "/" + U(e.maxLength), 1)
933
+ ])
934
+ ], 34);
935
+ };
910
936
  }
911
937
  });
912
938
  export {
913
939
  oa as FkpAgentPromptEditor,
914
940
  oa as default,
915
- Vt as emptyAgentPrompt,
916
- xt as validateAgentPrompt
941
+ Kt as emptyAgentPrompt,
942
+ Rt as validateAgentPrompt
917
943
  };