@promptbook/vercel 0.102.0-0 → 0.102.0-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.
Files changed (117) hide show
  1. package/esm/index.es.js +1 -1
  2. package/esm/index.es.js.map +1 -1
  3. package/esm/typings/books/index.d.ts +81 -0
  4. package/esm/typings/src/_packages/components.index.d.ts +42 -22
  5. package/esm/typings/src/_packages/markdown-utils.index.d.ts +4 -0
  6. package/esm/typings/src/_packages/types.index.d.ts +18 -14
  7. package/esm/typings/src/_packages/utils.index.d.ts +12 -14
  8. package/esm/typings/src/book-2.0/agent-source/createAgentModelRequirements.d.ts +1 -1
  9. package/esm/typings/src/book-2.0/utils/generateGravatarUrl.d.ts +1 -1
  10. package/esm/typings/src/book-2.0/utils/generatePlaceholderAgentProfileImageUrl.d.ts +1 -1
  11. package/esm/typings/src/book-components/BookEditor/BookEditor.d.ts +1 -1
  12. package/esm/typings/src/book-components/BookEditor/BookEditorInner.d.ts +1 -1
  13. package/esm/typings/src/book-components/Chat/Chat/Chat.d.ts +1 -5
  14. package/esm/typings/src/book-components/Chat/Chat/ChatMessageItem.d.ts +35 -0
  15. package/esm/typings/src/book-components/Chat/Chat/ChatProps.d.ts +29 -7
  16. package/esm/typings/src/book-components/Chat/Chat/constants.d.ts +7 -0
  17. package/esm/typings/src/book-components/Chat/LlmChat/LlmChatProps.d.ts +19 -1
  18. package/esm/typings/src/book-components/{AvatarProfile/AvatarProfile → Chat/MockedChat}/MockedChat.d.ts +26 -9
  19. package/esm/typings/src/book-components/Chat/MockedChat/constants.d.ts +42 -0
  20. package/esm/typings/src/book-components/Chat/save/_common/ChatSaveFormatDefinition.d.ts +13 -0
  21. package/esm/typings/src/book-components/Chat/save/_common/getChatSaveFormatDefinitions.d.ts +8 -0
  22. package/esm/typings/src/book-components/Chat/save/_common/string_chat_format_name.d.ts +6 -0
  23. package/esm/typings/src/book-components/Chat/save/html/htmlSaveFormatDefinition.d.ts +12 -0
  24. package/esm/typings/src/book-components/Chat/save/index.d.ts +39 -0
  25. package/esm/typings/src/book-components/Chat/save/json/jsonSaveFormatDefinition.d.ts +12 -0
  26. package/esm/typings/src/book-components/Chat/save/markdown/mdSaveFormatDefinition.d.ts +12 -0
  27. package/esm/typings/src/book-components/Chat/save/pdf/pdfSaveFormatDefinition.d.ts +12 -0
  28. package/esm/typings/src/book-components/Chat/save/text/txtSaveFormatDefinition.d.ts +12 -0
  29. package/esm/typings/src/book-components/Chat/types/ChatMessage.d.ts +31 -5
  30. package/esm/typings/src/book-components/Chat/types/ChatParticipant.d.ts +3 -3
  31. package/esm/typings/src/book-components/Chat/utils/exportChatHistory.d.ts +3 -0
  32. package/esm/typings/src/book-components/icons/AttachmentIcon.d.ts +11 -0
  33. package/esm/typings/src/book-components/icons/CloseIcon.d.ts +11 -0
  34. package/esm/typings/src/execution/LlmExecutionToolsConstructor.d.ts +1 -1
  35. package/esm/typings/src/execution/execution-report/countWorkingDuration.d.ts +1 -1
  36. package/esm/typings/src/llm-providers/_common/register/$llmToolsMetadataRegister.d.ts +1 -1
  37. package/esm/typings/src/llm-providers/_common/register/$llmToolsRegister.d.ts +1 -1
  38. package/esm/typings/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +1 -2
  39. package/esm/typings/src/llm-providers/_common/register/LlmToolsConfiguration.d.ts +1 -1
  40. package/esm/typings/src/llm-providers/_common/register/LlmToolsMetadata.d.ts +1 -1
  41. package/esm/typings/src/llm-providers/_multiple/joinLlmExecutionTools.d.ts +1 -1
  42. package/esm/typings/src/llm-providers/agent/register-configuration.d.ts +1 -1
  43. package/esm/typings/src/llm-providers/agent/register-constructor.d.ts +1 -1
  44. package/esm/typings/src/llm-providers/anthropic-claude/register-configuration.d.ts +1 -1
  45. package/esm/typings/src/llm-providers/anthropic-claude/register-constructor.d.ts +1 -1
  46. package/esm/typings/src/llm-providers/azure-openai/register-configuration.d.ts +1 -1
  47. package/esm/typings/src/llm-providers/azure-openai/register-constructor.d.ts +1 -1
  48. package/esm/typings/src/llm-providers/deepseek/register-configuration.d.ts +1 -1
  49. package/esm/typings/src/llm-providers/deepseek/register-constructor.d.ts +1 -1
  50. package/esm/typings/src/llm-providers/google/register-configuration.d.ts +1 -1
  51. package/esm/typings/src/llm-providers/google/register-constructor.d.ts +1 -1
  52. package/esm/typings/src/llm-providers/ollama/register-configuration.d.ts +1 -1
  53. package/esm/typings/src/llm-providers/ollama/register-constructor.d.ts +1 -1
  54. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +1 -3
  55. package/esm/typings/src/llm-providers/openai/OpenAiCompatibleExecutionTools.d.ts +5 -5
  56. package/esm/typings/src/llm-providers/openai/register-configuration.d.ts +1 -1
  57. package/esm/typings/src/llm-providers/openai/register-constructor.d.ts +1 -1
  58. package/esm/typings/src/remote-server/types/RemoteServerOptions.d.ts +6 -0
  59. package/esm/typings/src/remote-server/ui/ServerApp.d.ts +13 -0
  60. package/esm/typings/src/remote-server/ui/renderServerIndexHtml.d.ts +7 -0
  61. package/esm/typings/src/remote-server/ui/types.d.ts +16 -0
  62. package/esm/typings/src/scrapers/_boilerplate/register-constructor.d.ts +1 -1
  63. package/esm/typings/src/scrapers/_boilerplate/register-metadata.d.ts +1 -1
  64. package/esm/typings/src/scrapers/_common/register/$scrapersMetadataRegister.d.ts +1 -1
  65. package/esm/typings/src/scrapers/_common/register/$scrapersRegister.d.ts +1 -1
  66. package/esm/typings/src/scrapers/_common/register/ScraperAndConverterMetadata.d.ts +2 -4
  67. package/esm/typings/src/scrapers/_common/register/ScraperConstructor.d.ts +1 -1
  68. package/esm/typings/src/scrapers/document/register-constructor.d.ts +1 -1
  69. package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -1
  70. package/esm/typings/src/scrapers/document-legacy/register-constructor.d.ts +1 -1
  71. package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -1
  72. package/esm/typings/src/scrapers/markdown/register-constructor.d.ts +1 -1
  73. package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -1
  74. package/esm/typings/src/scrapers/markitdown/register-constructor.d.ts +1 -1
  75. package/esm/typings/src/scrapers/markitdown/register-metadata.d.ts +1 -1
  76. package/esm/typings/src/scrapers/pdf/register-constructor.d.ts +1 -1
  77. package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -1
  78. package/esm/typings/src/scrapers/website/register-constructor.d.ts +1 -1
  79. package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -1
  80. package/esm/typings/src/scripting/javascript/postprocessing-functions.d.ts +6 -6
  81. package/esm/typings/src/types/Prompt.d.ts +5 -0
  82. package/esm/typings/src/utils/markdown/createMarkdownChart.d.ts +1 -1
  83. package/esm/typings/src/utils/markdown/humanizeAiText.d.ts +1 -1
  84. package/esm/typings/src/utils/markdown/humanizeAiTextEllipsis.d.ts +1 -1
  85. package/esm/typings/src/utils/markdown/humanizeAiTextEmdashed.d.ts +1 -1
  86. package/esm/typings/src/utils/markdown/humanizeAiTextQuotes.d.ts +1 -1
  87. package/esm/typings/src/utils/markdown/humanizeAiTextWhitespace.d.ts +1 -1
  88. package/esm/typings/src/utils/markdown/prettifyMarkdown.d.ts +2 -0
  89. package/esm/typings/src/utils/markdown/promptbookifyAiText.d.ts +1 -1
  90. package/esm/typings/src/utils/{trimCodeBlock.d.ts → markdown/trimCodeBlock.d.ts} +1 -1
  91. package/esm/typings/src/utils/{trimEndOfCodeBlock.d.ts → markdown/trimEndOfCodeBlock.d.ts} +1 -1
  92. package/esm/typings/src/utils/{$Register.d.ts → misc/$Register.d.ts} +2 -2
  93. package/esm/typings/src/utils/{$getCurrentDate.d.ts → misc/$getCurrentDate.d.ts} +1 -1
  94. package/esm/typings/src/utils/{arrayableToArray.d.ts → misc/arrayableToArray.d.ts} +1 -1
  95. package/esm/typings/src/utils/misc/debounce.d.ts +5 -0
  96. package/esm/typings/src/utils/{emojis.d.ts → misc/emojis.d.ts} +1 -1
  97. package/esm/typings/src/utils/misc/injectCssModuleIntoShadowRoot.d.ts +20 -0
  98. package/esm/typings/src/version.d.ts +1 -1
  99. package/package.json +2 -2
  100. package/umd/index.umd.js +1 -1
  101. package/umd/index.umd.js.map +1 -1
  102. package/esm/typings/src/book-components/AvatarProfile/AvatarProfile/index.d.ts +0 -3
  103. package/esm/typings/src/book-components/BookEditor/injectCssModuleIntoShadowRoot.d.ts +0 -11
  104. package/esm/typings/src/book-components/Chat/utils/savePlugins.d.ts +0 -55
  105. /package/esm/typings/src/{utils/arrayableToArray.test.d.ts → book-2.0/agent-source/createAgentModelRequirementsWithCommitments.delete.test.d.ts} +0 -0
  106. /package/esm/typings/src/utils/{trimCodeBlock.test.d.ts → markdown/trimCodeBlock.test.d.ts} +0 -0
  107. /package/esm/typings/src/utils/{trimEndOfCodeBlock.test.d.ts → markdown/trimEndOfCodeBlock.test.d.ts} +0 -0
  108. /package/esm/typings/src/utils/{FromtoItems.d.ts → misc/FromtoItems.d.ts} +0 -0
  109. /package/esm/typings/src/utils/{markdown/prettifyMarkdown.test.d.ts → misc/arrayableToArray.test.d.ts} +0 -0
  110. /package/esm/typings/src/utils/{parseNumber.d.ts → misc/parseNumber.d.ts} +0 -0
  111. /package/esm/typings/src/utils/{parseNumber.test.d.ts → misc/parseNumber.test.d.ts} +0 -0
  112. /package/esm/typings/src/utils/{removeEmojis.d.ts → normalization/removeEmojis.d.ts} +0 -0
  113. /package/esm/typings/src/utils/{removeEmojis.test.d.ts → normalization/removeEmojis.test.d.ts} +0 -0
  114. /package/esm/typings/src/utils/{removeQuotes.d.ts → normalization/removeQuotes.d.ts} +0 -0
  115. /package/esm/typings/src/utils/{removeQuotes.test.d.ts → normalization/removeQuotes.test.d.ts} +0 -0
  116. /package/esm/typings/src/utils/{unwrapResult.d.ts → normalization/unwrapResult.d.ts} +0 -0
  117. /package/esm/typings/src/utils/{unwrapResult.test.d.ts → normalization/unwrapResult.test.d.ts} +0 -0
