@netbirdio/explain 0.1.2 → 0.1.5

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.
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
2
  import type { ExplainContext, ExplainEvent } from "../types";
3
+ import { type MessageRenderer } from "./AIChatBot";
3
4
  type AIAssistantContextType = {
4
5
  openChat: (selectedText?: string) => void;
5
6
  closeChat: () => void;
@@ -19,7 +20,8 @@ type AIAssistantProviderProps = {
19
20
  subtitle?: string;
20
21
  onExplain?: (event: ExplainEvent) => void;
21
22
  showChat?: boolean;
23
+ renderMessage?: MessageRenderer;
22
24
  };
23
- export default function AIAssistantProvider({ endpoint, apiKey, children, title, subtitle, onExplain, showChat, }: AIAssistantProviderProps): import("react/jsx-runtime").JSX.Element;
25
+ export default function AIAssistantProvider({ endpoint, apiKey, children, title, subtitle, onExplain, showChat, renderMessage, }: AIAssistantProviderProps): import("react/jsx-runtime").JSX.Element;
24
26
  export {};
25
27
  //# sourceMappingURL=AIAssistantProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AIAssistantProvider.d.ts","sourceRoot":"","sources":["../../src/client/AIAssistantProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAK7D,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,iBAAiB,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IACjD,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACjC,CAAC;AAaF,eAAO,MAAM,cAAc,8BAAuC,CAAC;AAEnE,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAyEF,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAS,EACT,QAAe,GAChB,EAAE,wBAAwB,2CA6L1B"}
1
+ {"version":3,"file":"AIAssistantProvider.d.ts","sourceRoot":"","sources":["../../src/client/AIAssistantProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAkB,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAI9D,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,iBAAiB,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IACjD,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACjC,CAAC;AAaF,eAAO,MAAM,cAAc,8BAAuC,CAAC;AAEnE,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,eAAe,CAAC;CACjC,CAAC;AAyEF,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAS,EACT,QAAe,EACf,aAAa,GACd,EAAE,wBAAwB,2CA8L1B"}
@@ -82,7 +82,7 @@ function buildQuery(label, ctx, elementDocs) {
82
82
  }
83
83
  return parts.join("\n");
84
84
  }
85
- export default function AIAssistantProvider({ endpoint, apiKey, children, title, subtitle, onExplain, showChat = true, }) {
85
+ export default function AIAssistantProvider({ endpoint, apiKey, children, title, subtitle, onExplain, showChat = true, renderMessage, }) {
86
86
  const [isChatOpen, setIsChatOpen] = useState(false);
87
87
  const [initialQuery, setInitialQuery] = useState("");
88
88
  const [explainMode, setExplainMode] = useState(false);
@@ -210,6 +210,6 @@ export default function AIAssistantProvider({ endpoint, apiKey, children, title,
210
210
  else {
211
211
  openChat();
212
212
  }
213
- } }), _jsx(AIChatBot, { open: isChatOpen, onClose: closeChat, initialQuery: initialQuery, endpoint: endpoint, apiKey: apiKey, title: title, subtitle: subtitle })] }))] }));
213
+ } }), _jsx(AIChatBot, { open: isChatOpen, onClose: closeChat, initialQuery: initialQuery, endpoint: endpoint, apiKey: apiKey, title: title, subtitle: subtitle, renderMessage: renderMessage })] }))] }));
214
214
  }
215
215
  //# sourceMappingURL=AIAssistantProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AIAssistantProvider.js","sourceRoot":"","sources":["../../src/client/AIAssistantProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AIAssistantProvider.js","sourceRoot":"","sources":["../../src/client/AIAssistantProvider.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
