@freecallai/pro 0.0.2 → 0.0.4

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 (116) hide show
  1. package/README.md +23 -17
  2. package/dist/FkpKnowledgeTypePicker.vue_vue_type_script_setup_true_lang-DYwu7oQs.js +187 -0
  3. package/dist/FkpRichText.vue_vue_type_script_setup_true_lang-BowbZoTQ.js +4885 -0
  4. package/dist/KnowledgeArea-BH-_uF6R.js +1438 -0
  5. package/dist/{ToolForm-BSJxTJ7U.js → ToolForm-C6XW31Y7.js} +1 -1
  6. package/dist/{choice-DDg5gNtS.js → choice-C1SxozNA.js} +1 -1
  7. package/dist/edition-info/index.js +4 -0
  8. package/dist/filters/index.js +7 -0
  9. package/dist/guard-CXpVx8UR.js +1168 -0
  10. package/dist/{index-D8bcFtWR.js → index-9NM1SHoR.js} +1 -1
  11. package/dist/{index-BnFTr8u9.js → index-B8jg37Wj.js} +10 -10
  12. package/dist/index-BqXNMfLG.js +57 -0
  13. package/dist/index-CM0MN2DT.js +6 -0
  14. package/dist/index-CS2xQQ8W.js +168 -0
  15. package/dist/index-CZc2Gyjb.js +6 -0
  16. package/dist/index-Cy4DqT8R.js +10 -0
  17. package/dist/index-D0bJAQSN.js +327 -0
  18. package/dist/index-DAZ1ulyA.js +5 -0
  19. package/dist/index-DCmHHi07.js +71 -0
  20. package/dist/{index-CJlAseSN.js → index-DnaEbb6l.js} +1 -1
  21. package/dist/{index-DSgEWJGP.js → index-Dy2Gy3bL.js} +1 -1
  22. package/dist/index-F7lDP1lI.js +5 -0
  23. package/dist/{index-CG2j9Znw.js → index-UjI4WA5F.js} +1 -1
  24. package/dist/index-bSNw0XAf.js +6 -0
  25. package/dist/index-lNhA3N9x.js +379 -0
  26. package/dist/index.js +36 -11
  27. package/dist/inline-Zj7Hqg-_.js +19 -0
  28. package/dist/knowledge-DaTnF2IW.js +6 -0
  29. package/dist/{knowledge-DnYGicjn.js → knowledge-DzwXQR-q.js} +1 -1
  30. package/dist/knowledge-type-picker/index.js +5 -0
  31. package/dist/media-extensions-wlcCEdtg.js +324 -0
  32. package/dist/{media-migration-Cj-3xrxd.js → media-migration-C2QLMSpd.js} +1 -1
  33. package/dist/{media-upload-D7DpMJYx.js → media-upload-D9MYBbLg.js} +1 -1
  34. package/dist/navigation/index.js +4 -0
  35. package/dist/operations-D8pn-_iW.js +20 -0
  36. package/dist/{question-DGC6JHy5.js → question-C7akkjHn.js} +1 -1
  37. package/dist/{question-D1--acV8.js → question-DXZ8R-34.js} +1 -1
  38. package/dist/rich-text/index.js +57 -53
  39. package/dist/rich-text/legacy-converter/index.js +1250 -666
  40. package/dist/style.css +1 -1
  41. package/dist/switcher/index.js +4 -0
  42. package/dist/types/edition-info/FkpEditionInfo.vue.d.ts +5 -0
  43. package/dist/types/edition-info/index.d.ts +2 -0
  44. package/dist/types/edition-info/types.d.ts +5 -0
  45. package/dist/types/filters/FkpFilter.vue.d.ts +20 -0
  46. package/dist/types/filters/FkpFilterDateRange.vue.d.ts +13 -0
  47. package/dist/types/filters/FkpFilterPeriod.vue.d.ts +17 -0
  48. package/dist/types/filters/FkpSearchableMultiSelect.vue.d.ts +44 -0
  49. package/dist/types/filters/index.d.ts +5 -0
  50. package/dist/types/filters/selection.d.ts +5 -0
  51. package/dist/types/filters/types.d.ts +30 -0
  52. package/dist/types/index.d.ts +7 -1
  53. package/dist/types/knowledge-type-picker/index.d.ts +3 -0
  54. package/dist/types/navigation/FkpNavigation.vue.d.ts +51 -0
  55. package/dist/types/navigation/index.d.ts +2 -0
  56. package/dist/types/navigation/types.d.ts +15 -0
  57. package/dist/types/rich-text/FkpRichText.vue.d.ts +18 -5
  58. package/dist/types/rich-text/__demo__/conversion-fixtures.d.ts +2 -2
  59. package/dist/types/rich-text/__demo__/reasoning-template-examples.d.ts +2 -3
  60. package/dist/types/rich-text/config/descriptor.d.ts +25 -2
  61. package/dist/types/rich-text/config/resolve.d.ts +2 -0
  62. package/dist/types/rich-text/index.d.ts +3 -1
  63. package/dist/types/rich-text/legacy-converter/agent-prompt-preview.d.ts +2 -0
  64. package/dist/types/rich-text/legacy-converter/business-attribute.d.ts +9 -29
  65. package/dist/types/rich-text/legacy-converter/index.d.ts +8 -1
  66. package/dist/types/rich-text/legacy-converter/tool-contract.d.ts +1 -5
  67. package/dist/types/rich-text/model/guard.d.ts +2 -1
  68. package/dist/types/rich-text/model/node-contract.d.ts +3 -5
  69. package/dist/types/rich-text/model/node-identity.d.ts +7 -1
  70. package/dist/types/rich-text/model/question-text.d.ts +2 -4
  71. package/dist/types/rich-text/plugins/attribute/token.d.ts +9 -0
  72. package/dist/types/rich-text/plugins/operations.d.ts +9 -0
  73. package/dist/types/rich-text/plugins/reasoningTemplate/defaults.d.ts +14 -0
  74. package/dist/types/rich-text/plugins/reasoningTemplate/examples.d.ts +9 -0
  75. package/dist/types/rich-text/plugins/separator/token.d.ts +2 -0
  76. package/dist/types/rich-text/plugins/tableKnowledge/descriptor.d.ts +2 -0
  77. package/dist/types/rich-text/plugins/tableKnowledge/index.d.ts +2 -0
  78. package/dist/types/rich-text/plugins/tableKnowledge/token.d.ts +9 -0
  79. package/dist/types/rich-text/plugins/ticket/protocol.d.ts +8 -0
  80. package/dist/types/rich-text/plugins/ticket/token.d.ts +9 -0
  81. package/dist/types/rich-text/plugins/todo/token.d.ts +3 -0
  82. package/dist/types/rich-text/plugins/token-catalog.d.ts +46 -0
  83. package/dist/types/rich-text/plugins/token-definition.d.ts +24 -0
  84. package/dist/types/rich-text/plugins/tool/presentation.d.ts +2 -1
  85. package/dist/types/rich-text/plugins/tool/protocol.d.ts +5 -0
  86. package/dist/types/rich-text/plugins/tool/rules.d.ts +1 -0
  87. package/dist/types/rich-text/plugins/tool/token.d.ts +2 -0
  88. package/dist/types/rich-text/plugins/variable/token.d.ts +2 -0
  89. package/dist/types/rich-text/public/types.d.ts +63 -6
  90. package/dist/types/rich-text/runtime/action-ports.d.ts +6 -1
  91. package/dist/types/rich-text/runtime/knowledge-clipboard.d.ts +16 -0
  92. package/dist/types/rich-text/runtime/media-target.d.ts +2 -0
  93. package/dist/types/rich-text/runtime/media-upload-session.d.ts +1 -1
  94. package/dist/types/rich-text/runtime/schema-plan.d.ts +1 -0
  95. package/dist/types/rich-text/types.d.ts +3 -40
  96. package/dist/types/rich-text/ui/FkpKnowledgeTypePicker.vue.d.ts +38 -0
  97. package/dist/types/rich-text/ui/KnowledgeArea.vue.d.ts +7 -3
  98. package/dist/types/rich-text/ui/knowledge-type-picker-types.d.ts +14 -0
  99. package/dist/types/rich-text/ui/token-renderer.d.ts +5 -0
  100. package/dist/types/switcher/FkpSwitcher.vue.d.ts +52 -0
  101. package/dist/types/switcher/index.d.ts +2 -0
  102. package/dist/types/switcher/types.d.ts +7 -0
  103. package/package.json +27 -7
  104. package/dist/FkpRichText.vue_vue_type_script_setup_true_lang-BuMz8Tyy.js +0 -4416
  105. package/dist/KnowledgeArea-BkRVWFrg.js +0 -1224
  106. package/dist/index-BVHYCLDv.js +0 -5
  107. package/dist/index-CzpY61Qj.js +0 -6
  108. package/dist/index-DxxX09iY.js +0 -6
  109. package/dist/index-kOPLn4DD.js +0 -5
  110. package/dist/index-nnvfy5q0.js +0 -31
  111. package/dist/index-urNonkMH.js +0 -6
  112. package/dist/inline-TT_dl8Y3.js +0 -17
  113. package/dist/knowledge-BZCmalF_.js +0 -6
  114. package/dist/media-extensions-ZoxmhIhH.js +0 -276
  115. package/dist/operations-JgnjGx3H.js +0 -19
  116. package/dist/rules-CC6NoltX.js +0 -811
