@freecallai/pro 0.0.4 → 0.0.6

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 (94) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +23 -23
  3. package/dist/FkpKnowledgeTypePicker.vue_vue_type_script_setup_true_lang--MPtqZY_.js +193 -0
  4. package/dist/FkpRichText.vue_vue_type_script_setup_true_lang-DIIFWISD.js +4995 -0
  5. package/dist/KnowledgeArea-CEX1esVZ.js +4 -0
  6. package/dist/KnowledgeArea.vue_vue_type_script_setup_true_lang-Bg1e7xYT.js +1653 -0
  7. package/dist/ToolForm-Ch1YRmMw.js +196 -0
  8. package/dist/agent-prompt-editor/index.js +917 -0
  9. package/dist/agent-prompt-editor/legacy-converter/index.js +490 -0
  10. package/dist/{choice-C1SxozNA.js → choice-2dbddjJU.js} +1 -1
  11. package/dist/edition-info/index.js +1 -1
  12. package/dist/filters/index.js +1 -1
  13. package/dist/{guard-CXpVx8UR.js → guard-Cr_ny-sR.js} +226 -213
  14. package/dist/{index-B8jg37Wj.js → index-5FRWdHnd.js} +1 -1
  15. package/dist/index-7x1OTv0m.js +98 -0
  16. package/dist/{index-CM0MN2DT.js → index-BBxrpF3v.js} +1 -1
  17. package/dist/index-CEjD03Kk.js +5 -0
  18. package/dist/{index-UjI4WA5F.js → index-CK_CrdQW.js} +1 -1
  19. package/dist/index-Ck8RYpuE.js +816 -0
  20. package/dist/{index-lNhA3N9x.js → index-DBQsQ1ZK.js} +1 -0
  21. package/dist/{index-BqXNMfLG.js → index-DiaPY8Db.js} +2 -2
  22. package/dist/{index-bSNw0XAf.js → index-DmdrsEvk.js} +1 -1
  23. package/dist/index-DnmCPdCI.js +168 -0
  24. package/dist/{index-Cy4DqT8R.js → index-DwDYy2lj.js} +1 -1
  25. package/dist/{index-CZc2Gyjb.js → index-aic1yCBs.js} +1 -1
  26. package/dist/index-sWjZ9xuV.js +5 -0
  27. package/dist/index.js +13 -13
  28. package/dist/{inline-Zj7Hqg-_.js → inline-8aNfINLF.js} +1 -1
  29. package/dist/knowledge-type-picker/index.js +1 -1
  30. package/dist/{knowledge-DaTnF2IW.js → knowledge-y2j0ijgx.js} +1 -1
  31. package/dist/media-id-b2dgniSy.js +15 -0
  32. package/dist/{media-migration-C2QLMSpd.js → media-migration-Dy_rbdkK.js} +1 -1
  33. package/dist/media-policy-BwKjZPWt.js +158 -0
  34. package/dist/{media-upload-D9MYBbLg.js → media-upload-BetGuTLJ.js} +1 -1
  35. package/dist/model-DvukseoR.js +146 -0
  36. package/dist/navigation/index.js +1 -1
  37. package/dist/rich-text/index.js +75 -73
  38. package/dist/rich-text/legacy-converter/index.js +822 -799
  39. package/dist/style.css +1 -1
  40. package/dist/switcher/index.js +1 -1
  41. package/dist/types/agent-prompt-editor/FkpAgentPromptEditor.vue.d.ts +550 -0
  42. package/dist/types/agent-prompt-editor/agent-size-chart.d.ts +3 -0
  43. package/dist/types/agent-prompt-editor/document-adapter.d.ts +3 -0
  44. package/dist/types/agent-prompt-editor/index.d.ts +6 -0
  45. package/dist/types/agent-prompt-editor/legacy-converter-index.d.ts +2 -0
  46. package/dist/types/agent-prompt-editor/legacy-converter.d.ts +26 -0
  47. package/dist/types/agent-prompt-editor/model.d.ts +21 -0
  48. package/dist/types/agent-prompt-editor/types.d.ts +56 -0
  49. package/dist/types/edition-info/FkpEditionInfo.vue.d.ts +1 -3
  50. package/dist/types/edition-info/presets.d.ts +8 -0
  51. package/dist/types/edition-info/types.d.ts +1 -0
  52. package/dist/types/filters/FkpFilter.vue.d.ts +2 -2
  53. package/dist/types/filters/FkpFilterDateRange.vue.d.ts +2 -2
  54. package/dist/types/filters/FkpFilterPeriod.vue.d.ts +2 -2
  55. package/dist/types/filters/FkpSearchableMultiSelect.vue.d.ts +2 -2
  56. package/dist/types/index.d.ts +4 -1
  57. package/dist/types/navigation/FkpNavigation.vue.d.ts +20 -29
  58. package/dist/types/navigation/NavigationButton.vue.d.ts +26 -0
  59. package/dist/types/navigation/NavigationGroup.vue.d.ts +45 -0
  60. package/dist/types/navigation/NavigationIcon.vue.d.ts +28 -0
  61. package/dist/types/navigation/NavigationNodes.vue.d.ts +40 -0
  62. package/dist/types/navigation/index.d.ts +1 -1
  63. package/dist/types/navigation/types.d.ts +43 -5
  64. package/dist/types/navigation/use-navigation-tree.d.ts +13 -0
  65. package/dist/types/rich-text/FkpRichText.vue.d.ts +31 -9
  66. package/dist/types/rich-text/config/descriptor.d.ts +1 -0
  67. package/dist/types/rich-text/config/resolve.d.ts +1 -1
  68. package/dist/types/rich-text/index.d.ts +4 -1
  69. package/dist/types/rich-text/knowledge-document-adapter.d.ts +2 -0
  70. package/dist/types/rich-text/model/question-text.d.ts +1 -1
  71. package/dist/types/rich-text/plugins/registry.d.ts +2 -1
  72. package/dist/types/rich-text/public/types.d.ts +16 -0
  73. package/dist/types/rich-text/runtime/document-adapter.d.ts +9 -0
  74. package/dist/types/rich-text/runtime/knowledge-clipboard.d.ts +9 -3
  75. package/dist/types/rich-text/runtime/media-sources.d.ts +7 -0
  76. package/dist/types/rich-text/runtime/media-upload-session.d.ts +2 -0
  77. package/dist/types/rich-text/ui/FkpKnowledgeTypePicker.vue.d.ts +3 -3
  78. package/dist/types/rich-text/ui/KnowledgeArea.vue.d.ts +18 -3
  79. package/dist/types/rich-text/ui/MediaSourceControls.vue.d.ts +190 -0
  80. package/dist/types/rich-text/ui/ToolForm.vue.d.ts +2 -2
  81. package/dist/types/rich-text/ui/token-renderer.d.ts +3 -0
  82. package/dist/types/rich-text/ui/useMediaHint.d.ts +6 -0
  83. package/dist/types/switcher/FkpSwitcher.vue.d.ts +2 -2
  84. package/dist/types-PvYB5e85.js +14 -0
  85. package/package.json +13 -5
  86. package/dist/FkpKnowledgeTypePicker.vue_vue_type_script_setup_true_lang-DYwu7oQs.js +0 -187
  87. package/dist/FkpRichText.vue_vue_type_script_setup_true_lang-BowbZoTQ.js +0 -4885
  88. package/dist/KnowledgeArea-BH-_uF6R.js +0 -1438
  89. package/dist/ToolForm-C6XW31Y7.js +0 -185
  90. package/dist/index-CS2xQQ8W.js +0 -168
  91. package/dist/index-D0bJAQSN.js +0 -327
  92. package/dist/index-DAZ1ulyA.js +0 -5
  93. package/dist/index-DCmHHi07.js +0 -71
  94. package/dist/index-F7lDP1lI.js +0 -5