@@ -0,0 +1,35 @@
1
+ /// <reference types="react" />
2
+ import type { id } from '../../../types/typeAliases';
3
+ import type { ChatMessage } from '../types/ChatMessage';
4
+ import type { ChatParticipant } from '../types/ChatParticipant';
5
+ import type { ChatProps } from './ChatProps';
6
+ /**
7
+ * Props for the `ChatMessageItem` component
8
+ *
9
+ * @private props for internal subcomponent
10
+ */
11
+ type ChatMessageItemProps = Pick<ChatProps, 'onMessage' | 'participants'> & {
12
+ message: ChatMessage;
13
+ participant: ChatParticipant | undefined;
14
+ isLastMessage: boolean;
15
+ setExpandedMessageId: (value: id | null) => void;
16
+ isExpanded: boolean;
17
+ currentRating: number;
18
+ handleRating: (message: ChatMessage, rating: number) => void;
19
+ mode: 'LIGHT' | 'DARK';
20
+ /**
21
+ * Enables the copy button for this message bubble.
22
+ */
23
+ isCopyButtonEnabled?: boolean;
24
+ /**
25
+ * Enables the feedback (rating) UI for this message bubble.
26
+ */
27
+ isFeedbackEnabled?: boolean;
28
+ };
29
+ /**
30
+ * Renders a single chat message item with avatar, content, buttons, and rating.
31
+ *
32
+ * @private internal subcomponent of `<Chat>` component
33
+ */
34
+ export declare const ChatMessageItem: import("react").MemoExoticComponent<({ message, participant, participants, isLastMessage, onMessage, setExpandedMessageId, isExpanded, currentRating, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, }: ChatMessageItemProps) => import("react/jsx-runtime").JSX.Element>;
35
+ export {};
@@ -1,5 +1,6 @@
1
1
  import type { CSSProperties, ReactNode } from 'react';