@@ -1,811 +0,0 @@
1
- const ot = [
2
- {
3
- id: "todo",
4
- apiVersion: 1,
5
- dataVersion: 1,
6
- implementation: "plugin",
7
- label: "待办",
8
- slot: "questionAction",
9
- actions: [{ id: "todo.questionAction.apply", requiredPorts: [] }],
10
- order: 10,
11
- types: ["normal"],
12
- icon: "todo",
13
- optionKind: "selection",
14
- optionSource: "flatTags",
15
- optionTrigger: "hover",
16
- questionTag: { kind: "todo" }
17
- },
18
- {
19
- id: "todo",
20
- apiVersion: 1,
21
- dataVersion: 1,
22
- implementation: "plugin",
23
- label: "待办",
24
- slot: "knowledgeInline",
25
- actions: [{ id: "todo.knowledgeInline.apply", requiredPorts: [] }],
26
- order: 10,
27
- types: ["reasoning"],
28
- icon: "todo",
29
- optionKind: "selection",
30
- optionSource: "flatTags",
31
- optionTrigger: "hover"
32
- }
33
- ], st = [
34
- {
35
- id: "ticket",
36
- apiVersion: 1,
37
- dataVersion: 1,
38
- implementation: "plugin",
39
- label: "工单",
40
- slot: "knowledgeInline",
41
- actions: [{ id: "ticket.knowledgeInline.apply", requiredPorts: [] }],
42
- order: 25,
43
- types: ["reasoning"],
44
- icon: "ticket",
45
- optionKind: "selection",
46
- optionSource: "flatTags",
47
- optionTrigger: "hover"
48
- }
49
- ], at = [
50
- {
51
- id: "originalReply",
52
- apiVersion: 1,
53
- dataVersion: 1,
54
- implementation: "plugin",
55
- label: "原话",
56
- slot: "questionAction",
57
- actions: [{ id: "originalReply.questionAction.apply", requiredPorts: [] }],
58
- order: 20,
59
- types: ["normal"],
60
- icon: "original"
61
- },
62
- {
63
- id: "originalReply",
64
- apiVersion: 1,
65
- dataVersion: 1,
66
- implementation: "plugin",
67
- label: "原话",
68
- slot: "knowledgeBlock",
69
- actions: [{ id: "originalReply.knowledgeBlock.apply", requiredPorts: [] }],
70
- order: 20,
71
- types: ["reasoning"],
72
- icon: "original"
73
- }
74
- ], lt = [
75
- {
76
- id: "memory",
77
- apiVersion: 1,
78
- dataVersion: 1,
79
- implementation: "plugin",
80
- label: "记忆",
81
- slot: "questionAction",
82
- actions: [{ id: "memory.questionAction.apply", requiredPorts: [] }],
83
- order: 30,
84
- types: ["normal", "reasoning", "agent"],
85
- icon: "memory"
86
- }
87
- ], ct = [
88
- {
89
- id: "tagged",
90
- apiVersion: 1,
91
- dataVersion: 1,
92
- implementation: "plugin",
93
- label: "打标",
94
- slot: "questionAction",
95
- actions: [{ id: "tagged.questionAction.apply", requiredPorts: [] }],
96
- order: 40,
97
- types: ["normal", "reasoning", "agent"],
98
- icon: "tag",
99
- optionKind: "selection",
100
- optionSource: "flatTags",
101
- optionTrigger: "hover",
102
- questionTag: { kind: "default" }
103
- }
104
- ], pt = [
105
- {
106
- id: "attribute",
107
- apiVersion: 1,
108
- dataVersion: 1,
109
- implementation: "plugin",
110
- label: "属性",
111
- slot: "knowledgeInline",
112
- actions: [{ id: "attribute.knowledgeInline.apply", requiredPorts: [] }],
113
- order: 30,
114
- types: ["reasoning"],
115
- icon: "attribute",
116
- optionKind: "selection",
117
- optionSource: "capabilities",
118
- optionTrigger: "hover",
119
- optionHierarchy: "tree"
120
- }
121
- ], dt = [
122
- {
123
- id: "tool",
124
- apiVersion: 1,
125
- dataVersion: 1,
126
- implementation: "plugin",
127
- label: "工具",
128
- slot: "knowledgeInline",
129
- actions: [{ id: "tool.knowledgeInline.apply", requiredPorts: [] }],
130
- order: 40,
131
- types: ["reasoning"],
132
- icon: "tool",
133
- optionKind: "selection",
134
- optionSource: "capabilities",
135
- optionTrigger: "hover",
136
- optionHierarchy: "tree",
137
- uiPorts: ["getToolForm"]
138
- }
139
- ], ut = [
140
- {
141
- id: "variable",
142
- apiVersion: 1,
143
- dataVersion: 1,
144
- implementation: "plugin",
145
- label: "变量",
146
- slot: "knowledgeInline",
147
- actions: [{ id: "variable.knowledgeInline.apply", requiredPorts: [] }],
148
- order: 50,
149
- types: ["normal", "reasoning"],
150
- icon: "variable",
151
- optionKind: "selection",
152
- optionSource: "variables"
153
- }
154
- ];
155
- const Kt = {
156
- agents: "searchAgents",
157
- variables: "listVariables",
158
- flatTags: "listCapabilityOptions",
159
- capabilities: "listCapabilityOptions"
160
- };
161
- const w = {
162
- agentOpenConfig: {
163
- id: "agentSelect.openConfig",
164
- requiredPorts: ["openAgentConfig"]
165
- },
166
- imageUpload: { id: "image.upload", requiredPorts: ["uploadMedia"] },
167
- videoUpload: { id: "video.upload", requiredPorts: ["uploadMedia"] },
168
- reasoningPolishPropose: {
169
- id: "reasoningPolish.propose",
170
- requiredPorts: ["proposeReasoning"]
171
- },
172
- reasoningTemplateLoad: {
173
- id: "reasoningTemplate.load",
174
- requiredPorts: ["getReasoningTemplate"]
175
- }
176
- }, gt = [
177
- {
178
- id: "image",
179
- apiVersion: 1,
180
- dataVersion: 1,
181
- implementation: "plugin",
182
- label: "图片",
183
- slot: "knowledgeBlock",
184
- actions: [w.imageUpload],
185
- primaryActionId: "image.upload",
186
- order: 60,
187
- types: ["normal", "reasoning"],
188
- icon: "image",
189
- optionKind: "media"
190
- }
191
- ], ft = [
192
- {
193
- id: "video",
194
- apiVersion: 1,
195
- dataVersion: 1,
196
- implementation: "plugin",
197
- label: "视频",
198
- slot: "knowledgeBlock",
199
- actions: [w.videoUpload],
200
- primaryActionId: "video.upload",
201
- order: 70,
202
- types: ["normal", "reasoning"],
203
- icon: "video",
204
- optionKind: "media"
205
- }
206
- ], yt = [
207
- {
208
- id: "separator",
209
- apiVersion: 1,
210
- dataVersion: 1,
211
- implementation: "plugin",
212
- label: "分隔符",
213
- slot: "knowledgeInline",
214
- actions: [{ id: "separator.knowledgeInline.apply", requiredPorts: [] }],
215
- order: 80,
216
- types: ["normal", "reasoning"],
217
- icon: "separator"
218
- }
219
- ], mt = [
220
- {
221
- id: "reasoningPolish",
222
- apiVersion: 1,
223
- dataVersion: 1,
224
- implementation: "plugin",
225
- label: "润色",
226
- slot: "sceneAction",
227
- actions: [w.reasoningPolishPropose],
228
- primaryActionId: "reasoningPolish.propose",
229
- order: 90,
230
- types: ["reasoning"],
231
- icon: "polish"
232
- }
233
- ], kt = [
234
- {
235
- id: "reasoningTemplate",
236
- apiVersion: 1,
237
- dataVersion: 1,
238
- implementation: "plugin",
239
- label: "模板",
240
- slot: "sceneAction",
241
- actions: [w.reasoningTemplateLoad],
242
- primaryActionId: "reasoningTemplate.load",
243
- order: 100,
244
- types: ["reasoning"],
245
- icon: "template",
246
- optionKind: "selection",
247
- optionSource: "capabilities"
248
- }
249
- ], bt = [
250
- {
251
- id: "agentSelect",
252
- apiVersion: 1,
253
- dataVersion: 1,
254
- implementation: "host",
255
- label: "选择 Agent",
256
- slot: "sceneAction",
257
- actions: [w.agentOpenConfig],
258
- readPorts: ["getAgentPrompt"],
259
- order: 10,
260
- types: ["agent"],
261
- icon: "agent",
262
- optionKind: "selection",
263
- optionSource: "agents",
264
- optionTrigger: "hover"
265
- }
266
- ], Z = [
267
- ...ot,
268
- ...st,
269
- ...at,
270
- ...lt,
271
- ...ct,
272
- ...pt,
273
- ...dt,
274
- ...ut,
275
- ...gt,
276
- ...ft,
277
- ...yt,
278
- ...mt,
279
- ...kt,
280
- ...bt
281
- ];
282
- function tt(r, n = "") {
283
- const e = /* @__PURE__ */ new Set(), s = (o, t, i) => {
284
- if (o === null || typeof o == "string" || typeof o == "boolean")
285
- return null;
286
- if (typeof o == "number")
287
- return Number.isFinite(o) ? null : t;
288
- if (typeof o != "object" || i > 64 || e.has(o))
289
- return t;
290
- if (!Array.isArray(o)) {
291
- const c = Object.getPrototypeOf(o);
292
- if (c !== Object.prototype && c !== null) return t;
293
- }
294
- const u = Reflect.ownKeys(o);
295
- if (u.some((c) => typeof c == "symbol")) return t;
296
- if (Array.isArray(o)) {
297
- if (u.length !== o.length + 1) return t;
298
- for (let c = 0; c < o.length; c++)
299
- if (!Object.prototype.hasOwnProperty.call(o, c))
300
- return `${t}[${c}]`;
301
- }
302
- e.add(o);
303
- for (const c of u) {
304
- if (Array.isArray(o) && c === "length") continue;
305
- const a = Object.getOwnPropertyDescriptor(o, c), l = Array.isArray(o) ? `${t}[${String(c)}]` : t ? `${t}.${String(c)}` : String(c);
306
- if (!a || !("value" in a) || !Array.isArray(o) && !a.enumerable)
307
- return l;
308
- const d = s(a.value, l, i + 1);
309
- if (d !== null) return d;
310
- }
311
- return e.delete(o), null;
312
- };
313
- try {
314
- return s(r, n, 0);
315
- } catch {
316
- return n;
317
- }
318
- }
319
- function $(r) {
320
- if (typeof r != "string" || !/^https?:\/\/[^\s]+$/i.test(r))
321
- return !1;
322
- try {
323
- const n = new URL(r);
324
- return (n.protocol === "http:" || n.protocol === "https:") && !!n.hostname && !n.username && !n.password;
325
- } catch {
326
- return !1;
327
- }
328
- }
329
- const wt = [
330
- "todo",
331
- "ticket",
332
- "variable",
333
- "attribute",
334
- "tool",
335
- "separator"
336
- ], St = ["todo", "ticket", "attribute"], At = ["image", "video"], $t = new Set(wt), It = new Set(St), ht = new Set(At), et = (r) => typeof r == "string" && $t.has(r), Nt = (r) => typeof r == "string" && It.has(r), rt = (r) => typeof r == "string" && ht.has(r), Tt = /* @__PURE__ */ new Set([
337
- "businessToken",
338
- "originalReply",
339
- "messageSeparator",
340
- "mediaBlock"
341
- ]), I = (r) => Tt.has(r);
342
- function _t(r, n) {
343
- return r === "businessToken" ? et(n == null ? void 0 : n.kind) ? n.kind : null : r === "mediaBlock" ? rt(n == null ? void 0 : n.kind) ? n.kind : null : r === "originalReply" ? "originalReply" : r === "messageSeparator" ? "separator" : null;
344
- }
345
- function Vt(r) {
346
- var n;
347
- return !!((n = r.content) != null && n.some(
348
- (e) => typeof e.type == "string" && I(e.type) || Vt(e)
349
- ));
350
- }
351
- const Lt = "fkpTrustedNodeIds";
352
- function Mt(r) {
353
- const n = [], e = (s) => {
354
- var o, t;
355
- s.type && I(s.type) && typeof ((o = s.attrs) == null ? void 0 : o.id) == "string" && s.attrs.id && n.push(s.attrs.id), (t = s.content) == null || t.forEach(e);
356
- };
357
- return Array.isArray(r) ? r.forEach(e) : e(r), n;
358
- }
359
- function Ct(r, n) {
360
- for (let t = 0; t < 8; t++) {
361
- const i = n();
362
- if (i && !r.has(i)) return i;
363
- }
364
- const e = n() || "node";
365
- let s = e, o = 1;
366
- for (; r.has(s); ) s = `${e}-${o++}`;
367
- return s;
368
- }
369
- const Q = {
370
- todo: "待办",
371
- tagged: "顾客标签"
372
- };
373
- function Pt(r) {
374
- return r.includes("[") || r.includes("]") || /[【】\r\n]/u.test(r);
375
- }
376
- function nt(r) {
377
- return /[{}\r\n]/u.test(r);
378
- }
379
- function qt(r, n) {
380
- var i;
381
- const e = (i = r.extensionState[n]) == null ? void 0 : i.data;
382
- if (!e || typeof e != "object" || Array.isArray(e)) return null;
383
- const { tag: s } = e;
384
- if (!s || typeof s != "object" || Array.isArray(s)) return null;
385
- const { id: o, label: t } = s;
386
- return typeof o != "string" || !o.trim() || typeof t != "string" || !t.trim() ? null : { id: o, label: t };
387
- }
388
- function xt(r) {
389
- return ["todo", "tagged"].flatMap((n) => {
390
- var t;
391
- if (n === "todo" && r.type !== "normal") return [];
392
- const e = (t = r.extensionState[n]) == null ? void 0 : t.data, s = e && typeof e == "object" && !Array.isArray(e) ? e.enabled === !0 : !1, o = s ? qt(r, n) : null;
393
- if (s && !o)
394
- throw new Error(`${Q[n]}已开启但未选择方案`);
395
- if (o && nt(o.label))
396
- throw new Error("方案名称包含协议保留字符");
397
- return o ? [`{${Q[n]}@${o.label}}`] : [];
398
- }).join("");
399
- }
400
- function Ft(r) {
401
- var n;
402
- if (typeof ((n = r.question) == null ? void 0 : n.text) != "string" || Pt(r.question.text))
403
- throw new Error("意图文字中不可填写方括号或换行,请修改");
404
- return `[${r.question.text}]${xt(r)}`;
405
- }
406
- const it = /* @__PURE__ */ new Set([
407
- "doc",
408
- "paragraph",
409
- "text",
410
- "bulletList",
411
- "orderedList",
412
- "listItem",
413
- "blockquote",
414
- "codeBlock",
415
- "hardBreak",
416
- "horizontalRule",
417
- "businessToken",
418
- "originalReply",
419
- "messageSeparator",
420
- "mediaBlock"
421
- ]), Ut = (r) => it.has(r), Ot = /* @__PURE__ */ new Set([
422
- "bold",
423
- "italic",
424
- "strike",
425
- "code",
426
- "link",
427
- "underline"
428
- ]), A = /* @__PURE__ */ new Set([
429
- "paragraph",
430
- "bulletList",
431
- "orderedList",
432
- "blockquote",
433
- "codeBlock",
434
- "horizontalRule",
435
- "originalReply",
436
- "messageSeparator",
437
- "mediaBlock"
438
- ]), J = {
439
- doc: A,
440
- paragraph: /* @__PURE__ */ new Set(["text", "hardBreak", "businessToken"]),
441
- bulletList: /* @__PURE__ */ new Set(["listItem"]),
442
- orderedList: /* @__PURE__ */ new Set(["listItem"]),
443
- listItem: /* @__PURE__ */ new Set(["paragraph", ...A]),
444
- blockquote: A,
445
- codeBlock: /* @__PURE__ */ new Set(["text"]),
446
- originalReply: /* @__PURE__ */ new Set(["paragraph", "mediaBlock", "messageSeparator"])
447
- }, vt = {
448
- orderedList: /* @__PURE__ */ new Set(["start", "type"]),
449
- codeBlock: /* @__PURE__ */ new Set(["language"]),
450
- businessToken: /* @__PURE__ */ new Set([
451
- "id",
452
- "nodeVersion",
453
- "kind",
454
- "key",
455
- "label",
456
- "token",
457
- "params"
458
- ]),
459
- originalReply: /* @__PURE__ */ new Set(["id", "nodeVersion"]),
460
- messageSeparator: /* @__PURE__ */ new Set(["id", "nodeVersion"]),
461
- mediaBlock: /* @__PURE__ */ new Set([
462
- "id",
463
- "nodeVersion",
464
- "assetId",
465
- "src",
466
- "kind",
467
- "name",
468
- "poster",
469
- "status",
470
- "error"
471
- ])
472
- };
473
- function jt(r) {
474
- if (!r || typeof r != "object" || Array.isArray(r)) return !1;
475
- const n = r;
476
- if (typeof n.type != "string" || !Ot.has(n.type) || Object.keys(n).some((o) => !["type", "attrs"].includes(o)) || n.attrs !== void 0 && (!n.attrs || typeof n.attrs != "object" || Array.isArray(n.attrs)))
477
- return !1;
478
- const e = n.attrs || {};
479
- if (n.type !== "link") return Object.keys(e).length === 0;
480
- if (Object.keys(e).some(
481
- (o) => !["href", "target", "rel", "class", "title"].includes(o)
482
- ) || !$(e.href))
483
- return !1;
484
- const s = (o) => o == null || typeof o == "string";
485
- return !s(e.rel) || !s(e.class) || !s(e.title) || e.target !== void 0 && e.target !== null && !["_blank", "_self"].includes(String(e.target)) ? !1 : e.target !== "_blank" || typeof e.rel == "string" && e.rel.split(/\s+/).includes("noopener");
486
- }
487
- function k(r, n, e = "") {
488
- const s = Object.keys(r).find(
489
- (o) => !n.includes(o)
490
- );
491
- return s ? e ? `${e}.${s}` : s : null;
492
- }
493
- function Y(r, n = "knowledge.doc") {
494
- if (r === null) return null;
495
- const e = /* @__PURE__ */ new Set(), s = /* @__PURE__ */ new WeakSet();
496
- function o(t, i, u, c = !1) {
497
- var l, d, f, g, m, y, b, h, T, V, P, q, x, O, v, j, R, D, B, K, N, _, L, M, C, F, U, E, z, H;
498
- if (!t || typeof t != "object" || !t.type || !it.has(t.type) || s.has(t) || (s.add(t), u ? !((l = J[u]) != null && l.has(t.type)) : t.type !== "doc") || c && t.type === "businessToken" && ((d = t.attrs) == null ? void 0 : d.kind) === "attribute")
499
- return i;
500
- for (const p of Object.keys(t))
501
- if (!["type", "attrs", "content", "marks", "text"].includes(p))
502
- return `${i}.${p}`;
503
- if (t.content !== void 0 && !Array.isArray(t.content))
504
- return `${i}.content`;
505
- if (["bulletList", "orderedList", "blockquote", "originalReply"].includes(
506
- t.type
507
- ) && !((f = t.content) != null && f.length))
508
- return `${i}.content`;
509
- if (t.type === "listItem" && ((m = (g = t.content) == null ? void 0 : g[0]) == null ? void 0 : m.type) !== "paragraph")
510
- return (y = t.content) != null && y.length ? `${i}.content[0]` : `${i}.content`;
511
- if (t.text !== void 0 && t.type !== "text") return `${i}.text`;
512
- if (t.type === "text" && (typeof t.text != "string" || t.text.length === 0))
513
- return `${i}.text`;
514
- if (t.type === "text" && t.content !== void 0)
515
- return `${i}.content`;
516
- if ((b = t.content) != null && b.length && !J[t.type])
517
- return `${i}.content`;
518
- if (t.attrs !== void 0 && (!t.attrs || typeof t.attrs != "object" || Array.isArray(t.attrs)))
519
- return `${i}.attrs`;
520
- const a = vt[t.type] || /* @__PURE__ */ new Set();
521
- for (const p of Object.keys(t.attrs || {}))
522
- if (!a.has(p)) return `${i}.attrs.${p}`;
523
- if (t.type === "businessToken" && !et((h = t.attrs) == null ? void 0 : h.kind))
524
- return `${i}.attrs.kind`;
525
- if (t.type === "businessToken" && (typeof ((T = t.attrs) == null ? void 0 : T.key) != "string" || !t.attrs.key))
526
- return `${i}.attrs.key`;
527
- if (t.type === "businessToken" && ((V = t.attrs) == null ? void 0 : V.label) !== void 0 && typeof t.attrs.label != "string")
528
- return `${i}.attrs.label`;
529
- if (t.type === "businessToken" && ((P = t.attrs) == null ? void 0 : P.token) !== void 0 && t.attrs.token !== null && typeof t.attrs.token != "string")
530
- return `${i}.attrs.token`;
531
- if (t.type === "businessToken" && ((q = t.attrs) == null ? void 0 : q.params) != null && (t.attrs.kind !== "tool" || typeof t.attrs.params != "object" || Array.isArray(t.attrs.params) || tt(t.attrs.params) !== null || JSON.stringify(t.attrs.params).length > 8192))
532
- return `${i}.attrs.params`;
533
- if (t.type === "mediaBlock" && !rt((x = t.attrs) == null ? void 0 : x.kind))
534
- return `${i}.attrs.kind`;
535
- if (t.type === "mediaBlock") {
536
- if (((O = t.attrs) == null ? void 0 : O.assetId) !== void 0 && t.attrs.assetId !== null && typeof t.attrs.assetId != "string")
537
- return `${i}.attrs.assetId`;
538
- if (((v = t.attrs) == null ? void 0 : v.name) !== void 0 && typeof t.attrs.name != "string")
539
- return `${i}.attrs.name`;
540
- if (((j = t.attrs) == null ? void 0 : j.error) !== void 0 && typeof t.attrs.error != "string")
541
- return `${i}.attrs.error`;
542
- if (((R = t.attrs) == null ? void 0 : R.status) !== void 0 && !["ready", "uploading", "error"].includes(String(t.attrs.status)))
543
- return `${i}.attrs.status`;
544
- const p = (((D = t.attrs) == null ? void 0 : D.status) === "uploading" || ((B = t.attrs) == null ? void 0 : B.status) === "error") && typeof ((K = t.attrs) == null ? void 0 : K.src) == "string" && t.attrs.src.startsWith("blob:");
545
- if (!$((N = t.attrs) == null ? void 0 : N.src) && !p)
546
- return `${i}.attrs.src`;
547
- if (((_ = t.attrs) == null ? void 0 : _.poster) !== void 0 && t.attrs.poster !== null && !$(t.attrs.poster))
548
- return `${i}.attrs.poster`;
549
- }
550
- if (I(t.type)) {
551
- const p = (L = t.attrs) == null ? void 0 : L.id;
552
- if ((t.type === "mediaBlock" || p !== void 0) && (typeof p != "string" || !p.trim() || e.has(p)))
553
- return `${i}.attrs.id`;
554
- if (typeof p == "string" && e.add(p), ((M = t.attrs) == null ? void 0 : M.nodeVersion) !== void 0 && (!Number.isSafeInteger(t.attrs.nodeVersion) || t.attrs.nodeVersion < 0))
555
- return `${i}.attrs.nodeVersion`;
556
- }
557
- if (t.type === "orderedList" && ((C = t.attrs) == null ? void 0 : C.start) !== void 0 && (!Number.isSafeInteger(t.attrs.start) || t.attrs.start < 1))
558
- return `${i}.attrs.start`;
559
- if (t.type === "orderedList" && ((F = t.attrs) == null ? void 0 : F.type) !== void 0 && t.attrs.type !== null && !["1", "a", "A", "i", "I"].includes(t.attrs.type))
560
- return `${i}.attrs.type`;
561
- if (t.type === "codeBlock" && ((U = t.attrs) == null ? void 0 : U.language) !== void 0 && t.attrs.language !== null && typeof t.attrs.language != "string")
562
- return `${i}.attrs.language`;
563
- if (t.marks !== void 0 && !Array.isArray(t.marks))
564
- return `${i}.marks`;
565
- if (u === "codeBlock" && ((E = t.marks) != null && E.length)) return `${i}.marks`;
566
- if ((z = t.marks) != null && z.some((p) => !jt(p)))
567
- return `${i}.marks`;
568
- if ((H = t.marks) != null && H.length) {
569
- const p = t.marks.map((S) => S.type);
570
- if (new Set(p).size !== p.length || p.includes("code") && p.length > 1)
571
- return `${i}.marks`;
572
- }
573
- for (const [p, S] of (t.content || []).entries()) {
574
- const W = o(
575
- S,
576
- `${i}.content[${p}]`,
577
- t.type,
578
- c || t.type === "originalReply"
579
- );
580
- if (W) return W;
581
- }
582
- return null;
583
- }
584
- return o(r, n);
585
- }
586
- function G(r, n, e = "knowledge.doc") {
587
- if (!r) return null;
588
- const s = /* @__PURE__ */ new WeakSet(), o = (t, i) => {
589
- var a, l;
590
- if (s.has(t)) return i;
591
- s.add(t);
592
- const u = t.type === "businessToken" ? String((a = t.attrs) == null ? void 0 : a.kind) : t.type === "mediaBlock" ? String((l = t.attrs) == null ? void 0 : l.kind) : t.type === "originalReply" ? "originalReply" : t.type === "messageSeparator" ? "separator" : null, c = t.type === "businessToken" ? "knowledgeInline" : u ? "knowledgeBlock" : null;
593
- if (t.type === "messageSeparator" && n === "agent" || u && t.type !== "messageSeparator" && !Z.some(
594
- (d) => d.id === u && d.slot === c && d.types.includes(n)
595
- ))
596
- return i;
597
- for (const [d, f] of (t.content || []).entries()) {
598
- const g = o(f, `${i}.content[${d}]`);
599
- if (g) return g;
600
- }
601
- return null;
602
- };
603
- return o(r, e);
604
- }
605
- function Et(r) {
606
- if (!r || typeof r != "object" || Array.isArray(r)) return !1;
607
- const n = r, e = n.question, s = n.knowledge;
608
- return ["normal", "reasoning", "agent"].includes(String(n.type)) && !!e && typeof e == "object" && !Array.isArray(e) && typeof e.text == "string" && !!s && typeof s == "object" && !Array.isArray(s) && Object.prototype.hasOwnProperty.call(s, "doc") && !!n.extensionState && typeof n.extensionState == "object" && !Array.isArray(n.extensionState);
609
- }
610
- function zt(r) {
611
- if (!r || typeof r != "object" || Array.isArray(r))
612
- return "modelValue";
613
- const n = tt(r);
614
- if (n !== null) return n || "modelValue";
615
- const e = r;
616
- if (e.schemaVersion !== 1) return "schemaVersion";
617
- const s = k(e, [
618
- "schemaVersion",
619
- "id",
620
- "type",
621
- "question",
622
- "knowledge",
623
- "extensionState"
624
- ]);
625
- if (s) return s;
626
- if (e.id !== void 0 && typeof e.id != "string") return "id";
627
- if (!["normal", "reasoning", "agent"].includes(e.type)) return "type";
628
- if (!e.question || typeof e.question != "object" || Array.isArray(e.question) || typeof e.question.text != "string")
629
- return "question.text";
630
- const o = k(
631
- e.question,
632
- ["text"],
633
- "question"
634
- );
635
- if (o) return o;
636
- if (!e.knowledge || typeof e.knowledge != "object" || Array.isArray(e.knowledge))
637
- return "knowledge";
638
- const t = k(
639
- e.knowledge,
640
- ["doc", "retainedDoc", "agentRef"],
641
- "knowledge"
642
- );
643
- if (t) return t;
644
- if (!Object.prototype.hasOwnProperty.call(e.knowledge, "doc") || e.type === "agent" && e.knowledge.doc !== null)
645
- return "knowledge.doc";
646
- if (e.type !== "agent") {
647
- if (e.knowledge.agentRef != null) return "knowledge.agentRef";
648
- if (Object.prototype.hasOwnProperty.call(e.knowledge, "retainedDoc"))
649
- return "knowledge.retainedDoc";
650
- }
651
- if (e.knowledge.agentRef !== void 0 && e.knowledge.agentRef !== null) {
652
- const { agentRef: a } = e.knowledge;
653
- if (typeof a != "object" || Array.isArray(a) || typeof a.id != "string" || !a.id || typeof a.name != "string")
654
- return "knowledge.agentRef";
655
- const l = k(
656
- a,
657
- ["id", "name"],
658
- "knowledge.agentRef"
659
- );
660
- if (l) return l;
661
- }
662
- const i = Y(e.knowledge.doc);
663
- if (i) return i;
664
- const u = G(
665
- e.knowledge.doc,
666
- e.type
667
- );
668
- if (u) return u;
669
- const c = Y(
670
- e.knowledge.retainedDoc ?? null,
671
- "knowledge.retainedDoc"
672
- );
673
- if (c) return c;
674
- if (e.type === "agent") {
675
- const a = G(
676
- e.knowledge.retainedDoc ?? null,
677
- "normal",
678
- "knowledge.retainedDoc"
679
- );
680
- if (a) return a;
681
- }
682
- if (!e.extensionState || typeof e.extensionState != "object" || Array.isArray(e.extensionState))
683
- return "extensionState";
684
- for (const [a, l] of Object.entries(e.extensionState)) {
685
- const d = Z.find(
686
- (g) => g.id === a && g.types.includes(e.type) && g.implementation === "plugin"
687
- );
688
- if (!d) return `extensionState.${a}`;
689
- if (!l || typeof l != "object" || l.version !== d.dataVersion)
690
- return `extensionState.${a}.version`;
691
- const f = k(
692
- l,
693
- ["version", "data"],
694
- `extensionState.${a}`
695
- );
696
- if (f) return f;
697
- if (!l.data || typeof l.data != "object" || Array.isArray(l.data))
698
- return `extensionState.${a}.data`;
699
- if (d.slot === "questionAction" && typeof l.data.enabled != "boolean")
700
- return `extensionState.${a}.data.enabled`;
701
- if (d.slot === "questionAction" && (a === "todo" || a === "tagged")) {
702
- const g = l.data;
703
- if (g.enabled === !0 && g.tag === void 0)
704
- return `extensionState.${a}.data.tag`;
705
- if (g.tag !== void 0) {
706
- const { tag: m } = g;
707
- if (!m || typeof m != "object" || Array.isArray(m))
708
- return `extensionState.${a}.data.tag`;
709
- const y = m;
710
- if (typeof y.id != "string" || !y.id.trim())
711
- return `extensionState.${a}.data.tag.id`;
712
- if (typeof y.label != "string" || !y.label.trim() || nt(y.label))
713
- return `extensionState.${a}.data.tag.label`;
714
- const b = k(
715
- y,
716
- ["id", "label"],
717
- `extensionState.${a}.data.tag`
718
- );
719
- if (b) return b;
720
- }
721
- }
722
- }
723
- return null;
724
- }
725
- const Rt = (r) => typeof r == "string" && /^(?:[1-9]|[1-9]\d)$/.test(r), Dt = {
726
- none: "不标记",
727
- red: "红色",
728
- yellow: "黄色",
729
- green: "绿色",
730
- blue: "蓝色",
731
- purple: "紫色"
732
- }, Ht = {
733
- none: "",
734
- red: "#f53f3f",
735
- yellow: "#ff7d00",
736
- green: "#00b42a",
737
- blue: "#165dff",
738
- purple: "#722ed1"
739
- };
740
- function Bt(r) {
741
- if (!r || typeof r != "object" || Array.isArray(r)) return !1;
742
- const n = r;
743
- return typeof n.id == "string" && /^rmk_[a-z0-9]{8}$/.test(n.id) && (n.contentMode === "fixed" || n.contentMode === "smart") && typeof n.content == "string" && !!n.content.trim() && [...n.content.trim()].length <= 500 && !/\^\^|\$\$|¥¥/.test(n.content) && !n.content.endsWith("^") && Object.hasOwn(Dt, String(n.flag)) && typeof n.preserveFlag == "boolean" && (n.position === "first" || n.position === "last");
744
- }
745
- function X() {
746
- return `rmk_${crypto.randomUUID().replace(/-/g, "").slice(0, 8)}`;
747
- }
748
- function Wt(r, n, e, s, o) {
749
- if (r !== "small_payment" && r !== "order_note")
750
- return { ok: !0, params: n };
751
- let t = 0;
752
- const i = /* @__PURE__ */ new Set(), u = (l) => {
753
- var d, f, g;
754
- l.type === "businessToken" && ((d = l.attrs) == null ? void 0 : d.kind) === "tool" && (!o || l.attrs.id !== o) && (l.attrs.key === "small_payment" && t++, l.attrs.key === "order_note" && i.add(String(((f = l.attrs.params) == null ? void 0 : f.id) || ""))), (g = l.content) == null || g.forEach(u);
755
- };
756
- if (s && u(s), r === "small_payment")
757
- return Rt(n.amount) ? t ? {
758
- ok: !1,
759
- code: "TOOL_LIMIT_REACHED",
760
- message: "最多配置一个小额打款工具"
761
- } : { ok: !0, params: n } : {
762
- ok: !1,
763
- code: "TOOL_PARAMS_INVALID",
764
- message: "打款金额必须是1-99的整数元"
765
- };
766
- let c = typeof e.id == "string" && /^rmk_[a-z0-9]{8}$/.test(e.id) ? e.id : X();
767
- if (!o)
768
- for (; i.has(c); ) c = X();
769
- if (i.has(c))
770
- return {
771
- ok: !1,
772
- code: "TOOL_PARAMS_INVALID",
773
- message: "订单备注编号重复"
774
- };
775
- const a = { ...n, id: c };
776
- return Bt(a) ? { ok: !0, params: { ...a } } : {
777
- ok: !1,
778
- code: "TOOL_PARAMS_INVALID",
779
- message: "订单备注内容或配置不合法"
780
- };
781
- }
782
- export {
783
- wt as B,
784
- St as C,
785
- At as M,
786
- xt as a,
787
- zt as b,
788
- Z as c,
789
- Et as d,
790
- I as e,
791
- tt as f,
792
- Y as g,
793
- Pt as h,
794
- Ut as i,
795
- $ as j,
796
- nt as k,
797
- _t as l,
798
- Vt as m,
799
- qt as n,
800
- Kt as o,
801
- Wt as p,
802
- Rt as q,
803
- Bt as r,
804
- Ft as s,
805
- Dt as t,
806
- Lt as u,
807
- Ct as v,
808
- Nt as w,
809
- Mt as x,
810
- Ht as y
811
- };