+ import React from "react";
2
+ import type { Message } from "../types";
3
+ export type MessageRenderer = (message: Message) => React.ReactNode;
1
4
  type Props = {
2
5
  open: boolean;
3
6
  onClose: () => void;
@@ -6,7 +9,8 @@ type Props = {
6
9
  apiKey?: string;
7
10
  title?: string;
8
11
  subtitle?: string;
12
+ renderMessage?: MessageRenderer;
9
13
  };
10
- export default function AIChatBot({ open, onClose, initialQuery, endpoint, apiKey, title, subtitle, }: Props): import("react/jsx-runtime").JSX.Element | null;
14
+ export default function AIChatBot({ open, onClose, initialQuery, endpoint, apiKey, title, subtitle, renderMessage, }: Props): import("react/jsx-runtime").JSX.Element | null;
11
15
  export {};
12
16
  //# sourceMappingURL=AIChatBot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AIChatBot.d.ts","sourceRoot":"","sources":["../../src/client/AIChatBot.tsx"],"names":[],"mappings":"AAcA,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAkCF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,KAAsB,EACtB,QAAyB,GAC1B,EAAE,KAAK,kDAwPP"}
1
+ {"version":3,"file":"AIChatBot.d.ts","sourceRoot":"","sources":["../../src/client/AIChatBot.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGxC,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;AAEpE,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,eAAe,CAAC;CACjC,CAAC;AAqDF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,KAAsB,EACtB,QAAyB,EACzB,aAAa,GACd,EAAE,KAAK,kDA2OP"}
@@ -27,7 +27,12 @@ async function fetchAIResponse(endpoint, apiKey, messages) {
27
27
  const data = await response.json();
28
28
  return data.reply;
29
29
  }
30
- export default function AIChatBot({ open, onClose, initialQuery, endpoint, apiKey, title = "AI Assistant", subtitle = "Ask anything", }) {
30
+ function defaultRenderMessage(msg) {
31
+ return msg.content.split("\n").map((line, i) => (_jsxs(React.Fragment, { children: [line
32
+ .split(/(\*\*[^*]+\*\*)/)
33
+ .map((part, j) => part.startsWith("**") && part.endsWith("**") ? (_jsx("strong", { style: S.messageBold, children: part.slice(2, -2) }, j)) : (_jsx(React.Fragment, { children: part }, j))), i < msg.content.split("\n").length - 1 && _jsx("br", {})] }, i)));
34
+ }
35
+ export default function AIChatBot({ open, onClose, initialQuery, endpoint, apiKey, title = "AI Assistant", subtitle = "Ask anything", renderMessage, }) {
31
36
  const [messages, setMessages] = useState([]);
32
37
  const [input, setInput] = useState("");
33
38
  const [isTyping, setIsTyping] = useState(false);
@@ -132,8 +137,8 @@ export default function AIChatBot({ open, onClose, initialQuery, endpoint, apiKe
132
137
  }, onMouseLeave: (e) => {
133
138
  e.currentTarget.style.color = "var(--nb-explain-text-dim)";
134
139
  e.currentTarget.style.background = "none";
135
- }, children: _jsx(X, { size: 16 }) })] }), _jsxs("div", { style: S.messagesArea, children: [messages.length === 0 && !isTyping && (_jsxs("div", { style: S.emptyState, children: [_jsx(MessageCircleQuestion, { size: 40, style: { color: "var(--nb-explain-text-dim)" } }), _jsxs("div", { children: [_jsx("p", { style: S.emptyStateTitle, children: "How can I help?" }), _jsx("p", { style: S.emptyStateHint, children: "Use the Explain button to click on any element, or ask a question below." })] })] })), messages.map((msg) => msg.role === "context" ? (_jsx("div", { style: S.contextBadge, children: _jsxs("div", { style: S.contextBadgeInner, children: [_jsx(Sparkles, { size: 10, style: { color: "var(--nb-explain-accent)", opacity: 0.6 } }), msg.content] }) }, msg.id)) : (_jsxs("div", { style: S.messageRow(msg.role === "user"), children: [msg.role === "assistant" && (_jsx("div", { style: S.messageAvatar(false), children: _jsx(Bot, { size: 13, style: { color: "var(--nb-explain-accent)" } }) })), _jsx("div", { style: S.messageBubble(msg.role === "user"), children: msg.content.split("\n").map((line, i) => (_jsxs(React.Fragment, { children: [line
136
- .split(/(\*\*[^*]+\*\*)/)
137
- .map((part, j) => part.startsWith("**") && part.endsWith("**") ? (_jsx("strong", { style: S.messageBold, children: part.slice(2, -2) }, j)) : (_jsx(React.Fragment, { children: part }, j))), i < msg.content.split("\n").length - 1 && _jsx("br", {})] }, i))) }), msg.role === "user" && (_jsx("div", { style: S.messageAvatar(true), children: _jsx(User, { size: 13, style: { color: "var(--nb-explain-user-text)" } }) }))] }, msg.id))), isTyping && (_jsxs("div", { style: S.typingRow, children: [_jsx("div", { style: S.messageAvatar(false), children: _jsx(Bot, { size: 13, style: { color: "var(--nb-explain-accent)" } }) }), _jsxs("div", { style: S.typingBubble, children: [_jsx("span", { className: "nb-explain-dot-1", style: S.typingDot }), _jsx("span", { className: "nb-explain-dot-2", style: S.typingDot }), _jsx("span", { className: "nb-explain-dot-3", style: S.typingDot })] })] })), _jsx("div", { ref: messagesEndRef })] }), _jsxs("div", { style: S.inputArea, children: [_jsxs("div", { style: S.inputRow, children: [_jsx("input", { ref: inputRef, type: "text", value: input, onChange: (e) => setInput(e.target.value), onKeyDown: handleKeyDown, placeholder: "Ask a follow-up question...", style: S.inputField }), _jsx("button", { onClick: sendMessage, disabled: !active, style: S.sendBtn(active), children: _jsx(Send, { size: 15 }) })] }), _jsx("p", { style: S.inputFooter, children: "AI-powered assistant" })] })] }));
140
+ }, children: _jsx(X, { size: 16 }) })] }), _jsxs("div", { style: S.messagesArea, children: [messages.length === 0 && !isTyping && (_jsxs("div", { style: S.emptyState, children: [_jsx(MessageCircleQuestion, { size: 40, style: { color: "var(--nb-explain-text-dim)" } }), _jsxs("div", { children: [_jsx("p", { style: S.emptyStateTitle, children: "How can I help?" }), _jsx("p", { style: S.emptyStateHint, children: "Use the Explain button to click on any element, or ask a question below." })] })] })), messages.map((msg) => msg.role === "context" ? (_jsx("div", { style: S.contextBadge, children: _jsxs("div", { style: S.contextBadgeInner, children: [_jsx(Sparkles, { size: 10, style: { color: "var(--nb-explain-accent)", opacity: 0.6 } }), msg.content] }) }, msg.id)) : (_jsxs("div", { style: S.messageRow(msg.role === "user"), children: [msg.role === "assistant" && (_jsx("div", { style: S.messageAvatar(false), children: _jsx(Bot, { size: 13, style: { color: "var(--nb-explain-accent)" } }) })), _jsx("div", { style: S.messageBubble(msg.role === "user"), children: renderMessage
141
+ ? renderMessage(msg)
142
+ : defaultRenderMessage(msg) }), msg.role === "user" && (_jsx("div", { style: S.messageAvatar(true), children: _jsx(User, { size: 13, style: { color: "var(--nb-explain-user-text)" } }) }))] }, msg.id))), isTyping && (_jsxs("div", { style: S.typingRow, children: [_jsx("div", { style: S.messageAvatar(false), children: _jsx(Bot, { size: 13, style: { color: "var(--nb-explain-accent)" } }) }), _jsxs("div", { style: S.typingBubble, children: [_jsx("span", { className: "nb-explain-dot-1", style: S.typingDot }), _jsx("span", { className: "nb-explain-dot-2", style: S.typingDot }), _jsx("span", { className: "nb-explain-dot-3", style: S.typingDot })] })] })), _jsx("div", { ref: messagesEndRef })] }), _jsxs("div", { style: S.inputArea, children: [_jsxs("div", { style: S.inputRow, children: [_jsx("input", { ref: inputRef, type: "text", value: input, onChange: (e) => setInput(e.target.value), onKeyDown: handleKeyDown, placeholder: "Ask a follow-up question...", style: S.inputField }), _jsx("button", { onClick: sendMessage, disabled: !active, style: S.sendBtn(active), children: _jsx(Send, { size: 15 }) })] }), _jsx("p", { style: S.inputFooter, children: "AI-powered assistant" })] })] }));
138
143
  }