2
2
  import type { Promisable } from 'type-fest';
3
+ import type { string_chat_format_name } from '../save/_common/string_chat_format_name';
3
4
  import type { ChatMessage } from '../types/ChatMessage';
4
5
  import type { ChatParticipant } from '../types/ChatParticipant';
5
6
  /**
@@ -91,12 +92,6 @@ export type ChatProps = {
91
92
  onAssistantVoiceResponse?: (content: string, isVoiceCall: boolean) => void;
92
93
  onVoiceCallStateChange?: (isVoiceCalling: boolean) => void;
93
94
  };
94
- /**
95
- * Indicates whether a the text is AI-generated and should be humanized
96
- *
97
- * @default true
98
- */
99
- readonly isAiTextHumanized?: boolean;
100
95
  /**
101
96
  * Indicates whether a voice call is currently active
102
97
  */
@@ -109,12 +104,24 @@ export type ChatProps = {
109
104
  * Whether the save button is enabled and shown
110
105
  */
111
106
  readonly isSaveButtonEnabled?: boolean;
107
+ /**
108
+ * List of formats in which the chat can be saved/exported
109
+ *
110
+ * @default * All supported formats (see `string_chat_format_name` type)
111
+ */
112
+ readonly saveFormats?: Array<string_chat_format_name>;
112
113
  /**
113
114
  * Is the writing textarea automatically focused?
114
115
  *
115
116
  * @default true on Desktop false on mobile (to prevent mobile keyboard from popping up)
116
117
  */
117
118
  readonly isFocusedOnLoad?: boolean;
119
+ /**
120
+ * Indicates whether the text shown in chat should be post-processed by removing AI artifacts and making it more "human-like" and "promptbook-like"
121
+ *
122
+ * @default true
123
+ */
124
+ readonly isAiTextHumanizedAndPromptbookified?: boolean;
118
125
  /**
119
126
  * Optional markdown header to include at the top of exported files.
120
127
  * Example: "## Discussion Topic\n\nSome topic here"
@@ -145,7 +152,22 @@ export type ChatProps = {
145
152
  expectedAnswer: string | null;
146
153
  url: string;
147
154
  }): Promisable<void>;
155
+ /**
156
+ * Optional callback for handling file uploads
157
+ * When provided, enables file upload functionality via drag-and-drop and file button
158
+ * The callback should process the file and return text content to be inserted into the message
159
+ *
160
+ * @param file - The uploaded file
161
+ * @returns Promise or string with the text content to insert into the chat message
162
+ */
163
+ onFileUpload?(file: File): Promisable<string>;
164
+ /**
165
+ * Enables the copy button for each message bubble.
166
+ * When true, a copy button appears in the top-right of each message.
167
+ * @default true
168
+ */
169
+ isCopyButtonEnabled?: boolean;
148
170
  };
