@promptbook/editable 0.102.0-1 → 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 (115) 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 +21 -13
  5. package/esm/typings/src/_packages/markdown-utils.index.d.ts +4 -0
  6. package/esm/typings/src/_packages/types.index.d.ts +13 -9
  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/Chat/MockedChat/MockedChat.d.ts +1 -1
  19. package/esm/typings/src/book-components/Chat/MockedChat/constants.d.ts +1 -1
  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/ui/ServerApp.d.ts +13 -0
  59. package/esm/typings/src/remote-server/ui/renderServerIndexHtml.d.ts +7 -0
  60. package/esm/typings/src/remote-server/ui/types.d.ts +16 -0
  61. package/esm/typings/src/scrapers/_boilerplate/register-constructor.d.ts +1 -1
  62. package/esm/typings/src/scrapers/_boilerplate/register-metadata.d.ts +1 -1
  63. package/esm/typings/src/scrapers/_common/register/$scrapersMetadataRegister.d.ts +1 -1
  64. package/esm/typings/src/scrapers/_common/register/$scrapersRegister.d.ts +1 -1
  65. package/esm/typings/src/scrapers/_common/register/ScraperAndConverterMetadata.d.ts +2 -4
  66. package/esm/typings/src/scrapers/_common/register/ScraperConstructor.d.ts +1 -1
  67. package/esm/typings/src/scrapers/document/register-constructor.d.ts +1 -1
  68. package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -1
  69. package/esm/typings/src/scrapers/document-legacy/register-constructor.d.ts +1 -1
  70. package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -1
  71. package/esm/typings/src/scrapers/markdown/register-constructor.d.ts +1 -1
  72. package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -1
  73. package/esm/typings/src/scrapers/markitdown/register-constructor.d.ts +1 -1
  74. package/esm/typings/src/scrapers/markitdown/register-metadata.d.ts +1 -1
  75. package/esm/typings/src/scrapers/pdf/register-constructor.d.ts +1 -1
  76. package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -1
  77. package/esm/typings/src/scrapers/website/register-constructor.d.ts +1 -1
  78. package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -1
  79. package/esm/typings/src/scripting/javascript/postprocessing-functions.d.ts +6 -6
  80. package/esm/typings/src/types/Prompt.d.ts +5 -0
  81. package/esm/typings/src/utils/markdown/createMarkdownChart.d.ts +1 -1
  82. package/esm/typings/src/utils/markdown/humanizeAiText.d.ts +1 -1
  83. package/esm/typings/src/utils/markdown/humanizeAiTextEllipsis.d.ts +1 -1
  84. package/esm/typings/src/utils/markdown/humanizeAiTextEmdashed.d.ts +1 -1
  85. package/esm/typings/src/utils/markdown/humanizeAiTextQuotes.d.ts +1 -1
  86. package/esm/typings/src/utils/markdown/humanizeAiTextWhitespace.d.ts +1 -1
  87. package/esm/typings/src/utils/markdown/prettifyMarkdown.d.ts +2 -0
  88. package/esm/typings/src/utils/markdown/promptbookifyAiText.d.ts +1 -1
  89. package/esm/typings/src/utils/{trimCodeBlock.d.ts → markdown/trimCodeBlock.d.ts} +1 -1
  90. package/esm/typings/src/utils/{trimEndOfCodeBlock.d.ts → markdown/trimEndOfCodeBlock.d.ts} +1 -1
  91. package/esm/typings/src/utils/{$Register.d.ts → misc/$Register.d.ts} +2 -2
  92. package/esm/typings/src/utils/{$getCurrentDate.d.ts → misc/$getCurrentDate.d.ts} +1 -1
  93. package/esm/typings/src/utils/{arrayableToArray.d.ts → misc/arrayableToArray.d.ts} +1 -1
  94. package/esm/typings/src/utils/misc/debounce.d.ts +5 -0
  95. package/esm/typings/src/utils/{emojis.d.ts → misc/emojis.d.ts} +1 -1
  96. package/esm/typings/src/utils/misc/injectCssModuleIntoShadowRoot.d.ts +20 -0
  97. package/esm/typings/src/version.d.ts +1 -1
  98. package/package.json +2 -2
  99. package/umd/index.umd.js +1 -1
  100. package/umd/index.umd.js.map +1 -1
  101. package/esm/typings/src/book-components/BookEditor/injectCssModuleIntoShadowRoot.d.ts +0 -11
  102. package/esm/typings/src/book-components/Chat/save/savePlugins.d.ts +0 -105
  103. /package/esm/typings/src/{utils/arrayableToArray.test.d.ts → book-2.0/agent-source/createAgentModelRequirementsWithCommitments.delete.test.d.ts} +0 -0
  104. /package/esm/typings/src/utils/{trimCodeBlock.test.d.ts → markdown/trimCodeBlock.test.d.ts} +0 -0
  105. /package/esm/typings/src/utils/{trimEndOfCodeBlock.test.d.ts → markdown/trimEndOfCodeBlock.test.d.ts} +0 -0
  106. /package/esm/typings/src/utils/{FromtoItems.d.ts → misc/FromtoItems.d.ts} +0 -0
  107. /package/esm/typings/src/utils/{markdown/prettifyMarkdown.test.d.ts → misc/arrayableToArray.test.d.ts} +0 -0
  108. /package/esm/typings/src/utils/{parseNumber.d.ts → misc/parseNumber.d.ts} +0 -0
  109. /package/esm/typings/src/utils/{parseNumber.test.d.ts → misc/parseNumber.test.d.ts} +0 -0
  110. /package/esm/typings/src/utils/{removeEmojis.d.ts → normalization/removeEmojis.d.ts} +0 -0
  111. /package/esm/typings/src/utils/{removeEmojis.test.d.ts → normalization/removeEmojis.test.d.ts} +0 -0
  112. /package/esm/typings/src/utils/{removeQuotes.d.ts → normalization/removeQuotes.d.ts} +0 -0
  113. /package/esm/typings/src/utils/{removeQuotes.test.d.ts → normalization/removeQuotes.test.d.ts} +0 -0
  114. /package/esm/typings/src/utils/{unwrapResult.d.ts → normalization/unwrapResult.d.ts} +0 -0
  115. /package/esm/typings/src/utils/{unwrapResult.test.d.ts → normalization/unwrapResult.test.d.ts} +0 -0
