@4djs/assistant 0.0.0 → 0.1.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/README.md +49 -68
- package/dist/core/chat-activity.d.ts +19 -0
- package/dist/core/chat-activity.d.ts.map +1 -0
- package/dist/core/chat-commands.d.ts +33 -0
- package/dist/core/chat-commands.d.ts.map +1 -0
- package/dist/core/chat-history.d.ts +14 -0
- package/dist/core/chat-history.d.ts.map +1 -0
- package/dist/core/chat-reply-suggestions-parse.d.ts +20 -0
- package/dist/core/chat-reply-suggestions-parse.d.ts.map +1 -0
- package/dist/core/code-highlight.d.ts +3 -0
- package/dist/core/code-highlight.d.ts.map +1 -0
- package/dist/core/create-assistant-store.d.ts +33 -0
- package/dist/core/create-assistant-store.d.ts.map +1 -0
- package/dist/core/fetch-suggested-prompts.d.ts +11 -0
- package/dist/core/fetch-suggested-prompts.d.ts.map +1 -0
- package/dist/core/index.d.ts +19 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +2876 -0
- package/dist/core/interactive-tools/choices.d.ts +22 -0
- package/dist/core/interactive-tools/choices.d.ts.map +1 -0
- package/dist/core/interactive-tools/confirmation.d.ts +15 -0
- package/dist/core/interactive-tools/confirmation.d.ts.map +1 -0
- package/dist/core/interactive-tools/constants.d.ts +6 -0
- package/dist/core/interactive-tools/constants.d.ts.map +1 -0
- package/dist/core/interactive-tools/execute.d.ts +11 -0
- package/dist/core/interactive-tools/execute.d.ts.map +1 -0
- package/dist/core/interactive-tools/index.d.ts +7 -0
- package/dist/core/interactive-tools/index.d.ts.map +1 -0
- package/dist/core/interactive-tools/suggestions.d.ts +13 -0
- package/dist/core/interactive-tools/suggestions.d.ts.map +1 -0
- package/dist/core/interactive-tools/waiters.d.ts +4 -0
- package/dist/core/interactive-tools/waiters.d.ts.map +1 -0
- package/dist/core/llm-chat.d.ts +96 -0
- package/dist/core/llm-chat.d.ts.map +1 -0
- package/dist/core/llm-config.d.ts +24 -0
- package/dist/core/llm-config.d.ts.map +1 -0
- package/dist/core/llm-models.d.ts +14 -0
- package/dist/core/llm-models.d.ts.map +1 -0
- package/dist/core/llm-provider.d.ts +13 -0
- package/dist/core/llm-provider.d.ts.map +1 -0
- package/dist/core/llm-settings-storage.d.ts +47 -0
- package/dist/core/llm-settings-storage.d.ts.map +1 -0
- package/dist/core/llm-sse.d.ts +13 -0
- package/dist/core/llm-sse.d.ts.map +1 -0
- package/dist/core/llm-types.d.ts +49 -0
- package/dist/core/llm-types.d.ts.map +1 -0
- package/dist/core/markdown-utils.d.ts +3 -0
- package/dist/core/markdown-utils.d.ts.map +1 -0
- package/dist/core/prepare-markdown.d.ts +7 -0
- package/dist/core/prepare-markdown.d.ts.map +1 -0
- package/dist/core/types.d.ts +74 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/index.css +1195 -0
- package/dist/index.js +184948 -0
- package/dist/react/Assistant.d.ts +10 -0
- package/dist/react/Assistant.d.ts.map +1 -0
- package/dist/react/components/HighlightedJsonCode.d.ts +6 -0
- package/dist/react/components/HighlightedJsonCode.d.ts.map +1 -0
- package/dist/react/components/MarkdownContent.d.ts +10 -0
- package/dist/react/components/MarkdownContent.d.ts.map +1 -0
- package/dist/react/components/MarkdownEditor.d.ts +11 -0
- package/dist/react/components/MarkdownEditor.d.ts.map +1 -0
- package/dist/react/components/MermaidDiagram.d.ts +8 -0
- package/dist/react/components/MermaidDiagram.d.ts.map +1 -0
- package/dist/react/components/ModelSelector.d.ts +8 -0
- package/dist/react/components/ModelSelector.d.ts.map +1 -0
- package/dist/react/components/chat/AssistantErrorCallout.d.ts +11 -0
- package/dist/react/components/chat/AssistantErrorCallout.d.ts.map +1 -0
- package/dist/react/components/chat/ChatActivity.d.ts +8 -0
- package/dist/react/components/chat/ChatActivity.d.ts.map +1 -0
- package/dist/react/components/chat/ChatComposer.d.ts +36 -0
- package/dist/react/components/chat/ChatComposer.d.ts.map +1 -0
- package/dist/react/components/chat/ChatEmptyState.d.ts +10 -0
- package/dist/react/components/chat/ChatEmptyState.d.ts.map +1 -0
- package/dist/react/components/chat/ChatInteractivePrompt/choices-prompt.d.ts +7 -0
- package/dist/react/components/chat/ChatInteractivePrompt/choices-prompt.d.ts.map +1 -0
- package/dist/react/components/chat/ChatInteractivePrompt/confirmation-prompt.d.ts +7 -0
- package/dist/react/components/chat/ChatInteractivePrompt/confirmation-prompt.d.ts.map +1 -0
- package/dist/react/components/chat/ChatInteractivePrompt/index.d.ts +7 -0
- package/dist/react/components/chat/ChatInteractivePrompt/index.d.ts.map +1 -0
- package/dist/react/components/chat/ChatInteractivePrompt/shell.d.ts +13 -0
- package/dist/react/components/chat/ChatInteractivePrompt/shell.d.ts.map +1 -0
- package/dist/react/components/chat/ChatInteractivePrompt/utils.d.ts +4 -0
- package/dist/react/components/chat/ChatInteractivePrompt/utils.d.ts.map +1 -0
- package/dist/react/components/chat/ChatMessage.d.ts +11 -0
- package/dist/react/components/chat/ChatMessage.d.ts.map +1 -0
- package/dist/react/components/chat/ChatMessageScroll.d.ts +8 -0
- package/dist/react/components/chat/ChatMessageScroll.d.ts.map +1 -0
- package/dist/react/components/chat/ChatReplySuggestions.d.ts +9 -0
- package/dist/react/components/chat/ChatReplySuggestions.d.ts.map +1 -0
- package/dist/react/components/chat/ComposerCommandMenu.d.ts +10 -0
- package/dist/react/components/chat/ComposerCommandMenu.d.ts.map +1 -0
- package/dist/react/components/chat/LlmSettingsStrip.d.ts +7 -0
- package/dist/react/components/chat/LlmSettingsStrip.d.ts.map +1 -0
- package/dist/react/components/chat/LlmSetupPrompt.d.ts +7 -0
- package/dist/react/components/chat/LlmSetupPrompt.d.ts.map +1 -0
- package/dist/react/components/chat/LlmUnavailableBanner.d.ts +6 -0
- package/dist/react/components/chat/LlmUnavailableBanner.d.ts.map +1 -0
- package/dist/react/components/chat/SuggestedPromptsList.d.ts +14 -0
- package/dist/react/components/chat/SuggestedPromptsList.d.ts.map +1 -0
- package/dist/react/components/chat/SuggestedPromptsStrip.d.ts +11 -0
- package/dist/react/components/chat/SuggestedPromptsStrip.d.ts.map +1 -0
- package/dist/react/components/chat/SystemPromptField.d.ts +10 -0
- package/dist/react/components/chat/SystemPromptField.d.ts.map +1 -0
- package/dist/react/components/highlighted-code.d.ts +8 -0
- package/dist/react/components/highlighted-code.d.ts.map +1 -0
- package/dist/react/context.d.ts +11 -0
- package/dist/react/context.d.ts.map +1 -0
- package/dist/react/hooks/use-composer-commands.d.ts +21 -0
- package/dist/react/hooks/use-composer-commands.d.ts.map +1 -0
- package/dist/react/hooks/use-suggested-prompts.d.ts +29 -0
- package/dist/react/hooks/use-suggested-prompts.d.ts.map +1 -0
- package/dist/react/index.d.ts +17 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/lib/parse-assistant-error.d.ts +9 -0
- package/dist/react/lib/parse-assistant-error.d.ts.map +1 -0
- package/dist/react/lib/prompt-icons.d.ts +5 -0
- package/dist/react/lib/prompt-icons.d.ts.map +1 -0
- package/dist/react/types.d.ts +69 -0
- package/dist/react/types.d.ts.map +1 -0
- package/dist/react/utils/cn.d.ts +2 -0
- package/dist/react/utils/cn.d.ts.map +1 -0
- package/package.json +16 -5
- package/src/core/chat-activity.ts +0 -107
- package/src/core/chat-commands.ts +0 -173
- package/src/core/chat-history.ts +0 -113
- package/src/core/chat-reply-suggestions-parse.ts +0 -119
- package/src/core/code-highlight.ts +0 -20
- package/src/core/create-assistant-store.ts +0 -639
- package/src/core/fetch-suggested-prompts.ts +0 -53
- package/src/core/index.ts +0 -125
- package/src/core/interactive-tools/choices.ts +0 -155
- package/src/core/interactive-tools/confirmation.ts +0 -63
- package/src/core/interactive-tools/constants.ts +0 -22
- package/src/core/interactive-tools/execute.ts +0 -70
- package/src/core/interactive-tools/index.ts +0 -41
- package/src/core/interactive-tools/suggestions.ts +0 -87
- package/src/core/interactive-tools/waiters.ts +0 -55
- package/src/core/llm-chat.ts +0 -686
- package/src/core/llm-config.ts +0 -101
- package/src/core/llm-models.ts +0 -96
- package/src/core/llm-provider.ts +0 -99
- package/src/core/llm-settings-storage.ts +0 -331
- package/src/core/llm-sse.ts +0 -166
- package/src/core/llm-types.ts +0 -52
- package/src/core/markdown-utils.ts +0 -11
- package/src/core/prepare-markdown.ts +0 -38
- package/src/core/types.ts +0 -86
- package/src/css.d.ts +0 -1
- package/src/react/Assistant.tsx +0 -358
- package/src/react/components/HighlightedJsonCode.tsx +0 -24
- package/src/react/components/MarkdownContent.tsx +0 -98
- package/src/react/components/MarkdownEditor.tsx +0 -60
- package/src/react/components/MermaidDiagram.tsx +0 -139
- package/src/react/components/ModelSelector.tsx +0 -243
- package/src/react/components/chat/AssistantErrorCallout.tsx +0 -79
- package/src/react/components/chat/ChatActivity.tsx +0 -274
- package/src/react/components/chat/ChatComposer.tsx +0 -189
- package/src/react/components/chat/ChatEmptyState.tsx +0 -145
- package/src/react/components/chat/ChatInteractivePrompt/choices-prompt.tsx +0 -262
- package/src/react/components/chat/ChatInteractivePrompt/confirmation-prompt.tsx +0 -97
- package/src/react/components/chat/ChatInteractivePrompt/index.tsx +0 -60
- package/src/react/components/chat/ChatInteractivePrompt/shell.tsx +0 -60
- package/src/react/components/chat/ChatInteractivePrompt/utils.ts +0 -14
- package/src/react/components/chat/ChatMessage.tsx +0 -150
- package/src/react/components/chat/ChatMessageScroll.tsx +0 -116
- package/src/react/components/chat/ChatReplySuggestions.tsx +0 -231
- package/src/react/components/chat/ComposerCommandMenu.tsx +0 -69
- package/src/react/components/chat/LlmSettingsStrip.tsx +0 -348
- package/src/react/components/chat/LlmSetupPrompt.tsx +0 -58
- package/src/react/components/chat/LlmUnavailableBanner.tsx +0 -11
- package/src/react/components/chat/SuggestedPromptsList.tsx +0 -121
- package/src/react/components/chat/SuggestedPromptsStrip.tsx +0 -72
- package/src/react/components/chat/SystemPromptField.tsx +0 -107
- package/src/react/components/highlighted-code.tsx +0 -107
- package/src/react/context.tsx +0 -72
- package/src/react/hooks/use-composer-commands.ts +0 -129
- package/src/react/hooks/use-suggested-prompts.ts +0 -128
- package/src/react/index.ts +0 -39
- package/src/react/lib/parse-assistant-error.ts +0 -96
- package/src/react/lib/prompt-icons.ts +0 -40
- package/src/react/types.ts +0 -83
- package/src/react/utils/cn.ts +0 -5
- package/test/buildLlmHistory.test.ts +0 -95
- package/test/llm-config.test.ts +0 -72
- package/test/llmSettingsStorage.test.ts +0 -121
- package/test/parse-assistant-error.test.ts +0 -24
- package/tsconfig.json +0 -8
- /package/{src/styles/assistant.css → dist/styles.css} +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ClientToolDefinition } from "../llm-types.js";
|
|
2
|
+
export declare const REQUEST_CHOICES_TOOL = "request_choices";
|
|
3
|
+
export type ChoiceOption = {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
};
|
|
8
|
+
export type ChoicesToolArgs = {
|
|
9
|
+
message: string;
|
|
10
|
+
options: ChoiceOption[];
|
|
11
|
+
allowMultiple: boolean;
|
|
12
|
+
minSelections: number;
|
|
13
|
+
maxSelections?: number;
|
|
14
|
+
submitLabel: string;
|
|
15
|
+
};
|
|
16
|
+
export type ChoicesToolResult = {
|
|
17
|
+
selected: string[];
|
|
18
|
+
cancelled?: boolean;
|
|
19
|
+
};
|
|
20
|
+
export declare const CHOICES_TOOL: ClientToolDefinition;
|
|
21
|
+
export declare function parseChoicesArgs(args: Record<string, unknown>): ChoicesToolArgs;
|
|
22
|
+
//# sourceMappingURL=choices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"choices.d.ts","sourceRoot":"","sources":["../../../src/core/interactive-tools/choices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAEtD,MAAM,MAAM,YAAY,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,oBAuD1B,CAAC;AAEF,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,eAAe,CAuEjB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ClientToolDefinition } from "../llm-types.js";
|
|
2
|
+
export declare const REQUEST_CONFIRMATION_TOOL = "request_confirmation";
|
|
3
|
+
export type ConfirmationToolArgs = {
|
|
4
|
+
message: string;
|
|
5
|
+
action?: string;
|
|
6
|
+
confirmLabel: string;
|
|
7
|
+
cancelLabel: string;
|
|
8
|
+
};
|
|
9
|
+
export type ConfirmationToolResult = {
|
|
10
|
+
confirmed: boolean;
|
|
11
|
+
cancelled?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export declare const CONFIRMATION_TOOL: ClientToolDefinition;
|
|
14
|
+
export declare function parseConfirmationArgs(args: Record<string, unknown>): ConfirmationToolArgs;
|
|
15
|
+
//# sourceMappingURL=confirmation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirmation.d.ts","sourceRoot":"","sources":["../../../src/core/interactive-tools/confirmation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAEhE,MAAM,MAAM,oBAAoB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,oBA4B/B,CAAC;AAEF,wBAAgB,qBAAqB,CACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,oBAAoB,CActB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const INTERACTIVE_CHAT_TOOL_NAMES: Set<string>;
|
|
2
|
+
export declare const POST_RESPONSE_CHAT_TOOL_NAMES: Set<string>;
|
|
3
|
+
export declare function isInteractiveChatTool(name: string): boolean;
|
|
4
|
+
export declare function isPostResponseChatTool(name: string): boolean;
|
|
5
|
+
export declare function isChatUiTool(name: string): boolean;
|
|
6
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/core/interactive-tools/constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,2BAA2B,aAGtC,CAAC;AAEH,eAAO,MAAM,6BAA6B,aAAkC,CAAC;AAE7E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ClientToolDefinition } from "../llm-types.js";
|
|
2
|
+
import { type ReplySuggestions } from "./suggestions.js";
|
|
3
|
+
export type ChatInteractiveToolResult = {
|
|
4
|
+
content: string;
|
|
5
|
+
postResponse?: ReplySuggestions;
|
|
6
|
+
isError?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare function getChatInteractiveTools(): ClientToolDefinition[];
|
|
9
|
+
export declare function executeChatInteractiveTool(name: string, args: Record<string, unknown>, callId: string, signal?: AbortSignal): Promise<ChatInteractiveToolResult>;
|
|
10
|
+
export declare function shouldTerminateTurnAfterTool(name: string): boolean;
|
|
11
|
+
//# sourceMappingURL=execute.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/core/interactive-tools/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAc5D,OAAO,EAEN,KAAK,gBAAgB,EAGrB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,MAAM,yBAAyB,GAAG;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,wBAAgB,uBAAuB,IAAI,oBAAoB,EAAE,CAEhE;AAED,wBAAsB,0BAA0B,CAC/C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,yBAAyB,CAAC,CA4BpC;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { CHOICES_TOOL, type ChoiceOption, type ChoicesToolArgs, type ChoicesToolResult, parseChoicesArgs, REQUEST_CHOICES_TOOL, } from "./choices.js";
|
|
2
|
+
export { CONFIRMATION_TOOL, type ConfirmationToolArgs, type ConfirmationToolResult, parseConfirmationArgs, REQUEST_CONFIRMATION_TOOL, } from "./confirmation.js";
|
|
3
|
+
export { INTERACTIVE_CHAT_TOOL_NAMES, isChatUiTool, isInteractiveChatTool, isPostResponseChatTool, POST_RESPONSE_CHAT_TOOL_NAMES, } from "./constants.js";
|
|
4
|
+
export { type ChatInteractiveToolResult, executeChatInteractiveTool, getChatInteractiveTools, shouldTerminateTurnAfterTool, } from "./execute.js";
|
|
5
|
+
export { isValidReplySuggestions, parseSuggestRepliesArgs, type ReplySuggestions, SUGGEST_REPLIES_TOOL, SUGGEST_REPLIES_TOOL_DEFINITION, type SuggestRepliesToolResult, } from "./suggestions.js";
|
|
6
|
+
export { rejectAllInteractiveToolWaiters, resolveInteractiveToolResult, waitForInteractiveToolResult, } from "./waiters.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/interactive-tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,oBAAoB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,qBAAqB,EACrB,yBAAyB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,2BAA2B,EAC3B,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,6BAA6B,GAC7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,KAAK,yBAAyB,EAC9B,0BAA0B,EAC1B,uBAAuB,EACvB,4BAA4B,GAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,uBAAuB,EACvB,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,oBAAoB,EACpB,+BAA+B,EAC/B,KAAK,wBAAwB,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,+BAA+B,EAC/B,4BAA4B,EAC5B,4BAA4B,GAC5B,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ClientToolDefinition } from "../llm-types.js";
|
|
2
|
+
export declare const SUGGEST_REPLIES_TOOL = "suggest_replies";
|
|
3
|
+
export type ReplySuggestions = {
|
|
4
|
+
question: string;
|
|
5
|
+
suggestions: string[];
|
|
6
|
+
};
|
|
7
|
+
export type SuggestRepliesToolResult = {
|
|
8
|
+
displayed: true;
|
|
9
|
+
};
|
|
10
|
+
export declare const SUGGEST_REPLIES_TOOL_DEFINITION: ClientToolDefinition;
|
|
11
|
+
export declare function parseSuggestRepliesArgs(args: Record<string, unknown>): ReplySuggestions;
|
|
12
|
+
export declare function isValidReplySuggestions(value: unknown): value is ReplySuggestions;
|
|
13
|
+
//# sourceMappingURL=suggestions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggestions.d.ts","sourceRoot":"","sources":["../../../src/core/interactive-tools/suggestions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACtC,SAAS,EAAE,IAAI,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,oBAyB7C,CAAC;AAEF,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,gBAAgB,CAyBlB;AAED,wBAAgB,uBAAuB,CACtC,KAAK,EAAE,OAAO,GACZ,KAAK,IAAI,gBAAgB,CAe3B"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function waitForInteractiveToolResult<T>(callId: string, signal?: AbortSignal): Promise<T>;
|
|
2
|
+
export declare function resolveInteractiveToolResult(callId: string, value: unknown): boolean;
|
|
3
|
+
export declare function rejectAllInteractiveToolWaiters(error: Error): void;
|
|
4
|
+
//# sourceMappingURL=waiters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waiters.d.ts","sourceRoot":"","sources":["../../../src/core/interactive-tools/waiters.ts"],"names":[],"mappings":"AAOA,wBAAgB,4BAA4B,CAAC,CAAC,EAC7C,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,CAAC,CAAC,CAyBZ;AAED,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,GACZ,OAAO,CAOT;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAKlE"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { ReplySuggestions } from "./interactive-tools/index.js";
|
|
2
|
+
import type { ClientToolDefinition, LlmChatMessage, OpenAiToolCall } from "./llm-types.js";
|
|
3
|
+
import type { AssistantToolDefinition, AssistantToolResult } from "./types.js";
|
|
4
|
+
export declare class LlmNotConfiguredError extends Error {
|
|
5
|
+
readonly code = "LLM_DISABLED";
|
|
6
|
+
constructor(message?: string);
|
|
7
|
+
}
|
|
8
|
+
export declare class LlmUpstreamError extends Error {
|
|
9
|
+
readonly status: number;
|
|
10
|
+
readonly code: string;
|
|
11
|
+
constructor(message: string, status: number, code?: string);
|
|
12
|
+
}
|
|
13
|
+
export interface LlmChatStatus {
|
|
14
|
+
enabled: boolean;
|
|
15
|
+
model: string | null;
|
|
16
|
+
models: string[];
|
|
17
|
+
}
|
|
18
|
+
export declare class ChatAbortedError extends Error {
|
|
19
|
+
constructor();
|
|
20
|
+
}
|
|
21
|
+
export interface StreamHandlers {
|
|
22
|
+
turnId: string;
|
|
23
|
+
onUpdate: (content: string) => void;
|
|
24
|
+
}
|
|
25
|
+
export interface ToolHandlers {
|
|
26
|
+
onStart: (step: {
|
|
27
|
+
id: string;
|
|
28
|
+
name: string;
|
|
29
|
+
args: Record<string, unknown>;
|
|
30
|
+
callId: string;
|
|
31
|
+
}) => void;
|
|
32
|
+
onFinish: (stepId: string, update: {
|
|
33
|
+
status: "done" | "error";
|
|
34
|
+
result?: unknown;
|
|
35
|
+
error?: string;
|
|
36
|
+
}) => void;
|
|
37
|
+
}
|
|
38
|
+
export interface AgentStepResult {
|
|
39
|
+
assistantMessages: Array<{
|
|
40
|
+
id?: string;
|
|
41
|
+
content: string;
|
|
42
|
+
toolCall?: {
|
|
43
|
+
name: string;
|
|
44
|
+
args: Record<string, unknown>;
|
|
45
|
+
};
|
|
46
|
+
isError?: boolean;
|
|
47
|
+
streaming?: boolean;
|
|
48
|
+
}>;
|
|
49
|
+
apiMessages: LlmChatMessage[];
|
|
50
|
+
lastToolResult?: AssistantToolResult;
|
|
51
|
+
}
|
|
52
|
+
export declare function fetchLlmStatus(): Promise<LlmChatStatus>;
|
|
53
|
+
export declare function requestLlmCompletion(input: {
|
|
54
|
+
messages: LlmChatMessage[];
|
|
55
|
+
tools?: ClientToolDefinition[];
|
|
56
|
+
model?: string;
|
|
57
|
+
systemPrompt?: string;
|
|
58
|
+
responseFormat?: {
|
|
59
|
+
type: "json_object";
|
|
60
|
+
};
|
|
61
|
+
stream?: StreamHandlers;
|
|
62
|
+
signal?: AbortSignal;
|
|
63
|
+
}): Promise<{
|
|
64
|
+
content: string | null;
|
|
65
|
+
toolCalls: OpenAiToolCall[];
|
|
66
|
+
model: string;
|
|
67
|
+
}>;
|
|
68
|
+
export declare function runLlmAgent(input: {
|
|
69
|
+
userMessage: string;
|
|
70
|
+
history: LlmChatMessage[];
|
|
71
|
+
tools: AssistantToolDefinition[];
|
|
72
|
+
model?: string;
|
|
73
|
+
signal?: AbortSignal;
|
|
74
|
+
stream?: StreamHandlers;
|
|
75
|
+
toolHandlers?: ToolHandlers;
|
|
76
|
+
invokeTool: (name: string, args: Record<string, unknown>) => Promise<AssistantToolResult>;
|
|
77
|
+
onPostResponseTool?: (suggestions: ReplySuggestions) => void;
|
|
78
|
+
}): Promise<AgentStepResult>;
|
|
79
|
+
/** Drop tool messages that are not preceded by a matching assistant tool_calls entry. */
|
|
80
|
+
export declare function sanitizeLlmMessages(messages: LlmChatMessage[]): LlmChatMessage[];
|
|
81
|
+
export declare function buildLlmHistory(messages: Array<{
|
|
82
|
+
role: string;
|
|
83
|
+
content: string;
|
|
84
|
+
replySuggestions?: ReplySuggestions;
|
|
85
|
+
activity?: Array<{
|
|
86
|
+
name: string;
|
|
87
|
+
args: Record<string, unknown>;
|
|
88
|
+
error?: string;
|
|
89
|
+
result?: unknown;
|
|
90
|
+
}>;
|
|
91
|
+
toolCall?: {
|
|
92
|
+
name: string;
|
|
93
|
+
args: Record<string, unknown>;
|
|
94
|
+
};
|
|
95
|
+
}>): LlmChatMessage[];
|
|
96
|
+
//# sourceMappingURL=llm-chat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-chat.d.ts","sourceRoot":"","sources":["../../src/core/llm-chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const DEFAULT_LLM_BASE_URL = "https://api.openai.com/v1";
|
|
2
|
+
export declare const DEFAULT_LLM_MODEL = "gpt-4o-mini";
|
|
3
|
+
export declare const DEFAULT_ASSISTANT_SYSTEM_PROMPT = "You are a helpful assistant with access to tools. Use tools when they help answer the user.";
|
|
4
|
+
export interface ResolvedLlmSettings {
|
|
5
|
+
enabled: boolean;
|
|
6
|
+
baseUrl: string;
|
|
7
|
+
apiKey: string | null;
|
|
8
|
+
model: string;
|
|
9
|
+
models?: string[];
|
|
10
|
+
systemPrompt?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function getFallbackModels(defaultModel: string): string[];
|
|
13
|
+
export declare function resolveRequestModel(requested: string | undefined, config: Pick<ResolvedLlmSettings, "model">): string;
|
|
14
|
+
export declare function buildCompletionsUrl(baseUrl: string): string;
|
|
15
|
+
export declare function buildModelsUrl(baseUrl: string): string;
|
|
16
|
+
export declare function isLocalLlmBaseUrl(baseUrl: string): boolean;
|
|
17
|
+
export declare function isLlmConfigured(settings: Pick<ResolvedLlmSettings, "enabled" | "baseUrl" | "apiKey" | "model">): boolean;
|
|
18
|
+
export declare const LLM_UNAVAILABLE_MESSAGE = "Chat requires an LLM. Open LLM settings to add your provider base URL, model, and API key (optional for local servers).";
|
|
19
|
+
export declare function isLlmUnavailableMessage(message: {
|
|
20
|
+
content: string;
|
|
21
|
+
llmSetupRequired?: boolean;
|
|
22
|
+
}): boolean;
|
|
23
|
+
export declare function buildLlmRequestHeaders(apiKey: string | null | undefined): Record<string, string>;
|
|
24
|
+
//# sourceMappingURL=llm-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-config.d.ts","sourceRoot":"","sources":["../../src/core/llm-config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAChE,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,+BAA+B,gGACkD,CAAC;AAW/F,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhE;AAED,wBAAgB,mBAAmB,CAClC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,GACxC,MAAM,CAIR;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAItD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAc1D;AAED,wBAAgB,eAAe,CAC9B,QAAQ,EAAE,IAAI,CACb,mBAAmB,EACnB,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAC1C,GACC,OAAO,CAKT;AAED,eAAO,MAAM,uBAAuB,4HACsF,CAAC;AAE3H,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B,GAAG,OAAO,CAKV;AAED,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ResolvedLlmSettings } from "./llm-config.js";
|
|
2
|
+
interface ProviderModelEntry {
|
|
3
|
+
id?: string;
|
|
4
|
+
}
|
|
5
|
+
interface ProviderModelsResponse {
|
|
6
|
+
data?: ProviderModelEntry[];
|
|
7
|
+
}
|
|
8
|
+
export declare function fetchProviderModels(config: Pick<ResolvedLlmSettings, "baseUrl" | "apiKey" | "model">): Promise<string[]>;
|
|
9
|
+
export declare function normalizeProviderModels(body: ProviderModelsResponse, defaultModel: string): string[];
|
|
10
|
+
export declare function isChatModel(modelId: string): boolean;
|
|
11
|
+
export declare function mergeModels(defaultModel: string, models: string[]): string[];
|
|
12
|
+
export declare function clearProviderModelCache(): void;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=llm-models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-models.d.ts","sourceRoot":"","sources":["../../src/core/llm-models.ts"],"names":[],"mappings":"AAAA,OAAO,EAKN,KAAK,mBAAmB,EACxB,MAAM,iBAAiB,CAAC;AAkBzB,UAAU,kBAAkB;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,sBAAsB;IAC/B,IAAI,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC5B;AAKD,wBAAsB,mBAAmB,CACxC,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC,GAC/D,OAAO,CAAC,MAAM,EAAE,CAAC,CAgCnB;AAED,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,sBAAsB,EAC5B,YAAY,EAAE,MAAM,GAClB,MAAM,EAAE,CAOV;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAI5E;AAED,wBAAgB,uBAAuB,SAEtC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ResolvedLlmSettings } from "./llm-config.js";
|
|
2
|
+
import type { AssistantLlmConfig } from "./types.js";
|
|
3
|
+
export declare function configureAssistantLlm(config: AssistantLlmConfig): void;
|
|
4
|
+
export declare function resolveAssistantLlmSettings(): Promise<ResolvedLlmSettings>;
|
|
5
|
+
export declare function resetAssistantLlm(): void;
|
|
6
|
+
export declare function testLlmConnection(settings: Pick<ResolvedLlmSettings, "baseUrl" | "apiKey" | "model">): Promise<{
|
|
7
|
+
ok: true;
|
|
8
|
+
model: string;
|
|
9
|
+
} | {
|
|
10
|
+
ok: false;
|
|
11
|
+
error: string;
|
|
12
|
+
}>;
|
|
13
|
+
//# sourceMappingURL=llm-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-provider.d.ts","sourceRoot":"","sources":["../../src/core/llm-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAMN,KAAK,mBAAmB,EACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,kBAAkB,EAAwB,MAAM,YAAY,CAAC;AAsB3E,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,QAQ/D;AAED,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAGhF;AAED,wBAAgB,iBAAiB,SAEhC;AAED,wBAAsB,iBAAiB,CACtC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC,GACjE,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA+CrE"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { AssistantLlmSettings } from "./types.js";
|
|
2
|
+
export declare const DEFAULT_LLM_SETTINGS_STORAGE_KEY = "assistant-llm-settings";
|
|
3
|
+
/** Full LLM configuration persisted in localStorage */
|
|
4
|
+
export interface StoredLlmUserSettings {
|
|
5
|
+
baseUrl: string;
|
|
6
|
+
apiKey: string | null;
|
|
7
|
+
model: string;
|
|
8
|
+
models: string[];
|
|
9
|
+
systemPrompt: string;
|
|
10
|
+
}
|
|
11
|
+
export interface LlmSettingsFormValues {
|
|
12
|
+
baseUrl: string;
|
|
13
|
+
apiKey: string;
|
|
14
|
+
model: string;
|
|
15
|
+
modelsText: string;
|
|
16
|
+
systemPrompt: string;
|
|
17
|
+
}
|
|
18
|
+
export type LlmSettingsFormState = LlmSettingsFormValues & {
|
|
19
|
+
hasStoredApiKey: boolean;
|
|
20
|
+
defaultSystemPrompt: string;
|
|
21
|
+
};
|
|
22
|
+
export declare function buildDefaultLlmSettings(): AssistantLlmSettings;
|
|
23
|
+
export declare function assistantToStored(settings: AssistantLlmSettings): StoredLlmUserSettings;
|
|
24
|
+
export declare function storedToAssistant(stored: StoredLlmUserSettings): AssistantLlmSettings;
|
|
25
|
+
/** Normalize legacy/partial stored payloads against env defaults */
|
|
26
|
+
export declare function normalizeStoredSettings(raw: unknown, base: AssistantLlmSettings): StoredLlmUserSettings | null;
|
|
27
|
+
export declare function normalizeStoredSystemPrompt(storedPrompt: string, base: AssistantLlmSettings): string;
|
|
28
|
+
export declare function createDefaultStoredSettings(base: AssistantLlmSettings): StoredLlmUserSettings;
|
|
29
|
+
export declare function storedSettingsHaveOverrides(stored: StoredLlmUserSettings, base: AssistantLlmSettings): boolean;
|
|
30
|
+
export declare function mergeLlmSettings(base: AssistantLlmSettings, stored: StoredLlmUserSettings | null): AssistantLlmSettings;
|
|
31
|
+
export declare function isLlmSettingsFormDirty(current: LlmSettingsFormValues, saved: LlmSettingsFormValues): boolean;
|
|
32
|
+
export declare function resolveSelectedModel(storedModel: string, defaultModel: string, availableModels: string[]): string;
|
|
33
|
+
export declare function peekStoredModel(storageKey: string): string | null;
|
|
34
|
+
export declare function persistStoredModelSelection(storageKey: string, model: string): void;
|
|
35
|
+
export declare function migrateLegacyModelStorage(llmSettingsKey: string, legacyModelKey: string | undefined, base: AssistantLlmSettings): void;
|
|
36
|
+
export declare function parseModelsText(text: string): string[];
|
|
37
|
+
export declare function formatModelsText(models: string[] | undefined): string;
|
|
38
|
+
export declare function createLlmSettingsStorage(storageKey: string): {
|
|
39
|
+
load(base: AssistantLlmSettings): StoredLlmUserSettings | null;
|
|
40
|
+
save(settings: StoredLlmUserSettings): void;
|
|
41
|
+
clear(): void;
|
|
42
|
+
hasStored(): boolean;
|
|
43
|
+
};
|
|
44
|
+
export declare function toStoredSettings(values: LlmSettingsFormValues, existingApiKey: string | null): StoredLlmUserSettings;
|
|
45
|
+
export declare function createLlmSettingsFormState(settings: AssistantLlmSettings, hasStoredApiKey: boolean, defaultSystemPrompt?: string): LlmSettingsFormState;
|
|
46
|
+
export declare function createLlmSettingsFormStateFromStored(stored: StoredLlmUserSettings, defaultSystemPrompt?: string): LlmSettingsFormState;
|
|
47
|
+
//# sourceMappingURL=llm-settings-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-settings-storage.d.ts","sourceRoot":"","sources":["../../src/core/llm-settings-storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { OpenAiToolCall } from "./llm-types.js";
|
|
2
|
+
export interface ParsedStreamChunk {
|
|
3
|
+
contentDelta: string;
|
|
4
|
+
content: string;
|
|
5
|
+
toolCalls: OpenAiToolCall[];
|
|
6
|
+
model: string | null;
|
|
7
|
+
done: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function createStreamParser(): {
|
|
10
|
+
ingestLine: (line: string) => ParsedStreamChunk | null;
|
|
11
|
+
};
|
|
12
|
+
export declare function readSseStream(body: ReadableStream<Uint8Array>, onChunk: (chunk: ParsedStreamChunk) => void, signal?: AbortSignal): Promise<ParsedStreamChunk>;
|
|
13
|
+
//# sourceMappingURL=llm-sse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-sse.d.ts","sourceRoot":"","sources":["../../src/core/llm-sse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQrD,MAAM,WAAW,iBAAiB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;CACd;AAED,wBAAgB,kBAAkB;uBAiBP,MAAM,KAAG,iBAAiB,GAAG,IAAI;EAuE3D;AAED,wBAAsB,aAAa,CAClC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAChC,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,EAC3C,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,iBAAiB,CAAC,CAuD5B"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { JsonSchema } from "./types.js";
|
|
2
|
+
export interface OpenAiToolCall {
|
|
3
|
+
id: string;
|
|
4
|
+
type: "function";
|
|
5
|
+
function: {
|
|
6
|
+
name: string;
|
|
7
|
+
arguments: string;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export interface LlmChatMessage {
|
|
11
|
+
role: "system" | "user" | "assistant" | "tool";
|
|
12
|
+
content?: string | null;
|
|
13
|
+
tool_call_id?: string;
|
|
14
|
+
tool_calls?: OpenAiToolCall[];
|
|
15
|
+
}
|
|
16
|
+
export interface ClientToolDefinition {
|
|
17
|
+
name: string;
|
|
18
|
+
description: string;
|
|
19
|
+
inputSchema: JsonSchema;
|
|
20
|
+
}
|
|
21
|
+
export interface ChatCompletionRequest {
|
|
22
|
+
messages: LlmChatMessage[];
|
|
23
|
+
tools?: ClientToolDefinition[];
|
|
24
|
+
stream?: boolean;
|
|
25
|
+
model?: string;
|
|
26
|
+
systemPrompt?: string;
|
|
27
|
+
responseFormat?: {
|
|
28
|
+
type: "json_object";
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export interface ChatCompletionResult {
|
|
32
|
+
message: {
|
|
33
|
+
role: "assistant";
|
|
34
|
+
content: string | null;
|
|
35
|
+
tool_calls?: OpenAiToolCall[];
|
|
36
|
+
};
|
|
37
|
+
model: string;
|
|
38
|
+
usage?: {
|
|
39
|
+
prompt_tokens?: number;
|
|
40
|
+
completion_tokens?: number;
|
|
41
|
+
total_tokens?: number;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export interface LlmStatusResponse {
|
|
45
|
+
enabled: boolean;
|
|
46
|
+
model: string | null;
|
|
47
|
+
models: string[];
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=llm-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-types.d.ts","sourceRoot":"","sources":["../../src/core/llm-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KAClB,CAAC;CACF;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACrC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC;CACzC;AAED,MAAM,WAAW,oBAAoB;IACpC,OAAO,EAAE;QACR,IAAI,EAAE,WAAW,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;KAC9B,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QACP,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACF;AAED,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-utils.d.ts","sourceRoot":"","sources":["../../src/core/markdown-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM,CAQ1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-markdown.d.ts","sourceRoot":"","sources":["../../src/core/prepare-markdown.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIvD"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { ChatActivityStep } from "./chat-activity.js";
|
|
2
|
+
import type { ReplySuggestions } from "./interactive-tools/index.js";
|
|
3
|
+
export type JsonSchema = Record<string, unknown>;
|
|
4
|
+
export interface AssistantToolDefinition {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
inputSchema: JsonSchema;
|
|
8
|
+
}
|
|
9
|
+
export interface AssistantToolContent {
|
|
10
|
+
type: string;
|
|
11
|
+
text?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface AssistantToolResult {
|
|
14
|
+
isError?: boolean;
|
|
15
|
+
content: AssistantToolContent[];
|
|
16
|
+
structuredContent?: unknown;
|
|
17
|
+
}
|
|
18
|
+
export interface AssistantMessage {
|
|
19
|
+
id: string;
|
|
20
|
+
role: "user" | "assistant" | "system";
|
|
21
|
+
content: string;
|
|
22
|
+
activity?: ChatActivityStep[];
|
|
23
|
+
toolCall?: {
|
|
24
|
+
name: string;
|
|
25
|
+
args: Record<string, unknown>;
|
|
26
|
+
};
|
|
27
|
+
replySuggestions?: ReplySuggestions;
|
|
28
|
+
isError?: boolean;
|
|
29
|
+
llmSetupRequired?: boolean;
|
|
30
|
+
streaming?: boolean;
|
|
31
|
+
timestamp: number;
|
|
32
|
+
}
|
|
33
|
+
export interface AssistantSuggestedPrompt {
|
|
34
|
+
id: string;
|
|
35
|
+
label: string;
|
|
36
|
+
description?: string;
|
|
37
|
+
prompt: string;
|
|
38
|
+
/** Icon name for dynamic prompts (e.g. "database", "search") */
|
|
39
|
+
icon?: string;
|
|
40
|
+
}
|
|
41
|
+
export interface AssistantLlmSettings {
|
|
42
|
+
enabled: boolean;
|
|
43
|
+
baseUrl: string;
|
|
44
|
+
apiKey: string | null;
|
|
45
|
+
model: string;
|
|
46
|
+
/** Optional static model list; fetched from the provider when omitted */
|
|
47
|
+
models?: string[];
|
|
48
|
+
/** Default system prompt prepended to each completion request */
|
|
49
|
+
systemPrompt?: string;
|
|
50
|
+
}
|
|
51
|
+
export type AssistantLlmConfig = AssistantLlmSettings | (() => AssistantLlmSettings | Promise<AssistantLlmSettings>);
|
|
52
|
+
export interface AssistantStorageKeys {
|
|
53
|
+
history?: string;
|
|
54
|
+
/** @deprecated Legacy model key migrated into llmSettings on load */
|
|
55
|
+
model?: string;
|
|
56
|
+
llmSettings?: string;
|
|
57
|
+
}
|
|
58
|
+
export interface AssistantWelcomeContext {
|
|
59
|
+
llmEnabled: boolean;
|
|
60
|
+
model: string | null;
|
|
61
|
+
}
|
|
62
|
+
export interface AssistantStoreDependencies {
|
|
63
|
+
llm?: AssistantLlmConfig;
|
|
64
|
+
storageKeys?: AssistantStorageKeys;
|
|
65
|
+
welcomeMessage: (ctx: AssistantWelcomeContext) => AssistantMessage;
|
|
66
|
+
listTools: () => Promise<AssistantToolDefinition[]>;
|
|
67
|
+
invokeTool: (name: string, args: Record<string, unknown>) => Promise<AssistantToolResult>;
|
|
68
|
+
onToolInvoked?: (result: AssistantToolResult) => void;
|
|
69
|
+
fallbackHandler?: (input: {
|
|
70
|
+
message: string;
|
|
71
|
+
tools: AssistantToolDefinition[];
|
|
72
|
+
}) => Promise<AssistantMessage | null>;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|