149
171
  /**
150
172
  * TODO: [☁️] Export component prop types only to `@promptbook/components` (not `@promptbook/types`)
151
- */
173
+ */
@@ -3,6 +3,13 @@
3
3
  * @private util of `<Chat />`
4
4
  */
5
5
  export declare const LOADING_INTERACTIVE_IMAGE = "Loading...";
6
+ /**
7
+ * [🚉] Avatar dimensions constant to prevent layout jumps and maintain DRY principle
8
+ *
9
+ * @deprecated use `isComplete` instead
10
+ * @private util of `<Chat />`
11
+ */
12
+ export declare const AVATAR_SIZE = 40;
6
13
  /**
7
14
  * Note: [💞] Ignore a discrepancy between file name and entity name
8
15
  */
@@ -1,14 +1,20 @@
1
1
  import type { LlmExecutionTools } from '../../../execution/LlmExecutionTools';
2
+ import type { id } from '../../../types/typeAliases';
2
3
  import type { ChatProps } from '../Chat/ChatProps';
4
+ import type { SendMessageToLlmChatFunction } from '../hooks/useSendMessageToLlmChat';
3
5
  import type { ChatMessage } from '../types/ChatMessage';
4
6
  import type { ChatParticipant } from '../types/ChatParticipant';
5
- import type { SendMessageToLlmChatFunction } from '../hooks/useSendMessageToLlmChat';
6
7
  /**
7
8
  * Props for LlmChat component, derived from ChatProps but with LLM-specific modifications
8
9
  *
9
10
  * @public exported from `@promptbook/components`
10
11
  */
11
12
  export type LlmChatProps = Omit<ChatProps, 'messages' | 'onMessage' | 'onChange'> & {
13
+ /**
14
+ * Optional thread (full chat history) to be passed to LLM execution tools.
15
+ * If not provided, the internal messages state will be used.
16
+ */
17
+ readonly thread?: ReadonlyArray<ChatMessage>;
12
18
  /**
13
19
  * LLM execution tools for chatting with the model
14
20
  */
@@ -34,4 +40,16 @@ export type LlmChatProps = Omit<ChatProps, 'messages' | 'onMessage' | 'onChange'
34
40
  * When provided, LlmChat will attach its internal handler to it (no React context needed).
35
41
  */
36
42
  readonly sendMessage?: SendMessageToLlmChatFunction;
43
+ /**
44
+ * Name of the USER as participant in the chat
45
+ *
46
+ * @default 'USER'
47
+ */
48
+ readonly userParticipantName?: id;
49
+ /**
50
+ * Name of the LLM as participant in the chat
51
+ *
52
+ * @default 'ASSISTANT'
53
+ */
54
+ readonly llmParticipantName?: id;
37
55
  };