@@ -16,8 +16,8 @@ import type { SendMessageToLlmChatFunction } from '../book-components/Chat/hooks
16
16
  import type { LlmChatProps } from '../book-components/Chat/LlmChat/LlmChatProps';
17
17
  import type { MockedChatDelayConfig } from '../book-components/Chat/MockedChat/MockedChat';
18
18
  import type { MockedChatProps } from '../book-components/Chat/MockedChat/MockedChat';
19
- import type { string_chat_format_name } from '../book-components/Chat/save/savePlugins';
20
- import type { ChatSaveFormatDefinition } from '../book-components/Chat/save/savePlugins';
19
+ import type { ChatSaveFormatDefinition } from '../book-components/Chat/save/_common/ChatSaveFormatDefinition';
20
+ import type { string_chat_format_name } from '../book-components/Chat/save/_common/string_chat_format_name';
21
21
  import type { ChatMessage } from '../book-components/Chat/types/ChatMessage';
22
22
  import type { ChatParticipant } from '../book-components/Chat/types/ChatParticipant';
23
23
  import type { MessageButton } from '../book-components/Chat/utils/parseMessageButtons';
@@ -154,6 +154,7 @@ import type { ApplicationRemoteServerOptions } from '../remote-server/types/Remo
154
154
  import type { ApplicationRemoteServerClientOptions } from '../remote-server/types/RemoteServerOptions';
155
155
  import type { LoginRequest } from '../remote-server/types/RemoteServerOptions';
156
156
  import type { LoginResponse } from '../remote-server/types/RemoteServerOptions';
157
+ import type { ServerInfo } from '../remote-server/ui/types';
157
158
  import type { Converter } from '../scrapers/_common/Converter';
158
159
  import type { ScraperAndConverterMetadata } from '../scrapers/_common/register/ScraperAndConverterMetadata';