139
144
  //# sourceMappingURL=AIChatBot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AIChatBot.js","sourceRoot":"","sources":["../../src/client/AIChatBot.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AIChatBot.js","sourceRoot":"","sources":["../../src/client/AIChatBot.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export { default as AIAssistantProvider, useAIAssistant } from "./AIAssistantProvider";
2
2
  export { default as AIChatBot } from "./AIChatBot";
3
+ export type { MessageRenderer } from "./AIChatBot";
3
4
  export { default as AIFloatingButton } from "./AIFloatingButton";
4
5
  export type { Message, ExplainContext, ExplainEvent } from "../types";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { Message } from "../types";
2
- import type { LLMProvider, Middleware } from "./providers/types";
2
+ import type { LLMProvider, Middleware, Tool } from "./providers/types";
3
3
  export type AssistantConfig = {
4
4
  provider: "anthropic" | "openai" | "dify" | LLMProvider;
5
5
  apiKey?: string;
@@ -7,6 +7,7 @@ export type AssistantConfig = {
7
7
  baseUrl?: string;
8
8
  systemPrompt?: string;
9
9
  middleware?: Middleware[];
10
+ tools?: Tool[];
10
11
  };
11
12
  type HandlerOptions = {
12
13
  apiKey?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/server/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAIxC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEjE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;CAC3B,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG;QAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC9F,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC;CACrE;AAED,UAAU,gBAAgB;IACxB,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,SAAS,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CACxE;AA2ED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe;gBAI5B,WAAW,KAAG,OAAO,CAAC,YAAY,CAAC;qBAkBpC,cAAc,MACtB,KAAK,eAAe,EAAE,KAAK,gBAAgB,KAAG,OAAO,CAAC,IAAI,CAAC;EAwC5E"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/server/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAIxC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;CAChB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG;QAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC9F,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC;CACrE;AAED,UAAU,gBAAgB;IACxB,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,SAAS,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CACxE;AA2ED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe;gBAI5B,WAAW,KAAG,OAAO,CAAC,YAAY,CAAC;qBAkBpC,cAAc,MACtB,KAAK,eAAe,EAAE,KAAK,gBAAgB,KAAG,OAAO,CAAC,IAAI,CAAC;EAwC5E"}
@@ -87,7 +87,7 @@ export function createAssistant(config) {
87
87
  messages = result.messages;
88
88
  systemPrompt = result.systemPrompt;
89
89
  }
90
- const reply = await provider.chat(messages, systemPrompt);
90
+ const reply = await provider.chat(messages, systemPrompt, config.tools);
91
91
  return { reply };
92
92
  }