@@ -1,4 +1,4 @@
1
- import type { ChatProps } from '../../Chat/Chat/ChatProps';
1
+ import type { ChatProps } from '../Chat/ChatProps';
2
2
  /**
3
3
  * Delay configuration for the MockedChat component
4
4
  *
@@ -6,25 +6,42 @@ import type { ChatProps } from '../../Chat/Chat/ChatProps';
6
6
  */
7
7
  export type MockedChatDelayConfig = {
8
8
  /**
9
- * Delay before showing the first message (in milliseconds)
9
+ * Delay before showing the first message (ms)
10
10
  * @default 1000
11
11
  */
12
- beforeFirstMessage?: number;
12
+ beforeFirstMessage?: number | [number, number];
13
13
  /**
14
- * Emulated thinking time between messages (in milliseconds)
14
+ * Emulated thinking time between messages (ms)
15
+ * Can be a fixed number or [min, max] for random range.
15
16
  * @default 2000
16
17
  */
17
- thinkingBetweenMessages?: number;
18
+ thinkingBetweenMessages?: number | [number, number];
18
19
  /**
19
- * Wait time after each written word (in milliseconds)
20
+ * Wait time after each written word (ms)
21
+ * Can be a fixed number or [min, max] for random range.
20
22
  * @default 100
21
23
  */
22
- waitAfterWord?: number;
24
+ waitAfterWord?: number | [number, number];
23
25
  /**
24
- * Extra delay on top of the word waiting (in milliseconds)
26
+ * Extra delay on top of the word waiting (ms)
27
+ * Can be a fixed number or [min, max] for random range.
25
28
  * @default 50
26
29
  */
27
- extraWordDelay?: number;
30
+ extraWordDelay?: number | [number, number];
31
+ /**
32
+ * Chance (0-1) that a longer pause occurs before a message (e.g. agent switch)
33
+ * @default 0.2
34
+ */
35
+ longPauseChance?: number;
36
+ /**
37
+ * Range for long pause duration (ms), [min, max]
38
+ * @default [1200, 3500]
39
+ */
40
+ longPauseDuration?: [number, number];
41
+ /**
42
+ * If true, disables typing effect and shows full message at once (BLOCKY_FLOW)
43
+ */
44
+ blocky?: boolean;
28
45
  };
