@n8n/chat 0.47.0 → 0.48.0

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/style.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! Package version @n8n/chat@0.47.0 */
1
+ /*! Package version @n8n/chat@0.48.0 */
2
2
  @charset "UTF-8";.n8n-chat pre code.hljs{display:block;overflow-x:auto;padding:1em}.n8n-chat code.hljs{padding:3px 5px}.n8n-chat .hljs{color:#24292e;background:#fff}.n8n-chat .hljs-doctag,.n8n-chat .hljs-keyword,.n8n-chat .hljs-meta .hljs-keyword,.n8n-chat .hljs-template-tag,.n8n-chat .hljs-template-variable,.n8n-chat .hljs-type,.n8n-chat .hljs-variable.language_{color:#d73a49}.n8n-chat .hljs-title,.n8n-chat .hljs-title.class_,.n8n-chat .hljs-title.class_.inherited__,.n8n-chat .hljs-title.function_{color:#6f42c1}.n8n-chat .hljs-attr,.n8n-chat .hljs-attribute,.n8n-chat .hljs-literal,.n8n-chat .hljs-meta,.n8n-chat .hljs-number,.n8n-chat .hljs-operator,.n8n-chat .hljs-variable,.n8n-chat .hljs-selector-attr,.n8n-chat .hljs-selector-class,.n8n-chat .hljs-selector-id{color:#005cc5}.n8n-chat .hljs-regexp,.n8n-chat .hljs-string,.n8n-chat .hljs-meta .hljs-string{color:#032f62}.n8n-chat .hljs-built_in,.n8n-chat .hljs-symbol{color:#e36209}.n8n-chat .hljs-comment,.n8n-chat .hljs-code,.n8n-chat .hljs-formula{color:#6a737d}.n8n-chat .hljs-name,.n8n-chat .hljs-quote,.n8n-chat .hljs-selector-tag,.n8n-chat .hljs-selector-pseudo{color:#22863a}.n8n-chat .hljs-subst{color:#24292e}.n8n-chat .hljs-section{color:#005cc5;font-weight:700}.n8n-chat .hljs-bullet{color:#735c0f}.n8n-chat .hljs-emphasis{color:#24292e;font-style:italic}.n8n-chat .hljs-strong{color:#24292e;font-weight:700}.n8n-chat .hljs-addition{color:#22863a;background-color:#f0fff4}.n8n-chat .hljs-deletion{color:#b31d28;background-color:#ffeef0}:root{--chat--color-primary: #e74266;--chat--color-primary-shade-50: #db4061;--chat--color-primary-shade-100: #cf3c5c;--chat--color-secondary: #20b69e;--chat--color-secondary-shade-50: #1ca08a;--chat--color-white: #ffffff;--chat--color-light: #f2f4f8;--chat--color-light-shade-50: #e6e9f1;--chat--color-light-shade-100: #c2c5cc;--chat--color-medium: #d2d4d9;--chat--color-dark: #101330;--chat--color-disabled: #777980;--chat--color-typing: #404040;--chat--spacing: 1rem;--chat--border-radius: .25rem;--chat--transition-duration: .15s;--chat--font-family: ( -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif );--chat--window--width: 400px;--chat--window--height: 600px;--chat--window--bottom: var(--chat--spacing);--chat--window--right: var(--chat--spacing);--chat--window--z-index: 9999;--chat--window--border: 1px solid var(--chat--color-light-shade-50);--chat--window--border-radius: var(--chat--border-radius);--chat--window--margin-bottom: var(--chat--spacing);--chat--header-height: auto;--chat--header--padding: var(--chat--spacing);--chat--header--background: var(--chat--color-dark);--chat--header--color: var(--chat--color-light);--chat--header--border-top: none;--chat--header--border-bottom: none;--chat--header--border-left: none;--chat--header--border-right: none;--chat--heading--font-size: 2em;--chat--subtitle--font-size: inherit;--chat--subtitle--line-height: 1.8;--chat--message--font-size: 1rem;--chat--message--padding: var(--chat--spacing);--chat--message--border-radius: var(--chat--border-radius);--chat--message-line-height: 1.5;--chat--message--margin-bottom: calc(var(--chat--spacing) * 1);--chat--message--bot--background: var(--chat--color-white);--chat--message--bot--color: var(--chat--color-dark);--chat--message--bot--border: none;--chat--message--user--background: var(--chat--color-secondary);--chat--message--user--color: var(--chat--color-white);--chat--message--user--border: none;--chat--message--pre--background: rgba(0, 0, 0, .05);--chat--messages-list--padding: var(--chat--spacing);--chat--toggle--size: 64px;--chat--toggle--width: var(--chat--toggle--size);--chat--toggle--height: var(--chat--toggle--size);--chat--toggle--border-radius: 50%;--chat--toggle--background: var(--chat--color-primary);--chat--toggle--hover--background: var(--chat--color-primary-shade-50);--chat--toggle--active--background: var(--chat--color-primary-shade-100);--chat--toggle--color: var(--chat--color-white);--chat--textarea--height: 50px;--chat--textarea--max-height: 30rem;--chat--input--font-size: inherit;--chat--input--border: 0;--chat--input--border-radius: 0;--chat--input--padding: .8rem;--chat--input--background: var(--chat--color-white);--chat--input--text-color: initial;--chat--input--line-height: 1.5;--chat--input--placeholder--font-size: var(--chat--input--font-size);--chat--input--border-active: 0;--chat--input--left--panel--width: 2rem;--chat--button--color: var(--chat--color-light);--chat--button--background: var(--chat--color-primary);--chat--button--padding: calc(var(--chat--spacing) * 1 / 2) var(--chat--spacing);--chat--button--border-radius: var(--chat--border-radius);--chat--button--hover--color: var(--chat--color-light);--chat--button--hover--background: var(--chat--color-primary-shade-50);--chat--close--button--color-hover: var(--chat--color-primary);--chat--input--send--button--background: var(--chat--color-white);--chat--input--send--button--color: var(--chat--color-light);--chat--input--send--button--background-hover: var(--chat--color-primary-shade-50);--chat--input--send--button--color-hover: var(--chat--color-secondary-shade-50);--chat--input--file--button--background: var(--chat--color-white);--chat--input--file--button--color: var(--chat--color-secondary);--chat--input--file--button--background-hover: var(--chat--input--file--button--background);--chat--input--file--button--color-hover: var(--chat--color-secondary-shade-50);--chat--files-spacing: .25rem;--chat--body--background: var(--chat--color-light);--chat--footer--background: var(--chat--color-light);--chat--footer--color: var(--chat--color-dark)}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
3
3
  Theme: GitHub
4
4
  Description: Light theme as seen on github.com
@@ -2,3 +2,4 @@ export * from './chat';
2
2
  export * from './messages';
3
3
  export * from './options';
4
4
  export * from './webhook';
5
+ export * from './streaming';
@@ -29,4 +29,5 @@ export interface ChatOptions {
29
29
  disabled?: Ref<boolean>;
30
30
  allowFileUploads?: Ref<boolean> | boolean;
31
31
  allowedFilesMimeTypes?: Ref<string> | string;
32
+ enableStreaming?: boolean;
32
33
  }
@@ -0,0 +1,18 @@
1
+ export type ChunkType = 'begin' | 'item' | 'end' | 'error';
2
+ export interface StructuredChunk {
3
+ type: ChunkType;
4
+ content?: string;
5
+ metadata: {
6
+ nodeId: string;
7
+ nodeName: string;
8
+ timestamp: number;
9
+ runIndex: number;
10
+ itemIndex: number;
11
+ };
12
+ }
13
+ export interface NodeStreamingState {
14
+ nodeId: string;
15
+ chunks: string[];
16
+ isActive: boolean;
17
+ startTime: number;
18
+ }
@@ -0,0 +1,26 @@
1
+ import { ChatMessage, ChatMessageText } from '../types';
2
+ export interface NodeRunData {
3
+ content: string;
4
+ isComplete: boolean;
5
+ message: ChatMessageText;
6
+ }
7
+ export declare class StreamingMessageManager {
8
+ private nodeRuns;
9
+ private runOrder;
10
+ private activeRuns;
11
+ constructor();
12
+ private getRunKey;
13
+ initializeRun(nodeId: string, runIndex?: number): ChatMessageText;
14
+ registerRunStart(nodeId: string, runIndex?: number): void;
15
+ addRunToActive(nodeId: string, runIndex?: number): ChatMessageText;
16
+ removeRunFromActive(nodeId: string, runIndex?: number): void;
17
+ addChunkToRun(nodeId: string, chunk: string, runIndex?: number): ChatMessageText | null;
18
+ getRunMessage(nodeId: string, runIndex?: number): ChatMessageText | null;
19
+ areAllRunsComplete(): boolean;
20
+ getRunCount(): number;
21
+ getActiveRunCount(): number;
22
+ getAllMessages(): ChatMessageText[];
23
+ reset(): void;
24
+ }
25
+ export declare function createBotMessage(id?: string): ChatMessageText;
26
+ export declare function updateMessageInArray(messages: ChatMessage[], messageId: string, updatedMessage: ChatMessageText): void;
@@ -0,0 +1,6 @@
1
+ import { Ref } from 'vue';
2
+ import { ChatMessage, ChatMessageText } from '../types';
3
+ import { StreamingMessageManager } from './streaming';
4
+ export declare function handleStreamingChunk(chunk: string, nodeId: string | undefined, streamingManager: StreamingMessageManager, receivedMessage: Ref<ChatMessageText | null>, messages: Ref<ChatMessage[]>, runIndex?: number): void;
5
+ export declare function handleNodeStart(nodeId: string, streamingManager: StreamingMessageManager, runIndex?: number): void;
6
+ export declare function handleNodeComplete(nodeId: string, streamingManager: StreamingMessageManager, runIndex?: number): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@n8n/chat",
3
- "version": "0.47.0",
3
+ "version": "0.48.0",
4
4
  "types": "./dist/index.d.ts",
5
5
  "main": "./dist/chat.umd.js",
6
6
  "module": "./dist/chat.es.js",
@@ -32,7 +32,7 @@
32
32
  "uuid": "10.0.0",
33
33
  "vue": "^3.5.13",
34
34
  "vue-markdown-render": "^2.2.1",
35
- "@n8n/design-system": "1.89.0"
35
+ "@n8n/design-system": "1.90.0"
36
36
  },
37
37
  "license": "SEE LICENSE IN LICENSE.md",
38
38
  "homepage": "https://n8n.io",