@doderasoftware/restify-ai 0.1.0-beta.6 → 0.1.0-beta.8

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 (56) hide show
  1. package/README.md +855 -262
  2. package/dist/components/AiAvatar.vue.d.ts.map +1 -1
  3. package/dist/components/AiChatDrawer.vue.d.ts +3 -3
  4. package/dist/components/AiChatDrawer.vue.d.ts.map +1 -1
  5. package/dist/components/AiEmptyState.vue.d.ts.map +1 -1
  6. package/dist/components/ChatInput.vue.d.ts.map +1 -1
  7. package/dist/components/ChatMessage.vue.d.ts.map +1 -1
  8. package/dist/components/ChatMessageActions.vue.d.ts.map +1 -1
  9. package/dist/components/ErrorBoundary.vue.d.ts +74 -0
  10. package/dist/components/ErrorBoundary.vue.d.ts.map +1 -0
  11. package/dist/components/MentionList.vue.d.ts.map +1 -1
  12. package/dist/components/UserAvatar.vue.d.ts.map +1 -1
  13. package/dist/components/drawer/ConfirmDialog.vue.d.ts.map +1 -1
  14. package/dist/components/drawer/DrawerHeader.vue.d.ts.map +1 -1
  15. package/dist/components/drawer/DrawerMessageList.vue.d.ts.map +1 -1
  16. package/dist/components/drawer/SetupGuide.vue.d.ts.map +1 -1
  17. package/dist/components/index.d.ts +1 -0
  18. package/dist/components/index.d.ts.map +1 -1
  19. package/dist/components/input/AttachmentsPreview.vue.d.ts.map +1 -1
  20. package/dist/components/input/InputActions.vue.d.ts.map +1 -1
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/restify-ai.js +1191 -1135
  24. package/dist/restify-ai.umd.cjs +42 -42
  25. package/dist/store/index.d.ts +2 -0
  26. package/dist/store/index.d.ts.map +1 -0
  27. package/dist/store/storage.d.ts +30 -0
  28. package/dist/store/storage.d.ts.map +1 -0
  29. package/dist/store/store.d.ts +247 -0
  30. package/dist/store/store.d.ts.map +1 -0
  31. package/dist/store/utils.d.ts +23 -0
  32. package/dist/store/utils.d.ts.map +1 -0
  33. package/dist/store.d.ts +1 -246
  34. package/dist/store.d.ts.map +1 -1
  35. package/dist/style.css +1 -1
  36. package/dist/types/api.d.ts +43 -0
  37. package/dist/types/api.d.ts.map +1 -0
  38. package/dist/types/chat.d.ts +56 -0
  39. package/dist/types/chat.d.ts.map +1 -0
  40. package/dist/types/config.d.ts +167 -0
  41. package/dist/types/config.d.ts.map +1 -0
  42. package/dist/types/index.d.ts +15 -599
  43. package/dist/types/index.d.ts.map +1 -1
  44. package/dist/types/mentions.d.ts +34 -0
  45. package/dist/types/mentions.d.ts.map +1 -0
  46. package/dist/types/setup.d.ts +13 -0
  47. package/dist/types/setup.d.ts.map +1 -0
  48. package/dist/types/slots.d.ts +33 -0
  49. package/dist/types/slots.d.ts.map +1 -0
  50. package/dist/types/suggestions.d.ts +32 -0
  51. package/dist/types/suggestions.d.ts.map +1 -0
  52. package/dist/types/texts.d.ts +56 -0
  53. package/dist/types/texts.d.ts.map +1 -0
  54. package/dist/types/ui.d.ts +101 -0
  55. package/dist/types/ui.d.ts.map +1 -0
  56. package/package.json +11 -3
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Core Chat Types
3
+ */
4
+ export interface ChatAttachment {
5
+ id: string;
6
+ name: string;
7
+ url?: string;
8
+ type?: string;
9
+ size?: number;
10
+ extractedText?: string;
11
+ uploading?: boolean;
12
+ progress?: number;
13
+ previewUrl?: string;
14
+ }
15
+ export interface Mention {
16
+ id: string;
17
+ name: string;
18
+ type: string;
19
+ metadata?: Record<string, any> | null;
20
+ }
21
+ export declare const ChatRoles: {
22
+ readonly Assistant: "assistant";
23
+ readonly User: "user";
24
+ readonly System: "system";
25
+ };
26
+ export type ChatRole = (typeof ChatRoles)[keyof typeof ChatRoles];
27
+ export interface ChatMessage {
28
+ id: string;
29
+ role: ChatRole | string;
30
+ message: string;
31
+ loading?: boolean;
32
+ streaming?: boolean;
33
+ timestamp?: number;
34
+ created_at?: string | Date;
35
+ attachments?: ChatAttachment[];
36
+ mentions?: Mention[];
37
+ }
38
+ export interface ChatQuota {
39
+ limit: number;
40
+ used: number;
41
+ remaining: number;
42
+ }
43
+ export interface ChatError {
44
+ message: string | null;
45
+ failedQuestion: string | null;
46
+ failedAttachments?: ChatAttachment[] | null;
47
+ timestamp: number | null;
48
+ quotaExceeded?: boolean;
49
+ }
50
+ export interface SubmitPayload {
51
+ message: string;
52
+ attachments: ChatAttachment[];
53
+ mentions: Mention[];
54
+ isSupportRequest?: boolean;
55
+ }
56
+ //# sourceMappingURL=chat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/types/chat.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAA;CACtC;AAED,eAAO,MAAM,SAAS;;;;CAIZ,CAAA;AAEV,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAA;AAEjE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,WAAW,CAAC,EAAE,cAAc,EAAE,CAAA;IAC9B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,iBAAiB,CAAC,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;IAC3C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,cAAc,EAAE,CAAA;IAC7B,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B"}
@@ -0,0 +1,167 @@
1
+ import { ChatAttachment, ChatQuota, ChatError, ChatMessage } from './chat';
2
+ import { AiRequestPayload, BeforeSendHook, AfterResponseHook, OnStreamStartHook, OnStreamEndHook, OnStreamChunkHook, StreamParserFunction, RequestInterceptor, ResponseInterceptor, RetryConfig } from './api';
3
+ import { MentionProvider } from './mentions';
4
+ import { SuggestionProvider, AISuggestion, PageContext } from './suggestions';
5
+ import { SetupState } from './setup';
6
+
7
+ /**
8
+ * Configuration for chat history limit behavior
9
+ */
10
+ export interface HistoryLimitConfig {
11
+ limit: number;
12
+ showWarningAt?: number;
13
+ onLimitReached?: () => Promise<boolean> | boolean;
14
+ warningMessage?: string;
15
+ limitMessage?: string;
16
+ }
17
+ /**
18
+ * Configuration for dynamic loading text messages
19
+ */
20
+ export interface LoadingTextConfig {
21
+ messages: string[];
22
+ intervals: number[];
23
+ }
24
+ /**
25
+ * API Endpoints configuration
26
+ */
27
+ export interface RestifyAiEndpoints {
28
+ ask: string;
29
+ uploadFile?: string;
30
+ quota?: string;
31
+ }
32
+ export type TranslateFunction = (key: string, params?: Record<string, any>) => string;
33
+ export type PermissionCheckFunction = (permission: string) => boolean;
34
+ /**
35
+ * Theme configuration
36
+ */
37
+ export interface RestifyAiTheme {
38
+ primaryColor?: string;
39
+ primaryLightColor?: string;
40
+ userBubbleColor?: string;
41
+ userTextColor?: string;
42
+ borderColor?: string;
43
+ textPrimaryColor?: string;
44
+ textMutedColor?: string;
45
+ backgroundColor?: string;
46
+ drawerWidth?: string;
47
+ drawerFullscreenWidth?: string;
48
+ }
49
+ /**
50
+ * Labels/i18n configuration
51
+ */
52
+ export interface RestifyAiLabels {
53
+ title?: string;
54
+ aiName?: string;
55
+ you?: string;
56
+ newChat?: string;
57
+ placeholder?: string;
58
+ inputPlaceholder?: string;
59
+ supportPlaceholder?: string;
60
+ loadingText?: string;
61
+ analyzingText?: string;
62
+ craftingText?: string;
63
+ quotaRemaining?: string;
64
+ noQuota?: string;
65
+ contactSupport?: string;
66
+ close?: string;
67
+ minimize?: string;
68
+ fullscreen?: string;
69
+ exitFullscreen?: string;
70
+ copyToClipboard?: string;
71
+ copied?: string;
72
+ showMore?: string;
73
+ showLess?: string;
74
+ retry?: string;
75
+ attachFiles?: string;
76
+ emptyStateTitle?: string;
77
+ emptyStateDescription?: string;
78
+ keyboardShortcutHint?: string;
79
+ sendMessage?: string;
80
+ attachFile?: string;
81
+ closeConfirmTitle?: string;
82
+ closeConfirmMessage?: string;
83
+ confirmClose?: string;
84
+ cancel?: string;
85
+ toggleSupportMode?: string;
86
+ exitSupportMode?: string;
87
+ historyLimitWarningTitle?: string;
88
+ historyLimitWarningMessage?: string;
89
+ historyLimitReachedTitle?: string;
90
+ historyLimitReachedMessage?: string;
91
+ startNewChat?: string;
92
+ continueChat?: string;
93
+ setupWelcomeTitle?: string;
94
+ setupWelcomeDescription?: string;
95
+ setupApiKeyTitle?: string;
96
+ setupApiKeyDescription?: string;
97
+ setupTestingTitle?: string;
98
+ setupBackendTitle?: string;
99
+ setupBackendDescription?: string;
100
+ setupCompleteTitle?: string;
101
+ }
102
+ /**
103
+ * Main plugin configuration
104
+ */
105
+ export interface RestifyAiConfig {
106
+ endpoints: RestifyAiEndpoints;
107
+ baseUrl?: string;
108
+ getAuthToken: () => string | null | Promise<string | null>;
109
+ getCustomHeaders?: () => Record<string, string> | Promise<Record<string, string>>;
110
+ buildRequest?: (payload: AiRequestPayload) => AiRequestPayload | Promise<AiRequestPayload>;
111
+ parseStreamContent?: StreamParserFunction;
112
+ requestInterceptor?: RequestInterceptor;
113
+ responseInterceptor?: ResponseInterceptor;
114
+ retry?: RetryConfig;
115
+ translate?: TranslateFunction;
116
+ can?: PermissionCheckFunction;
117
+ labels?: RestifyAiLabels;
118
+ mentionProviders?: MentionProvider[];
119
+ suggestionProviders?: SuggestionProvider[];
120
+ defaultSuggestions?: AISuggestion[];
121
+ theme?: RestifyAiTheme;
122
+ chatHistoryLimit?: number;
123
+ maxAttachments?: number;
124
+ maxFileSize?: number;
125
+ acceptedFileTypes?: string;
126
+ chatHistoryKey?: string;
127
+ drawerStateKey?: string;
128
+ keyboardShortcut?: string | null;
129
+ enableSupportMode?: boolean;
130
+ canToggle?: () => boolean;
131
+ assistantAvatar?: any;
132
+ userAvatar?: string | (() => string | null);
133
+ onQuotaFetched?: (quota: ChatQuota) => void;
134
+ onError?: (error: Error) => void;
135
+ onMessageSent?: (message: ChatMessage) => void;
136
+ onResponseReceived?: (message: ChatMessage) => void;
137
+ onDrawerToggle?: (isOpen: boolean) => void;
138
+ onNewChat?: () => void;
139
+ onSetupComplete?: () => void;
140
+ onStreamStart?: OnStreamStartHook;
141
+ onStreamEnd?: OnStreamEndHook;
142
+ onStreamChunk?: OnStreamChunkHook;
143
+ beforeSend?: BeforeSendHook;
144
+ afterResponse?: AfterResponseHook;
145
+ onFileUploadStart?: (file: ChatAttachment) => void;
146
+ onFileUploadProgress?: (file: ChatAttachment, progress: number) => void;
147
+ onFileUploadComplete?: (file: ChatAttachment) => void;
148
+ onFileUploadError?: (file: ChatAttachment, error: Error) => void;
149
+ }
150
+ /**
151
+ * Store state interface
152
+ */
153
+ export interface AiStoreState {
154
+ chatHistoryLimit: number;
155
+ chatHistory: ChatMessage[];
156
+ uploadedFiles: Record<string, ChatAttachment>;
157
+ loading: boolean;
158
+ showChat: boolean;
159
+ isFullscreen: boolean;
160
+ sending: boolean;
161
+ pageContext: PageContext | null;
162
+ quota: ChatQuota;
163
+ error: ChatError;
164
+ supportRequestMode: boolean;
165
+ setupState: SetupState;
166
+ }
167
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}