159
160
  import type { ScraperConstructor } from '../scrapers/_common/register/ScraperConstructor';
@@ -305,15 +306,16 @@ import type { number_kilobytes } from '../types/typeAliases';
305
306
  import type { number_megabytes } from '../types/typeAliases';
306
307
  import type { number_gigabytes } from '../types/typeAliases';
307
308
  import type { number_terabytes } from '../types/typeAliases';
308
- import type { Registered } from '../utils/$Register';
309
- import type { Registration } from '../utils/$Register';
310
309
  import type { ColorTransformer } from '../utils/color/operators/ColorTransformer';
311
310
  import type { PipelineEditableSerialized } from '../utils/editable/types/PipelineEditableSerialized';
312
311
  import type { ExecCommandOptions } from '../utils/execCommand/ExecCommandOptions';
313
312
  import type { ExecCommandOptionsAdvanced } from '../utils/execCommand/ExecCommandOptions';
314
- import type { FromtoItems } from '../utils/FromtoItems';
315
313
  import type { CodeBlock } from '../utils/markdown/extractAllBlocksFromMarkdown';
316
314
  import type { MarkdownSection } from '../utils/markdown/parseMarkdownSection';
315
+ import type { Registered } from '../utils/misc/$Register';
316
+ import type { Registration } from '../utils/misc/$Register';
317
+ import type { FromtoItems } from '../utils/misc/FromtoItems';
318
+ import type { InjectCssModuleIntoShadowRootOptions } from '../utils/misc/injectCssModuleIntoShadowRoot';
317
319
  import type { string_keyword } from '../utils/normalization/IKeywords';
318
320
  import type { Keywords } from '../utils/normalization/IKeywords';
319
321
  import type { string_kebab_case } from '../utils/normalization/normalize-to-kebab-case';
@@ -347,8 +349,8 @@ export type { SendMessageToLlmChatFunction };
347
349
  export type { LlmChatProps };
348
350
  export type { MockedChatDelayConfig };
349
351
  export type { MockedChatProps };
350
- export type { string_chat_format_name };
351
352
  export type { ChatSaveFormatDefinition };
353
+ export type { string_chat_format_name };
352
354
  export type { ChatMessage };
353
355
  export type { ChatParticipant };
354
356
  export type { MessageButton };
@@ -485,6 +487,7 @@ export type { ApplicationRemoteServerOptions };
485
487
  export type { ApplicationRemoteServerClientOptions };
486
488
  export type { LoginRequest };
487
489
  export type { LoginResponse };
490
+ export type { ServerInfo };
488
491
  export type { Converter };
489
492
  export type { ScraperAndConverterMetadata };
490
493
  export type { ScraperConstructor };
@@ -636,15 +639,16 @@ export type { number_kilobytes };
636
639
  export type { number_megabytes };
637
640
  export type { number_gigabytes };
638
641
  export type { number_terabytes };
639
- export type { Registered };
640
- export type { Registration };
641
642
  export type { ColorTransformer };
642
643
  export type { PipelineEditableSerialized };
643
644
  export type { ExecCommandOptions };
644
645
  export type { ExecCommandOptionsAdvanced };
645
- export type { FromtoItems };
646
646
  export type { CodeBlock };
647
647
  export type { MarkdownSection };
648
+ export type { Registered };
649
+ export type { Registration };
650
+ export type { FromtoItems };
651
+ export type { InjectCssModuleIntoShadowRootOptions };
648
652
  export type { string_keyword };
649
653
  export type { Keywords };
650
654
  export type { string_kebab_case };
@@ -11,7 +11,6 @@ import { jsonParse } from '../formats/json/utils/jsonParse';
11
11
  import { isValidXmlString } from '../formats/xml/utils/isValidXmlString';
12
12
  import { prompt } from '../pipeline/prompt-notation';
13
13
  import { promptTemplate } from '../pipeline/prompt-notation';
14
- import { $getCurrentDate } from '../utils/$getCurrentDate';
15
14
  import { $isRunningInBrowser } from '../utils/environment/$isRunningInBrowser';