29
46
  /**
30
47
  * Props for MockedChat component
@@ -0,0 +1,42 @@
1
+ import type { MockedChatDelayConfig } from './MockedChat';
2
+ /**
3
+ * Normal flow of messages in the `MockedChat` component
4
+ *
5
+ * @public exported from `@promptbook/components`
6
+ */
7
+ export declare const NORMAL_FLOW: MockedChatDelayConfig;
8
+ /**
9
+ * Fast flow of messages in the `MockedChat` component
10
+ *
11
+ * @public exported from `@promptbook/components`
12
+ */
13
+ export declare const FAST_FLOW: MockedChatDelayConfig;
14
+ /**
15
+ * Slow flow of messages in the `MockedChat` component
16
+ *
17
+ * @public exported from `@promptbook/components`
18
+ */
19
+ export declare const SLOW_FLOW: MockedChatDelayConfig;
20
+ /**
21
+ * Blocky flow of messages in the `MockedChat` component
22
+ *
23
+ * Messages appear in blocks rather than word-by-word
24
+ *
25
+ * @public exported from `@promptbook/components`
26
+ */
27
+ export declare const BLOCKY_FLOW: MockedChatDelayConfig;
28
+ /**
29
+ * Random flow of messages in the `MockedChat` component
30
+ *
31
+ * @public exported from `@promptbook/components`
32
+ */
33
+ export declare const RANDOM_FLOW: MockedChatDelayConfig;
34
+ /**
35
+ * All predefined delay configurations for the `MockedChat` component
36
+ *
37
+ * @public exported from `@promptbook/components`
38
+ */
39
+ export declare const MOCKED_CHAT_DELAY_CONFIGS: Record<string, MockedChatDelayConfig>;
40
+ /**
41
+ * Note: [💞] Ignore a discrepancy between file name and entity name
42
+ */
@@ -0,0 +1,13 @@
1
+ import type { string_file_extension, string_mime_type } from '../../../../types/typeAliases';
2
+ import type { ChatMessage } from '../../types/ChatMessage';
3
+ /**
4
+ * Plugin contract for chat export formatNames
5
+ * @public exported from `@promptbook/components`
6
+ */
7
+ export type ChatSaveFormatDefinition = {
8
+ formatName: string_file_extension | string_mime_type | string;
9
+ label: string;
10
+ getContent: (messages: ChatMessage[]) => string;
11
+ mimeType: string;
12
+ fileExtension: string;
13
+ };
@@ -0,0 +1,8 @@
1
+ import type { ChatSaveFormatDefinition } from './ChatSaveFormatDefinition';
2
+ import type { string_chat_format_name } from './string_chat_format_name';
3
+ /**
4
+ * Returns enabled chat save plugins filtered by formatNames (or all when omitted)
5
+ *
6
+ * @public exported from `@promptbook/components`
7
+ */
8
+ export declare function getChatSaveFormatDefinitions(formatNames?: ReadonlyArray<string_chat_format_name>): ReadonlyArray<ChatSaveFormatDefinition>;
@@ -0,0 +1,6 @@
1
+ import { CHAT_SAVE_FORMATS } from '../index';
2
+ /**
3
+ * Supported chat export formatNames
4
+ * @public exported from `@promptbook/components`
5
+ */
6
+ export type string_chat_format_name = typeof CHAT_SAVE_FORMATS[number]['formatName'];
@@ -0,0 +1,12 @@
1
+ /**
2
+ * HTML export plugin
3
+ *
4
+ * @public exported from `@promptbook/components`
5
+ */
6
+ export declare const htmlSaveFormatDefinition: {
7
+ readonly formatName: "html";
8
+ readonly label: "HTML";
9
+ readonly getContent: (messages: import("../../types/ChatMessage").ChatMessage[]) => string;
10
+ readonly mimeType: "text/html";
11
+ readonly fileExtension: "html";
12
+ };
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Registry of all built-in chat save plugins
3
+ *
4
+ * @public exported from `@promptbook/components`
5
+ */
6
+ export declare const CHAT_SAVE_FORMATS: readonly [{
7
+ readonly formatName: "json";
8
+ readonly label: "JSON (full)";
9
+ readonly getContent: (messages: import("../types/ChatMessage").ChatMessage[]) => string;
10
+ readonly mimeType: "application/json";
11
+ readonly fileExtension: "json";
12
+ }, {
13
+ readonly formatName: "txt";
14
+ readonly label: "Plain Text";
15
+ readonly getContent: (messages: import("../types/ChatMessage").ChatMessage[]) => string;
16
+ readonly mimeType: "text/plain";
17
+ readonly fileExtension: "txt";
18
+ }, {
19
+ readonly formatName: "md";
20
+ readonly label: "Markdown";
21
+ readonly getContent: (messages: import("../types/ChatMessage").ChatMessage[]) => string;
22
+ readonly mimeType: "text/markdown";
23
+ readonly fileExtension: "md";
24
+ }, {
25
+ readonly formatName: "html";
26
+ readonly label: "HTML";
27
+ readonly getContent: (messages: import("../types/ChatMessage").ChatMessage[]) => string;
28
+ readonly mimeType: "text/html";
29
+ readonly fileExtension: "html";
30
+ }, {
31
+ readonly formatName: "pdf";
32
+ readonly label: "PDF";
33
+ readonly getContent: (messages: import("../types/ChatMessage").ChatMessage[]) => string;
34
+ readonly mimeType: "application/pdf";
35
+ readonly fileExtension: "pdf";
36
+ }];
37
+ /**
38
+ * Note: [💞] Ignore a discrepancy between file name and entity name
39
+ */
@@ -0,0 +1,12 @@
1
+ /**
2
+ * JSON export plugin (full metadata)
3
+ *
4
+ * @public exported from `@promptbook/components`
5
+ */
6
+ export declare const jsonSaveFormatDefinition: {
7
+ readonly formatName: "json";
8
+ readonly label: "JSON (full)";
9
+ readonly getContent: (messages: import("../../types/ChatMessage").ChatMessage[]) => string;
10
+ readonly mimeType: "application/json";
11
+ readonly fileExtension: "json";
12
+ };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Markdown export plugin
3
+ *
4
+ * @public exported from `@promptbook/components`
5
+ */
6
+ export declare const mdSaveFormatDefinition: {
7
+ readonly formatName: "md";
8
+ readonly label: "Markdown";
9
+ readonly getContent: (messages: import("../../types/ChatMessage").ChatMessage[]) => string;
10
+ readonly mimeType: "text/markdown";
11
+ readonly fileExtension: "md";
12
+ };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * PDF export plugin
3
+ *
4
+ * @public exported from `@promptbook/components`
5
+ */
6
+ export declare const pdfSaveFormatDefinition: {
7
+ readonly formatName: "pdf";
8
+ readonly label: "PDF";
9
+ readonly getContent: (messages: import("../../types/ChatMessage").ChatMessage[]) => string;
10
+ readonly mimeType: "application/pdf";
11
+ readonly fileExtension: "pdf";
12
+ };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Plain text export plugin (messages only)
3
+ *
4
+ * @public exported from `@promptbook/components`
5
+ */
6
+ export declare const txtSaveFormatDefinition: {
7
+ readonly formatName: "txt";
8
+ readonly label: "Plain Text";
9
+ readonly getContent: (messages: import("../../types/ChatMessage").ChatMessage[]) => string;
10
+ readonly mimeType: "text/plain";
11
+ readonly fileExtension: "txt";
12
+ };
@@ -1,16 +1,42 @@
1
- import type { string_markdown } from '../../../types/typeAliases';
2
- import type { string_name } from '../../../types/typeAliases';
1
+ import type { id, string_markdown } from '../../../types/typeAliases';
3
2
  /**
4
3
  * A message in the chat
5
4
  *
6
5
  * @public exported from `@promptbook/components`
7
6
  */
