@kodaris/krubble-app-components 1.0.70 → 1.0.72

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/dist/chatbot.d.ts CHANGED
@@ -1,27 +1,72 @@
1
1
  import { LitElement } from 'lit';
2
2
  /**
3
- /**
4
- * An image shown on a chat message. `url` is what the thumbnail/lightbox render:
5
- * an object URL for an image the user just sent, or a server view URL for one
6
- * loaded from conversation history.
3
+ * An internal file stored on the server. Mirrors the backend InternalFileViewDto
4
+ * (and its InternalFileCreateUpdateDto base), so files loaded with a conversation
5
+ * pass through unchanged. The chatbot displays images from these by building a
6
+ * view URL from `internalFileID` at render time.
7
7
  */
8
- export interface KRChatbotAttachment {
9
- /** URL used to display the image (thumbnail + lightbox). */
10
- url: string;
11
- /** Original filename, if known. */
12
- name?: string;
13
- /** MIME type, if known. */
8
+ export interface KRChatbotInternalFile {
9
+ internalFileID: number;
10
+ internalFileUUID?: string;
11
+ niceName?: string;
14
12
  mimeType?: string;
13
+ lastModified?: string;
14
+ fileType?: string;
15
+ path?: string;
16
+ created?: string;
17
+ entityID?: number;
18
+ entityType?: string;
19
+ geoCoordinates?: string;
20
+ imageDetectionType?: string;
21
+ name?: string;
22
+ description?: string;
23
+ creator?: string;
24
+ keywords?: string;
25
+ subType?: string;
26
+ alt?: string;
27
+ metadata?: string;
28
+ deleted?: boolean;
29
+ extraText?: string;
30
+ emailID?: number;
31
+ aiPimSource?: string;
32
+ aiPimLastParsed?: string;
33
+ aiPimStatus?: string;
34
+ folder?: string;
35
+ status?: string;
36
+ extra1?: string;
37
+ extra2?: string;
38
+ extra3?: string;
39
+ extra4?: string;
40
+ extra5?: string;
41
+ parentInternalFileID?: number;
42
+ isFolder?: boolean;
43
+ type?: string;
44
+ aiPimEnabled?: boolean;
15
45
  }
16
46
  /**
17
- * Chat message interface
47
+ * Chat message interface. Field names mirror the backend
48
+ * ConversationMessageViewDto so loaded messages pass through without remapping.
18
49
  */
19
50
  export interface KRChatbotMessage {
20
- role: 'user' | 'assistant';
51
+ type: 'user' | 'assistant';
21
52
  content: string;
22
53
  reasoning?: string;
23
- /** Images attached to this message (user messages only, for now). */
24
- attachments?: KRChatbotAttachment[];
54
+ /** Internal files attached to this message. */
55
+ internalFiles?: KRChatbotInternalFile[];
56
+ }
57
+ /**
58
+ * A skill the user can invoke from the composer. Selecting one inserts
59
+ * `/name ` into the message body — there is no persistent skill state.
60
+ */
61
+ export interface KRChatbotSkill {
62
+ /** Slash name inserted into the message (e.g. `invoice-auditor`). */
63
+ name: string;
64
+ /** Human-readable label shown in the menu and browse dialog. */
65
+ label: string;
66
+ /** Short description shown in the browse dialog cards. */
67
+ description?: string;
68
+ /** Which catalog the skill belongs to, for the browse dialog tabs. */
69
+ source?: 'org' | 'kodaris';
25
70
  }
26
71
  /**
27
72
  * Callback function type for sending messages.
@@ -32,7 +77,7 @@ export interface KRChatbotMessage {
32
77
  export type KRChatbotSend = (params: {
33
78
  message: string;
34
79
  messages: KRChatbotMessage[];
35
- files: File[];
80
+ internalFiles: File[];
36
81
  }) => Promise<Response>;
37
82
  /**
38
83
  * AI chatbot component with SSE streaming.
@@ -54,7 +99,7 @@ export type KRChatbotSend = (params: {
54
99
  * ## Usage
55
100
  * ```html
56
101
  * <kr-chatbot
57
- * title="AI Assistant"
102
+ * label="AI Assistant"
58
103
  * .send=${(params) => {
59
104
  * return fetch('/api/ai/chat/stream', {
60
105
  * method: 'POST',
@@ -94,16 +139,25 @@ export declare class KRChatbot extends LitElement {
94
139
  /**
95
140
  * Callback function for sending messages. Receives the user's message and
96
141
  * current conversation history. Must return a Response with a streaming SSE body.
142
+ *
143
+ * Optional — when not set, the chatbot uses its built-in default that streams
144
+ * from the Kodaris Bedrock conversation endpoints. Set this to override.
97
145
  */
98
146
  send: KRChatbotSend | null;
99
147
  /**
100
148
  * Callback function called when the user clears the conversation.
101
149
  * Must return a Promise — messages are only cleared if it resolves.
150
+ *
151
+ * Optional — when not set, the chatbot uses its built-in default that clears
152
+ * the Kodaris Bedrock conversation state. Set this to override.
102
153
  */
103
154
  clear: (() => Promise<unknown>) | null;
104
155
  /**
105
156
  * Callback function called on init to load existing conversation messages.
106
157
  * Must return a Promise that resolves with an array of KRChatbotMessage.
158
+ *
159
+ * Optional — when not set, the chatbot uses its built-in default that loads
160
+ * existing messages from the Kodaris Bedrock conversation. Set this to override.
107
161
  */
108
162
  load: (() => Promise<KRChatbotMessage[]>) | null;
109
163
  /**
@@ -112,17 +166,19 @@ export declare class KRChatbot extends LitElement {
112
166
  */
113
167
  messages: KRChatbotMessage[];
114
168
  /**
115
- * Header title text.
169
+ * Header label text.
116
170
  */
117
- title: string;
118
- /**
119
- * Header subtitle text (shown below title with a green status dot).
120
- */
121
- subtitle: string;
171
+ label: string;
122
172
  /**
123
173
  * Input placeholder text.
124
174
  */
125
175
  placeholder: string;
176
+ /**
177
+ * Skills the user can invoke by typing `/` in the composer. Selecting one
178
+ * inserts `/name ` into the message. The `/` menu shows the first 15 (filtered
179
+ * as the user types); "Browse all skills" opens a dialog with the full list.
180
+ */
181
+ skills: KRChatbotSkill[];
126
182
  /**
127
183
  * Whether the chat panel is open. Only relevant in floating mode.
128
184
  */
@@ -133,21 +189,49 @@ export declare class KRChatbot extends LitElement {
133
189
  * then driven via the `open()` / `close()` / `toggle()` methods.
134
190
  */
135
191
  hideToggle: boolean;
192
+ /**
193
+ * Layout mode.
194
+ * - `'floating'` (default): the chatbot is a fixed bottom-right widget with a
195
+ * toggle button, and the panel can be dragged and resized. This is the
196
+ * traditional chat-widget appearance.
197
+ * - `'inline'`: the chatbot drops its fixed positioning and fills its parent
198
+ * container (100% width/height, no border radius/shadow, no toggle, no
199
+ * drag/resize). The panel is always open. Use this to embed the chat as a
200
+ * full page or panel region.
201
+ */
202
+ variant: 'floating' | 'inline';
136
203
  private _inputValue;
137
204
  private _isStreaming;
138
- private _statusText;
139
205
  private _error;
140
206
  /** Images staged in the composer, before the message is sent. */
141
- private _pendingAttachments;
207
+ private _pendingInternalFiles;
142
208
  /** True while a file is being dragged over the panel (shows the drop overlay). */
143
209
  private _isDraggingFile;
210
+ /** Whether the `/` skill menu is open above the composer. */
211
+ private _skillMenuOpened;
212
+ /** Current `/` query (text after the slash), used to filter the skill menu. */
213
+ private _skillQuery;
214
+ /** Highlighted item in the skill menu for keyboard navigation (-1 = none). */
215
+ private _skillHighlighted;
216
+ /** Index of the message whose copy button just flashed "Copied" (-1 = none). */
217
+ private _copiedIndex;
218
+ /** Whether the "Browse all skills" dialog is open. */
219
+ private _skillBrowseOpened;
220
+ /** Active tab in the browse dialog. */
221
+ private _skillBrowseSource;
222
+ /** Search text in the browse dialog. */
223
+ private _skillBrowseQuery;
144
224
  private _panelEl;
145
225
  private _messagesEl;
146
226
  private _inputEl;
147
227
  private _fileInputEl;
228
+ private _inputWrapperEl;
229
+ private _skillMenuEl;
148
230
  connectedCallback(): void;
149
231
  disconnectedCallback(): void;
150
232
  updated(changed: Map<string, unknown>): void;
233
+ /** Anchor the fixed skill menu to the composer, opening upward above it. */
234
+ private _positionSkillMenu;
151
235
  /**
152
236
  * Stops the current stream without clearing the conversation.
153
237
  */
@@ -189,6 +273,22 @@ export declare class KRChatbot extends LitElement {
189
273
  private _applyStoredLayout;
190
274
  private _handleInputChange;
191
275
  private _handleKeyDown;
276
+ /** Run the skill-menu item at the given flat index (0/1 = actions, then skills). */
277
+ private _activateSkillMenuItem;
278
+ /** Skills matching the current `/` query, capped at the first 15. */
279
+ private _filteredSkills;
280
+ /** The `+` button toggles the skill/attachment menu open (showing all skills). */
281
+ private _handlePlusClick;
282
+ /** Insert `/name ` into the composer and focus it, ready for the message. */
283
+ private _handleSkillSelect;
284
+ /** Copy a message's text to the clipboard and briefly flash "Copied". */
285
+ private _handleCopyMessage;
286
+ private _handleSkillBrowseOpen;
287
+ private _handleSkillBrowseClose;
288
+ private _handleSkillBrowseSearch;
289
+ private _handleSkillBrowseTabChange;
290
+ /** Skills for the browse dialog's active tab, filtered by its search box. */
291
+ private _browseSkills;
192
292
  private _openFilePicker;
193
293
  private _handleFileInputChange;
194
294
  private _handlePaste;
@@ -201,8 +301,8 @@ export declare class KRChatbot extends LitElement {
201
301
  private _addFiles;
202
302
  private _removePending;
203
303
  private _clearPending;
204
- /** Open the shared full-screen previewer for an attachment. */
205
- private _openAttachment;
304
+ /** Open the shared full-screen previewer for a message image. */
305
+ private _openImage;
206
306
  /** Whether the send button is active: needs text or at least one image. */
207
307
  private _canSend;
208
308
  private _handleSubmit;
@@ -212,6 +312,17 @@ export declare class KRChatbot extends LitElement {
212
312
  private _handleErrorDismiss;
213
313
  private _readStreamChunk;
214
314
  private _handleStreamError;
315
+ /** The `/` skill menu shown above the composer while typing a slash command. */
316
+ private _renderSkillMenu;
317
+ /** The "Browse all skills" dialog — a searchable grid of Org / Kodaris cards. */
318
+ private _renderSkillBrowse;
319
+ /** The card grid for the browse dialog's active tab. */
320
+ private _renderSkillGrid;
321
+ /**
322
+ * Render a user message, highlighting a leading `/skill-name` token when it
323
+ * matches a known skill (like the way Claude highlights slash commands).
324
+ */
325
+ private _renderUserContent;
215
326
  render(): import("lit-html").TemplateResult<1>;
216
327
  }
217
328
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"chatbot.d.ts","sourceRoot":"","sources":["../src/chatbot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatbot.d.ts","sourceRoot":"","sources":["../src/chatbot.ts"],"names":[],"mappings":"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"}