16
15
  import { $isRunningInJest } from '../utils/environment/$isRunningInJest';
17
16
  import { $isRunningInNode } from '../utils/environment/$isRunningInNode';
@@ -26,6 +25,9 @@ import { splitIntoSentences } from '../utils/expectation-counters/countSentences
26
25
  import { countSentences } from '../utils/expectation-counters/countSentences';
27
26
  import { countWords } from '../utils/expectation-counters/countWords';
28
27
  import { CountUtils } from '../utils/expectation-counters/index';
28
+ import { $getCurrentDate } from '../utils/misc/$getCurrentDate';
29
+ import { debounce } from '../utils/misc/debounce';
30
+ import { parseNumber } from '../utils/misc/parseNumber';
29
31
  import { capitalize } from '../utils/normalization/capitalize';
30
32
  import { decapitalize } from '../utils/normalization/decapitalize';
31
33
  import { DIACRITIC_VARIANTS_LETTERS } from '../utils/normalization/DIACRITIC_VARIANTS_LETTERS';
@@ -48,17 +50,17 @@ import { orderJson } from '../utils/normalization/orderJson';
48
50
  import { parseKeywords } from '../utils/normalization/parseKeywords';
49
51
  import { parseKeywordsFromString } from '../utils/normalization/parseKeywordsFromString';
50
52
  import { removeDiacritics } from '../utils/normalization/removeDiacritics';
53
+ import { removeEmojis } from '../utils/normalization/removeEmojis';
54
+ import { removeQuotes } from '../utils/normalization/removeQuotes';
51
55
  import { searchKeywords } from '../utils/normalization/searchKeywords';
52
56
  import { suffixUrl } from '../utils/normalization/suffixUrl';
53
57
  import { titleToName } from '../utils/normalization/titleToName';
58
+ import { unwrapResult } from '../utils/normalization/unwrapResult';
54
59
  import { spaceTrim } from '../utils/organization/spaceTrim';
55
60
  import { extractParameterNames } from '../utils/parameters/extractParameterNames';
56
61
  import { numberToString } from '../utils/parameters/numberToString';
57
62
  import { templateParameters } from '../utils/parameters/templateParameters';
58
63
  import { valueToString } from '../utils/parameters/valueToString';
59
- import { parseNumber } from '../utils/parseNumber';
60
- import { removeEmojis } from '../utils/removeEmojis';
61
- import { removeQuotes } from '../utils/removeQuotes';
62
64
  import { $deepFreeze } from '../utils/serialization/$deepFreeze';
63
65
  import { checkSerializableAsJson } from '../utils/serialization/checkSerializableAsJson';
64
66
  import { clonePipeline } from '../utils/serialization/clonePipeline';
@@ -69,9 +71,6 @@ import { jsonStringsToJsons } from '../utils/serialization/jsonStringsToJsons';
69
71
  import { difference } from '../utils/sets/difference';
70
72
  import { intersection } from '../utils/sets/intersection';
71
73
  import { union } from '../utils/sets/union';
72
- import { trimCodeBlock } from '../utils/trimCodeBlock';
73
- import { trimEndOfCodeBlock } from '../utils/trimEndOfCodeBlock';
74
- import { unwrapResult } from '../utils/unwrapResult';
75
74
  import { isValidEmail } from '../utils/validators/email/isValidEmail';
76
75
  import { isRootPath } from '../utils/validators/filePath/isRootPath';
77
76
  import { isValidFilePath } from '../utils/validators/filePath/isValidFilePath';
@@ -96,7 +95,6 @@ export { jsonParse };
96
95
  export { isValidXmlString };
97
96
  export { prompt };
98
97
  export { promptTemplate };
99
- export { $getCurrentDate };
100
98
  export { $isRunningInBrowser };
101
99
  export { $isRunningInJest };
102
100
  export { $isRunningInNode };
@@ -111,6 +109,9 @@ export { splitIntoSentences };
111
109
  export { countSentences };
112
110
  export { countWords };
113
111
  export { CountUtils };
112
+ export { $getCurrentDate };
113
+ export { debounce };
114
+ export { parseNumber };
114
115
  export { capitalize };