8
7
  export type ChatMessage = {
9
- id: string;
10
- date: Date;
11
- from: string_name;
8
+ /**
9
+ * Unique identifier of the message
10
+ */
11
+ id: id;
12
+ /**
13
+ * Date when the message was created
14
+ */
15
+ date?: Date;
16
+ /**
17
+ * The name of the participant who sent the message
18
+ */
19
+ from: id;
20
+ /**
21
+ * The content of the message with optional markdown formatting
22
+ */
12
23
  content: string_markdown;
24
+ /**
25
+ * Whether the message is complete (for example, if it's still being generated by an AI)
26
+ *
27
+ * @default true
28
+ */
13
29
  isComplete?: boolean;
30
+ /**
31
+ * @@@
32
+ */
14
33
  expectedAnswer?: string;
34
+ /**
35
+ * @@@
36
+ */
15
37
  isVoiceCall?: boolean;
16
38
  };
39
+ /**
40
+ * TODO: Delete `expectedAnswer` from ChatMessage
41
+ * TODO: Rename `date` into `created`+`modified`
42
+ */
@@ -1,4 +1,4 @@
1
- import type { string_color, string_name, string_person_fullname, string_url_image } from '../../../types/typeAliases';
1
+ import type { id, string_color, string_person_fullname, string_url_image } from '../../../types/typeAliases';
2
2
  import { Color } from '../../../utils/color/Color';
3
3
  /**
4
4
  * A participant in the chat
@@ -9,11 +9,11 @@ export type ChatParticipant = {
9
9
  /**
10
10
  * Identifies the participant by their name, same as `message.from`
11
11
  */
12
- name: string_name;
12
+ name: id;
13
13
  /**
14
14
  * Full name of the participant
15
15
  */
16
- fullname: string_person_fullname;
16
+ fullname?: string_person_fullname;
17
17
  /**
18
18
  * Am I the participant? (i.e. is this the user)
19
19
  */
@@ -7,3 +7,6 @@ import type { ExportFormat } from './ExportFormat';
7
7
  * @private utility of `<Chat/>` component
8
8
  */
9
9
  export declare function exportChatHistory(messages: ChatMessage[], format: ExportFormat, headerMarkdown?: string, participants?: ReadonlyArray<ChatParticipant>): Promise<void>;
