@freecallai/pro 0.0.12 → 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.
- package/README.md +23 -2
- package/dist/{FkpRichText.vue_vue_type_script_setup_true_lang-DiS7CZdc.js → FkpRichText.vue_vue_type_script_setup_true_lang-D-SOdFra.js} +1364 -1349
- package/dist/{KnowledgeArea-FGgCcubh.js → KnowledgeArea-ClZoLiaZ.js} +1 -1
- package/dist/KnowledgeArea.vue_vue_type_script_setup_true_lang-CoFF-WCe.js +1830 -0
- package/dist/{ToolForm-CHmdyhjh.js → ToolForm-BK9epxdr.js} +1 -1
- package/dist/agent-prompt-editor/index.js +510 -495
- package/dist/agent-prompt-editor/legacy-converter/index.js +2 -2
- package/dist/{choice-CUCsR2dN.js → choice-UgePgrSl.js} +1 -1
- package/dist/{guard-DgExtfXo.js → guard-DPwe4mCm.js} +1 -0
- package/dist/{index-DqJvaPTD.js → index-BIi3k45j.js} +1 -1
- package/dist/index-BMHUPL5x.js +5 -0
- package/dist/{index-pdr6mUf0.js → index-CaA13lC9.js} +1 -1
- package/dist/{index-C54ce9Tn.js → index-ChuzFuNm.js} +1 -1
- package/dist/index-DJLfgC4v.js +5 -0
- package/dist/{index-dnsGFj0F.js → index-DfKH-RZq.js} +2 -2
- package/dist/{index-DaGfiqBX.js → index-DiLMgNEe.js} +1 -1
- package/dist/{index-BwZXmefJ.js → index-RHu4JIw7.js} +1 -1
- package/dist/{index-DIMONp3g.js → index-v1UD08i6.js} +1 -1
- package/dist/index.js +3 -3
- package/dist/{inline-BpwAryXp.js → inline-CVF1zEsG.js} +1 -1
- package/dist/{knowledge-DIzYk2iM.js → knowledge-DWM6tWnP.js} +1 -1
- package/dist/{media-migration-Bnfn27i9.js → media-migration-BctCLEuT.js} +1 -1
- package/dist/{media-policy-tG5OHWSj.js → media-policy-B1UuSN2e.js} +1 -1
- package/dist/{media-upload-_xeZtn3i.js → media-upload-DtH-oCtw.js} +1 -1
- package/dist/{model-DlAjlPai.js → model-VLLhEQfn.js} +1 -1
- package/dist/rich-text/index.js +6 -6
- package/dist/rich-text/legacy-converter/index.js +2 -2
- package/dist/style.css +1 -1
- package/dist/types/agent-prompt-editor/FkpAgentPromptEditor.vue.d.ts +33 -2
- package/dist/types/agent-prompt-editor/index.d.ts +1 -0
- package/dist/types/agent-prompt-editor/types.d.ts +4 -0
- package/dist/types/filters/FkpFilter.vue.d.ts +2 -2
- package/dist/types/filters/FkpFilterDateRange.vue.d.ts +2 -2
- package/dist/types/filters/FkpFilterPeriod.vue.d.ts +2 -2
- package/dist/types/filters/FkpSearchableMultiSelect.vue.d.ts +2 -2
- package/dist/types/index.d.ts +1 -0
- package/dist/types/rich-text/FkpRichText.vue.d.ts +18 -2
- package/dist/types/rich-text/index.d.ts +1 -0
- package/dist/types/rich-text/plugins/attribute/token.d.ts +1 -0
- package/dist/types/rich-text/plugins/tableKnowledge/token.d.ts +1 -0
- package/dist/types/rich-text/plugins/ticket/token.d.ts +2 -1
- package/dist/types/rich-text/plugins/token-catalog.d.ts +4 -1
- package/dist/types/rich-text/plugins/token-definition.d.ts +2 -0
- package/dist/types/rich-text/public/types.d.ts +5 -0
- package/dist/types/rich-text/runtime/document-adapter.d.ts +3 -0
- package/dist/types/rich-text/runtime/tag-validity.d.ts +46 -0
- package/dist/types/rich-text/ui/FkpKnowledgeTypePicker.vue.d.ts +2 -2
- package/dist/types/rich-text/ui/KnowledgeArea.vue.d.ts +9 -0
- package/dist/types/rich-text/ui/MediaSourceControls.vue.d.ts +4 -4
- package/dist/types/rich-text/ui/ToolForm.vue.d.ts +2 -2
- package/dist/types/switcher/FkpSwitcher.vue.d.ts +2 -2
- package/package.json +3 -2
- package/dist/KnowledgeArea.vue_vue_type_script_setup_true_lang-JH_F4CFe.js +0 -1663
- package/dist/index-CMl5mgFR.js +0 -5
- package/dist/index-Cs38tTe4.js +0 -5
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TagValidityPort, TagValidityReport } from '../rich-text/runtime/tag-validity';
|
|
1
2
|
import { CapabilityOption, MediaAsset, Page, PortResult, RichTextInsertOption, RichTextInsertResult, VariableOption } from '../rich-text/public/types';
|
|
2
3
|
import { AgentPromptCapabilityId, AgentPromptIssue } from './model';
|
|
3
4
|
export interface AgentPromptCapabilityRuleV1 {
|
|
@@ -19,6 +20,8 @@ export interface AgentPromptPortContext {
|
|
|
19
20
|
reportProgress?: (percent: number) => void;
|
|
20
21
|
}
|
|
21
22
|
export interface AgentPromptPorts {
|
|
23
|
+
/** 校验提示词正文标签的当前业务状态。 */
|
|
24
|
+
validateTags?: TagValidityPort;
|
|
22
25
|
uploadMedia?: (input: {
|
|
23
26
|
file: File;
|
|
24
27
|
kind: 'image' | 'video';
|
|
@@ -50,6 +53,7 @@ export type AgentPromptInsertInput = {
|
|
|
50
53
|
option?: RichTextInsertOption;
|
|
51
54
|
};
|
|
52
55
|
export interface AgentPromptEditorHandle {
|
|
56
|
+
validateTagValidity(): Promise<TagValidityReport>;
|
|
53
57
|
insertContent(input: AgentPromptInsertInput): Promise<RichTextInsertResult>;
|
|
54
58
|
focus(): void;
|
|
55
59
|
validate(): AgentPromptIssue[];
|
|
@@ -7,14 +7,14 @@ type __VLS_Props = {
|
|
|
7
7
|
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
8
8
|
search: (value: string, field: string | undefined) => any;
|
|
9
9
|
clear: () => any;
|
|
10
|
-
"update:modelValue": (value: FilterModelValue) => any;
|
|
11
10
|
change: (value: FilterModelValue) => any;
|
|
11
|
+
"update:modelValue": (value: FilterModelValue) => any;
|
|
12
12
|
"update:field": (field: string) => any;
|
|
13
13
|
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
14
14
|
onSearch?: ((value: string, field: string | undefined) => any) | undefined;
|
|
15
15
|
onClear?: (() => any) | undefined;
|
|
16
|
-
"onUpdate:modelValue"?: ((value: FilterModelValue) => any) | undefined;
|
|
17
16
|
onChange?: ((value: FilterModelValue) => any) | undefined;
|
|
17
|
+
"onUpdate:modelValue"?: ((value: FilterModelValue) => any) | undefined;
|
|
18
18
|
"onUpdate:field"?: ((field: string) => any) | undefined;
|
|
19
19
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
20
20
|
export default _default;
|
|
@@ -4,10 +4,10 @@ type __VLS_Props = {
|
|
|
4
4
|
disabled?: boolean;
|
|
5
5
|
};
|
|
6
6
|
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
7
|
-
"update:modelValue": (value: string[]) => any;
|
|
8
7
|
change: (value: string[]) => any;
|
|
8
|
+
"update:modelValue": (value: string[]) => any;
|
|
9
9
|
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
10
|
-
"onUpdate:modelValue"?: ((value: string[]) => any) | undefined;
|
|
11
10
|
onChange?: ((value: string[]) => any) | undefined;
|
|
11
|
+
"onUpdate:modelValue"?: ((value: string[]) => any) | undefined;
|
|
12
12
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
13
13
|
export default _default;
|
|
@@ -8,10 +8,10 @@ type __VLS_Props = {
|
|
|
8
8
|
disabled?: boolean;
|
|
9
9
|
};
|
|
10
10
|
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
11
|
-
"update:modelValue": (value: string | number) => any;
|
|
12
11
|
change: (value: string | number) => any;
|
|
12
|
+
"update:modelValue": (value: string | number) => any;
|
|
13
13
|
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
14
|
-
"onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
|
|
15
14
|
onChange?: ((value: string | number) => any) | undefined;
|
|
15
|
+
"onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
|
|
16
16
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
17
17
|
export default _default;
|
|
@@ -22,11 +22,11 @@ declare function __VLS_template(): {
|
|
|
22
22
|
};
|
|
23
23
|
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
24
24
|
declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
25
|
-
"update:modelValue": (value: FilterValue[]) => any;
|
|
26
25
|
change: (value: FilterValue[]) => any;
|
|
26
|
+
"update:modelValue": (value: FilterValue[]) => any;
|
|
27
27
|
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
28
|
-
"onUpdate:modelValue"?: ((value: FilterValue[]) => any) | undefined;
|
|
29
28
|
onChange?: ((value: FilterValue[]) => any) | undefined;
|
|
29
|
+
"onUpdate:modelValue"?: ((value: FilterValue[]) => any) | undefined;
|
|
30
30
|
}>, {
|
|
31
31
|
modelValue: FilterValue[];
|
|
32
32
|
placeholder: string;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export { default as FkpKnowledgeTypePicker } from './knowledge-type-picker';
|
|
|
8
8
|
export type { FkpKnowledgeTypePickerProps } from './knowledge-type-picker';
|
|
9
9
|
export type { MediaSource, MediaSourceOptions, } from './rich-text/runtime/media-sources';
|
|
10
10
|
export type { KnowledgeMode } from './rich-text/types';
|
|
11
|
+
export type { TagValidityInput, TagValidityItem, TagValidityContext, TagValidityPort, TagValidityReport, } from './rich-text/runtime/tag-validity';
|
|
11
12
|
export type { FkpRichTextProps, CapabilityModuleLoader, FkpRichTextHandle, RichTextInsertInput, RichTextInsertOption, RichTextInsertResult, KnowledgeSceneV1, KnowledgeConditionV1, LoadedConditionV1, SaveConditionInputV1, SavedConditionV1, KnowledgePersistenceAdapterV1, KnowledgeType, AddKnowledgeSceneRequest, DeleteKnowledgeSceneRequest, CapabilityId, CapabilitySlot, CapabilityRuleV1, SceneConfigInputV1, RichTextHostPorts, PortRequestContext, PortResult, PortErrorCode, Page, CapabilityOption, ToolFormField, ToolFormDefinition, VariableOption, AgentSummary, AgentPrompt, AgentPromptPreviewPart, MediaAsset, SceneConfigLayersV1, HostPolicySnapshotV1, EditorDiagnostic, ChangeMeta, } from './rich-text/public/types';
|
|
12
13
|
export type { CapabilityDescriptor } from './rich-text/config/descriptor';
|
|
13
14
|
export type { CapabilityModule, PluginInput, PluginOperation, PluginActionContext, } from './rich-text/plugins/operations';
|
|
@@ -4,12 +4,13 @@ import { MediaTarget } from './runtime/media-target';
|
|
|
4
4
|
import { PluginPlan } from './runtime/operations';
|
|
5
5
|
import { CapabilityId, AddKnowledgeSceneRequest, DeleteKnowledgeSceneRequest, ChangeMeta, EditorDiagnostic, FkpRichTextProps, RichTextInsertInput, RichTextInsertResult, KnowledgeSceneV1 } from './public/types';
|
|
6
6
|
declare const _default: import('vue').DefineComponent<FkpRichTextProps, {
|
|
7
|
+
validateTagValidity(): Promise<import('.').TagValidityReport>;
|
|
7
8
|
undoTypeSwitch(): boolean;
|
|
8
9
|
insertContent(input: RichTextInsertInput): Promise<RichTextInsertResult>;
|
|
9
10
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
11
|
+
change: (scene: KnowledgeSceneV1, meta: ChangeMeta) => any;
|
|
10
12
|
delete: (request: DeleteKnowledgeSceneRequest) => any;
|
|
11
13
|
"update:modelValue": (scene: KnowledgeSceneV1) => any;
|
|
12
|
-
change: (scene: KnowledgeSceneV1, meta: ChangeMeta) => any;
|
|
13
14
|
help: (request: {
|
|
14
15
|
capabilityId: CapabilityId;
|
|
15
16
|
}) => any;
|
|
@@ -23,9 +24,9 @@ declare const _default: import('vue').DefineComponent<FkpRichTextProps, {
|
|
|
23
24
|
}) => any;
|
|
24
25
|
"add-scene": (request: AddKnowledgeSceneRequest) => any;
|
|
25
26
|
}, string, import('vue').PublicProps, Readonly<FkpRichTextProps> & Readonly<{
|
|
27
|
+
onChange?: ((scene: KnowledgeSceneV1, meta: ChangeMeta) => any) | undefined;
|
|
26
28
|
onDelete?: ((request: DeleteKnowledgeSceneRequest) => any) | undefined;
|
|
27
29
|
"onUpdate:modelValue"?: ((scene: KnowledgeSceneV1) => any) | undefined;
|
|
28
|
-
onChange?: ((scene: KnowledgeSceneV1, meta: ChangeMeta) => any) | undefined;
|
|
29
30
|
onHelp?: ((request: {
|
|
30
31
|
capabilityId: CapabilityId;
|
|
31
32
|
}) => any) | undefined;
|
|
@@ -52,6 +53,8 @@ declare const _default: import('vue').DefineComponent<FkpRichTextProps, {
|
|
|
52
53
|
toolbarLeft: HTMLDivElement;
|
|
53
54
|
area: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
|
|
54
55
|
modelValue: JSONContent;
|
|
56
|
+
tagValidityPort?: import('.').TagValidityPort;
|
|
57
|
+
tagValidityKey?: string;
|
|
55
58
|
editable: boolean;
|
|
56
59
|
placeholder?: string;
|
|
57
60
|
referencePlaceholder?: boolean;
|
|
@@ -63,6 +66,7 @@ declare const _default: import('vue').DefineComponent<FkpRichTextProps, {
|
|
|
63
66
|
"onUpdate:modelValue"?: ((value: JSONContent) => any) | undefined;
|
|
64
67
|
"onRetry-media"?: ((id: string) => any) | undefined;
|
|
65
68
|
"onLoad-error"?: ((message: string) => any) | undefined;
|
|
69
|
+
"onTag-validity-error"?: ((message: string) => any) | undefined;
|
|
66
70
|
"onEdit-tool"?: ((payload: {
|
|
67
71
|
nodeId: string;
|
|
68
72
|
nodeVersion: number;
|
|
@@ -79,6 +83,10 @@ declare const _default: import('vue').DefineComponent<FkpRichTextProps, {
|
|
|
79
83
|
}) => any) | undefined;
|
|
80
84
|
"onLeave-choice"?: (() => any) | undefined;
|
|
81
85
|
}>, {
|
|
86
|
+
validateTagValidity: () => Promise<import('.').TagValidityReport | {
|
|
87
|
+
status: "unavailable";
|
|
88
|
+
items: never[];
|
|
89
|
+
}>;
|
|
82
90
|
pasteClipboardContent: (event: ClipboardEvent) => MediaTarget | null;
|
|
83
91
|
isSelectionInsideOriginalReply: () => boolean;
|
|
84
92
|
insertToken: (kind: string, key: string, label: string, token?: string, params?: Record<string, unknown>) => boolean;
|
|
@@ -157,6 +165,7 @@ declare const _default: import('vue').DefineComponent<FkpRichTextProps, {
|
|
|
157
165
|
"update:modelValue": (value: JSONContent) => any;
|
|
158
166
|
"retry-media": (id: string) => any;
|
|
159
167
|
"load-error": (message: string) => any;
|
|
168
|
+
"tag-validity-error": (message: string) => any;
|
|
160
169
|
"edit-tool": (payload: {
|
|
161
170
|
nodeId: string;
|
|
162
171
|
nodeVersion: number;
|
|
@@ -183,6 +192,8 @@ declare const _default: import('vue').DefineComponent<FkpRichTextProps, {
|
|
|
183
192
|
Defaults: {};
|
|
184
193
|
}, Readonly<{
|
|
185
194
|
modelValue: JSONContent;
|
|
195
|
+
tagValidityPort?: import('.').TagValidityPort;
|
|
196
|
+
tagValidityKey?: string;
|
|
186
197
|
editable: boolean;
|
|
187
198
|
placeholder?: string;
|
|
188
199
|
referencePlaceholder?: boolean;
|
|
@@ -194,6 +205,7 @@ declare const _default: import('vue').DefineComponent<FkpRichTextProps, {
|
|
|
194
205
|
"onUpdate:modelValue"?: ((value: JSONContent) => any) | undefined;
|
|
195
206
|
"onRetry-media"?: ((id: string) => any) | undefined;
|
|
196
207
|
"onLoad-error"?: ((message: string) => any) | undefined;
|
|
208
|
+
"onTag-validity-error"?: ((message: string) => any) | undefined;
|
|
197
209
|
"onEdit-tool"?: ((payload: {
|
|
198
210
|
nodeId: string;
|
|
199
211
|
nodeVersion: number;
|
|
@@ -210,6 +222,10 @@ declare const _default: import('vue').DefineComponent<FkpRichTextProps, {
|
|
|
210
222
|
}) => any) | undefined;
|
|
211
223
|
"onLeave-choice"?: (() => any) | undefined;
|
|
212
224
|
}>, {
|
|
225
|
+
validateTagValidity: () => Promise<import('.').TagValidityReport | {
|
|
226
|
+
status: "unavailable";
|
|
227
|
+
items: never[];
|
|
228
|
+
}>;
|
|
213
229
|
pasteClipboardContent: (event: ClipboardEvent) => MediaTarget | null;
|
|
214
230
|
isSelectionInsideOriginalReply: () => boolean;
|
|
215
231
|
insertToken: (kind: string, key: string, label: string, token?: string, params?: Record<string, unknown>) => boolean;
|
|
@@ -20,3 +20,4 @@ export { buildAgentInvocationContext } from './model/agent-context';
|
|
|
20
20
|
export type { AgentInvocationContext } from './model/agent-context';
|
|
21
21
|
export { serializeQuestionForModel, serializeQuestionTagsForModel, } from './model/question-text';
|
|
22
22
|
export type { SceneValidationResult, SceneValidationIssue, } from './model/validate';
|
|
23
|
+
export type { TagValidityInput, TagValidityItem, TagValidityContext, TagValidityPort, TagValidityReport, } from './runtime/tag-validity';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare const ticketToken: {
|
|
2
2
|
allowsParams: true;
|
|
3
|
-
validate(attrs: Readonly<Record<string, unknown>>): "
|
|
3
|
+
validate(attrs: Readonly<Record<string, unknown>>): "params" | "key" | "label" | null;
|
|
4
|
+
validateValidity?: false;
|
|
4
5
|
choice: true;
|
|
5
6
|
requiresInsertToken?: true;
|
|
6
7
|
allowInOriginalReply?: false;
|
|
@@ -6,7 +6,8 @@ export declare const tokenCatalog: {
|
|
|
6
6
|
};
|
|
7
7
|
ticket: {
|
|
8
8
|
allowsParams: true;
|
|
9
|
-
validate(attrs: Readonly<Record<string, unknown>>): "
|
|
9
|
+
validate(attrs: Readonly<Record<string, unknown>>): "params" | "key" | "label" | null;
|
|
10
|
+
validateValidity?: false;
|
|
10
11
|
choice: true;
|
|
11
12
|
requiresInsertToken?: true;
|
|
12
13
|
allowInOriginalReply?: false;
|
|
@@ -15,6 +16,7 @@ export declare const tokenCatalog: {
|
|
|
15
16
|
};
|
|
16
17
|
tableKnowledge: {
|
|
17
18
|
validate: (attrs: Readonly<Record<string, unknown>>) => "label" | null;
|
|
19
|
+
validateValidity?: false;
|
|
18
20
|
choice: true;
|
|
19
21
|
requiresInsertToken?: true;
|
|
20
22
|
allowsParams?: true;
|
|
@@ -25,6 +27,7 @@ export declare const tokenCatalog: {
|
|
|
25
27
|
variable: BusinessTokenDefinition;
|
|
26
28
|
attribute: {
|
|
27
29
|
allowInOriginalReply: false;
|
|
30
|
+
validateValidity?: false;
|
|
28
31
|
choice: true;
|
|
29
32
|
requiresInsertToken?: true;
|
|
30
33
|
allowsParams?: true;
|
|
@@ -10,6 +10,8 @@ export interface TokenPresentation {
|
|
|
10
10
|
}
|
|
11
11
|
/** Pure metadata/codecs: importing these contracts never loads editor views. */
|
|
12
12
|
export interface BusinessTokenDefinition {
|
|
13
|
+
/** Fixed markers do not refer to a host-owned object. */
|
|
14
|
+
validateValidity?: false;
|
|
13
15
|
choice?: true;
|
|
14
16
|
requiresInsertToken?: true;
|
|
15
17
|
allowsParams?: true;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TagValidityPort, TagValidityReport } from '../runtime/tag-validity';
|
|
1
2
|
import { JSONContent } from '@tiptap/core';
|
|
2
3
|
import { CapabilityDescriptor } from '../config/descriptor';
|
|
3
4
|
import { CapabilityModule } from '../plugins/operations';
|
|
@@ -504,6 +505,8 @@ export interface MediaAsset {
|
|
|
504
505
|
posterUrl?: string;
|
|
505
506
|
}
|
|
506
507
|
export interface RichTextHostPorts {
|
|
508
|
+
/** 校验正文标签的当前业务状态;失败不等同于失效。 */
|
|
509
|
+
validateTags?: TagValidityPort;
|
|
507
510
|
/** 分页查询变量,返回含 token 的平铺变量选项;可用 group 在前端分栏。
|
|
508
511
|
* @en Search flat, paged variable options with tokens; group controls the client-side columns.
|
|
509
512
|
*/
|
|
@@ -629,6 +632,8 @@ export interface FkpRichTextProps {
|
|
|
629
632
|
}
|
|
630
633
|
export type CapabilityModuleLoader = (descriptor: Readonly<CapabilityDescriptor>) => CapabilityModule | undefined | Promise<CapabilityModule | undefined>;
|
|
631
634
|
export interface FkpRichTextHandle {
|
|
635
|
+
/** 刷新正文标签状态;不会修改正文。 */
|
|
636
|
+
validateTagValidity(): Promise<TagValidityReport>;
|
|
632
637
|
/** 撤销最近一次尚未被后续编辑覆盖的知识类型切换。
|
|
633
638
|
* @en Undo the most recent uninterrupted knowledge type switch.
|
|
634
639
|
*/
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { Extensions } from '@tiptap/core';
|
|
2
|
+
import { Node as ProseMirrorNode } from '@tiptap/pm/model';
|
|
3
|
+
import { TagValidityInput } from './tag-validity';
|
|
2
4
|
import { KnowledgeClipboardAdapter } from './knowledge-clipboard';
|
|
3
5
|
/** Private seam between the document editor and its scene-specific host. */
|
|
4
6
|
export interface DocumentAdapter {
|
|
5
7
|
ariaLabel: string;
|
|
6
8
|
placeholder: string;
|
|
7
9
|
extensions?: Extensions;
|
|
10
|
+
describeTagValidity?: (node: ProseMirrorNode) => Omit<TagValidityInput, 'requestItemId'> | undefined;
|
|
8
11
|
clipboard?: KnowledgeClipboardAdapter;
|
|
9
12
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Extension, Editor } from '@tiptap/core';
|
|
2
|
+
import { Node as ProseMirrorNode } from '@tiptap/pm/model';
|
|
3
|
+
import { PortResult } from '../public/types';
|
|
4
|
+
/** Host-facing description of an inline business reference. */
|
|
5
|
+
export interface TagValidityInput {
|
|
6
|
+
requestItemId: string;
|
|
7
|
+
kind: string;
|
|
8
|
+
key?: string;
|
|
9
|
+
label: string;
|
|
10
|
+
token?: string;
|
|
11
|
+
params?: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
export interface TagValidityItem {
|
|
14
|
+
requestItemId: string;
|
|
15
|
+
status: 'valid' | 'invalid' | 'unknown';
|
|
16
|
+
reason?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface TagValidityContext {
|
|
19
|
+
editorKey: string;
|
|
20
|
+
requestId: string;
|
|
21
|
+
signal: AbortSignal;
|
|
22
|
+
}
|
|
23
|
+
export type TagValidityPort = (input: {
|
|
24
|
+
tags: TagValidityInput[];
|
|
25
|
+
}, context: TagValidityContext) => Promise<PortResult<{
|
|
26
|
+
items: TagValidityItem[];
|
|
27
|
+
}>>;
|
|
28
|
+
export interface TagValidityReport {
|
|
29
|
+
status: 'complete' | 'unavailable' | 'cancelled' | 'error';
|
|
30
|
+
items: Array<TagValidityItem & Omit<TagValidityInput, 'requestItemId'>>;
|
|
31
|
+
message?: string;
|
|
32
|
+
}
|
|
33
|
+
/** Transient state: never put validity or display suffixes in the document. */
|
|
34
|
+
export declare function createTagValiditySession(options: {
|
|
35
|
+
editor: () => Editor | undefined;
|
|
36
|
+
port: () => TagValidityPort | undefined;
|
|
37
|
+
editorKey: () => string;
|
|
38
|
+
onError?: (message: string) => void;
|
|
39
|
+
describeExtra?: (node: ProseMirrorNode) => Omit<TagValidityInput, 'requestItemId'> | undefined;
|
|
40
|
+
}): {
|
|
41
|
+
extension: Extension<any, any>;
|
|
42
|
+
schedule: () => void;
|
|
43
|
+
refresh: () => Promise<TagValidityReport>;
|
|
44
|
+
reset: () => void;
|
|
45
|
+
dispose(): void;
|
|
46
|
+
};
|
|
@@ -14,11 +14,11 @@ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
|
14
14
|
declare const __VLS_component: import('vue').DefineComponent<FkpKnowledgeTypePickerProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
15
15
|
select: (type: KnowledgeType) => any;
|
|
16
16
|
create: (request: AddKnowledgeSceneRequest) => any;
|
|
17
|
-
"update:open": (open: boolean, source: "click" | "
|
|
17
|
+
"update:open": (open: boolean, source: "click" | "select" | "hover" | "leave" | "outside" | "escape") => any;
|
|
18
18
|
}, string, import('vue').PublicProps, Readonly<FkpKnowledgeTypePickerProps> & Readonly<{
|
|
19
19
|
onSelect?: ((type: KnowledgeType) => any) | undefined;
|
|
20
20
|
onCreate?: ((request: AddKnowledgeSceneRequest) => any) | undefined;
|
|
21
|
-
"onUpdate:open"?: ((open: boolean, source: "click" | "
|
|
21
|
+
"onUpdate:open"?: ((open: boolean, source: "click" | "select" | "hover" | "leave" | "outside" | "escape") => any) | undefined;
|
|
22
22
|
}>, {
|
|
23
23
|
open: boolean | null;
|
|
24
24
|
disabled: boolean;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { JSONContent } from '@tiptap/core';
|
|
2
|
+
import { TagValidityPort } from '../runtime/tag-validity';
|
|
2
3
|
import { KnowledgeSchemaPlan } from '../runtime/schema-plan';
|
|
3
4
|
import { DocumentAdapter } from '../runtime/document-adapter';
|
|
4
5
|
import { PasteCapability } from '../runtime/knowledge-clipboard';
|
|
@@ -8,6 +9,8 @@ import { NodeMutationPlan, PluginPlan } from '../runtime/operations';
|
|
|
8
9
|
import { MediaTarget } from '../runtime/media-target';
|
|
9
10
|
type __VLS_Props = {
|
|
10
11
|
modelValue: JSONContent;
|
|
12
|
+
tagValidityPort?: TagValidityPort;
|
|
13
|
+
tagValidityKey?: string;
|
|
11
14
|
editable: boolean;
|
|
12
15
|
placeholder?: string;
|
|
13
16
|
referencePlaceholder?: boolean;
|
|
@@ -70,6 +73,10 @@ declare function captureSelection(): {
|
|
|
70
73
|
declare function restoreSelection(selection: ReturnType<typeof captureSelection>): void;
|
|
71
74
|
declare function pasteClipboardContent(event: ClipboardEvent): MediaTarget | null;
|
|
72
75
|
declare const _default: import('vue').DefineComponent<__VLS_Props, {
|
|
76
|
+
validateTagValidity: () => Promise<import('..').TagValidityReport | {
|
|
77
|
+
status: "unavailable";
|
|
78
|
+
items: never[];
|
|
79
|
+
}>;
|
|
73
80
|
pasteClipboardContent: typeof pasteClipboardContent;
|
|
74
81
|
isSelectionInsideOriginalReply: () => boolean;
|
|
75
82
|
insertToken: typeof insertToken;
|
|
@@ -104,6 +111,7 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {
|
|
|
104
111
|
"update:modelValue": (value: JSONContent) => any;
|
|
105
112
|
"retry-media": (id: string) => any;
|
|
106
113
|
"load-error": (message: string) => any;
|
|
114
|
+
"tag-validity-error": (message: string) => any;
|
|
107
115
|
"edit-tool": (payload: {
|
|
108
116
|
nodeId: string;
|
|
109
117
|
nodeVersion: number;
|
|
@@ -123,6 +131,7 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {
|
|
|
123
131
|
"onUpdate:modelValue"?: ((value: JSONContent) => any) | undefined;
|
|
124
132
|
"onRetry-media"?: ((id: string) => any) | undefined;
|
|
125
133
|
"onLoad-error"?: ((message: string) => any) | undefined;
|
|
134
|
+
"onTag-validity-error"?: ((message: string) => any) | undefined;
|
|
126
135
|
"onEdit-tool"?: ((payload: {
|
|
127
136
|
nodeId: string;
|
|
128
137
|
nodeVersion: number;
|
|
@@ -7,21 +7,21 @@ type __VLS_Props = {
|
|
|
7
7
|
sources: readonly MediaSource[];
|
|
8
8
|
};
|
|
9
9
|
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
10
|
-
|
|
10
|
+
close: () => any;
|
|
11
11
|
submit: (url: string) => any;
|
|
12
|
+
choose: (source: MediaSource) => any;
|
|
12
13
|
"submit-qianniu": (value: {
|
|
13
14
|
id: string;
|
|
14
15
|
url: string;
|
|
15
16
|
}) => any;
|
|
16
|
-
close: () => any;
|
|
17
17
|
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
18
|
-
|
|
18
|
+
onClose?: (() => any) | undefined;
|
|
19
19
|
onSubmit?: ((url: string) => any) | undefined;
|
|
20
|
+
onChoose?: ((source: MediaSource) => any) | undefined;
|
|
20
21
|
"onSubmit-qianniu"?: ((value: {
|
|
21
22
|
id: string;
|
|
22
23
|
url: string;
|
|
23
24
|
}) => any) | undefined;
|
|
24
|
-
onClose?: (() => any) | undefined;
|
|
25
25
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
26
26
|
input: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
|
|
27
27
|
modelValue: StringConstructor;
|
|
@@ -5,10 +5,10 @@ type __VLS_Props = {
|
|
|
5
5
|
submitLabel: string;
|
|
6
6
|
};
|
|
7
7
|
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
8
|
-
submit: (params: Record<string, string | boolean>, focusTrigger: EventTarget | null) => any;
|
|
9
8
|
cancel: () => any;
|
|
9
|
+
submit: (params: Record<string, string | boolean>, focusTrigger: EventTarget | null) => any;
|
|
10
10
|
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
11
|
-
onSubmit?: ((params: Record<string, string | boolean>, focusTrigger: EventTarget | null) => any) | undefined;
|
|
12
11
|
onCancel?: (() => any) | undefined;
|
|
12
|
+
onSubmit?: ((params: Record<string, string | boolean>, focusTrigger: EventTarget | null) => any) | undefined;
|
|
13
13
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
14
14
|
export default _default;
|
|
@@ -27,11 +27,11 @@ declare function __VLS_template(): {
|
|
|
27
27
|
};
|
|
28
28
|
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
29
29
|
declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
30
|
-
"update:modelValue": (value: SwitcherValue) => any;
|
|
31
30
|
change: (value: SwitcherValue, option: SwitcherOption) => any;
|
|
31
|
+
"update:modelValue": (value: SwitcherValue) => any;
|
|
32
32
|
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
33
|
-
"onUpdate:modelValue"?: ((value: SwitcherValue) => any) | undefined;
|
|
34
33
|
onChange?: ((value: SwitcherValue, option: SwitcherOption) => any) | undefined;
|
|
34
|
+
"onUpdate:modelValue"?: ((value: SwitcherValue) => any) | undefined;
|
|
35
35
|
}>, {
|
|
36
36
|
options: SwitcherOption[];
|
|
37
37
|
disabled: boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@freecallai/pro",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.13",
|
|
4
4
|
"description": "福客AI业务组件库",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -92,7 +92,8 @@
|
|
|
92
92
|
"access": "public"
|
|
93
93
|
},
|
|
94
94
|
"scripts": {
|
|
95
|
-
"build": "pnpm check:boundaries && vue-tsc --noEmit && vite build",
|
|
95
|
+
"build": "pnpm check:boundaries && vue-tsc --noEmit && vite build && pnpm check:exports",
|
|
96
|
+
"check:exports": "node scripts/check-exports.mjs",
|
|
96
97
|
"check:boundaries": "node scripts/check-workspace-boundaries.mjs && node scripts/check-rich-text-boundaries.mjs",
|
|
97
98
|
"docgen": "arco-vue-scripts docgen",
|
|
98
99
|
"typecheck": "vue-tsc --noEmit",
|