93
93
  function handler(opts) {
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/server/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/server/handler.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,5 @@ export type { AssistantConfig } from "./handler";
3
3
  export { AnthropicProvider } from "./providers/anthropic";
4
4
  export { DifyProvider } from "./providers/dify";
5
5
  export { OpenAIProvider } from "./providers/openai";
6
- export type { LLMProvider, ProviderConfig, Middleware } from "./providers/types";
6
+ export type { LLMProvider, ProviderConfig, Middleware, Tool } from "./providers/types";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import type { Message } from "../../types";
2
- import type { LLMProvider, ProviderConfig } from "./types";
2
+ import type { LLMProvider, ProviderConfig, Tool } from "./types";
3
3
  export declare class AnthropicProvider implements LLMProvider {
4
4
  private apiKey;
5
5
  private model;
6
6
  constructor(config: ProviderConfig);
7
- chat(messages: Message[], systemPrompt?: string): Promise<string>;
7
+ chat(messages: Message[], systemPrompt?: string, tools?: Tool[]): Promise<string>;
8
8
  }
9
9
  //# sourceMappingURL=anthropic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/server/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE3D,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,cAAc;IAK5B,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAwCxE"}
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/server/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAYjE,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,cAAc;IAK5B,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;CAoGxF"}
@@ -3,38 +3,87 @@ export class AnthropicProvider {
3
3
  this.apiKey = config.apiKey;
4
4
  this.model = config.model || "claude-sonnet-4-20250514";
5
5
  }
6
- async chat(messages, systemPrompt) {
6
+ async chat(messages, systemPrompt, tools) {
7
7
  const anthropicMessages = messages.map((m) => ({
8
8
  role: m.role === "context" || m.role === "system" ? "user" : m.role,
9
9
  content: m.role === "context" ? `[Context]: ${m.content}` : m.content,
10
10
  }));
11
- const body = {
12
- model: this.model,
13
- max_tokens: 4096,
14
- messages: anthropicMessages,
15
- };
16
- if (systemPrompt) {
17
- body.system = systemPrompt;
18
- }
19
- const response = await fetch("https://api.anthropic.com/v1/messages", {
20
- method: "POST",
21
- headers: {
22
- "Content-Type": "application/json",
23
- "x-api-key": this.apiKey,
24
- "anthropic-version": "2023-06-01",
25
- },
26
- body: JSON.stringify(body),
27
- });
28
- if (!response.ok) {
29
- const text = await response.text();
30
- throw new Error(`Anthropic API error ${response.status}: ${text}`);
31
- }
32
- const data = await response.json();
33
- const textBlock = data.content?.find((block) => block.type === "text");
34
- if (!textBlock) {
35
- throw new Error("No text content in Anthropic response");
11
+ const toolDefs = tools?.map((t) => ({
12
+ name: t.name,
13
+ description: t.description,
14
+ input_schema: t.input_schema,
15
+ }));
16
+ const toolsByName = new Map(tools?.map((t) => [t.name, t]));
17
+ let lastTextResponse = "";
18
+ // eslint-disable-next-line no-constant-condition
19
+ while (true) {
20
+ const body = {
21
+ model: this.model,
22
+ max_tokens: 4096,
23
+ messages: anthropicMessages,
24
+ };
25
+ if (systemPrompt) {
26
+ body.system = systemPrompt;
27
+ }
28
+ if (toolDefs && toolDefs.length > 0) {
29
+ body.tools = toolDefs;
30
+ }
31
+ const response = await fetch("https://api.anthropic.com/v1/messages", {
32
+ method: "POST",
33
+ headers: {
34
+ "Content-Type": "application/json",
35
+ "x-api-key": this.apiKey,
36
+ "anthropic-version": "2023-06-01",
37
+ },
38
+ body: JSON.stringify(body),
39
+ });
40
+ if (!response.ok) {
41
+ const text = await response.text();
42
+ throw new Error(`Anthropic API error ${response.status}: ${text}`);
43
+ }
44
+ const data = await response.json();
45
+ const textBlock = data.content?.find((block) => block.type === "text");
46
+ if (textBlock) {
47
+ lastTextResponse = textBlock.text;
48
+ }
49
+ if (data.stop_reason !== "tool_use") {
50
+ if (!lastTextResponse) {
51
+ throw new Error("No text content in Anthropic response");
52
+ }
53
+ return lastTextResponse;
54
+ }
55
+ // Handle tool calls
56
+ const toolUseBlocks = data.content.filter((block) => block.type === "tool_use");
57
+ anthropicMessages.push({ role: "assistant", content: data.content });
58
+ const toolResults = [];
59
+ for (const toolUse of toolUseBlocks) {
60
+ const tool = toolsByName.get(toolUse.name);
61
+ if (!tool) {
62
+ toolResults.push({
63
+ type: "tool_result",
64
+ tool_use_id: toolUse.id,
65
+ content: `Error: unknown tool "${toolUse.name}"`,
66
+ });
67
+ continue;
68
+ }
69
+ try {
70
+ const result = await tool.execute(toolUse.input);
71
+ toolResults.push({
72
+ type: "tool_result",
73
+ tool_use_id: toolUse.id,
74
+ content: result,
75
+ });
76
+ }
77
+ catch (err) {
78
+ toolResults.push({
79
+ type: "tool_result",
80
+ tool_use_id: toolUse.id,
81
+ content: `Error: ${err instanceof Error ? err.message : String(err)}`,
82
+ });
83
+ }
84
+ }
85
+ anthropicMessages.push({ role: "user", content: toolResults });
36
86
  }
37
- return textBlock.text;
38
87
  }
39
88
  }
40
89
  //# sourceMappingURL=anthropic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/server/providers/anthropic.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,iBAAiB;IAI5B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,0BAA0B,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAmB,EAAE,YAAqB;QACnD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7C,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,MAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;YAC9E,OAAO,EAAE,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;SACtE,CAAC,CAAC,CAAC;QAEJ,MAAM,IAAI,GAA4B;YACpC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,iBAAiB;SAC5B,CAAC;QAEF,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;QAC7B,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,uCAAuC,EAAE;YACpE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,WAAW,EAAE,IAAI,CAAC,MAAM;gBACxB,mBAAmB,EAAE,YAAY;aAClC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAClC,CAAC,KAAuB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CACnD,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,SAAS,CAAC,IAAI,CAAC;IACxB,CAAC;CACF"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/server/providers/anthropic.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,12 @@
1
1
  import type { Message } from "../../types";
2
+ export type Tool = {
3
+ name: string;
4
+ description: string;
5
+ input_schema: Record<string, unknown>;
6
+ execute: (input: Record<string, unknown>) => Promise<string>;
7
+ };
2
8
  export interface LLMProvider {
3
- chat(messages: Message[], systemPrompt?: string): Promise<string>;
9
+ chat(messages: Message[], systemPrompt?: string, tools?: Tool[]): Promise<string>;
4
10
  }
5
11
  export type ProviderConfig = {
6
12
  apiKey: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/providers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACnE;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,CACvB,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/providers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACnF;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,CACvB,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netbirdio/explain",
3
- "version": "0.1.2",
3
+ "version": "0.1.5",
4
4
  "description": "Full-stack AI assistant library with React frontend components and Node.js backend handler",
5
5
  "license": "BSD-3-Clause",
6
6
  "main": "./dist/client/index.js",
@@ -17,11 +17,18 @@
17
17
  },
18
18
  "typesVersions": {
19
19
  "*": {
20
- "client": ["./dist/client/index.d.ts"],
21
- "server": ["./dist/server/index.d.ts"]
20
+ "client": [
21
+ "./dist/client/index.d.ts"
22
+ ],
23
+ "server": [
24
+ "./dist/server/index.d.ts"
25
+ ]
22
26
  }
23
27
  },
24
- "files": ["dist", "src"],
28
+ "files": [
29
+ "dist",
30
+ "src"
31
+ ],
25
32
  "scripts": {
26
33
  "build": "tsc",
27
34
  "typecheck": "tsc --noEmit"
@@ -31,6 +38,7 @@
31
38
  "react-dom": ">=18.0.0"
32
39
  },
33
40
  "dependencies": {
41
+ "@modelcontextprotocol/sdk": "^1.29.0",
34
42
  "lucide-react": ">=0.300.0"
35
43
  },
36
44
  "repository": {
@@ -42,4 +50,4 @@
42
50
  "@types/react-dom": "^18.0.0",
43
51
  "typescript": "^5.0.0"
44
52
  }
45
- }
53
+ }
@@ -8,7 +8,7 @@ import React, {
8
8
  useState,
9
9
  } from "react";