115
116
  export { decapitalize };
116
117
  export { DIACRITIC_VARIANTS_LETTERS };
@@ -133,17 +134,17 @@ export { orderJson };
133
134
  export { parseKeywords };
134
135
  export { parseKeywordsFromString };
135
136
  export { removeDiacritics };
137
+ export { removeEmojis };
138
+ export { removeQuotes };
136
139
  export { searchKeywords };
137
140
  export { suffixUrl };
138
141
  export { titleToName };
142
+ export { unwrapResult };
139
143
  export { spaceTrim };
140
144
  export { extractParameterNames };
141
145
  export { numberToString };
142
146
  export { templateParameters };
143
147
  export { valueToString };
144
- export { parseNumber };
145
- export { removeEmojis };
146
- export { removeQuotes };
147
148
  export { $deepFreeze };
148
149
  export { checkSerializableAsJson };
149
150
  export { clonePipeline };
@@ -154,9 +155,6 @@ export { jsonStringsToJsons };
154
155
  export { difference };
155
156
  export { intersection };
156
157
  export { union };
157
- export { trimCodeBlock };
158
- export { trimEndOfCodeBlock };
159
- export { unwrapResult };
160
158
  export { isValidEmail };
161
159
  export { isRootPath };
162
160
  export { isValidFilePath };
@@ -1,5 +1,5 @@
1
1
  import type { AvailableModel } from '../../execution/AvailableModel';
2
- import { LlmExecutionTools } from '../../execution/LlmExecutionTools';
2
+ import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
3
3
  import type { string_model_name } from '../../types/typeAliases';
4
4
  import type { AgentModelRequirements } from './AgentModelRequirements';
5
5
  import type { string_book } from './string_book';
@@ -1,4 +1,4 @@
1
- import { string_agent_name } from '../../types/typeAliases';
1
+ import type { string_agent_name } from '../../types/typeAliases';
2
2
  /**
3
3
  * Generates a gravatar URL based on agent name for fallback avatar
4
4
  *
@@ -1,4 +1,4 @@
1
- import { string_agent_name, string_url_image } from '../../types/typeAliases';
1
+ import type { string_agent_name, string_url_image } from '../../types/typeAliases';
2
2
  /**
3
3
  * Generates an image for the agent to use as profile image
4
4
  *
@@ -1,7 +1,7 @@
1
1
  import type { CSSProperties } from 'react';
2
2
  import type { Promisable } from 'type-fest';
3
3
  import type { string_book } from '../../book-2.0/agent-source/string_book';
4
- import { string_knowledge_source_content } from '../../types/typeAliases';
4
+ import type { string_knowledge_source_content } from '../../types/typeAliases';
5
5
  /**
6
6
  * Props of `BookEditor`
7
7
  *
@@ -1,4 +1,4 @@
1
- import { BookEditorProps } from './BookEditor';
1
+ import type { BookEditorProps } from './BookEditor';
2
2
  /**
3
3
  * @private util of `<BookEditor />`
4
4
  */
@@ -1,4 +1,3 @@
1
- import { string_chat_format_name } from '../save/savePlugins';
2
1
  import type { ChatProps } from './ChatProps';
3
2
  /**
4
3
  * Renders a chat with messages and input for new messages
@@ -13,7 +12,4 @@ import type { ChatProps } from './ChatProps';
13
12
  *
14
13
  * @public exported from `@promptbook/components`
15
14
  */
16
- export declare function Chat(props: ChatProps & {
17
- saveFormats?: string_chat_format_name[];
18
- isSaveButtonEnabled?: boolean;
19
- }): import("react/jsx-runtime").JSX.Element;
15
+ export declare function Chat(props: ChatProps): import("react/jsx-runtime").JSX.Element;
@@ -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
  *
@@ -1,4 +1,4 @@
1
- import { MockedChatDelayConfig } from './MockedChat';
1
+ import type { MockedChatDelayConfig } from './MockedChat';
2
2
  /**
3
3
  * Normal flow of messages in the `MockedChat` component
4
4
  *
@@ -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
  /**