@kognitivedev/ui 0.2.11
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/.turbo/turbo-build.log +2 -0
- package/CHANGELOG.md +19 -0
- package/README.md +264 -0
- package/dist/__tests__/context-provider.test.d.ts +1 -0
- package/dist/__tests__/context-provider.test.js +38 -0
- package/dist/__tests__/event-emitter.test.d.ts +1 -0
- package/dist/__tests__/event-emitter.test.js +62 -0
- package/dist/__tests__/keyboard-shortcuts.test.d.ts +1 -0
- package/dist/__tests__/keyboard-shortcuts.test.js +36 -0
- package/dist/__tests__/kognitive-runtime.test.d.ts +1 -0
- package/dist/__tests__/kognitive-runtime.test.js +58 -0
- package/dist/__tests__/kognitive-transport.test.d.ts +1 -0
- package/dist/__tests__/kognitive-transport.test.js +96 -0
- package/dist/__tests__/make-tool-ui.test.d.ts +1 -0
- package/dist/__tests__/make-tool-ui.test.js +50 -0
- package/dist/__tests__/message-helpers.test.d.ts +1 -0
- package/dist/__tests__/message-helpers.test.js +80 -0
- package/dist/__tests__/thread-manager.test.d.ts +1 -0
- package/dist/__tests__/thread-manager.test.js +84 -0
- package/dist/__tests__/tool-ui-registry.test.d.ts +1 -0
- package/dist/__tests__/tool-ui-registry.test.js +68 -0
- package/dist/__tests__/toolkit.test.d.ts +1 -0
- package/dist/__tests__/toolkit.test.js +33 -0
- package/dist/components/attachment-preview.d.ts +8 -0
- package/dist/components/attachment-preview.js +10 -0
- package/dist/components/composer.d.ts +6 -0
- package/dist/components/composer.js +10 -0
- package/dist/components/error-banner.d.ts +6 -0
- package/dist/components/error-banner.js +8 -0
- package/dist/components/markdown-content.d.ts +13 -0
- package/dist/components/markdown-content.js +31 -0
- package/dist/components/message.d.ts +7 -0
- package/dist/components/message.js +28 -0
- package/dist/components/status-indicator.d.ts +6 -0
- package/dist/components/status-indicator.js +16 -0
- package/dist/components/suggestions.d.ts +4 -0
- package/dist/components/suggestions.js +12 -0
- package/dist/components/thread-list.d.ts +4 -0
- package/dist/components/thread-list.js +20 -0
- package/dist/components/thread.d.ts +15 -0
- package/dist/components/thread.js +19 -0
- package/dist/components/tool-approval.d.ts +7 -0
- package/dist/components/tool-approval.js +12 -0
- package/dist/components/tool-invocation.d.ts +5 -0
- package/dist/components/tool-invocation.js +33 -0
- package/dist/context/kognitive-context.d.ts +2 -0
- package/dist/context/kognitive-context.js +6 -0
- package/dist/context/types.d.ts +44 -0
- package/dist/context/types.js +2 -0
- package/dist/context/use-kognitive.d.ts +1 -0
- package/dist/context/use-kognitive.js +7 -0
- package/dist/hooks/use-auto-scroll.d.ts +2 -0
- package/dist/hooks/use-auto-scroll.js +18 -0
- package/dist/hooks/use-copy-to-clipboard.d.ts +4 -0
- package/dist/hooks/use-copy-to-clipboard.js +13 -0
- package/dist/hooks/use-keyboard-shortcuts.d.ts +8 -0
- package/dist/hooks/use-keyboard-shortcuts.js +24 -0
- package/dist/hooks/use-kognitive-chat.d.ts +38 -0
- package/dist/hooks/use-kognitive-chat.js +35 -0
- package/dist/hooks/use-kognitive-event.d.ts +12 -0
- package/dist/hooks/use-kognitive-event.js +47 -0
- package/dist/hooks/use-streaming-status.d.ts +2 -0
- package/dist/hooks/use-streaming-status.js +8 -0
- package/dist/hooks/use-thread-manager.d.ts +20 -0
- package/dist/hooks/use-thread-manager.js +83 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.js +92 -0
- package/dist/kognitive-ui.d.ts +48 -0
- package/dist/kognitive-ui.js +130 -0
- package/dist/primitives/action-bar/action-bar-copy.d.ts +6 -0
- package/dist/primitives/action-bar/action-bar-copy.js +16 -0
- package/dist/primitives/action-bar/action-bar-edit.d.ts +6 -0
- package/dist/primitives/action-bar/action-bar-edit.js +11 -0
- package/dist/primitives/action-bar/action-bar-feedback.d.ts +10 -0
- package/dist/primitives/action-bar/action-bar-feedback.js +30 -0
- package/dist/primitives/action-bar/action-bar-retry.d.ts +6 -0
- package/dist/primitives/action-bar/action-bar-retry.js +25 -0
- package/dist/primitives/action-bar/action-bar-root.d.ts +6 -0
- package/dist/primitives/action-bar/action-bar-root.js +7 -0
- package/dist/primitives/action-bar/action-bar-stop.d.ts +6 -0
- package/dist/primitives/action-bar/action-bar-stop.js +11 -0
- package/dist/primitives/action-bar/index.d.ts +14 -0
- package/dist/primitives/action-bar/index.js +17 -0
- package/dist/primitives/composer/composer-attachment-trigger.d.ts +7 -0
- package/dist/primitives/composer/composer-attachment-trigger.js +33 -0
- package/dist/primitives/composer/composer-attachments.d.ts +7 -0
- package/dist/primitives/composer/composer-attachments.js +16 -0
- package/dist/primitives/composer/composer-input.d.ts +6 -0
- package/dist/primitives/composer/composer-input.js +19 -0
- package/dist/primitives/composer/composer-root.d.ts +6 -0
- package/dist/primitives/composer/composer-root.js +91 -0
- package/dist/primitives/composer/composer-send.d.ts +6 -0
- package/dist/primitives/composer/composer-send.js +10 -0
- package/dist/primitives/composer/edit-composer-root.d.ts +11 -0
- package/dist/primitives/composer/edit-composer-root.js +24 -0
- package/dist/primitives/composer/index.d.ts +15 -0
- package/dist/primitives/composer/index.js +19 -0
- package/dist/primitives/composer/use-composer.d.ts +12 -0
- package/dist/primitives/composer/use-composer.js +6 -0
- package/dist/primitives/message/index.d.ts +9 -0
- package/dist/primitives/message/index.js +13 -0
- package/dist/primitives/message/message-content.d.ts +25 -0
- package/dist/primitives/message/message-content.js +70 -0
- package/dist/primitives/message/message-role.d.ts +6 -0
- package/dist/primitives/message/message-role.js +11 -0
- package/dist/primitives/message/message-root.d.ts +9 -0
- package/dist/primitives/message/message-root.js +38 -0
- package/dist/primitives/message/use-message.d.ts +10 -0
- package/dist/primitives/message/use-message.js +6 -0
- package/dist/primitives/thread/index.d.ts +17 -0
- package/dist/primitives/thread/index.js +21 -0
- package/dist/primitives/thread/thread-empty.d.ts +5 -0
- package/dist/primitives/thread/thread-empty.js +11 -0
- package/dist/primitives/thread/thread-error.d.ts +6 -0
- package/dist/primitives/thread/thread-error.js +11 -0
- package/dist/primitives/thread/thread-loading.d.ts +5 -0
- package/dist/primitives/thread/thread-loading.js +11 -0
- package/dist/primitives/thread/thread-messages.d.ts +6 -0
- package/dist/primitives/thread/thread-messages.js +9 -0
- package/dist/primitives/thread/thread-root.d.ts +6 -0
- package/dist/primitives/thread/thread-root.js +12 -0
- package/dist/primitives/thread/thread-scroll-to-bottom.d.ts +6 -0
- package/dist/primitives/thread/thread-scroll-to-bottom.js +14 -0
- package/dist/primitives/thread/thread-suggestions.d.ts +6 -0
- package/dist/primitives/thread/thread-suggestions.js +14 -0
- package/dist/primitives/thread/use-thread.d.ts +9 -0
- package/dist/primitives/thread/use-thread.js +6 -0
- package/dist/primitives/thread-list/index.d.ts +11 -0
- package/dist/primitives/thread-list/index.js +15 -0
- package/dist/primitives/thread-list/thread-list-item.d.ts +9 -0
- package/dist/primitives/thread-list/thread-list-item.js +13 -0
- package/dist/primitives/thread-list/thread-list-items.d.ts +6 -0
- package/dist/primitives/thread-list/thread-list-items.js +9 -0
- package/dist/primitives/thread-list/thread-list-new.d.ts +6 -0
- package/dist/primitives/thread-list/thread-list-new.js +13 -0
- package/dist/primitives/thread-list/thread-list-root.d.ts +6 -0
- package/dist/primitives/thread-list/thread-list-root.js +16 -0
- package/dist/primitives/thread-list/use-thread-list.d.ts +9 -0
- package/dist/primitives/thread-list/use-thread-list.js +6 -0
- package/dist/primitives/tool-ui/index.d.ts +7 -0
- package/dist/primitives/tool-ui/index.js +11 -0
- package/dist/primitives/tool-ui/tool-ui-fallback.d.ts +5 -0
- package/dist/primitives/tool-ui/tool-ui-fallback.js +20 -0
- package/dist/primitives/tool-ui/tool-ui-root.d.ts +5 -0
- package/dist/primitives/tool-ui/tool-ui-root.js +20 -0
- package/dist/primitives/tool-ui/use-tool-ui.d.ts +2 -0
- package/dist/primitives/tool-ui/use-tool-ui.js +8 -0
- package/dist/runtime/kognitive-runtime.d.ts +30 -0
- package/dist/runtime/kognitive-runtime.js +32 -0
- package/dist/runtime/kognitive-transport.d.ts +26 -0
- package/dist/runtime/kognitive-transport.js +42 -0
- package/dist/runtime/thread-manager.d.ts +17 -0
- package/dist/runtime/thread-manager.js +62 -0
- package/dist/runtime/types.d.ts +58 -0
- package/dist/runtime/types.js +2 -0
- package/dist/tool-ui/make-tool-ui.d.ts +59 -0
- package/dist/tool-ui/make-tool-ui.js +10 -0
- package/dist/tool-ui/registry.d.ts +9 -0
- package/dist/tool-ui/registry.js +26 -0
- package/dist/tool-ui/tool-ui-context.d.ts +2 -0
- package/dist/tool-ui/tool-ui-context.js +6 -0
- package/dist/tool-ui/toolkit.d.ts +31 -0
- package/dist/tool-ui/toolkit.js +33 -0
- package/dist/tool-ui/types.d.ts +19 -0
- package/dist/tool-ui/types.js +2 -0
- package/dist/utils/cn.d.ts +2 -0
- package/dist/utils/cn.js +8 -0
- package/dist/utils/create-context.d.ts +1 -0
- package/dist/utils/create-context.js +16 -0
- package/dist/utils/message-helpers.d.ts +6 -0
- package/dist/utils/message-helpers.js +46 -0
- package/package.json +56 -0
- package/src/__tests__/context-provider.test.ts +43 -0
- package/src/__tests__/event-emitter.test.ts +69 -0
- package/src/__tests__/keyboard-shortcuts.test.ts +55 -0
- package/src/__tests__/kognitive-runtime.test.ts +62 -0
- package/src/__tests__/kognitive-transport.test.ts +113 -0
- package/src/__tests__/make-tool-ui.test.ts +60 -0
- package/src/__tests__/message-helpers.test.ts +101 -0
- package/src/__tests__/thread-manager.test.ts +118 -0
- package/src/__tests__/tool-ui-registry.test.ts +80 -0
- package/src/__tests__/toolkit.test.ts +37 -0
- package/src/components/attachment-preview.tsx +46 -0
- package/src/components/composer.tsx +59 -0
- package/src/components/error-banner.tsx +33 -0
- package/src/components/markdown-content.tsx +64 -0
- package/src/components/message.tsx +145 -0
- package/src/components/status-indicator.tsx +26 -0
- package/src/components/suggestions.tsx +27 -0
- package/src/components/thread-list.tsx +69 -0
- package/src/components/thread.tsx +89 -0
- package/src/components/tool-approval.tsx +54 -0
- package/src/components/tool-invocation.tsx +94 -0
- package/src/context/kognitive-context.tsx +8 -0
- package/src/context/types.ts +43 -0
- package/src/context/use-kognitive.ts +5 -0
- package/src/hooks/use-auto-scroll.ts +19 -0
- package/src/hooks/use-copy-to-clipboard.ts +16 -0
- package/src/hooks/use-keyboard-shortcuts.ts +34 -0
- package/src/hooks/use-kognitive-chat.ts +73 -0
- package/src/hooks/use-kognitive-event.ts +56 -0
- package/src/hooks/use-streaming-status.ts +7 -0
- package/src/hooks/use-thread-manager.ts +114 -0
- package/src/index.ts +56 -0
- package/src/kognitive-ui.tsx +216 -0
- package/src/primitives/action-bar/action-bar-copy.tsx +30 -0
- package/src/primitives/action-bar/action-bar-edit.tsx +24 -0
- package/src/primitives/action-bar/action-bar-feedback.tsx +59 -0
- package/src/primitives/action-bar/action-bar-retry.tsx +38 -0
- package/src/primitives/action-bar/action-bar-root.tsx +14 -0
- package/src/primitives/action-bar/action-bar-stop.tsx +24 -0
- package/src/primitives/action-bar/index.ts +15 -0
- package/src/primitives/composer/composer-attachment-trigger.tsx +70 -0
- package/src/primitives/composer/composer-attachments.tsx +36 -0
- package/src/primitives/composer/composer-input.tsx +46 -0
- package/src/primitives/composer/composer-root.tsx +130 -0
- package/src/primitives/composer/composer-send.tsx +23 -0
- package/src/primitives/composer/edit-composer-root.tsx +52 -0
- package/src/primitives/composer/index.ts +17 -0
- package/src/primitives/composer/use-composer.ts +19 -0
- package/src/primitives/message/index.ts +11 -0
- package/src/primitives/message/message-content.tsx +117 -0
- package/src/primitives/message/message-role.tsx +13 -0
- package/src/primitives/message/message-root.tsx +64 -0
- package/src/primitives/message/use-message.ts +17 -0
- package/src/primitives/thread/index.ts +19 -0
- package/src/primitives/thread/thread-empty.tsx +12 -0
- package/src/primitives/thread/thread-error.tsx +18 -0
- package/src/primitives/thread/thread-loading.tsx +12 -0
- package/src/primitives/thread/thread-messages.tsx +12 -0
- package/src/primitives/thread/thread-root.tsx +28 -0
- package/src/primitives/thread/thread-scroll-to-bottom.tsx +26 -0
- package/src/primitives/thread/thread-suggestions.tsx +31 -0
- package/src/primitives/thread/use-thread.ts +16 -0
- package/src/primitives/thread-list/index.ts +13 -0
- package/src/primitives/thread-list/thread-list-item.tsx +37 -0
- package/src/primitives/thread-list/thread-list-items.tsx +19 -0
- package/src/primitives/thread-list/thread-list-new.tsx +26 -0
- package/src/primitives/thread-list/thread-list-root.tsx +29 -0
- package/src/primitives/thread-list/use-thread-list.ts +16 -0
- package/src/primitives/tool-ui/index.ts +9 -0
- package/src/primitives/tool-ui/tool-ui-fallback.tsx +63 -0
- package/src/primitives/tool-ui/tool-ui-root.tsx +26 -0
- package/src/primitives/tool-ui/use-tool-ui.ts +7 -0
- package/src/runtime/kognitive-runtime.ts +56 -0
- package/src/runtime/kognitive-transport.ts +56 -0
- package/src/runtime/thread-manager.ts +92 -0
- package/src/runtime/types.ts +63 -0
- package/src/tool-ui/make-tool-ui.ts +71 -0
- package/src/tool-ui/registry.ts +27 -0
- package/src/tool-ui/tool-ui-context.tsx +8 -0
- package/src/tool-ui/toolkit.ts +40 -0
- package/src/tool-ui/types.ts +29 -0
- package/src/utils/cn.ts +6 -0
- package/src/utils/create-context.ts +18 -0
- package/src/utils/message-helpers.ts +42 -0
- package/tsconfig.json +15 -0
- package/vitest.config.ts +8 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.KognitiveContext = exports.useKognitiveContext = exports.KognitiveContextProvider = void 0;
|
|
5
|
+
const create_context_1 = require("../utils/create-context");
|
|
6
|
+
_a = (0, create_context_1.createContext)("Kognitive"), exports.KognitiveContextProvider = _a[0], exports.useKognitiveContext = _a[1], exports.KognitiveContext = _a[2];
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { UIMessage, ChatStatus, FileUIPart } from "ai";
|
|
2
|
+
import type { ThreadManager } from "../runtime/thread-manager";
|
|
3
|
+
import type { ToolUIRegistry } from "../tool-ui/registry";
|
|
4
|
+
import type { ThreadSummary } from "../runtime/types";
|
|
5
|
+
export interface KognitiveContextValue {
|
|
6
|
+
/** Current messages in the thread */
|
|
7
|
+
messages: UIMessage[];
|
|
8
|
+
/** Send a message to the agent */
|
|
9
|
+
send: (text: string, options?: {
|
|
10
|
+
files?: FileUIPart[];
|
|
11
|
+
}) => void;
|
|
12
|
+
/** Current runtime status */
|
|
13
|
+
status: ChatStatus;
|
|
14
|
+
/** Whether the agent is currently streaming */
|
|
15
|
+
isStreaming: boolean;
|
|
16
|
+
/** Stop the current stream */
|
|
17
|
+
stop: () => void;
|
|
18
|
+
/** Replace the message list */
|
|
19
|
+
setMessages: (messages: UIMessage[]) => void;
|
|
20
|
+
/** Thread manager (null if threads not enabled) */
|
|
21
|
+
threadManager: ThreadManager | null;
|
|
22
|
+
/** Tool UI registry */
|
|
23
|
+
toolUIRegistry: ToolUIRegistry;
|
|
24
|
+
/** Active session ID */
|
|
25
|
+
activeSessionId: string | null;
|
|
26
|
+
/** Switch to a different thread */
|
|
27
|
+
setActiveSessionId: (sessionId: string | null) => void;
|
|
28
|
+
/** List of threads (empty if threads not enabled) */
|
|
29
|
+
threads: ThreadSummary[];
|
|
30
|
+
/** Reload threads list */
|
|
31
|
+
refreshThreads: () => Promise<void>;
|
|
32
|
+
/** Create a new thread and switch to it */
|
|
33
|
+
createThread: () => Promise<void>;
|
|
34
|
+
/** Agent name */
|
|
35
|
+
agentName: string;
|
|
36
|
+
/** Current error (from stream or network failure) */
|
|
37
|
+
error: Error | undefined;
|
|
38
|
+
/** Feedback callback — called when user rates a message */
|
|
39
|
+
onFeedback?: (messageId: string, type: "positive" | "negative") => void;
|
|
40
|
+
/** Tool approval callback — called when user approves/rejects a tool call */
|
|
41
|
+
onToolApproval?: (toolCallId: string, approved: boolean) => void;
|
|
42
|
+
/** Suggested follow-up prompts shown after assistant responds */
|
|
43
|
+
suggestions: string[];
|
|
44
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useKognitive(): import("./types").KognitiveContextValue;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useKognitive = useKognitive;
|
|
4
|
+
const kognitive_context_1 = require("./kognitive-context");
|
|
5
|
+
function useKognitive() {
|
|
6
|
+
return (0, kognitive_context_1.useKognitiveContext)();
|
|
7
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useAutoScroll = useAutoScroll;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
function useAutoScroll(deps, containerRef) {
|
|
6
|
+
const endRef = (0, react_1.useRef)(null);
|
|
7
|
+
(0, react_1.useEffect)(() => {
|
|
8
|
+
var _a;
|
|
9
|
+
if (containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) {
|
|
10
|
+
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
(_a = endRef.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView({ behavior: "smooth" });
|
|
14
|
+
}
|
|
15
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
16
|
+
}, deps);
|
|
17
|
+
return endRef;
|
|
18
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useCopyToClipboard = useCopyToClipboard;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
function useCopyToClipboard(resetDelay = 2000) {
|
|
6
|
+
const [copied, setCopied] = (0, react_1.useState)(false);
|
|
7
|
+
const copy = (0, react_1.useCallback)(async (text) => {
|
|
8
|
+
await navigator.clipboard.writeText(text);
|
|
9
|
+
setCopied(true);
|
|
10
|
+
setTimeout(() => setCopied(false), resetDelay);
|
|
11
|
+
}, [resetDelay]);
|
|
12
|
+
return { copied, copy };
|
|
13
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useKeyboardShortcuts = useKeyboardShortcuts;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
function useKeyboardShortcuts(shortcuts) {
|
|
6
|
+
(0, react_1.useEffect)(() => {
|
|
7
|
+
function handleKeyDown(e) {
|
|
8
|
+
for (const shortcut of shortcuts) {
|
|
9
|
+
const ctrlOrMeta = shortcut.ctrl || shortcut.meta;
|
|
10
|
+
const matchesMod = ctrlOrMeta ? (e.ctrlKey || e.metaKey) : true;
|
|
11
|
+
const matchesShift = shortcut.shift ? e.shiftKey : !e.shiftKey;
|
|
12
|
+
if (e.key.toLowerCase() === shortcut.key.toLowerCase() &&
|
|
13
|
+
matchesMod &&
|
|
14
|
+
matchesShift) {
|
|
15
|
+
e.preventDefault();
|
|
16
|
+
shortcut.handler();
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
document.addEventListener("keydown", handleKeyDown);
|
|
22
|
+
return () => document.removeEventListener("keydown", handleKeyDown);
|
|
23
|
+
}, [shortcuts]);
|
|
24
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { UIMessage, FileUIPart, ChatStatus } from "ai";
|
|
2
|
+
export interface UseKognitiveChatConfig {
|
|
3
|
+
/** Explicit API endpoint URL (e.g., "/api/chat"). Takes priority over baseUrl+agentName. */
|
|
4
|
+
api?: string;
|
|
5
|
+
/** Agent name to connect to */
|
|
6
|
+
agentName?: string;
|
|
7
|
+
/** Base URL of the Kognitive runtime */
|
|
8
|
+
baseUrl?: string;
|
|
9
|
+
/** Current session/thread ID */
|
|
10
|
+
sessionId?: string;
|
|
11
|
+
/** User identity */
|
|
12
|
+
resourceId?: {
|
|
13
|
+
userId?: string;
|
|
14
|
+
sessionId?: string;
|
|
15
|
+
organizationId?: string;
|
|
16
|
+
};
|
|
17
|
+
/** Additional headers (e.g., auth) */
|
|
18
|
+
headers?: Record<string, string>;
|
|
19
|
+
/** Extra body fields merged into every request */
|
|
20
|
+
body?: Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
export interface UseKognitiveChatReturn {
|
|
23
|
+
/** Current messages */
|
|
24
|
+
messages: UIMessage[];
|
|
25
|
+
/** Send a text message, optionally with file attachments */
|
|
26
|
+
send: (text: string, options?: {
|
|
27
|
+
files?: FileUIPart[];
|
|
28
|
+
}) => void;
|
|
29
|
+
/** Current status */
|
|
30
|
+
status: ChatStatus;
|
|
31
|
+
/** Whether the agent is streaming */
|
|
32
|
+
isStreaming: boolean;
|
|
33
|
+
/** Stop the current stream */
|
|
34
|
+
stop: () => void;
|
|
35
|
+
/** Replace the message list */
|
|
36
|
+
setMessages: (messages: UIMessage[]) => void;
|
|
37
|
+
}
|
|
38
|
+
export declare function useKognitiveChat(config: UseKognitiveChatConfig): UseKognitiveChatReturn;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useKognitiveChat = useKognitiveChat;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const react_2 = require("@ai-sdk/react");
|
|
6
|
+
const kognitive_transport_1 = require("../runtime/kognitive-transport");
|
|
7
|
+
function useKognitiveChat(config) {
|
|
8
|
+
const transport = (0, react_1.useMemo)(() => (0, kognitive_transport_1.createKognitiveTransport)({
|
|
9
|
+
api: config.api,
|
|
10
|
+
baseUrl: config.baseUrl,
|
|
11
|
+
agentName: config.agentName,
|
|
12
|
+
sessionId: config.sessionId,
|
|
13
|
+
resourceId: config.resourceId,
|
|
14
|
+
headers: config.headers,
|
|
15
|
+
body: config.body,
|
|
16
|
+
}), [config.api, config.baseUrl, config.agentName, config.sessionId, config.resourceId, config.headers, config.body]);
|
|
17
|
+
const { messages, sendMessage, status, stop, setMessages } = (0, react_2.useChat)({
|
|
18
|
+
transport,
|
|
19
|
+
});
|
|
20
|
+
const send = (text, options) => {
|
|
21
|
+
const parts = [{ type: "text", text }];
|
|
22
|
+
if (options === null || options === void 0 ? void 0 : options.files) {
|
|
23
|
+
parts.push(...options.files);
|
|
24
|
+
}
|
|
25
|
+
sendMessage({ role: "user", parts });
|
|
26
|
+
};
|
|
27
|
+
return {
|
|
28
|
+
messages,
|
|
29
|
+
send,
|
|
30
|
+
status,
|
|
31
|
+
isStreaming: status === "streaming",
|
|
32
|
+
stop,
|
|
33
|
+
setMessages,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type KognitiveEventType = "message:send" | "message:received" | "status:change" | "tool:invoked" | "tool:completed" | "error";
|
|
2
|
+
export type KognitiveEventHandler = (data: unknown) => void;
|
|
3
|
+
export declare class KognitiveEventEmitter {
|
|
4
|
+
private listeners;
|
|
5
|
+
on(event: KognitiveEventType, handler: KognitiveEventHandler): () => void;
|
|
6
|
+
emit(event: KognitiveEventType, data?: unknown): void;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Subscribe to Kognitive lifecycle events.
|
|
10
|
+
* The handler is automatically cleaned up on unmount.
|
|
11
|
+
*/
|
|
12
|
+
export declare function useKognitiveEvent(emitter: KognitiveEventEmitter | undefined, event: KognitiveEventType, handler: KognitiveEventHandler): void;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KognitiveEventEmitter = void 0;
|
|
4
|
+
exports.useKognitiveEvent = useKognitiveEvent;
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
class KognitiveEventEmitter {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.listeners = new Map();
|
|
9
|
+
}
|
|
10
|
+
on(event, handler) {
|
|
11
|
+
if (!this.listeners.has(event)) {
|
|
12
|
+
this.listeners.set(event, new Set());
|
|
13
|
+
}
|
|
14
|
+
this.listeners.get(event).add(handler);
|
|
15
|
+
return () => {
|
|
16
|
+
var _a;
|
|
17
|
+
(_a = this.listeners.get(event)) === null || _a === void 0 ? void 0 : _a.delete(handler);
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
emit(event, data) {
|
|
21
|
+
const handlers = this.listeners.get(event);
|
|
22
|
+
if (handlers) {
|
|
23
|
+
for (const handler of handlers) {
|
|
24
|
+
try {
|
|
25
|
+
handler(data);
|
|
26
|
+
}
|
|
27
|
+
catch (_a) {
|
|
28
|
+
// Swallow listener errors
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.KognitiveEventEmitter = KognitiveEventEmitter;
|
|
35
|
+
/**
|
|
36
|
+
* Subscribe to Kognitive lifecycle events.
|
|
37
|
+
* The handler is automatically cleaned up on unmount.
|
|
38
|
+
*/
|
|
39
|
+
function useKognitiveEvent(emitter, event, handler) {
|
|
40
|
+
const handlerRef = (0, react_1.useRef)(handler);
|
|
41
|
+
handlerRef.current = handler;
|
|
42
|
+
(0, react_1.useEffect)(() => {
|
|
43
|
+
if (!emitter)
|
|
44
|
+
return;
|
|
45
|
+
return emitter.on(event, (data) => handlerRef.current(data));
|
|
46
|
+
}, [emitter, event]);
|
|
47
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useStreamingStatus = useStreamingStatus;
|
|
4
|
+
const kognitive_context_1 = require("../context/kognitive-context");
|
|
5
|
+
function useStreamingStatus() {
|
|
6
|
+
const { status } = (0, kognitive_context_1.useKognitiveContext)();
|
|
7
|
+
return status;
|
|
8
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ThreadManagerConfig } from "../runtime/thread-manager";
|
|
2
|
+
import type { ThreadSummary, ThreadDetail } from "../runtime/types";
|
|
3
|
+
export interface UseThreadManagerConfig extends ThreadManagerConfig {
|
|
4
|
+
/** Auto-create a thread if none exist */
|
|
5
|
+
autoCreate?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface UseThreadManagerReturn {
|
|
8
|
+
threads: ThreadSummary[];
|
|
9
|
+
activeSessionId: string | null;
|
|
10
|
+
threadDetail: ThreadDetail | null;
|
|
11
|
+
loadingThreads: boolean;
|
|
12
|
+
loadingThread: boolean;
|
|
13
|
+
setActiveSessionId: (sessionId: string | null) => void;
|
|
14
|
+
createThread: () => Promise<ThreadSummary>;
|
|
15
|
+
forkThread: (sessionId: string) => Promise<ThreadSummary>;
|
|
16
|
+
interruptThread: (sessionId: string) => Promise<void>;
|
|
17
|
+
refreshThreads: () => Promise<void>;
|
|
18
|
+
refreshThreadDetail: () => Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
export declare function useThreadManager(config: UseThreadManagerConfig): UseThreadManagerReturn;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useThreadManager = useThreadManager;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const thread_manager_1 = require("../runtime/thread-manager");
|
|
6
|
+
function useThreadManager(config) {
|
|
7
|
+
const [manager] = (0, react_1.useState)(() => new thread_manager_1.ThreadManager(config));
|
|
8
|
+
const [threads, setThreads] = (0, react_1.useState)([]);
|
|
9
|
+
const [activeSessionId, setActiveSessionId] = (0, react_1.useState)(null);
|
|
10
|
+
const [threadDetail, setThreadDetail] = (0, react_1.useState)(null);
|
|
11
|
+
const [loadingThreads, setLoadingThreads] = (0, react_1.useState)(true);
|
|
12
|
+
const [loadingThread, setLoadingThread] = (0, react_1.useState)(false);
|
|
13
|
+
const refreshThreads = (0, react_1.useCallback)(async (preferredSessionId) => {
|
|
14
|
+
setLoadingThreads(true);
|
|
15
|
+
try {
|
|
16
|
+
const nextThreads = await manager.list();
|
|
17
|
+
setThreads(nextThreads);
|
|
18
|
+
if (preferredSessionId) {
|
|
19
|
+
setActiveSessionId(preferredSessionId);
|
|
20
|
+
}
|
|
21
|
+
else if (!activeSessionId && nextThreads.length > 0) {
|
|
22
|
+
setActiveSessionId(nextThreads[0].sessionId);
|
|
23
|
+
}
|
|
24
|
+
else if (nextThreads.length === 0 && config.autoCreate) {
|
|
25
|
+
const thread = await manager.create();
|
|
26
|
+
setThreads([thread]);
|
|
27
|
+
setActiveSessionId(thread.sessionId);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
finally {
|
|
31
|
+
setLoadingThreads(false);
|
|
32
|
+
}
|
|
33
|
+
}, [manager, activeSessionId, config.autoCreate]);
|
|
34
|
+
const refreshThreadDetail = (0, react_1.useCallback)(async () => {
|
|
35
|
+
if (!activeSessionId)
|
|
36
|
+
return;
|
|
37
|
+
setLoadingThread(true);
|
|
38
|
+
try {
|
|
39
|
+
const detail = await manager.get(activeSessionId);
|
|
40
|
+
setThreadDetail(detail);
|
|
41
|
+
}
|
|
42
|
+
finally {
|
|
43
|
+
setLoadingThread(false);
|
|
44
|
+
}
|
|
45
|
+
}, [manager, activeSessionId]);
|
|
46
|
+
const createThread = (0, react_1.useCallback)(async () => {
|
|
47
|
+
const thread = await manager.create();
|
|
48
|
+
await refreshThreads(thread.sessionId);
|
|
49
|
+
return thread;
|
|
50
|
+
}, [manager, refreshThreads]);
|
|
51
|
+
const forkThread = (0, react_1.useCallback)(async (sessionId) => {
|
|
52
|
+
const thread = await manager.fork(sessionId);
|
|
53
|
+
await refreshThreads(thread.sessionId);
|
|
54
|
+
return thread;
|
|
55
|
+
}, [manager, refreshThreads]);
|
|
56
|
+
const interruptThread = (0, react_1.useCallback)(async (sessionId) => {
|
|
57
|
+
await manager.interrupt(sessionId);
|
|
58
|
+
await refreshThreads(sessionId);
|
|
59
|
+
await refreshThreadDetail();
|
|
60
|
+
}, [manager, refreshThreads, refreshThreadDetail]);
|
|
61
|
+
(0, react_1.useEffect)(() => {
|
|
62
|
+
void refreshThreads();
|
|
63
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
64
|
+
}, []);
|
|
65
|
+
(0, react_1.useEffect)(() => {
|
|
66
|
+
if (activeSessionId) {
|
|
67
|
+
void refreshThreadDetail();
|
|
68
|
+
}
|
|
69
|
+
}, [activeSessionId, refreshThreadDetail]);
|
|
70
|
+
return {
|
|
71
|
+
threads,
|
|
72
|
+
activeSessionId,
|
|
73
|
+
threadDetail,
|
|
74
|
+
loadingThreads,
|
|
75
|
+
loadingThread,
|
|
76
|
+
setActiveSessionId,
|
|
77
|
+
createThread,
|
|
78
|
+
forkThread,
|
|
79
|
+
interruptThread,
|
|
80
|
+
refreshThreads: () => refreshThreads(),
|
|
81
|
+
refreshThreadDetail,
|
|
82
|
+
};
|
|
83
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export { KognitiveUI, type KognitiveUIProps } from "./kognitive-ui";
|
|
2
|
+
export { makeToolUI, type MakeToolUIOptions, type MakeToolUIByNameOptions } from "./tool-ui/make-tool-ui";
|
|
3
|
+
export { toolkit, type ToolkitEntry } from "./tool-ui/toolkit";
|
|
4
|
+
export { ToolUIRegistry } from "./tool-ui/registry";
|
|
5
|
+
export type { ToolUIRegistration, ToolUIRenderProps, ToolUIComponent } from "./tool-ui/types";
|
|
6
|
+
export { ThreadPrimitive } from "./primitives/thread";
|
|
7
|
+
export { MessagePrimitive } from "./primitives/message";
|
|
8
|
+
export { ComposerPrimitive } from "./primitives/composer";
|
|
9
|
+
export { ActionBarPrimitive } from "./primitives/action-bar";
|
|
10
|
+
export { ToolUIPrimitive } from "./primitives/tool-ui";
|
|
11
|
+
export { ThreadListPrimitive } from "./primitives/thread-list";
|
|
12
|
+
export { Thread } from "./components/thread";
|
|
13
|
+
export { Message } from "./components/message";
|
|
14
|
+
export { Composer } from "./components/composer";
|
|
15
|
+
export { ThreadList } from "./components/thread-list";
|
|
16
|
+
export { ToolInvocation } from "./components/tool-invocation";
|
|
17
|
+
export { ToolApproval } from "./components/tool-approval";
|
|
18
|
+
export { MarkdownContent } from "./components/markdown-content";
|
|
19
|
+
export { AttachmentPreview } from "./components/attachment-preview";
|
|
20
|
+
export { StatusIndicator } from "./components/status-indicator";
|
|
21
|
+
export { ErrorBanner } from "./components/error-banner";
|
|
22
|
+
export { Suggestions } from "./components/suggestions";
|
|
23
|
+
export { useKognitiveChat, type UseKognitiveChatConfig, type UseKognitiveChatReturn } from "./hooks/use-kognitive-chat";
|
|
24
|
+
export { useKognitive } from "./context/use-kognitive";
|
|
25
|
+
export { useThreadManager, type UseThreadManagerConfig, type UseThreadManagerReturn } from "./hooks/use-thread-manager";
|
|
26
|
+
export { useAutoScroll } from "./hooks/use-auto-scroll";
|
|
27
|
+
export { useCopyToClipboard } from "./hooks/use-copy-to-clipboard";
|
|
28
|
+
export { useStreamingStatus } from "./hooks/use-streaming-status";
|
|
29
|
+
export { useKeyboardShortcuts, type KeyboardShortcut } from "./hooks/use-keyboard-shortcuts";
|
|
30
|
+
export { useKognitiveEvent, KognitiveEventEmitter, type KognitiveEventType, type KognitiveEventHandler } from "./hooks/use-kognitive-event";
|
|
31
|
+
export { useThread } from "./primitives/thread";
|
|
32
|
+
export { useMessage } from "./primitives/message";
|
|
33
|
+
export { useComposer } from "./primitives/composer";
|
|
34
|
+
export { useThreadList } from "./primitives/thread-list";
|
|
35
|
+
export { createKognitiveTransport, type KognitiveTransportConfig } from "./runtime/kognitive-transport";
|
|
36
|
+
export { KognitiveRuntime, type KognitiveRuntimeConfig } from "./runtime/kognitive-runtime";
|
|
37
|
+
export { ThreadManager, type ThreadManagerConfig } from "./runtime/thread-manager";
|
|
38
|
+
export type { ThreadSummary, ThreadDetail, ThreadEvent, ThreadTrace, ThreadRun } from "./runtime/types";
|
|
39
|
+
export type { ToolInvocationState } from "./tool-ui/types";
|
|
40
|
+
export { cn } from "./utils/cn";
|
|
41
|
+
export { getMessageText, getMessagePreview, getToolInvocations, hasToolInvocations, extractTextContent } from "./utils/message-helpers";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractTextContent = exports.hasToolInvocations = exports.getToolInvocations = exports.getMessagePreview = exports.getMessageText = exports.cn = exports.ThreadManager = exports.KognitiveRuntime = exports.createKognitiveTransport = exports.useThreadList = exports.useComposer = exports.useMessage = exports.useThread = exports.KognitiveEventEmitter = exports.useKognitiveEvent = exports.useKeyboardShortcuts = exports.useStreamingStatus = exports.useCopyToClipboard = exports.useAutoScroll = exports.useThreadManager = exports.useKognitive = exports.useKognitiveChat = exports.Suggestions = exports.ErrorBanner = exports.StatusIndicator = exports.AttachmentPreview = exports.MarkdownContent = exports.ToolApproval = exports.ToolInvocation = exports.ThreadList = exports.Composer = exports.Message = exports.Thread = exports.ThreadListPrimitive = exports.ToolUIPrimitive = exports.ActionBarPrimitive = exports.ComposerPrimitive = exports.MessagePrimitive = exports.ThreadPrimitive = exports.ToolUIRegistry = exports.toolkit = exports.makeToolUI = exports.KognitiveUI = void 0;
|
|
4
|
+
// ── Root Provider ──
|
|
5
|
+
var kognitive_ui_1 = require("./kognitive-ui");
|
|
6
|
+
Object.defineProperty(exports, "KognitiveUI", { enumerable: true, get: function () { return kognitive_ui_1.KognitiveUI; } });
|
|
7
|
+
// ── Tool UI System ──
|
|
8
|
+
var make_tool_ui_1 = require("./tool-ui/make-tool-ui");
|
|
9
|
+
Object.defineProperty(exports, "makeToolUI", { enumerable: true, get: function () { return make_tool_ui_1.makeToolUI; } });
|
|
10
|
+
var toolkit_1 = require("./tool-ui/toolkit");
|
|
11
|
+
Object.defineProperty(exports, "toolkit", { enumerable: true, get: function () { return toolkit_1.toolkit; } });
|
|
12
|
+
var registry_1 = require("./tool-ui/registry");
|
|
13
|
+
Object.defineProperty(exports, "ToolUIRegistry", { enumerable: true, get: function () { return registry_1.ToolUIRegistry; } });
|
|
14
|
+
// ── Primitives ──
|
|
15
|
+
var thread_1 = require("./primitives/thread");
|
|
16
|
+
Object.defineProperty(exports, "ThreadPrimitive", { enumerable: true, get: function () { return thread_1.ThreadPrimitive; } });
|
|
17
|
+
var message_1 = require("./primitives/message");
|
|
18
|
+
Object.defineProperty(exports, "MessagePrimitive", { enumerable: true, get: function () { return message_1.MessagePrimitive; } });
|
|
19
|
+
var composer_1 = require("./primitives/composer");
|
|
20
|
+
Object.defineProperty(exports, "ComposerPrimitive", { enumerable: true, get: function () { return composer_1.ComposerPrimitive; } });
|
|
21
|
+
var action_bar_1 = require("./primitives/action-bar");
|
|
22
|
+
Object.defineProperty(exports, "ActionBarPrimitive", { enumerable: true, get: function () { return action_bar_1.ActionBarPrimitive; } });
|
|
23
|
+
var tool_ui_1 = require("./primitives/tool-ui");
|
|
24
|
+
Object.defineProperty(exports, "ToolUIPrimitive", { enumerable: true, get: function () { return tool_ui_1.ToolUIPrimitive; } });
|
|
25
|
+
var thread_list_1 = require("./primitives/thread-list");
|
|
26
|
+
Object.defineProperty(exports, "ThreadListPrimitive", { enumerable: true, get: function () { return thread_list_1.ThreadListPrimitive; } });
|
|
27
|
+
// ── Composed Components ──
|
|
28
|
+
var thread_2 = require("./components/thread");
|
|
29
|
+
Object.defineProperty(exports, "Thread", { enumerable: true, get: function () { return thread_2.Thread; } });
|
|
30
|
+
var message_2 = require("./components/message");
|
|
31
|
+
Object.defineProperty(exports, "Message", { enumerable: true, get: function () { return message_2.Message; } });
|
|
32
|
+
var composer_2 = require("./components/composer");
|
|
33
|
+
Object.defineProperty(exports, "Composer", { enumerable: true, get: function () { return composer_2.Composer; } });
|
|
34
|
+
var thread_list_2 = require("./components/thread-list");
|
|
35
|
+
Object.defineProperty(exports, "ThreadList", { enumerable: true, get: function () { return thread_list_2.ThreadList; } });
|
|
36
|
+
var tool_invocation_1 = require("./components/tool-invocation");
|
|
37
|
+
Object.defineProperty(exports, "ToolInvocation", { enumerable: true, get: function () { return tool_invocation_1.ToolInvocation; } });
|
|
38
|
+
var tool_approval_1 = require("./components/tool-approval");
|
|
39
|
+
Object.defineProperty(exports, "ToolApproval", { enumerable: true, get: function () { return tool_approval_1.ToolApproval; } });
|
|
40
|
+
var markdown_content_1 = require("./components/markdown-content");
|
|
41
|
+
Object.defineProperty(exports, "MarkdownContent", { enumerable: true, get: function () { return markdown_content_1.MarkdownContent; } });
|
|
42
|
+
var attachment_preview_1 = require("./components/attachment-preview");
|
|
43
|
+
Object.defineProperty(exports, "AttachmentPreview", { enumerable: true, get: function () { return attachment_preview_1.AttachmentPreview; } });
|
|
44
|
+
var status_indicator_1 = require("./components/status-indicator");
|
|
45
|
+
Object.defineProperty(exports, "StatusIndicator", { enumerable: true, get: function () { return status_indicator_1.StatusIndicator; } });
|
|
46
|
+
var error_banner_1 = require("./components/error-banner");
|
|
47
|
+
Object.defineProperty(exports, "ErrorBanner", { enumerable: true, get: function () { return error_banner_1.ErrorBanner; } });
|
|
48
|
+
var suggestions_1 = require("./components/suggestions");
|
|
49
|
+
Object.defineProperty(exports, "Suggestions", { enumerable: true, get: function () { return suggestions_1.Suggestions; } });
|
|
50
|
+
// ── Hooks ──
|
|
51
|
+
var use_kognitive_chat_1 = require("./hooks/use-kognitive-chat");
|
|
52
|
+
Object.defineProperty(exports, "useKognitiveChat", { enumerable: true, get: function () { return use_kognitive_chat_1.useKognitiveChat; } });
|
|
53
|
+
var use_kognitive_1 = require("./context/use-kognitive");
|
|
54
|
+
Object.defineProperty(exports, "useKognitive", { enumerable: true, get: function () { return use_kognitive_1.useKognitive; } });
|
|
55
|
+
var use_thread_manager_1 = require("./hooks/use-thread-manager");
|
|
56
|
+
Object.defineProperty(exports, "useThreadManager", { enumerable: true, get: function () { return use_thread_manager_1.useThreadManager; } });
|
|
57
|
+
var use_auto_scroll_1 = require("./hooks/use-auto-scroll");
|
|
58
|
+
Object.defineProperty(exports, "useAutoScroll", { enumerable: true, get: function () { return use_auto_scroll_1.useAutoScroll; } });
|
|
59
|
+
var use_copy_to_clipboard_1 = require("./hooks/use-copy-to-clipboard");
|
|
60
|
+
Object.defineProperty(exports, "useCopyToClipboard", { enumerable: true, get: function () { return use_copy_to_clipboard_1.useCopyToClipboard; } });
|
|
61
|
+
var use_streaming_status_1 = require("./hooks/use-streaming-status");
|
|
62
|
+
Object.defineProperty(exports, "useStreamingStatus", { enumerable: true, get: function () { return use_streaming_status_1.useStreamingStatus; } });
|
|
63
|
+
var use_keyboard_shortcuts_1 = require("./hooks/use-keyboard-shortcuts");
|
|
64
|
+
Object.defineProperty(exports, "useKeyboardShortcuts", { enumerable: true, get: function () { return use_keyboard_shortcuts_1.useKeyboardShortcuts; } });
|
|
65
|
+
var use_kognitive_event_1 = require("./hooks/use-kognitive-event");
|
|
66
|
+
Object.defineProperty(exports, "useKognitiveEvent", { enumerable: true, get: function () { return use_kognitive_event_1.useKognitiveEvent; } });
|
|
67
|
+
Object.defineProperty(exports, "KognitiveEventEmitter", { enumerable: true, get: function () { return use_kognitive_event_1.KognitiveEventEmitter; } });
|
|
68
|
+
// ── Primitive Hooks ──
|
|
69
|
+
var thread_3 = require("./primitives/thread");
|
|
70
|
+
Object.defineProperty(exports, "useThread", { enumerable: true, get: function () { return thread_3.useThread; } });
|
|
71
|
+
var message_3 = require("./primitives/message");
|
|
72
|
+
Object.defineProperty(exports, "useMessage", { enumerable: true, get: function () { return message_3.useMessage; } });
|
|
73
|
+
var composer_3 = require("./primitives/composer");
|
|
74
|
+
Object.defineProperty(exports, "useComposer", { enumerable: true, get: function () { return composer_3.useComposer; } });
|
|
75
|
+
var thread_list_3 = require("./primitives/thread-list");
|
|
76
|
+
Object.defineProperty(exports, "useThreadList", { enumerable: true, get: function () { return thread_list_3.useThreadList; } });
|
|
77
|
+
// ── Runtime (advanced) ──
|
|
78
|
+
var kognitive_transport_1 = require("./runtime/kognitive-transport");
|
|
79
|
+
Object.defineProperty(exports, "createKognitiveTransport", { enumerable: true, get: function () { return kognitive_transport_1.createKognitiveTransport; } });
|
|
80
|
+
var kognitive_runtime_1 = require("./runtime/kognitive-runtime");
|
|
81
|
+
Object.defineProperty(exports, "KognitiveRuntime", { enumerable: true, get: function () { return kognitive_runtime_1.KognitiveRuntime; } });
|
|
82
|
+
var thread_manager_1 = require("./runtime/thread-manager");
|
|
83
|
+
Object.defineProperty(exports, "ThreadManager", { enumerable: true, get: function () { return thread_manager_1.ThreadManager; } });
|
|
84
|
+
// ── Utilities ──
|
|
85
|
+
var cn_1 = require("./utils/cn");
|
|
86
|
+
Object.defineProperty(exports, "cn", { enumerable: true, get: function () { return cn_1.cn; } });
|
|
87
|
+
var message_helpers_1 = require("./utils/message-helpers");
|
|
88
|
+
Object.defineProperty(exports, "getMessageText", { enumerable: true, get: function () { return message_helpers_1.getMessageText; } });
|
|
89
|
+
Object.defineProperty(exports, "getMessagePreview", { enumerable: true, get: function () { return message_helpers_1.getMessagePreview; } });
|
|
90
|
+
Object.defineProperty(exports, "getToolInvocations", { enumerable: true, get: function () { return message_helpers_1.getToolInvocations; } });
|
|
91
|
+
Object.defineProperty(exports, "hasToolInvocations", { enumerable: true, get: function () { return message_helpers_1.hasToolInvocations; } });
|
|
92
|
+
Object.defineProperty(exports, "extractTextContent", { enumerable: true, get: function () { return message_helpers_1.extractTextContent; } });
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { ToolUIRegistration } from "./tool-ui/types";
|
|
3
|
+
export interface KognitiveUIProps {
|
|
4
|
+
/**
|
|
5
|
+
* Explicit API endpoint URL (e.g., "/api/chat").
|
|
6
|
+
* When set, takes priority over baseUrl + agentName for URL construction.
|
|
7
|
+
* agentName is sent in the request body instead.
|
|
8
|
+
*/
|
|
9
|
+
api?: string;
|
|
10
|
+
/** Agent name to connect to */
|
|
11
|
+
agentName: string;
|
|
12
|
+
/** Base URL of the Kognitive runtime (or proxy). Used with agentName to build stream URL. */
|
|
13
|
+
baseUrl?: string;
|
|
14
|
+
/** Auth headers */
|
|
15
|
+
headers?: Record<string, string>;
|
|
16
|
+
/** User identity */
|
|
17
|
+
resourceId?: {
|
|
18
|
+
userId?: string;
|
|
19
|
+
sessionId?: string;
|
|
20
|
+
organizationId?: string;
|
|
21
|
+
};
|
|
22
|
+
/** Session/thread ID (controlled mode — disables thread management) */
|
|
23
|
+
sessionId?: string;
|
|
24
|
+
/** Enable thread management */
|
|
25
|
+
threads?: boolean;
|
|
26
|
+
/** Thread API base URL. Defaults to {baseUrl}/api/agents/{agentName}/threads */
|
|
27
|
+
threadApiBase?: string;
|
|
28
|
+
/** Tool UI registrations from makeToolUI() */
|
|
29
|
+
toolUIs?: ToolUIRegistration[];
|
|
30
|
+
/** Tool UI registrations from toolkit() */
|
|
31
|
+
toolkit?: ToolUIRegistration[];
|
|
32
|
+
/** Extra body fields merged into every request */
|
|
33
|
+
body?: Record<string, unknown>;
|
|
34
|
+
/** Callback when user rates an assistant message (thumbs up/down) */
|
|
35
|
+
onFeedback?: (messageId: string, type: "positive" | "negative") => void;
|
|
36
|
+
/** Callback when user approves or rejects a tool call */
|
|
37
|
+
onToolApproval?: (toolCallId: string, approved: boolean) => void;
|
|
38
|
+
/** Suggested follow-up prompts shown after assistant response */
|
|
39
|
+
suggestions?: string[];
|
|
40
|
+
/** Children */
|
|
41
|
+
children: React.ReactNode;
|
|
42
|
+
}
|
|
43
|
+
export declare function KognitiveUI(props: KognitiveUIProps): import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
export declare namespace KognitiveUI {
|
|
45
|
+
var Thread: typeof import("./components/thread").Thread;
|
|
46
|
+
var ThreadList: typeof import("./components/thread-list").ThreadList;
|
|
47
|
+
var Composer: typeof import("./components/composer").Composer;
|
|
48
|
+
}
|