@itechchoice/prime-chatkit 0.1.0-alpha.1 → 0.1.0-alpha.10
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/LICENSE +20 -0
- package/dist/index.js +3723 -3170
- package/dist/style.css +1 -1
- package/dist/types/adapters/bff/controller.d.ts +3 -0
- package/dist/types/components/agent-thread.d.ts +18 -2
- package/dist/types/components/ui/chat-composer-clean.d.ts +6 -1
- package/dist/types/components/ui/command-menu-clean.d.ts +3 -1
- package/dist/types/components/ui/decision-card-clean.d.ts +1 -0
- package/dist/types/components/ui/dropzone-clean.d.ts +5 -1
- package/dist/types/components/ui/thinking-loader-clean.d.ts +19 -0
- package/dist/types/core/history.d.ts +2 -0
- package/dist/types/core/run.d.ts +2 -0
- package/dist/types/layout/constants.d.ts +3 -1
- package/dist/types/ui/blocks/BlocksPanel.d.ts +4 -1
- package/dist/types/ui/blocks/LiveStatus.d.ts +12 -0
- package/dist/types/ui/blocks/useFollowLatest.d.ts +2 -1
- package/dist/types/ui/i18n.d.ts +15 -0
- package/dist/types/ui/thread.d.ts +3 -0
- package/package.json +3 -3
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.abc-prime-dock{position:fixed;right:1rem;bottom:1rem;top:auto;left:auto;width:min(
|
|
1
|
+
.abc-prime-dock{position:fixed;right:1rem;bottom:1rem;top:auto;left:auto;width:min(420px,94vw);height:calc(100vh - var(--abc-prime-header-offset, var(--chatkit-header-offset, 0px)) - 16px);z-index:60;pointer-events:none;transition:width .22s ease,right .22s ease,bottom .22s ease,transform .22s ease;visibility:hidden}.abc-prime-dock--open{pointer-events:auto;visibility:visible}.abc-prime-dock--minimized{pointer-events:none;visibility:visible}.abc-prime-dock--split{inset:0 0 0 auto;width:var(--abc-prime-split-width, var(--chatkit-split-width, 480px));min-width:var(--abc-prime-split-min-width, var(--chatkit-split-min-width, 480px));height:100vh;border-left:1px solid var(--border-input, rgba(15, 23, 42, .08))}body.chatkit-resizing .abc-prime-dock,body.chatkit-dragging .abc-prime-dock,body.chatkit-dock-resizing .abc-prime-dock{transition:none}.abc-prime-dock__resize-handle{position:absolute;top:0;bottom:0;left:-12px;width:24px;display:flex;align-items:center;justify-content:center;cursor:col-resize;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;z-index:2}.abc-prime-dock__panel{display:flex;flex-direction:column;gap:0;border:1px solid var(--border-input, rgba(15, 23, 42, .08));border-radius:1.25rem;background:transparent;box-shadow:0 25px 50px #0f172a2e;padding:0;overflow:hidden;overscroll-behavior:contain;transform:translateY(20px);opacity:0;pointer-events:auto;transition:opacity .18s ease,transform .26s cubic-bezier(.2,.8,.2,1);height:100%}.abc-prime-dock--open .abc-prime-dock__panel{opacity:1;transform:translateY(0)}.abc-prime-dock--split .abc-prime-dock__panel{transform:translate(32px);border-radius:0}.abc-prime-dock--open.abc-prime-dock--split .abc-prime-dock__panel{transform:translate(0)}.abc-prime-dock--minimized .abc-prime-dock__panel{opacity:0;transform:scale(.06) translate(12px,12px);pointer-events:none}.abc-prime-dock__minimized{position:fixed;right:1rem;bottom:1rem;width:48px;height:48px;border-radius:999px;background:rgb(var(--color-theme-blue, 34 99 248));color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 12px 24px #2263f847;transform:scale(.6);opacity:0;pointer-events:none;transition:transform .36s cubic-bezier(.18,1.35,.32,1),opacity .32s ease}.abc-prime-dock--minimized .abc-prime-dock__minimized{opacity:1;transform:scale(1);pointer-events:auto}.abc-prime-dock__header{cursor:default}.abc-prime-dock--dock-interactive:not(.abc-prime-dock--split) .abc-prime-dock__header{cursor:grab;touch-action:none}.abc-prime-dock--dragging:not(.abc-prime-dock--split) .abc-prime-dock__header{cursor:grabbing}.abc-prime-dock__resize-corner{position:absolute;right:.75rem;bottom:.75rem;width:18px;height:18px;border:0;background:transparent;cursor:nwse-resize;z-index:3}@media(max-width:640px){.abc-prime-dock{right:.75rem;left:.75rem;width:auto;bottom:.75rem}}
|
|
@@ -100,6 +100,9 @@ export type ThreadTaskDetail = {
|
|
|
100
100
|
export type ThreadPart = {
|
|
101
101
|
kind: "text";
|
|
102
102
|
text: string;
|
|
103
|
+
} | {
|
|
104
|
+
kind: "note";
|
|
105
|
+
text: string;
|
|
103
106
|
} | {
|
|
104
107
|
kind: "tools";
|
|
105
108
|
id: string;
|
|
@@ -312,6 +315,7 @@ declare function threadDefaults(locale: string): {
|
|
|
312
315
|
message: string;
|
|
313
316
|
voiceInput: string;
|
|
314
317
|
sendMessage: string;
|
|
318
|
+
stop: string;
|
|
315
319
|
discardRecording: string;
|
|
316
320
|
useRecording: string;
|
|
317
321
|
connectApps: string;
|
|
@@ -539,6 +543,7 @@ declare const defaultLabels: {
|
|
|
539
543
|
message: string;
|
|
540
544
|
voiceInput: string;
|
|
541
545
|
sendMessage: string;
|
|
546
|
+
stop: string;
|
|
542
547
|
discardRecording: string;
|
|
543
548
|
useRecording: string;
|
|
544
549
|
connectApps: string;
|
|
@@ -631,6 +636,7 @@ export type AgentThreadScreenProps = Pick<AppShellProps, "onNavigate" | "user" |
|
|
|
631
636
|
start?: {
|
|
632
637
|
greeting?: string;
|
|
633
638
|
body?: string;
|
|
639
|
+
avatar?: string;
|
|
634
640
|
prompts?: {
|
|
635
641
|
id: string;
|
|
636
642
|
label: string;
|
|
@@ -712,6 +718,10 @@ export type AgentThreadScreenProps = Pick<AppShellProps, "onNavigate" | "user" |
|
|
|
712
718
|
labels?: ThreadLabels;
|
|
713
719
|
locale?: string;
|
|
714
720
|
};
|
|
721
|
+
declare function ThreadStart({ start, onStartPrompt }: {
|
|
722
|
+
start: NonNullable<AgentThreadScreenProps["start"]>;
|
|
723
|
+
onStartPrompt?: AgentThreadScreenProps["onStartPrompt"];
|
|
724
|
+
}): import("react").JSX.Element;
|
|
715
725
|
export declare function AgentThreadScreen({ workspace, messages: messagesProp, overlay, start, onStartPrompt, onLink, orchestratorAvatar, onCopy, onRegenerate, onFeedback, feedbackReasons, onSend, onStop, onRetry, connection: connectionProp, onReconnect, lastSeen: lastSeenProp, awayAfter, onMarkRead, running, decisions: decisionsProp, onDecide, onLater, tasks: taskDetailsProp, onOpenTask, onShowTask, onOpenInbox, artifacts, openArtifacts, models, composer, suggested, upload, transcribe, simulate, labels: labelProp, locale, onNavigate, ...props }: AgentThreadScreenProps): import("react").JSX.Element;
|
|
716
726
|
/** Yours: a soft bubble on the right, files above it; queued, sending or failed under it */
|
|
717
727
|
declare function UserMessage({ message: m, labels, onRetry }: {
|
|
@@ -721,8 +731,14 @@ declare function UserMessage({ message: m, labels, onRetry }: {
|
|
|
721
731
|
}): import("react").JSX.Element;
|
|
722
732
|
/** The orchestrator's: plain text on the page under its mark, with its cards, tools and files in between */
|
|
723
733
|
declare const ThreadLinkContext: import("react").Context<((href: string, event: MouseEvent<HTMLAnchorElement>) => void) | undefined>;
|
|
724
|
-
declare
|
|
734
|
+
declare const ThreadMarkdown: import("react").NamedExoticComponent<{
|
|
735
|
+
text: string;
|
|
736
|
+
}>;
|
|
737
|
+
declare function AgentMessage({ message: m, status, phase, liveOpen, clock, orchestratorAvatar, first, now, labels, askState, onTask, onAsk, onRetry, onCopy, onRegenerate, onFeedback, feedbackReasons, }: {
|
|
725
738
|
message: ThreadAgentMessage;
|
|
739
|
+
status?: ReactNode;
|
|
740
|
+
phase?: "working" | "writing" | "done";
|
|
741
|
+
liveOpen?: boolean;
|
|
726
742
|
clock: Intl.DateTimeFormat;
|
|
727
743
|
orchestratorAvatar?: string;
|
|
728
744
|
first: boolean;
|
|
@@ -733,7 +749,7 @@ declare function AgentMessage({ message: m, clock, orchestratorAvatar, first, no
|
|
|
733
749
|
onAsk: (id: string) => void;
|
|
734
750
|
onRetry?: () => void;
|
|
735
751
|
} & Pick<AgentThreadScreenProps, "onCopy" | "onRegenerate" | "onFeedback" | "feedbackReasons">): import("react").JSX.Element;
|
|
736
|
-
export { UserMessage, AgentMessage, ThreadLinkContext, threadDefaults };
|
|
752
|
+
export { UserMessage, AgentMessage, ThreadStart, ThreadMarkdown, ThreadLinkContext, threadDefaults };
|
|
737
753
|
export type { Labels };
|
|
738
754
|
/** The original message parts, with their shell tokens but no screen layout. */
|
|
739
755
|
export declare function ThreadPartsRoot({ children, className }: {
|
|
@@ -50,6 +50,7 @@ export declare const defaultChatComposerLabels: {
|
|
|
50
50
|
message: string;
|
|
51
51
|
voiceInput: string;
|
|
52
52
|
sendMessage: string;
|
|
53
|
+
stop: string;
|
|
53
54
|
discardRecording: string;
|
|
54
55
|
useRecording: string;
|
|
55
56
|
connectApps: string;
|
|
@@ -66,6 +67,8 @@ export declare const defaultChatComposerLabels: {
|
|
|
66
67
|
};
|
|
67
68
|
export type ChatComposerLabels = typeof defaultChatComposerLabels;
|
|
68
69
|
export type ChatComposerProps = {
|
|
70
|
+
running?: boolean;
|
|
71
|
+
onStop?: () => void;
|
|
69
72
|
sendDisabled?: boolean;
|
|
70
73
|
labels?: Partial<ChatComposerLabels>;
|
|
71
74
|
placeholder?: string;
|
|
@@ -80,6 +83,8 @@ export type ChatComposerProps = {
|
|
|
80
83
|
onModelChange?: (model: ChatModel) => void;
|
|
81
84
|
/** An entry of the plus menu was picked: "files", "claude", "folder", "goal", "plan", "skill", "draw", "documents" or "pdf" */
|
|
82
85
|
onAttach?: (item: string) => void;
|
|
86
|
+
/** Open a picker directly instead of the plus menu. */
|
|
87
|
+
onAdd?: () => void;
|
|
83
88
|
/** Plus-menu row IDs to show, after the tray's folder/apps replacement; omitted, show all. */
|
|
84
89
|
addItems?: string[];
|
|
85
90
|
/** The approval mode to start with; false removes the button and menu. */
|
|
@@ -112,4 +117,4 @@ export type ChatComposerProps = {
|
|
|
112
117
|
export declare const defaultFolders: string[];
|
|
113
118
|
export declare const defaultApps: ChatApp[];
|
|
114
119
|
export declare const defaultModels: ChatModel[];
|
|
115
|
-
export declare function ChatComposer({ sendDisabled, placeholder, disabled, labels: labelProp, models, dictation, onSend, onModelChange, onAttach, addItems, voice, approval: firstApproval, onApprovalChange, onLearnMore, folders, folder: firstFolder, onFolderChange, apps, connectedApps, onAppsChange, foot, tray, }: ChatComposerProps): import("react").JSX.Element;
|
|
120
|
+
export declare function ChatComposer({ running, onStop, sendDisabled, placeholder, disabled, labels: labelProp, models, dictation, onSend, onModelChange, onAttach, onAdd, addItems, voice, approval: firstApproval, onApprovalChange, onLearnMore, folders, folder: firstFolder, onFolderChange, apps, connectedApps, onAppsChange, foot, tray, }: ChatComposerProps): import("react").JSX.Element;
|
|
@@ -51,7 +51,9 @@ export type CommandMenuProps = {
|
|
|
51
51
|
ask?: boolean;
|
|
52
52
|
hotkey?: boolean;
|
|
53
53
|
labels?: Partial<CommandMenuLabels>;
|
|
54
|
+
/** Fill the parent height and scroll results within the remaining space. */
|
|
55
|
+
fill?: boolean;
|
|
54
56
|
};
|
|
55
57
|
/** Sample commands – replace with your own */
|
|
56
58
|
export declare const defaultGroups: CommandGroup[];
|
|
57
|
-
export declare function CommandMenu({ groups, placeholder, onAction, onEditSubmit, onEditCancel, ask, hotkey, labels: labelOverrides, onRun, onClose, autoFocus, className, }: CommandMenuProps): import("react").JSX.Element;
|
|
59
|
+
export declare function CommandMenu({ groups, placeholder, onAction, onEditSubmit, onEditCancel, ask, hotkey, labels: labelOverrides, fill, onRun, onClose, autoFocus, className, }: CommandMenuProps): import("react").JSX.Element;
|
|
@@ -27,6 +27,7 @@ export type Decision = {
|
|
|
27
27
|
task?: string;
|
|
28
28
|
/** decision: rows to pick from · pick: preview tiles · approval: facts, then Approve / Decline (default: decision) */
|
|
29
29
|
kind?: DecisionKind;
|
|
30
|
+
body?: ReactNode;
|
|
30
31
|
/** decision and pick – all supplied options */
|
|
31
32
|
options?: DecisionOption[];
|
|
32
33
|
own?: boolean;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type RefObject } from "react";
|
|
1
2
|
export type UploadStatus = "uploading" | "done" | "error";
|
|
2
3
|
export type UploadItem = {
|
|
3
4
|
id: string;
|
|
@@ -12,6 +13,9 @@ export type UploadItem = {
|
|
|
12
13
|
file?: File;
|
|
13
14
|
};
|
|
14
15
|
export type DropzoneProps = {
|
|
16
|
+
picker?: RefObject<{
|
|
17
|
+
pick: () => void;
|
|
18
|
+
} | null>;
|
|
15
19
|
labels?: Partial<DropzoneLabels>;
|
|
16
20
|
/** Allowed extensions, e.g. [".pdf", ".png"] – any file when left out */
|
|
17
21
|
accept?: string[];
|
|
@@ -67,4 +71,4 @@ export declare const defaultDropzoneLabels: {
|
|
|
67
71
|
fileBadge: (extension: string) => string;
|
|
68
72
|
};
|
|
69
73
|
export type DropzoneLabels = typeof defaultDropzoneLabels;
|
|
70
|
-
export declare function Dropzone({ labels: labelProp, accept, maxSize, onUpload, onChange, hint, autoplay, className, }: DropzoneProps): import("react").JSX.Element;
|
|
74
|
+
export declare function Dropzone({ picker, labels: labelProp, accept, maxSize, onUpload, onChange, hint, autoplay, className, }: DropzoneProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type ThinkingLoaderProps = {
|
|
2
|
+
/** Labels to walk through, one after another */
|
|
3
|
+
phases?: string[];
|
|
4
|
+
/** Time per phase, in ms */
|
|
5
|
+
interval?: number;
|
|
6
|
+
/** Show a specific phase instead of advancing on a timer – e.g. from your stream events */
|
|
7
|
+
phase?: number;
|
|
8
|
+
/** Start over after the last phase instead of holding it */
|
|
9
|
+
loop?: boolean;
|
|
10
|
+
/** Finished: the spinner turns into a check and the label into doneLabel */
|
|
11
|
+
done?: boolean;
|
|
12
|
+
/** Label once done – a string, or a function that gets the seconds since the loader started */
|
|
13
|
+
doneLabel?: string | ((seconds: number) => string);
|
|
14
|
+
size?: "sm" | "md";
|
|
15
|
+
/** "pill" = bordered capsule, "plain" = just the spinner and the label, e.g. inside a chat bubble */
|
|
16
|
+
variant?: "pill" | "plain";
|
|
17
|
+
className?: string;
|
|
18
|
+
};
|
|
19
|
+
export declare function ThinkingLoader({ phases: phasesProp, interval: intervalProp, phase, loop, done, doneLabel, size, variant, className, }: ThinkingLoaderProps): import("react").JSX.Element;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { ChatMessage } from "./types";
|
|
2
|
+
/** Only the last assistant segment for each task may remain running or waiting. */
|
|
3
|
+
export declare function settleEarlierSegments(messages: ChatMessage[]): ChatMessage[];
|
|
2
4
|
/** Map a chronological history page without mutating records or consulting the clock. */
|
|
3
5
|
export declare function messagesFromHistory(records: unknown[]): ChatMessage[];
|
package/dist/types/core/run.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export declare function idGreater(a: string, b: string): boolean;
|
|
|
12
12
|
export declare function createRun(taskId: string, now?: number): Run;
|
|
13
13
|
/** Text the user should read as the answer right now: the confirmed final text, else the newest turn still writing */
|
|
14
14
|
export declare function answerText(run: Run): string;
|
|
15
|
+
/** The backend joins reasoning sections without separators; restore blank lines before their headings. */
|
|
16
|
+
export declare function reasoningText(text: string): string;
|
|
15
17
|
export type AnswerSource = {
|
|
16
18
|
label: string;
|
|
17
19
|
href?: string;
|
|
@@ -10,11 +10,13 @@ export declare const SPLIT_BREAKPOINT = 1440;
|
|
|
10
10
|
export declare const MIN_SPLIT_WIDTH = 1280;
|
|
11
11
|
export declare const DOCK_INTERACTIVE_BREAKPOINT = 768;
|
|
12
12
|
export declare const MIN_SPLIT_CONTENT_WIDTH = 620;
|
|
13
|
+
export declare const SPLIT_PANEL_MIN_WIDTH = 480;
|
|
14
|
+
export declare const SPLIT_PANEL_MAX_WIDTH = 720;
|
|
13
15
|
export declare const HEADER_HEIGHT_FALLBACK = 64;
|
|
14
16
|
export declare const DOCK_EDGE_GAP = 12;
|
|
15
|
-
export declare const DOCK_DEFAULT_WIDTH = 720;
|
|
16
17
|
export declare const DOCK_DEFAULT_HEIGHT = 760;
|
|
17
18
|
export declare const DOCK_MIN_WIDTH = 420;
|
|
19
|
+
export declare const DOCK_DEFAULT_WIDTH = 420;
|
|
18
20
|
export declare const DOCK_MIN_HEIGHT = 620;
|
|
19
21
|
export declare const DOCK_MAX_WIDTH = 960;
|
|
20
22
|
export declare const DOCK_GEOMETRY_STORAGE_KEY = "abcPrimeDockGeometry:v1";
|
|
@@ -7,6 +7,8 @@ import { type OlderMessages } from "./useFollowLatest";
|
|
|
7
7
|
import { type GetAttachmentUrls } from "./useAttachmentDownload";
|
|
8
8
|
export type BlocksPanelProps = {
|
|
9
9
|
messages: ChatMessage[];
|
|
10
|
+
loading?: boolean;
|
|
11
|
+
title?: string;
|
|
10
12
|
history?: {
|
|
11
13
|
sessions?: ControllerState["sessions"];
|
|
12
14
|
currentId?: string;
|
|
@@ -51,6 +53,7 @@ export type BlocksPanelProps = {
|
|
|
51
53
|
onSend: (text: string, attachments: UploadedAttachment[]) => void;
|
|
52
54
|
onStop?: () => void;
|
|
53
55
|
onNewChat?: () => void;
|
|
56
|
+
layout?: "split" | "float";
|
|
54
57
|
onToggleLayout?: () => void;
|
|
55
58
|
onClose?: () => void;
|
|
56
59
|
onCreditsClick?: () => void;
|
|
@@ -67,4 +70,4 @@ export type BlocksPanelProps = {
|
|
|
67
70
|
};
|
|
68
71
|
getAttachmentUrls?: GetAttachmentUrls;
|
|
69
72
|
};
|
|
70
|
-
export declare function BlocksPanel({ messages, history, start, availability, provisioning, older, suspension, onAnswerSuspension, onCancelSuspension, error, locale, credits, branding, onSend, onStop, onNewChat, onToggleLayout, onClose, onCreditsClick, onHeaderPointerDown, processView, onRegenerate, onFeedback, onNavigate, upload, attachmentLimits, getAttachmentUrls, className }: BlocksPanelProps): import("react").JSX.Element;
|
|
73
|
+
export declare function BlocksPanel({ messages, loading, title, history, start, availability, provisioning, older, suspension, onAnswerSuspension, onCancelSuspension, error, locale, credits, branding, onSend, onStop, onNewChat, layout, onToggleLayout, onClose, onCreditsClick, onHeaderPointerDown, processView, onRegenerate, onFeedback, onNavigate, upload, attachmentLimits, getAttachmentUrls, className }: BlocksPanelProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Run } from "../../core/types";
|
|
2
|
+
import type { BlocksCopy, ThreadCopy } from "../i18n";
|
|
3
|
+
/** The prototype's phase precedence, preferring concise tool names for the live status. */
|
|
4
|
+
export declare function phaseLabel(run: Run, live: BlocksCopy["live"], copy: ThreadCopy, options?: {
|
|
5
|
+
hideTools?: boolean;
|
|
6
|
+
}): string;
|
|
7
|
+
export declare function LiveStatus({ run, live, copy, hideTools }: {
|
|
8
|
+
run: Run;
|
|
9
|
+
live: BlocksCopy["live"];
|
|
10
|
+
copy: ThreadCopy;
|
|
11
|
+
hideTools?: boolean;
|
|
12
|
+
}): import("react").JSX.Element | null;
|
|
@@ -3,10 +3,11 @@ export type OlderMessages = {
|
|
|
3
3
|
loading: boolean;
|
|
4
4
|
onLoad: () => void;
|
|
5
5
|
};
|
|
6
|
-
/** Layout glue:
|
|
6
|
+
/** Layout glue: follow at the bottom and resume when the reader sends or explicitly jumps. */
|
|
7
7
|
export declare function useFollowLatest({ messages, older, active }: {
|
|
8
8
|
messages: readonly {
|
|
9
9
|
id: string;
|
|
10
|
+
role: "user" | "assistant";
|
|
10
11
|
}[];
|
|
11
12
|
older?: OlderMessages;
|
|
12
13
|
active?: boolean;
|
package/dist/types/ui/i18n.d.ts
CHANGED
|
@@ -26,13 +26,20 @@ export declare function threadLabelsFor(locale?: string): {
|
|
|
26
26
|
export type PanelCopy = {
|
|
27
27
|
credits: (balance: number, locale: string) => string;
|
|
28
28
|
history: string;
|
|
29
|
+
backToChat: string;
|
|
30
|
+
historyTitle: string;
|
|
31
|
+
loadingSession: string;
|
|
29
32
|
newChat: string;
|
|
30
33
|
switchLayout: string;
|
|
34
|
+
layoutFloat: string;
|
|
35
|
+
layoutSplit: string;
|
|
31
36
|
close: string;
|
|
32
37
|
placeholder: string;
|
|
33
38
|
unavailable: string;
|
|
34
39
|
provisionTitle: string;
|
|
35
40
|
provisionAction: string;
|
|
41
|
+
startGreeting: string;
|
|
42
|
+
startBody: string;
|
|
36
43
|
};
|
|
37
44
|
export declare const zhPanelCopy: PanelCopy;
|
|
38
45
|
export declare const enPanelCopy: PanelCopy;
|
|
@@ -82,6 +89,14 @@ export declare function historyLabelsFor(locale?: string): Partial<import("../co
|
|
|
82
89
|
import { type AIAnswerLabels } from "../components/ui/ai-answer-clean";
|
|
83
90
|
import { type DropzoneLabels } from "../components/ui/dropzone-clean";
|
|
84
91
|
export type BlocksCopy = {
|
|
92
|
+
live: {
|
|
93
|
+
ready: string;
|
|
94
|
+
thinking: string;
|
|
95
|
+
tool: (name: string) => string;
|
|
96
|
+
writing: string;
|
|
97
|
+
waiting: string;
|
|
98
|
+
working: string;
|
|
99
|
+
};
|
|
85
100
|
attachments: {
|
|
86
101
|
dropzone: DropzoneLabels;
|
|
87
102
|
collapse: string;
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itechchoice/prime-chatkit",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.10",
|
|
4
4
|
"description": "PrimeChatKit: React chat UI for products built on the prime-chatkit SDK BFF contract. Shows the agent's work: thinking, tool calls, approvals, sources and cost.",
|
|
5
|
-
"license": "
|
|
5
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"publishConfig": {
|
|
7
|
-
"access": "
|
|
7
|
+
"access": "public"
|
|
8
8
|
},
|
|
9
9
|
"type": "module",
|
|
10
10
|
"module": "./dist/index.js",
|