@@ -123,6 +123,7 @@ const de = {
123
123
  "popup-visible": v.value,
124
124
  "onUpdate:popupVisible": t[6] || (t[6] = (r) => v.value = r)
125
125
  }, o.$attrs, {
126
+ "allow-search": !1,
126
127
  "model-value": o.modelValue,
127
128
  options: C.value,
128
129
  multiple: "",
@@ -1,6 +1,6 @@
1
1
  import { b as a } from "./operations-D8pn-_iW.js";
2
- import { m as i } from "./inline-Zj7Hqg-_.js";
3
- import { p as d } from "./guard-CXpVx8UR.js";
2
+ import { m as i } from "./inline-8aNfINLF.js";
3
+ import { p as d } from "./guard-Cr_ny-sR.js";
4
4
  const l = {
5
5
  validateInsert(n, e) {
6
6
  const { option: t } = n;
@@ -1,5 +1,5 @@
1
1
  import { b as i } from "./operations-D8pn-_iW.js";
2
- import { c as t } from "./choice-C1SxozNA.js";
2
+ import { c as t } from "./choice-2dbddjJU.js";
3
3
  const a = i("attribute", "knowledgeInline", t);
4
4
  export {
5
5
  a as default
@@ -0,0 +1,168 @@
1
+ import { defineComponent as B, computed as u, ref as c, watch as F, openBlock as P, createElementBlock as A, createVNode as g, unref as r, mergeProps as j, createSlots as I, withCtx as n, createElementVNode as a, renderSlot as m, toDisplayString as K, withModifiers as d, withKeys as b } from "vue";
2
+ import { Select as D, Input as E } from "@freecallai/ui";
3
+ const k = "data:image/svg+xml,%3csvg%20preserveAspectRatio='none'%20overflow='visible'%20style='display:%20block;'%20width='16.0004'%20height='16.002'%20viewBox='0%200%2016.0004%2016.002'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Frame%2077'%3e%3cpath%20id='Union'%20d='M3.46421%200.00195312C4.33099%20-0.0194915%205.25046%200.19045%206.14683%200.535156C6.75024%200.767259%207.37112%201.07427%207.99839%201.44336C8.62694%201.0736%209.25045%200.767614%209.85484%200.535156C10.751%200.190618%2011.6699%20-0.0185089%2012.5365%200.00292969C13.4134%200.0247296%2014.3219%200.290296%2015.0169%200.985352C15.7118%201.68041%2015.9776%202.58898%2015.9994%203.46582C16.0207%204.33239%2015.8108%205.25132%2015.4662%206.14746C15.2342%206.75045%2014.9259%207.37033%2014.557%207.99707C14.927%208.62618%2015.2335%209.24959%2015.4662%209.85449C15.8108%2010.7508%2016.0198%2011.6694%2015.9984%2012.5361C15.9766%2013.413%2015.7119%2014.3215%2015.0169%2015.0166C14.3218%2015.7115%2013.4134%2015.9773%2012.5365%2015.999C11.6699%2016.0204%2010.751%2015.8114%209.85484%2015.4668C9.25138%2015.2347%208.6309%2014.9266%208.00328%2014.5576C7.37439%2014.9275%206.75152%2015.2342%206.14683%2015.4668C5.25072%2015.8114%204.33175%2016.0213%203.46519%2016C2.58826%2015.9783%201.67986%2015.7125%200.984722%2015.0176C0.289547%2014.3224%200.0240196%2013.4142%200.00230056%2012.5371C-0.0190901%2011.6705%200.189911%2010.7517%200.534527%209.85547C0.7668%209.25164%201.07341%208.62993%201.44273%208.00195C1.07305%207.37352%200.766956%206.75077%200.534527%206.14648C0.189893%205.25028%20-0.0190565%204.33147%200.00230056%203.46484C0.0240165%202.58791%200.289762%201.67951%200.984722%200.984375C1.67968%200.289527%202.58746%200.0237982%203.46421%200.00195312ZM3.53453%202.83594C3.16381%202.84521%203.03151%202.94637%202.98863%202.98926C2.94542%203.03276%202.84552%203.16517%202.83628%203.53418C2.8269%203.91532%202.92139%204.4538%203.18101%205.12891C3.69918%206.47605%204.77647%208.11694%206.33043%209.6709C6.53888%209.87934%206.74869%2010.0794%206.95933%2010.2705C6.12185%2010.8871%205.32727%2011.3276%204.65562%2011.5859C4.54378%2011.6289%204.43889%2011.6641%204.34312%2011.6943C4.33709%2011.6883%204.33157%2011.6818%204.32554%2011.6758C3.96563%2011.3159%203.62519%2010.9465%203.30308%2010.5732C3.25943%2010.6743%203.21876%2010.774%203.18101%2010.8721C2.92141%2011.547%202.82699%2012.0856%202.83628%2012.4668C2.8455%2012.837%202.94559%2012.9695%202.98863%2013.0127C3.03161%2013.0556%203.16385%2013.1558%203.53453%2013.165C3.91567%2013.1744%204.45421%2013.0809%205.12925%2012.8213C5.22682%2012.7838%205.32562%2012.7426%205.42613%2012.6992L5.72886%2012.5615C5.82561%2012.5155%205.923%2012.4661%206.02183%2012.415C6.03487%2012.4083%206.04782%2012.4014%206.06089%2012.3945C6.25404%2012.2937%206.45113%2012.184%206.65074%2012.0645C6.66312%2012.057%206.67545%2012.0495%206.68785%2012.042C7.10819%2011.7882%207.54052%2011.4933%207.97691%2011.1592C8.54068%2010.7274%209.11223%2010.2309%209.67125%209.67187C9.8789%209.46421%2010.0775%209.25379%2010.2679%209.04395C10.8852%209.88206%2011.3267%2010.6765%2011.5853%2011.3486C11.6281%2011.46%2011.6617%2011.5647%2011.6918%2011.6602C11.6865%2011.6654%2011.6814%2011.6715%2011.6761%2011.6768C11.3168%2012.036%2010.9481%2012.3767%2010.5755%2012.6982C10.6757%2012.7415%2010.7741%2012.7829%2010.8714%2012.8203C11.5465%2013.0799%2012.085%2013.1743%2012.4662%2013.165C12.8363%2013.1558%2012.9689%2013.0548%2013.0121%2013.0117C13.055%2012.9686%2013.1551%2012.8368%2013.1644%2012.4668C13.1738%2012.0857%2013.0803%2011.5472%2012.8207%2010.8721C12.7829%2010.7739%2012.7413%2010.6744%2012.6976%2010.5732L12.6966%2010.5752C12.3536%209.78076%2011.8299%208.89921%2011.14%208.00195L11.141%208C10.7134%207.44384%2010.2225%206.88135%209.67125%206.33008C9.46351%206.12234%209.25324%205.92389%209.04332%205.7334C9.88133%205.11621%2010.676%204.67454%2011.348%204.41602C11.4591%204.3733%2011.5633%204.33954%2011.6586%204.30957C11.664%204.31505%2011.6706%204.31971%2011.6761%204.3252C12.0357%204.68478%2012.3768%205.0529%2012.6986%205.42578C12.7418%205.32571%2012.7833%205.22705%2012.8207%205.12988C13.0802%204.45477%2013.1738%203.91625%2013.1644%203.53516C13.1551%203.1647%2013.055%203.03222%2013.0121%202.98926C12.9689%202.94623%2012.836%202.84619%2012.4662%202.83691C12.0851%202.82757%2011.5463%202.92212%2010.8714%203.18164C10.7739%203.21917%2010.6741%203.25937%2010.5736%203.30273L10.5746%203.30371C10.287%203.42782%209.98789%203.57517%209.68101%203.74609C9.66058%203.75746%209.63999%203.7687%209.61949%203.78027C9.09706%204.07545%208.55231%204.43769%208.00132%204.86133L8.00035%204.86035C7.44412%205.28806%206.8819%205.77961%206.33043%206.33105C6.12228%206.5392%205.92165%206.74865%205.73082%206.95898C5.11434%206.12161%204.67367%205.32779%204.41539%204.65625C4.37233%204.54427%204.33818%204.43963%204.30796%204.34375C4.31369%204.33801%204.31981%204.33191%204.32554%204.32617C4.68561%203.96613%205.05372%203.62396%205.42711%203.30176C5.3265%203.25832%205.22693%203.21823%205.12925%203.18066C4.45399%202.92098%203.91569%202.82651%203.53453%202.83594Z'%20fill='url(%23paint0_linear_0_45)'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_0_45'%20x1='-0.0410981'%20y1='-0.0418891'%20x2='16.0442'%20y2='16.0409'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%230E42D2'/%3e%3cstop%20offset='1'%20stop-color='%234080FF'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e", N = "data:image/svg+xml,%3csvg%20preserveAspectRatio='none'%20overflow='visible'%20style='display:%20block;'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Frame'%3e%3cpath%20id='Vector'%20d='M12.916%206.6414H3.13318'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke='%2386909C'/%3e%3cpath%20id='Vector_2'%20d='M9.65508%203.38046L12.916%206.6414'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke='%2386909C'/%3e%3cpath%20id='Vector_3'%20d='M3.35033%209.3586H13.1332'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke='%2386909C'/%3e%3cpath%20id='Vector_4'%20d='M3.35033%209.3586L6.61129%2012.6195'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke='%2386909C'/%3e%3c/g%3e%3c/svg%3e", O = "data:image/svg+xml,%3csvg%20preserveAspectRatio='none'%20overflow='visible'%20style='display:%20block;'%20width='14'%20height='14'%20viewBox='0%200%2014%2014'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='interactive-button/search'%3e%3cpath%20id='Vector'%20d='M9.23316%203.45857C7.63852%201.86393%205.0531%201.86393%203.45846%203.45857C1.86382%205.05321%201.86382%207.63863%203.45846%209.23327C5.0531%2010.8279%207.63852%2010.8279%209.23316%209.23327C10.8278%207.63863%2010.8278%205.05321%209.23316%203.45857ZM2.6335%202.63361C4.68375%200.583358%208.00787%200.583358%2010.0581%202.63361C11.969%204.54444%2012.0989%207.56177%2010.4479%209.62309L12.533%2011.7081L11.708%2012.5331L9.62298%2010.4481C7.56166%2012.099%204.54433%2011.9691%202.6335%2010.0582C0.583247%208.00798%200.583247%204.68386%202.6335%202.63361Z'%20fill-rule='evenodd'%20clip-rule='evenodd'%20fill='%234E5969'/%3e%3c/g%3e%3c/svg%3e", Z = ["src"], $ = { class: "fkp-switcher-image" }, R = ["src"], x = { class: "fkp-switcher-option-label" }, G = { class: "fkp-switcher-image" }, H = ["src"], W = { class: "fkp-switcher-image" }, q = ["src"], z = /* @__PURE__ */ B({
4
+ name: "FkpSwitcher",
5
+ inheritAttrs: !1,
6
+ __name: "FkpSwitcher",
7
+ props: {
8
+ modelValue: { type: [String, Number, Boolean] },
9
+ options: { default: () => [] },
10
+ disabled: { type: Boolean, default: !1 },
11
+ loading: { type: Boolean, default: !1 },
12
+ placeholder: { default: "请选择" },
13
+ ariaLabel: { default: "切换选项" },
14
+ iconUrl: {},
15
+ searchable: { type: Boolean, default: !1 },
16
+ searchPlaceholder: { default: "搜索选项" }
17
+ },
18
+ emits: ["update:modelValue", "change"],
19
+ setup(y, { emit: S }) {
20
+ const t = y, C = S, f = u(
21
+ () => t.options.find((e) => e.value === t.modelValue)
22
+ ), V = u(
23
+ () => {
24
+ var e;
25
+ return ((e = f.value) == null ? void 0 : e.iconUrl) || t.iconUrl || k;
26
+ }
27
+ ), h = c(), s = c(!1), i = c(!1), p = c(""), L = u(
28
+ () => t.options.filter(
29
+ (e) => !t.searchable || e.label.toLocaleLowerCase().includes(p.value.trim().toLocaleLowerCase())
30
+ )
31
+ );
32
+ F(s, (e) => {
33
+ e || (p.value = "", i.value = !1);
34
+ });
35
+ function _(e) {
36
+ t.disabled || t.loading || (e.key === "ArrowDown" || e.key === "ArrowUp") && (i.value = !0, s.value || (e.preventDefault(), e.stopPropagation(), s.value = !0));
37
+ }
38
+ function w() {
39
+ var e, o;
40
+ i.value = !0, (o = (e = h.value) == null ? void 0 : e.querySelector("input")) == null || o.focus();
41
+ }
42
+ function M() {
43
+ s.value = !1, w();
44
+ }
45
+ function U(e) {
46
+ const o = t.options.find((l) => l.value === e);
47
+ t.disabled || t.loading || !o || o.disabled || (C("update:modelValue", o.value), C("change", o.value, o));
48
+ }
49
+ return (e, o) => (P(), A("span", {
50
+ ref_key: "root",
51
+ ref: h,
52
+ class: "fkp-switcher-container",
53
+ onKeydownCapture: _
54
+ }, [
55
+ g(r(D), j({
56
+ "popup-visible": s.value,
57
+ "onUpdate:popupVisible": o[4] || (o[4] = (l) => s.value = l)
58
+ }, e.$attrs, {
59
+ class: "fkp-switcher",
60
+ "model-value": e.modelValue,
61
+ options: L.value,
62
+ "fallback-option": (l) => e.options.find((v) => v.value === l) || {
63
+ value: String(l),
64
+ label: String(l)
65
+ },
66
+ "show-extra-options": !1,
67
+ "show-header-on-empty": !0,
68
+ disabled: e.disabled || e.loading,
69
+ loading: e.loading,
70
+ placeholder: e.placeholder,
71
+ "aria-label": e.ariaLabel,
72
+ "trigger-props": {
73
+ contentClass: [
74
+ "fkp-switcher-popup",
75
+ {
76
+ "fkp-switcher-searchable": e.searchable,
77
+ "fkp-switcher-keyboard": i.value
78
+ }
79
+ ],
80
+ autoFitPopupWidth: !1,
81
+ autoFitPopupMinWidth: !1,
82
+ position: "bottom",
83
+ popupOffset: 14,
84
+ showArrow: !0,
85
+ arrowClass: "fkp-switcher-arrow"
86
+ },
87
+ onChange: U
88
+ }), I({
89
+ option: n(({ data: l }) => [
90
+ a("span", {
91
+ class: "fkp-switcher-option",
92
+ onMousemove: o[3] || (o[3] = (v) => i.value = !1)
93
+ }, [
94
+ m(e.$slots, "option-icon", { option: l }, () => [
95
+ a("span", $, [
96
+ a("img", {
97
+ src: l.iconUrl || e.iconUrl || r(k),
98
+ alt: ""
99
+ }, null, 8, R)
100
+ ])
101
+ ]),
102
+ a("span", x, K(l.label), 1)
103
+ ], 32)
104
+ ]),
105
+ prefix: n(() => [
106
+ m(e.$slots, "icon", { option: f.value }, () => [
107
+ a("span", G, [
108
+ a("img", {
109
+ src: V.value,
110
+ alt: ""
111
+ }, null, 8, H)
112
+ ])
113
+ ])
114
+ ]),
115
+ "arrow-icon": n(() => [
116
+ a("span", W, [
117
+ a("img", {
118
+ src: r(N),
119
+ alt: ""
120
+ }, null, 8, q)
121
+ ])
122
+ ]),
123
+ _: 2
124
+ }, [
125
+ e.searchable ? {
126
+ name: "header",
127
+ fn: n(() => [
128
+ a("div", {
129
+ class: "fkp-switcher-search",
130
+ onMousedown: o[2] || (o[2] = d(() => {
131
+ }, ["stop"]))
132
+ }, [
133
+ g(r(E), {
134
+ modelValue: p.value,
135
+ "onUpdate:modelValue": o[0] || (o[0] = (l) => p.value = l),
136
+ placeholder: e.searchPlaceholder,
137
+ "aria-label": e.searchPlaceholder,
138
+ "allow-clear": "",
139
+ onKeydown: [
140
+ o[1] || (o[1] = d(() => {
141
+ }, ["stop"])),
142
+ b(d(M, ["prevent"]), ["esc"]),
143
+ b(d(w, ["prevent"]), ["down"])
144
+ ]
145
+ }, {
146
+ suffix: n(() => [
147
+ a("img", {
148
+ src: r(O),
149
+ alt: ""
150
+ }, null, 8, Z)
151
+ ]),
152
+ _: 1
153
+ }, 8, ["modelValue", "placeholder", "aria-label", "onKeydown"])
154
+ ], 32)
155
+ ]),
156
+ key: "0"
157
+ } : void 0
158
+ ]), 1040, ["popup-visible", "model-value", "options", "fallback-option", "disabled", "loading", "placeholder", "aria-label", "trigger-props"])
159
+ ], 544));
160
+ }
161
+ }), Q = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
162
+ __proto__: null,
163
+ FkpSwitcher: z
164
+ }, Symbol.toStringTag, { value: "Module" }));
165
+ export {
166
+ Q as S,
167
+ z as _
168
+ };
@@ -1,5 +1,5 @@
1
1
  import { b as e } from "./operations-D8pn-_iW.js";
2
- import { c as o } from "./choice-C1SxozNA.js";
2
+ import { c as o } from "./choice-2dbddjJU.js";
3
3
  const n = e(
4
4
  "tableKnowledge",
5
5
  "knowledgeInline",
@@ -1,5 +1,5 @@
1
1
  import { b as i } from "./operations-D8pn-_iW.js";
2
- import { c as e } from "./choice-C1SxozNA.js";
2
+ import { c as e } from "./choice-2dbddjJU.js";
3
3
  const a = i("ticket", "knowledgeInline", e);
4
4
  export {
5
5
  a as default
@@ -0,0 +1,5 @@
1
+ import { c as e } from "./media-upload-BetGuTLJ.js";
2
+ const o = e("image");
3
+ export {
4
+ o as default
5
+ };
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
- import { _ as t } from "./FkpRichText.vue_vue_type_script_setup_true_lang-BowbZoTQ.js";
2
- import { r as g } from "./FkpRichText.vue_vue_type_script_setup_true_lang-BowbZoTQ.js";
3
- import { _ as i } from "./FkpKnowledgeTypePicker.vue_vue_type_script_setup_true_lang-DYwu7oQs.js";
4
- import { e as h } from "./FkpKnowledgeTypePicker.vue_vue_type_script_setup_true_lang-DYwu7oQs.js";
5
- import { s as u, a as w } from "./guard-CXpVx8UR.js";
6
- import { F as a } from "./index-lNhA3N9x.js";
7
- import { _ as v, a as y, b as E, c as M } from "./index-lNhA3N9x.js";
8
- import { N as s } from "./index-D0bJAQSN.js";
9
- import { _ as P } from "./index-D0bJAQSN.js";
10
- import { S as n } from "./index-CS2xQQ8W.js";
11
- import { _ as z } from "./index-CS2xQQ8W.js";
12
- import { E as p } from "./index-DCmHHi07.js";
13
- import { _ as Q } from "./index-DCmHHi07.js";
1
+ import { _ as t } from "./FkpRichText.vue_vue_type_script_setup_true_lang-DIIFWISD.js";
2
+ import { r as g } from "./FkpRichText.vue_vue_type_script_setup_true_lang-DIIFWISD.js";
3
+ import { _ as i } from "./FkpKnowledgeTypePicker.vue_vue_type_script_setup_true_lang--MPtqZY_.js";
4
+ import { a as h } from "./types-PvYB5e85.js";
5
+ import { s as u, e as w } from "./guard-Cr_ny-sR.js";
6
+ import { F as a } from "./index-DBQsQ1ZK.js";
7
+ import { _ as v, a as y, b as E, c as M } from "./index-DBQsQ1ZK.js";
8
+ import { N as s } from "./index-Ck8RYpuE.js";
9
+ import { _ as P } from "./index-Ck8RYpuE.js";
10
+ import { S as n } from "./index-DnmCPdCI.js";
11
+ import { _ as z } from "./index-DnmCPdCI.js";
12
+ import { E as p } from "./index-7x1OTv0m.js";
13
+ import { _ as Q } from "./index-7x1OTv0m.js";
14
14
  const x = {
15
15
  install(e) {
16
16
  for (const [o, r] of Object.entries({
@@ -1,4 +1,4 @@
1
- import { g as s } from "./guard-CXpVx8UR.js";
1
+ import { g as s } from "./guard-Cr_ny-sR.js";
2
2
  const t = {
3
3
  execute(a, o) {
4
4
  const e = s(a);
@@ -1,4 +1,4 @@
1
- import { _ as o, _ as p } from "../FkpKnowledgeTypePicker.vue_vue_type_script_setup_true_lang-DYwu7oQs.js";
1
+ import { _ as o, _ as p } from "../FkpKnowledgeTypePicker.vue_vue_type_script_setup_true_lang--MPtqZY_.js";
2
2
  export {
3
3
  o as FkpKnowledgeTypePicker,
4
4
  p as default
@@ -1,5 +1,5 @@
1
1
  import { b as o } from "./operations-D8pn-_iW.js";
2
- import { c as e } from "./choice-C1SxozNA.js";
2
+ import { c as e } from "./choice-2dbddjJU.js";
3
3
  const a = o("todo", "knowledgeInline", e);
4
4
  export {
5
5
  a as default
@@ -0,0 +1,15 @@
1
+ function c() {
2
+ const e = globalThis.crypto.getRandomValues(new Uint8Array(16));
3
+ e[6] = e[6] & 15 | 64, e[8] = e[8] & 63 | 128;
4
+ const t = Array.from(
5
+ e,
6
+ (r) => r.toString(16).padStart(2, "0")
7
+ ).join("");
8
+ return `${t.slice(0, 8)}-${t.slice(8, 12)}-${t.slice(
9
+ 12,
10
+ 16
11
+ )}-${t.slice(16, 20)}-${t.slice(20)}`;
12
+ }
13
+ export {
14
+ c
15
+ };
@@ -1,4 +1,4 @@
1
- import { f as m, i as A } from "./guard-CXpVx8UR.js";
1
+ import { a as m, d as A } from "./guard-Cr_ny-sR.js";
2
2
  function b(i) {
3
3
  let s = 2166136261;
4
4
  for (let a = 0; a < i.length; a++)
@@ -0,0 +1,158 @@
1
+ import { defineComponent as j, ref as c, watch as I, nextTick as A, openBlock as s, createElementBlock as v, Fragment as w, createBlock as y, unref as d, withKeys as p, withModifiers as m, normalizeStyle as C, withCtx as k, renderList as E, createTextVNode as h, toDisplayString as f, createCommentVNode as b, createElementVNode as O, createVNode as V } from "vue";
2
+ import { Menu as N, MenuItem as B, Modal as H, Input as T } from "@freecallai/ui";
3
+ import { i as D } from "./guard-Cr_ny-sR.js";
4
+ function X(i, a) {
5
+ const n = i == null ? void 0 : i[a];
6
+ return n === void 0 ? ["local"] : Array.isArray(n) ? [
7
+ ...new Set(
8
+ n.filter((e) => e === "local" || e === "online")
9
+ )
10
+ ] : [];
11
+ }
12
+ function F(i) {
13
+ const a = (n) => Array.isArray(n) ? `[${n.map((e) => a(e)).join(",")}]` : n && typeof n == "object" ? `{${Object.keys(n).filter((e) => n[e] !== void 0).sort().map(
14
+ (e) => `${JSON.stringify(e)}:${a(
15
+ n[e]
16
+ )}`
17
+ ).join(",")}}` : JSON.stringify(n) ?? "null";
18
+ return a(i);
19
+ }
20
+ function Y(i) {
21
+ return F(i);
22
+ }
23
+ const L = ["for"], J = {
24
+ key: 0,
25
+ class: "fkp-media-url-error",
26
+ role: "alert"
27
+ }, W = /* @__PURE__ */ j({
28
+ __name: "MediaSourceControls",
29
+ props: {
30
+ menuKind: {},
31
+ dialogKind: {},
32
+ menuStyle: {},
33
+ sources: {}
34
+ },
35
+ emits: ["choose", "submit", "close"],
36
+ setup(i, { emit: a }) {
37
+ const n = i, e = a, u = c(""), l = c(""), g = c();
38
+ I(
39
+ () => n.dialogKind,
40
+ (o) => {
41
+ u.value = "", l.value = "", o && A(() => {
42
+ var t;
43
+ return (t = g.value) == null ? void 0 : t.focus();
44
+ });
45
+ }
46
+ );
47
+ function K() {
48
+ const o = u.value.trim();
49
+ return D(o) ? (l.value = "", e("submit", o), !0) : (l.value = "请输入有效的 http(s) 媒体链接", !1);
50
+ }
51
+ function $() {
52
+ var o;
53
+ (o = g.value) == null || o.focus();
54
+ }
55
+ return (o, t) => (s(), v(w, null, [
56
+ o.menuKind ? (s(), y(d(N), {
57
+ key: 0,
58
+ class: "fkp-media-source-menu",
59
+ style: C(o.menuStyle),
60
+ role: "menu",
61
+ "aria-label": `选择${o.menuKind === "image" ? "图片" : "视频"}来源`,
62
+ onKeydown: t[1] || (t[1] = p(m((r) => e("close"), ["stop"]), ["esc"]))
63
+ }, {
64
+ default: k(() => [
65
+ (s(!0), v(w, null, E(o.sources, (r) => (s(), y(d(B), {
66
+ key: r,
67
+ role: "menuitem",
68
+ tabindex: "0",
69
+ onMousedown: t[0] || (t[0] = m(() => {
70
+ }, ["prevent"])),
71
+ onClick: (M) => e("choose", r),
72
+ onKeydown: [
73
+ p(m((M) => e("choose", r), ["prevent"]), ["enter"]),
74
+ p(m((M) => e("choose", r), ["prevent"]), ["space"])
75
+ ]
76
+ }, {
77
+ default: k(() => [
78
+ h(f(r === "online" ? "在线" : "本地") + f(o.menuKind === "image" ? "图片" : "视频"), 1)
79
+ ]),
80
+ _: 2
81
+ }, 1032, ["onClick", "onKeydown"]))), 128))
82
+ ]),
83
+ _: 1
84
+ }, 8, ["style", "aria-label"])) : b("", !0),
85
+ o.dialogKind ? (s(), y(d(H), {
86
+ key: 1,
87
+ visible: !0,
88
+ title: `添加在线${o.dialogKind === "image" ? "图片" : "视频"}`,
89
+ width: 420,
90
+ "render-to-body": !1,
91
+ "on-before-ok": K,
92
+ "ok-text": "添加",
93
+ role: "dialog",
94
+ "aria-modal": "true",
95
+ "aria-label": `添加在线${o.dialogKind === "image" ? "图片" : "视频"}`,
96
+ onOpen: $,
97
+ onCancel: t[4] || (t[4] = (r) => e("close"))
98
+ }, {
99
+ default: k(() => [
100
+ O("label", {
101
+ class: "fkp-media-url-label",
102
+ for: `fkp-media-url-${o.dialogKind}`
103
+ }, f(o.dialogKind === "image" ? "图片" : "视频") + "链接", 9, L),
104
+ V(d(T), {
105
+ ref_key: "input",
106
+ ref: g,
107
+ modelValue: u.value,
108
+ "onUpdate:modelValue": t[2] || (t[2] = (r) => u.value = r),
109
+ error: !!l.value,
110
+ "input-attrs": { id: `fkp-media-url-${o.dialogKind}`, type: "url" },
111
+ placeholder: "https://example.com/media",
112
+ onInput: t[3] || (t[3] = (r) => l.value = ""),
113
+ onKeydown: p(m(K, ["prevent"]), ["enter"])
114
+ }, null, 8, ["modelValue", "error", "input-attrs", "onKeydown"]),
115
+ l.value ? (s(), v("p", J, f(l.value), 1)) : b("", !0)
116
+ ]),
117
+ _: 1
118
+ }, 8, ["title", "aria-label"])) : b("", !0)
119
+ ], 64));
120
+ }
121
+ });
122
+ function q() {
123
+ const i = c(null);
124
+ function a(e) {
125
+ i.value = e;
126
+ }
127
+ function n(e, u) {
128
+ (e === "image" || e === "video") && !u && (i.value = null);
129
+ }
130
+ return { suppressedMediaHint: i, suppressMediaHint: a, resumeMediaHintOnHover: n };
131
+ }
132
+ const x = 10, G = {
133
+ image: 5 * 1024 * 1024,
134
+ video: 100 * 1024 * 1024
135
+ }, Q = {
136
+ image: ["image/png", "image/jpeg"],
137
+ video: ["video/mp4"]
138
+ }, S = {
139
+ png: { kind: "image", mime: "image/png" },
140
+ jpg: { kind: "image", mime: "image/jpeg" },
141
+ jpeg: { kind: "image", mime: "image/jpeg" },
142
+ mp4: { kind: "video", mime: "video/mp4" }
143
+ };
144
+ function R(i) {
145
+ const a = i.name.lastIndexOf("."), n = a < 0 ? "" : i.name.slice(a + 1).toLowerCase(), e = Object.prototype.hasOwnProperty.call(S, n) ? S[n] : void 0;
146
+ return !e || i.type && i.type.toLowerCase() !== e.mime ? null : e;
147
+ }
148
+ export {
149
+ x as M,
150
+ W as _,
151
+ R as a,
152
+ G as b,
153
+ F as c,
154
+ Y as d,
155
+ Q as e,
156
+ X as m,
157
+ q as u
158
+ };
@@ -1,4 +1,4 @@
1
- import { p as l, i as c } from "./FkpRichText.vue_vue_type_script_setup_true_lang-BowbZoTQ.js";
1
+ import { p as l, i as c } from "./FkpRichText.vue_vue_type_script_setup_true_lang-DIIFWISD.js";
2
2
  function u(o) {
3
3
  return {
4
4
  id: o,
@@ -0,0 +1,146 @@
1
+ import { e as k } from "./types-PvYB5e85.js";
2
+ import { a as $, b as S, c as T } from "./guard-Cr_ny-sR.js";
3
+ const I = [
4
+ "variable",
5
+ "todo",
6
+ "tableKnowledge",
7
+ "sizeChart",
8
+ "attribute",
9
+ "image",
10
+ "video",
11
+ "originalReply",
12
+ "separator",
13
+ "smallPayment"
14
+ ], x = () => ({
15
+ schemaVersion: 1,
16
+ doc: k()
17
+ });
18
+ function p(s, r, t) {
19
+ return { code: s, message: r, path: t, severity: "error", source: "validation" };
20
+ }
21
+ function P(s) {
22
+ const r = (t, e, c) => {
23
+ var o, l, a, u, i;
24
+ if (![
25
+ "doc",
26
+ "paragraph",
27
+ "text",
28
+ "hardBreak",
29
+ "businessToken",
30
+ "agentSizeChart",
31
+ "originalReply",
32
+ "messageSeparator",
33
+ "mediaBlock"
34
+ ].includes(t.type || ""))
35
+ return e;
36
+ if (t.type !== "text" && ((o = t.marks) != null && o.length)) return `${e}.marks`;
37
+ if (t.type === "text" && ((l = t.marks) != null && l.some(
38
+ (n) => {
39
+ var f;
40
+ return n.type === "link" && (Object.keys(n.attrs || {}).some(
41
+ (m) => !["href", "target"].includes(m)
42
+ ) || ((f = n.attrs) == null ? void 0 : f.target) !== void 0 && n.attrs.target !== "_self");
43
+ }
44
+ )))
45
+ return `${e}.marks`;
46
+ if (t.type === "businessToken") {
47
+ const n = (a = t.attrs) == null ? void 0 : a.kind;
48
+ if (![
49
+ "variable",
50
+ "todo",
51
+ "tableKnowledge",
52
+ "attribute",
53
+ "separator",
54
+ "tool"
55
+ ].includes(String(n)) || n === "tool" && ((u = t.attrs) == null ? void 0 : u.key) !== "small_payment")
56
+ return `${e}.attrs.kind`;
57
+ }
58
+ if (t.type === "agentSizeChart") {
59
+ if (c !== "paragraph") return e;
60
+ if (!t.attrs || Object.keys(t.attrs).some((n) => n !== "name") || typeof t.attrs.name != "string" || !t.attrs.name.trim() || /[#@<>\r\n]/u.test(t.attrs.name) || (i = t.content) != null && i.length)
61
+ return `${e}.attrs.name`;
62
+ }
63
+ for (const [n, f] of (t.content || []).entries()) {
64
+ const m = r(f, `${e}.content[${n}]`, t.type);
65
+ if (m) return m;
66
+ }
67
+ return null;
68
+ };
69
+ return r(s, "doc");
70
+ }
71
+ function d(s) {
72
+ var r;
73
+ return s.type === "agentSizeChart" ? { type: "text", text: `#@${((r = s.attrs) == null ? void 0 : r.name) || ""}@#` } : {
74
+ ...s,
75
+ ...s.content ? { content: s.content.map(d) } : {}
76
+ };
77
+ }
78
+ function C(s) {
79
+ const r = $(s);
80
+ if (r !== null) return r || "modelValue";
81
+ if (!s || typeof s != "object" || Array.isArray(s))
82
+ return "modelValue";
83
+ const t = s;
84
+ if (t.schemaVersion !== 1) return "schemaVersion";
85
+ if (Object.keys(t).some((o) => !["schemaVersion", "doc"].includes(o)))
86
+ return Object.keys(t).find(
87
+ (o) => !["schemaVersion", "doc"].includes(o)
88
+ );
89
+ if (!t.doc || typeof t.doc != "object" || Array.isArray(t.doc))
90
+ return "doc";
91
+ const e = t.doc, c = P(e);
92
+ return c || S(
93
+ d(e),
94
+ "doc",
95
+ !0
96
+ );
97
+ }
98
+ function _(s) {
99
+ let r = 0;
100
+ const t = (e) => {
101
+ var c, o, l, a;
102
+ if (e.type === "text" && (r += (e.text || "").replace(/[\r\n]/gu, "").length), e.type === "agentSizeChart" && (r += `#@${((c = e.attrs) == null ? void 0 : c.name) || ""}@#`.length), e.type === "businessToken") {
103
+ const { kind: u, key: i, label: n, params: f } = e.attrs || {};
104
+ u === "tableKnowledge" ? r += `##${n || ""}##`.length : u === "attribute" ? r += `{业务属性@${n || ""}}`.length : u === "todo" ? r += n === "默认" && ((o = e.attrs) == null ? void 0 : o.token) === "{待办}" ? 4 : `{待办@${n || i || ""}}`.length : u === "separator" ? r += 5 : u === "tool" && i === "small_payment" ? r += `$$小额打款@${Number(f == null ? void 0 : f.amount) * 100}$$`.length : r += String(((l = e.attrs) == null ? void 0 : l.token) || n || i || "").length;
105
+ }
106
+ (a = e.content) == null || a.forEach(t);
107
+ };
108
+ return t(s.doc), r;
109
+ }
110
+ function O(s, r = 1e4) {
111
+ const t = C(s);
112
+ if (t)
113
+ return [
114
+ p("PROMPT_DOCUMENT_INVALID", "提示词文档包含无效内容", t)
115
+ ];
116
+ const e = /* @__PURE__ */ new Set(), c = /* @__PURE__ */ new Set();
117
+ let o = 0, l = !1;
118
+ const a = [], u = (i, n) => {
119
+ var f, m;
120
+ if (i.type === "text" && (i.text || "").trim() && (l = !0), i.type === "agentSizeChart" && (e.add(String((f = i.attrs) == null ? void 0 : f.name).trim()), l = !0), i.type === "businessToken") {
121
+ const { kind: y, key: g, label: b, params: h } = i.attrs || {};
122
+ y === "tableKnowledge" && c.add(String(b).trim()), y === "tool" && g === "small_payment" && (o++, T(h == null ? void 0 : h.amount) || a.push(
123
+ p(
124
+ "PAYMENT_INVALID",
125
+ "小额打款金额必须为 1–99 整数元",
126
+ `${n}.attrs.params.amount`
127
+ )
128
+ )), l = !0;
129
+ }
130
+ (i.type === "mediaBlock" || i.type === "originalReply") && (l = !0), (m = i.content) == null || m.forEach(
131
+ (y, g) => u(y, `${n}.content[${g}]`)
132
+ );
133
+ };
134
+ return u(s.doc, "doc"), l || a.push(p("PROMPT_EMPTY", "请填写提示词", "doc")), _(s) > r && a.push(
135
+ p("PROMPT_TOO_LONG", `提示词不能超过 ${r} 字`, "doc")
136
+ ), c.size > 5 && a.push(p("TABLE_LIMIT", "最多引用 5 个表格知识", "doc")), e.size > 4 && a.push(p("SIZE_LIMIT", "最多引用 4 个尺码表", "doc")), c.size && e.size && a.push(
137
+ p("TABLE_SIZE_CONFLICT", "表格知识与尺码表不能同时引用", "doc")
138
+ ), o > 1 && a.push(p("PAYMENT_LIMIT", "最多配置一个小额打款工具", "doc")), a;
139
+ }
140
+ export {
141
+ I as a,
142
+ _ as c,
143
+ x as e,
144
+ C as f,
145
+ O as v
146
+ };
@@ -1,4 +1,4 @@
1
- import { _ as i } from "../index-D0bJAQSN.js";
1
+ import { _ as i } from "../index-Ck8RYpuE.js";
2
2
  export {
3
3
  i as FkpNavigation
4
4
  };