10
+ /**
11
+ * TODO: !!!! Delete this parallel chat history export
12
+ */
@@ -0,0 +1,11 @@
1
+ type AttachmentIconProps = {
2
+ size?: number;
3
+ color?: string;
4
+ };
5
+ /**
6
+ * @@@
7
+ *
8
+ * @public exported from `@promptbook/components`
9
+ */
10
+ export declare function AttachmentIcon({ size, color }: AttachmentIconProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,11 @@
1
+ type CloseIconProps = {
2
+ size?: number;
3
+ color?: string;
4
+ };
5
+ /**
6
+ * @@@
7
+ *
8
+ * @public exported from `@promptbook/components`
9
+ */
10
+ export declare function CloseIcon({ size, color }: CloseIconProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -1,4 +1,4 @@
1
- import type { Registered } from '../utils/$Register';
1
+ import type { Registered } from '../utils/misc/$Register';
2
2
  import type { TODO_any } from '../utils/organization/TODO_any';
3
3
  import type { LlmExecutionTools } from './LlmExecutionTools';
4
4
  /**
@@ -1,4 +1,4 @@
1
- import type { FromtoItems } from '../../utils/FromtoItems';
1
+ import type { FromtoItems } from '../../utils/misc/FromtoItems';
2
2
  /**
3
3
  * Count the duration of working time
4
4
  *
@@ -1,4 +1,4 @@
1
- import { $Register } from '../../../utils/$Register';
1
+ import { $Register } from '../../../utils/misc/$Register';
2
2
  import type { LlmToolsMetadata } from './LlmToolsMetadata';
3
3
  /**
4
4
  * Register for LLM tools metadata.
@@ -1,5 +1,5 @@
1
1
  import type { LlmExecutionToolsConstructor } from '../../../execution/LlmExecutionToolsConstructor';
2
- import { $Register } from '../../../utils/$Register';
2
+ import { $Register } from '../../../utils/misc/$Register';
3
3
  /**
4
4
  * Register for LLM tools.
5
5
  *
@@ -1,5 +1,4 @@
1
- import type { string_filename } from '../../../types/typeAliases';
2
- import type { string_markdown } from '../../../types/typeAliases';
1
+ import type { string_filename, string_markdown } from '../../../types/typeAliases';
3
2
  /**
4
3
  * Pass the `.env` file which was used to configure LLM tools
5
4
  *
@@ -1,5 +1,5 @@
1
1
  import type { string_title } from '../../../types/typeAliases';
2
- import type { Registered } from '../../../utils/$Register';
2
+ import type { Registered } from '../../../utils/misc/$Register';
3
3
  import type { LlmToolsOptions } from './LlmToolsOptions';
4
4
  /**
5
5
  * Configuration definition for LLM execution tools, containing provider-specific settings
@@ -1,6 +1,6 @@
1
1
  import { MODEL_ORDERS, MODEL_TRUST_LEVELS } from '../../../constants';
2
2
  import type { string_name, string_title } from '../../../types/typeAliases';
3
- import type { Registered } from '../../../utils/$Register';
3
+ import type { Registered } from '../../../utils/misc/$Register';
4
4
  import type { string_SCREAMING_CASE } from '../../../utils/normalization/normalizeTo_SCREAMING_CASE';
5
5
  import type { LlmToolsConfiguration } from './LlmToolsConfiguration';
6
6
  /**
@@ -1,5 +1,5 @@
1
1
  import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
2
- import { string_markdown_text, string_title } from '../../types/typeAliases';
2
+ import type { string_markdown_text, string_title } from '../../types/typeAliases';
3
3
  import { MultipleLlmExecutionTools } from './MultipleLlmExecutionTools';
4
4
  /**
5
5
  * Joins multiple LLM Execution Tools into one
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @public exported from `@promptbook/core`
5
5
  */
6
- export declare const _AgentMetadata: import("../../utils/$Register").Registration;
6
+ export declare const _AgentMetadata: import("../../_packages/types.index").Registration;
7
7
  /**
8
8
  * TODO: [🧠] Consider adding a special trust level for AgentLlmExecutionTools
9
9
  * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
@@ -1,4 +1,4 @@
1
- import type { Registration } from '../../utils/$Register';
1
+ import type { Registration } from '../../utils/misc/$Register';
2
2
  /**
3
3
  * Registration of Agent LLM provider
4
4
  *
@@ -1,4 +1,4 @@
1
- import type { Registration } from '../../utils/$Register';
1
+ import type { Registration } from '../../utils/misc/$Register';
2
2
  /**
3
3
  * Registration of LLM provider metadata
4
4
  *
@@ -1,4 +1,4 @@
1
- import type { Registration } from '../../utils/$Register';
1
+ import type { Registration } from '../../utils/misc/$Register';
2
2
  /**
3
3
  * Registration of LLM provider
4
4
  *
@@ -1,4 +1,4 @@
1
- import type { Registration } from '../../utils/$Register';
1
+ import type { Registration } from '../../utils/misc/$Register';
2
2
  /**
3
3
  * Registration of LLM provider metadata
4
4
  *
@@ -1,4 +1,4 @@
1
- import type { Registration } from '../../utils/$Register';
1
+ import type { Registration } from '../../utils/misc/$Register';
2
2
  /**
3
3
  * Registration of LLM provider
4
4
  *
@@ -1,4 +1,4 @@
1
- import type { Registration } from '../../utils/$Register';
1
+ import type { Registration } from '../../utils/misc/$Register';
2
2
  /**
3
3
  * Registration of LLM provider metadata
4
4
  *
@@ -1,4 +1,4 @@
1
- import type { Registration } from '../../utils/$Register';
1
+ import type { Registration } from '../../utils/misc/$Register';
2
2
  /**
3
3
  * Registration of LLM provider
4
4
  *
@@ -1,4 +1,4 @@
1
- import type { Registration } from '../../utils/$Register';
1
+ import type { Registration } from '../../utils/misc/$Register';
2
2
  /**
3
3
  * Registration of LLM provider metadata
4
4
  *
@@ -1,4 +1,4 @@
1
- import type { Registration } from '../../utils/$Register';
1
+ import type { Registration } from '../../utils/misc/$Register';
2
2
  /**
3
3
  * Registration of LLM provider
4
4
  *
@@ -1,4 +1,4 @@
1
- import type { Registration } from '../../utils/$Register';
1
+ import type { Registration } from '../../utils/misc/$Register';
2
2
  /**
3
3
  * Registration of LLM provider metadata
4
4
  *