10
10
  import type { ExplainContext, ExplainEvent } from "../types";
11
- import AIChatBot from "./AIChatBot";
11
+ import AIChatBot, { type MessageRenderer } from "./AIChatBot";
12
12
  import AIFloatingButton from "./AIFloatingButton";
13
13
  import * as S from "./styles";
14
14
 
@@ -44,6 +44,7 @@ type AIAssistantProviderProps = {
44
44
  subtitle?: string;
45
45
  onExplain?: (event: ExplainEvent) => void;
46
46
  showChat?: boolean;
47
+ renderMessage?: MessageRenderer;
47
48
  };
48
49
 
49
50
  /**
@@ -125,6 +126,7 @@ export default function AIAssistantProvider({
125
126
  subtitle,
126
127
  onExplain,
127
128
  showChat = true,
129
+ renderMessage,
128
130
  }: AIAssistantProviderProps) {
129
131
  const [isChatOpen, setIsChatOpen] = useState(false);
130
132
  const [initialQuery, setInitialQuery] = useState("");
@@ -309,6 +311,7 @@ export default function AIAssistantProvider({
309
311
  apiKey={apiKey}
310
312
  title={title}
311
313
  subtitle={subtitle}
314
+ renderMessage={renderMessage}
312
315
  />
313
316
  </>
314
317
  )}
@@ -12,6 +12,8 @@ import React, { useCallback, useEffect, useRef, useState } from "react";
12
12
  import type { Message } from "../types";
13
13
  import * as S from "./styles";
14
14
 
15
+ export type MessageRenderer = (message: Message) => React.ReactNode;
16
+
15
17
  type Props = {
16
18
  open: boolean;
17
19
  onClose: () => void;
@@ -20,6 +22,7 @@ type Props = {
20
22
  apiKey?: string;
21
23
  title?: string;
22
24
  subtitle?: string;
25
+ renderMessage?: MessageRenderer;
23
26
  };
24
27
 
25
28
  async function fetchAIResponse(
@@ -54,6 +57,25 @@ async function fetchAIResponse(
54
57
  return data.reply;
55
58
  }
56
59
 
60
+ function defaultRenderMessage(msg: Message): React.ReactNode {
61
+ return msg.content.split("\n").map((line, i) => (
62
+ <React.Fragment key={i}>
63
+ {line
64
+ .split(/(\*\*[^*]+\*\*)/)
65
+ .map((part, j) =>
66
+ part.startsWith("**") && part.endsWith("**") ? (
67
+ <strong key={j} style={S.messageBold}>
68
+ {part.slice(2, -2)}
69
+ </strong>
70
+ ) : (
71
+ <React.Fragment key={j}>{part}</React.Fragment>
72
+ ),
73
+ )}
74
+ {i < msg.content.split("\n").length - 1 && <br />}
75
+ </React.Fragment>
76
+ ));
77
+ }
78
+
57
79
  export default function AIChatBot({
58
80
  open,
59
81
  onClose,
@@ -62,6 +84,7 @@ export default function AIChatBot({
62
84
  apiKey,
63
85
  title = "AI Assistant",
64
86
  subtitle = "Ask anything",
87
+ renderMessage,
65
88
  }: Props) {
66
89
  const [messages, setMessages] = useState<Message[]>([]);
67
90
  const [input, setInput] = useState("");
@@ -244,22 +267,9 @@ export default function AIChatBot({
244
267
  </div>
245
268
  )}
246
269
  <div style={S.messageBubble(msg.role === "user")}>
247
- {msg.content.split("\n").map((line, i) => (
248
- <React.Fragment key={i}>
249
- {line
250
- .split(/(\*\*[^*]+\*\*)/)
251
- .map((part, j) =>
252
- part.startsWith("**") && part.endsWith("**") ? (
253
- <strong key={j} style={S.messageBold}>
254
- {part.slice(2, -2)}
255
- </strong>
256
- ) : (
257
- <React.Fragment key={j}>{part}</React.Fragment>
258
- ),
259
- )}
260
- {i < msg.content.split("\n").length - 1 && <br />}
261
- </React.Fragment>
262
- ))}
270
+ {renderMessage
271
+ ? renderMessage(msg)
272
+ : defaultRenderMessage(msg)}
263
273
  </div>
264
274
  {msg.role === "user" && (
265
275
  <div style={S.messageAvatar(true)}>
@@ -1,4 +1,5 @@
1
1
  export { default as AIAssistantProvider, useAIAssistant } from "./AIAssistantProvider";
2
2
  export { default as AIChatBot } from "./AIChatBot";
3
+ export type { MessageRenderer } from "./AIChatBot";
3
4
  export { default as AIFloatingButton } from "./AIFloatingButton";
4
5
  export type { Message, ExplainContext, ExplainEvent } from "../types";
@@ -2,7 +2,7 @@ import type { Message } from "../types";
2
2
  import { AnthropicProvider } from "./providers/anthropic";
3
3
  import { DifyProvider } from "./providers/dify";
4
4
  import { OpenAIProvider } from "./providers/openai";
5
- import type { LLMProvider, Middleware } from "./providers/types";
5
+ import type { LLMProvider, Middleware, Tool } from "./providers/types";
6
6
 
7
7
  export type AssistantConfig = {
8
8
  provider: "anthropic" | "openai" | "dify" | LLMProvider;
@@ -11,6 +11,7 @@ export type AssistantConfig = {
11
11
  baseUrl?: string;
12
12
  systemPrompt?: string;
13
13
  middleware?: Middleware[];
14
+ tools?: Tool[];
14
15
  };
15
16
 
16
17
  type HandlerOptions = {
@@ -132,7 +133,7 @@ export function createAssistant(config: AssistantConfig) {
132
133
  systemPrompt = result.systemPrompt;
133
134
  }
134
135
 
135
- const reply = await provider.chat(messages, systemPrompt);
136
+ const reply = await provider.chat(messages, systemPrompt, config.tools);
136
137
  return { reply };
137
138
  }
138
139
 
@@ -3,4 +3,4 @@ export type { AssistantConfig } from "./handler";
3
3
  export { AnthropicProvider } from "./providers/anthropic";
4
4
  export { DifyProvider } from "./providers/dify";
5
5
  export { OpenAIProvider } from "./providers/openai";
6
- export type { LLMProvider, ProviderConfig, Middleware } from "./providers/types";
6
+ export type { LLMProvider, ProviderConfig, Middleware, Tool } from "./providers/types";
@@ -1,5 +1,15 @@
1
1
  import type { Message } from "../../types";
2
- import type { LLMProvider, ProviderConfig } from "./types";
2
+ import type { LLMProvider, ProviderConfig, Tool } from "./types";
3
+
4
+ type AnthropicMessage = {
5
+ role: "user" | "assistant";
6
+ content: string | AnthropicContentBlock[];
7
+ };
8
+
9
+ type AnthropicContentBlock =
10
+ | { type: "text"; text: string }
11
+ | { type: "tool_use"; id: string; name: string; input: Record<string, unknown> }
12
+ | { type: "tool_result"; tool_use_id: string; content: string };
3
13
 
4
14
  export class AnthropicProvider implements LLMProvider {
5
15
  private apiKey: string;
@@ -10,44 +20,104 @@ export class AnthropicProvider implements LLMProvider {
10
20
  this.model = config.model || "claude-sonnet-4-20250514";
11
21
  }
12
22
 
13
- async chat(messages: Message[], systemPrompt?: string): Promise<string> {
14
- const anthropicMessages = messages.map((m) => ({
23
+ async chat(messages: Message[], systemPrompt?: string, tools?: Tool[]): Promise<string> {
24
+ const anthropicMessages: AnthropicMessage[] = messages.map((m) => ({
15
25
  role: m.role === "context" || m.role === "system" ? ("user" as const) : m.role,
16
26
  content: m.role === "context" ? `[Context]: ${m.content}` : m.content,
17
27
  }));
18
28
 
19
- const body: Record<string, unknown> = {
20
- model: this.model,
21
- max_tokens: 4096,
22
- messages: anthropicMessages,
23
- };
29
+ const toolDefs = tools?.map((t) => ({
30
+ name: t.name,
31
+ description: t.description,
32
+ input_schema: t.input_schema,
33
+ }));
24
34
 
25
- if (systemPrompt) {
26
- body.system = systemPrompt;
27
- }
35
+ const toolsByName = new Map(tools?.map((t) => [t.name, t]));
28
36
 
29
- const response = await fetch("https://api.anthropic.com/v1/messages", {
30
- method: "POST",
31
- headers: {
32
- "Content-Type": "application/json",
33
- "x-api-key": this.apiKey,
34
- "anthropic-version": "2023-06-01",
35
- },
36
- body: JSON.stringify(body),
37
- });
38
-
39
- if (!response.ok) {
40
- const text = await response.text();
41
- throw new Error(`Anthropic API error ${response.status}: ${text}`);
42
- }
37
+ let lastTextResponse = "";
38
+
39
+ // eslint-disable-next-line no-constant-condition
40
+ while (true) {
41
+ const body: Record<string, unknown> = {
42
+ model: this.model,
43
+ max_tokens: 4096,
44
+ messages: anthropicMessages,
45
+ };
46
+
47
+ if (systemPrompt) {
48
+ body.system = systemPrompt;
49
+ }
50
+
51
+ if (toolDefs && toolDefs.length > 0) {
52
+ body.tools = toolDefs;
53
+ }
54
+
55
+ const response = await fetch("https://api.anthropic.com/v1/messages", {
56
+ method: "POST",
57
+ headers: {
58
+ "Content-Type": "application/json",
59
+ "x-api-key": this.apiKey,
60
+ "anthropic-version": "2023-06-01",
61
+ },
62
+ body: JSON.stringify(body),
63
+ });
64
+
65
+ if (!response.ok) {
66
+ const text = await response.text();
67
+ throw new Error(`Anthropic API error ${response.status}: ${text}`);
68
+ }
69
+
70
+ const data = await response.json();
71
+
72
+ const textBlock = data.content?.find(
73
+ (block: { type: string }) => block.type === "text",
74
+ );
75
+ if (textBlock) {
76
+ lastTextResponse = textBlock.text;
77
+ }
78
+
79
+ if (data.stop_reason !== "tool_use") {
80
+ if (!lastTextResponse) {
81
+ throw new Error("No text content in Anthropic response");
82
+ }
83
+ return lastTextResponse;
84
+ }
85
+
86
+ // Handle tool calls
87
+ const toolUseBlocks = data.content.filter(
88
+ (block: { type: string }) => block.type === "tool_use",
89
+ );
90
+
91
+ anthropicMessages.push({ role: "assistant", content: data.content });
92
+
93
+ const toolResults: AnthropicContentBlock[] = [];
94
+ for (const toolUse of toolUseBlocks) {
95
+ const tool = toolsByName.get(toolUse.name);
96
+ if (!tool) {
97
+ toolResults.push({
98
+ type: "tool_result",
99
+ tool_use_id: toolUse.id,
100
+ content: `Error: unknown tool "${toolUse.name}"`,
101
+ });
102
+ continue;
103
+ }
104
+ try {
105
+ const result = await tool.execute(toolUse.input);
106
+ toolResults.push({
107
+ type: "tool_result",
108
+ tool_use_id: toolUse.id,
109
+ content: result,
110
+ });
111
+ } catch (err) {
112
+ toolResults.push({
113
+ type: "tool_result",
114
+ tool_use_id: toolUse.id,
115
+ content: `Error: ${err instanceof Error ? err.message : String(err)}`,
116
+ });
117
+ }
118
+ }
43
119
 
44
- const data = await response.json();
45
- const textBlock = data.content?.find(
46
- (block: { type: string }) => block.type === "text",
47
- );
48
- if (!textBlock) {
49
- throw new Error("No text content in Anthropic response");
120
+ anthropicMessages.push({ role: "user", content: toolResults });
50
121
  }
51
- return textBlock.text;
52
122
  }
53
123
  }
@@ -1,7 +1,14 @@
1
1
  import type { Message } from "../../types";
2
2
 
3
+ export type Tool = {
4
+ name: string;
5
+ description: string;
6
+ input_schema: Record<string, unknown>;
7
+ execute: (input: Record<string, unknown>) => Promise<string>;
8
+ };
9
+
3
10
  export interface LLMProvider {
4
- chat(messages: Message[], systemPrompt?: string): Promise<string>;
11
+ chat(messages: Message[], systemPrompt?: string, tools?: Tool[]): Promise<string>;
5
12
  }
6
13
 
7
14
  export type ProviderConfig = {