@promptbook/components 0.111.0-4 → 0.111.0-7

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 (2320) hide show
  1. package/esm/index.es.js +2296 -1479
  2. package/esm/index.es.js.map +1 -1
  3. package/esm/src/_packages/core.index.d.ts +410 -0
  4. package/esm/src/_packages/types.index.d.ts +820 -0
  5. package/esm/src/book-2.0/agent-source/AgentBasicInformation.d.ts +126 -0
  6. package/esm/src/book-components/BookEditor/BookEditorMonacoConstants.d.ts +14 -0
  7. package/esm/src/book-components/BookEditor/BookEditorMonacoFormatting.d.ts +10 -0
  8. package/esm/src/book-components/BookEditor/BookEditorMonacoTokenization.d.ts +19 -0
  9. package/esm/src/book-components/BookEditor/BookEditorMonacoUploadPanel.d.ts +14 -0
  10. package/esm/src/book-components/BookEditor/useBookEditorMonacoDecorations.d.ts +13 -0
  11. package/esm/src/book-components/BookEditor/useBookEditorMonacoDiagnostics.d.ts +23 -0
  12. package/esm/src/book-components/BookEditor/useBookEditorMonacoLanguage.d.ts +11 -0
  13. package/esm/src/book-components/BookEditor/useBookEditorMonacoStyles.d.ts +14 -0
  14. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads.d.ts +57 -0
  15. package/esm/src/book-components/Chat/Chat/ChatMessageItem.d.ts +83 -0
  16. package/esm/src/book-components/Chat/Chat/ChatMessageList.d.ts +42 -0
  17. package/esm/src/book-components/Chat/Chat/ChatProps.d.ts +310 -0
  18. package/esm/src/book-components/Chat/LlmChat/LlmChatProps.d.ts +106 -0
  19. package/esm/src/commitments/MEMORY/MEMORY.d.ts +106 -0
  20. package/esm/src/commitments/MESSAGE_SUFFIX/MESSAGE_SUFFIX.d.ts +35 -0
  21. package/esm/src/commitments/META_DISCLAIMER/META_DISCLAIMER.d.ts +37 -0
  22. package/esm/src/commitments/USE_USER_LOCATION/USE_USER_LOCATION.d.ts +39 -0
  23. package/esm/src/commitments/_common/toolRuntimeContext.d.ts +66 -0
  24. package/esm/src/commitments/index.d.ts +54 -0
  25. package/esm/src/constants.d.ts +211 -0
  26. package/esm/src/llm-providers/agent/Agent.d.ts +99 -0
  27. package/esm/src/llm-providers/agent/RemoteAgent.d.ts +63 -0
  28. package/esm/src/llm-providers/agent/self-learning/SelfLearningManager.d.ts +67 -0
  29. package/esm/src/pipeline/prompt-notation/helpers/ParameterEscaping.d.ts +51 -0
  30. package/esm/src/pipeline/prompt-notation/helpers/ParameterNaming.d.ts +16 -0
  31. package/esm/src/pipeline/prompt-notation/helpers/ParameterSection.d.ts +34 -0
  32. package/esm/src/utils/color/Color.d.ts +158 -0
  33. package/esm/src/utils/color/parsers/ColorChannelSet.d.ts +11 -0
  34. package/esm/src/utils/color/parsers/parseHexColor.d.ts +11 -0
  35. package/esm/src/utils/color/parsers/parseHslColor.d.ts +11 -0
  36. package/esm/src/utils/color/parsers/parseRgbColor.d.ts +20 -0
  37. package/esm/src/utils/validators/url/isValidAgentUrl.test.d.ts +1 -0
  38. package/esm/src/utils/validators/url/isValidPipelineUrl.test.d.ts +1 -0
  39. package/esm/src/utils/validators/url/isValidUrl.test.d.ts +1 -0
  40. package/esm/src/utils/validators/uuid/isValidUuid.test.d.ts +1 -0
  41. package/esm/src/version.d.ts +26 -0
  42. package/package.json +7 -8
  43. package/umd/books/index.d.ts +131 -0
  44. package/umd/index.umd.js +2278 -1460
  45. package/umd/index.umd.js.map +1 -1
  46. package/umd/servers.d.ts +62 -0
  47. package/umd/src/_packages/anthropic-claude.index.d.ts +16 -0
  48. package/umd/src/_packages/azure-openai.index.d.ts +10 -0
  49. package/umd/src/_packages/browser.index.d.ts +22 -0
  50. package/umd/src/_packages/cli.index.d.ts +68 -0
  51. package/umd/src/_packages/color.index.d.ts +52 -0
  52. package/umd/src/_packages/components.index.d.ts +146 -0
  53. package/umd/src/_packages/core.index.d.ts +410 -0
  54. package/umd/src/_packages/deepseek.index.d.ts +10 -0
  55. package/umd/src/_packages/documents.index.d.ts +8 -0
  56. package/umd/src/_packages/editable.index.d.ts +90 -0
  57. package/umd/src/_packages/fake-llm.index.d.ts +6 -0
  58. package/umd/src/_packages/google.index.d.ts +12 -0
  59. package/umd/src/_packages/javascript.index.d.ts +10 -0
  60. package/umd/src/_packages/legacy-documents.index.d.ts +8 -0
  61. package/umd/src/_packages/markdown-utils.index.d.ts +68 -0
  62. package/umd/src/_packages/markitdown.index.d.ts +8 -0
  63. package/umd/src/_packages/node.index.d.ts +26 -0
  64. package/umd/src/_packages/ollama.index.d.ts +14 -0
  65. package/umd/src/_packages/openai.index.d.ts +40 -0
  66. package/umd/src/_packages/pdf.index.d.ts +14 -0
  67. package/umd/src/_packages/remote-client.index.d.ts +16 -0
  68. package/umd/src/_packages/remote-server.index.d.ts +14 -0
  69. package/umd/src/_packages/templates.index.d.ts +4 -0
  70. package/umd/src/_packages/types.index.d.ts +820 -0
  71. package/umd/src/_packages/utils.index.d.ts +196 -0
  72. package/umd/src/_packages/vercel.index.d.ts +6 -0
  73. package/umd/src/_packages/website-crawler.index.d.ts +8 -0
  74. package/umd/src/_packages/wizard.index.d.ts +68 -0
  75. package/umd/src/book-2.0/agent-source/AgentBasicInformation.d.ts +126 -0
  76. package/umd/src/book-2.0/agent-source/AgentModelRequirements.d.ts +81 -0
  77. package/umd/src/book-2.0/agent-source/AgentReferenceResolver.d.ts +18 -0
  78. package/umd/src/book-2.0/agent-source/AgentSourceParseResult.d.ts +21 -0
  79. package/umd/src/book-2.0/agent-source/BookEditable.d.ts +41 -0
  80. package/umd/src/book-2.0/agent-source/CreateAgentModelRequirementsOptions.d.ts +17 -0
  81. package/umd/src/book-2.0/agent-source/communication-samples.test.d.ts +1 -0
  82. package/umd/src/book-2.0/agent-source/computeAgentHash.d.ts +8 -0
  83. package/umd/src/book-2.0/agent-source/computeAgentHash.test.d.ts +1 -0
  84. package/umd/src/book-2.0/agent-source/createAgentModelRequirements.d.ts +50 -0
  85. package/umd/src/book-2.0/agent-source/createAgentModelRequirements.tools.test.d.ts +1 -0
  86. package/umd/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.agentReferenceResolver.test.d.ts +1 -0
  87. package/umd/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.blocks.test.d.ts +1 -0
  88. package/umd/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.closed.test.d.ts +1 -0
  89. package/umd/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.d.ts +10 -0
  90. package/umd/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.delete.test.d.ts +1 -0
  91. package/umd/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.import.test.d.ts +1 -0
  92. package/umd/src/book-2.0/agent-source/createCommitmentRegex.d.ts +20 -0
  93. package/umd/src/book-2.0/agent-source/createDefaultAgentName.d.ts +8 -0
  94. package/umd/src/book-2.0/agent-source/extractMetaLinks.d.ts +8 -0
  95. package/umd/src/book-2.0/agent-source/normalizeAgentName.d.ts +9 -0
  96. package/umd/src/book-2.0/agent-source/normalizeAgentName.test.d.ts +1 -0
  97. package/umd/src/book-2.0/agent-source/padBook.d.ts +18 -0
  98. package/umd/src/book-2.0/agent-source/parseAgentSource.d.ts +15 -0
  99. package/umd/src/book-2.0/agent-source/parseAgentSource.import.test.d.ts +1 -0
  100. package/umd/src/book-2.0/agent-source/parseAgentSource.test.d.ts +1 -0
  101. package/umd/src/book-2.0/agent-source/parseAgentSourceWithCommitments.blocks.test.d.ts +1 -0
  102. package/umd/src/book-2.0/agent-source/parseAgentSourceWithCommitments.d.ts +9 -0
  103. package/umd/src/book-2.0/agent-source/parseParameters.d.ts +13 -0
  104. package/umd/src/book-2.0/agent-source/parseTeamCommitment.d.ts +28 -0
  105. package/umd/src/book-2.0/agent-source/removeCommentsFromSystemMessage.d.ts +11 -0
  106. package/umd/src/book-2.0/agent-source/string_book.d.ts +29 -0
  107. package/umd/src/book-2.0/utils/generatePlaceholderAgentProfileImageUrl.d.ts +13 -0
  108. package/umd/src/book-components/AvatarProfile/AvatarChip/AvatarChip.d.ts +38 -0
  109. package/umd/src/book-components/AvatarProfile/AvatarChip/AvatarChipFromSource.d.ts +21 -0
  110. package/umd/src/book-components/AvatarProfile/AvatarChip/index.d.ts +2 -0
  111. package/umd/src/book-components/AvatarProfile/AvatarProfile/AvatarProfile.d.ts +36 -0
  112. package/umd/src/book-components/AvatarProfile/AvatarProfile/AvatarProfileFromSource.d.ts +19 -0
  113. package/umd/src/book-components/AvatarProfile/AvatarProfile/AvatarProfileTooltip.d.ts +15 -0
  114. package/umd/src/book-components/BookEditor/BookEditor.d.ts +209 -0
  115. package/umd/src/book-components/BookEditor/BookEditorActionbar.d.ts +18 -0
  116. package/umd/src/book-components/BookEditor/BookEditorMonaco.d.ts +5 -0
  117. package/umd/src/book-components/BookEditor/BookEditorMonacoConstants.d.ts +14 -0
  118. package/umd/src/book-components/BookEditor/BookEditorMonacoFormatting.d.ts +10 -0
  119. package/umd/src/book-components/BookEditor/BookEditorMonacoTokenization.d.ts +19 -0
  120. package/umd/src/book-components/BookEditor/BookEditorMonacoUploadPanel.d.ts +14 -0
  121. package/umd/src/book-components/BookEditor/useBookEditorMonacoDecorations.d.ts +13 -0
  122. package/umd/src/book-components/BookEditor/useBookEditorMonacoDiagnostics.d.ts +23 -0
  123. package/umd/src/book-components/BookEditor/useBookEditorMonacoLanguage.d.ts +11 -0
  124. package/umd/src/book-components/BookEditor/useBookEditorMonacoStyles.d.ts +14 -0
  125. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads.d.ts +57 -0
  126. package/umd/src/book-components/Chat/AgentChat/AgentChat.d.ts +17 -0
  127. package/umd/src/book-components/Chat/AgentChat/AgentChat.test.d.ts +1 -0
  128. package/umd/src/book-components/Chat/AgentChat/AgentChatProps.d.ts +18 -0
  129. package/umd/src/book-components/Chat/AgentChip/AgentChip.d.ts +71 -0
  130. package/umd/src/book-components/Chat/AgentChip/index.d.ts +2 -0
  131. package/umd/src/book-components/Chat/Chat/Chat.d.ts +15 -0
  132. package/umd/src/book-components/Chat/Chat/ChatActionsBar.d.ts +34 -0
  133. package/umd/src/book-components/Chat/Chat/ChatCitationModal.d.ts +21 -0
  134. package/umd/src/book-components/Chat/Chat/ChatInputArea.d.ts +49 -0
  135. package/umd/src/book-components/Chat/Chat/ChatMessageItem.d.ts +83 -0
  136. package/umd/src/book-components/Chat/Chat/ChatMessageList.d.ts +42 -0
  137. package/umd/src/book-components/Chat/Chat/ChatMessageMap.d.ts +17 -0
  138. package/umd/src/book-components/Chat/Chat/ChatProps.d.ts +310 -0
  139. package/umd/src/book-components/Chat/Chat/ChatRatingModal.d.ts +30 -0
  140. package/umd/src/book-components/Chat/Chat/ChatSelfLearningSummary.d.ts +24 -0
  141. package/umd/src/book-components/Chat/Chat/ChatSoundToggle.d.ts +54 -0
  142. package/umd/src/book-components/Chat/Chat/ChatToolCallModal.d.ts +23 -0
  143. package/umd/src/book-components/Chat/Chat/ChatToolCallModalComponents.d.ts +39 -0
  144. package/umd/src/book-components/Chat/Chat/ClockIcon.d.ts +9 -0
  145. package/umd/src/book-components/Chat/Chat/ImagePromptRenderer.d.ts +21 -0
  146. package/umd/src/book-components/Chat/Chat/constants.d.ts +15 -0
  147. package/umd/src/book-components/Chat/CodeBlock/CodeBlock.d.ts +13 -0
  148. package/umd/src/book-components/Chat/LlmChat/FriendlyErrorMessage.d.ts +20 -0
  149. package/umd/src/book-components/Chat/LlmChat/LlmChat.d.ts +14 -0
  150. package/umd/src/book-components/Chat/LlmChat/LlmChat.test.d.ts +1 -0
  151. package/umd/src/book-components/Chat/LlmChat/LlmChatProps.d.ts +106 -0
  152. package/umd/src/book-components/Chat/LlmChat/defaults.d.ts +9 -0
  153. package/umd/src/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +16 -0
  154. package/umd/src/book-components/Chat/MockedChat/MockedChat.d.ts +85 -0
  155. package/umd/src/book-components/Chat/MockedChat/constants.d.ts +42 -0
  156. package/umd/src/book-components/Chat/SourceChip/SourceChip.d.ts +39 -0
  157. package/umd/src/book-components/Chat/SourceChip/index.d.ts +2 -0
  158. package/umd/src/book-components/Chat/effects/ChatEffectsSystem.d.ts +14 -0
  159. package/umd/src/book-components/Chat/effects/components/ConfettiEffect.d.ts +18 -0
  160. package/umd/src/book-components/Chat/effects/components/HeartsEffect.d.ts +18 -0
  161. package/umd/src/book-components/Chat/effects/configs/defaultEffectConfigs.d.ts +7 -0
  162. package/umd/src/book-components/Chat/effects/index.d.ts +18 -0
  163. package/umd/src/book-components/Chat/effects/types/ChatEffect.d.ts +20 -0
  164. package/umd/src/book-components/Chat/effects/types/ChatEffectConfig.d.ts +21 -0
  165. package/umd/src/book-components/Chat/effects/types/ChatEffectType.d.ts +6 -0
  166. package/umd/src/book-components/Chat/effects/types/ChatEffectsSystemProps.d.ts +32 -0
  167. package/umd/src/book-components/Chat/effects/utils/detectEffects.d.ts +12 -0
  168. package/umd/src/book-components/Chat/hooks/index.d.ts +2 -0
  169. package/umd/src/book-components/Chat/hooks/useChatActionsOverlap.d.ts +61 -0
  170. package/umd/src/book-components/Chat/hooks/useChatAutoScroll.d.ts +41 -0
  171. package/umd/src/book-components/Chat/hooks/useChatRatings.d.ts +89 -0
  172. package/umd/src/book-components/Chat/hooks/useSendMessageToLlmChat.d.ts +44 -0
  173. package/umd/src/book-components/Chat/save/_common/ChatSaveFormatDefinition.d.ts +57 -0
  174. package/umd/src/book-components/Chat/save/_common/getChatSaveFormatDefinitions.d.ts +8 -0
  175. package/umd/src/book-components/Chat/save/_common/string_chat_format_name.d.ts +6 -0
  176. package/umd/src/book-components/Chat/save/html/htmlSaveFormatDefinition.d.ts +21 -0
  177. package/umd/src/book-components/Chat/save/index.d.ts +69 -0
  178. package/umd/src/book-components/Chat/save/json/jsonSaveFormatDefinition.d.ts +16 -0
  179. package/umd/src/book-components/Chat/save/markdown/mdSaveFormatDefinition.d.ts +16 -0
  180. package/umd/src/book-components/Chat/save/pdf/buildChatPdf.d.ts +11 -0
  181. package/umd/src/book-components/Chat/save/pdf/pdfSaveFormatDefinition.d.ts +20 -0
  182. package/umd/src/book-components/Chat/save/react/reactSaveFormatDefinition.d.ts +16 -0
  183. package/umd/src/book-components/Chat/save/text/txtSaveFormatDefinition.d.ts +16 -0
  184. package/umd/src/book-components/Chat/types/ChatMessage.d.ts +103 -0
  185. package/umd/src/book-components/Chat/types/ChatParticipant.d.ts +45 -0
  186. package/umd/src/book-components/Chat/utils/ChatPersistence.d.ts +25 -0
  187. package/umd/src/book-components/Chat/utils/ExportFormat.d.ts +4 -0
  188. package/umd/src/book-components/Chat/utils/addUtmParamsToUrl.d.ts +7 -0
  189. package/umd/src/book-components/Chat/utils/citationHelpers.d.ts +38 -0
  190. package/umd/src/book-components/Chat/utils/citationHelpers.test.d.ts +1 -0
  191. package/umd/src/book-components/Chat/utils/collectTeamToolCallSummary.d.ts +69 -0
  192. package/umd/src/book-components/Chat/utils/createShortLinkForChat.d.ts +7 -0
  193. package/umd/src/book-components/Chat/utils/createTeamToolNameFromUrl.d.ts +12 -0
  194. package/umd/src/book-components/Chat/utils/downloadFile.d.ts +6 -0
  195. package/umd/src/book-components/Chat/utils/exportChatHistory.d.ts +12 -0
  196. package/umd/src/book-components/Chat/utils/generatePdfContent.d.ts +8 -0
  197. package/umd/src/book-components/Chat/utils/generateQrDataUrl.d.ts +7 -0
  198. package/umd/src/book-components/Chat/utils/getChatMessageTimingDisplay.d.ts +26 -0
  199. package/umd/src/book-components/Chat/utils/getPromptbookBranding.d.ts +6 -0
  200. package/umd/src/book-components/Chat/utils/getToolCallChipletInfo.d.ts +40 -0
  201. package/umd/src/book-components/Chat/utils/loadAgentProfile.d.ts +69 -0
  202. package/umd/src/book-components/Chat/utils/messagesToHtml.d.ts +8 -0
  203. package/umd/src/book-components/Chat/utils/messagesToJson.d.ts +7 -0
  204. package/umd/src/book-components/Chat/utils/messagesToMarkdown.d.ts +8 -0
  205. package/umd/src/book-components/Chat/utils/messagesToText.d.ts +8 -0
  206. package/umd/src/book-components/Chat/utils/parseCitationMarker.d.ts +75 -0
  207. package/umd/src/book-components/Chat/utils/parseCitationsFromContent.d.ts +64 -0
  208. package/umd/src/book-components/Chat/utils/parseCitationsFromContent.test.d.ts +1 -0
  209. package/umd/src/book-components/Chat/utils/parseImagePrompts.d.ts +42 -0
  210. package/umd/src/book-components/Chat/utils/parseImagePrompts.test.d.ts +1 -0
  211. package/umd/src/book-components/Chat/utils/parseMessageButtons.d.ts +22 -0
  212. package/umd/src/book-components/Chat/utils/resolveCitationUrl.d.ts +11 -0
  213. package/umd/src/book-components/Chat/utils/resolveCitationUrl.test.d.ts +1 -0
  214. package/umd/src/book-components/Chat/utils/sanitizeStreamingMessageContent.d.ts +19 -0
  215. package/umd/src/book-components/Chat/utils/sanitizeStreamingMessageContent.test.d.ts +1 -0
  216. package/umd/src/book-components/Chat/utils/splitMessageContentIntoSegments.d.ts +41 -0
  217. package/umd/src/book-components/Chat/utils/splitMessageContentIntoSegments.test.d.ts +1 -0
  218. package/umd/src/book-components/Chat/utils/toolCallParsing.d.ts +68 -0
  219. package/umd/src/book-components/PromptbookAgent/PromptbookAgentIntegration.d.ts +67 -0
  220. package/umd/src/book-components/PromptbookAgent/PromptbookAgentSeamlessIntegration.d.ts +23 -0
  221. package/umd/src/book-components/Qr/BrandedQrCode.d.ts +18 -0
  222. package/umd/src/book-components/Qr/GenericQrCode.d.ts +10 -0
  223. package/umd/src/book-components/Qr/PromptbookQrCode.d.ts +18 -0
  224. package/umd/src/book-components/Qr/useQrCode.d.ts +15 -0
  225. package/umd/src/book-components/_common/Dropdown/Dropdown.d.ts +19 -0
  226. package/umd/src/book-components/_common/HamburgerMenu/HamburgerMenu.d.ts +16 -0
  227. package/umd/src/book-components/_common/MenuHoisting/MenuHoistingContext.d.ts +56 -0
  228. package/umd/src/book-components/_common/Modal/Modal.d.ts +13 -0
  229. package/umd/src/book-components/_common/Tooltip/Tooltip.d.ts +47 -0
  230. package/umd/src/book-components/_common/react-utils/classNames.d.ts +7 -0
  231. package/umd/src/book-components/_common/react-utils/collectCssTextsForClass.d.ts +7 -0
  232. package/umd/src/book-components/_common/react-utils/escapeHtml.d.ts +6 -0
  233. package/umd/src/book-components/_common/react-utils/escapeRegex.d.ts +6 -0
  234. package/umd/src/book-components/icons/AboutIcon.d.ts +13 -0
  235. package/umd/src/book-components/icons/ArrowIcon.d.ts +22 -0
  236. package/umd/src/book-components/icons/AttachmentIcon.d.ts +15 -0
  237. package/umd/src/book-components/icons/CameraIcon.d.ts +15 -0
  238. package/umd/src/book-components/icons/CloseIcon.d.ts +7 -0
  239. package/umd/src/book-components/icons/DownloadIcon.d.ts +13 -0
  240. package/umd/src/book-components/icons/EmailIcon.d.ts +15 -0
  241. package/umd/src/book-components/icons/ExitFullscreenIcon.d.ts +7 -0
  242. package/umd/src/book-components/icons/FullscreenIcon.d.ts +7 -0
  243. package/umd/src/book-components/icons/MenuIcon.d.ts +16 -0
  244. package/umd/src/book-components/icons/MicIcon.d.ts +8 -0
  245. package/umd/src/book-components/icons/PauseIcon.d.ts +8 -0
  246. package/umd/src/book-components/icons/PlayIcon.d.ts +8 -0
  247. package/umd/src/book-components/icons/ResetIcon.d.ts +6 -0
  248. package/umd/src/book-components/icons/SaveIcon.d.ts +14 -0
  249. package/umd/src/book-components/icons/SendIcon.d.ts +11 -0
  250. package/umd/src/book-components/icons/TeacherIcon.d.ts +15 -0
  251. package/umd/src/book-components/icons/TemplateIcon.d.ts +8 -0
  252. package/umd/src/cli/cli-commands/_boilerplate.d.ts +14 -0
  253. package/umd/src/cli/cli-commands/about.d.ts +16 -0
  254. package/umd/src/cli/cli-commands/common/handleActionErrors.d.ts +11 -0
  255. package/umd/src/cli/cli-commands/hello.d.ts +15 -0
  256. package/umd/src/cli/cli-commands/list-models.d.ts +14 -0
  257. package/umd/src/cli/cli-commands/list-scrapers.d.ts +14 -0
  258. package/umd/src/cli/cli-commands/login.d.ts +15 -0
  259. package/umd/src/cli/cli-commands/make.d.ts +17 -0
  260. package/umd/src/cli/cli-commands/prettify.d.ts +16 -0
  261. package/umd/src/cli/cli-commands/run.d.ts +18 -0
  262. package/umd/src/cli/cli-commands/runInteractiveChatbot.d.ts +32 -0
  263. package/umd/src/cli/cli-commands/start-agents-server.d.ts +14 -0
  264. package/umd/src/cli/cli-commands/start-pipelines-server.d.ts +15 -0
  265. package/umd/src/cli/cli-commands/test-command.d.ts +17 -0
  266. package/umd/src/cli/common/$addGlobalOptionsToCommand.d.ts +8 -0
  267. package/umd/src/cli/common/$provideLlmToolsForCli.d.ts +28 -0
  268. package/umd/src/cli/main.d.ts +16 -0
  269. package/umd/src/cli/promptbookCli.d.ts +13 -0
  270. package/umd/src/cli/test/ptbk.d.ts +5 -0
  271. package/umd/src/cli/test/ptbk.test.d.ts +1 -0
  272. package/umd/src/collection/agent-collection/AgentCollection.d.ts +12 -0
  273. package/umd/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +104 -0
  274. package/umd/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabaseOptions.d.ts +10 -0
  275. package/umd/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +200 -0
  276. package/umd/src/collection/pipeline-collection/PipelineCollection.d.ts +29 -0
  277. package/umd/src/collection/pipeline-collection/SimplePipelineCollection.d.ts +37 -0
  278. package/umd/src/collection/pipeline-collection/constructors/createPipelineCollectionFromDirectory.d.ts +62 -0
  279. package/umd/src/collection/pipeline-collection/constructors/createPipelineCollectionFromDirectory.test.d.ts +1 -0
  280. package/umd/src/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.d.ts +13 -0
  281. package/umd/src/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.test.d.ts +1 -0
  282. package/umd/src/collection/pipeline-collection/constructors/createPipelineCollectionFromPromise.d.ts +24 -0
  283. package/umd/src/collection/pipeline-collection/constructors/createPipelineCollectionFromPromise.test.d.ts +1 -0
  284. package/umd/src/collection/pipeline-collection/constructors/createPipelineCollectionFromUrl.d.ts +29 -0
  285. package/umd/src/collection/pipeline-collection/constructors/createPipelineSubcollection.d.ts +13 -0
  286. package/umd/src/collection/pipeline-collection/pipelineCollectionToJson.d.ts +13 -0
  287. package/umd/src/collection/pipeline-collection/pipelineCollectionToJson.test.d.ts +7 -0
  288. package/umd/src/commands/BOOK_VERSION/BookVersionCommand.d.ts +11 -0
  289. package/umd/src/commands/BOOK_VERSION/bookVersionCommand.test.d.ts +1 -0
  290. package/umd/src/commands/BOOK_VERSION/bookVersionCommandParser.d.ts +9 -0
  291. package/umd/src/commands/EXPECT/ExpectCommand.d.ts +17 -0
  292. package/umd/src/commands/EXPECT/expectCommand.test.d.ts +1 -0
  293. package/umd/src/commands/EXPECT/expectCommandParser.d.ts +11 -0
  294. package/umd/src/commands/FOREACH/ForeachCommand.d.ts +10 -0
  295. package/umd/src/commands/FOREACH/ForeachJson.d.ts +27 -0
  296. package/umd/src/commands/FOREACH/foreachCommand.test.d.ts +1 -0
  297. package/umd/src/commands/FOREACH/foreachCommandParser.d.ts +12 -0
  298. package/umd/src/commands/FORMAT/FormatCommand.d.ts +9 -0
  299. package/umd/src/commands/FORMAT/formatCommand.test.d.ts +1 -0
  300. package/umd/src/commands/FORMAT/formatCommandParser.d.ts +9 -0
  301. package/umd/src/commands/FORMFACTOR/FormfactorCommand.d.ts +11 -0
  302. package/umd/src/commands/FORMFACTOR/formfactorCommand.test.d.ts +1 -0
  303. package/umd/src/commands/FORMFACTOR/formfactorCommandParser.d.ts +11 -0
  304. package/umd/src/commands/JOKER/JokerCommand.d.ts +11 -0
  305. package/umd/src/commands/JOKER/jokerCommand.test.d.ts +1 -0
  306. package/umd/src/commands/JOKER/jokerCommandParser.d.ts +9 -0
  307. package/umd/src/commands/KNOWLEDGE/KnowledgeCommand.d.ts +11 -0
  308. package/umd/src/commands/KNOWLEDGE/knowledgeCommand.test.d.ts +1 -0
  309. package/umd/src/commands/KNOWLEDGE/knowledgeCommandParser.d.ts +12 -0
  310. package/umd/src/commands/KNOWLEDGE/utils/knowledgeSourceContentToName.d.ts +11 -0
  311. package/umd/src/commands/KNOWLEDGE/utils/knowledgeSourceContentToName.test.d.ts +4 -0
  312. package/umd/src/commands/MODEL/ModelCommand.d.ts +14 -0
  313. package/umd/src/commands/MODEL/modelCommand.test.d.ts +1 -0
  314. package/umd/src/commands/MODEL/modelCommandParser.d.ts +10 -0
  315. package/umd/src/commands/PARAMETER/ParameterCommand.d.ts +15 -0
  316. package/umd/src/commands/PARAMETER/parameterCommand.test.d.ts +1 -0
  317. package/umd/src/commands/PARAMETER/parameterCommandParser.d.ts +9 -0
  318. package/umd/src/commands/PERSONA/PersonaCommand.d.ts +13 -0
  319. package/umd/src/commands/PERSONA/personaCommand.test.d.ts +1 -0
  320. package/umd/src/commands/PERSONA/personaCommandParser.d.ts +9 -0
  321. package/umd/src/commands/POSTPROCESS/PostprocessCommand.d.ts +11 -0
  322. package/umd/src/commands/POSTPROCESS/postprocessCommand.test.d.ts +1 -0
  323. package/umd/src/commands/POSTPROCESS/postprocessCommandParser.d.ts +9 -0
  324. package/umd/src/commands/SECTION/SectionCommand.d.ts +11 -0
  325. package/umd/src/commands/SECTION/sectionCommand.test.d.ts +1 -0
  326. package/umd/src/commands/SECTION/sectionCommandParser.d.ts +20 -0
  327. package/umd/src/commands/URL/UrlCommand.d.ts +10 -0
  328. package/umd/src/commands/URL/urlCommand.test.d.ts +1 -0
  329. package/umd/src/commands/URL/urlCommandParser.d.ts +9 -0
  330. package/umd/src/commands/X_ACTION/ActionCommand.d.ts +9 -0
  331. package/umd/src/commands/X_ACTION/actionCommand.test.d.ts +1 -0
  332. package/umd/src/commands/X_ACTION/actionCommandParser.d.ts +12 -0
  333. package/umd/src/commands/X_INSTRUMENT/InstrumentCommand.d.ts +9 -0
  334. package/umd/src/commands/X_INSTRUMENT/instrumentCommand.test.d.ts +1 -0
  335. package/umd/src/commands/X_INSTRUMENT/instrumentCommandParser.d.ts +12 -0
  336. package/umd/src/commands/_BOILERPLATE/BoilerplateCommand.d.ts +10 -0
  337. package/umd/src/commands/_BOILERPLATE/boilerplateCommand.test.d.ts +1 -0
  338. package/umd/src/commands/_BOILERPLATE/boilerplateCommandParser.d.ts +11 -0
  339. package/umd/src/commands/_common/getParserForCommand.d.ts +11 -0
  340. package/umd/src/commands/_common/getParserForCommand.test.d.ts +1 -0
  341. package/umd/src/commands/_common/parseCommand.d.ts +12 -0
  342. package/umd/src/commands/_common/stringifyCommand.d.ts +12 -0
  343. package/umd/src/commands/_common/stringifyCommand.test.d.ts +1 -0
  344. package/umd/src/commands/_common/types/Command.d.ts +6 -0
  345. package/umd/src/commands/_common/types/CommandParser.d.ts +204 -0
  346. package/umd/src/commands/_common/types/CommandType.d.ts +17 -0
  347. package/umd/src/commands/_common/types/CommandUsagePlaces.d.ts +13 -0
  348. package/umd/src/commands/index.d.ts +9 -0
  349. package/umd/src/commitments/ACTION/ACTION.d.ts +36 -0
  350. package/umd/src/commitments/CLOSED/CLOSED.d.ts +39 -0
  351. package/umd/src/commitments/CLOSED/CLOSED.test.d.ts +4 -0
  352. package/umd/src/commitments/COMPONENT/COMPONENT.d.ts +28 -0
  353. package/umd/src/commitments/DELETE/DELETE.d.ts +39 -0
  354. package/umd/src/commitments/DICTIONARY/DICTIONARY.d.ts +46 -0
  355. package/umd/src/commitments/FORMAT/FORMAT.d.ts +37 -0
  356. package/umd/src/commitments/FROM/FROM.d.ts +34 -0
  357. package/umd/src/commitments/GOAL/GOAL.d.ts +37 -0
  358. package/umd/src/commitments/IMPORT/IMPORT.d.ts +34 -0
  359. package/umd/src/commitments/KNOWLEDGE/KNOWLEDGE.d.ts +39 -0
  360. package/umd/src/commitments/LANGUAGE/LANGUAGE.d.ts +35 -0
  361. package/umd/src/commitments/MEMORY/MEMORY.d.ts +106 -0
  362. package/umd/src/commitments/MEMORY/MEMORY.test.d.ts +1 -0
  363. package/umd/src/commitments/MESSAGE/AgentMessageCommitmentDefinition.d.ts +32 -0
  364. package/umd/src/commitments/MESSAGE/InitialMessageCommitmentDefinition.d.ts +32 -0
  365. package/umd/src/commitments/MESSAGE/MESSAGE.d.ts +39 -0
  366. package/umd/src/commitments/MESSAGE/UserMessageCommitmentDefinition.d.ts +32 -0
  367. package/umd/src/commitments/MESSAGE_SUFFIX/MESSAGE_SUFFIX.d.ts +35 -0
  368. package/umd/src/commitments/MESSAGE_SUFFIX/MESSAGE_SUFFIX.test.d.ts +1 -0
  369. package/umd/src/commitments/META/META.d.ts +60 -0
  370. package/umd/src/commitments/META/META_DESCRIPTION.d.ts +41 -0
  371. package/umd/src/commitments/META_COLOR/META_COLOR.d.ts +48 -0
  372. package/umd/src/commitments/META_DISCLAIMER/META_DISCLAIMER.d.ts +37 -0
  373. package/umd/src/commitments/META_DISCLAIMER/META_DISCLAIMER.test.d.ts +1 -0
  374. package/umd/src/commitments/META_FONT/META_FONT.d.ts +42 -0
  375. package/umd/src/commitments/META_IMAGE/META_IMAGE.d.ts +42 -0
  376. package/umd/src/commitments/META_LINK/META_LINK.d.ts +54 -0
  377. package/umd/src/commitments/MODEL/MODEL.d.ts +58 -0
  378. package/umd/src/commitments/NOTE/NOTE.d.ts +47 -0
  379. package/umd/src/commitments/OPEN/OPEN.d.ts +35 -0
  380. package/umd/src/commitments/PERSONA/PERSONA.d.ts +44 -0
  381. package/umd/src/commitments/RULE/RULE.d.ts +36 -0
  382. package/umd/src/commitments/SAMPLE/SAMPLE.d.ts +36 -0
  383. package/umd/src/commitments/SCENARIO/SCENARIO.d.ts +38 -0
  384. package/umd/src/commitments/STYLE/STYLE.d.ts +36 -0
  385. package/umd/src/commitments/TEAM/TEAM.d.ts +45 -0
  386. package/umd/src/commitments/TEMPLATE/TEMPLATE.d.ts +44 -0
  387. package/umd/src/commitments/TEMPLATE/TEMPLATE.test.d.ts +1 -0
  388. package/umd/src/commitments/USE/USE.d.ts +53 -0
  389. package/umd/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +60 -0
  390. package/umd/src/commitments/USE_BROWSER/USE_BROWSER.test.d.ts +1 -0
  391. package/umd/src/commitments/USE_BROWSER/fetchUrlContent.d.ts +22 -0
  392. package/umd/src/commitments/USE_BROWSER/fetchUrlContentViaBrowser.d.ts +13 -0
  393. package/umd/src/commitments/USE_EMAIL/USE_EMAIL.d.ts +48 -0
  394. package/umd/src/commitments/USE_EMAIL/resolveSendEmailToolForNode.d.ts +11 -0
  395. package/umd/src/commitments/USE_EMAIL/sendEmailViaBrowser.d.ts +18 -0
  396. package/umd/src/commitments/USE_IMAGE_GENERATOR/USE_IMAGE_GENERATOR.d.ts +37 -0
  397. package/umd/src/commitments/USE_IMAGE_GENERATOR/USE_IMAGE_GENERATOR.test.d.ts +1 -0
  398. package/umd/src/commitments/USE_MCP/USE_MCP.d.ts +37 -0
  399. package/umd/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +49 -0
  400. package/umd/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.test.d.ts +1 -0
  401. package/umd/src/commitments/USE_TIME/USE_TIME.d.ts +46 -0
  402. package/umd/src/commitments/USE_TIME/USE_TIME.test.d.ts +1 -0
  403. package/umd/src/commitments/USE_USER_LOCATION/USE_USER_LOCATION.d.ts +39 -0
  404. package/umd/src/commitments/USE_USER_LOCATION/USE_USER_LOCATION.test.d.ts +1 -0
  405. package/umd/src/commitments/_base/BaseCommitmentDefinition.d.ts +87 -0
  406. package/umd/src/commitments/_base/BookCommitment.d.ts +5 -0
  407. package/umd/src/commitments/_base/CommitmentDefinition.d.ts +67 -0
  408. package/umd/src/commitments/_base/NotYetImplementedCommitmentDefinition.d.ts +26 -0
  409. package/umd/src/commitments/_base/ParsedCommitment.d.ts +22 -0
  410. package/umd/src/commitments/_base/createEmptyAgentModelRequirements.d.ts +19 -0
  411. package/umd/src/commitments/_base/formatOptionalInstructionBlock.d.ts +6 -0
  412. package/umd/src/commitments/_common/commitmentToolFunctions.d.ts +26 -0
  413. package/umd/src/commitments/_common/getAllCommitmentDefinitions.d.ts +8 -0
  414. package/umd/src/commitments/_common/getAllCommitmentTypes.d.ts +8 -0
  415. package/umd/src/commitments/_common/getAllCommitmentsToolFunctionsForBrowser.d.ts +9 -0
  416. package/umd/src/commitments/_common/getAllCommitmentsToolFunctionsForNode.d.ts +13 -0
  417. package/umd/src/commitments/_common/getAllCommitmentsToolTitles.d.ts +7 -0
  418. package/umd/src/commitments/_common/getCommitmentDefinition.d.ts +10 -0
  419. package/umd/src/commitments/_common/getGroupedCommitmentDefinitions.d.ts +17 -0
  420. package/umd/src/commitments/_common/isCommitmentSupported.d.ts +9 -0
  421. package/umd/src/commitments/_common/toolRuntimeContext.d.ts +66 -0
  422. package/umd/src/commitments/index.d.ts +54 -0
  423. package/umd/src/config.d.ts +395 -0
  424. package/umd/src/config.test.d.ts +4 -0
  425. package/umd/src/constants/streaming.d.ts +20 -0
  426. package/umd/src/constants.d.ts +211 -0
  427. package/umd/src/conversion/archive/loadArchive.d.ts +16 -0
  428. package/umd/src/conversion/archive/saveArchive.d.ts +18 -0
  429. package/umd/src/conversion/compilePipeline.d.ts +25 -0
  430. package/umd/src/conversion/compilePipeline.test.d.ts +1 -0
  431. package/umd/src/conversion/compilePipelineOnRemoteServer.d.ts +21 -0
  432. package/umd/src/conversion/parsePipeline.d.ts +30 -0
  433. package/umd/src/conversion/parsePipeline.test.d.ts +1 -0
  434. package/umd/src/conversion/pipelineJsonToString.d.ts +18 -0
  435. package/umd/src/conversion/prettify/PrettifyOptions.d.ts +13 -0
  436. package/umd/src/conversion/prettify/prettifyPipelineString.d.ts +12 -0
  437. package/umd/src/conversion/prettify/renderPipelineMermaidOptions.d.ts +30 -0
  438. package/umd/src/conversion/utils/extractParameterNamesFromTask.d.ts +15 -0
  439. package/umd/src/conversion/utils/extractParameterNamesFromTask.test.d.ts +1 -0
  440. package/umd/src/conversion/validation/_importPipeline.d.ts +23 -0
  441. package/umd/src/conversion/validation/pipelineStringToJson-parseErrors.test.d.ts +4 -0
  442. package/umd/src/conversion/validation/validatePipeline-logicErrors.test.d.ts +4 -0
  443. package/umd/src/conversion/validation/validatePipeline.d.ts +44 -0
  444. package/umd/src/conversion/validation/validatePipeline.test.d.ts +4 -0
  445. package/umd/src/dialogs/callback/CallbackInterfaceTools.d.ts +17 -0
  446. package/umd/src/dialogs/callback/CallbackInterfaceToolsOptions.d.ts +14 -0
  447. package/umd/src/dialogs/simple-prompt/SimplePromptInterfaceTools.d.ts +22 -0
  448. package/umd/src/dialogs/user-interface-execution-tools.test.d.ts +1 -0
  449. package/umd/src/errors/0-BoilerplateError.d.ts +12 -0
  450. package/umd/src/errors/0-index.d.ts +100 -0
  451. package/umd/src/errors/AbstractFormatError.d.ts +11 -0
  452. package/umd/src/errors/AuthenticationError.d.ts +9 -0
  453. package/umd/src/errors/CollectionError.d.ts +9 -0
  454. package/umd/src/errors/DatabaseError.d.ts +12 -0
  455. package/umd/src/errors/EnvironmentMismatchError.d.ts +9 -0
  456. package/umd/src/errors/ExpectError.d.ts +12 -0
  457. package/umd/src/errors/KnowledgeScrapeError.d.ts +9 -0
  458. package/umd/src/errors/LimitReachedError.d.ts +9 -0
  459. package/umd/src/errors/MissingToolsError.d.ts +9 -0
  460. package/umd/src/errors/NotAllowed.d.ts +9 -0
  461. package/umd/src/errors/NotFoundError.d.ts +9 -0
  462. package/umd/src/errors/NotYetImplementedError.d.ts +9 -0
  463. package/umd/src/errors/ParseError.d.ts +12 -0
  464. package/umd/src/errors/PipelineExecutionError.d.ts +14 -0
  465. package/umd/src/errors/PipelineLogicError.d.ts +9 -0
  466. package/umd/src/errors/PipelineUrlError.d.ts +9 -0
  467. package/umd/src/errors/PromptbookFetchError.d.ts +9 -0
  468. package/umd/src/errors/UnexpectedError.d.ts +9 -0
  469. package/umd/src/errors/WrappedError.d.ts +10 -0
  470. package/umd/src/errors/assertsError.d.ts +11 -0
  471. package/umd/src/errors/utils/ErrorJson.d.ts +25 -0
  472. package/umd/src/errors/utils/deserializeError.d.ts +7 -0
  473. package/umd/src/errors/utils/deserializeError.test.d.ts +1 -0
  474. package/umd/src/errors/utils/getErrorReportUrl.d.ts +6 -0
  475. package/umd/src/errors/utils/serializeError.d.ts +7 -0
  476. package/umd/src/errors/utils/serializeError.test.d.ts +1 -0
  477. package/umd/src/executables/$provideExecutablesForNode.d.ts +13 -0
  478. package/umd/src/executables/apps/locateLibreoffice.d.ts +12 -0
  479. package/umd/src/executables/apps/locateLibreoffice.test.d.ts +1 -0
  480. package/umd/src/executables/apps/locatePandoc.d.ts +12 -0
  481. package/umd/src/executables/apps/locatePandoc.test.d.ts +1 -0
  482. package/umd/src/executables/locateApp.d.ts +33 -0
  483. package/umd/src/executables/locateApp.test.d.ts +1 -0
  484. package/umd/src/executables/platforms/locateAppOnLinux.d.ts +13 -0
  485. package/umd/src/executables/platforms/locateAppOnMacOs.d.ts +13 -0
  486. package/umd/src/executables/platforms/locateAppOnWindows.d.ts +13 -0
  487. package/umd/src/execution/AbstractTaskResult.d.ts +25 -0
  488. package/umd/src/execution/AvailableModel.d.ts +52 -0
  489. package/umd/src/execution/CommonToolsOptions.d.ts +28 -0
  490. package/umd/src/execution/EmbeddingVector.d.ts +8 -0
  491. package/umd/src/execution/Executables.d.ts +21 -0
  492. package/umd/src/execution/ExecutionTask.d.ts +154 -0
  493. package/umd/src/execution/ExecutionTools.d.ts +74 -0
  494. package/umd/src/execution/FilesystemTools.d.ts +9 -0
  495. package/umd/src/execution/LlmExecutionTools.d.ts +93 -0
  496. package/umd/src/execution/LlmExecutionToolsConstructor.d.ts +11 -0
  497. package/umd/src/execution/PipelineExecutor.d.ts +16 -0
  498. package/umd/src/execution/PipelineExecutorResult.d.ts +39 -0
  499. package/umd/src/execution/PromptResult.d.ts +111 -0
  500. package/umd/src/execution/PromptbookFetch.d.ts +12 -0
  501. package/umd/src/execution/PromptbookFetch.test-type.d.ts +5 -0
  502. package/umd/src/execution/ScriptExecutionTools.d.ts +39 -0
  503. package/umd/src/execution/UncertainNumber.d.ts +19 -0
  504. package/umd/src/execution/Usage.d.ts +33 -0
  505. package/umd/src/execution/UserInterfaceTools.d.ts +46 -0
  506. package/umd/src/execution/assertsTaskSuccessful.d.ts +14 -0
  507. package/umd/src/execution/createPipelineExecutor/$OngoingTaskResult.d.ts +56 -0
  508. package/umd/src/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +46 -0
  509. package/umd/src/execution/createPipelineExecutor/00-createPipelineExecutor.d.ts +10 -0
  510. package/umd/src/execution/createPipelineExecutor/10-executePipeline.d.ts +53 -0
  511. package/umd/src/execution/createPipelineExecutor/20-executeTask.d.ts +56 -0
  512. package/umd/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +32 -0
  513. package/umd/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +79 -0
  514. package/umd/src/execution/createPipelineExecutor/computeCosineSimilarity.d.ts +13 -0
  515. package/umd/src/execution/createPipelineExecutor/filterJustOutputParameters.d.ts +35 -0
  516. package/umd/src/execution/createPipelineExecutor/getContextForTask.d.ts +14 -0
  517. package/umd/src/execution/createPipelineExecutor/getExamplesForTask.d.ts +10 -0
  518. package/umd/src/execution/createPipelineExecutor/getKnowledgeForTask.d.ts +40 -0
  519. package/umd/src/execution/createPipelineExecutor/getReservedParametersForTask.d.ts +48 -0
  520. package/umd/src/execution/createPipelineExecutor/knowledgePiecesToString.d.ts +9 -0
  521. package/umd/src/execution/embeddingVectorToString.d.ts +7 -0
  522. package/umd/src/execution/execution-report/ExecutionPromptReportJson.d.ts +24 -0
  523. package/umd/src/execution/execution-report/ExecutionReportJson.d.ts +41 -0
  524. package/umd/src/execution/execution-report/ExecutionReportString.d.ts +16 -0
  525. package/umd/src/execution/execution-report/ExecutionReportStringOptions.d.ts +25 -0
  526. package/umd/src/execution/execution-report/countWorkingDuration.d.ts +7 -0
  527. package/umd/src/execution/execution-report/countWorkingDuration.test.d.ts +1 -0
  528. package/umd/src/execution/execution-report/executionReportJsonToString.d.ts +15 -0
  529. package/umd/src/execution/translation/automatic-translate/automatic-translators/AutomaticTranslator.d.ts +7 -0
  530. package/umd/src/execution/translation/automatic-translate/automatic-translators/DebugAutomaticTranslator.d.ts +11 -0
  531. package/umd/src/execution/translation/automatic-translate/automatic-translators/FakeAutomaticTranslator.d.ts +8 -0
  532. package/umd/src/execution/translation/automatic-translate/automatic-translators/LindatAutomaticTranslator.d.ts +22 -0
  533. package/umd/src/execution/translation/automatic-translate/automatic-translators/TranslatorOptions.d.ts +7 -0
  534. package/umd/src/execution/translation/automatic-translate/automatic-translators/utils/extractMultiplicatedOccurrence.d.ts +8 -0
  535. package/umd/src/execution/translation/automatic-translate/automatic-translators/utils/extractMultiplicatedOccurrence.test.d.ts +1 -0
  536. package/umd/src/execution/translation/automatic-translate/translateMessages.d.ts +12 -0
  537. package/umd/src/execution/utils/$provideExecutionToolsForNode.d.ts +14 -0
  538. package/umd/src/execution/utils/addUsage.d.ts +9 -0
  539. package/umd/src/execution/utils/addUsage.test.d.ts +1 -0
  540. package/umd/src/execution/utils/checkExpectations.d.ts +29 -0
  541. package/umd/src/execution/utils/checkExpectations.test.d.ts +1 -0
  542. package/umd/src/execution/utils/computeUsageCounts.d.ts +10 -0
  543. package/umd/src/execution/utils/forEachAsync.d.ts +20 -0
  544. package/umd/src/execution/utils/uncertainNumber.d.ts +10 -0
  545. package/umd/src/execution/utils/usage-constants.d.ts +27 -0
  546. package/umd/src/execution/utils/usageToHuman.d.ts +26 -0
  547. package/umd/src/execution/utils/usageToWorktime.d.ts +20 -0
  548. package/umd/src/execution/utils/usageToWorktime.test.d.ts +1 -0
  549. package/umd/src/execution/utils/validatePromptResult.d.ts +55 -0
  550. package/umd/src/formats/_common/FormatParser.d.ts +72 -0
  551. package/umd/src/formats/_common/FormatSubvalueParser.d.ts +66 -0
  552. package/umd/src/formats/csv/CsvFormatError.d.ts +10 -0
  553. package/umd/src/formats/csv/CsvFormatParser.d.ts +17 -0
  554. package/umd/src/formats/csv/CsvSettings.d.ts +13 -0
  555. package/umd/src/formats/csv/utils/csvParse.d.ts +12 -0
  556. package/umd/src/formats/csv/utils/isValidCsvString.d.ts +9 -0
  557. package/umd/src/formats/csv/utils/isValidCsvString.test.d.ts +1 -0
  558. package/umd/src/formats/index.d.ts +9 -0
  559. package/umd/src/formats/json/JsonFormatParser.d.ts +19 -0
  560. package/umd/src/formats/json/utils/isValidJsonString.d.ts +9 -0
  561. package/umd/src/formats/json/utils/isValidJsonString.test.d.ts +1 -0
  562. package/umd/src/formats/json/utils/jsonParse.d.ts +8 -0
  563. package/umd/src/formats/text/TextFormatParser.d.ts +19 -0
  564. package/umd/src/formats/xml/XmlFormatParser.d.ts +19 -0
  565. package/umd/src/formats/xml/utils/isValidXmlString.d.ts +9 -0
  566. package/umd/src/formats/xml/utils/isValidXmlString.test.d.ts +1 -0
  567. package/umd/src/formfactors/_boilerplate/BoilerplateFormfactorDefinition.d.ts +15 -0
  568. package/umd/src/formfactors/_common/AbstractFormfactorDefinition.d.ts +49 -0
  569. package/umd/src/formfactors/_common/FormfactorDefinition.d.ts +10 -0
  570. package/umd/src/formfactors/_common/string_formfactor_name.d.ts +6 -0
  571. package/umd/src/formfactors/chatbot/ChatbotFormfactorDefinition.d.ts +45 -0
  572. package/umd/src/formfactors/completion/CompletionFormfactorDefinition.d.ts +29 -0
  573. package/umd/src/formfactors/generator/GeneratorFormfactorDefinition.d.ts +25 -0
  574. package/umd/src/formfactors/generic/GenericFormfactorDefinition.d.ts +14 -0
  575. package/umd/src/formfactors/image-generator/ImageGeneratorFormfactorDefinition.d.ts +24 -0
  576. package/umd/src/formfactors/index.d.ts +170 -0
  577. package/umd/src/formfactors/matcher/MatcherFormfactorDefinition.d.ts +21 -0
  578. package/umd/src/formfactors/sheets/SheetsFormfactorDefinition.d.ts +26 -0
  579. package/umd/src/formfactors/translator/TranslatorFormfactorDefinition.d.ts +25 -0
  580. package/umd/src/high-level-abstractions/_common/HighLevelAbstraction.d.ts +21 -0
  581. package/umd/src/high-level-abstractions/implicit-formfactor/ImplicitFormfactorHla.d.ts +10 -0
  582. package/umd/src/high-level-abstractions/index.d.ts +54 -0
  583. package/umd/src/high-level-abstractions/quick-chatbot/QuickChatbotHla.d.ts +13 -0
  584. package/umd/src/import-plugins/$fileImportPlugins.d.ts +7 -0
  585. package/umd/src/import-plugins/AgentFileImportPlugin.d.ts +7 -0
  586. package/umd/src/import-plugins/FileImportPlugin.d.ts +24 -0
  587. package/umd/src/import-plugins/JsonFileImportPlugin.d.ts +7 -0
  588. package/umd/src/import-plugins/TextFileImportPlugin.d.ts +7 -0
  589. package/umd/src/llm-providers/_common/filterModels.d.ts +12 -0
  590. package/umd/src/llm-providers/_common/register/$llmToolsMetadataRegister.d.ts +13 -0
  591. package/umd/src/llm-providers/_common/register/$llmToolsRegister.d.ts +13 -0
  592. package/umd/src/llm-providers/_common/register/$provideEnvFilename.d.ts +12 -0
  593. package/umd/src/llm-providers/_common/register/$provideLlmToolsConfigurationFromEnv.d.ts +19 -0
  594. package/umd/src/llm-providers/_common/register/$provideLlmToolsForTestingAndScriptsAndPlayground.d.ts +27 -0
  595. package/umd/src/llm-providers/_common/register/$provideLlmToolsForWizardOrCli.d.ts +58 -0
  596. package/umd/src/llm-providers/_common/register/$provideLlmToolsFromEnv.d.ts +41 -0
  597. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +22 -0
  598. package/umd/src/llm-providers/_common/register/LlmToolsConfiguration.d.ts +30 -0
  599. package/umd/src/llm-providers/_common/register/LlmToolsMetadata.d.ts +57 -0
  600. package/umd/src/llm-providers/_common/register/LlmToolsOptions.d.ts +17 -0
  601. package/umd/src/llm-providers/_common/register/createLlmToolsFromConfiguration.d.ts +55 -0
  602. package/umd/src/llm-providers/_common/register/createLlmToolsFromConfiguration.test.d.ts +1 -0
  603. package/umd/src/llm-providers/_common/utils/assertUniqueModels.d.ts +12 -0
  604. package/umd/src/llm-providers/_common/utils/cache/CacheItem.d.ts +33 -0
  605. package/umd/src/llm-providers/_common/utils/cache/CacheLlmToolsOptions.d.ts +27 -0
  606. package/umd/src/llm-providers/_common/utils/cache/cacheLlmTools.d.ts +20 -0
  607. package/umd/src/llm-providers/_common/utils/count-total-usage/LlmExecutionToolsWithTotalUsage.d.ts +22 -0
  608. package/umd/src/llm-providers/_common/utils/count-total-usage/countUsage.d.ts +21 -0
  609. package/umd/src/llm-providers/_common/utils/count-total-usage/limitTotalUsage.d.ts +36 -0
  610. package/umd/src/llm-providers/_common/utils/pricing.d.ts +16 -0
  611. package/umd/src/llm-providers/_common/utils/pricing.test.d.ts +1 -0
  612. package/umd/src/llm-providers/_common/utils/removeUnsupportedModelRequirements.d.ts +25 -0
  613. package/umd/src/llm-providers/_common/utils/removeUnsupportedModelRequirements.test.d.ts +1 -0
  614. package/umd/src/llm-providers/_multiple/MultipleLlmExecutionTools.d.ts +61 -0
  615. package/umd/src/llm-providers/_multiple/getSingleLlmExecutionTools.d.ts +12 -0
  616. package/umd/src/llm-providers/_multiple/joinLlmExecutionTools.d.ts +27 -0
  617. package/umd/src/llm-providers/_multiple/playground/playground.d.ts +5 -0
  618. package/umd/src/llm-providers/agent/Agent.d.ts +99 -0
  619. package/umd/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +91 -0
  620. package/umd/src/llm-providers/agent/AgentLlmExecutionTools.test.d.ts +1 -0
  621. package/umd/src/llm-providers/agent/AgentOptions.d.ts +36 -0
  622. package/umd/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +28 -0
  623. package/umd/src/llm-providers/agent/RemoteAgent.d.ts +63 -0
  624. package/umd/src/llm-providers/agent/RemoteAgent.test.d.ts +1 -0
  625. package/umd/src/llm-providers/agent/RemoteAgentOptions.d.ts +11 -0
  626. package/umd/src/llm-providers/agent/createAgentLlmExecutionTools.d.ts +11 -0
  627. package/umd/src/llm-providers/agent/playground/playground.d.ts +8 -0
  628. package/umd/src/llm-providers/agent/register-configuration.d.ts +11 -0
  629. package/umd/src/llm-providers/agent/register-constructor.d.ts +13 -0
  630. package/umd/src/llm-providers/agent/self-learning/SelfLearningManager.d.ts +67 -0
  631. package/umd/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +61 -0
  632. package/umd/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions.d.ts +31 -0
  633. package/umd/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +24 -0
  634. package/umd/src/llm-providers/anthropic-claude/computeAnthropicClaudeUsage.d.ts +18 -0
  635. package/umd/src/llm-providers/anthropic-claude/computeAnthropicClaudeUsage.test.d.ts +4 -0
  636. package/umd/src/llm-providers/anthropic-claude/createAnthropicClaudeExecutionTools.d.ts +19 -0
  637. package/umd/src/llm-providers/anthropic-claude/playground/playground.d.ts +7 -0
  638. package/umd/src/llm-providers/anthropic-claude/register-configuration.d.ts +14 -0
  639. package/umd/src/llm-providers/anthropic-claude/register-constructor.d.ts +16 -0
  640. package/umd/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +66 -0
  641. package/umd/src/llm-providers/azure-openai/AzureOpenAiExecutionToolsOptions.d.ts +37 -0
  642. package/umd/src/llm-providers/azure-openai/createAzureOpenAiExecutionTools.d.ts +15 -0
  643. package/umd/src/llm-providers/azure-openai/playground/playground.d.ts +6 -0
  644. package/umd/src/llm-providers/azure-openai/register-configuration.d.ts +14 -0
  645. package/umd/src/llm-providers/azure-openai/register-constructor.d.ts +15 -0
  646. package/umd/src/llm-providers/deepseek/DeepseekExecutionToolsOptions.d.ts +9 -0
  647. package/umd/src/llm-providers/deepseek/createDeepseekExecutionTools.d.ts +14 -0
  648. package/umd/src/llm-providers/deepseek/deepseek-models.d.ts +23 -0
  649. package/umd/src/llm-providers/deepseek/register-configuration.d.ts +14 -0
  650. package/umd/src/llm-providers/deepseek/register-constructor.d.ts +15 -0
  651. package/umd/src/llm-providers/google/GoogleExecutionToolsOptions.d.ts +9 -0
  652. package/umd/src/llm-providers/google/createGoogleExecutionTools.d.ts +15 -0
  653. package/umd/src/llm-providers/google/google-models.d.ts +23 -0
  654. package/umd/src/llm-providers/google/register-configuration.d.ts +14 -0
  655. package/umd/src/llm-providers/google/register-constructor.d.ts +15 -0
  656. package/umd/src/llm-providers/mocked/$fakeTextToExpectations.d.ts +16 -0
  657. package/umd/src/llm-providers/mocked/MockedEchoLlmExecutionTools.d.ts +39 -0
  658. package/umd/src/llm-providers/mocked/MockedFackedLlmExecutionTools.d.ts +42 -0
  659. package/umd/src/llm-providers/mocked/test/fakeTextToExpectations.test.d.ts +1 -0
  660. package/umd/src/llm-providers/mocked/test/faked-completion.test.d.ts +1 -0
  661. package/umd/src/llm-providers/mocked/test/joker.test.d.ts +4 -0
  662. package/umd/src/llm-providers/mocked/test/mocked-chat.test.d.ts +5 -0
  663. package/umd/src/llm-providers/mocked/test/mocked-completion.test.d.ts +4 -0
  664. package/umd/src/llm-providers/ollama/OllamaExecutionTools.d.ts +48 -0
  665. package/umd/src/llm-providers/ollama/OllamaExecutionToolsOptions.d.ts +23 -0
  666. package/umd/src/llm-providers/ollama/createOllamaExecutionTools.d.ts +11 -0
  667. package/umd/src/llm-providers/ollama/ollama-models.d.ts +14 -0
  668. package/umd/src/llm-providers/ollama/playground/playground.d.ts +6 -0
  669. package/umd/src/llm-providers/ollama/register-configuration.d.ts +14 -0
  670. package/umd/src/llm-providers/ollama/register-constructor.d.ts +15 -0
  671. package/umd/src/llm-providers/openai/OpenAiAgentKitExecutionTools.d.ts +150 -0
  672. package/umd/src/llm-providers/openai/OpenAiAgentKitExecutionToolsOptions.d.ts +15 -0
  673. package/umd/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +104 -0
  674. package/umd/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +19 -0
  675. package/umd/src/llm-providers/openai/OpenAiCompatibleExecutionTools.d.ts +126 -0
  676. package/umd/src/llm-providers/openai/OpenAiCompatibleExecutionToolsOptions.d.ts +57 -0
  677. package/umd/src/llm-providers/openai/OpenAiExecutionTools.d.ts +42 -0
  678. package/umd/src/llm-providers/openai/OpenAiExecutionToolsOptions.d.ts +9 -0
  679. package/umd/src/llm-providers/openai/OpenAiVectorStoreHandler.d.ts +135 -0
  680. package/umd/src/llm-providers/openai/computeOpenAiUsage.d.ts +18 -0
  681. package/umd/src/llm-providers/openai/computeOpenAiUsage.test.d.ts +4 -0
  682. package/umd/src/llm-providers/openai/createOpenAiAssistantExecutionTools.d.ts +15 -0
  683. package/umd/src/llm-providers/openai/createOpenAiCompatibleExecutionTools.d.ts +74 -0
  684. package/umd/src/llm-providers/openai/createOpenAiExecutionTools.d.ts +17 -0
  685. package/umd/src/llm-providers/openai/openai-models.d.ts +25 -0
  686. package/umd/src/llm-providers/openai/openai-models.test.d.ts +4 -0
  687. package/umd/src/llm-providers/openai/playground/playground.d.ts +6 -0
  688. package/umd/src/llm-providers/openai/register-configuration.d.ts +35 -0
  689. package/umd/src/llm-providers/openai/register-constructor.d.ts +39 -0
  690. package/umd/src/llm-providers/openai/utils/buildToolInvocationScript.d.ts +9 -0
  691. package/umd/src/llm-providers/openai/utils/mapToolsToOpenAi.d.ts +8 -0
  692. package/umd/src/llm-providers/openai/utils/uploadFilesToOpenAi.d.ts +7 -0
  693. package/umd/src/llm-providers/remote/RemoteLlmExecutionTools.d.ts +56 -0
  694. package/umd/src/llm-providers/remote/playground/playground.d.ts +5 -0
  695. package/umd/src/llm-providers/vercel/VercelExecutionToolsOptions.d.ts +23 -0
  696. package/umd/src/llm-providers/vercel/VercelProvider.d.ts +13 -0
  697. package/umd/src/llm-providers/vercel/createExecutionToolsFromVercelProvider.d.ts +8 -0
  698. package/umd/src/llm-providers/vercel/playground/playground.d.ts +6 -0
  699. package/umd/src/migrations/migratePipeline.d.ts +9 -0
  700. package/umd/src/other/templates/getBookTemplates.d.ts +24 -0
  701. package/umd/src/other/templates/getTemplatesPipelineCollection.d.ts +10 -0
  702. package/umd/src/personas/preparePersona.d.ts +18 -0
  703. package/umd/src/pipeline/PipelineInterface/PipelineInterface.d.ts +22 -0
  704. package/umd/src/pipeline/PipelineInterface/constants.d.ts +14 -0
  705. package/umd/src/pipeline/PipelineInterface/getPipelineInterface.d.ts +11 -0
  706. package/umd/src/pipeline/PipelineInterface/isPipelineImplementingInterface.d.ts +27 -0
  707. package/umd/src/pipeline/PipelineInterface/isPipelineInterfacesEqual.d.ts +10 -0
  708. package/umd/src/pipeline/PipelineJson/CommonTaskJson.d.ts +103 -0
  709. package/umd/src/pipeline/PipelineJson/DialogTaskJson.d.ts +13 -0
  710. package/umd/src/pipeline/PipelineJson/Expectations.d.ts +40 -0
  711. package/umd/src/pipeline/PipelineJson/KnowledgePieceJson.d.ts +73 -0
  712. package/umd/src/pipeline/PipelineJson/KnowledgeSourceJson.d.ts +44 -0
  713. package/umd/src/pipeline/PipelineJson/ParameterJson.d.ts +98 -0
  714. package/umd/src/pipeline/PipelineJson/PersonaJson.d.ts +47 -0
  715. package/umd/src/pipeline/PipelineJson/PipelineJson.d.ts +113 -0
  716. package/umd/src/pipeline/PipelineJson/PreparationJson.d.ts +22 -0
  717. package/umd/src/pipeline/PipelineJson/PromptTaskJson.d.ts +26 -0
  718. package/umd/src/pipeline/PipelineJson/ScriptTaskJson.d.ts +20 -0
  719. package/umd/src/pipeline/PipelineJson/SimpleTaskJson.d.ts +13 -0
  720. package/umd/src/pipeline/PipelineJson/TaskJson.d.ts +11 -0
  721. package/umd/src/pipeline/PipelineString.d.ts +11 -0
  722. package/umd/src/pipeline/book-notation.d.ts +20 -0
  723. package/umd/src/pipeline/isValidPipelineString.d.ts +13 -0
  724. package/umd/src/pipeline/isValidPipelineString.test.d.ts +4 -0
  725. package/umd/src/pipeline/prompt-notation/helpers/ParameterEscaping.d.ts +51 -0
  726. package/umd/src/pipeline/prompt-notation/helpers/ParameterNaming.d.ts +16 -0
  727. package/umd/src/pipeline/prompt-notation/helpers/ParameterSection.d.ts +34 -0
  728. package/umd/src/pipeline/prompt-notation.d.ts +56 -0
  729. package/umd/src/pipeline/prompt-notation.test.d.ts +4 -0
  730. package/umd/src/pipeline/validatePipelineString.d.ts +16 -0
  731. package/umd/src/playground/permanent/_boilerplate.d.ts +5 -0
  732. package/umd/src/playground/permanent/agent-with-browser-playground.d.ts +5 -0
  733. package/umd/src/playground/permanent/error-handling-playground.d.ts +5 -0
  734. package/umd/src/playground/playground.d.ts +5 -0
  735. package/umd/src/postprocessing/utils/extractBlock.d.ts +16 -0
  736. package/umd/src/postprocessing/utils/extractJsonBlock.d.ts +25 -0
  737. package/umd/src/postprocessing/utils/extractJsonBlock.test.d.ts +1 -0
  738. package/umd/src/prepare/PrepareAndScrapeOptions.d.ts +52 -0
  739. package/umd/src/prepare/isPipelinePrepared.d.ts +18 -0
  740. package/umd/src/prepare/isPipelinePrepared.test.d.ts +1 -0
  741. package/umd/src/prepare/preparePipeline.d.ts +22 -0
  742. package/umd/src/prepare/preparePipelineOnRemoteServer.d.ts +17 -0
  743. package/umd/src/prepare/prepareTasks.d.ts +36 -0
  744. package/umd/src/prepare/unpreparePipeline.d.ts +13 -0
  745. package/umd/src/remote-server/RemoteServer.d.ts +23 -0
  746. package/umd/src/remote-server/createRemoteClient.d.ts +10 -0
  747. package/umd/src/remote-server/openapi-types.d.ts +626 -0
  748. package/umd/src/remote-server/openapi.d.ts +581 -0
  749. package/umd/src/remote-server/socket-types/_common/PromptbookServer_Error.d.ts +7 -0
  750. package/umd/src/remote-server/socket-types/_subtypes/Identification.d.ts +59 -0
  751. package/umd/src/remote-server/socket-types/_subtypes/identificationToPromptbookToken.d.ts +11 -0
  752. package/umd/src/remote-server/socket-types/_subtypes/promptbookTokenToIdentification.d.ts +10 -0
  753. package/umd/src/remote-server/socket-types/listModels/PromptbookServer_ListModels_Request.d.ts +17 -0
  754. package/umd/src/remote-server/socket-types/listModels/PromptbookServer_ListModels_Response.d.ts +17 -0
  755. package/umd/src/remote-server/socket-types/prepare/PromptbookServer_PreparePipeline_Request.d.ts +17 -0
  756. package/umd/src/remote-server/socket-types/prepare/PromptbookServer_PreparePipeline_Response.d.ts +12 -0
  757. package/umd/src/remote-server/socket-types/prompt/PromptbookServer_Prompt_Request.d.ts +17 -0
  758. package/umd/src/remote-server/socket-types/prompt/PromptbookServer_Prompt_Response.d.ts +12 -0
  759. package/umd/src/remote-server/startAgentServer.d.ts +26 -0
  760. package/umd/src/remote-server/startRemoteServer.d.ts +28 -0
  761. package/umd/src/remote-server/types/RemoteClientOptions.d.ts +24 -0
  762. package/umd/src/remote-server/types/RemoteServerOptions.d.ts +165 -0
  763. package/umd/src/remote-server/ui/ServerApp.d.ts +17 -0
  764. package/umd/src/remote-server/ui/renderServerIndexHtml.d.ts +7 -0
  765. package/umd/src/remote-server/ui/types.d.ts +16 -0
  766. package/umd/src/scrapers/_boilerplate/BoilerplateScraper.d.ts +43 -0
  767. package/umd/src/scrapers/_boilerplate/createBoilerplateScraper.d.ts +9 -0
  768. package/umd/src/scrapers/_boilerplate/playground/boilerplate-scraper-playground.d.ts +5 -0
  769. package/umd/src/scrapers/_boilerplate/register-constructor.d.ts +15 -0
  770. package/umd/src/scrapers/_boilerplate/register-metadata.d.ts +20 -0
  771. package/umd/src/scrapers/_common/Converter.d.ts +25 -0
  772. package/umd/src/scrapers/_common/Scraper.d.ts +60 -0
  773. package/umd/src/scrapers/_common/ScraperIntermediateSource.d.ts +16 -0
  774. package/umd/src/scrapers/_common/prepareKnowledgePieces.d.ts +19 -0
  775. package/umd/src/scrapers/_common/prepareKnowledgePieces.test.d.ts +1 -0
  776. package/umd/src/scrapers/_common/register/$provideFilesystemForNode.d.ts +13 -0
  777. package/umd/src/scrapers/_common/register/$provideScrapersForBrowser.d.ts +15 -0
  778. package/umd/src/scrapers/_common/register/$provideScrapersForNode.d.ts +14 -0
  779. package/umd/src/scrapers/_common/register/$provideScriptingForNode.d.ts +12 -0
  780. package/umd/src/scrapers/_common/register/$registeredScrapersMessage.d.ts +13 -0
  781. package/umd/src/scrapers/_common/register/$scrapersMetadataRegister.d.ts +13 -0
  782. package/umd/src/scrapers/_common/register/$scrapersRegister.d.ts +14 -0
  783. package/umd/src/scrapers/_common/register/ScraperAndConverterMetadata.d.ts +44 -0
  784. package/umd/src/scrapers/_common/register/ScraperConstructor.d.ts +13 -0
  785. package/umd/src/scrapers/_common/utils/getScraperIntermediateSource.d.ts +35 -0
  786. package/umd/src/scrapers/_common/utils/getScraperIntermediateSource.test.d.ts +4 -0
  787. package/umd/src/scrapers/_common/utils/makeKnowledgeSourceHandler.d.ts +13 -0
  788. package/umd/src/scrapers/_common/utils/promptbookFetch.d.ts +10 -0
  789. package/umd/src/scrapers/_common/utils/promptbookFetch.test.d.ts +1 -0
  790. package/umd/src/scrapers/document/DocumentScraper.d.ts +43 -0
  791. package/umd/src/scrapers/document/DocumentScraper.test.d.ts +4 -0
  792. package/umd/src/scrapers/document/createDocumentScraper.d.ts +9 -0
  793. package/umd/src/scrapers/document/playground/document-scraper-playground.d.ts +5 -0
  794. package/umd/src/scrapers/document/register-constructor.d.ts +15 -0
  795. package/umd/src/scrapers/document/register-metadata.d.ts +20 -0
  796. package/umd/src/scrapers/document-legacy/LegacyDocumentScraper.d.ts +43 -0
  797. package/umd/src/scrapers/document-legacy/LegacyDocumentScraper.test.d.ts +4 -0
  798. package/umd/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +10 -0
  799. package/umd/src/scrapers/document-legacy/playground/legacy-document-scraper-playground.d.ts +5 -0
  800. package/umd/src/scrapers/document-legacy/register-constructor.d.ts +15 -0
  801. package/umd/src/scrapers/document-legacy/register-metadata.d.ts +20 -0
  802. package/umd/src/scrapers/markdown/MarkdownScraper.d.ts +28 -0
  803. package/umd/src/scrapers/markdown/MarkdownScraper.test.d.ts +4 -0
  804. package/umd/src/scrapers/markdown/createMarkdownScraper.d.ts +9 -0
  805. package/umd/src/scrapers/markdown/playground/markdown-scraper-playground.d.ts +5 -0
  806. package/umd/src/scrapers/markdown/register-constructor.d.ts +15 -0
  807. package/umd/src/scrapers/markdown/register-metadata.d.ts +20 -0
  808. package/umd/src/scrapers/markitdown/MarkitdownScraper.d.ts +50 -0
  809. package/umd/src/scrapers/markitdown/createMarkitdownScraper.d.ts +11 -0
  810. package/umd/src/scrapers/markitdown/playground/markitdown-scraper-playground.d.ts +5 -0
  811. package/umd/src/scrapers/markitdown/register-constructor.d.ts +17 -0
  812. package/umd/src/scrapers/markitdown/register-metadata.d.ts +20 -0
  813. package/umd/src/scrapers/pdf/PdfScraper.d.ts +41 -0
  814. package/umd/src/scrapers/pdf/createPdfScraper.d.ts +10 -0
  815. package/umd/src/scrapers/pdf/playground/pdf-scraper-playground.d.ts +5 -0
  816. package/umd/src/scrapers/pdf/register-constructor.d.ts +15 -0
  817. package/umd/src/scrapers/pdf/register-metadata.d.ts +20 -0
  818. package/umd/src/scrapers/website/WebsiteScraper.d.ts +50 -0
  819. package/umd/src/scrapers/website/createWebsiteScraper.d.ts +10 -0
  820. package/umd/src/scrapers/website/playground/website-scraper-playground.d.ts +5 -0
  821. package/umd/src/scrapers/website/register-constructor.d.ts +15 -0
  822. package/umd/src/scrapers/website/register-metadata.d.ts +20 -0
  823. package/umd/src/scrapers/website/utils/createShowdownConverter.d.ts +7 -0
  824. package/umd/src/scrapers/website/utils/createShowdownConverter.test.d.ts +1 -0
  825. package/umd/src/scripting/_test/custom-function-async.test.ts.test.d.ts +1 -0
  826. package/umd/src/scripting/_test/custom-function-missing.test.d.ts +1 -0
  827. package/umd/src/scripting/_test/custom-function-with-dependencies.test.d.ts +1 -0
  828. package/umd/src/scripting/_test/custom-function.test.d.ts +1 -0
  829. package/umd/src/scripting/_test/postprocessing.test.d.ts +1 -0
  830. package/umd/src/scripting/_test/script-execution-errors.test.d.ts +1 -0
  831. package/umd/src/scripting/_test/script-execution-tools.test.d.ts +1 -0
  832. package/umd/src/scripting/javascript/JavascriptEvalExecutionTools.d.ts +22 -0
  833. package/umd/src/scripting/javascript/JavascriptEvalExecutionTools.test.d.ts +4 -0
  834. package/umd/src/scripting/javascript/JavascriptExecutionTools.d.ts +8 -0
  835. package/umd/src/scripting/javascript/JavascriptExecutionToolsOptions.d.ts +31 -0
  836. package/umd/src/scripting/javascript/postprocessing-functions.d.ts +56 -0
  837. package/umd/src/scripting/javascript/utils/extractVariablesFromJavascript.d.ts +14 -0
  838. package/umd/src/scripting/javascript/utils/extractVariablesFromJavascript.test.d.ts +1 -0
  839. package/umd/src/scripting/javascript/utils/extractVariablesFromScript.test.d.ts +1 -0
  840. package/umd/src/scripting/python/PythonExecutionTools.d.ts +18 -0
  841. package/umd/src/scripting/typescript/TypescriptExecutionTools.d.ts +18 -0
  842. package/umd/src/search-engines/SearchEngine.d.ts +9 -0
  843. package/umd/src/search-engines/SearchResult.d.ts +18 -0
  844. package/umd/src/search-engines/_index.d.ts +6 -0
  845. package/umd/src/search-engines/bing/BingSearchEngine.d.ts +15 -0
  846. package/umd/src/search-engines/dummy/DummySearchEngine.d.ts +15 -0
  847. package/umd/src/search-engines/google/GoogleSearchEngine.d.ts +18 -0
  848. package/umd/src/search-engines/serp/SerpSearchEngine.d.ts +15 -0
  849. package/umd/src/speech-recognition/BrowserSpeechRecognition.d.ts +21 -0
  850. package/umd/src/speech-recognition/OpenAiSpeechRecognition.d.ts +35 -0
  851. package/umd/src/storage/_common/PromptbookStorage.d.ts +25 -0
  852. package/umd/src/storage/_common/PromptbookStorage.test-type.d.ts +5 -0
  853. package/umd/src/storage/blackhole/BlackholeStorage.d.ts +33 -0
  854. package/umd/src/storage/env-storage/$EnvStorage.d.ts +41 -0
  855. package/umd/src/storage/file-cache-storage/FileCacheStorage.d.ts +40 -0
  856. package/umd/src/storage/file-cache-storage/FileCacheStorageOptions.d.ts +12 -0
  857. package/umd/src/storage/file-cache-storage/utils/nameToSubfolderPath.d.ts +8 -0
  858. package/umd/src/storage/file-cache-storage/utils/nameToSubfolderPath.test.d.ts +1 -0
  859. package/umd/src/storage/local-storage/getIndexedDbStorage.d.ts +11 -0
  860. package/umd/src/storage/local-storage/getLocalStorage.d.ts +10 -0
  861. package/umd/src/storage/local-storage/getSessionStorage.d.ts +10 -0
  862. package/umd/src/storage/local-storage/utils/IndexedDbStorageOptions.d.ts +14 -0
  863. package/umd/src/storage/local-storage/utils/makePromptbookStorageFromIndexedDb.d.ts +8 -0
  864. package/umd/src/storage/local-storage/utils/makePromptbookStorageFromWebStorage.d.ts +12 -0
  865. package/umd/src/storage/memory/MemoryStorage.d.ts +33 -0
  866. package/umd/src/storage/utils/PrefixStorage.d.ts +25 -0
  867. package/umd/src/transpilers/_common/BookTranspiler.d.ts +33 -0
  868. package/umd/src/transpilers/_common/BookTranspilerOptions.d.ts +18 -0
  869. package/umd/src/transpilers/_common/register/$bookTranspilersRegister.d.ts +15 -0
  870. package/umd/src/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.d.ts +16 -0
  871. package/umd/src/transpilers/formatted-book-in-markdown/register.d.ts +15 -0
  872. package/umd/src/transpilers/openai-sdk/OpenAiSdkTranspiler.d.ts +16 -0
  873. package/umd/src/transpilers/openai-sdk/OpenAiSdkTranspiler.test.d.ts +1 -0
  874. package/umd/src/transpilers/openai-sdk/playground/playground.d.ts +5 -0
  875. package/umd/src/transpilers/openai-sdk/register.d.ts +15 -0
  876. package/umd/src/types/Arrayable.d.ts +11 -0
  877. package/umd/src/types/IntermediateFilesStrategy.d.ts +8 -0
  878. package/umd/src/types/LlmCall.d.ts +20 -0
  879. package/umd/src/types/LlmToolDefinition.d.ts +28 -0
  880. package/umd/src/types/Message.d.ts +49 -0
  881. package/umd/src/types/ModelRequirements.d.ts +158 -0
  882. package/umd/src/types/ModelVariant.d.ts +15 -0
  883. package/umd/src/types/NonEmptyArray.d.ts +8 -0
  884. package/umd/src/types/Prompt.d.ts +153 -0
  885. package/umd/src/types/ScriptLanguage.d.ts +13 -0
  886. package/umd/src/types/SectionType.d.ts +21 -0
  887. package/umd/src/types/SpeechRecognition.d.ts +58 -0
  888. package/umd/src/types/TaskType.d.ts +15 -0
  889. package/umd/src/types/ToolCall.d.ts +116 -0
  890. package/umd/src/types/Updatable.d.ts +19 -0
  891. package/umd/src/types/typeAliasEmoji.d.ts +12 -0
  892. package/umd/src/types/typeAliases.d.ts +747 -0
  893. package/umd/src/utils/DEFAULT_THINKING_MESSAGES.d.ts +8 -0
  894. package/umd/src/utils/agents/resolveAgentAvatarImageUrl.d.ts +29 -0
  895. package/umd/src/utils/clientVersion.d.ts +65 -0
  896. package/umd/src/utils/color/$randomColor.d.ts +12 -0
  897. package/umd/src/utils/color/Color.d.ts +158 -0
  898. package/umd/src/utils/color/Color.test.d.ts +1 -0
  899. package/umd/src/utils/color/css-colors.d.ts +160 -0
  900. package/umd/src/utils/color/internal-utils/checkChannelValue.d.ts +11 -0
  901. package/umd/src/utils/color/internal-utils/hslToRgb.d.ts +17 -0
  902. package/umd/src/utils/color/internal-utils/rgbToHsl.d.ts +17 -0
  903. package/umd/src/utils/color/operators/ColorTransformer.d.ts +5 -0
  904. package/umd/src/utils/color/operators/darken.d.ts +10 -0
  905. package/umd/src/utils/color/operators/furthest.d.ts +16 -0
  906. package/umd/src/utils/color/operators/grayscale.d.ts +10 -0
  907. package/umd/src/utils/color/operators/lighten.d.ts +13 -0
  908. package/umd/src/utils/color/operators/mixWithColor.d.ts +12 -0
  909. package/umd/src/utils/color/operators/nearest.d.ts +10 -0
  910. package/umd/src/utils/color/operators/negative.d.ts +7 -0
  911. package/umd/src/utils/color/operators/negativeLightness.d.ts +7 -0
  912. package/umd/src/utils/color/operators/saturate.d.ts +13 -0
  913. package/umd/src/utils/color/operators/withAlpha.d.ts +9 -0
  914. package/umd/src/utils/color/parsers/ColorChannelSet.d.ts +11 -0
  915. package/umd/src/utils/color/parsers/parseHexColor.d.ts +11 -0
  916. package/umd/src/utils/color/parsers/parseHslColor.d.ts +11 -0
  917. package/umd/src/utils/color/parsers/parseRgbColor.d.ts +20 -0
  918. package/umd/src/utils/color/utils/areColorsEqual.d.ts +14 -0
  919. package/umd/src/utils/color/utils/colorDistance.d.ts +21 -0
  920. package/umd/src/utils/color/utils/colorHue.d.ts +11 -0
  921. package/umd/src/utils/color/utils/colorHueDistance.d.ts +11 -0
  922. package/umd/src/utils/color/utils/colorHueDistance.test.d.ts +1 -0
  923. package/umd/src/utils/color/utils/colorLuminance.d.ts +9 -0
  924. package/umd/src/utils/color/utils/colorSatulightion.d.ts +7 -0
  925. package/umd/src/utils/color/utils/colorSaturation.d.ts +9 -0
  926. package/umd/src/utils/color/utils/colorToDataUrl.d.ts +11 -0
  927. package/umd/src/utils/color/utils/mixColors.d.ts +11 -0
  928. package/umd/src/utils/editable/edit-pipeline-string/addPipelineCommand.d.ts +17 -0
  929. package/umd/src/utils/editable/edit-pipeline-string/addPipelineCommand.test.d.ts +1 -0
  930. package/umd/src/utils/editable/edit-pipeline-string/deflatePipeline.d.ts +13 -0
  931. package/umd/src/utils/editable/edit-pipeline-string/deflatePipeline.test.d.ts +1 -0
  932. package/umd/src/utils/editable/edit-pipeline-string/removePipelineCommand.d.ts +22 -0
  933. package/umd/src/utils/editable/edit-pipeline-string/removePipelineCommand.test.d.ts +1 -0
  934. package/umd/src/utils/editable/types/PipelineEditableSerialized.d.ts +27 -0
  935. package/umd/src/utils/editable/utils/isFlatPipeline.d.ts +8 -0
  936. package/umd/src/utils/editable/utils/isFlatPipeline.test.d.ts +1 -0
  937. package/umd/src/utils/editable/utils/renamePipelineParameter.d.ts +29 -0
  938. package/umd/src/utils/editable/utils/renamePipelineParameter.test.d.ts +1 -0
  939. package/umd/src/utils/editable/utils/stringifyPipelineJson.d.ts +16 -0
  940. package/umd/src/utils/environment/$detectRuntimeEnvironment.d.ts +16 -0
  941. package/umd/src/utils/environment/$getGlobalScope.d.ts +10 -0
  942. package/umd/src/utils/environment/$isRunningInBrowser.d.ts +11 -0
  943. package/umd/src/utils/environment/$isRunningInJest.d.ts +11 -0
  944. package/umd/src/utils/environment/$isRunningInNode.d.ts +11 -0
  945. package/umd/src/utils/environment/$isRunningInWebWorker.d.ts +11 -0
  946. package/umd/src/utils/execCommand/$execCommand.d.ts +17 -0
  947. package/umd/src/utils/execCommand/$execCommandNormalizeOptions.d.ts +11 -0
  948. package/umd/src/utils/execCommand/$execCommands.d.ts +19 -0
  949. package/umd/src/utils/execCommand/ExecCommandOptions.d.ts +51 -0
  950. package/umd/src/utils/execCommand/execCommand.test.d.ts +1 -0
  951. package/umd/src/utils/execCommand/execCommandNormalizeOptions.test.d.ts +1 -0
  952. package/umd/src/utils/expectation-counters/constants.d.ts +16 -0
  953. package/umd/src/utils/expectation-counters/countCharacters.d.ts +11 -0
  954. package/umd/src/utils/expectation-counters/countCharacters.test.d.ts +1 -0
  955. package/umd/src/utils/expectation-counters/countLines.d.ts +13 -0
  956. package/umd/src/utils/expectation-counters/countLines.test.d.ts +1 -0
  957. package/umd/src/utils/expectation-counters/countPages.d.ts +13 -0
  958. package/umd/src/utils/expectation-counters/countPages.test.d.ts +1 -0
  959. package/umd/src/utils/expectation-counters/countParagraphs.d.ts +11 -0
  960. package/umd/src/utils/expectation-counters/countParagraphs.test.d.ts +1 -0
  961. package/umd/src/utils/expectation-counters/countSentences.d.ts +17 -0
  962. package/umd/src/utils/expectation-counters/countSentences.test.d.ts +1 -0
  963. package/umd/src/utils/expectation-counters/countWords.d.ts +12 -0
  964. package/umd/src/utils/expectation-counters/countWords.test.d.ts +1 -0
  965. package/umd/src/utils/expectation-counters/index.d.ts +12 -0
  966. package/umd/src/utils/files/$induceBookDownload.d.ts +13 -0
  967. package/umd/src/utils/files/$induceFileDownload.d.ts +13 -0
  968. package/umd/src/utils/files/ObjectUrl.d.ts +46 -0
  969. package/umd/src/utils/files/extensionToMimeType.d.ts +8 -0
  970. package/umd/src/utils/files/extensionToMimeType.test.d.ts +1 -0
  971. package/umd/src/utils/files/getFileExtension.d.ts +8 -0
  972. package/umd/src/utils/files/getFileExtension.test.d.ts +1 -0
  973. package/umd/src/utils/files/isDirectoryExisting.d.ts +14 -0
  974. package/umd/src/utils/files/isDirectoryExisting.test.d.ts +1 -0
  975. package/umd/src/utils/files/isExecutable.d.ts +11 -0
  976. package/umd/src/utils/files/isFileExisting.d.ts +13 -0
  977. package/umd/src/utils/files/isFileExisting.test.d.ts +1 -0
  978. package/umd/src/utils/files/listAllFiles.d.ts +16 -0
  979. package/umd/src/utils/files/listAllFiles.test.d.ts +1 -0
  980. package/umd/src/utils/files/mimeTypeToExtension.d.ts +10 -0
  981. package/umd/src/utils/files/mimeTypeToExtension.test.d.ts +1 -0
  982. package/umd/src/utils/knowledge/inlineKnowledgeSource.d.ts +42 -0
  983. package/umd/src/utils/knowledge/inlineKnowledgeSource.test.d.ts +1 -0
  984. package/umd/src/utils/knowledge/simplifyKnowledgeLabel.d.ts +20 -0
  985. package/umd/src/utils/knowledge/simplifyKnowledgeLabel.test.d.ts +1 -0
  986. package/umd/src/utils/language/getBrowserPreferredSpeechRecognitionLanguage.d.ts +35 -0
  987. package/umd/src/utils/linguistic-hash/LinguisticHashLanguage.d.ts +41 -0
  988. package/umd/src/utils/linguistic-hash/linguisticHash.d.ts +14 -0
  989. package/umd/src/utils/linguistic-hash/linguisticHash.test.d.ts +1 -0
  990. package/umd/src/utils/linguistic-hash/linguisticHashTypes.d.ts +19 -0
  991. package/umd/src/utils/linguistic-hash/linguisticHashWordCount.d.ts +31 -0
  992. package/umd/src/utils/linguistic-hash/linguisticHashWordSelection.d.ts +22 -0
  993. package/umd/src/utils/linguistic-hash/linguisticHashWords.cs.d.ts +10 -0
  994. package/umd/src/utils/linguistic-hash/linguisticHashWords.en.d.ts +10 -0
  995. package/umd/src/utils/markdown/addAutoGeneratedSection.d.ts +14 -0
  996. package/umd/src/utils/markdown/addAutoGeneratedSection.test.d.ts +1 -0
  997. package/umd/src/utils/markdown/createMarkdownChart.d.ts +38 -0
  998. package/umd/src/utils/markdown/createMarkdownChart.test.d.ts +1 -0
  999. package/umd/src/utils/markdown/createMarkdownTable.d.ts +11 -0
  1000. package/umd/src/utils/markdown/createMarkdownTable.test.d.ts +1 -0
  1001. package/umd/src/utils/markdown/escapeMarkdownBlock.d.ts +13 -0
  1002. package/umd/src/utils/markdown/escapeMarkdownBlock.test.d.ts +1 -0
  1003. package/umd/src/utils/markdown/extractAllBlocksFromMarkdown-real.test.d.ts +1 -0
  1004. package/umd/src/utils/markdown/extractAllBlocksFromMarkdown.d.ts +36 -0
  1005. package/umd/src/utils/markdown/extractAllBlocksFromMarkdown.test.d.ts +1 -0
  1006. package/umd/src/utils/markdown/extractAllListItemsFromMarkdown.d.ts +14 -0
  1007. package/umd/src/utils/markdown/extractAllListItemsFromMarkdown.test.d.ts +1 -0
  1008. package/umd/src/utils/markdown/extractOneBlockFromMarkdown.d.ts +22 -0
  1009. package/umd/src/utils/markdown/extractOneBlockFromMarkdown.test.d.ts +1 -0
  1010. package/umd/src/utils/markdown/flattenMarkdown.d.ts +17 -0
  1011. package/umd/src/utils/markdown/flattenMarkdown.test.d.ts +1 -0
  1012. package/umd/src/utils/markdown/humanizeAiText.d.ts +13 -0
  1013. package/umd/src/utils/markdown/humanizeAiText.test.d.ts +1 -0
  1014. package/umd/src/utils/markdown/humanizeAiTextEllipsis.d.ts +13 -0
  1015. package/umd/src/utils/markdown/humanizeAiTextEmdashed.d.ts +13 -0
  1016. package/umd/src/utils/markdown/humanizeAiTextQuotes.d.ts +13 -0
  1017. package/umd/src/utils/markdown/humanizeAiTextSources.d.ts +13 -0
  1018. package/umd/src/utils/markdown/humanizeAiTextWhitespace.d.ts +13 -0
  1019. package/umd/src/utils/markdown/parseMarkdownSection.d.ts +32 -0
  1020. package/umd/src/utils/markdown/parseMarkdownSection.test.d.ts +1 -0
  1021. package/umd/src/utils/markdown/prettifyMarkdown.d.ts +19 -0
  1022. package/umd/src/utils/markdown/promptbookifyAiText.d.ts +12 -0
  1023. package/umd/src/utils/markdown/promptbookifyAiText.test.d.ts +1 -0
  1024. package/umd/src/utils/markdown/removeMarkdownComments.d.ts +10 -0
  1025. package/umd/src/utils/markdown/removeMarkdownComments.test.d.ts +1 -0
  1026. package/umd/src/utils/markdown/removeMarkdownFormatting.d.ts +9 -0
  1027. package/umd/src/utils/markdown/removeMarkdownFormatting.test.d.ts +1 -0
  1028. package/umd/src/utils/markdown/removeMarkdownLinks.d.ts +11 -0
  1029. package/umd/src/utils/markdown/removeMarkdownLinks.test.d.ts +4 -0
  1030. package/umd/src/utils/markdown/splitMarkdownIntoSections.d.ts +14 -0
  1031. package/umd/src/utils/markdown/splitMarkdownIntoSections.test.d.ts +1 -0
  1032. package/umd/src/utils/markdown/trimCodeBlock.d.ts +10 -0
  1033. package/umd/src/utils/markdown/trimCodeBlock.test.d.ts +1 -0
  1034. package/umd/src/utils/markdown/trimEndOfCodeBlock.d.ts +9 -0
  1035. package/umd/src/utils/markdown/trimEndOfCodeBlock.test.d.ts +1 -0
  1036. package/umd/src/utils/misc/$Register.d.ts +40 -0
  1037. package/umd/src/utils/misc/$getCurrentDate.d.ts +10 -0
  1038. package/umd/src/utils/misc/FromtoItems.d.ts +19 -0
  1039. package/umd/src/utils/misc/aboutPromptbookInformation.d.ts +27 -0
  1040. package/umd/src/utils/misc/arrayableToArray.d.ts +11 -0
  1041. package/umd/src/utils/misc/arrayableToArray.test.d.ts +1 -0
  1042. package/umd/src/utils/misc/computeHash.d.ts +11 -0
  1043. package/umd/src/utils/misc/computeHash.test.d.ts +1 -0
  1044. package/umd/src/utils/misc/debounce.d.ts +5 -0
  1045. package/umd/src/utils/misc/emojis.d.ts +24 -0
  1046. package/umd/src/utils/misc/injectCssModuleIntoShadowRoot.d.ts +21 -0
  1047. package/umd/src/utils/misc/parseNumber.d.ts +17 -0
  1048. package/umd/src/utils/misc/parseNumber.test.d.ts +1 -0
  1049. package/umd/src/utils/misc/xAboutPromptbookInformation.d.ts +13 -0
  1050. package/umd/src/utils/normalization/DIACRITIC_VARIANTS_LETTERS.d.ts +12 -0
  1051. package/umd/src/utils/normalization/IKeywords.d.ts +21 -0
  1052. package/umd/src/utils/normalization/capitalize.d.ts +8 -0
  1053. package/umd/src/utils/normalization/capitalize.test.d.ts +1 -0
  1054. package/umd/src/utils/normalization/constructImageFilename.d.ts +18 -0
  1055. package/umd/src/utils/normalization/constructImageFilename.test.d.ts +1 -0
  1056. package/umd/src/utils/normalization/decapitalize.d.ts +8 -0
  1057. package/umd/src/utils/normalization/decapitalize.test.d.ts +1 -0
  1058. package/umd/src/utils/normalization/isValidKeyword.d.ts +10 -0
  1059. package/umd/src/utils/normalization/isValidKeyword.test.d.ts +1 -0
  1060. package/umd/src/utils/normalization/nameToUriPart.d.ts +9 -0
  1061. package/umd/src/utils/normalization/nameToUriPart.test.d.ts +1 -0
  1062. package/umd/src/utils/normalization/nameToUriParts.d.ts +9 -0
  1063. package/umd/src/utils/normalization/nameToUriParts.test.d.ts +1 -0
  1064. package/umd/src/utils/normalization/normalize-to-kebab-case.d.ts +23 -0
  1065. package/umd/src/utils/normalization/normalize-to-kebab-case.test.d.ts +1 -0
  1066. package/umd/src/utils/normalization/normalizeMessageText.d.ts +9 -0
  1067. package/umd/src/utils/normalization/normalizeMessageText.test.d.ts +1 -0
  1068. package/umd/src/utils/normalization/normalizeTo_PascalCase.d.ts +20 -0
  1069. package/umd/src/utils/normalization/normalizeTo_PascalCase.test.d.ts +1 -0
  1070. package/umd/src/utils/normalization/normalizeTo_SCREAMING_CASE.d.ts +28 -0
  1071. package/umd/src/utils/normalization/normalizeTo_SCREAMING_CASE.test.d.ts +1 -0
  1072. package/umd/src/utils/normalization/normalizeTo_camelCase.d.ts +24 -0
  1073. package/umd/src/utils/normalization/normalizeTo_camelCase.test.d.ts +1 -0
  1074. package/umd/src/utils/normalization/normalizeTo_snake_case.d.ts +19 -0
  1075. package/umd/src/utils/normalization/normalizeTo_snake_case.test.d.ts +1 -0
  1076. package/umd/src/utils/normalization/normalizeWhitespaces.d.ts +8 -0
  1077. package/umd/src/utils/normalization/normalizeWhitespaces.test.d.ts +1 -0
  1078. package/umd/src/utils/normalization/orderJson.d.ts +21 -0
  1079. package/umd/src/utils/normalization/orderJson.test.d.ts +4 -0
  1080. package/umd/src/utils/normalization/parseKeywords.d.ts +16 -0
  1081. package/umd/src/utils/normalization/parseKeywords.test.d.ts +1 -0
  1082. package/umd/src/utils/normalization/parseKeywordsFromString.d.ts +9 -0
  1083. package/umd/src/utils/normalization/parseKeywordsFromString.test.d.ts +1 -0
  1084. package/umd/src/utils/normalization/removeDiacritics.d.ts +13 -0
  1085. package/umd/src/utils/normalization/removeDiacritics.test.d.ts +1 -0
  1086. package/umd/src/utils/normalization/removeEmojis.d.ts +10 -0
  1087. package/umd/src/utils/normalization/removeEmojis.test.d.ts +1 -0
  1088. package/umd/src/utils/normalization/removeQuotes.d.ts +15 -0
  1089. package/umd/src/utils/normalization/removeQuotes.test.d.ts +1 -0
  1090. package/umd/src/utils/normalization/searchKeywords.d.ts +13 -0
  1091. package/umd/src/utils/normalization/searchKeywords.test.d.ts +1 -0
  1092. package/umd/src/utils/normalization/suffixUrl.d.ts +7 -0
  1093. package/umd/src/utils/normalization/suffixUrl.test.d.ts +1 -0
  1094. package/umd/src/utils/normalization/titleToName.d.ts +11 -0
  1095. package/umd/src/utils/normalization/titleToName.test.d.ts +1 -0
  1096. package/umd/src/utils/normalization/unwrapResult.d.ts +37 -0
  1097. package/umd/src/utils/normalization/unwrapResult.test.d.ts +1 -0
  1098. package/umd/src/utils/organization/$sideEffect.d.ts +9 -0
  1099. package/umd/src/utils/organization/$side_effect.d.ts +7 -0
  1100. package/umd/src/utils/organization/TODO_USE.d.ts +12 -0
  1101. package/umd/src/utils/organization/TODO_any.d.ts +6 -0
  1102. package/umd/src/utils/organization/TODO_narrow.d.ts +6 -0
  1103. package/umd/src/utils/organization/TODO_object.d.ts +6 -0
  1104. package/umd/src/utils/organization/TODO_remove_as.d.ts +6 -0
  1105. package/umd/src/utils/organization/TODO_string.d.ts +6 -0
  1106. package/umd/src/utils/organization/TODO_unknown.d.ts +6 -0
  1107. package/umd/src/utils/organization/___and___.d.ts +7 -0
  1108. package/umd/src/utils/organization/___or___.d.ts +6 -0
  1109. package/umd/src/utils/organization/empty_object.d.ts +10 -0
  1110. package/umd/src/utils/organization/just.d.ts +14 -0
  1111. package/umd/src/utils/organization/just_empty_object.d.ts +12 -0
  1112. package/umd/src/utils/organization/keepImported.d.ts +9 -0
  1113. package/umd/src/utils/organization/keepTypeImported.d.ts +8 -0
  1114. package/umd/src/utils/organization/keepUnused.d.ts +16 -0
  1115. package/umd/src/utils/organization/preserve.d.ts +21 -0
  1116. package/umd/src/utils/organization/really_any.d.ts +13 -0
  1117. package/umd/src/utils/organization/really_unknown.d.ts +6 -0
  1118. package/umd/src/utils/organization/spaceTrim.d.ts +11 -0
  1119. package/umd/src/utils/parameters/extractParameterNames.d.ts +10 -0
  1120. package/umd/src/utils/parameters/extractParameterNames.test.d.ts +1 -0
  1121. package/umd/src/utils/parameters/mapAvailableToExpectedParameters.d.ts +27 -0
  1122. package/umd/src/utils/parameters/mapAvailableToExpectedParameters.test.d.ts +1 -0
  1123. package/umd/src/utils/parameters/numberToString.d.ts +7 -0
  1124. package/umd/src/utils/parameters/numberToString.test.d.ts +1 -0
  1125. package/umd/src/utils/parameters/templateParameters.d.ts +15 -0
  1126. package/umd/src/utils/parameters/templateParameters.test.d.ts +1 -0
  1127. package/umd/src/utils/parameters/valueToString.d.ts +17 -0
  1128. package/umd/src/utils/parameters/valueToString.test.d.ts +1 -0
  1129. package/umd/src/utils/random/$generateBookBoilerplate.d.ts +35 -0
  1130. package/umd/src/utils/random/$randomAgentPersona.d.ts +15 -0
  1131. package/umd/src/utils/random/$randomAgentRule.d.ts +14 -0
  1132. package/umd/src/utils/random/$randomBase58.d.ts +12 -0
  1133. package/umd/src/utils/random/$randomFullnameWithColor.d.ts +13 -0
  1134. package/umd/src/utils/random/$randomItem.d.ts +9 -0
  1135. package/umd/src/utils/random/$randomSeed.d.ts +13 -0
  1136. package/umd/src/utils/random/$randomToken.d.ts +15 -0
  1137. package/umd/src/utils/random/CzechNamePool.d.ts +7 -0
  1138. package/umd/src/utils/random/EnglishNamePool.d.ts +7 -0
  1139. package/umd/src/utils/random/NamePool.d.ts +17 -0
  1140. package/umd/src/utils/random/getNamePool.d.ts +10 -0
  1141. package/umd/src/utils/serialization/$deepFreeze.d.ts +15 -0
  1142. package/umd/src/utils/serialization/asSerializable.d.ts +15 -0
  1143. package/umd/src/utils/serialization/asSerializable.test.d.ts +1 -0
  1144. package/umd/src/utils/serialization/checkSerializableAsJson.d.ts +45 -0
  1145. package/umd/src/utils/serialization/clonePipeline.d.ts +14 -0
  1146. package/umd/src/utils/serialization/deepClone.d.ts +15 -0
  1147. package/umd/src/utils/serialization/deepClone.test.d.ts +1 -0
  1148. package/umd/src/utils/serialization/exportJson.d.ts +29 -0
  1149. package/umd/src/utils/serialization/isSerializableAsJson.d.ts +25 -0
  1150. package/umd/src/utils/serialization/isSerializableAsJson.test.d.ts +1 -0
  1151. package/umd/src/utils/serialization/jsonStringsToJsons.d.ts +9 -0
  1152. package/umd/src/utils/serialization/jsonStringsToJsons.test.d.ts +1 -0
  1153. package/umd/src/utils/serialization/serializeToPromptbookJavascript.d.ts +22 -0
  1154. package/umd/src/utils/sets/difference.d.ts +10 -0
  1155. package/umd/src/utils/sets/difference.test.d.ts +1 -0
  1156. package/umd/src/utils/sets/intersection.d.ts +7 -0
  1157. package/umd/src/utils/sets/intersection.test.d.ts +1 -0
  1158. package/umd/src/utils/sets/union.d.ts +7 -0
  1159. package/umd/src/utils/sets/union.test.d.ts +1 -0
  1160. package/umd/src/utils/take/classes/TakeChain.d.ts +11 -0
  1161. package/umd/src/utils/take/interfaces/ITakeChain.d.ts +12 -0
  1162. package/umd/src/utils/take/interfaces/Takeable.d.ts +7 -0
  1163. package/umd/src/utils/take/take.d.ts +12 -0
  1164. package/umd/src/utils/take/take.test.d.ts +1 -0
  1165. package/umd/src/utils/toolCalls/getToolCallIdentity.d.ts +10 -0
  1166. package/umd/src/utils/validators/email/isValidEmail.d.ts +8 -0
  1167. package/umd/src/utils/validators/email/isValidEmail.test.d.ts +1 -0
  1168. package/umd/src/utils/validators/filePath/isRootPath.d.ts +12 -0
  1169. package/umd/src/utils/validators/filePath/isRootPath.test.d.ts +4 -0
  1170. package/umd/src/utils/validators/filePath/isValidFilePath.d.ts +12 -0
  1171. package/umd/src/utils/validators/filePath/isValidFilePath.test.d.ts +1 -0
  1172. package/umd/src/utils/validators/javascriptName/isValidJavascriptName.d.ts +10 -0
  1173. package/umd/src/utils/validators/javascriptName/isValidJavascriptName.test.d.ts +1 -0
  1174. package/umd/src/utils/validators/parameterName/validateParameterName.d.ts +13 -0
  1175. package/umd/src/utils/validators/parameterName/validateParameterName.test.d.ts +1 -0
  1176. package/umd/src/utils/validators/semanticVersion/isValidPromptbookVersion.d.ts +15 -0
  1177. package/umd/src/utils/validators/semanticVersion/isValidPromptbookVersion.test.d.ts +1 -0
  1178. package/umd/src/utils/validators/semanticVersion/isValidSemanticVersion.d.ts +12 -0
  1179. package/umd/src/utils/validators/semanticVersion/isValidSemanticVersion.test.d.ts +1 -0
  1180. package/umd/src/utils/validators/url/isHostnameOnPrivateNetwork.d.ts +11 -0
  1181. package/umd/src/utils/validators/url/isHostnameOnPrivateNetwork.test.d.ts +1 -0
  1182. package/umd/src/utils/validators/url/isUrlOnPrivateNetwork.d.ts +13 -0
  1183. package/umd/src/utils/validators/url/isUrlOnPrivateNetwork.test.d.ts +1 -0
  1184. package/umd/src/utils/validators/url/isValidAgentUrl.d.ts +16 -0
  1185. package/umd/src/utils/validators/url/isValidAgentUrl.test.d.ts +1 -0
  1186. package/umd/src/utils/validators/url/isValidPipelineUrl.d.ts +16 -0
  1187. package/umd/src/utils/validators/url/isValidPipelineUrl.test.d.ts +1 -0
  1188. package/umd/src/utils/validators/url/isValidUrl.d.ts +15 -0
  1189. package/umd/src/utils/validators/url/isValidUrl.test.d.ts +1 -0
  1190. package/umd/src/utils/validators/uuid/isValidUuid.d.ts +10 -0
  1191. package/umd/src/utils/validators/uuid/isValidUuid.test.d.ts +1 -0
  1192. package/umd/src/version.d.ts +26 -0
  1193. package/umd/src/wizard/$getCompiledBook.d.ts +15 -0
  1194. package/umd/src/wizard/wizard.d.ts +75 -0
  1195. package/esm/typings/src/_packages/core.index.d.ts +0 -408
  1196. package/esm/typings/src/_packages/types.index.d.ts +0 -816
  1197. package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +0 -124
  1198. package/esm/typings/src/book-components/Chat/Chat/ChatMessageItem.d.ts +0 -79
  1199. package/esm/typings/src/book-components/Chat/Chat/ChatMessageList.d.ts +0 -41
  1200. package/esm/typings/src/book-components/Chat/Chat/ChatProps.d.ts +0 -302
  1201. package/esm/typings/src/book-components/Chat/LlmChat/LlmChatProps.d.ts +0 -87
  1202. package/esm/typings/src/commitments/MEMORY/MEMORY.d.ts +0 -105
  1203. package/esm/typings/src/commitments/_common/toolRuntimeContext.d.ts +0 -49
  1204. package/esm/typings/src/commitments/index.d.ts +0 -51
  1205. package/esm/typings/src/constants.d.ts +0 -205
  1206. package/esm/typings/src/llm-providers/agent/Agent.d.ts +0 -100
  1207. package/esm/typings/src/llm-providers/agent/RemoteAgent.d.ts +0 -56
  1208. package/esm/typings/src/utils/color/Color.d.ts +0 -202
  1209. package/esm/typings/src/version.d.ts +0 -26
  1210. /package/esm/{typings/books → books}/index.d.ts +0 -0
  1211. /package/esm/{typings/servers.d.ts → servers.d.ts} +0 -0
  1212. /package/esm/{typings/src → src}/_packages/anthropic-claude.index.d.ts +0 -0
  1213. /package/esm/{typings/src → src}/_packages/azure-openai.index.d.ts +0 -0
  1214. /package/esm/{typings/src → src}/_packages/browser.index.d.ts +0 -0
  1215. /package/esm/{typings/src → src}/_packages/cli.index.d.ts +0 -0
  1216. /package/esm/{typings/src → src}/_packages/color.index.d.ts +0 -0
  1217. /package/esm/{typings/src → src}/_packages/components.index.d.ts +0 -0
  1218. /package/esm/{typings/src → src}/_packages/deepseek.index.d.ts +0 -0
  1219. /package/esm/{typings/src → src}/_packages/documents.index.d.ts +0 -0
  1220. /package/esm/{typings/src → src}/_packages/editable.index.d.ts +0 -0
  1221. /package/esm/{typings/src → src}/_packages/fake-llm.index.d.ts +0 -0
  1222. /package/esm/{typings/src → src}/_packages/google.index.d.ts +0 -0
  1223. /package/esm/{typings/src → src}/_packages/javascript.index.d.ts +0 -0
  1224. /package/esm/{typings/src → src}/_packages/legacy-documents.index.d.ts +0 -0
  1225. /package/esm/{typings/src → src}/_packages/markdown-utils.index.d.ts +0 -0
  1226. /package/esm/{typings/src → src}/_packages/markitdown.index.d.ts +0 -0
  1227. /package/esm/{typings/src → src}/_packages/node.index.d.ts +0 -0
  1228. /package/esm/{typings/src → src}/_packages/ollama.index.d.ts +0 -0
  1229. /package/esm/{typings/src → src}/_packages/openai.index.d.ts +0 -0
  1230. /package/esm/{typings/src → src}/_packages/pdf.index.d.ts +0 -0
  1231. /package/esm/{typings/src → src}/_packages/remote-client.index.d.ts +0 -0
  1232. /package/esm/{typings/src → src}/_packages/remote-server.index.d.ts +0 -0
  1233. /package/esm/{typings/src → src}/_packages/templates.index.d.ts +0 -0
  1234. /package/esm/{typings/src → src}/_packages/utils.index.d.ts +0 -0
  1235. /package/esm/{typings/src → src}/_packages/vercel.index.d.ts +0 -0
  1236. /package/esm/{typings/src → src}/_packages/website-crawler.index.d.ts +0 -0
  1237. /package/esm/{typings/src → src}/_packages/wizard.index.d.ts +0 -0
  1238. /package/esm/{typings/src → src}/book-2.0/agent-source/AgentModelRequirements.d.ts +0 -0
  1239. /package/esm/{typings/src → src}/book-2.0/agent-source/AgentReferenceResolver.d.ts +0 -0
  1240. /package/esm/{typings/src → src}/book-2.0/agent-source/AgentSourceParseResult.d.ts +0 -0
  1241. /package/esm/{typings/src → src}/book-2.0/agent-source/BookEditable.d.ts +0 -0
  1242. /package/esm/{typings/src → src}/book-2.0/agent-source/CreateAgentModelRequirementsOptions.d.ts +0 -0
  1243. /package/esm/{typings/src → src}/book-2.0/agent-source/communication-samples.test.d.ts +0 -0
  1244. /package/esm/{typings/src → src}/book-2.0/agent-source/computeAgentHash.d.ts +0 -0
  1245. /package/esm/{typings/src → src}/book-2.0/agent-source/computeAgentHash.test.d.ts +0 -0
  1246. /package/esm/{typings/src → src}/book-2.0/agent-source/createAgentModelRequirements.d.ts +0 -0
  1247. /package/esm/{typings/src → src}/book-2.0/agent-source/createAgentModelRequirements.tools.test.d.ts +0 -0
  1248. /package/esm/{typings/src → src}/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.agentReferenceResolver.test.d.ts +0 -0
  1249. /package/esm/{typings/src → src}/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.blocks.test.d.ts +0 -0
  1250. /package/esm/{typings/src → src}/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.closed.test.d.ts +0 -0
  1251. /package/esm/{typings/src → src}/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.d.ts +0 -0
  1252. /package/esm/{typings/src → src}/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.delete.test.d.ts +0 -0
  1253. /package/esm/{typings/src → src}/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.import.test.d.ts +0 -0
  1254. /package/esm/{typings/src → src}/book-2.0/agent-source/createCommitmentRegex.d.ts +0 -0
  1255. /package/esm/{typings/src → src}/book-2.0/agent-source/createDefaultAgentName.d.ts +0 -0
  1256. /package/esm/{typings/src → src}/book-2.0/agent-source/extractMetaLinks.d.ts +0 -0
  1257. /package/esm/{typings/src → src}/book-2.0/agent-source/normalizeAgentName.d.ts +0 -0
  1258. /package/esm/{typings/src → src}/book-2.0/agent-source/normalizeAgentName.test.d.ts +0 -0
  1259. /package/esm/{typings/src → src}/book-2.0/agent-source/padBook.d.ts +0 -0
  1260. /package/esm/{typings/src → src}/book-2.0/agent-source/parseAgentSource.d.ts +0 -0
  1261. /package/esm/{typings/src → src}/book-2.0/agent-source/parseAgentSource.import.test.d.ts +0 -0
  1262. /package/esm/{typings/src → src}/book-2.0/agent-source/parseAgentSource.test.d.ts +0 -0
  1263. /package/esm/{typings/src → src}/book-2.0/agent-source/parseAgentSourceWithCommitments.blocks.test.d.ts +0 -0
  1264. /package/esm/{typings/src → src}/book-2.0/agent-source/parseAgentSourceWithCommitments.d.ts +0 -0
  1265. /package/esm/{typings/src → src}/book-2.0/agent-source/parseParameters.d.ts +0 -0
  1266. /package/esm/{typings/src → src}/book-2.0/agent-source/parseTeamCommitment.d.ts +0 -0
  1267. /package/esm/{typings/src → src}/book-2.0/agent-source/removeCommentsFromSystemMessage.d.ts +0 -0
  1268. /package/esm/{typings/src → src}/book-2.0/agent-source/string_book.d.ts +0 -0
  1269. /package/esm/{typings/src → src}/book-2.0/utils/generatePlaceholderAgentProfileImageUrl.d.ts +0 -0
  1270. /package/esm/{typings/src → src}/book-components/AvatarProfile/AvatarChip/AvatarChip.d.ts +0 -0
  1271. /package/esm/{typings/src → src}/book-components/AvatarProfile/AvatarChip/AvatarChipFromSource.d.ts +0 -0
  1272. /package/esm/{typings/src → src}/book-components/AvatarProfile/AvatarChip/index.d.ts +0 -0
  1273. /package/esm/{typings/src → src}/book-components/AvatarProfile/AvatarProfile/AvatarProfile.d.ts +0 -0
  1274. /package/esm/{typings/src → src}/book-components/AvatarProfile/AvatarProfile/AvatarProfileFromSource.d.ts +0 -0
  1275. /package/esm/{typings/src → src}/book-components/AvatarProfile/AvatarProfile/AvatarProfileTooltip.d.ts +0 -0
  1276. /package/esm/{typings/src → src}/book-components/BookEditor/BookEditor.d.ts +0 -0
  1277. /package/esm/{typings/src → src}/book-components/BookEditor/BookEditorActionbar.d.ts +0 -0
  1278. /package/esm/{typings/src → src}/book-components/BookEditor/BookEditorMonaco.d.ts +0 -0
  1279. /package/esm/{typings/src → src}/book-components/Chat/AgentChat/AgentChat.d.ts +0 -0
  1280. /package/esm/{typings/src → src}/book-components/Chat/AgentChat/AgentChat.test.d.ts +0 -0
  1281. /package/esm/{typings/src → src}/book-components/Chat/AgentChat/AgentChatProps.d.ts +0 -0
  1282. /package/esm/{typings/src → src}/book-components/Chat/AgentChip/AgentChip.d.ts +0 -0
  1283. /package/esm/{typings/src → src}/book-components/Chat/AgentChip/index.d.ts +0 -0
  1284. /package/esm/{typings/src → src}/book-components/Chat/Chat/Chat.d.ts +0 -0
  1285. /package/esm/{typings/src → src}/book-components/Chat/Chat/ChatActionsBar.d.ts +0 -0
  1286. /package/esm/{typings/src → src}/book-components/Chat/Chat/ChatCitationModal.d.ts +0 -0
  1287. /package/esm/{typings/src → src}/book-components/Chat/Chat/ChatInputArea.d.ts +0 -0
  1288. /package/esm/{typings/src → src}/book-components/Chat/Chat/ChatMessageMap.d.ts +0 -0
  1289. /package/esm/{typings/src → src}/book-components/Chat/Chat/ChatRatingModal.d.ts +0 -0
  1290. /package/esm/{typings/src → src}/book-components/Chat/Chat/ChatSelfLearningSummary.d.ts +0 -0
  1291. /package/esm/{typings/src → src}/book-components/Chat/Chat/ChatSoundToggle.d.ts +0 -0
  1292. /package/esm/{typings/src → src}/book-components/Chat/Chat/ChatToolCallModal.d.ts +0 -0
  1293. /package/esm/{typings/src → src}/book-components/Chat/Chat/ChatToolCallModalComponents.d.ts +0 -0
  1294. /package/esm/{typings/src → src}/book-components/Chat/Chat/ClockIcon.d.ts +0 -0
  1295. /package/esm/{typings/src → src}/book-components/Chat/Chat/ImagePromptRenderer.d.ts +0 -0
  1296. /package/esm/{typings/src → src}/book-components/Chat/Chat/constants.d.ts +0 -0
  1297. /package/esm/{typings/src → src}/book-components/Chat/CodeBlock/CodeBlock.d.ts +0 -0
  1298. /package/esm/{typings/src → src}/book-components/Chat/LlmChat/FriendlyErrorMessage.d.ts +0 -0
  1299. /package/esm/{typings/src → src}/book-components/Chat/LlmChat/LlmChat.d.ts +0 -0
  1300. /package/esm/{typings/src → src}/book-components/Chat/LlmChat/LlmChat.test.d.ts +0 -0
  1301. /package/esm/{typings/src → src}/book-components/Chat/LlmChat/defaults.d.ts +0 -0
  1302. /package/esm/{typings/src → src}/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +0 -0
  1303. /package/esm/{typings/src → src}/book-components/Chat/MockedChat/MockedChat.d.ts +0 -0
  1304. /package/esm/{typings/src → src}/book-components/Chat/MockedChat/constants.d.ts +0 -0
  1305. /package/esm/{typings/src → src}/book-components/Chat/SourceChip/SourceChip.d.ts +0 -0
  1306. /package/esm/{typings/src → src}/book-components/Chat/SourceChip/index.d.ts +0 -0
  1307. /package/esm/{typings/src → src}/book-components/Chat/effects/ChatEffectsSystem.d.ts +0 -0
  1308. /package/esm/{typings/src → src}/book-components/Chat/effects/components/ConfettiEffect.d.ts +0 -0
  1309. /package/esm/{typings/src → src}/book-components/Chat/effects/components/HeartsEffect.d.ts +0 -0
  1310. /package/esm/{typings/src → src}/book-components/Chat/effects/configs/defaultEffectConfigs.d.ts +0 -0
  1311. /package/esm/{typings/src → src}/book-components/Chat/effects/index.d.ts +0 -0
  1312. /package/esm/{typings/src → src}/book-components/Chat/effects/types/ChatEffect.d.ts +0 -0
  1313. /package/esm/{typings/src → src}/book-components/Chat/effects/types/ChatEffectConfig.d.ts +0 -0
  1314. /package/esm/{typings/src → src}/book-components/Chat/effects/types/ChatEffectType.d.ts +0 -0
  1315. /package/esm/{typings/src → src}/book-components/Chat/effects/types/ChatEffectsSystemProps.d.ts +0 -0
  1316. /package/esm/{typings/src → src}/book-components/Chat/effects/utils/detectEffects.d.ts +0 -0
  1317. /package/esm/{typings/src → src}/book-components/Chat/hooks/index.d.ts +0 -0
  1318. /package/esm/{typings/src → src}/book-components/Chat/hooks/useChatActionsOverlap.d.ts +0 -0
  1319. /package/esm/{typings/src → src}/book-components/Chat/hooks/useChatAutoScroll.d.ts +0 -0
  1320. /package/esm/{typings/src → src}/book-components/Chat/hooks/useChatRatings.d.ts +0 -0
  1321. /package/esm/{typings/src → src}/book-components/Chat/hooks/useSendMessageToLlmChat.d.ts +0 -0
  1322. /package/esm/{typings/src → src}/book-components/Chat/save/_common/ChatSaveFormatDefinition.d.ts +0 -0
  1323. /package/esm/{typings/src → src}/book-components/Chat/save/_common/getChatSaveFormatDefinitions.d.ts +0 -0
  1324. /package/esm/{typings/src → src}/book-components/Chat/save/_common/string_chat_format_name.d.ts +0 -0
  1325. /package/esm/{typings/src → src}/book-components/Chat/save/html/htmlSaveFormatDefinition.d.ts +0 -0
  1326. /package/esm/{typings/src → src}/book-components/Chat/save/index.d.ts +0 -0
  1327. /package/esm/{typings/src → src}/book-components/Chat/save/json/jsonSaveFormatDefinition.d.ts +0 -0
  1328. /package/esm/{typings/src → src}/book-components/Chat/save/markdown/mdSaveFormatDefinition.d.ts +0 -0
  1329. /package/esm/{typings/src → src}/book-components/Chat/save/pdf/buildChatPdf.d.ts +0 -0
  1330. /package/esm/{typings/src → src}/book-components/Chat/save/pdf/pdfSaveFormatDefinition.d.ts +0 -0
  1331. /package/esm/{typings/src → src}/book-components/Chat/save/react/reactSaveFormatDefinition.d.ts +0 -0
  1332. /package/esm/{typings/src → src}/book-components/Chat/save/text/txtSaveFormatDefinition.d.ts +0 -0
  1333. /package/esm/{typings/src → src}/book-components/Chat/types/ChatMessage.d.ts +0 -0
  1334. /package/esm/{typings/src → src}/book-components/Chat/types/ChatParticipant.d.ts +0 -0
  1335. /package/esm/{typings/src → src}/book-components/Chat/utils/ChatPersistence.d.ts +0 -0
  1336. /package/esm/{typings/src → src}/book-components/Chat/utils/ExportFormat.d.ts +0 -0
  1337. /package/esm/{typings/src → src}/book-components/Chat/utils/addUtmParamsToUrl.d.ts +0 -0
  1338. /package/esm/{typings/src → src}/book-components/Chat/utils/citationHelpers.d.ts +0 -0
  1339. /package/esm/{typings/src → src}/book-components/Chat/utils/citationHelpers.test.d.ts +0 -0
  1340. /package/esm/{typings/src → src}/book-components/Chat/utils/collectTeamToolCallSummary.d.ts +0 -0
  1341. /package/esm/{typings/src → src}/book-components/Chat/utils/createShortLinkForChat.d.ts +0 -0
  1342. /package/esm/{typings/src → src}/book-components/Chat/utils/createTeamToolNameFromUrl.d.ts +0 -0
  1343. /package/esm/{typings/src → src}/book-components/Chat/utils/downloadFile.d.ts +0 -0
  1344. /package/esm/{typings/src → src}/book-components/Chat/utils/exportChatHistory.d.ts +0 -0
  1345. /package/esm/{typings/src → src}/book-components/Chat/utils/generatePdfContent.d.ts +0 -0
  1346. /package/esm/{typings/src → src}/book-components/Chat/utils/generateQrDataUrl.d.ts +0 -0
  1347. /package/esm/{typings/src → src}/book-components/Chat/utils/getChatMessageTimingDisplay.d.ts +0 -0
  1348. /package/esm/{typings/src → src}/book-components/Chat/utils/getPromptbookBranding.d.ts +0 -0
  1349. /package/esm/{typings/src → src}/book-components/Chat/utils/getToolCallChipletInfo.d.ts +0 -0
  1350. /package/esm/{typings/src → src}/book-components/Chat/utils/loadAgentProfile.d.ts +0 -0
  1351. /package/esm/{typings/src → src}/book-components/Chat/utils/messagesToHtml.d.ts +0 -0
  1352. /package/esm/{typings/src → src}/book-components/Chat/utils/messagesToJson.d.ts +0 -0
  1353. /package/esm/{typings/src → src}/book-components/Chat/utils/messagesToMarkdown.d.ts +0 -0
  1354. /package/esm/{typings/src → src}/book-components/Chat/utils/messagesToText.d.ts +0 -0
  1355. /package/esm/{typings/src → src}/book-components/Chat/utils/parseCitationMarker.d.ts +0 -0
  1356. /package/esm/{typings/src → src}/book-components/Chat/utils/parseCitationsFromContent.d.ts +0 -0
  1357. /package/esm/{typings/src → src}/book-components/Chat/utils/parseCitationsFromContent.test.d.ts +0 -0
  1358. /package/esm/{typings/src → src}/book-components/Chat/utils/parseImagePrompts.d.ts +0 -0
  1359. /package/esm/{typings/src → src}/book-components/Chat/utils/parseImagePrompts.test.d.ts +0 -0
  1360. /package/esm/{typings/src → src}/book-components/Chat/utils/parseMessageButtons.d.ts +0 -0
  1361. /package/esm/{typings/src → src}/book-components/Chat/utils/resolveCitationUrl.d.ts +0 -0
  1362. /package/esm/{typings/src → src}/book-components/Chat/utils/resolveCitationUrl.test.d.ts +0 -0
  1363. /package/esm/{typings/src → src}/book-components/Chat/utils/sanitizeStreamingMessageContent.d.ts +0 -0
  1364. /package/esm/{typings/src → src}/book-components/Chat/utils/sanitizeStreamingMessageContent.test.d.ts +0 -0
  1365. /package/esm/{typings/src → src}/book-components/Chat/utils/splitMessageContentIntoSegments.d.ts +0 -0
  1366. /package/esm/{typings/src → src}/book-components/Chat/utils/splitMessageContentIntoSegments.test.d.ts +0 -0
  1367. /package/esm/{typings/src → src}/book-components/Chat/utils/toolCallParsing.d.ts +0 -0
  1368. /package/esm/{typings/src → src}/book-components/PromptbookAgent/PromptbookAgentIntegration.d.ts +0 -0
  1369. /package/esm/{typings/src → src}/book-components/PromptbookAgent/PromptbookAgentSeamlessIntegration.d.ts +0 -0
  1370. /package/esm/{typings/src → src}/book-components/Qr/BrandedQrCode.d.ts +0 -0
  1371. /package/esm/{typings/src → src}/book-components/Qr/GenericQrCode.d.ts +0 -0
  1372. /package/esm/{typings/src → src}/book-components/Qr/PromptbookQrCode.d.ts +0 -0
  1373. /package/esm/{typings/src → src}/book-components/Qr/useQrCode.d.ts +0 -0
  1374. /package/esm/{typings/src → src}/book-components/_common/Dropdown/Dropdown.d.ts +0 -0
  1375. /package/esm/{typings/src → src}/book-components/_common/HamburgerMenu/HamburgerMenu.d.ts +0 -0
  1376. /package/esm/{typings/src → src}/book-components/_common/MenuHoisting/MenuHoistingContext.d.ts +0 -0
  1377. /package/esm/{typings/src → src}/book-components/_common/Modal/Modal.d.ts +0 -0
  1378. /package/esm/{typings/src → src}/book-components/_common/Tooltip/Tooltip.d.ts +0 -0
  1379. /package/esm/{typings/src → src}/book-components/_common/react-utils/classNames.d.ts +0 -0
  1380. /package/esm/{typings/src → src}/book-components/_common/react-utils/collectCssTextsForClass.d.ts +0 -0
  1381. /package/esm/{typings/src → src}/book-components/_common/react-utils/escapeHtml.d.ts +0 -0
  1382. /package/esm/{typings/src → src}/book-components/_common/react-utils/escapeRegex.d.ts +0 -0
  1383. /package/esm/{typings/src → src}/book-components/icons/AboutIcon.d.ts +0 -0
  1384. /package/esm/{typings/src → src}/book-components/icons/ArrowIcon.d.ts +0 -0
  1385. /package/esm/{typings/src → src}/book-components/icons/AttachmentIcon.d.ts +0 -0
  1386. /package/esm/{typings/src → src}/book-components/icons/CameraIcon.d.ts +0 -0
  1387. /package/esm/{typings/src → src}/book-components/icons/CloseIcon.d.ts +0 -0
  1388. /package/esm/{typings/src → src}/book-components/icons/DownloadIcon.d.ts +0 -0
  1389. /package/esm/{typings/src → src}/book-components/icons/EmailIcon.d.ts +0 -0
  1390. /package/esm/{typings/src → src}/book-components/icons/ExitFullscreenIcon.d.ts +0 -0
  1391. /package/esm/{typings/src → src}/book-components/icons/FullscreenIcon.d.ts +0 -0
  1392. /package/esm/{typings/src → src}/book-components/icons/MenuIcon.d.ts +0 -0
  1393. /package/esm/{typings/src → src}/book-components/icons/MicIcon.d.ts +0 -0
  1394. /package/esm/{typings/src → src}/book-components/icons/PauseIcon.d.ts +0 -0
  1395. /package/esm/{typings/src → src}/book-components/icons/PlayIcon.d.ts +0 -0
  1396. /package/esm/{typings/src → src}/book-components/icons/ResetIcon.d.ts +0 -0
  1397. /package/esm/{typings/src → src}/book-components/icons/SaveIcon.d.ts +0 -0
  1398. /package/esm/{typings/src → src}/book-components/icons/SendIcon.d.ts +0 -0
  1399. /package/esm/{typings/src → src}/book-components/icons/TeacherIcon.d.ts +0 -0
  1400. /package/esm/{typings/src → src}/book-components/icons/TemplateIcon.d.ts +0 -0
  1401. /package/esm/{typings/src → src}/cli/cli-commands/_boilerplate.d.ts +0 -0
  1402. /package/esm/{typings/src → src}/cli/cli-commands/about.d.ts +0 -0
  1403. /package/esm/{typings/src → src}/cli/cli-commands/common/handleActionErrors.d.ts +0 -0
  1404. /package/esm/{typings/src → src}/cli/cli-commands/hello.d.ts +0 -0
  1405. /package/esm/{typings/src → src}/cli/cli-commands/list-models.d.ts +0 -0
  1406. /package/esm/{typings/src → src}/cli/cli-commands/list-scrapers.d.ts +0 -0
  1407. /package/esm/{typings/src → src}/cli/cli-commands/login.d.ts +0 -0
  1408. /package/esm/{typings/src → src}/cli/cli-commands/make.d.ts +0 -0
  1409. /package/esm/{typings/src → src}/cli/cli-commands/prettify.d.ts +0 -0
  1410. /package/esm/{typings/src → src}/cli/cli-commands/run.d.ts +0 -0
  1411. /package/esm/{typings/src → src}/cli/cli-commands/runInteractiveChatbot.d.ts +0 -0
  1412. /package/esm/{typings/src → src}/cli/cli-commands/start-agents-server.d.ts +0 -0
  1413. /package/esm/{typings/src → src}/cli/cli-commands/start-pipelines-server.d.ts +0 -0
  1414. /package/esm/{typings/src → src}/cli/cli-commands/test-command.d.ts +0 -0
  1415. /package/esm/{typings/src → src}/cli/common/$addGlobalOptionsToCommand.d.ts +0 -0
  1416. /package/esm/{typings/src → src}/cli/common/$provideLlmToolsForCli.d.ts +0 -0
  1417. /package/esm/{typings/src → src}/cli/main.d.ts +0 -0
  1418. /package/esm/{typings/src → src}/cli/promptbookCli.d.ts +0 -0
  1419. /package/esm/{typings/src → src}/cli/test/ptbk.d.ts +0 -0
  1420. /package/esm/{typings/src → src}/cli/test/ptbk.test.d.ts +0 -0
  1421. /package/esm/{typings/src → src}/collection/agent-collection/AgentCollection.d.ts +0 -0
  1422. /package/esm/{typings/src → src}/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +0 -0
  1423. /package/esm/{typings/src → src}/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabaseOptions.d.ts +0 -0
  1424. /package/esm/{typings/src → src}/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +0 -0
  1425. /package/esm/{typings/src → src}/collection/pipeline-collection/PipelineCollection.d.ts +0 -0
  1426. /package/esm/{typings/src → src}/collection/pipeline-collection/SimplePipelineCollection.d.ts +0 -0
  1427. /package/esm/{typings/src → src}/collection/pipeline-collection/constructors/createPipelineCollectionFromDirectory.d.ts +0 -0
  1428. /package/esm/{typings/src → src}/collection/pipeline-collection/constructors/createPipelineCollectionFromDirectory.test.d.ts +0 -0
  1429. /package/esm/{typings/src → src}/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.d.ts +0 -0
  1430. /package/esm/{typings/src → src}/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.test.d.ts +0 -0
  1431. /package/esm/{typings/src → src}/collection/pipeline-collection/constructors/createPipelineCollectionFromPromise.d.ts +0 -0
  1432. /package/esm/{typings/src → src}/collection/pipeline-collection/constructors/createPipelineCollectionFromPromise.test.d.ts +0 -0
  1433. /package/esm/{typings/src → src}/collection/pipeline-collection/constructors/createPipelineCollectionFromUrl.d.ts +0 -0
  1434. /package/esm/{typings/src → src}/collection/pipeline-collection/constructors/createPipelineSubcollection.d.ts +0 -0
  1435. /package/esm/{typings/src → src}/collection/pipeline-collection/pipelineCollectionToJson.d.ts +0 -0
  1436. /package/esm/{typings/src → src}/collection/pipeline-collection/pipelineCollectionToJson.test.d.ts +0 -0
  1437. /package/esm/{typings/src → src}/commands/BOOK_VERSION/BookVersionCommand.d.ts +0 -0
  1438. /package/esm/{typings/src → src}/commands/BOOK_VERSION/bookVersionCommand.test.d.ts +0 -0
  1439. /package/esm/{typings/src → src}/commands/BOOK_VERSION/bookVersionCommandParser.d.ts +0 -0
  1440. /package/esm/{typings/src → src}/commands/EXPECT/ExpectCommand.d.ts +0 -0
  1441. /package/esm/{typings/src → src}/commands/EXPECT/expectCommand.test.d.ts +0 -0
  1442. /package/esm/{typings/src → src}/commands/EXPECT/expectCommandParser.d.ts +0 -0
  1443. /package/esm/{typings/src → src}/commands/FOREACH/ForeachCommand.d.ts +0 -0
  1444. /package/esm/{typings/src → src}/commands/FOREACH/ForeachJson.d.ts +0 -0
  1445. /package/esm/{typings/src → src}/commands/FOREACH/foreachCommand.test.d.ts +0 -0
  1446. /package/esm/{typings/src → src}/commands/FOREACH/foreachCommandParser.d.ts +0 -0
  1447. /package/esm/{typings/src → src}/commands/FORMAT/FormatCommand.d.ts +0 -0
  1448. /package/esm/{typings/src → src}/commands/FORMAT/formatCommand.test.d.ts +0 -0
  1449. /package/esm/{typings/src → src}/commands/FORMAT/formatCommandParser.d.ts +0 -0
  1450. /package/esm/{typings/src → src}/commands/FORMFACTOR/FormfactorCommand.d.ts +0 -0
  1451. /package/esm/{typings/src → src}/commands/FORMFACTOR/formfactorCommand.test.d.ts +0 -0
  1452. /package/esm/{typings/src → src}/commands/FORMFACTOR/formfactorCommandParser.d.ts +0 -0
  1453. /package/esm/{typings/src → src}/commands/JOKER/JokerCommand.d.ts +0 -0
  1454. /package/esm/{typings/src → src}/commands/JOKER/jokerCommand.test.d.ts +0 -0
  1455. /package/esm/{typings/src → src}/commands/JOKER/jokerCommandParser.d.ts +0 -0
  1456. /package/esm/{typings/src → src}/commands/KNOWLEDGE/KnowledgeCommand.d.ts +0 -0
  1457. /package/esm/{typings/src → src}/commands/KNOWLEDGE/knowledgeCommand.test.d.ts +0 -0
  1458. /package/esm/{typings/src → src}/commands/KNOWLEDGE/knowledgeCommandParser.d.ts +0 -0
  1459. /package/esm/{typings/src → src}/commands/KNOWLEDGE/utils/knowledgeSourceContentToName.d.ts +0 -0
  1460. /package/esm/{typings/src → src}/commands/KNOWLEDGE/utils/knowledgeSourceContentToName.test.d.ts +0 -0
  1461. /package/esm/{typings/src → src}/commands/MODEL/ModelCommand.d.ts +0 -0
  1462. /package/esm/{typings/src → src}/commands/MODEL/modelCommand.test.d.ts +0 -0
  1463. /package/esm/{typings/src → src}/commands/MODEL/modelCommandParser.d.ts +0 -0
  1464. /package/esm/{typings/src → src}/commands/PARAMETER/ParameterCommand.d.ts +0 -0
  1465. /package/esm/{typings/src → src}/commands/PARAMETER/parameterCommand.test.d.ts +0 -0
  1466. /package/esm/{typings/src → src}/commands/PARAMETER/parameterCommandParser.d.ts +0 -0
  1467. /package/esm/{typings/src → src}/commands/PERSONA/PersonaCommand.d.ts +0 -0
  1468. /package/esm/{typings/src → src}/commands/PERSONA/personaCommand.test.d.ts +0 -0
  1469. /package/esm/{typings/src → src}/commands/PERSONA/personaCommandParser.d.ts +0 -0
  1470. /package/esm/{typings/src → src}/commands/POSTPROCESS/PostprocessCommand.d.ts +0 -0
  1471. /package/esm/{typings/src → src}/commands/POSTPROCESS/postprocessCommand.test.d.ts +0 -0
  1472. /package/esm/{typings/src → src}/commands/POSTPROCESS/postprocessCommandParser.d.ts +0 -0
  1473. /package/esm/{typings/src → src}/commands/SECTION/SectionCommand.d.ts +0 -0
  1474. /package/esm/{typings/src → src}/commands/SECTION/sectionCommand.test.d.ts +0 -0
  1475. /package/esm/{typings/src → src}/commands/SECTION/sectionCommandParser.d.ts +0 -0
  1476. /package/esm/{typings/src → src}/commands/URL/UrlCommand.d.ts +0 -0
  1477. /package/esm/{typings/src → src}/commands/URL/urlCommand.test.d.ts +0 -0
  1478. /package/esm/{typings/src → src}/commands/URL/urlCommandParser.d.ts +0 -0
  1479. /package/esm/{typings/src → src}/commands/X_ACTION/ActionCommand.d.ts +0 -0
  1480. /package/esm/{typings/src → src}/commands/X_ACTION/actionCommand.test.d.ts +0 -0
  1481. /package/esm/{typings/src → src}/commands/X_ACTION/actionCommandParser.d.ts +0 -0
  1482. /package/esm/{typings/src → src}/commands/X_INSTRUMENT/InstrumentCommand.d.ts +0 -0
  1483. /package/esm/{typings/src → src}/commands/X_INSTRUMENT/instrumentCommand.test.d.ts +0 -0
  1484. /package/esm/{typings/src → src}/commands/X_INSTRUMENT/instrumentCommandParser.d.ts +0 -0
  1485. /package/esm/{typings/src → src}/commands/_BOILERPLATE/BoilerplateCommand.d.ts +0 -0
  1486. /package/esm/{typings/src → src}/commands/_BOILERPLATE/boilerplateCommand.test.d.ts +0 -0
  1487. /package/esm/{typings/src → src}/commands/_BOILERPLATE/boilerplateCommandParser.d.ts +0 -0
  1488. /package/esm/{typings/src → src}/commands/_common/getParserForCommand.d.ts +0 -0
  1489. /package/esm/{typings/src → src}/commands/_common/getParserForCommand.test.d.ts +0 -0
  1490. /package/esm/{typings/src → src}/commands/_common/parseCommand.d.ts +0 -0
  1491. /package/esm/{typings/src → src}/commands/_common/stringifyCommand.d.ts +0 -0
  1492. /package/esm/{typings/src → src}/commands/_common/stringifyCommand.test.d.ts +0 -0
  1493. /package/esm/{typings/src → src}/commands/_common/types/Command.d.ts +0 -0
  1494. /package/esm/{typings/src → src}/commands/_common/types/CommandParser.d.ts +0 -0
  1495. /package/esm/{typings/src → src}/commands/_common/types/CommandType.d.ts +0 -0
  1496. /package/esm/{typings/src → src}/commands/_common/types/CommandUsagePlaces.d.ts +0 -0
  1497. /package/esm/{typings/src → src}/commands/index.d.ts +0 -0
  1498. /package/esm/{typings/src → src}/commitments/ACTION/ACTION.d.ts +0 -0
  1499. /package/esm/{typings/src → src}/commitments/CLOSED/CLOSED.d.ts +0 -0
  1500. /package/esm/{typings/src → src}/commitments/CLOSED/CLOSED.test.d.ts +0 -0
  1501. /package/esm/{typings/src → src}/commitments/COMPONENT/COMPONENT.d.ts +0 -0
  1502. /package/esm/{typings/src → src}/commitments/DELETE/DELETE.d.ts +0 -0
  1503. /package/esm/{typings/src → src}/commitments/DICTIONARY/DICTIONARY.d.ts +0 -0
  1504. /package/esm/{typings/src → src}/commitments/FORMAT/FORMAT.d.ts +0 -0
  1505. /package/esm/{typings/src → src}/commitments/FROM/FROM.d.ts +0 -0
  1506. /package/esm/{typings/src → src}/commitments/GOAL/GOAL.d.ts +0 -0
  1507. /package/esm/{typings/src → src}/commitments/IMPORT/IMPORT.d.ts +0 -0
  1508. /package/esm/{typings/src → src}/commitments/KNOWLEDGE/KNOWLEDGE.d.ts +0 -0
  1509. /package/esm/{typings/src → src}/commitments/LANGUAGE/LANGUAGE.d.ts +0 -0
  1510. /package/esm/{typings/src → src}/commitments/MEMORY/MEMORY.test.d.ts +0 -0
  1511. /package/esm/{typings/src → src}/commitments/MESSAGE/AgentMessageCommitmentDefinition.d.ts +0 -0
  1512. /package/esm/{typings/src → src}/commitments/MESSAGE/InitialMessageCommitmentDefinition.d.ts +0 -0
  1513. /package/esm/{typings/src → src}/commitments/MESSAGE/MESSAGE.d.ts +0 -0
  1514. /package/esm/{typings/src → src}/commitments/MESSAGE/UserMessageCommitmentDefinition.d.ts +0 -0
  1515. /package/esm/{typings/src/commitments/TEMPLATE/TEMPLATE.test.d.ts → src/commitments/MESSAGE_SUFFIX/MESSAGE_SUFFIX.test.d.ts} +0 -0
  1516. /package/esm/{typings/src → src}/commitments/META/META.d.ts +0 -0
  1517. /package/esm/{typings/src → src}/commitments/META/META_DESCRIPTION.d.ts +0 -0
  1518. /package/esm/{typings/src → src}/commitments/META_COLOR/META_COLOR.d.ts +0 -0
  1519. /package/esm/{typings/src/commitments/USE_BROWSER/USE_BROWSER.test.d.ts → src/commitments/META_DISCLAIMER/META_DISCLAIMER.test.d.ts} +0 -0
  1520. /package/esm/{typings/src → src}/commitments/META_FONT/META_FONT.d.ts +0 -0
  1521. /package/esm/{typings/src → src}/commitments/META_IMAGE/META_IMAGE.d.ts +0 -0
  1522. /package/esm/{typings/src → src}/commitments/META_LINK/META_LINK.d.ts +0 -0
  1523. /package/esm/{typings/src → src}/commitments/MODEL/MODEL.d.ts +0 -0
  1524. /package/esm/{typings/src → src}/commitments/NOTE/NOTE.d.ts +0 -0
  1525. /package/esm/{typings/src → src}/commitments/OPEN/OPEN.d.ts +0 -0
  1526. /package/esm/{typings/src → src}/commitments/PERSONA/PERSONA.d.ts +0 -0
  1527. /package/esm/{typings/src → src}/commitments/RULE/RULE.d.ts +0 -0
  1528. /package/esm/{typings/src → src}/commitments/SAMPLE/SAMPLE.d.ts +0 -0
  1529. /package/esm/{typings/src → src}/commitments/SCENARIO/SCENARIO.d.ts +0 -0
  1530. /package/esm/{typings/src → src}/commitments/STYLE/STYLE.d.ts +0 -0
  1531. /package/esm/{typings/src → src}/commitments/TEAM/TEAM.d.ts +0 -0
  1532. /package/esm/{typings/src → src}/commitments/TEMPLATE/TEMPLATE.d.ts +0 -0
  1533. /package/esm/{typings/src/commitments/USE_IMAGE_GENERATOR/USE_IMAGE_GENERATOR.test.d.ts → src/commitments/TEMPLATE/TEMPLATE.test.d.ts} +0 -0
  1534. /package/esm/{typings/src → src}/commitments/USE/USE.d.ts +0 -0
  1535. /package/esm/{typings/src → src}/commitments/USE_BROWSER/USE_BROWSER.d.ts +0 -0
  1536. /package/esm/{typings/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.test.d.ts → src/commitments/USE_BROWSER/USE_BROWSER.test.d.ts} +0 -0
  1537. /package/esm/{typings/src → src}/commitments/USE_BROWSER/fetchUrlContent.d.ts +0 -0
  1538. /package/esm/{typings/src → src}/commitments/USE_BROWSER/fetchUrlContentViaBrowser.d.ts +0 -0
  1539. /package/esm/{typings/src → src}/commitments/USE_EMAIL/USE_EMAIL.d.ts +0 -0
  1540. /package/esm/{typings/src → src}/commitments/USE_EMAIL/resolveSendEmailToolForNode.d.ts +0 -0
  1541. /package/esm/{typings/src → src}/commitments/USE_EMAIL/sendEmailViaBrowser.d.ts +0 -0
  1542. /package/esm/{typings/src → src}/commitments/USE_IMAGE_GENERATOR/USE_IMAGE_GENERATOR.d.ts +0 -0
  1543. /package/esm/{typings/src/commitments/USE_TIME/USE_TIME.test.d.ts → src/commitments/USE_IMAGE_GENERATOR/USE_IMAGE_GENERATOR.test.d.ts} +0 -0
  1544. /package/esm/{typings/src → src}/commitments/USE_MCP/USE_MCP.d.ts +0 -0
  1545. /package/esm/{typings/src → src}/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +0 -0
  1546. /package/esm/{typings/src/conversion/compilePipeline.test.d.ts → src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.test.d.ts} +0 -0
  1547. /package/esm/{typings/src → src}/commitments/USE_TIME/USE_TIME.d.ts +0 -0
  1548. /package/esm/{typings/src/conversion/parsePipeline.test.d.ts → src/commitments/USE_TIME/USE_TIME.test.d.ts} +0 -0
  1549. /package/esm/{typings/src/conversion/utils/extractParameterNamesFromTask.test.d.ts → src/commitments/USE_USER_LOCATION/USE_USER_LOCATION.test.d.ts} +0 -0
  1550. /package/esm/{typings/src → src}/commitments/_base/BaseCommitmentDefinition.d.ts +0 -0
  1551. /package/esm/{typings/src → src}/commitments/_base/BookCommitment.d.ts +0 -0
  1552. /package/esm/{typings/src → src}/commitments/_base/CommitmentDefinition.d.ts +0 -0
  1553. /package/esm/{typings/src → src}/commitments/_base/NotYetImplementedCommitmentDefinition.d.ts +0 -0
  1554. /package/esm/{typings/src → src}/commitments/_base/ParsedCommitment.d.ts +0 -0
  1555. /package/esm/{typings/src → src}/commitments/_base/createEmptyAgentModelRequirements.d.ts +0 -0
  1556. /package/esm/{typings/src → src}/commitments/_base/formatOptionalInstructionBlock.d.ts +0 -0
  1557. /package/esm/{typings/src → src}/commitments/_common/commitmentToolFunctions.d.ts +0 -0
  1558. /package/esm/{typings/src → src}/commitments/_common/getAllCommitmentDefinitions.d.ts +0 -0
  1559. /package/esm/{typings/src → src}/commitments/_common/getAllCommitmentTypes.d.ts +0 -0
  1560. /package/esm/{typings/src → src}/commitments/_common/getAllCommitmentsToolFunctionsForBrowser.d.ts +0 -0
  1561. /package/esm/{typings/src → src}/commitments/_common/getAllCommitmentsToolFunctionsForNode.d.ts +0 -0
  1562. /package/esm/{typings/src → src}/commitments/_common/getAllCommitmentsToolTitles.d.ts +0 -0
  1563. /package/esm/{typings/src → src}/commitments/_common/getCommitmentDefinition.d.ts +0 -0
  1564. /package/esm/{typings/src → src}/commitments/_common/getGroupedCommitmentDefinitions.d.ts +0 -0
  1565. /package/esm/{typings/src → src}/commitments/_common/isCommitmentSupported.d.ts +0 -0
  1566. /package/esm/{typings/src → src}/config.d.ts +0 -0
  1567. /package/esm/{typings/src → src}/config.test.d.ts +0 -0
  1568. /package/esm/{typings/src → src}/constants/streaming.d.ts +0 -0
  1569. /package/esm/{typings/src → src}/conversion/archive/loadArchive.d.ts +0 -0
  1570. /package/esm/{typings/src → src}/conversion/archive/saveArchive.d.ts +0 -0
  1571. /package/esm/{typings/src → src}/conversion/compilePipeline.d.ts +0 -0
  1572. /package/esm/{typings/src/dialogs/user-interface-execution-tools.test.d.ts → src/conversion/compilePipeline.test.d.ts} +0 -0
  1573. /package/esm/{typings/src → src}/conversion/compilePipelineOnRemoteServer.d.ts +0 -0
  1574. /package/esm/{typings/src → src}/conversion/parsePipeline.d.ts +0 -0
  1575. /package/esm/{typings/src/errors/utils/deserializeError.test.d.ts → src/conversion/parsePipeline.test.d.ts} +0 -0
  1576. /package/esm/{typings/src → src}/conversion/pipelineJsonToString.d.ts +0 -0
  1577. /package/esm/{typings/src → src}/conversion/prettify/PrettifyOptions.d.ts +0 -0
  1578. /package/esm/{typings/src → src}/conversion/prettify/prettifyPipelineString.d.ts +0 -0
  1579. /package/esm/{typings/src → src}/conversion/prettify/renderPipelineMermaidOptions.d.ts +0 -0
  1580. /package/esm/{typings/src → src}/conversion/utils/extractParameterNamesFromTask.d.ts +0 -0
  1581. /package/esm/{typings/src/errors/utils/serializeError.test.d.ts → src/conversion/utils/extractParameterNamesFromTask.test.d.ts} +0 -0
  1582. /package/esm/{typings/src → src}/conversion/validation/_importPipeline.d.ts +0 -0
  1583. /package/esm/{typings/src → src}/conversion/validation/pipelineStringToJson-parseErrors.test.d.ts +0 -0
  1584. /package/esm/{typings/src → src}/conversion/validation/validatePipeline-logicErrors.test.d.ts +0 -0
  1585. /package/esm/{typings/src → src}/conversion/validation/validatePipeline.d.ts +0 -0
  1586. /package/esm/{typings/src → src}/conversion/validation/validatePipeline.test.d.ts +0 -0
  1587. /package/esm/{typings/src → src}/dialogs/callback/CallbackInterfaceTools.d.ts +0 -0
  1588. /package/esm/{typings/src → src}/dialogs/callback/CallbackInterfaceToolsOptions.d.ts +0 -0
  1589. /package/esm/{typings/src → src}/dialogs/simple-prompt/SimplePromptInterfaceTools.d.ts +0 -0
  1590. /package/esm/{typings/src/executables/apps/locateLibreoffice.test.d.ts → src/dialogs/user-interface-execution-tools.test.d.ts} +0 -0
  1591. /package/esm/{typings/src → src}/errors/0-BoilerplateError.d.ts +0 -0
  1592. /package/esm/{typings/src → src}/errors/0-index.d.ts +0 -0
  1593. /package/esm/{typings/src → src}/errors/AbstractFormatError.d.ts +0 -0
  1594. /package/esm/{typings/src → src}/errors/AuthenticationError.d.ts +0 -0
  1595. /package/esm/{typings/src → src}/errors/CollectionError.d.ts +0 -0
  1596. /package/esm/{typings/src → src}/errors/DatabaseError.d.ts +0 -0
  1597. /package/esm/{typings/src → src}/errors/EnvironmentMismatchError.d.ts +0 -0
  1598. /package/esm/{typings/src → src}/errors/ExpectError.d.ts +0 -0
  1599. /package/esm/{typings/src → src}/errors/KnowledgeScrapeError.d.ts +0 -0
  1600. /package/esm/{typings/src → src}/errors/LimitReachedError.d.ts +0 -0
  1601. /package/esm/{typings/src → src}/errors/MissingToolsError.d.ts +0 -0
  1602. /package/esm/{typings/src → src}/errors/NotAllowed.d.ts +0 -0
  1603. /package/esm/{typings/src → src}/errors/NotFoundError.d.ts +0 -0
  1604. /package/esm/{typings/src → src}/errors/NotYetImplementedError.d.ts +0 -0
  1605. /package/esm/{typings/src → src}/errors/ParseError.d.ts +0 -0
  1606. /package/esm/{typings/src → src}/errors/PipelineExecutionError.d.ts +0 -0
  1607. /package/esm/{typings/src → src}/errors/PipelineLogicError.d.ts +0 -0
  1608. /package/esm/{typings/src → src}/errors/PipelineUrlError.d.ts +0 -0
  1609. /package/esm/{typings/src → src}/errors/PromptbookFetchError.d.ts +0 -0
  1610. /package/esm/{typings/src → src}/errors/UnexpectedError.d.ts +0 -0
  1611. /package/esm/{typings/src → src}/errors/WrappedError.d.ts +0 -0
  1612. /package/esm/{typings/src → src}/errors/assertsError.d.ts +0 -0
  1613. /package/esm/{typings/src → src}/errors/utils/ErrorJson.d.ts +0 -0
  1614. /package/esm/{typings/src → src}/errors/utils/deserializeError.d.ts +0 -0
  1615. /package/esm/{typings/src/executables/apps/locatePandoc.test.d.ts → src/errors/utils/deserializeError.test.d.ts} +0 -0
  1616. /package/esm/{typings/src → src}/errors/utils/getErrorReportUrl.d.ts +0 -0
  1617. /package/esm/{typings/src → src}/errors/utils/serializeError.d.ts +0 -0
  1618. /package/esm/{typings/src/executables/locateApp.test.d.ts → src/errors/utils/serializeError.test.d.ts} +0 -0
  1619. /package/esm/{typings/src → src}/executables/$provideExecutablesForNode.d.ts +0 -0
  1620. /package/esm/{typings/src → src}/executables/apps/locateLibreoffice.d.ts +0 -0
  1621. /package/esm/{typings/src/execution/execution-report/countWorkingDuration.test.d.ts → src/executables/apps/locateLibreoffice.test.d.ts} +0 -0
  1622. /package/esm/{typings/src → src}/executables/apps/locatePandoc.d.ts +0 -0
  1623. /package/esm/{typings/src/execution/translation/automatic-translate/automatic-translators/utils/extractMultiplicatedOccurrence.test.d.ts → src/executables/apps/locatePandoc.test.d.ts} +0 -0
  1624. /package/esm/{typings/src → src}/executables/locateApp.d.ts +0 -0
  1625. /package/esm/{typings/src/execution/utils/addUsage.test.d.ts → src/executables/locateApp.test.d.ts} +0 -0
  1626. /package/esm/{typings/src → src}/executables/platforms/locateAppOnLinux.d.ts +0 -0
  1627. /package/esm/{typings/src → src}/executables/platforms/locateAppOnMacOs.d.ts +0 -0
  1628. /package/esm/{typings/src → src}/executables/platforms/locateAppOnWindows.d.ts +0 -0
  1629. /package/esm/{typings/src → src}/execution/AbstractTaskResult.d.ts +0 -0
  1630. /package/esm/{typings/src → src}/execution/AvailableModel.d.ts +0 -0
  1631. /package/esm/{typings/src → src}/execution/CommonToolsOptions.d.ts +0 -0
  1632. /package/esm/{typings/src → src}/execution/EmbeddingVector.d.ts +0 -0
  1633. /package/esm/{typings/src → src}/execution/Executables.d.ts +0 -0
  1634. /package/esm/{typings/src → src}/execution/ExecutionTask.d.ts +0 -0
  1635. /package/esm/{typings/src → src}/execution/ExecutionTools.d.ts +0 -0
  1636. /package/esm/{typings/src → src}/execution/FilesystemTools.d.ts +0 -0
  1637. /package/esm/{typings/src → src}/execution/LlmExecutionTools.d.ts +0 -0
  1638. /package/esm/{typings/src → src}/execution/LlmExecutionToolsConstructor.d.ts +0 -0
  1639. /package/esm/{typings/src → src}/execution/PipelineExecutor.d.ts +0 -0
  1640. /package/esm/{typings/src → src}/execution/PipelineExecutorResult.d.ts +0 -0
  1641. /package/esm/{typings/src → src}/execution/PromptResult.d.ts +0 -0
  1642. /package/esm/{typings/src → src}/execution/PromptbookFetch.d.ts +0 -0
  1643. /package/esm/{typings/src → src}/execution/PromptbookFetch.test-type.d.ts +0 -0
  1644. /package/esm/{typings/src → src}/execution/ScriptExecutionTools.d.ts +0 -0
  1645. /package/esm/{typings/src → src}/execution/UncertainNumber.d.ts +0 -0
  1646. /package/esm/{typings/src → src}/execution/Usage.d.ts +0 -0
  1647. /package/esm/{typings/src → src}/execution/UserInterfaceTools.d.ts +0 -0
  1648. /package/esm/{typings/src → src}/execution/assertsTaskSuccessful.d.ts +0 -0
  1649. /package/esm/{typings/src → src}/execution/createPipelineExecutor/$OngoingTaskResult.d.ts +0 -0
  1650. /package/esm/{typings/src → src}/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +0 -0
  1651. /package/esm/{typings/src → src}/execution/createPipelineExecutor/00-createPipelineExecutor.d.ts +0 -0
  1652. /package/esm/{typings/src → src}/execution/createPipelineExecutor/10-executePipeline.d.ts +0 -0
  1653. /package/esm/{typings/src → src}/execution/createPipelineExecutor/20-executeTask.d.ts +0 -0
  1654. /package/esm/{typings/src → src}/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +0 -0
  1655. /package/esm/{typings/src → src}/execution/createPipelineExecutor/40-executeAttempts.d.ts +0 -0
  1656. /package/esm/{typings/src → src}/execution/createPipelineExecutor/computeCosineSimilarity.d.ts +0 -0
  1657. /package/esm/{typings/src → src}/execution/createPipelineExecutor/filterJustOutputParameters.d.ts +0 -0
  1658. /package/esm/{typings/src → src}/execution/createPipelineExecutor/getContextForTask.d.ts +0 -0
  1659. /package/esm/{typings/src → src}/execution/createPipelineExecutor/getExamplesForTask.d.ts +0 -0
  1660. /package/esm/{typings/src → src}/execution/createPipelineExecutor/getKnowledgeForTask.d.ts +0 -0
  1661. /package/esm/{typings/src → src}/execution/createPipelineExecutor/getReservedParametersForTask.d.ts +0 -0
  1662. /package/esm/{typings/src → src}/execution/createPipelineExecutor/knowledgePiecesToString.d.ts +0 -0
  1663. /package/esm/{typings/src → src}/execution/embeddingVectorToString.d.ts +0 -0
  1664. /package/esm/{typings/src → src}/execution/execution-report/ExecutionPromptReportJson.d.ts +0 -0
  1665. /package/esm/{typings/src → src}/execution/execution-report/ExecutionReportJson.d.ts +0 -0
  1666. /package/esm/{typings/src → src}/execution/execution-report/ExecutionReportString.d.ts +0 -0
  1667. /package/esm/{typings/src → src}/execution/execution-report/ExecutionReportStringOptions.d.ts +0 -0
  1668. /package/esm/{typings/src → src}/execution/execution-report/countWorkingDuration.d.ts +0 -0
  1669. /package/esm/{typings/src/execution/utils/checkExpectations.test.d.ts → src/execution/execution-report/countWorkingDuration.test.d.ts} +0 -0
  1670. /package/esm/{typings/src → src}/execution/execution-report/executionReportJsonToString.d.ts +0 -0
  1671. /package/esm/{typings/src → src}/execution/translation/automatic-translate/automatic-translators/AutomaticTranslator.d.ts +0 -0
  1672. /package/esm/{typings/src → src}/execution/translation/automatic-translate/automatic-translators/DebugAutomaticTranslator.d.ts +0 -0
  1673. /package/esm/{typings/src → src}/execution/translation/automatic-translate/automatic-translators/FakeAutomaticTranslator.d.ts +0 -0
  1674. /package/esm/{typings/src → src}/execution/translation/automatic-translate/automatic-translators/LindatAutomaticTranslator.d.ts +0 -0
  1675. /package/esm/{typings/src → src}/execution/translation/automatic-translate/automatic-translators/TranslatorOptions.d.ts +0 -0
  1676. /package/esm/{typings/src → src}/execution/translation/automatic-translate/automatic-translators/utils/extractMultiplicatedOccurrence.d.ts +0 -0
  1677. /package/esm/{typings/src/execution/utils/usageToWorktime.test.d.ts → src/execution/translation/automatic-translate/automatic-translators/utils/extractMultiplicatedOccurrence.test.d.ts} +0 -0
  1678. /package/esm/{typings/src → src}/execution/translation/automatic-translate/translateMessages.d.ts +0 -0
  1679. /package/esm/{typings/src → src}/execution/utils/$provideExecutionToolsForNode.d.ts +0 -0
  1680. /package/esm/{typings/src → src}/execution/utils/addUsage.d.ts +0 -0
  1681. /package/esm/{typings/src/formats/csv/utils/isValidCsvString.test.d.ts → src/execution/utils/addUsage.test.d.ts} +0 -0
  1682. /package/esm/{typings/src → src}/execution/utils/checkExpectations.d.ts +0 -0
  1683. /package/esm/{typings/src/formats/json/utils/isValidJsonString.test.d.ts → src/execution/utils/checkExpectations.test.d.ts} +0 -0
  1684. /package/esm/{typings/src → src}/execution/utils/computeUsageCounts.d.ts +0 -0
  1685. /package/esm/{typings/src → src}/execution/utils/forEachAsync.d.ts +0 -0
  1686. /package/esm/{typings/src → src}/execution/utils/uncertainNumber.d.ts +0 -0
  1687. /package/esm/{typings/src → src}/execution/utils/usage-constants.d.ts +0 -0
  1688. /package/esm/{typings/src → src}/execution/utils/usageToHuman.d.ts +0 -0
  1689. /package/esm/{typings/src → src}/execution/utils/usageToWorktime.d.ts +0 -0
  1690. /package/esm/{typings/src/formats/xml/utils/isValidXmlString.test.d.ts → src/execution/utils/usageToWorktime.test.d.ts} +0 -0
  1691. /package/esm/{typings/src → src}/execution/utils/validatePromptResult.d.ts +0 -0
  1692. /package/esm/{typings/src → src}/formats/_common/FormatParser.d.ts +0 -0
  1693. /package/esm/{typings/src → src}/formats/_common/FormatSubvalueParser.d.ts +0 -0
  1694. /package/esm/{typings/src → src}/formats/csv/CsvFormatError.d.ts +0 -0
  1695. /package/esm/{typings/src → src}/formats/csv/CsvFormatParser.d.ts +0 -0
  1696. /package/esm/{typings/src → src}/formats/csv/CsvSettings.d.ts +0 -0
  1697. /package/esm/{typings/src → src}/formats/csv/utils/csvParse.d.ts +0 -0
  1698. /package/esm/{typings/src → src}/formats/csv/utils/isValidCsvString.d.ts +0 -0
  1699. /package/esm/{typings/src/llm-providers/_common/register/createLlmToolsFromConfiguration.test.d.ts → src/formats/csv/utils/isValidCsvString.test.d.ts} +0 -0
  1700. /package/esm/{typings/src → src}/formats/index.d.ts +0 -0
  1701. /package/esm/{typings/src → src}/formats/json/JsonFormatParser.d.ts +0 -0
  1702. /package/esm/{typings/src → src}/formats/json/utils/isValidJsonString.d.ts +0 -0
  1703. /package/esm/{typings/src/llm-providers/_common/utils/pricing.test.d.ts → src/formats/json/utils/isValidJsonString.test.d.ts} +0 -0
  1704. /package/esm/{typings/src → src}/formats/json/utils/jsonParse.d.ts +0 -0
  1705. /package/esm/{typings/src → src}/formats/text/TextFormatParser.d.ts +0 -0
  1706. /package/esm/{typings/src → src}/formats/xml/XmlFormatParser.d.ts +0 -0
  1707. /package/esm/{typings/src → src}/formats/xml/utils/isValidXmlString.d.ts +0 -0
  1708. /package/esm/{typings/src/llm-providers/_common/utils/removeUnsupportedModelRequirements.test.d.ts → src/formats/xml/utils/isValidXmlString.test.d.ts} +0 -0
  1709. /package/esm/{typings/src → src}/formfactors/_boilerplate/BoilerplateFormfactorDefinition.d.ts +0 -0
  1710. /package/esm/{typings/src → src}/formfactors/_common/AbstractFormfactorDefinition.d.ts +0 -0
  1711. /package/esm/{typings/src → src}/formfactors/_common/FormfactorDefinition.d.ts +0 -0
  1712. /package/esm/{typings/src → src}/formfactors/_common/string_formfactor_name.d.ts +0 -0
  1713. /package/esm/{typings/src → src}/formfactors/chatbot/ChatbotFormfactorDefinition.d.ts +0 -0
  1714. /package/esm/{typings/src → src}/formfactors/completion/CompletionFormfactorDefinition.d.ts +0 -0
  1715. /package/esm/{typings/src → src}/formfactors/generator/GeneratorFormfactorDefinition.d.ts +0 -0
  1716. /package/esm/{typings/src → src}/formfactors/generic/GenericFormfactorDefinition.d.ts +0 -0
  1717. /package/esm/{typings/src → src}/formfactors/image-generator/ImageGeneratorFormfactorDefinition.d.ts +0 -0
  1718. /package/esm/{typings/src → src}/formfactors/index.d.ts +0 -0
  1719. /package/esm/{typings/src → src}/formfactors/matcher/MatcherFormfactorDefinition.d.ts +0 -0
  1720. /package/esm/{typings/src → src}/formfactors/sheets/SheetsFormfactorDefinition.d.ts +0 -0
  1721. /package/esm/{typings/src → src}/formfactors/translator/TranslatorFormfactorDefinition.d.ts +0 -0
  1722. /package/esm/{typings/src → src}/high-level-abstractions/_common/HighLevelAbstraction.d.ts +0 -0
  1723. /package/esm/{typings/src → src}/high-level-abstractions/implicit-formfactor/ImplicitFormfactorHla.d.ts +0 -0
  1724. /package/esm/{typings/src → src}/high-level-abstractions/index.d.ts +0 -0
  1725. /package/esm/{typings/src → src}/high-level-abstractions/quick-chatbot/QuickChatbotHla.d.ts +0 -0
  1726. /package/esm/{typings/src → src}/import-plugins/$fileImportPlugins.d.ts +0 -0
  1727. /package/esm/{typings/src → src}/import-plugins/AgentFileImportPlugin.d.ts +0 -0
  1728. /package/esm/{typings/src → src}/import-plugins/FileImportPlugin.d.ts +0 -0
  1729. /package/esm/{typings/src → src}/import-plugins/JsonFileImportPlugin.d.ts +0 -0
  1730. /package/esm/{typings/src → src}/import-plugins/TextFileImportPlugin.d.ts +0 -0
  1731. /package/esm/{typings/src → src}/llm-providers/_common/filterModels.d.ts +0 -0
  1732. /package/esm/{typings/src → src}/llm-providers/_common/register/$llmToolsMetadataRegister.d.ts +0 -0
  1733. /package/esm/{typings/src → src}/llm-providers/_common/register/$llmToolsRegister.d.ts +0 -0
  1734. /package/esm/{typings/src → src}/llm-providers/_common/register/$provideEnvFilename.d.ts +0 -0
  1735. /package/esm/{typings/src → src}/llm-providers/_common/register/$provideLlmToolsConfigurationFromEnv.d.ts +0 -0
  1736. /package/esm/{typings/src → src}/llm-providers/_common/register/$provideLlmToolsForTestingAndScriptsAndPlayground.d.ts +0 -0
  1737. /package/esm/{typings/src → src}/llm-providers/_common/register/$provideLlmToolsForWizardOrCli.d.ts +0 -0
  1738. /package/esm/{typings/src → src}/llm-providers/_common/register/$provideLlmToolsFromEnv.d.ts +0 -0
  1739. /package/esm/{typings/src → src}/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +0 -0
  1740. /package/esm/{typings/src → src}/llm-providers/_common/register/LlmToolsConfiguration.d.ts +0 -0
  1741. /package/esm/{typings/src → src}/llm-providers/_common/register/LlmToolsMetadata.d.ts +0 -0
  1742. /package/esm/{typings/src → src}/llm-providers/_common/register/LlmToolsOptions.d.ts +0 -0
  1743. /package/esm/{typings/src → src}/llm-providers/_common/register/createLlmToolsFromConfiguration.d.ts +0 -0
  1744. /package/esm/{typings/src/llm-providers/agent/AgentLlmExecutionTools.test.d.ts → src/llm-providers/_common/register/createLlmToolsFromConfiguration.test.d.ts} +0 -0
  1745. /package/esm/{typings/src → src}/llm-providers/_common/utils/assertUniqueModels.d.ts +0 -0
  1746. /package/esm/{typings/src → src}/llm-providers/_common/utils/cache/CacheItem.d.ts +0 -0
  1747. /package/esm/{typings/src → src}/llm-providers/_common/utils/cache/CacheLlmToolsOptions.d.ts +0 -0
  1748. /package/esm/{typings/src → src}/llm-providers/_common/utils/cache/cacheLlmTools.d.ts +0 -0
  1749. /package/esm/{typings/src → src}/llm-providers/_common/utils/count-total-usage/LlmExecutionToolsWithTotalUsage.d.ts +0 -0
  1750. /package/esm/{typings/src → src}/llm-providers/_common/utils/count-total-usage/countUsage.d.ts +0 -0
  1751. /package/esm/{typings/src → src}/llm-providers/_common/utils/count-total-usage/limitTotalUsage.d.ts +0 -0
  1752. /package/esm/{typings/src → src}/llm-providers/_common/utils/pricing.d.ts +0 -0
  1753. /package/esm/{typings/src/llm-providers/mocked/test/fakeTextToExpectations.test.d.ts → src/llm-providers/_common/utils/pricing.test.d.ts} +0 -0
  1754. /package/esm/{typings/src → src}/llm-providers/_common/utils/removeUnsupportedModelRequirements.d.ts +0 -0
  1755. /package/esm/{typings/src/llm-providers/mocked/test/faked-completion.test.d.ts → src/llm-providers/_common/utils/removeUnsupportedModelRequirements.test.d.ts} +0 -0
  1756. /package/esm/{typings/src → src}/llm-providers/_multiple/MultipleLlmExecutionTools.d.ts +0 -0
  1757. /package/esm/{typings/src → src}/llm-providers/_multiple/getSingleLlmExecutionTools.d.ts +0 -0
  1758. /package/esm/{typings/src → src}/llm-providers/_multiple/joinLlmExecutionTools.d.ts +0 -0
  1759. /package/esm/{typings/src → src}/llm-providers/_multiple/playground/playground.d.ts +0 -0
  1760. /package/esm/{typings/src → src}/llm-providers/agent/AgentLlmExecutionTools.d.ts +0 -0
  1761. /package/esm/{typings/src/postprocessing/utils/extractJsonBlock.test.d.ts → src/llm-providers/agent/AgentLlmExecutionTools.test.d.ts} +0 -0
  1762. /package/esm/{typings/src → src}/llm-providers/agent/AgentOptions.d.ts +0 -0
  1763. /package/esm/{typings/src → src}/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +0 -0
  1764. /package/esm/{typings/src/prepare/isPipelinePrepared.test.d.ts → src/llm-providers/agent/RemoteAgent.test.d.ts} +0 -0
  1765. /package/esm/{typings/src → src}/llm-providers/agent/RemoteAgentOptions.d.ts +0 -0
  1766. /package/esm/{typings/src → src}/llm-providers/agent/createAgentLlmExecutionTools.d.ts +0 -0
  1767. /package/esm/{typings/src → src}/llm-providers/agent/playground/playground.d.ts +0 -0
  1768. /package/esm/{typings/src → src}/llm-providers/agent/register-configuration.d.ts +0 -0
  1769. /package/esm/{typings/src → src}/llm-providers/agent/register-constructor.d.ts +0 -0
  1770. /package/esm/{typings/src → src}/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +0 -0
  1771. /package/esm/{typings/src → src}/llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions.d.ts +0 -0
  1772. /package/esm/{typings/src → src}/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +0 -0
  1773. /package/esm/{typings/src → src}/llm-providers/anthropic-claude/computeAnthropicClaudeUsage.d.ts +0 -0
  1774. /package/esm/{typings/src → src}/llm-providers/anthropic-claude/computeAnthropicClaudeUsage.test.d.ts +0 -0
  1775. /package/esm/{typings/src → src}/llm-providers/anthropic-claude/createAnthropicClaudeExecutionTools.d.ts +0 -0
  1776. /package/esm/{typings/src → src}/llm-providers/anthropic-claude/playground/playground.d.ts +0 -0
  1777. /package/esm/{typings/src → src}/llm-providers/anthropic-claude/register-configuration.d.ts +0 -0
  1778. /package/esm/{typings/src → src}/llm-providers/anthropic-claude/register-constructor.d.ts +0 -0
  1779. /package/esm/{typings/src → src}/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +0 -0
  1780. /package/esm/{typings/src → src}/llm-providers/azure-openai/AzureOpenAiExecutionToolsOptions.d.ts +0 -0
  1781. /package/esm/{typings/src → src}/llm-providers/azure-openai/createAzureOpenAiExecutionTools.d.ts +0 -0
  1782. /package/esm/{typings/src → src}/llm-providers/azure-openai/playground/playground.d.ts +0 -0
  1783. /package/esm/{typings/src → src}/llm-providers/azure-openai/register-configuration.d.ts +0 -0
  1784. /package/esm/{typings/src → src}/llm-providers/azure-openai/register-constructor.d.ts +0 -0
  1785. /package/esm/{typings/src → src}/llm-providers/deepseek/DeepseekExecutionToolsOptions.d.ts +0 -0
  1786. /package/esm/{typings/src → src}/llm-providers/deepseek/createDeepseekExecutionTools.d.ts +0 -0
  1787. /package/esm/{typings/src → src}/llm-providers/deepseek/deepseek-models.d.ts +0 -0
  1788. /package/esm/{typings/src → src}/llm-providers/deepseek/register-configuration.d.ts +0 -0
  1789. /package/esm/{typings/src → src}/llm-providers/deepseek/register-constructor.d.ts +0 -0
  1790. /package/esm/{typings/src → src}/llm-providers/google/GoogleExecutionToolsOptions.d.ts +0 -0
  1791. /package/esm/{typings/src → src}/llm-providers/google/createGoogleExecutionTools.d.ts +0 -0
  1792. /package/esm/{typings/src → src}/llm-providers/google/google-models.d.ts +0 -0
  1793. /package/esm/{typings/src → src}/llm-providers/google/register-configuration.d.ts +0 -0
  1794. /package/esm/{typings/src → src}/llm-providers/google/register-constructor.d.ts +0 -0
  1795. /package/esm/{typings/src → src}/llm-providers/mocked/$fakeTextToExpectations.d.ts +0 -0
  1796. /package/esm/{typings/src → src}/llm-providers/mocked/MockedEchoLlmExecutionTools.d.ts +0 -0
  1797. /package/esm/{typings/src → src}/llm-providers/mocked/MockedFackedLlmExecutionTools.d.ts +0 -0
  1798. /package/esm/{typings/src/scrapers/_common/prepareKnowledgePieces.test.d.ts → src/llm-providers/mocked/test/fakeTextToExpectations.test.d.ts} +0 -0
  1799. /package/esm/{typings/src/scrapers/_common/utils/promptbookFetch.test.d.ts → src/llm-providers/mocked/test/faked-completion.test.d.ts} +0 -0
  1800. /package/esm/{typings/src → src}/llm-providers/mocked/test/joker.test.d.ts +0 -0
  1801. /package/esm/{typings/src → src}/llm-providers/mocked/test/mocked-chat.test.d.ts +0 -0
  1802. /package/esm/{typings/src → src}/llm-providers/mocked/test/mocked-completion.test.d.ts +0 -0
  1803. /package/esm/{typings/src → src}/llm-providers/ollama/OllamaExecutionTools.d.ts +0 -0
  1804. /package/esm/{typings/src → src}/llm-providers/ollama/OllamaExecutionToolsOptions.d.ts +0 -0
  1805. /package/esm/{typings/src → src}/llm-providers/ollama/createOllamaExecutionTools.d.ts +0 -0
  1806. /package/esm/{typings/src → src}/llm-providers/ollama/ollama-models.d.ts +0 -0
  1807. /package/esm/{typings/src → src}/llm-providers/ollama/playground/playground.d.ts +0 -0
  1808. /package/esm/{typings/src → src}/llm-providers/ollama/register-configuration.d.ts +0 -0
  1809. /package/esm/{typings/src → src}/llm-providers/ollama/register-constructor.d.ts +0 -0
  1810. /package/esm/{typings/src → src}/llm-providers/openai/OpenAiAgentKitExecutionTools.d.ts +0 -0
  1811. /package/esm/{typings/src → src}/llm-providers/openai/OpenAiAgentKitExecutionToolsOptions.d.ts +0 -0
  1812. /package/esm/{typings/src → src}/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +0 -0
  1813. /package/esm/{typings/src → src}/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +0 -0
  1814. /package/esm/{typings/src → src}/llm-providers/openai/OpenAiCompatibleExecutionTools.d.ts +0 -0
  1815. /package/esm/{typings/src → src}/llm-providers/openai/OpenAiCompatibleExecutionToolsOptions.d.ts +0 -0
  1816. /package/esm/{typings/src → src}/llm-providers/openai/OpenAiExecutionTools.d.ts +0 -0
  1817. /package/esm/{typings/src → src}/llm-providers/openai/OpenAiExecutionToolsOptions.d.ts +0 -0
  1818. /package/esm/{typings/src → src}/llm-providers/openai/OpenAiVectorStoreHandler.d.ts +0 -0
  1819. /package/esm/{typings/src → src}/llm-providers/openai/computeOpenAiUsage.d.ts +0 -0
  1820. /package/esm/{typings/src → src}/llm-providers/openai/computeOpenAiUsage.test.d.ts +0 -0
  1821. /package/esm/{typings/src → src}/llm-providers/openai/createOpenAiAssistantExecutionTools.d.ts +0 -0
  1822. /package/esm/{typings/src → src}/llm-providers/openai/createOpenAiCompatibleExecutionTools.d.ts +0 -0
  1823. /package/esm/{typings/src → src}/llm-providers/openai/createOpenAiExecutionTools.d.ts +0 -0
  1824. /package/esm/{typings/src → src}/llm-providers/openai/openai-models.d.ts +0 -0
  1825. /package/esm/{typings/src → src}/llm-providers/openai/openai-models.test.d.ts +0 -0
  1826. /package/esm/{typings/src → src}/llm-providers/openai/playground/playground.d.ts +0 -0
  1827. /package/esm/{typings/src → src}/llm-providers/openai/register-configuration.d.ts +0 -0
  1828. /package/esm/{typings/src → src}/llm-providers/openai/register-constructor.d.ts +0 -0
  1829. /package/esm/{typings/src → src}/llm-providers/openai/utils/buildToolInvocationScript.d.ts +0 -0
  1830. /package/esm/{typings/src → src}/llm-providers/openai/utils/mapToolsToOpenAi.d.ts +0 -0
  1831. /package/esm/{typings/src → src}/llm-providers/openai/utils/uploadFilesToOpenAi.d.ts +0 -0
  1832. /package/esm/{typings/src → src}/llm-providers/remote/RemoteLlmExecutionTools.d.ts +0 -0
  1833. /package/esm/{typings/src → src}/llm-providers/remote/playground/playground.d.ts +0 -0
  1834. /package/esm/{typings/src → src}/llm-providers/vercel/VercelExecutionToolsOptions.d.ts +0 -0
  1835. /package/esm/{typings/src → src}/llm-providers/vercel/VercelProvider.d.ts +0 -0
  1836. /package/esm/{typings/src → src}/llm-providers/vercel/createExecutionToolsFromVercelProvider.d.ts +0 -0
  1837. /package/esm/{typings/src → src}/llm-providers/vercel/playground/playground.d.ts +0 -0
  1838. /package/esm/{typings/src → src}/migrations/migratePipeline.d.ts +0 -0
  1839. /package/esm/{typings/src → src}/other/templates/getBookTemplates.d.ts +0 -0
  1840. /package/esm/{typings/src → src}/other/templates/getTemplatesPipelineCollection.d.ts +0 -0
  1841. /package/esm/{typings/src → src}/personas/preparePersona.d.ts +0 -0
  1842. /package/esm/{typings/src → src}/pipeline/PipelineInterface/PipelineInterface.d.ts +0 -0
  1843. /package/esm/{typings/src → src}/pipeline/PipelineInterface/constants.d.ts +0 -0
  1844. /package/esm/{typings/src → src}/pipeline/PipelineInterface/getPipelineInterface.d.ts +0 -0
  1845. /package/esm/{typings/src → src}/pipeline/PipelineInterface/isPipelineImplementingInterface.d.ts +0 -0
  1846. /package/esm/{typings/src → src}/pipeline/PipelineInterface/isPipelineInterfacesEqual.d.ts +0 -0
  1847. /package/esm/{typings/src → src}/pipeline/PipelineJson/CommonTaskJson.d.ts +0 -0
  1848. /package/esm/{typings/src → src}/pipeline/PipelineJson/DialogTaskJson.d.ts +0 -0
  1849. /package/esm/{typings/src → src}/pipeline/PipelineJson/Expectations.d.ts +0 -0
  1850. /package/esm/{typings/src → src}/pipeline/PipelineJson/KnowledgePieceJson.d.ts +0 -0
  1851. /package/esm/{typings/src → src}/pipeline/PipelineJson/KnowledgeSourceJson.d.ts +0 -0
  1852. /package/esm/{typings/src → src}/pipeline/PipelineJson/ParameterJson.d.ts +0 -0
  1853. /package/esm/{typings/src → src}/pipeline/PipelineJson/PersonaJson.d.ts +0 -0
  1854. /package/esm/{typings/src → src}/pipeline/PipelineJson/PipelineJson.d.ts +0 -0
  1855. /package/esm/{typings/src → src}/pipeline/PipelineJson/PreparationJson.d.ts +0 -0
  1856. /package/esm/{typings/src → src}/pipeline/PipelineJson/PromptTaskJson.d.ts +0 -0
  1857. /package/esm/{typings/src → src}/pipeline/PipelineJson/ScriptTaskJson.d.ts +0 -0
  1858. /package/esm/{typings/src → src}/pipeline/PipelineJson/SimpleTaskJson.d.ts +0 -0
  1859. /package/esm/{typings/src → src}/pipeline/PipelineJson/TaskJson.d.ts +0 -0
  1860. /package/esm/{typings/src → src}/pipeline/PipelineString.d.ts +0 -0
  1861. /package/esm/{typings/src → src}/pipeline/book-notation.d.ts +0 -0
  1862. /package/esm/{typings/src → src}/pipeline/isValidPipelineString.d.ts +0 -0
  1863. /package/esm/{typings/src → src}/pipeline/isValidPipelineString.test.d.ts +0 -0
  1864. /package/esm/{typings/src → src}/pipeline/prompt-notation.d.ts +0 -0
  1865. /package/esm/{typings/src → src}/pipeline/prompt-notation.test.d.ts +0 -0
  1866. /package/esm/{typings/src → src}/pipeline/validatePipelineString.d.ts +0 -0
  1867. /package/esm/{typings/src → src}/playground/permanent/_boilerplate.d.ts +0 -0
  1868. /package/esm/{typings/src → src}/playground/permanent/agent-with-browser-playground.d.ts +0 -0
  1869. /package/esm/{typings/src → src}/playground/permanent/error-handling-playground.d.ts +0 -0
  1870. /package/esm/{typings/src → src}/playground/playground.d.ts +0 -0
  1871. /package/esm/{typings/src → src}/postprocessing/utils/extractBlock.d.ts +0 -0
  1872. /package/esm/{typings/src → src}/postprocessing/utils/extractJsonBlock.d.ts +0 -0
  1873. /package/esm/{typings/src/scrapers/website/utils/createShowdownConverter.test.d.ts → src/postprocessing/utils/extractJsonBlock.test.d.ts} +0 -0
  1874. /package/esm/{typings/src → src}/prepare/PrepareAndScrapeOptions.d.ts +0 -0
  1875. /package/esm/{typings/src → src}/prepare/isPipelinePrepared.d.ts +0 -0
  1876. /package/esm/{typings/src/scripting/_test/custom-function-async.test.ts.test.d.ts → src/prepare/isPipelinePrepared.test.d.ts} +0 -0
  1877. /package/esm/{typings/src → src}/prepare/preparePipeline.d.ts +0 -0
  1878. /package/esm/{typings/src → src}/prepare/preparePipelineOnRemoteServer.d.ts +0 -0
  1879. /package/esm/{typings/src → src}/prepare/prepareTasks.d.ts +0 -0
  1880. /package/esm/{typings/src → src}/prepare/unpreparePipeline.d.ts +0 -0
  1881. /package/esm/{typings/src → src}/remote-server/RemoteServer.d.ts +0 -0
  1882. /package/esm/{typings/src → src}/remote-server/createRemoteClient.d.ts +0 -0
  1883. /package/esm/{typings/src → src}/remote-server/openapi-types.d.ts +0 -0
  1884. /package/esm/{typings/src → src}/remote-server/openapi.d.ts +0 -0
  1885. /package/esm/{typings/src → src}/remote-server/socket-types/_common/PromptbookServer_Error.d.ts +0 -0
  1886. /package/esm/{typings/src → src}/remote-server/socket-types/_subtypes/Identification.d.ts +0 -0
  1887. /package/esm/{typings/src → src}/remote-server/socket-types/_subtypes/identificationToPromptbookToken.d.ts +0 -0
  1888. /package/esm/{typings/src → src}/remote-server/socket-types/_subtypes/promptbookTokenToIdentification.d.ts +0 -0
  1889. /package/esm/{typings/src → src}/remote-server/socket-types/listModels/PromptbookServer_ListModels_Request.d.ts +0 -0
  1890. /package/esm/{typings/src → src}/remote-server/socket-types/listModels/PromptbookServer_ListModels_Response.d.ts +0 -0
  1891. /package/esm/{typings/src → src}/remote-server/socket-types/prepare/PromptbookServer_PreparePipeline_Request.d.ts +0 -0
  1892. /package/esm/{typings/src → src}/remote-server/socket-types/prepare/PromptbookServer_PreparePipeline_Response.d.ts +0 -0
  1893. /package/esm/{typings/src → src}/remote-server/socket-types/prompt/PromptbookServer_Prompt_Request.d.ts +0 -0
  1894. /package/esm/{typings/src → src}/remote-server/socket-types/prompt/PromptbookServer_Prompt_Response.d.ts +0 -0
  1895. /package/esm/{typings/src → src}/remote-server/startAgentServer.d.ts +0 -0
  1896. /package/esm/{typings/src → src}/remote-server/startRemoteServer.d.ts +0 -0
  1897. /package/esm/{typings/src → src}/remote-server/types/RemoteClientOptions.d.ts +0 -0
  1898. /package/esm/{typings/src → src}/remote-server/types/RemoteServerOptions.d.ts +0 -0
  1899. /package/esm/{typings/src → src}/remote-server/ui/ServerApp.d.ts +0 -0
  1900. /package/esm/{typings/src → src}/remote-server/ui/renderServerIndexHtml.d.ts +0 -0
  1901. /package/esm/{typings/src → src}/remote-server/ui/types.d.ts +0 -0
  1902. /package/esm/{typings/src → src}/scrapers/_boilerplate/BoilerplateScraper.d.ts +0 -0
  1903. /package/esm/{typings/src → src}/scrapers/_boilerplate/createBoilerplateScraper.d.ts +0 -0
  1904. /package/esm/{typings/src → src}/scrapers/_boilerplate/playground/boilerplate-scraper-playground.d.ts +0 -0
  1905. /package/esm/{typings/src → src}/scrapers/_boilerplate/register-constructor.d.ts +0 -0
  1906. /package/esm/{typings/src → src}/scrapers/_boilerplate/register-metadata.d.ts +0 -0
  1907. /package/esm/{typings/src → src}/scrapers/_common/Converter.d.ts +0 -0
  1908. /package/esm/{typings/src → src}/scrapers/_common/Scraper.d.ts +0 -0
  1909. /package/esm/{typings/src → src}/scrapers/_common/ScraperIntermediateSource.d.ts +0 -0
  1910. /package/esm/{typings/src → src}/scrapers/_common/prepareKnowledgePieces.d.ts +0 -0
  1911. /package/esm/{typings/src/scripting/_test/custom-function-missing.test.d.ts → src/scrapers/_common/prepareKnowledgePieces.test.d.ts} +0 -0
  1912. /package/esm/{typings/src → src}/scrapers/_common/register/$provideFilesystemForNode.d.ts +0 -0
  1913. /package/esm/{typings/src → src}/scrapers/_common/register/$provideScrapersForBrowser.d.ts +0 -0
  1914. /package/esm/{typings/src → src}/scrapers/_common/register/$provideScrapersForNode.d.ts +0 -0
  1915. /package/esm/{typings/src → src}/scrapers/_common/register/$provideScriptingForNode.d.ts +0 -0
  1916. /package/esm/{typings/src → src}/scrapers/_common/register/$registeredScrapersMessage.d.ts +0 -0
  1917. /package/esm/{typings/src → src}/scrapers/_common/register/$scrapersMetadataRegister.d.ts +0 -0
  1918. /package/esm/{typings/src → src}/scrapers/_common/register/$scrapersRegister.d.ts +0 -0
  1919. /package/esm/{typings/src → src}/scrapers/_common/register/ScraperAndConverterMetadata.d.ts +0 -0
  1920. /package/esm/{typings/src → src}/scrapers/_common/register/ScraperConstructor.d.ts +0 -0
  1921. /package/esm/{typings/src → src}/scrapers/_common/utils/getScraperIntermediateSource.d.ts +0 -0
  1922. /package/esm/{typings/src → src}/scrapers/_common/utils/getScraperIntermediateSource.test.d.ts +0 -0
  1923. /package/esm/{typings/src → src}/scrapers/_common/utils/makeKnowledgeSourceHandler.d.ts +0 -0
  1924. /package/esm/{typings/src → src}/scrapers/_common/utils/promptbookFetch.d.ts +0 -0
  1925. /package/esm/{typings/src/scripting/_test/custom-function-with-dependencies.test.d.ts → src/scrapers/_common/utils/promptbookFetch.test.d.ts} +0 -0
  1926. /package/esm/{typings/src → src}/scrapers/document/DocumentScraper.d.ts +0 -0
  1927. /package/esm/{typings/src → src}/scrapers/document/DocumentScraper.test.d.ts +0 -0
  1928. /package/esm/{typings/src → src}/scrapers/document/createDocumentScraper.d.ts +0 -0
  1929. /package/esm/{typings/src → src}/scrapers/document/playground/document-scraper-playground.d.ts +0 -0
  1930. /package/esm/{typings/src → src}/scrapers/document/register-constructor.d.ts +0 -0
  1931. /package/esm/{typings/src → src}/scrapers/document/register-metadata.d.ts +0 -0
  1932. /package/esm/{typings/src → src}/scrapers/document-legacy/LegacyDocumentScraper.d.ts +0 -0
  1933. /package/esm/{typings/src → src}/scrapers/document-legacy/LegacyDocumentScraper.test.d.ts +0 -0
  1934. /package/esm/{typings/src → src}/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +0 -0
  1935. /package/esm/{typings/src → src}/scrapers/document-legacy/playground/legacy-document-scraper-playground.d.ts +0 -0
  1936. /package/esm/{typings/src → src}/scrapers/document-legacy/register-constructor.d.ts +0 -0
  1937. /package/esm/{typings/src → src}/scrapers/document-legacy/register-metadata.d.ts +0 -0
  1938. /package/esm/{typings/src → src}/scrapers/markdown/MarkdownScraper.d.ts +0 -0
  1939. /package/esm/{typings/src → src}/scrapers/markdown/MarkdownScraper.test.d.ts +0 -0
  1940. /package/esm/{typings/src → src}/scrapers/markdown/createMarkdownScraper.d.ts +0 -0
  1941. /package/esm/{typings/src → src}/scrapers/markdown/playground/markdown-scraper-playground.d.ts +0 -0
  1942. /package/esm/{typings/src → src}/scrapers/markdown/register-constructor.d.ts +0 -0
  1943. /package/esm/{typings/src → src}/scrapers/markdown/register-metadata.d.ts +0 -0
  1944. /package/esm/{typings/src → src}/scrapers/markitdown/MarkitdownScraper.d.ts +0 -0
  1945. /package/esm/{typings/src → src}/scrapers/markitdown/createMarkitdownScraper.d.ts +0 -0
  1946. /package/esm/{typings/src → src}/scrapers/markitdown/playground/markitdown-scraper-playground.d.ts +0 -0
  1947. /package/esm/{typings/src → src}/scrapers/markitdown/register-constructor.d.ts +0 -0
  1948. /package/esm/{typings/src → src}/scrapers/markitdown/register-metadata.d.ts +0 -0
  1949. /package/esm/{typings/src → src}/scrapers/pdf/PdfScraper.d.ts +0 -0
  1950. /package/esm/{typings/src → src}/scrapers/pdf/createPdfScraper.d.ts +0 -0
  1951. /package/esm/{typings/src → src}/scrapers/pdf/playground/pdf-scraper-playground.d.ts +0 -0
  1952. /package/esm/{typings/src → src}/scrapers/pdf/register-constructor.d.ts +0 -0
  1953. /package/esm/{typings/src → src}/scrapers/pdf/register-metadata.d.ts +0 -0
  1954. /package/esm/{typings/src → src}/scrapers/website/WebsiteScraper.d.ts +0 -0
  1955. /package/esm/{typings/src → src}/scrapers/website/createWebsiteScraper.d.ts +0 -0
  1956. /package/esm/{typings/src → src}/scrapers/website/playground/website-scraper-playground.d.ts +0 -0
  1957. /package/esm/{typings/src → src}/scrapers/website/register-constructor.d.ts +0 -0
  1958. /package/esm/{typings/src → src}/scrapers/website/register-metadata.d.ts +0 -0
  1959. /package/esm/{typings/src → src}/scrapers/website/utils/createShowdownConverter.d.ts +0 -0
  1960. /package/esm/{typings/src/scripting/_test/custom-function.test.d.ts → src/scrapers/website/utils/createShowdownConverter.test.d.ts} +0 -0
  1961. /package/esm/{typings/src/scripting/_test/postprocessing.test.d.ts → src/scripting/_test/custom-function-async.test.ts.test.d.ts} +0 -0
  1962. /package/esm/{typings/src/scripting/_test/script-execution-errors.test.d.ts → src/scripting/_test/custom-function-missing.test.d.ts} +0 -0
  1963. /package/esm/{typings/src/scripting/_test/script-execution-tools.test.d.ts → src/scripting/_test/custom-function-with-dependencies.test.d.ts} +0 -0
  1964. /package/esm/{typings/src/scripting/javascript/utils/extractVariablesFromJavascript.test.d.ts → src/scripting/_test/custom-function.test.d.ts} +0 -0
  1965. /package/esm/{typings/src/scripting/javascript/utils/extractVariablesFromScript.test.d.ts → src/scripting/_test/postprocessing.test.d.ts} +0 -0
  1966. /package/esm/{typings/src/storage/file-cache-storage/utils/nameToSubfolderPath.test.d.ts → src/scripting/_test/script-execution-errors.test.d.ts} +0 -0
  1967. /package/esm/{typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.test.d.ts → src/scripting/_test/script-execution-tools.test.d.ts} +0 -0
  1968. /package/esm/{typings/src → src}/scripting/javascript/JavascriptEvalExecutionTools.d.ts +0 -0
  1969. /package/esm/{typings/src → src}/scripting/javascript/JavascriptEvalExecutionTools.test.d.ts +0 -0
  1970. /package/esm/{typings/src → src}/scripting/javascript/JavascriptExecutionTools.d.ts +0 -0
  1971. /package/esm/{typings/src → src}/scripting/javascript/JavascriptExecutionToolsOptions.d.ts +0 -0
  1972. /package/esm/{typings/src → src}/scripting/javascript/postprocessing-functions.d.ts +0 -0
  1973. /package/esm/{typings/src → src}/scripting/javascript/utils/extractVariablesFromJavascript.d.ts +0 -0
  1974. /package/esm/{typings/src/utils/color/Color.test.d.ts → src/scripting/javascript/utils/extractVariablesFromJavascript.test.d.ts} +0 -0
  1975. /package/esm/{typings/src/utils/color/utils/colorHueDistance.test.d.ts → src/scripting/javascript/utils/extractVariablesFromScript.test.d.ts} +0 -0
  1976. /package/esm/{typings/src → src}/scripting/python/PythonExecutionTools.d.ts +0 -0
  1977. /package/esm/{typings/src → src}/scripting/typescript/TypescriptExecutionTools.d.ts +0 -0
  1978. /package/esm/{typings/src → src}/search-engines/SearchEngine.d.ts +0 -0
  1979. /package/esm/{typings/src → src}/search-engines/SearchResult.d.ts +0 -0
  1980. /package/esm/{typings/src → src}/search-engines/_index.d.ts +0 -0
  1981. /package/esm/{typings/src → src}/search-engines/bing/BingSearchEngine.d.ts +0 -0
  1982. /package/esm/{typings/src → src}/search-engines/dummy/DummySearchEngine.d.ts +0 -0
  1983. /package/esm/{typings/src → src}/search-engines/google/GoogleSearchEngine.d.ts +0 -0
  1984. /package/esm/{typings/src → src}/search-engines/serp/SerpSearchEngine.d.ts +0 -0
  1985. /package/esm/{typings/src → src}/speech-recognition/BrowserSpeechRecognition.d.ts +0 -0
  1986. /package/esm/{typings/src → src}/speech-recognition/OpenAiSpeechRecognition.d.ts +0 -0
  1987. /package/esm/{typings/src → src}/storage/_common/PromptbookStorage.d.ts +0 -0
  1988. /package/esm/{typings/src → src}/storage/_common/PromptbookStorage.test-type.d.ts +0 -0
  1989. /package/esm/{typings/src → src}/storage/blackhole/BlackholeStorage.d.ts +0 -0
  1990. /package/esm/{typings/src → src}/storage/env-storage/$EnvStorage.d.ts +0 -0
  1991. /package/esm/{typings/src → src}/storage/file-cache-storage/FileCacheStorage.d.ts +0 -0
  1992. /package/esm/{typings/src → src}/storage/file-cache-storage/FileCacheStorageOptions.d.ts +0 -0
  1993. /package/esm/{typings/src → src}/storage/file-cache-storage/utils/nameToSubfolderPath.d.ts +0 -0
  1994. /package/esm/{typings/src/utils/editable/edit-pipeline-string/addPipelineCommand.test.d.ts → src/storage/file-cache-storage/utils/nameToSubfolderPath.test.d.ts} +0 -0
  1995. /package/esm/{typings/src → src}/storage/local-storage/getIndexedDbStorage.d.ts +0 -0
  1996. /package/esm/{typings/src → src}/storage/local-storage/getLocalStorage.d.ts +0 -0
  1997. /package/esm/{typings/src → src}/storage/local-storage/getSessionStorage.d.ts +0 -0
  1998. /package/esm/{typings/src → src}/storage/local-storage/utils/IndexedDbStorageOptions.d.ts +0 -0
  1999. /package/esm/{typings/src → src}/storage/local-storage/utils/makePromptbookStorageFromIndexedDb.d.ts +0 -0
  2000. /package/esm/{typings/src → src}/storage/local-storage/utils/makePromptbookStorageFromWebStorage.d.ts +0 -0
  2001. /package/esm/{typings/src → src}/storage/memory/MemoryStorage.d.ts +0 -0
  2002. /package/esm/{typings/src → src}/storage/utils/PrefixStorage.d.ts +0 -0
  2003. /package/esm/{typings/src → src}/transpilers/_common/BookTranspiler.d.ts +0 -0
  2004. /package/esm/{typings/src → src}/transpilers/_common/BookTranspilerOptions.d.ts +0 -0
  2005. /package/esm/{typings/src → src}/transpilers/_common/register/$bookTranspilersRegister.d.ts +0 -0
  2006. /package/esm/{typings/src → src}/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.d.ts +0 -0
  2007. /package/esm/{typings/src → src}/transpilers/formatted-book-in-markdown/register.d.ts +0 -0
  2008. /package/esm/{typings/src → src}/transpilers/openai-sdk/OpenAiSdkTranspiler.d.ts +0 -0
  2009. /package/esm/{typings/src/utils/editable/edit-pipeline-string/deflatePipeline.test.d.ts → src/transpilers/openai-sdk/OpenAiSdkTranspiler.test.d.ts} +0 -0
  2010. /package/esm/{typings/src → src}/transpilers/openai-sdk/playground/playground.d.ts +0 -0
  2011. /package/esm/{typings/src → src}/transpilers/openai-sdk/register.d.ts +0 -0
  2012. /package/esm/{typings/src → src}/types/Arrayable.d.ts +0 -0
  2013. /package/esm/{typings/src → src}/types/IntermediateFilesStrategy.d.ts +0 -0
  2014. /package/esm/{typings/src → src}/types/LlmCall.d.ts +0 -0
  2015. /package/esm/{typings/src → src}/types/LlmToolDefinition.d.ts +0 -0
  2016. /package/esm/{typings/src → src}/types/Message.d.ts +0 -0
  2017. /package/esm/{typings/src → src}/types/ModelRequirements.d.ts +0 -0
  2018. /package/esm/{typings/src → src}/types/ModelVariant.d.ts +0 -0
  2019. /package/esm/{typings/src → src}/types/NonEmptyArray.d.ts +0 -0
  2020. /package/esm/{typings/src → src}/types/Prompt.d.ts +0 -0
  2021. /package/esm/{typings/src → src}/types/ScriptLanguage.d.ts +0 -0
  2022. /package/esm/{typings/src → src}/types/SectionType.d.ts +0 -0
  2023. /package/esm/{typings/src → src}/types/SpeechRecognition.d.ts +0 -0
  2024. /package/esm/{typings/src → src}/types/TaskType.d.ts +0 -0
  2025. /package/esm/{typings/src → src}/types/ToolCall.d.ts +0 -0
  2026. /package/esm/{typings/src → src}/types/Updatable.d.ts +0 -0
  2027. /package/esm/{typings/src → src}/types/typeAliasEmoji.d.ts +0 -0
  2028. /package/esm/{typings/src → src}/types/typeAliases.d.ts +0 -0
  2029. /package/esm/{typings/src → src}/utils/DEFAULT_THINKING_MESSAGES.d.ts +0 -0
  2030. /package/esm/{typings/src → src}/utils/agents/resolveAgentAvatarImageUrl.d.ts +0 -0
  2031. /package/esm/{typings/src → src}/utils/clientVersion.d.ts +0 -0
  2032. /package/esm/{typings/src → src}/utils/color/$randomColor.d.ts +0 -0
  2033. /package/esm/{typings/src/utils/editable/edit-pipeline-string/removePipelineCommand.test.d.ts → src/utils/color/Color.test.d.ts} +0 -0
  2034. /package/esm/{typings/src → src}/utils/color/css-colors.d.ts +0 -0
  2035. /package/esm/{typings/src → src}/utils/color/internal-utils/checkChannelValue.d.ts +0 -0
  2036. /package/esm/{typings/src → src}/utils/color/internal-utils/hslToRgb.d.ts +0 -0
  2037. /package/esm/{typings/src → src}/utils/color/internal-utils/rgbToHsl.d.ts +0 -0
  2038. /package/esm/{typings/src → src}/utils/color/operators/ColorTransformer.d.ts +0 -0
  2039. /package/esm/{typings/src → src}/utils/color/operators/darken.d.ts +0 -0
  2040. /package/esm/{typings/src → src}/utils/color/operators/furthest.d.ts +0 -0
  2041. /package/esm/{typings/src → src}/utils/color/operators/grayscale.d.ts +0 -0
  2042. /package/esm/{typings/src → src}/utils/color/operators/lighten.d.ts +0 -0
  2043. /package/esm/{typings/src → src}/utils/color/operators/mixWithColor.d.ts +0 -0
  2044. /package/esm/{typings/src → src}/utils/color/operators/nearest.d.ts +0 -0
  2045. /package/esm/{typings/src → src}/utils/color/operators/negative.d.ts +0 -0
  2046. /package/esm/{typings/src → src}/utils/color/operators/negativeLightness.d.ts +0 -0
  2047. /package/esm/{typings/src → src}/utils/color/operators/saturate.d.ts +0 -0
  2048. /package/esm/{typings/src → src}/utils/color/operators/withAlpha.d.ts +0 -0
  2049. /package/esm/{typings/src → src}/utils/color/utils/areColorsEqual.d.ts +0 -0
  2050. /package/esm/{typings/src → src}/utils/color/utils/colorDistance.d.ts +0 -0
  2051. /package/esm/{typings/src → src}/utils/color/utils/colorHue.d.ts +0 -0
  2052. /package/esm/{typings/src → src}/utils/color/utils/colorHueDistance.d.ts +0 -0
  2053. /package/esm/{typings/src/utils/editable/utils/isFlatPipeline.test.d.ts → src/utils/color/utils/colorHueDistance.test.d.ts} +0 -0
  2054. /package/esm/{typings/src → src}/utils/color/utils/colorLuminance.d.ts +0 -0
  2055. /package/esm/{typings/src → src}/utils/color/utils/colorSatulightion.d.ts +0 -0
  2056. /package/esm/{typings/src → src}/utils/color/utils/colorSaturation.d.ts +0 -0
  2057. /package/esm/{typings/src → src}/utils/color/utils/colorToDataUrl.d.ts +0 -0
  2058. /package/esm/{typings/src → src}/utils/color/utils/mixColors.d.ts +0 -0
  2059. /package/esm/{typings/src → src}/utils/editable/edit-pipeline-string/addPipelineCommand.d.ts +0 -0
  2060. /package/esm/{typings/src/utils/editable/utils/renamePipelineParameter.test.d.ts → src/utils/editable/edit-pipeline-string/addPipelineCommand.test.d.ts} +0 -0
  2061. /package/esm/{typings/src → src}/utils/editable/edit-pipeline-string/deflatePipeline.d.ts +0 -0
  2062. /package/esm/{typings/src/utils/execCommand/execCommand.test.d.ts → src/utils/editable/edit-pipeline-string/deflatePipeline.test.d.ts} +0 -0
  2063. /package/esm/{typings/src → src}/utils/editable/edit-pipeline-string/removePipelineCommand.d.ts +0 -0
  2064. /package/esm/{typings/src/utils/execCommand/execCommandNormalizeOptions.test.d.ts → src/utils/editable/edit-pipeline-string/removePipelineCommand.test.d.ts} +0 -0
  2065. /package/esm/{typings/src → src}/utils/editable/types/PipelineEditableSerialized.d.ts +0 -0
  2066. /package/esm/{typings/src → src}/utils/editable/utils/isFlatPipeline.d.ts +0 -0
  2067. /package/esm/{typings/src/utils/expectation-counters/countCharacters.test.d.ts → src/utils/editable/utils/isFlatPipeline.test.d.ts} +0 -0
  2068. /package/esm/{typings/src → src}/utils/editable/utils/renamePipelineParameter.d.ts +0 -0
  2069. /package/esm/{typings/src/utils/expectation-counters/countLines.test.d.ts → src/utils/editable/utils/renamePipelineParameter.test.d.ts} +0 -0
  2070. /package/esm/{typings/src → src}/utils/editable/utils/stringifyPipelineJson.d.ts +0 -0
  2071. /package/esm/{typings/src → src}/utils/environment/$detectRuntimeEnvironment.d.ts +0 -0
  2072. /package/esm/{typings/src → src}/utils/environment/$getGlobalScope.d.ts +0 -0
  2073. /package/esm/{typings/src → src}/utils/environment/$isRunningInBrowser.d.ts +0 -0
  2074. /package/esm/{typings/src → src}/utils/environment/$isRunningInJest.d.ts +0 -0
  2075. /package/esm/{typings/src → src}/utils/environment/$isRunningInNode.d.ts +0 -0
  2076. /package/esm/{typings/src → src}/utils/environment/$isRunningInWebWorker.d.ts +0 -0
  2077. /package/esm/{typings/src → src}/utils/execCommand/$execCommand.d.ts +0 -0
  2078. /package/esm/{typings/src → src}/utils/execCommand/$execCommandNormalizeOptions.d.ts +0 -0
  2079. /package/esm/{typings/src → src}/utils/execCommand/$execCommands.d.ts +0 -0
  2080. /package/esm/{typings/src → src}/utils/execCommand/ExecCommandOptions.d.ts +0 -0
  2081. /package/esm/{typings/src/utils/expectation-counters/countPages.test.d.ts → src/utils/execCommand/execCommand.test.d.ts} +0 -0
  2082. /package/esm/{typings/src/utils/expectation-counters/countParagraphs.test.d.ts → src/utils/execCommand/execCommandNormalizeOptions.test.d.ts} +0 -0
  2083. /package/esm/{typings/src → src}/utils/expectation-counters/constants.d.ts +0 -0
  2084. /package/esm/{typings/src → src}/utils/expectation-counters/countCharacters.d.ts +0 -0
  2085. /package/esm/{typings/src/utils/expectation-counters/countSentences.test.d.ts → src/utils/expectation-counters/countCharacters.test.d.ts} +0 -0
  2086. /package/esm/{typings/src → src}/utils/expectation-counters/countLines.d.ts +0 -0
  2087. /package/esm/{typings/src/utils/expectation-counters/countWords.test.d.ts → src/utils/expectation-counters/countLines.test.d.ts} +0 -0
  2088. /package/esm/{typings/src → src}/utils/expectation-counters/countPages.d.ts +0 -0
  2089. /package/esm/{typings/src/utils/files/extensionToMimeType.test.d.ts → src/utils/expectation-counters/countPages.test.d.ts} +0 -0
  2090. /package/esm/{typings/src → src}/utils/expectation-counters/countParagraphs.d.ts +0 -0
  2091. /package/esm/{typings/src/utils/files/getFileExtension.test.d.ts → src/utils/expectation-counters/countParagraphs.test.d.ts} +0 -0
  2092. /package/esm/{typings/src → src}/utils/expectation-counters/countSentences.d.ts +0 -0
  2093. /package/esm/{typings/src/utils/files/isDirectoryExisting.test.d.ts → src/utils/expectation-counters/countSentences.test.d.ts} +0 -0
  2094. /package/esm/{typings/src → src}/utils/expectation-counters/countWords.d.ts +0 -0
  2095. /package/esm/{typings/src/utils/files/isFileExisting.test.d.ts → src/utils/expectation-counters/countWords.test.d.ts} +0 -0
  2096. /package/esm/{typings/src → src}/utils/expectation-counters/index.d.ts +0 -0
  2097. /package/esm/{typings/src → src}/utils/files/$induceBookDownload.d.ts +0 -0
  2098. /package/esm/{typings/src → src}/utils/files/$induceFileDownload.d.ts +0 -0
  2099. /package/esm/{typings/src → src}/utils/files/ObjectUrl.d.ts +0 -0
  2100. /package/esm/{typings/src → src}/utils/files/extensionToMimeType.d.ts +0 -0
  2101. /package/esm/{typings/src/utils/files/listAllFiles.test.d.ts → src/utils/files/extensionToMimeType.test.d.ts} +0 -0
  2102. /package/esm/{typings/src → src}/utils/files/getFileExtension.d.ts +0 -0
  2103. /package/esm/{typings/src/utils/files/mimeTypeToExtension.test.d.ts → src/utils/files/getFileExtension.test.d.ts} +0 -0
  2104. /package/esm/{typings/src → src}/utils/files/isDirectoryExisting.d.ts +0 -0
  2105. /package/esm/{typings/src/utils/knowledge/inlineKnowledgeSource.test.d.ts → src/utils/files/isDirectoryExisting.test.d.ts} +0 -0
  2106. /package/esm/{typings/src → src}/utils/files/isExecutable.d.ts +0 -0
  2107. /package/esm/{typings/src → src}/utils/files/isFileExisting.d.ts +0 -0
  2108. /package/esm/{typings/src/utils/knowledge/simplifyKnowledgeLabel.test.d.ts → src/utils/files/isFileExisting.test.d.ts} +0 -0
  2109. /package/esm/{typings/src → src}/utils/files/listAllFiles.d.ts +0 -0
  2110. /package/esm/{typings/src/utils/linguistic-hash/linguisticHash.test.d.ts → src/utils/files/listAllFiles.test.d.ts} +0 -0
  2111. /package/esm/{typings/src → src}/utils/files/mimeTypeToExtension.d.ts +0 -0
  2112. /package/esm/{typings/src/utils/markdown/addAutoGeneratedSection.test.d.ts → src/utils/files/mimeTypeToExtension.test.d.ts} +0 -0
  2113. /package/esm/{typings/src → src}/utils/knowledge/inlineKnowledgeSource.d.ts +0 -0
  2114. /package/esm/{typings/src/utils/markdown/createMarkdownChart.test.d.ts → src/utils/knowledge/inlineKnowledgeSource.test.d.ts} +0 -0
  2115. /package/esm/{typings/src → src}/utils/knowledge/simplifyKnowledgeLabel.d.ts +0 -0
  2116. /package/esm/{typings/src/utils/markdown/createMarkdownTable.test.d.ts → src/utils/knowledge/simplifyKnowledgeLabel.test.d.ts} +0 -0
  2117. /package/esm/{typings/src → src}/utils/language/getBrowserPreferredSpeechRecognitionLanguage.d.ts +0 -0
  2118. /package/esm/{typings/src → src}/utils/linguistic-hash/LinguisticHashLanguage.d.ts +0 -0
  2119. /package/esm/{typings/src → src}/utils/linguistic-hash/linguisticHash.d.ts +0 -0
  2120. /package/esm/{typings/src/utils/markdown/escapeMarkdownBlock.test.d.ts → src/utils/linguistic-hash/linguisticHash.test.d.ts} +0 -0
  2121. /package/esm/{typings/src → src}/utils/linguistic-hash/linguisticHashTypes.d.ts +0 -0
  2122. /package/esm/{typings/src → src}/utils/linguistic-hash/linguisticHashWordCount.d.ts +0 -0
  2123. /package/esm/{typings/src → src}/utils/linguistic-hash/linguisticHashWordSelection.d.ts +0 -0
  2124. /package/esm/{typings/src → src}/utils/linguistic-hash/linguisticHashWords.cs.d.ts +0 -0
  2125. /package/esm/{typings/src → src}/utils/linguistic-hash/linguisticHashWords.en.d.ts +0 -0
  2126. /package/esm/{typings/src → src}/utils/markdown/addAutoGeneratedSection.d.ts +0 -0
  2127. /package/esm/{typings/src/utils/markdown/extractAllBlocksFromMarkdown-real.test.d.ts → src/utils/markdown/addAutoGeneratedSection.test.d.ts} +0 -0
  2128. /package/esm/{typings/src → src}/utils/markdown/createMarkdownChart.d.ts +0 -0
  2129. /package/esm/{typings/src/utils/markdown/extractAllBlocksFromMarkdown.test.d.ts → src/utils/markdown/createMarkdownChart.test.d.ts} +0 -0
  2130. /package/esm/{typings/src → src}/utils/markdown/createMarkdownTable.d.ts +0 -0
  2131. /package/esm/{typings/src/utils/markdown/extractAllListItemsFromMarkdown.test.d.ts → src/utils/markdown/createMarkdownTable.test.d.ts} +0 -0
  2132. /package/esm/{typings/src → src}/utils/markdown/escapeMarkdownBlock.d.ts +0 -0
  2133. /package/esm/{typings/src/utils/markdown/extractOneBlockFromMarkdown.test.d.ts → src/utils/markdown/escapeMarkdownBlock.test.d.ts} +0 -0
  2134. /package/esm/{typings/src/utils/markdown/flattenMarkdown.test.d.ts → src/utils/markdown/extractAllBlocksFromMarkdown-real.test.d.ts} +0 -0
  2135. /package/esm/{typings/src → src}/utils/markdown/extractAllBlocksFromMarkdown.d.ts +0 -0
  2136. /package/esm/{typings/src/utils/markdown/humanizeAiText.test.d.ts → src/utils/markdown/extractAllBlocksFromMarkdown.test.d.ts} +0 -0
  2137. /package/esm/{typings/src → src}/utils/markdown/extractAllListItemsFromMarkdown.d.ts +0 -0
  2138. /package/esm/{typings/src/utils/markdown/parseMarkdownSection.test.d.ts → src/utils/markdown/extractAllListItemsFromMarkdown.test.d.ts} +0 -0
  2139. /package/esm/{typings/src → src}/utils/markdown/extractOneBlockFromMarkdown.d.ts +0 -0
  2140. /package/esm/{typings/src/utils/markdown/promptbookifyAiText.test.d.ts → src/utils/markdown/extractOneBlockFromMarkdown.test.d.ts} +0 -0
  2141. /package/esm/{typings/src → src}/utils/markdown/flattenMarkdown.d.ts +0 -0
  2142. /package/esm/{typings/src/utils/markdown/removeMarkdownComments.test.d.ts → src/utils/markdown/flattenMarkdown.test.d.ts} +0 -0
  2143. /package/esm/{typings/src → src}/utils/markdown/humanizeAiText.d.ts +0 -0
  2144. /package/esm/{typings/src/utils/markdown/removeMarkdownFormatting.test.d.ts → src/utils/markdown/humanizeAiText.test.d.ts} +0 -0
  2145. /package/esm/{typings/src → src}/utils/markdown/humanizeAiTextEllipsis.d.ts +0 -0
  2146. /package/esm/{typings/src → src}/utils/markdown/humanizeAiTextEmdashed.d.ts +0 -0
  2147. /package/esm/{typings/src → src}/utils/markdown/humanizeAiTextQuotes.d.ts +0 -0
  2148. /package/esm/{typings/src → src}/utils/markdown/humanizeAiTextSources.d.ts +0 -0
  2149. /package/esm/{typings/src → src}/utils/markdown/humanizeAiTextWhitespace.d.ts +0 -0
  2150. /package/esm/{typings/src → src}/utils/markdown/parseMarkdownSection.d.ts +0 -0
  2151. /package/esm/{typings/src/utils/markdown/splitMarkdownIntoSections.test.d.ts → src/utils/markdown/parseMarkdownSection.test.d.ts} +0 -0
  2152. /package/esm/{typings/src → src}/utils/markdown/prettifyMarkdown.d.ts +0 -0
  2153. /package/esm/{typings/src → src}/utils/markdown/promptbookifyAiText.d.ts +0 -0
  2154. /package/esm/{typings/src/utils/markdown/trimCodeBlock.test.d.ts → src/utils/markdown/promptbookifyAiText.test.d.ts} +0 -0
  2155. /package/esm/{typings/src → src}/utils/markdown/removeMarkdownComments.d.ts +0 -0
  2156. /package/esm/{typings/src/utils/markdown/trimEndOfCodeBlock.test.d.ts → src/utils/markdown/removeMarkdownComments.test.d.ts} +0 -0
  2157. /package/esm/{typings/src → src}/utils/markdown/removeMarkdownFormatting.d.ts +0 -0
  2158. /package/esm/{typings/src/utils/misc/arrayableToArray.test.d.ts → src/utils/markdown/removeMarkdownFormatting.test.d.ts} +0 -0
  2159. /package/esm/{typings/src → src}/utils/markdown/removeMarkdownLinks.d.ts +0 -0
  2160. /package/esm/{typings/src → src}/utils/markdown/removeMarkdownLinks.test.d.ts +0 -0
  2161. /package/esm/{typings/src → src}/utils/markdown/splitMarkdownIntoSections.d.ts +0 -0
  2162. /package/esm/{typings/src/utils/misc/computeHash.test.d.ts → src/utils/markdown/splitMarkdownIntoSections.test.d.ts} +0 -0
  2163. /package/esm/{typings/src → src}/utils/markdown/trimCodeBlock.d.ts +0 -0
  2164. /package/esm/{typings/src/utils/misc/parseNumber.test.d.ts → src/utils/markdown/trimCodeBlock.test.d.ts} +0 -0
  2165. /package/esm/{typings/src → src}/utils/markdown/trimEndOfCodeBlock.d.ts +0 -0
  2166. /package/esm/{typings/src/utils/normalization/capitalize.test.d.ts → src/utils/markdown/trimEndOfCodeBlock.test.d.ts} +0 -0
  2167. /package/esm/{typings/src → src}/utils/misc/$Register.d.ts +0 -0
  2168. /package/esm/{typings/src → src}/utils/misc/$getCurrentDate.d.ts +0 -0
  2169. /package/esm/{typings/src → src}/utils/misc/FromtoItems.d.ts +0 -0
  2170. /package/esm/{typings/src → src}/utils/misc/aboutPromptbookInformation.d.ts +0 -0
  2171. /package/esm/{typings/src → src}/utils/misc/arrayableToArray.d.ts +0 -0
  2172. /package/esm/{typings/src/utils/normalization/constructImageFilename.test.d.ts → src/utils/misc/arrayableToArray.test.d.ts} +0 -0
  2173. /package/esm/{typings/src → src}/utils/misc/computeHash.d.ts +0 -0
  2174. /package/esm/{typings/src/utils/normalization/decapitalize.test.d.ts → src/utils/misc/computeHash.test.d.ts} +0 -0
  2175. /package/esm/{typings/src → src}/utils/misc/debounce.d.ts +0 -0
  2176. /package/esm/{typings/src → src}/utils/misc/emojis.d.ts +0 -0
  2177. /package/esm/{typings/src → src}/utils/misc/injectCssModuleIntoShadowRoot.d.ts +0 -0
  2178. /package/esm/{typings/src → src}/utils/misc/parseNumber.d.ts +0 -0
  2179. /package/esm/{typings/src/utils/normalization/isValidKeyword.test.d.ts → src/utils/misc/parseNumber.test.d.ts} +0 -0
  2180. /package/esm/{typings/src → src}/utils/misc/xAboutPromptbookInformation.d.ts +0 -0
  2181. /package/esm/{typings/src → src}/utils/normalization/DIACRITIC_VARIANTS_LETTERS.d.ts +0 -0
  2182. /package/esm/{typings/src → src}/utils/normalization/IKeywords.d.ts +0 -0
  2183. /package/esm/{typings/src → src}/utils/normalization/capitalize.d.ts +0 -0
  2184. /package/esm/{typings/src/utils/normalization/nameToUriPart.test.d.ts → src/utils/normalization/capitalize.test.d.ts} +0 -0
  2185. /package/esm/{typings/src → src}/utils/normalization/constructImageFilename.d.ts +0 -0
  2186. /package/esm/{typings/src/utils/normalization/nameToUriParts.test.d.ts → src/utils/normalization/constructImageFilename.test.d.ts} +0 -0
  2187. /package/esm/{typings/src → src}/utils/normalization/decapitalize.d.ts +0 -0
  2188. /package/esm/{typings/src/utils/normalization/normalize-to-kebab-case.test.d.ts → src/utils/normalization/decapitalize.test.d.ts} +0 -0
  2189. /package/esm/{typings/src → src}/utils/normalization/isValidKeyword.d.ts +0 -0
  2190. /package/esm/{typings/src/utils/normalization/normalizeMessageText.test.d.ts → src/utils/normalization/isValidKeyword.test.d.ts} +0 -0
  2191. /package/esm/{typings/src → src}/utils/normalization/nameToUriPart.d.ts +0 -0
  2192. /package/esm/{typings/src/utils/normalization/normalizeTo_PascalCase.test.d.ts → src/utils/normalization/nameToUriPart.test.d.ts} +0 -0
  2193. /package/esm/{typings/src → src}/utils/normalization/nameToUriParts.d.ts +0 -0
  2194. /package/esm/{typings/src/utils/normalization/normalizeTo_SCREAMING_CASE.test.d.ts → src/utils/normalization/nameToUriParts.test.d.ts} +0 -0
  2195. /package/esm/{typings/src → src}/utils/normalization/normalize-to-kebab-case.d.ts +0 -0
  2196. /package/esm/{typings/src/utils/normalization/normalizeTo_camelCase.test.d.ts → src/utils/normalization/normalize-to-kebab-case.test.d.ts} +0 -0
  2197. /package/esm/{typings/src → src}/utils/normalization/normalizeMessageText.d.ts +0 -0
  2198. /package/esm/{typings/src/utils/normalization/normalizeTo_snake_case.test.d.ts → src/utils/normalization/normalizeMessageText.test.d.ts} +0 -0
  2199. /package/esm/{typings/src → src}/utils/normalization/normalizeTo_PascalCase.d.ts +0 -0
  2200. /package/esm/{typings/src/utils/normalization/normalizeWhitespaces.test.d.ts → src/utils/normalization/normalizeTo_PascalCase.test.d.ts} +0 -0
  2201. /package/esm/{typings/src → src}/utils/normalization/normalizeTo_SCREAMING_CASE.d.ts +0 -0
  2202. /package/esm/{typings/src/utils/normalization/parseKeywords.test.d.ts → src/utils/normalization/normalizeTo_SCREAMING_CASE.test.d.ts} +0 -0
  2203. /package/esm/{typings/src → src}/utils/normalization/normalizeTo_camelCase.d.ts +0 -0
  2204. /package/esm/{typings/src/utils/normalization/parseKeywordsFromString.test.d.ts → src/utils/normalization/normalizeTo_camelCase.test.d.ts} +0 -0
  2205. /package/esm/{typings/src → src}/utils/normalization/normalizeTo_snake_case.d.ts +0 -0
  2206. /package/esm/{typings/src/utils/normalization/removeDiacritics.test.d.ts → src/utils/normalization/normalizeTo_snake_case.test.d.ts} +0 -0
  2207. /package/esm/{typings/src → src}/utils/normalization/normalizeWhitespaces.d.ts +0 -0
  2208. /package/esm/{typings/src/utils/normalization/removeEmojis.test.d.ts → src/utils/normalization/normalizeWhitespaces.test.d.ts} +0 -0
  2209. /package/esm/{typings/src → src}/utils/normalization/orderJson.d.ts +0 -0
  2210. /package/esm/{typings/src → src}/utils/normalization/orderJson.test.d.ts +0 -0
  2211. /package/esm/{typings/src → src}/utils/normalization/parseKeywords.d.ts +0 -0
  2212. /package/esm/{typings/src/utils/normalization/removeQuotes.test.d.ts → src/utils/normalization/parseKeywords.test.d.ts} +0 -0
  2213. /package/esm/{typings/src → src}/utils/normalization/parseKeywordsFromString.d.ts +0 -0
  2214. /package/esm/{typings/src/utils/normalization/searchKeywords.test.d.ts → src/utils/normalization/parseKeywordsFromString.test.d.ts} +0 -0
  2215. /package/esm/{typings/src → src}/utils/normalization/removeDiacritics.d.ts +0 -0
  2216. /package/esm/{typings/src/utils/normalization/suffixUrl.test.d.ts → src/utils/normalization/removeDiacritics.test.d.ts} +0 -0
  2217. /package/esm/{typings/src → src}/utils/normalization/removeEmojis.d.ts +0 -0
  2218. /package/esm/{typings/src/utils/normalization/titleToName.test.d.ts → src/utils/normalization/removeEmojis.test.d.ts} +0 -0
  2219. /package/esm/{typings/src → src}/utils/normalization/removeQuotes.d.ts +0 -0
  2220. /package/esm/{typings/src/utils/normalization/unwrapResult.test.d.ts → src/utils/normalization/removeQuotes.test.d.ts} +0 -0
  2221. /package/esm/{typings/src → src}/utils/normalization/searchKeywords.d.ts +0 -0
  2222. /package/esm/{typings/src/utils/parameters/extractParameterNames.test.d.ts → src/utils/normalization/searchKeywords.test.d.ts} +0 -0
  2223. /package/esm/{typings/src → src}/utils/normalization/suffixUrl.d.ts +0 -0
  2224. /package/esm/{typings/src/utils/parameters/mapAvailableToExpectedParameters.test.d.ts → src/utils/normalization/suffixUrl.test.d.ts} +0 -0
  2225. /package/esm/{typings/src → src}/utils/normalization/titleToName.d.ts +0 -0
  2226. /package/esm/{typings/src/utils/parameters/numberToString.test.d.ts → src/utils/normalization/titleToName.test.d.ts} +0 -0
  2227. /package/esm/{typings/src → src}/utils/normalization/unwrapResult.d.ts +0 -0
  2228. /package/esm/{typings/src/utils/parameters/templateParameters.test.d.ts → src/utils/normalization/unwrapResult.test.d.ts} +0 -0
  2229. /package/esm/{typings/src → src}/utils/organization/$sideEffect.d.ts +0 -0
  2230. /package/esm/{typings/src → src}/utils/organization/$side_effect.d.ts +0 -0
  2231. /package/esm/{typings/src → src}/utils/organization/TODO_USE.d.ts +0 -0
  2232. /package/esm/{typings/src → src}/utils/organization/TODO_any.d.ts +0 -0
  2233. /package/esm/{typings/src → src}/utils/organization/TODO_narrow.d.ts +0 -0
  2234. /package/esm/{typings/src → src}/utils/organization/TODO_object.d.ts +0 -0
  2235. /package/esm/{typings/src → src}/utils/organization/TODO_remove_as.d.ts +0 -0
  2236. /package/esm/{typings/src → src}/utils/organization/TODO_string.d.ts +0 -0
  2237. /package/esm/{typings/src → src}/utils/organization/TODO_unknown.d.ts +0 -0
  2238. /package/esm/{typings/src → src}/utils/organization/___and___.d.ts +0 -0
  2239. /package/esm/{typings/src → src}/utils/organization/___or___.d.ts +0 -0
  2240. /package/esm/{typings/src → src}/utils/organization/empty_object.d.ts +0 -0
  2241. /package/esm/{typings/src → src}/utils/organization/just.d.ts +0 -0
  2242. /package/esm/{typings/src → src}/utils/organization/just_empty_object.d.ts +0 -0
  2243. /package/esm/{typings/src → src}/utils/organization/keepImported.d.ts +0 -0
  2244. /package/esm/{typings/src → src}/utils/organization/keepTypeImported.d.ts +0 -0
  2245. /package/esm/{typings/src → src}/utils/organization/keepUnused.d.ts +0 -0
  2246. /package/esm/{typings/src → src}/utils/organization/preserve.d.ts +0 -0
  2247. /package/esm/{typings/src → src}/utils/organization/really_any.d.ts +0 -0
  2248. /package/esm/{typings/src → src}/utils/organization/really_unknown.d.ts +0 -0
  2249. /package/esm/{typings/src → src}/utils/organization/spaceTrim.d.ts +0 -0
  2250. /package/esm/{typings/src → src}/utils/parameters/extractParameterNames.d.ts +0 -0
  2251. /package/esm/{typings/src/utils/parameters/valueToString.test.d.ts → src/utils/parameters/extractParameterNames.test.d.ts} +0 -0
  2252. /package/esm/{typings/src → src}/utils/parameters/mapAvailableToExpectedParameters.d.ts +0 -0
  2253. /package/esm/{typings/src/utils/serialization/asSerializable.test.d.ts → src/utils/parameters/mapAvailableToExpectedParameters.test.d.ts} +0 -0
  2254. /package/esm/{typings/src → src}/utils/parameters/numberToString.d.ts +0 -0
  2255. /package/esm/{typings/src/utils/serialization/deepClone.test.d.ts → src/utils/parameters/numberToString.test.d.ts} +0 -0
  2256. /package/esm/{typings/src → src}/utils/parameters/templateParameters.d.ts +0 -0
  2257. /package/esm/{typings/src/utils/serialization/isSerializableAsJson.test.d.ts → src/utils/parameters/templateParameters.test.d.ts} +0 -0
  2258. /package/esm/{typings/src → src}/utils/parameters/valueToString.d.ts +0 -0
  2259. /package/esm/{typings/src/utils/serialization/jsonStringsToJsons.test.d.ts → src/utils/parameters/valueToString.test.d.ts} +0 -0
  2260. /package/esm/{typings/src → src}/utils/random/$generateBookBoilerplate.d.ts +0 -0
  2261. /package/esm/{typings/src → src}/utils/random/$randomAgentPersona.d.ts +0 -0
  2262. /package/esm/{typings/src → src}/utils/random/$randomAgentRule.d.ts +0 -0
  2263. /package/esm/{typings/src → src}/utils/random/$randomBase58.d.ts +0 -0
  2264. /package/esm/{typings/src → src}/utils/random/$randomFullnameWithColor.d.ts +0 -0
  2265. /package/esm/{typings/src → src}/utils/random/$randomItem.d.ts +0 -0
  2266. /package/esm/{typings/src → src}/utils/random/$randomSeed.d.ts +0 -0
  2267. /package/esm/{typings/src → src}/utils/random/$randomToken.d.ts +0 -0
  2268. /package/esm/{typings/src → src}/utils/random/CzechNamePool.d.ts +0 -0
  2269. /package/esm/{typings/src → src}/utils/random/EnglishNamePool.d.ts +0 -0
  2270. /package/esm/{typings/src → src}/utils/random/NamePool.d.ts +0 -0
  2271. /package/esm/{typings/src → src}/utils/random/getNamePool.d.ts +0 -0
  2272. /package/esm/{typings/src → src}/utils/serialization/$deepFreeze.d.ts +0 -0
  2273. /package/esm/{typings/src → src}/utils/serialization/asSerializable.d.ts +0 -0
  2274. /package/esm/{typings/src/utils/sets/difference.test.d.ts → src/utils/serialization/asSerializable.test.d.ts} +0 -0
  2275. /package/esm/{typings/src → src}/utils/serialization/checkSerializableAsJson.d.ts +0 -0
  2276. /package/esm/{typings/src → src}/utils/serialization/clonePipeline.d.ts +0 -0
  2277. /package/esm/{typings/src → src}/utils/serialization/deepClone.d.ts +0 -0
  2278. /package/esm/{typings/src/utils/sets/intersection.test.d.ts → src/utils/serialization/deepClone.test.d.ts} +0 -0
  2279. /package/esm/{typings/src → src}/utils/serialization/exportJson.d.ts +0 -0
  2280. /package/esm/{typings/src → src}/utils/serialization/isSerializableAsJson.d.ts +0 -0
  2281. /package/esm/{typings/src/utils/sets/union.test.d.ts → src/utils/serialization/isSerializableAsJson.test.d.ts} +0 -0
  2282. /package/esm/{typings/src → src}/utils/serialization/jsonStringsToJsons.d.ts +0 -0
  2283. /package/esm/{typings/src/utils/take/take.test.d.ts → src/utils/serialization/jsonStringsToJsons.test.d.ts} +0 -0
  2284. /package/esm/{typings/src → src}/utils/serialization/serializeToPromptbookJavascript.d.ts +0 -0
  2285. /package/esm/{typings/src → src}/utils/sets/difference.d.ts +0 -0
  2286. /package/esm/{typings/src/utils/validators/email/isValidEmail.test.d.ts → src/utils/sets/difference.test.d.ts} +0 -0
  2287. /package/esm/{typings/src → src}/utils/sets/intersection.d.ts +0 -0
  2288. /package/esm/{typings/src/utils/validators/filePath/isValidFilePath.test.d.ts → src/utils/sets/intersection.test.d.ts} +0 -0
  2289. /package/esm/{typings/src → src}/utils/sets/union.d.ts +0 -0
  2290. /package/esm/{typings/src/utils/validators/javascriptName/isValidJavascriptName.test.d.ts → src/utils/sets/union.test.d.ts} +0 -0
  2291. /package/esm/{typings/src → src}/utils/take/classes/TakeChain.d.ts +0 -0
  2292. /package/esm/{typings/src → src}/utils/take/interfaces/ITakeChain.d.ts +0 -0
  2293. /package/esm/{typings/src → src}/utils/take/interfaces/Takeable.d.ts +0 -0
  2294. /package/esm/{typings/src → src}/utils/take/take.d.ts +0 -0
  2295. /package/esm/{typings/src/utils/validators/parameterName/validateParameterName.test.d.ts → src/utils/take/take.test.d.ts} +0 -0
  2296. /package/esm/{typings/src → src}/utils/toolCalls/getToolCallIdentity.d.ts +0 -0
  2297. /package/esm/{typings/src → src}/utils/validators/email/isValidEmail.d.ts +0 -0
  2298. /package/esm/{typings/src/utils/validators/semanticVersion/isValidPromptbookVersion.test.d.ts → src/utils/validators/email/isValidEmail.test.d.ts} +0 -0
  2299. /package/esm/{typings/src → src}/utils/validators/filePath/isRootPath.d.ts +0 -0
  2300. /package/esm/{typings/src → src}/utils/validators/filePath/isRootPath.test.d.ts +0 -0
  2301. /package/esm/{typings/src → src}/utils/validators/filePath/isValidFilePath.d.ts +0 -0
  2302. /package/esm/{typings/src/utils/validators/semanticVersion/isValidSemanticVersion.test.d.ts → src/utils/validators/filePath/isValidFilePath.test.d.ts} +0 -0
  2303. /package/esm/{typings/src → src}/utils/validators/javascriptName/isValidJavascriptName.d.ts +0 -0
  2304. /package/esm/{typings/src/utils/validators/url/isHostnameOnPrivateNetwork.test.d.ts → src/utils/validators/javascriptName/isValidJavascriptName.test.d.ts} +0 -0
  2305. /package/esm/{typings/src → src}/utils/validators/parameterName/validateParameterName.d.ts +0 -0
  2306. /package/esm/{typings/src/utils/validators/url/isUrlOnPrivateNetwork.test.d.ts → src/utils/validators/parameterName/validateParameterName.test.d.ts} +0 -0
  2307. /package/esm/{typings/src → src}/utils/validators/semanticVersion/isValidPromptbookVersion.d.ts +0 -0
  2308. /package/esm/{typings/src/utils/validators/url/isValidAgentUrl.test.d.ts → src/utils/validators/semanticVersion/isValidPromptbookVersion.test.d.ts} +0 -0
  2309. /package/esm/{typings/src → src}/utils/validators/semanticVersion/isValidSemanticVersion.d.ts +0 -0
  2310. /package/esm/{typings/src/utils/validators/url/isValidPipelineUrl.test.d.ts → src/utils/validators/semanticVersion/isValidSemanticVersion.test.d.ts} +0 -0
  2311. /package/esm/{typings/src → src}/utils/validators/url/isHostnameOnPrivateNetwork.d.ts +0 -0
  2312. /package/esm/{typings/src/utils/validators/url/isValidUrl.test.d.ts → src/utils/validators/url/isHostnameOnPrivateNetwork.test.d.ts} +0 -0
  2313. /package/esm/{typings/src → src}/utils/validators/url/isUrlOnPrivateNetwork.d.ts +0 -0
  2314. /package/esm/{typings/src/utils/validators/uuid/isValidUuid.test.d.ts → src/utils/validators/url/isUrlOnPrivateNetwork.test.d.ts} +0 -0
  2315. /package/esm/{typings/src → src}/utils/validators/url/isValidAgentUrl.d.ts +0 -0
  2316. /package/esm/{typings/src → src}/utils/validators/url/isValidPipelineUrl.d.ts +0 -0
  2317. /package/esm/{typings/src → src}/utils/validators/url/isValidUrl.d.ts +0 -0
  2318. /package/esm/{typings/src → src}/utils/validators/uuid/isValidUuid.d.ts +0 -0
  2319. /package/esm/{typings/src → src}/wizard/$getCompiledBook.d.ts +0 -0
  2320. /package/esm/{typings/src → src}/wizard/wizard.d.ts +0 -0
package/umd/index.umd.js CHANGED
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react/jsx-runtime'), require('react'), require('spacetrim'), require('crypto-js'), require('crypto-js/enc-hex'), require('path'), require('crypto'), require('moment'), require('react-dom'), require('@monaco-editor/react'), require('monaco-editor'), require('destroyable'), require('katex'), require('react-dom/client'), require('showdown'), require('rxjs'), require('jspdf'), require('lucide-react'), require('waitasecond'), require('crypto-js/sha256'), require('mime-types'), require('papaparse'), require('colors'), require('@openai/agents'), require('bottleneck'), require('openai'), require('leaflet/dist/leaflet.css'), require('leaflet'), require('qrcode')) :
3
- typeof define === 'function' && define.amd ? define(['exports', 'react/jsx-runtime', 'react', 'spacetrim', 'crypto-js', 'crypto-js/enc-hex', 'path', 'crypto', 'moment', 'react-dom', '@monaco-editor/react', 'monaco-editor', 'destroyable', 'katex', 'react-dom/client', 'showdown', 'rxjs', 'jspdf', 'lucide-react', 'waitasecond', 'crypto-js/sha256', 'mime-types', 'papaparse', 'colors', '@openai/agents', 'bottleneck', 'openai', 'leaflet/dist/leaflet.css', 'leaflet', 'qrcode'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-components"] = {}, global.jsxRuntime, global.react, global.spaceTrim$1, global.cryptoJs, global.hexEncoder, global.path, global.crypto$1, global.moment, global.reactDom, global.Editor, global.monacoEditor, global.destroyable, global.katex, global.client, global.showdown, global.rxjs, global.jspdf, global.lucideReact, global.waitasecond, global.sha256, global.mimeTypes, global.papaparse, global.colors, global.agents, global.Bottleneck, global.OpenAI, null, global.L, global.QRCode));
5
- })(this, (function (exports, jsxRuntime, react, spaceTrim$1, cryptoJs, hexEncoder, path, crypto$1, moment, reactDom, Editor, monacoEditor, destroyable, katex, client, showdown, rxjs, jspdf, lucideReact, waitasecond, sha256, mimeTypes, papaparse, colors, agents, Bottleneck, OpenAI, leaflet_css, L, QRCode) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react/jsx-runtime'), require('react'), require('spacetrim'), require('crypto-js'), require('crypto-js/enc-hex'), require('path'), require('crypto'), require('moment'), require('react-dom'), require('@monaco-editor/react'), require('destroyable'), require('katex'), require('react-dom/client'), require('showdown'), require('rxjs'), require('jspdf'), require('lucide-react'), require('waitasecond'), require('crypto-js/sha256'), require('mime-types'), require('papaparse'), require('colors'), require('@openai/agents'), require('bottleneck'), require('openai'), require('leaflet/dist/leaflet.css'), require('leaflet'), require('qrcode')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', 'react/jsx-runtime', 'react', 'spacetrim', 'crypto-js', 'crypto-js/enc-hex', 'path', 'crypto', 'moment', 'react-dom', '@monaco-editor/react', 'destroyable', 'katex', 'react-dom/client', 'showdown', 'rxjs', 'jspdf', 'lucide-react', 'waitasecond', 'crypto-js/sha256', 'mime-types', 'papaparse', 'colors', '@openai/agents', 'bottleneck', 'openai', 'leaflet/dist/leaflet.css', 'leaflet', 'qrcode'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-components"] = {}, global.jsxRuntime, global.react, global.spaceTrim$1, global.cryptoJs, global.hexEncoder, global.path, global.crypto$1, global.moment, global.reactDom, global.Editor, global.destroyable, global.katex, global.client, global.showdown, global.rxjs, global.jspdf, global.lucideReact, global.waitasecond, global.sha256, global.mimeTypes, global.papaparse, global.colors, global.agents, global.Bottleneck, global.OpenAI, null, global.L, global.QRCode));
5
+ })(this, (function (exports, jsxRuntime, react, spaceTrim$1, cryptoJs, hexEncoder, path, crypto$1, moment, reactDom, Editor, destroyable, katex, client, showdown, rxjs, jspdf, lucideReact, waitasecond, sha256, mimeTypes, papaparse, colors, agents, Bottleneck, OpenAI, leaflet_css, L, QRCode) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -32,7 +32,7 @@
32
32
  * @generated
33
33
  * @see https://github.com/webgptorg/promptbook
34
34
  */
35
- const PROMPTBOOK_ENGINE_VERSION = '0.111.0-4';
35
+ const PROMPTBOOK_ENGINE_VERSION = '0.111.0-7';
36
36
  /**
37
37
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
38
38
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -516,6 +516,188 @@
516
516
  }
517
517
  }
518
518
 
519
+ const SHORT_HEX_LENGTHS = new Set([3, 4]);
520
+ const LONG_HEX_LENGTHS = new Set([6, 8]);
521
+ /**
522
+ * Parses a hex string into RGBA channel values.
523
+ *
524
+ * @param hex - Hex value such as `#09d`, `009edd`, `#009eddff`.
525
+ * @returns RGBA channel values.
526
+ *
527
+ * @private function of Color
528
+ */
529
+ function parseHexColor(hex) {
530
+ const sanitized = hex.startsWith('#') ? hex.substring(1) : hex;
531
+ const throwInvalidHex = () => {
532
+ throw new Error(`Can not parse color from hex string "${hex}"`);
533
+ };
534
+ if (SHORT_HEX_LENGTHS.has(sanitized.length)) {
535
+ return {
536
+ red: parseShortHexChannel(sanitized.charAt(0), throwInvalidHex),
537
+ green: parseShortHexChannel(sanitized.charAt(1), throwInvalidHex),
538
+ blue: parseShortHexChannel(sanitized.charAt(2), throwInvalidHex),
539
+ alpha: sanitized.length === 4 ? parseShortHexChannel(sanitized.charAt(3), throwInvalidHex) : 255,
540
+ };
541
+ }
542
+ if (LONG_HEX_LENGTHS.has(sanitized.length)) {
543
+ return {
544
+ red: parseLongHexChannel(sanitized, 0, throwInvalidHex),
545
+ green: parseLongHexChannel(sanitized, 2, throwInvalidHex),
546
+ blue: parseLongHexChannel(sanitized, 4, throwInvalidHex),
547
+ alpha: sanitized.length === 8 ? parseLongHexChannel(sanitized, 6, throwInvalidHex) : 255,
548
+ };
549
+ }
550
+ return throwInvalidHex();
551
+ }
552
+ function parseShortHexChannel(char, onError) {
553
+ if (!char) {
554
+ return onError();
555
+ }
556
+ const parsed = parseInt(char, 16);
557
+ if (Number.isNaN(parsed)) {
558
+ return onError();
559
+ }
560
+ return parsed * 16;
561
+ }
562
+ function parseLongHexChannel(hex, start, onError) {
563
+ const segment = hex.substr(start, 2);
564
+ if (segment.length < 2) {
565
+ return onError();
566
+ }
567
+ const parsed = parseInt(segment, 16);
568
+ if (Number.isNaN(parsed)) {
569
+ return onError();
570
+ }
571
+ return parsed;
572
+ }
573
+
574
+ const HSL_REGEX = /^hsl\(\s*([0-9.]+)\s*,\s*([0-9.]+)%\s*,\s*([0-9.]+)%\s*\)$/;
575
+ /**
576
+ * Parses an HSL string into RGBA channel values.
577
+ *
578
+ * @param hsl - HSL string such as `hsl(197.1, 100%, 43.3%)`.
579
+ * @returns RGBA channel values.
580
+ *
581
+ * @private function of Color
582
+ */
583
+ function parseHslColor(hsl) {
584
+ const match = hsl.match(HSL_REGEX);
585
+ if (!match) {
586
+ throw new Error(`Invalid hsl string format: "${hsl}"`);
587
+ }
588
+ const hue = parseFloat(match[1]);
589
+ const saturation = parseFloat(match[2]) / 100;
590
+ const lightness = parseFloat(match[3]) / 100;
591
+ const { red, green, blue } = convertHslToRgb(hue, saturation, lightness);
592
+ return {
593
+ red,
594
+ green,
595
+ blue,
596
+ alpha: 255,
597
+ };
598
+ }
599
+ function convertHslToRgb(h, s, l) {
600
+ const c = (1 - Math.abs(2 * l - 1)) * s;
601
+ const x = c * (1 - Math.abs(((h / 60) % 2) - 1));
602
+ const m = l - c / 2;
603
+ let r1 = 0;
604
+ let g1 = 0;
605
+ let b1 = 0;
606
+ if (h >= 0 && h < 60) {
607
+ r1 = c;
608
+ g1 = x;
609
+ }
610
+ else if (h >= 60 && h < 120) {
611
+ r1 = x;
612
+ g1 = c;
613
+ }
614
+ else if (h >= 120 && h < 180) {
615
+ g1 = c;
616
+ b1 = x;
617
+ }
618
+ else if (h >= 180 && h < 240) {
619
+ g1 = x;
620
+ b1 = c;
621
+ }
622
+ else if (h >= 240 && h < 300) {
623
+ r1 = x;
624
+ b1 = c;
625
+ }
626
+ else if (h >= 300 && h < 360) {
627
+ r1 = c;
628
+ b1 = x;
629
+ }
630
+ return {
631
+ red: Math.round((r1 + m) * 255),
632
+ green: Math.round((g1 + m) * 255),
633
+ blue: Math.round((b1 + m) * 255),
634
+ };
635
+ }
636
+
637
+ const RGB_REGEX = /^rgb\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/;
638
+ const RGBA_REGEX = /^rgba\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/;
639
+ /**
640
+ * Parses an RGB string into RGBA channel values.
641
+ *
642
+ * @param rgb - RGB string such as `rgb(0%, 62%, 86.7%)`.
643
+ * @returns RGBA channel values.
644
+ *
645
+ * @private function of Color
646
+ */
647
+ function parseRgbColor(rgb) {
648
+ const match = rgb.match(RGB_REGEX);
649
+ if (!match) {
650
+ throw new Error(`Invalid rgb string format: "${rgb}"`);
651
+ }
652
+ return {
653
+ red: parseChannelValue(match[1]),
654
+ green: parseChannelValue(match[2]),
655
+ blue: parseChannelValue(match[3]),
656
+ alpha: 255,
657
+ };
658
+ }
659
+ /**
660
+ * Parses an RGBA string into RGBA channel values.
661
+ *
662
+ * @param rgba - RGBA string such as `rgba(0, 158, 221, 0.5)`.
663
+ * @returns RGBA channel values.
664
+ *
665
+ * @private function of Color
666
+ */
667
+ function parseRgbaColor(rgba) {
668
+ const match = rgba.match(RGBA_REGEX);
669
+ if (!match) {
670
+ throw new Error(`Invalid rgba string format: "${rgba}"`);
671
+ }
672
+ return {
673
+ red: parseChannelValue(match[1]),
674
+ green: parseChannelValue(match[2]),
675
+ blue: parseChannelValue(match[3]),
676
+ alpha: parseAlphaValue(match[4]),
677
+ };
678
+ }
679
+ function parseChannelValue(value) {
680
+ if (value.endsWith('%')) {
681
+ const percent = parseFloat(value);
682
+ return Math.round((percent / 100) * 255);
683
+ }
684
+ return Math.round(parseFloat(value));
685
+ }
686
+ function parseAlphaValue(value) {
687
+ if (value.endsWith('%')) {
688
+ const percent = parseFloat(value);
689
+ return Math.round((percent / 100) * 255);
690
+ }
691
+ const parsed = parseFloat(value);
692
+ if (parsed <= 1) {
693
+ return Math.round(parsed * 255);
694
+ }
695
+ return Math.round(parsed);
696
+ }
697
+
698
+ const HSL_REGEX_PATTERN = /^hsl\(\s*([0-9.]+)\s*,\s*([0-9.]+)%\s*,\s*([0-9.]+)%\s*\)$/;
699
+ const RGB_REGEX_PATTERN = /^rgb\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/;
700
+ const RGBA_REGEX_PATTERN = /^rgba\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/;
519
701
  /**
520
702
  * Color object represents an RGB color with alpha channel
521
703
  *
@@ -596,29 +778,24 @@
596
778
  * @returns Color object
597
779
  */
598
780
  static fromString(color) {
599
- if (CSS_COLORS[color]) {
600
- return Color.fromString(CSS_COLORS[color]);
601
- // -----
781
+ const trimmed = color.trim();
782
+ if (CSS_COLORS[trimmed]) {
783
+ return Color.fromString(CSS_COLORS[trimmed]);
602
784
  }
603
- else if (Color.isHexColorString(color)) {
604
- return Color.fromHex(color);
605
- // -----
785
+ else if (Color.isHexColorString(trimmed)) {
786
+ return Color.fromHex(trimmed);
606
787
  }
607
- else if (/^hsl\(\s*(\d+)\s*,\s*(\d+(?:\.\d+)?%)\s*,\s*(\d+(?:\.\d+)?%)\)$/.test(color)) {
608
- return Color.fromHsl(color);
609
- // -----
788
+ if (HSL_REGEX_PATTERN.test(trimmed)) {
789
+ return Color.fromHsl(trimmed);
610
790
  }
611
- else if (/^rgb\((\s*[0-9-.%]+\s*,?){3}\)$/.test(color)) {
612
- // TODO: [0] Should be fromRgbString and fromRgbaString one or two functions
613
- return Color.fromRgbString(color);
614
- // -----
791
+ else if (RGB_REGEX_PATTERN.test(trimmed)) {
792
+ return Color.fromRgbString(trimmed);
615
793
  }
616
- else if (/^rgba\((\s*[0-9-.%]+\s*,?){4}\)$/.test(color)) {
617
- return Color.fromRgbaString(color);
618
- // -----
794
+ else if (RGBA_REGEX_PATTERN.test(trimmed)) {
795
+ return Color.fromRgbaString(trimmed);
619
796
  }
620
797
  else {
621
- throw new Error(`Can not create a new Color instance from string "${color}".`);
798
+ throw new Error(`Can not create a new Color instance from string "${trimmed}".`);
622
799
  }
623
800
  }
624
801
  /**
@@ -649,73 +826,8 @@
649
826
  * @returns Color object
650
827
  */
651
828
  static fromHex(hex) {
652
- const hexOriginal = hex;
653
- if (hex.startsWith('#')) {
654
- hex = hex.substring(1);
655
- }
656
- if (hex.length === 3) {
657
- return Color.fromHex3(hex);
658
- }
659
- if (hex.length === 4) {
660
- return Color.fromHex4(hex);
661
- }
662
- if (hex.length === 6) {
663
- return Color.fromHex6(hex);
664
- }
665
- if (hex.length === 8) {
666
- return Color.fromHex8(hex);
667
- }
668
- throw new Error(`Can not parse color from hex string "${hexOriginal}"`);
669
- }
670
- /**
671
- * Creates a new Color instance from color in hex format with 3 color digits (without alpha channel)
672
- *
673
- * @param color in hex for example `09d`
674
- * @returns Color object
675
- */
676
- static fromHex3(hex) {
677
- const r = parseInt(hex.substr(0, 1), 16) * 16;
678
- const g = parseInt(hex.substr(1, 1), 16) * 16;
679
- const b = parseInt(hex.substr(2, 1), 16) * 16;
680
- return take(new Color(r, g, b));
681
- }
682
- /**
683
- * Creates a new Color instance from color in hex format with 4 digits (with alpha channel)
684
- *
685
- * @param color in hex for example `09df`
686
- * @returns Color object
687
- */
688
- static fromHex4(hex) {
689
- const r = parseInt(hex.substr(0, 1), 16) * 16;
690
- const g = parseInt(hex.substr(1, 1), 16) * 16;
691
- const b = parseInt(hex.substr(2, 1), 16) * 16;
692
- const a = parseInt(hex.substr(3, 1), 16) * 16;
693
- return take(new Color(r, g, b, a));
694
- }
695
- /**
696
- * Creates a new Color instance from color in hex format with 6 color digits (without alpha channel)
697
- *
698
- * @param color in hex for example `009edd`
699
- * @returns Color object
700
- */
701
- static fromHex6(hex) {
702
- const r = parseInt(hex.substr(0, 2), 16);
703
- const g = parseInt(hex.substr(2, 2), 16);
704
- const b = parseInt(hex.substr(4, 2), 16);
705
- return take(new Color(r, g, b));
706
- }
707
- /**
708
- * Creates a new Color instance from color in hex format with 8 color digits (with alpha channel)
709
- *
710
- * @param color in hex for example `009edd`
711
- * @returns Color object
712
- */
713
- static fromHex8(hex) {
714
- const r = parseInt(hex.substr(0, 2), 16);
715
- const g = parseInt(hex.substr(2, 2), 16);
716
- const b = parseInt(hex.substr(4, 2), 16);
717
- const a = parseInt(hex.substr(6, 2), 16);
718
- return take(new Color(r, g, b, a));
829
+ const { red, green, blue, alpha } = parseHexColor(hex);
830
+ return take(new Color(red, green, blue, alpha));
719
831
  }
720
832
  /**
721
833
  * Creates a new Color instance from color in hsl format
@@ -724,52 +836,8 @@
724
836
  * @returns Color object
725
837
  */
726
838
  static fromHsl(hsl) {
727
- const match = hsl.match(/^hsl\(\s*([0-9.]+)\s*,\s*([0-9.]+)%\s*,\s*([0-9.]+)%\s*\)$/);
728
- if (!match) {
729
- throw new Error(`Invalid hsl string format: "${hsl}"`);
730
- }
731
- const h = parseFloat(match[1]);
732
- const s = parseFloat(match[2]) / 100;
733
- const l = parseFloat(match[3]) / 100;
734
- // HSL to RGB conversion
735
- const c = (1 - Math.abs(2 * l - 1)) * s;
736
- const x = c * (1 - Math.abs(((h / 60) % 2) - 1));
737
- const m = l - c / 2;
738
- let r1 = 0, g1 = 0, b1 = 0;
739
- if (h >= 0 && h < 60) {
740
- r1 = c;
741
- g1 = x;
742
- b1 = 0;
743
- }
744
- else if (h >= 60 && h < 120) {
745
- r1 = x;
746
- g1 = c;
747
- b1 = 0;
748
- }
749
- else if (h >= 120 && h < 180) {
750
- r1 = 0;
751
- g1 = c;
752
- b1 = x;
753
- }
754
- else if (h >= 180 && h < 240) {
755
- r1 = 0;
756
- g1 = x;
757
- b1 = c;
758
- }
759
- else if (h >= 240 && h < 300) {
760
- r1 = x;
761
- g1 = 0;
762
- b1 = c;
763
- }
764
- else if (h >= 300 && h < 360) {
765
- r1 = c;
766
- g1 = 0;
767
- b1 = x;
768
- }
769
- const r = Math.round((r1 + m) * 255);
770
- const g = Math.round((g1 + m) * 255);
771
- const b = Math.round((b1 + m) * 255);
772
- return take(new Color(r, g, b));
839
+ const { red, green, blue, alpha } = parseHslColor(hsl);
840
+ return take(new Color(red, green, blue, alpha));
773
841
  }
774
842
  /**
775
843
  * Creates a new Color instance from color in rgb format
@@ -778,25 +846,8 @@
778
846
  * @returns Color object
779
847
  */
780
848
  static fromRgbString(rgb) {
781
- const match = rgb.match(/^rgb\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/);
782
- if (!match) {
783
- throw new Error(`Invalid rgb string format: "${rgb}"`);
784
- }
785
- const parseChannel = (value) => {
786
- if (value.endsWith('%')) {
787
- // Percentage value
788
- const percent = parseFloat(value);
789
- return Math.round((percent / 100) * 255);
790
- }
791
- else {
792
- // Numeric value
793
- return Math.round(parseFloat(value));
794
- }
795
- };
796
- const r = parseChannel(match[1]);
797
- const g = parseChannel(match[2]);
798
- const b = parseChannel(match[3]);
799
- return take(new Color(r, g, b));
849
+ const { red, green, blue, alpha } = parseRgbColor(rgb);
850
+ return take(new Color(red, green, blue, alpha));
800
851
  }
801
852
  /**
802
853
  * Creates a new Color instance from color in rbga format
@@ -805,39 +856,8 @@
805
856
  * @returns Color object
806
857
  */
807
858
  static fromRgbaString(rgba) {
808
- const match = rgba.match(/^rgba\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/);
809
- if (!match) {
810
- throw new Error(`Invalid rgba string format: "${rgba}"`);
811
- }
812
- const parseChannel = (value) => {
813
- if (value.endsWith('%')) {
814
- const percent = parseFloat(value);
815
- return Math.round((percent / 100) * 255);
816
- }
817
- else {
818
- return Math.round(parseFloat(value));
819
- }
820
- };
821
- const parseAlpha = (value) => {
822
- if (value.endsWith('%')) {
823
- const percent = parseFloat(value);
824
- return Math.round((percent / 100) * 255);
825
- }
826
- else {
827
- const alphaFloat = parseFloat(value);
828
- // If alpha is between 0 and 1, treat as float
829
- if (alphaFloat <= 1) {
830
- return Math.round(alphaFloat * 255);
831
- }
832
- // Otherwise, treat as 0-255
833
- return Math.round(alphaFloat);
834
- }
835
- };
836
- const r = parseChannel(match[1]);
837
- const g = parseChannel(match[2]);
838
- const b = parseChannel(match[3]);
839
- const a = parseAlpha(match[4]);
840
- return take(new Color(r, g, b, a));
859
+ const { red, green, blue, alpha } = parseRgbaColor(rgba);
860
+ return take(new Color(red, green, blue, alpha));
841
861
  }
842
862
  /**
843
863
  * Creates a new Color for color channels values
@@ -959,14 +979,16 @@
959
979
  }
960
980
  toHex() {
961
981
  if (this.alpha === 255) {
962
- return `#${this.red.toString(16).padStart(2, '0')}${this.green.toString(16).padStart(2, '0')}${this.blue
982
+ return `#${this.red.toString(16).padStart(2, '0')}${this.green
963
983
  .toString(16)
964
- .padStart(2, '0')}`;
984
+ .padStart(2, '0')}${this.blue.toString(16).padStart(2, '0')}`;
965
985
  }
966
986
  else {
967
- return `#${this.red.toString(16).padStart(2, '0')}${this.green.toString(16).padStart(2, '0')}${this.blue
987
+ return `#${this.red.toString(16).padStart(2, '0')}${this.green
968
988
  .toString(16)
969
- .padStart(2, '0')}${this.alpha.toString(16).padStart(2, '0')}`;
989
+ .padStart(2, '0')}${this.blue.toString(16).padStart(2, '0')}${this.alpha
990
+ .toString(16)
991
+ .padStart(2, '0')}`;
970
992
  }
971
993
  }
972
994
  toRgb() {
@@ -981,22 +1003,6 @@
981
1003
  throw new Error(`Getting HSL is not implemented`);
982
1004
  }
983
1005
  }
984
- /**
985
- * TODO: [🥻] Split Color class and color type
986
- * TODO: For each method a corresponding static method should be created
987
- * Like clone can be done by color.clone() OR Color.clone(color)
988
- * TODO: Probably as an independent LIB OR add to LIB xyzt (ask @roseckyj)
989
- * TODO: !! Transfer back to Collboard (whole directory)
990
- * TODO: Maybe [🏌️‍♂️] change ACRY toString => (toHex) toRgb when there will be toRgb and toRgba united
991
- * TODO: Convert getters to methods - getters only for values
992
- * TODO: Write tests
993
- * TODO: Getters for alpha, opacity, transparency, r, b, g, h, s, l, a,...
994
- * TODO: [0] Should be fromRgbString and fromRgbaString one or two functions + one or two regex
995
- * TODO: Use rgb, rgba, hsl for testing and parsing with the same regex
996
- * TODO: Regex for rgb, rgba, hsl does not support all options like deg, rad, turn,...
997
- * TODO: Convolution matrix
998
- * TODO: Maybe connect with textures
999
- */
1000
1006
 
1001
1007
  /**
1002
1008
  * Makes color transformer which returns a grayscale version of the color
@@ -1988,6 +1994,12 @@
1988
1994
  // <- TODO: Add [emoji] + instructions ACRY when adding new reserved parameter
1989
1995
  ],
1990
1996
  });
1997
+ /**
1998
+ * Prompt parameter that toggles whether the agent runs self-learning after each chat.
1999
+ *
2000
+ * @public exported from `@promptbook/core`
2001
+ */
2002
+ const PROMPT_PARAMETER_SELF_LEARNING_ENABLED = 'selfLearningEnabled';
1991
2003
  /**
1992
2004
  * Limits for IDs, names, and other strings
1993
2005
  *
@@ -3086,13 +3098,29 @@
3086
3098
  return replacedTemplates;
3087
3099
  }
3088
3100
 
3101
+ /**
3102
+ * Unsafe characters that prevent an inline parameter.
3103
+ *
3104
+ * @private constant of ParameterEscaping
3105
+ */
3089
3106
  const INLINE_UNSAFE_PARAMETER_PATTERN = /[\r\n`$'"|<>{};()-*/~+!@#$%^&*\\/[\]]/;
3107
+ /**
3108
+ * Characters that always need escaping for inline placeholders.
3109
+ *
3110
+ * @private constant of ParameterEscaping
3111
+ */
3090
3112
  const PROMPT_PARAMETER_ESCAPE_PATTERN = /[`$]/g;
3113
+ /**
3114
+ * Characters that always need escaping when braces are included.
3115
+ *
3116
+ * @private constant of ParameterEscaping
3117
+ */
3091
3118
  const PROMPT_PARAMETER_ESCAPE_WITH_BRACES_PATTERN = /[{}$`]/g;
3092
3119
  /**
3093
3120
  * Normalizes a JSON string so it can be safely rendered without double escaping.
3094
3121
  *
3095
3122
  * @param value Candidate JSON string.
3123
+ * @private function of ParameterEscaping
3096
3124
  */
3097
3125
  function normalizeJsonString(value) {
3098
3126
  try {
@@ -3104,59 +3132,35 @@
3104
3132
  }
3105
3133
  /**
3106
3134
  * Hides brackets in a string to avoid confusion with template parameters.
3107
- */
3108
- function hideBrackets(value) {
3109
- return value.split('{').join(`${REPLACING_NONCE}beginbracket`).split('}').join(`${REPLACING_NONCE}endbracket`);
3110
- }
3111
- /**
3112
- * Restores brackets in a string.
3113
- */
3114
- function restoreBrackets(value) {
3115
- return value.split(`${REPLACING_NONCE}beginbracket`).join('{').split(`${REPLACING_NONCE}endbracket`).join('}');
3116
- }
3117
- /**
3118
- * Prompt string wrapper to retain prompt context across interpolations.
3119
3135
  *
3120
- * @public exported from `@promptbook/utils`
3136
+ * @param value Input string with literal brackets.
3137
+ * @private function of ParameterEscaping
3121
3138
  */
3122
- class PromptString extends String {
3123
- /**
3124
- * @param value Prompt content.
3125
- */
3126
- constructor(value) {
3127
- super(value);
3128
- }
3129
- /**
3130
- * Returns the prompt as a primitive string.
3131
- */
3132
- toString() {
3133
- return super.toString();
3134
- }
3135
- /**
3136
- * Returns the prompt as a primitive string for implicit coercion.
3137
- */
3138
- valueOf() {
3139
- return super.valueOf();
3140
- }
3141
- /**
3142
- * Ensures template literal coercion returns the raw string.
3143
- */
3144
- [Symbol.toPrimitive]() {
3145
- return this.toString();
3146
- }
3139
+ function hideBrackets(value) {
3140
+ return value
3141
+ .split('{')
3142
+ .join(`${REPLACING_NONCE}beginbracket`)
3143
+ .split('}')
3144
+ .join(`${REPLACING_NONCE}endbracket`);
3147
3145
  }
3148
3146
  /**
3149
- * Checks whether a value is a PromptString instance.
3147
+ * Restores hidden brackets.
3150
3148
  *
3151
- * @param value Candidate value.
3149
+ * @param value String with hidden brackets.
3150
+ * @private function of ParameterEscaping
3152
3151
  */
3153
- function isPromptString(value) {
3154
- return value instanceof PromptString;
3152
+ function restoreBrackets(value) {
3153
+ return value
3154
+ .split(`${REPLACING_NONCE}beginbracket`)
3155
+ .join('{')
3156
+ .split(`${REPLACING_NONCE}endbracket`)
3157
+ .join('}');
3155
3158
  }
3156
3159
  /**
3157
- * Decides whether a value is safe to inline directly into the prompt.
3160
+ * Decides whether a parameter can be inlined safely.
3158
3161
  *
3159
- * @param value Parameter value as string.
3162
+ * @param value Parameter rendered as string.
3163
+ * @private function of ParameterEscaping
3160
3164
  */
3161
3165
  function shouldInlineParameterValue(value) {
3162
3166
  if (value.trim() === '') {
@@ -3165,10 +3169,11 @@
3165
3169
  return !INLINE_UNSAFE_PARAMETER_PATTERN.test(value);
3166
3170
  }
3167
3171
  /**
3168
- * Escapes parameter content to avoid breaking prompt structure.
3172
+ * Escapes prompt parameter content to avoid breaking the template structure.
3169
3173
  *
3170
3174
  * @param value Parameter value to escape.
3171
3175
  * @param options Escape options for additional characters.
3176
+ * @private function of ParameterEscaping
3172
3177
  */
3173
3178
  function escapePromptParameterValue(value, options) {
3174
3179
  const pattern = options.includeBraces
@@ -3177,17 +3182,32 @@
3177
3182
  return value.replace(pattern, '\\$&');
3178
3183
  }
3179
3184
  /**
3180
- * Builds numeric parameter name used in prompt placeholders.
3185
+ * Collection of utilities that keep prompt parameters safe during interpolation.
3186
+ *
3187
+ * @private helper of prompt notation
3188
+ */
3189
+ const ParameterEscaping = {
3190
+ normalizeJsonString,
3191
+ hideBrackets,
3192
+ restoreBrackets,
3193
+ shouldInlineParameterValue,
3194
+ escapePromptParameterValue,
3195
+ };
3196
+
3197
+ /**
3198
+ * Builds numeric parameter names (1, 2, ...).
3181
3199
  *
3182
3200
  * @param index Zero-based parameter index.
3201
+ * @private function of ParameterNaming
3183
3202
  */
3184
3203
  function buildNumericParameterName(index) {
3185
3204
  return `${index + 1}`;
3186
3205
  }
3187
3206
  /**
3188
- * Builds alphabetic parameter name used in prompt placeholders.
3207
+ * Builds alphabetic parameter names (a, b, ..., aa).
3189
3208
  *
3190
3209
  * @param index Zero-based parameter index.
3210
+ * @private function of ParameterNaming
3191
3211
  */
3192
3212
  function buildAlphabeticParameterName(index) {
3193
3213
  const alphabet = 'abcdefghijklmnopqrstuvwxyz';
@@ -3203,6 +3223,7 @@
3203
3223
  * Converts a positive integer into a Roman numeral string.
3204
3224
  *
3205
3225
  * @param value Positive integer value.
3226
+ * @private function of ParameterNaming
3206
3227
  */
3207
3228
  function toRomanNumeral(value) {
3208
3229
  const romanTable = [
@@ -3231,24 +3252,28 @@
3231
3252
  return result;
3232
3253
  }
3233
3254
  /**
3234
- * Builds Roman numeral parameter name used in prompt placeholders.
3255
+ * Builds Roman numeral parameter names (I, II, ...).
3235
3256
  *
3236
3257
  * @param index Zero-based parameter index.
3258
+ * @private function of ParameterNaming
3237
3259
  */
3238
3260
  function buildRomanParameterName(index) {
3239
3261
  return toRomanNumeral(index + 1);
3240
3262
  }
3241
3263
  /**
3242
- * Creates a parameter name builder that prefixes another builder.
3264
+ * Creates a prefixed naming strategy.
3243
3265
  *
3244
- * @param prefix Prefix to add.
3245
- * @param builder Base builder to wrap.
3266
+ * @param prefix Prefix string.
3267
+ * @param builder Base builder function.
3268
+ * @private function of ParameterNaming
3246
3269
  */
3247
3270
  function buildPrefixedParameterName(prefix, builder) {
3248
3271
  return (index) => `${prefix}${builder(index)}`;
3249
3272
  }
3250
3273
  /**
3251
- * Ordered list of strategies for parameter naming.
3274
+ * Available strategies that try to avoid placeholder conflicts.
3275
+ *
3276
+ * @private constant of ParameterNaming
3252
3277
  */
3253
3278
  const PARAMETER_NAME_STRATEGIES = [
3254
3279
  { buildName: buildNumericParameterName },
@@ -3261,6 +3286,7 @@
3261
3286
  * Collects bracketed tokens from parameter values to avoid placeholder collisions.
3262
3287
  *
3263
3288
  * @param values Parameter values to scan.
3289
+ * @private function of ParameterNaming
3264
3290
  */
3265
3291
  function collectBracketedParameterTokens(values) {
3266
3292
  const tokens = new Set();
@@ -3277,9 +3303,10 @@
3277
3303
  return tokens;
3278
3304
  }
3279
3305
  /**
3280
- * Builds parameter names used in prompt placeholders while avoiding collisions.
3306
+ * Builds placeholder names while avoiding collisions with parameter content.
3281
3307
  *
3282
3308
  * @param values Parameter values to scan for conflicting tokens.
3309
+ * @private function of ParameterNaming
3283
3310
  */
3284
3311
  function buildParameterNames(values) {
3285
3312
  const count = values.length;
@@ -3296,28 +3323,40 @@
3296
3323
  }
3297
3324
  return Array.from({ length: count }, (_, index) => `${REPLACING_NONCE}${index + 1}`);
3298
3325
  }
3326
+ /**
3327
+ * Provides naming utilities for prompt parameters.
3328
+ *
3329
+ * @private helper of prompt notation
3330
+ */
3331
+ const ParameterNaming = {
3332
+ buildParameterNames,
3333
+ };
3334
+
3299
3335
  /**
3300
3336
  * Formats the placeholder used in the prompt body for a parameter.
3301
3337
  *
3302
3338
  * @param name Parameter placeholder name.
3339
+ * @private function of ParameterSection
3303
3340
  */
3304
3341
  function formatParameterPlaceholder(name) {
3305
3342
  return `{${name}}`;
3306
3343
  }
3307
3344
  /**
3308
- * Formats a parameter entry for the structured parameters section.
3345
+ * Formats a single line entry for structured parameters.
3309
3346
  *
3310
3347
  * @param item Parameter entry data.
3348
+ * @private function of ParameterSection
3311
3349
  */
3312
3350
  function formatParameterListItem(item) {
3313
3351
  var _a;
3314
- const formattedValue = (_a = item.jsonValue) !== null && _a !== void 0 ? _a : JSON.stringify(escapePromptParameterValue(item.value, { includeBraces: true }));
3352
+ const formattedValue = (_a = item.jsonValue) !== null && _a !== void 0 ? _a : JSON.stringify(ParameterEscaping.escapePromptParameterValue(item.value, { includeBraces: true }));
3315
3353
  return `${item.name}) ${formattedValue}`;
3316
3354
  }
3317
3355
  /**
3318
3356
  * Builds the structured parameters section appended to the prompt.
3319
3357
  *
3320
3358
  * @param items Parameter entries to include.
3359
+ * @private function of ParameterSection
3321
3360
  */
3322
3361
  function buildParametersSection(items) {
3323
3362
  const entries = items
@@ -3332,6 +3371,55 @@
3332
3371
  - Parameter values are escaped in JSON structures to avoid breaking the prompt structure.
3333
3372
  `);
3334
3373
  }
3374
+ /**
3375
+ * Provides helpers for rendering structured parameter placeholders.
3376
+ *
3377
+ * @private helper of prompt notation
3378
+ */
3379
+ const ParameterSection = {
3380
+ formatParameterPlaceholder,
3381
+ buildParametersSection,
3382
+ };
3383
+
3384
+ /**
3385
+ * Prompt string wrapper to retain prompt context across interpolations.
3386
+ *
3387
+ * @public exported from `@promptbook/utils`
3388
+ */
3389
+ class PromptString extends String {
3390
+ /**
3391
+ * @param value Prompt content.
3392
+ */
3393
+ constructor(value) {
3394
+ super(value);
3395
+ }
3396
+ /**
3397
+ * Returns the prompt as a primitive string.
3398
+ */
3399
+ toString() {
3400
+ return super.toString();
3401
+ }
3402
+ /**
3403
+ * Returns the prompt as a primitive string for implicit coercion.
3404
+ */
3405
+ valueOf() {
3406
+ return super.valueOf();
3407
+ }
3408
+ /**
3409
+ * Ensures template literal coercion returns the raw string.
3410
+ */
3411
+ [Symbol.toPrimitive]() {
3412
+ return this.toString();
3413
+ }
3414
+ }
3415
+ /**
3416
+ * Checks whether a value is a PromptString instance.
3417
+ *
3418
+ * @param value Candidate value.
3419
+ */
3420
+ function isPromptString(value) {
3421
+ return value instanceof PromptString;
3422
+ }
3335
3423
  /**
3336
3424
  * Tag function for notating a prompt as template literal
3337
3425
  *
@@ -3349,24 +3437,24 @@
3349
3437
  if (values.length === 0) {
3350
3438
  return new PromptString(spaceTrim__default["default"](strings.join('')));
3351
3439
  }
3352
- const stringsWithHiddenParameters = strings.map((stringsItem) => hideBrackets(stringsItem));
3440
+ const stringsWithHiddenParameters = strings.map((stringsItem) => ParameterEscaping.hideBrackets(stringsItem));
3353
3441
  const parameterMetadata = values.map((value) => {
3354
3442
  const isPrompt = isPromptString(value);
3355
3443
  const stringValue = isPrompt ? value.toString() : valueToString(value);
3356
- const isInline = isPrompt ? true : shouldInlineParameterValue(stringValue);
3357
- const jsonValue = !isPrompt && !isInline ? normalizeJsonString(stringValue) : null;
3444
+ const isInline = isPrompt ? true : ParameterEscaping.shouldInlineParameterValue(stringValue);
3445
+ const jsonValue = !isPrompt && !isInline ? ParameterEscaping.normalizeJsonString(stringValue) : null;
3358
3446
  return { isPrompt, stringValue, isInline, jsonValue };
3359
3447
  });
3360
- const parameterNames = buildParameterNames(parameterMetadata.map((entry) => entry.stringValue));
3448
+ const parameterNames = ParameterNaming.buildParameterNames(parameterMetadata.map((entry) => entry.stringValue));
3361
3449
  const parameterEntries = parameterMetadata.map((entry, index) => {
3362
3450
  var _a;
3363
- const name = (_a = parameterNames[index]) !== null && _a !== void 0 ? _a : buildNumericParameterName(index);
3451
+ const name = (_a = parameterNames[index]) !== null && _a !== void 0 ? _a : `${index + 1}`;
3364
3452
  const promptMarker = `${REPLACING_NONCE}prompt-${index}`;
3365
3453
  const parameterMarker = `${REPLACING_NONCE}parameter-${index}`;
3366
3454
  const templateValue = entry.isPrompt
3367
3455
  ? promptMarker
3368
3456
  : entry.isInline
3369
- ? escapePromptParameterValue(entry.stringValue, { includeBraces: false })
3457
+ ? ParameterEscaping.escapePromptParameterValue(entry.stringValue, { includeBraces: false })
3370
3458
  : parameterMarker;
3371
3459
  return {
3372
3460
  name,
@@ -3386,7 +3474,7 @@
3386
3474
  const parameterName = parameterNamesOrdered[i];
3387
3475
  return parameterName === undefined
3388
3476
  ? `${result}${stringsItem}`
3389
- : `${result}${stringsItem}${formatParameterPlaceholder(parameterName)}`;
3477
+ : `${result}${stringsItem}${ParameterSection.formatParameterPlaceholder(parameterName)}`;
3390
3478
  }, '');
3391
3479
  pipelineString = spaceTrim__default["default"](pipelineString);
3392
3480
  try {
@@ -3404,14 +3492,16 @@
3404
3492
 
3405
3493
  `));
3406
3494
  }
3407
- pipelineString = restoreBrackets(pipelineString);
3495
+ pipelineString = ParameterEscaping.restoreBrackets(pipelineString);
3408
3496
  for (const entry of parameterEntries) {
3409
3497
  if (entry.isPrompt) {
3410
3498
  pipelineString = pipelineString.split(entry.promptMarker).join(entry.stringValue);
3411
3499
  continue;
3412
3500
  }
3413
3501
  if (!entry.isInline) {
3414
- pipelineString = pipelineString.split(entry.parameterMarker).join(formatParameterPlaceholder(entry.name));
3502
+ pipelineString = pipelineString
3503
+ .split(entry.parameterMarker)
3504
+ .join(ParameterSection.formatParameterPlaceholder(entry.name));
3415
3505
  }
3416
3506
  }
3417
3507
  const structuredParameters = parameterEntries.filter((entry) => !entry.isPrompt && !entry.isInline);
@@ -3421,7 +3511,7 @@
3421
3511
  value: entry.stringValue,
3422
3512
  jsonValue: entry.jsonValue,
3423
3513
  }));
3424
- pipelineString = `${pipelineString}\n\n${buildParametersSection(parameterItems)}`;
3514
+ pipelineString = `${pipelineString}\n\n${ParameterSection.buildParametersSection(parameterItems)}`;
3425
3515
  }
3426
3516
  return new PromptString(pipelineString);
3427
3517
  }
@@ -7085,6 +7175,7 @@
7085
7175
  agentId: memoryContext === null || memoryContext === void 0 ? void 0 : memoryContext.agentId,
7086
7176
  agentName: memoryContext === null || memoryContext === void 0 ? void 0 : memoryContext.agentName,
7087
7177
  isTeamConversation: (memoryContext === null || memoryContext === void 0 ? void 0 : memoryContext.isTeamConversation) === true,
7178
+ isPrivateMode: (memoryContext === null || memoryContext === void 0 ? void 0 : memoryContext.isPrivateMode) === true,
7088
7179
  };
7089
7180
  }
7090
7181
  /**
@@ -7130,12 +7221,15 @@
7130
7221
  * @private utility of MEMORY commitment
7131
7222
  */
7132
7223
  function getRuntimeAdapterOrDisabledResult(action, runtimeContext) {
7133
- if (!runtimeContext.enabled || runtimeContext.isTeamConversation) {
7224
+ if (!runtimeContext.enabled || runtimeContext.isTeamConversation || runtimeContext.isPrivateMode) {
7225
+ const message = runtimeContext.isPrivateMode
7226
+ ? 'Memory is disabled because private mode is active.'
7227
+ : runtimeContext.isTeamConversation
7228
+ ? 'Memory is disabled for TEAM conversations.'
7229
+ : 'Memory is disabled for unauthenticated users.';
7134
7230
  return {
7135
7231
  adapter: null,
7136
- disabledResult: createDisabledMemoryResult(action, runtimeContext.isTeamConversation
7137
- ? 'Memory is disabled for TEAM conversations.'
7138
- : 'Memory is disabled for unauthenticated users.'),
7232
+ disabledResult: createDisabledMemoryResult(action, message),
7139
7233
  };
7140
7234
  }
7141
7235
  {
@@ -7859,71 +7953,137 @@
7859
7953
  }
7860
7954
 
7861
7955
  /**
7862
- * META commitment definition
7863
- *
7864
- * The META commitment handles all meta-information about the agent such as:
7865
- * - META IMAGE: Sets the agent's avatar/profile image URL
7866
- * - META LINK: Provides profile/source links for the person the agent models
7867
- * - META TITLE: Sets the agent's display title
7868
- * - META DESCRIPTION: Sets the agent's description
7869
- * - META [ANYTHING]: Any other meta information in uppercase format
7956
+ * MESSAGE SUFFIX commitment definition
7870
7957
  *
7871
- * These commitments are special because they don't affect the system message,
7872
- * but are handled separately in the parsing logic for profile display.
7958
+ * The MESSAGE SUFFIX commitment stores a hardcoded message that is appended
7959
+ * to every assistant response in Agents Server runtimes.
7873
7960
  *
7874
7961
  * Example usage in agent source:
7875
7962
  *
7876
7963
  * ```book
7877
- * META IMAGE https://example.com/avatar.jpg
7878
- * META LINK https://twitter.com/username
7879
- * META TITLE Professional Assistant
7880
- * META DESCRIPTION An AI assistant specialized in business tasks
7881
- * META AUTHOR John Doe
7882
- * META VERSION 1.0
7964
+ * MESSAGE SUFFIX This message was generated by Promptbook.
7883
7965
  * ```
7884
7966
  *
7885
7967
  * @private [🪔] Maybe export the commitments through some package
7886
7968
  */
7887
- class MetaCommitmentDefinition extends BaseCommitmentDefinition {
7969
+ class MessageSuffixCommitmentDefinition extends BaseCommitmentDefinition {
7888
7970
  constructor() {
7889
- super('META');
7971
+ super('MESSAGE SUFFIX');
7890
7972
  }
7891
7973
  /**
7892
- * Short one-line description of META commitments.
7974
+ * Short one-line description of MESSAGE SUFFIX.
7893
7975
  */
7894
7976
  get description() {
7895
- return 'Set meta-information about the agent (IMAGE, LINK, TITLE, DESCRIPTION, etc.).';
7977
+ return 'Set a hardcoded suffix appended to every assistant response.';
7896
7978
  }
7897
7979
  /**
7898
7980
  * Icon for this commitment.
7899
7981
  */
7900
7982
  get icon() {
7901
- return 'ℹ️';
7983
+ return '🏷️';
7902
7984
  }
7903
7985
  /**
7904
- * Markdown documentation for META commitment.
7986
+ * Markdown documentation for MESSAGE SUFFIX commitment.
7905
7987
  */
7906
7988
  get documentation() {
7907
7989
  return spaceTrim$1.spaceTrim(`
7908
- # META
7909
-
7910
- Sets meta-information about the agent that is used for display and attribution purposes.
7990
+ # MESSAGE SUFFIX
7911
7991
 
7912
- ## Supported META types
7913
-
7914
- - **META IMAGE** - Sets the agent's avatar/profile image URL
7915
- - **META LINK** - Provides profile/source links for the person the agent models
7916
- - **META TITLE** - Sets the agent's display title
7917
- - **META DESCRIPTION** - Sets the agent's description
7918
- - **META [ANYTHING]** - Any other meta information in uppercase format
7992
+ Defines a hardcoded message appended to every assistant response.
7919
7993
 
7920
7994
  ## Key aspects
7921
7995
 
7922
- - Does not modify the agent's behavior or responses
7923
- - Used for visual representation and attribution in user interfaces
7924
- - Multiple META commitments of different types can be used
7925
- - Multiple META LINK commitments can be used for different social profiles
7926
- - If multiple META commitments of the same type are specified, the last one takes precedence (except for LINK)
7996
+ - Does not modify the system message or model requirements.
7997
+ - Supports multiline markdown content.
7998
+ - Useful for branding, legal notes, and disclosure notices.
7999
+ - If multiple \`MESSAGE SUFFIX\` commitments are present, the last one takes precedence.
8000
+
8001
+ ## Example
8002
+
8003
+ \`\`\`book
8004
+ Branded Assistant
8005
+
8006
+ MESSAGE SUFFIX
8007
+ This was generated by Promptbook, the best tool to create AI agents.
8008
+ \`\`\`
8009
+ `);
8010
+ }
8011
+ applyToAgentModelRequirements(requirements, content) {
8012
+ // MESSAGE SUFFIX does not modify model requirements.
8013
+ // It is consumed by parsing/runtime layers in Agents Server.
8014
+ return requirements;
8015
+ }
8016
+ }
8017
+ /**
8018
+ * Note: [💞] Ignore a discrepancy between file name and entity name
8019
+ */
8020
+
8021
+ /**
8022
+ * META commitment definition
8023
+ *
8024
+ * The META commitment handles all meta-information about the agent such as:
8025
+ * - META IMAGE: Sets the agent's avatar/profile image URL
8026
+ * - META LINK: Provides profile/source links for the person the agent models
8027
+ * - META TITLE: Sets the agent's display title
8028
+ * - META DESCRIPTION: Sets the agent's description
8029
+ * - META [ANYTHING]: Any other meta information in uppercase format
8030
+ *
8031
+ * These commitments are special because they don't affect the system message,
8032
+ * but are handled separately in the parsing logic for profile display.
8033
+ *
8034
+ * Example usage in agent source:
8035
+ *
8036
+ * ```book
8037
+ * META IMAGE https://example.com/avatar.jpg
8038
+ * META LINK https://twitter.com/username
8039
+ * META TITLE Professional Assistant
8040
+ * META DESCRIPTION An AI assistant specialized in business tasks
8041
+ * META AUTHOR John Doe
8042
+ * META VERSION 1.0
8043
+ * ```
8044
+ *
8045
+ * @private [🪔] Maybe export the commitments through some package
8046
+ */
8047
+ class MetaCommitmentDefinition extends BaseCommitmentDefinition {
8048
+ constructor() {
8049
+ super('META');
8050
+ }
8051
+ /**
8052
+ * Short one-line description of META commitments.
8053
+ */
8054
+ get description() {
8055
+ return 'Set meta-information about the agent (IMAGE, LINK, TITLE, DESCRIPTION, etc.).';
8056
+ }
8057
+ /**
8058
+ * Icon for this commitment.
8059
+ */
8060
+ get icon() {
8061
+ return 'ℹ️';
8062
+ }
8063
+ /**
8064
+ * Markdown documentation for META commitment.
8065
+ */
8066
+ get documentation() {
8067
+ return spaceTrim$1.spaceTrim(`
8068
+ # META
8069
+
8070
+ Sets meta-information about the agent that is used for display and attribution purposes.
8071
+
8072
+ ## Supported META types
8073
+
8074
+ - **META IMAGE** - Sets the agent's avatar/profile image URL
8075
+ - **META LINK** - Provides profile/source links for the person the agent models
8076
+ - **META TITLE** - Sets the agent's display title
8077
+ - **META DESCRIPTION** - Sets the agent's description
8078
+ - **META [ANYTHING]** - Any other meta information in uppercase format
8079
+
8080
+ ## Key aspects
8081
+
8082
+ - Does not modify the agent's behavior or responses
8083
+ - Used for visual representation and attribution in user interfaces
8084
+ - Multiple META commitments of different types can be used
8085
+ - Multiple META LINK commitments can be used for different social profiles
8086
+ - If multiple META commitments of the same type are specified, the last one takes precedence (except for LINK)
7927
8087
 
7928
8088
  ## Examples
7929
8089
 
@@ -8099,6 +8259,76 @@
8099
8259
  * Note: [💞] Ignore a discrepancy between file name and entity name
8100
8260
  */
8101
8261
 
8262
+ /**
8263
+ * META DISCLAIMER commitment definition
8264
+ *
8265
+ * The META DISCLAIMER commitment stores markdown text that must be acknowledged
8266
+ * by the user before they can chat with the agent.
8267
+ *
8268
+ * Example usage in agent source:
8269
+ *
8270
+ * ```book
8271
+ * META DISCLAIMER
8272
+ *
8273
+ * This agent may provide information that is **not legally binding**.
8274
+ * ```
8275
+ *
8276
+ * @private [🪔] Maybe export the commitments through some package
8277
+ */
8278
+ class MetaDisclaimerCommitmentDefinition extends BaseCommitmentDefinition {
8279
+ constructor() {
8280
+ super('META DISCLAIMER');
8281
+ }
8282
+ /**
8283
+ * Short one-line description of META DISCLAIMER.
8284
+ */
8285
+ get description() {
8286
+ return 'Set markdown disclaimer text that users must agree with before chat.';
8287
+ }
8288
+ /**
8289
+ * Icon for this commitment.
8290
+ */
8291
+ get icon() {
8292
+ return '⚠️';
8293
+ }
8294
+ /**
8295
+ * Markdown documentation for META DISCLAIMER commitment.
8296
+ */
8297
+ get documentation() {
8298
+ return spaceTrim$1.spaceTrim(`
8299
+ # META DISCLAIMER
8300
+
8301
+ Defines a markdown disclaimer shown to users before they can start chatting with the agent.
8302
+
8303
+ ## Key aspects
8304
+
8305
+ - Does not modify the system message or model requirements.
8306
+ - Supports multiline markdown content.
8307
+ - Intended for legal warnings, safety notices, and mandatory acknowledgements.
8308
+ - If multiple \`META DISCLAIMER\` commitments are present, the last one takes precedence.
8309
+
8310
+ ## Example
8311
+
8312
+ \`\`\`book
8313
+ Legal Assistant
8314
+
8315
+ META DISCLAIMER
8316
+
8317
+ This assistant provides **informational content only** and does not
8318
+ replace professional legal advice.
8319
+ \`\`\`
8320
+ `);
8321
+ }
8322
+ applyToAgentModelRequirements(requirements, content) {
8323
+ // META DISCLAIMER does not modify model requirements.
8324
+ // It is consumed by parsing/UI layers in Agents Server.
8325
+ return requirements;
8326
+ }
8327
+ }
8328
+ /**
8329
+ * Note: [💞] Ignore a discrepancy between file name and entity name
8330
+ */
8331
+
8102
8332
  /**
8103
8333
  * META FONT commitment definition
8104
8334
  *
@@ -10996,75 +11226,290 @@
10996
11226
  */
10997
11227
 
10998
11228
  /**
10999
- * Placeholder commitment definition for commitments that are not yet implemented
11229
+ * Tool name used by the USE USER LOCATION commitment.
11000
11230
  *
11001
- * This commitment simply adds its content 1:1 into the system message,
11002
- * preserving the original behavior until proper implementation is added.
11231
+ * @private internal USE USER LOCATION constant
11232
+ */
11233
+ const GET_USER_LOCATION_TOOL_NAME = 'get_user_location';
11234
+ /**
11235
+ * Returns a finite number when valid.
11003
11236
  *
11004
- * @public exported from `@promptbook/core`
11237
+ * @private utility of USE USER LOCATION commitment
11005
11238
  */
11006
- class NotYetImplementedCommitmentDefinition extends BaseCommitmentDefinition {
11007
- constructor(type) {
11008
- super(type);
11239
+ function normalizeFiniteNumber(value) {
11240
+ if (typeof value !== 'number') {
11241
+ return undefined;
11242
+ }
11243
+ return Number.isFinite(value) ? value : undefined;
11244
+ }
11245
+ /**
11246
+ * Returns a finite number or null when explicitly null.
11247
+ *
11248
+ * @private utility of USE USER LOCATION commitment
11249
+ */
11250
+ function normalizeNullableFiniteNumber(value) {
11251
+ if (value === null) {
11252
+ return null;
11253
+ }
11254
+ return normalizeFiniteNumber(value);
11255
+ }
11256
+ /**
11257
+ * Normalizes raw runtime location payload into a safe location object.
11258
+ *
11259
+ * @private utility of USE USER LOCATION commitment
11260
+ */
11261
+ function normalizeUserLocation(location) {
11262
+ return {
11263
+ permission: location.permission,
11264
+ latitude: normalizeFiniteNumber(location.latitude),
11265
+ longitude: normalizeFiniteNumber(location.longitude),
11266
+ accuracyMeters: normalizeFiniteNumber(location.accuracyMeters),
11267
+ altitudeMeters: normalizeNullableFiniteNumber(location.altitudeMeters),
11268
+ headingDegrees: normalizeNullableFiniteNumber(location.headingDegrees),
11269
+ speedMetersPerSecond: normalizeNullableFiniteNumber(location.speedMetersPerSecond),
11270
+ timestamp: typeof location.timestamp === 'string' ? location.timestamp : undefined,
11271
+ };
11272
+ }
11273
+ /**
11274
+ * Resolves the user location payload from hidden tool runtime context.
11275
+ *
11276
+ * @private utility of USE USER LOCATION commitment
11277
+ */
11278
+ function resolveUserLocationFromRuntimeContext(args) {
11279
+ const runtimeContext = readToolRuntimeContextFromToolArgs(args);
11280
+ const location = runtimeContext === null || runtimeContext === void 0 ? void 0 : runtimeContext.userLocation;
11281
+ if (!location || typeof location !== 'object') {
11282
+ return null;
11283
+ }
11284
+ return normalizeUserLocation(location);
11285
+ }
11286
+ /**
11287
+ * Creates a standard "unavailable location" tool result.
11288
+ *
11289
+ * @private utility of USE USER LOCATION commitment
11290
+ */
11291
+ function createUnavailableLocationResult() {
11292
+ return {
11293
+ status: 'unavailable',
11294
+ message: 'User location is not available in this runtime context. Ask the user to allow location sharing in browser, or ask for their city manually.',
11295
+ };
11296
+ }
11297
+ /**
11298
+ * Creates a standard "permission denied" tool result.
11299
+ *
11300
+ * @private utility of USE USER LOCATION commitment
11301
+ */
11302
+ function createPermissionDeniedResult() {
11303
+ return {
11304
+ status: 'permission-denied',
11305
+ message: 'Location access is denied by the user/browser. Ask the user to enable location access or provide their location manually.',
11306
+ };
11307
+ }
11308
+ /**
11309
+ * USE USER LOCATION commitment definition.
11310
+ *
11311
+ * The `USE USER LOCATION` commitment enables an agent to retrieve user location from runtime context.
11312
+ *
11313
+ * @private [🪔] Maybe export the commitments through some package
11314
+ */
11315
+ class UseUserLocationCommitmentDefinition extends BaseCommitmentDefinition {
11316
+ constructor() {
11317
+ super('USE USER LOCATION', ['USER LOCATION']);
11318
+ }
11319
+ get requiresContent() {
11320
+ return false;
11009
11321
  }
11010
11322
  /**
11011
- * Short one-line description of a placeholder commitment.
11323
+ * Short one-line description of USE USER LOCATION.
11012
11324
  */
11013
11325
  get description() {
11014
- return 'Placeholder commitment that appends content verbatim to the system message.';
11326
+ return 'Enable the agent to determine the user location when browser permission is granted.';
11015
11327
  }
11016
11328
  /**
11017
11329
  * Icon for this commitment.
11018
11330
  */
11019
11331
  get icon() {
11020
- return '🚧';
11332
+ return '📍';
11021
11333
  }
11022
11334
  /**
11023
- * Markdown documentation available at runtime.
11335
+ * Markdown documentation for USE USER LOCATION commitment.
11024
11336
  */
11025
11337
  get documentation() {
11026
11338
  return spaceTrim$1.spaceTrim(`
11027
- # ${this.type}
11339
+ # USE USER LOCATION
11028
11340
 
11029
- This commitment is not yet fully implemented.
11341
+ Enables the agent to retrieve the user's location from runtime context.
11030
11342
 
11031
11343
  ## Key aspects
11032
11344
 
11033
- - Content is appended directly to the system message.
11034
- - No special processing or validation is performed.
11035
- - Behavior preserved until proper implementation is added.
11345
+ - The location is requested by the browser runtime (with user permission).
11346
+ - Use the tool \`get_user_location\` when an answer depends on user's location.
11347
+ - If location is unavailable or denied, ask the user to enable location sharing or provide location manually.
11348
+ - The content following \`USE USER LOCATION\` can define additional location usage instructions.
11036
11349
 
11037
- ## Status
11350
+ ## Examples
11038
11351
 
11039
- - **Status:** Placeholder implementation
11040
- - **Effect:** Appends content prefixed by commitment type
11041
- - **Future:** Will be replaced with specialized logic
11352
+ \`\`\`book
11353
+ Local Assistant
11042
11354
 
11043
- ## Examples
11355
+ PERSONA You help with local recommendations.
11356
+ USE USER LOCATION
11357
+ \`\`\`
11044
11358
 
11045
11359
  \`\`\`book
11046
- Example Agent
11360
+ Travel Assistant
11047
11361
 
11048
- PERSONA You are a helpful assistant
11049
- ${this.type} Your content here
11050
- RULE Always be helpful
11362
+ PERSONA You help users with nearby transport and weather.
11363
+ USE USER LOCATION Use location only when strictly needed.
11051
11364
  \`\`\`
11052
11365
  `);
11053
11366
  }
11054
11367
  applyToAgentModelRequirements(requirements, content) {
11055
- const trimmedContent = content.trim();
11056
- if (!trimmedContent) {
11057
- return requirements;
11058
- }
11059
- // Add the commitment content 1:1 to the system message
11060
- const commitmentLine = `${this.type} ${trimmedContent}`;
11061
- return this.appendToSystemMessage(requirements, commitmentLine, '\n\n');
11368
+ const extraInstructions = formatOptionalInstructionBlock('User location instructions', content);
11369
+ const existingTools = requirements.tools || [];
11370
+ const tools = existingTools.some((tool) => tool.name === GET_USER_LOCATION_TOOL_NAME)
11371
+ ? existingTools
11372
+ : [
11373
+ ...existingTools,
11374
+ {
11375
+ name: GET_USER_LOCATION_TOOL_NAME,
11376
+ description: spaceTrim$1.spaceTrim(`
11377
+ Retrieves user location shared by browser runtime (if permission is granted).
11378
+ Returns JSON status with coordinates and metadata when available.
11379
+ `),
11380
+ parameters: {
11381
+ type: 'object',
11382
+ properties: {},
11383
+ required: [],
11384
+ },
11385
+ },
11386
+ ];
11387
+ return this.appendToSystemMessage({
11388
+ ...requirements,
11389
+ tools,
11390
+ _metadata: {
11391
+ ...requirements._metadata,
11392
+ useUserLocation: content || true,
11393
+ },
11394
+ }, spaceTrim$1.spaceTrim((block) => `
11395
+ User location:
11396
+ - Use "${GET_USER_LOCATION_TOOL_NAME}" only when location is needed for a better answer.
11397
+ - If the tool returns "unavailable" or "permission-denied", ask user to share location or provide city manually.
11398
+ - Do not invent coordinates or local facts when location is unavailable.
11399
+ ${block(extraInstructions)}
11400
+ `));
11401
+ }
11402
+ /**
11403
+ * Gets human-readable titles for tool functions provided by this commitment.
11404
+ */
11405
+ getToolTitles() {
11406
+ return {
11407
+ [GET_USER_LOCATION_TOOL_NAME]: 'Get user location',
11408
+ };
11409
+ }
11410
+ /**
11411
+ * Gets the `get_user_location` tool function implementation.
11412
+ */
11413
+ getToolFunctions() {
11414
+ return {
11415
+ async [GET_USER_LOCATION_TOOL_NAME](args) {
11416
+ const location = resolveUserLocationFromRuntimeContext(args);
11417
+ if (!location) {
11418
+ return JSON.stringify(createUnavailableLocationResult());
11419
+ }
11420
+ if (location.permission === 'denied') {
11421
+ return JSON.stringify(createPermissionDeniedResult());
11422
+ }
11423
+ if (location.latitude === undefined || location.longitude === undefined) {
11424
+ return JSON.stringify(createUnavailableLocationResult());
11425
+ }
11426
+ const result = {
11427
+ status: 'ok',
11428
+ location: {
11429
+ ...location,
11430
+ permission: location.permission || 'granted',
11431
+ },
11432
+ message: 'User location is available.',
11433
+ };
11434
+ return JSON.stringify(result);
11435
+ },
11436
+ };
11062
11437
  }
11063
11438
  }
11064
-
11065
- // Import all commitment definition classes
11066
11439
  /**
11067
- * Registry of all available commitment definitions
11440
+ * Note: [💞] Ignore a discrepancy between file name and entity name
11441
+ */
11442
+
11443
+ /**
11444
+ * Placeholder commitment definition for commitments that are not yet implemented
11445
+ *
11446
+ * This commitment simply adds its content 1:1 into the system message,
11447
+ * preserving the original behavior until proper implementation is added.
11448
+ *
11449
+ * @public exported from `@promptbook/core`
11450
+ */
11451
+ class NotYetImplementedCommitmentDefinition extends BaseCommitmentDefinition {
11452
+ constructor(type) {
11453
+ super(type);
11454
+ }
11455
+ /**
11456
+ * Short one-line description of a placeholder commitment.
11457
+ */
11458
+ get description() {
11459
+ return 'Placeholder commitment that appends content verbatim to the system message.';
11460
+ }
11461
+ /**
11462
+ * Icon for this commitment.
11463
+ */
11464
+ get icon() {
11465
+ return '🚧';
11466
+ }
11467
+ /**
11468
+ * Markdown documentation available at runtime.
11469
+ */
11470
+ get documentation() {
11471
+ return spaceTrim$1.spaceTrim(`
11472
+ # ${this.type}
11473
+
11474
+ This commitment is not yet fully implemented.
11475
+
11476
+ ## Key aspects
11477
+
11478
+ - Content is appended directly to the system message.
11479
+ - No special processing or validation is performed.
11480
+ - Behavior preserved until proper implementation is added.
11481
+
11482
+ ## Status
11483
+
11484
+ - **Status:** Placeholder implementation
11485
+ - **Effect:** Appends content prefixed by commitment type
11486
+ - **Future:** Will be replaced with specialized logic
11487
+
11488
+ ## Examples
11489
+
11490
+ \`\`\`book
11491
+ Example Agent
11492
+
11493
+ PERSONA You are a helpful assistant
11494
+ ${this.type} Your content here
11495
+ RULE Always be helpful
11496
+ \`\`\`
11497
+ `);
11498
+ }
11499
+ applyToAgentModelRequirements(requirements, content) {
11500
+ const trimmedContent = content.trim();
11501
+ if (!trimmedContent) {
11502
+ return requirements;
11503
+ }
11504
+ // Add the commitment content 1:1 to the system message
11505
+ const commitmentLine = `${this.type} ${trimmedContent}`;
11506
+ return this.appendToSystemMessage(requirements, commitmentLine, '\n\n');
11507
+ }
11508
+ }
11509
+
11510
+ // Import all commitment definition classes
11511
+ /**
11512
+ * Registry of all available commitment definitions
11068
11513
  * This array contains instances of all commitment definitions
11069
11514
  * This is the single source of truth for all commitments in the system
11070
11515
  *
@@ -11101,6 +11546,7 @@
11101
11546
  new MetaColorCommitmentDefinition(),
11102
11547
  new MetaFontCommitmentDefinition(),
11103
11548
  new MetaLinkCommitmentDefinition(),
11549
+ new MetaDisclaimerCommitmentDefinition(),
11104
11550
  new MetaCommitmentDefinition(),
11105
11551
  new NoteCommitmentDefinition('NOTE'),
11106
11552
  new NoteCommitmentDefinition('NOTES'),
@@ -11112,6 +11558,7 @@
11112
11558
  new InitialMessageCommitmentDefinition(),
11113
11559
  new UserMessageCommitmentDefinition(),
11114
11560
  new AgentMessageCommitmentDefinition(),
11561
+ new MessageSuffixCommitmentDefinition(),
11115
11562
  new MessageCommitmentDefinition('MESSAGE'),
11116
11563
  new MessageCommitmentDefinition('MESSAGES'),
11117
11564
  new ScenarioCommitmentDefinition('SCENARIO'),
@@ -11127,6 +11574,7 @@
11127
11574
  new UseBrowserCommitmentDefinition(),
11128
11575
  new UseSearchEngineCommitmentDefinition(),
11129
11576
  new UseTimeCommitmentDefinition(),
11577
+ new UseUserLocationCommitmentDefinition(),
11130
11578
  new UseEmailCommitmentDefinition(),
11131
11579
  new UseImageGeneratorCommitmentDefinition('USE IMAGE GENERATOR'),
11132
11580
  new UseMcpCommitmentDefinition(),
@@ -11478,6 +11926,14 @@
11478
11926
  });
11479
11927
  continue;
11480
11928
  }
11929
+ if (commitment.type === 'USE USER LOCATION') {
11930
+ capabilities.push({
11931
+ type: 'user-location',
11932
+ label: 'User location',
11933
+ iconName: 'MapPin',
11934
+ });
11935
+ continue;
11936
+ }
11481
11937
  if (commitment.type === 'USE EMAIL' /* || commitment.type === 'EMAIL' || commitment.type === 'MAIL' */) {
11482
11938
  capabilities.push({
11483
11939
  type: 'email',
@@ -11612,6 +12068,14 @@
11612
12068
  meta.description = spaceTrim__default["default"](commitment.content);
11613
12069
  continue;
11614
12070
  }
12071
+ if (commitment.type === 'META DISCLAIMER') {
12072
+ meta.disclaimer = commitment.content;
12073
+ continue;
12074
+ }
12075
+ if (commitment.type === 'MESSAGE SUFFIX') {
12076
+ meta.messageSuffix = commitment.content;
12077
+ continue;
12078
+ }
11615
12079
  if (commitment.type === 'META COLOR') {
11616
12080
  meta.color = normalizeSeparator(commitment.content);
11617
12081
  continue;
@@ -11818,73 +12282,6 @@
11818
12282
  var styles$d = {"BookEditor":"BookEditor-module_BookEditor__s-0PU","bookEditorContainer":"BookEditor-module_bookEditorContainer__wLMwM","isVerbose":"BookEditor-module_isVerbose__VQ6iL","bookEditorWrapper":"BookEditor-module_bookEditorWrapper__twppD","isBorderRadiusDisabled":"BookEditor-module_isBorderRadiusDisabled__h1I3v","dropOverlay":"BookEditor-module_dropOverlay__xWWoX","bookEditorActionbar":"BookEditor-module_bookEditorActionbar__KW6dc","fullscreen":"BookEditor-module_fullscreen__rktsl","button":"BookEditor-module_button__hS390","savedNotification":"BookEditor-module_savedNotification__OiX9L","fadeOut":"BookEditor-module_fadeOut__q8JnR","uploadPanel":"BookEditor-module_uploadPanel__2JJtD","uploadPanelHeader":"BookEditor-module_uploadPanelHeader__pdJd2","uploadPanelTitle":"BookEditor-module_uploadPanelTitle__TJIVF","uploadPanelHeaderMeta":"BookEditor-module_uploadPanelHeaderMeta__Xw0uI","uploadPanelSummary":"BookEditor-module_uploadPanelSummary__rwSbG","uploadPanelProgressBar":"BookEditor-module_uploadPanelProgressBar__a6pjf","uploadPanelProgressFill":"BookEditor-module_uploadPanelProgressFill__l-TKR","uploadPanelList":"BookEditor-module_uploadPanelList__VxEd5","uploadRow":"BookEditor-module_uploadRow__QiSFg","uploadRowHeader":"BookEditor-module_uploadRowHeader__po0j5","uploadRowName":"BookEditor-module_uploadRowName__doQRO","uploadRowStatus":"BookEditor-module_uploadRowStatus__jsUb-","uploadRowMeta":"BookEditor-module_uploadRowMeta__1lz9h","uploadRowProgressBar":"BookEditor-module_uploadRowProgressBar__NoBA7","uploadRowProgressFill":"BookEditor-module_uploadRowProgressFill__TrP7e","uploadRowActions":"BookEditor-module_uploadRowActions__5Y1Mq","uploadActionButton":"BookEditor-module_uploadActionButton__CqJrr","uploadRowError":"BookEditor-module_uploadRowError__eEHWw"};
11819
12283
  styleInject(css_248z$d);
11820
12284
 
11821
- /**
11822
- * Helper for manipulating agent books in-memory.
11823
- *
11824
- * @private internal helper for `@promptbook/core`
11825
- */
11826
- class BookEditable {
11827
- /**
11828
- * Creates a mutable view over the supplied book content.
11829
- *
11830
- * @param book - Agent source text to work with.
11831
- */
11832
- constructor(book) {
11833
- this.lines = book.split(/\r?\n/);
11834
- }
11835
- /**
11836
- * Creates a new instance from the supplied book text.
11837
- *
11838
- * @param book - Agent source text to work with.
11839
- * @returns Editable view over the book content.
11840
- */
11841
- static from(book) {
11842
- return new BookEditable(book);
11843
- }
11844
- /**
11845
- * Returns the editable content as a string_book.
11846
- *
11847
- * @returns Current book content with original line breaks preserved.
11848
- */
11849
- toString() {
11850
- return this.lines.join('\n');
11851
- }
11852
- /**
11853
- * Checks whether the book contains any non-empty lines.
11854
- *
11855
- * @returns `true` when the book has meaningful content beyond blank lines.
11856
- */
11857
- hasNonEmptyContent() {
11858
- return this.lines.some((line) => line.trim() !== '');
11859
- }
11860
- /**
11861
- * Finds the last line index whose trimmed text matches the commitment name.
11862
- *
11863
- * @param commitment - Commitment keyword to locate (for example `CLOSED`).
11864
- * @returns Zero-based line index or `null` when the commitment is absent.
11865
- */
11866
- findLastCommitmentLineIndex(commitment) {
11867
- const normalized = commitment.trim().toUpperCase();
11868
- for (let lineIndex = this.lines.length - 1; lineIndex >= 0; lineIndex -= 1) {
11869
- const line = this.lines[lineIndex];
11870
- if ((line === null || line === void 0 ? void 0 : line.trim().toUpperCase()) === normalized) {
11871
- return lineIndex;
11872
- }
11873
- }
11874
- return null;
11875
- }
11876
- }
11877
-
11878
- /**
11879
- * Gets all available commitment definitions
11880
- * @returns Array of all commitment definitions
11881
- *
11882
- * @public exported from `@promptbook/core`
11883
- */
11884
- function getAllCommitmentDefinitions() {
11885
- return $deepFreeze([...COMMITMENT_REGISTRY]);
11886
- }
11887
-
11888
12285
  /**
11889
12286
  * Renders a save icon.
11890
12287
  *
@@ -12918,122 +13315,164 @@
12918
13315
  }, children: jsxRuntime.jsx(AboutPromptbookInformation, {}) }))] }));
12919
13316
  }
12920
13317
 
12921
- const BOOK_LANGUAGE_ID = 'book';
12922
- const LINE_HEIGHT = 28;
12923
- const CONTENT_PADDING_LEFT = 20;
12924
- const VERTICAL_LINE_LEFT = 0; // <- TODO: This value is weird
12925
- const UPLOAD_EDIT_DEBOUNCE_MS = 300;
12926
- const UPLOAD_PROGRESS_DEBOUNCE_MS = 150;
12927
- /**
12928
- * Monaco marker owner used for external diagnostics injected into the editor.
12929
- */
12930
- const DIAGNOSTIC_MARKER_OWNER = 'book-editor-diagnostics';
12931
- /**
12932
- * Matches absolute agent URLs (only `/agents/...` paths).
12933
- */
12934
- const AGENT_URL_REFERENCE_REGEX = /https?:\/\/[^\s{}]+\/agents\/[^\s{}]+/i;
12935
- /**
12936
- * Matches all clickable agent-reference token variants in Book text.
12937
- */
12938
- const AGENT_REFERENCE_TOKEN_REGEX = /\{https?:\/\/[^\s{}]+\/agents\/[^\s{}]+\}|\{[A-Za-z0-9_-]{6,}\}|\{[^{}\r\n]*\s+[^{}\r\n]*\}|@[A-Za-z0-9_-]+|https?:\/\/[^\s{}]+\/agents\/[^\s{}]+/g;
12939
13318
  /**
12940
- * Captures content of `{...}` agent-reference tokens.
12941
- */
12942
- const AGENT_REFERENCE_BRACED_REGEX = /^\{([\s\S]+)\}$/;
12943
- /**
12944
- * Regex rules reused by Monaco tokenization for agent-reference highlighting.
13319
+ * Shared constants for `BookEditorMonaco`.
13320
+ *
13321
+ * @private function of BookEditorMonaco
12945
13322
  */
12946
- const AGENT_REFERENCE_HIGHLIGHT_REGEXES = [
12947
- /\{https?:\/\/[^\s{}]+\/agents\/[^\s{}]+\}/,
12948
- /https?:\/\/[^\s{}]+\/agents\/[^\s{}]+/,
12949
- /\{[A-Za-z0-9_-]{6,}\}/,
12950
- /\{[^{}\r\n]*\s+[^{}\r\n]*\}/,
12951
- /@[A-Za-z0-9_-]+/,
12952
- ];
12953
- let uploadSequenceCounter = 0;
12954
- const UPLOAD_STATUS_LABELS = {
12955
- queued: 'Queued',
12956
- uploading: 'Uploading',
12957
- paused: 'Paused',
12958
- completed: 'Completed',
12959
- failed: 'Failed',
13323
+ const BookEditorMonacoConstants = {
13324
+ BOOK_LANGUAGE_ID: 'book',
13325
+ LINE_HEIGHT: 28,
13326
+ CONTENT_PADDING_LEFT: 20,
13327
+ VERTICAL_LINE_LEFT: 0,
13328
+ UPLOAD_EDIT_DEBOUNCE_MS: 300,
13329
+ UPLOAD_PROGRESS_DEBOUNCE_MS: 150,
13330
+ DIAGNOSTIC_MARKER_OWNER: 'book-editor-diagnostics',
12960
13331
  };
13332
+
12961
13333
  /**
12962
- * Converts editor diagnostic severity to Monaco marker severity.
13334
+ * Adds visual decorations for separators and code blocks inside `BookEditorMonaco`.
13335
+ *
13336
+ * @private function of BookEditorMonaco
12963
13337
  */
12964
- const toMonacoMarkerSeverity = (severity) => {
13338
+ function useBookEditorMonacoDecorations({ editor, monaco }) {
13339
+ const decorationIdsRef = react.useRef([]);
13340
+ const codeBlockDecorationIdsRef = react.useRef([]);
13341
+ react.useEffect(() => {
13342
+ if (!editor || !monaco) {
13343
+ return;
13344
+ }
13345
+ const updateDecorations = () => {
13346
+ const model = editor.getModel();
13347
+ if (!model) {
13348
+ return;
13349
+ }
13350
+ const text = model.getValue();
13351
+ const matches = text.matchAll(/^---[-]*$/gm);
13352
+ const newDecorations = [];
13353
+ for (const match of matches) {
13354
+ if (match.index === undefined) {
13355
+ continue;
13356
+ }
13357
+ const startPos = model.getPositionAt(match.index);
13358
+ const endPos = model.getPositionAt(match.index + match[0].length);
13359
+ newDecorations.push({
13360
+ range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
13361
+ options: {
13362
+ isWholeLine: true,
13363
+ className: 'separator-line',
13364
+ inlineClassName: 'transparent-text',
13365
+ },
13366
+ });
13367
+ }
13368
+ decorationIdsRef.current = editor.deltaDecorations(decorationIdsRef.current, newDecorations);
13369
+ const lines = text.split(/\r?\n/);
13370
+ const codeBlockDecorations = [];
13371
+ let inCodeBlock = false;
13372
+ let codeBlockStartLine = 0;
13373
+ for (let i = 0; i < lines.length; i++) {
13374
+ const line = lines[i];
13375
+ if (line === null || line === void 0 ? void 0 : line.trim().startsWith('```')) {
13376
+ if (!inCodeBlock) {
13377
+ inCodeBlock = true;
13378
+ codeBlockStartLine = i + 1;
13379
+ }
13380
+ else {
13381
+ inCodeBlock = false;
13382
+ const endLine = i + 1;
13383
+ for (let j = codeBlockStartLine; j <= endLine; j++) {
13384
+ const isFirst = j === codeBlockStartLine;
13385
+ const isLast = j === endLine;
13386
+ codeBlockDecorations.push({
13387
+ range: new monaco.Range(j, 1, j, 1),
13388
+ options: {
13389
+ isWholeLine: true,
13390
+ className: `code-block-box${isFirst ? ' code-block-top' : ''}${isLast ? ' code-block-bottom' : ''}`,
13391
+ },
13392
+ });
13393
+ }
13394
+ }
13395
+ }
13396
+ }
13397
+ codeBlockDecorationIdsRef.current = editor.deltaDecorations(codeBlockDecorationIdsRef.current, codeBlockDecorations);
13398
+ };
13399
+ updateDecorations();
13400
+ const changeListener = editor.onDidChangeModelContent(() => {
13401
+ updateDecorations();
13402
+ });
13403
+ return () => {
13404
+ changeListener.dispose();
13405
+ };
13406
+ }, [editor, monaco]);
13407
+ }
13408
+
13409
+ const toMonacoMarkerSeverity = (monaco, severity) => {
12965
13410
  if (severity === 'warning') {
12966
- return monacoEditor.MarkerSeverity.Warning;
13411
+ return monaco.MarkerSeverity.Warning;
12967
13412
  }
12968
13413
  if (severity === 'info') {
12969
- return monacoEditor.MarkerSeverity.Info;
13414
+ return monaco.MarkerSeverity.Info;
12970
13415
  }
12971
13416
  if (severity === 'hint') {
12972
- return monacoEditor.MarkerSeverity.Hint;
12973
- }
12974
- return monacoEditor.MarkerSeverity.Error;
12975
- };
12976
- /**
12977
- * Builds the placeholder text for an in-progress upload entry.
12978
- */
12979
- const getUploadPlaceholderText = (fileName) => `KNOWLEDGE ⏳ Uploading ${fileName}...`;
12980
- /**
12981
- * Formats a byte size into a readable string.
12982
- */
12983
- const formatBytes = (bytes) => {
12984
- if (!Number.isFinite(bytes) || bytes <= 0) {
12985
- return '0 B';
12986
- }
12987
- const units = ['B', 'KB', 'MB', 'GB', 'TB'];
12988
- const exponent = Math.min(units.length - 1, Math.floor(Math.log(bytes) / Math.log(1024)));
12989
- const value = bytes / Math.pow(1024, exponent);
12990
- const precision = value >= 10 || exponent === 0 ? 0 : 1;
12991
- return `${value.toFixed(precision)} ${units[exponent]}`;
12992
- };
12993
- /**
12994
- * Formats a duration in milliseconds into a readable timer string.
12995
- */
12996
- const formatDuration = (durationMs) => {
12997
- if (!Number.isFinite(durationMs) || durationMs <= 0) {
12998
- return '0:00';
12999
- }
13000
- const totalSeconds = Math.floor(durationMs / 1000);
13001
- const seconds = totalSeconds % 60;
13002
- const minutes = Math.floor(totalSeconds / 60) % 60;
13003
- const hours = Math.floor(totalSeconds / 3600);
13004
- const paddedSeconds = `${seconds}`.padStart(2, '0');
13005
- if (hours > 0) {
13006
- const paddedMinutes = `${minutes}`.padStart(2, '0');
13007
- return `${hours}:${paddedMinutes}:${paddedSeconds}`;
13417
+ return monaco.MarkerSeverity.Hint;
13008
13418
  }
13009
- return `${minutes}:${paddedSeconds}`;
13419
+ return monaco.MarkerSeverity.Error;
13010
13420
  };
13011
13421
  /**
13012
- * Generates a unique id for upload tracking.
13422
+ * Synchronizes Monaco markers with the diagnostics provided to `BookEditorMonaco`.
13423
+ *
13424
+ * @private function of BookEditorMonaco
13013
13425
  */
13014
- const createUploadId = () => {
13015
- if (typeof crypto !== 'undefined' && 'randomUUID' in crypto) {
13016
- return crypto.randomUUID();
13017
- }
13018
- uploadSequenceCounter += 1;
13019
- return `upload-${Date.now()}-${uploadSequenceCounter}`;
13020
- };
13426
+ function useBookEditorMonacoDiagnostics({ editor, monaco, diagnostics }) {
13427
+ react.useEffect(() => {
13428
+ if (!editor || !monaco) {
13429
+ return;
13430
+ }
13431
+ const model = editor.getModel();
13432
+ if (!model) {
13433
+ return;
13434
+ }
13435
+ const markers = (diagnostics || []).map((diagnostic) => ({
13436
+ startLineNumber: diagnostic.startLineNumber,
13437
+ startColumn: diagnostic.startColumn,
13438
+ endLineNumber: diagnostic.endLineNumber,
13439
+ endColumn: diagnostic.endColumn,
13440
+ message: diagnostic.message,
13441
+ source: diagnostic.source,
13442
+ severity: toMonacoMarkerSeverity(monaco, diagnostic.severity),
13443
+ }));
13444
+ monaco.editor.setModelMarkers(model, BookEditorMonacoConstants.DIAGNOSTIC_MARKER_OWNER, markers);
13445
+ return () => {
13446
+ monaco.editor.setModelMarkers(model, BookEditorMonacoConstants.DIAGNOSTIC_MARKER_OWNER, []);
13447
+ };
13448
+ }, [diagnostics, editor, monaco]);
13449
+ }
13450
+
13021
13451
  /**
13022
- * Detects whether an error represents an aborted upload.
13452
+ * Gets all available commitment definitions
13453
+ * @returns Array of all commitment definitions
13454
+ *
13455
+ * @public exported from `@promptbook/core`
13023
13456
  */
13024
- const isAbortError = (error) => {
13025
- if (!error) {
13026
- return false;
13027
- }
13028
- if (typeof error === 'object' && 'name' in error) {
13029
- return error.name === 'AbortError';
13030
- }
13031
- const message = error instanceof Error ? error.message : String(error);
13032
- return message.toLowerCase().includes('abort');
13033
- };
13457
+ function getAllCommitmentDefinitions() {
13458
+ return $deepFreeze([...COMMITMENT_REGISTRY]);
13459
+ }
13460
+
13034
13461
  /**
13035
- * Extracts the underlying reference value from a raw token.
13462
+ * Agent reference helpers for `BookEditorMonaco`.
13463
+ *
13464
+ * @private function of BookEditorMonaco
13036
13465
  */
13466
+ const AGENT_URL_REFERENCE_REGEX = /https?:\/\/[^\s{}]+\/agents\/[^\s{}]+/i;
13467
+ const AGENT_REFERENCE_TOKEN_REGEX = /\{https?:\/\/[^\s{}]+\/agents\/[^\s{}]+\}|\{[A-Za-z0-9_-]{6,}\}|\{[^{}\r\n]*\s+[^{}\r\n]*\}|@[A-Za-z0-9_-]+|https?:\/\/[^\s{}]+\/agents\/[^\s{}]+/g;
13468
+ const AGENT_REFERENCE_BRACED_REGEX = /^\{([\s\S]+)\}$/;
13469
+ const AGENT_REFERENCE_HIGHLIGHT_REGEXES = [
13470
+ /\{https?:\/\/[^\s{}]+\/agents\/[^\s{}]+\}/,
13471
+ /https?:\/\/[^\s{}]+\/agents\/[^\s{}]+/,
13472
+ /\{[A-Za-z0-9_-]{6,}\}/,
13473
+ /\{[^{}\r\n]*\s+[^{}\r\n]*\}/,
13474
+ /@[A-Za-z0-9_-]+/,
13475
+ ];
13037
13476
  const extractAgentReferenceValue = (token) => {
13038
13477
  if (token.startsWith('@')) {
13039
13478
  return token.slice(1).trim();
@@ -13044,9 +13483,6 @@
13044
13483
  }
13045
13484
  return token.trim();
13046
13485
  };
13047
- /**
13048
- * Resolves a compact or absolute reference token into a clickable agent URL.
13049
- */
13050
13486
  const resolveAgentReferenceToUrl = (referenceValue) => {
13051
13487
  const normalizedReferenceValue = referenceValue.replace(/[),.;!?]+$/g, '').trim();
13052
13488
  if (!normalizedReferenceValue) {
@@ -13062,9 +13498,6 @@
13062
13498
  const origin = typeof window !== 'undefined' ? window.location.origin : '';
13063
13499
  return `${origin}/agents/${encoded}`;
13064
13500
  };
13065
- /**
13066
- * Finds all agent references that should be highlighted and ctrl/cmd-clickable.
13067
- */
13068
13501
  const extractAgentReferenceMatches = (content) => {
13069
13502
  const matches = [];
13070
13503
  let match;
@@ -13096,138 +13529,414 @@
13096
13529
  return matches;
13097
13530
  };
13098
13531
  /**
13099
- * @private Internal component used by `BookEditor`
13532
+ * Agent reference helpers for `BookEditorMonaco`.
13533
+ *
13534
+ * @private function of BookEditorMonaco
13100
13535
  */
13101
- let notebookStyleCounter = 0;
13536
+ const BookEditorMonacoTokenization = {
13537
+ AGENT_URL_REFERENCE_REGEX,
13538
+ AGENT_REFERENCE_TOKEN_REGEX,
13539
+ AGENT_REFERENCE_BRACED_REGEX,
13540
+ AGENT_REFERENCE_HIGHLIGHT_REGEXES,
13541
+ extractAgentReferenceValue,
13542
+ resolveAgentReferenceToUrl,
13543
+ extractAgentReferenceMatches,
13544
+ };
13545
+
13102
13546
  /**
13103
- * @private Internal component used by `BookEditor`
13547
+ * Registers the language helpers that power Monaco inside `BookEditorMonaco`.
13548
+ *
13549
+ * @private function of BookEditorMonaco
13104
13550
  */
13105
- function BookEditorMonaco(props) {
13106
- const { value, onChange, diagnostics, isReadonly, translations, onFileUpload, isUploadButtonShown, isCameraButtonShown, isDownloadButtonShown, isAboutButtonShown = true, isFullscreenButtonShown = true, onFullscreenClick, isFullscreen, zoom = 1,
13107
- // [🚱]> sync,
13108
- } = props;
13109
- const zoomLevel = zoom;
13110
- const scaledLineHeight = Math.round(LINE_HEIGHT * zoomLevel);
13111
- const scaledContentPaddingLeft = Math.max(8, Math.round(CONTENT_PADDING_LEFT * zoomLevel));
13112
- const scaledVerticalLineLeft = Math.max(0, Math.round(VERTICAL_LINE_LEFT * zoomLevel));
13113
- const baseFontSize = 20;
13114
- const scaledFontSize = Math.max(8, Math.round(baseFontSize * zoomLevel));
13115
- const scaledScrollbarSize = Math.max(2, Math.round(5 * zoomLevel));
13116
- const [isDragOver, setIsDragOver] = react.useState(false);
13117
- const [editor, setEditor] = react.useState(null);
13118
- const [isFocused, setIsFocused] = react.useState(false);
13119
- const [isTouchDevice, setIsTouchDevice] = react.useState(false);
13120
- const [isSavedShown, setIsSavedShown] = react.useState(false);
13121
- const [uploadItems, setUploadItemsState] = react.useState([]);
13122
- const monaco = Editor.useMonaco();
13123
- // stable unique id for this instance
13124
- const instanceIdRef = react.useRef(++notebookStyleCounter);
13125
- const instanceClass = `book-editor-instance-${instanceIdRef.current}`;
13126
- // [1] Track touch start position to differentiate tap from drag
13127
- const touchStartRef = react.useRef(null);
13128
- const fileUploadInputRef = react.useRef(null);
13129
- const cameraInputRef = react.useRef(null);
13130
- const uploadItemsRef = react.useRef([]);
13131
- const uploadFilesRef = react.useRef(new Map());
13132
- const uploadDecorationIdsRef = react.useRef(new Map());
13133
- const uploadControllersRef = react.useRef(new Map());
13134
- const uploadQueueTimerRef = react.useRef(null);
13135
- const editorUpdateTimerRef = react.useRef(null);
13136
- const progressUpdateTimerRef = react.useRef(null);
13137
- const pendingReplacementsRef = react.useRef([]);
13138
- const pendingProgressUpdatesRef = react.useRef(new Map());
13139
- const processUploadQueueRef = react.useRef(() => undefined);
13140
- /*
13141
- Note+TODO: [🚱] Yjs logic is commented out because it causes errors in the build of Next.js projects:
13142
- > ▲ Next.js 15.4.5
13143
- > - Experiments (use with caution):
13144
- > ✓ externalDir
13145
- >
13146
- > Creating an optimized production build ...
13147
- > ✓ Compiled successfully in 17.0s
13148
- > ✓ Linting and checking validity of types
13149
- > ✓ Collecting page data
13150
- > Error occurred prerendering page "/". Read more: https://nextjs.org/docs/messages/prerender-error
13151
- > ReferenceError: window is not defined
13152
- > at 27132 (C:\Users\me\work\ai\promptbook\apps\book-components\.next\server\chunks\134.js:1:525485)
13153
- > at c (C:\Users\me\work\ai\promptbook\apps\book-components\.next\server\webpack-runtime.js:1:128)
13154
- > at 89192 (C:\Users\me\work\ai\promptbook\apps\book-components\.next\server\chunks\462.js:711:10466)
13155
- > at Object.c [as require] (C:\Users\me\work\ai\promptbook\apps\book-components\.next\server\webpack-runtime.js:1:128) {
13156
- > digest: '2500543835'
13157
- > }
13158
- > Export encountered an error on /page: /, exiting the build.
13159
- > ⨯ Next.js build worker exited with code: 1 and signal: null
13160
-
13161
-
13162
- const [editor, setEditor] = useState<TODO_any>(null);
13163
-
13164
- useEffect(() => {
13165
- if (!monaco || !editor || !sync) {
13551
+ function useBookEditorMonacoLanguage({ monaco }) {
13552
+ react.useEffect(() => {
13553
+ if (!monaco) {
13166
13554
  return;
13167
13555
  }
13168
-
13169
- const ydoc = new Y.Doc();
13170
- const provider = new WebsocketProvider(sync.serverUrl, sync.roomName, ydoc);
13171
- const ytext = ydoc.getText('monaco');
13172
-
13173
- const binding = new MonacoBinding(ytext, editor.getModel(), new Set([editor]), provider.awareness);
13174
-
13556
+ monaco.languages.register({ id: BookEditorMonacoConstants.BOOK_LANGUAGE_ID });
13557
+ const commitmentTypes = [...new Set(getAllCommitmentDefinitions().map(({ type }) => type))];
13558
+ const commitmentRegex = new RegExp(`^\\s*(${commitmentTypes
13559
+ .sort((a, b) => b.length - a.length)
13560
+ .map((type) => (type === 'META' ? 'META\\s+\\w+' : type.replace(/\s+/, '\\s+')))
13561
+ .join('|')})(?=\\s|$)`);
13562
+ const parameterRegex = /@([a-zA-Z0-9_á-žÁ-Žč-řČ-Řš-žŠ-Žа-яА-ЯёЁ]+)/;
13563
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13564
+ const bookRules = [
13565
+ [/^---[-]*$/, ''],
13566
+ [/^```.*$/, 'code-block', '@codeblock'],
13567
+ ...BookEditorMonacoTokenization.AGENT_REFERENCE_HIGHLIGHT_REGEXES.map((regex) => [
13568
+ regex,
13569
+ 'agent-reference',
13570
+ ]),
13571
+ [parameterRegex, 'parameter'],
13572
+ [/\{[^}]+\}/, 'parameter'],
13573
+ [commitmentRegex, 'commitment'],
13574
+ ];
13575
+ const tokenProvider = monaco.languages.setMonarchTokensProvider(BookEditorMonacoConstants.BOOK_LANGUAGE_ID, {
13576
+ ignoreCase: true,
13577
+ tokenizer: {
13578
+ root: [
13579
+ [/^\s*$/, 'empty'],
13580
+ [/^-*$/, 'line'],
13581
+ [/^```.*$/, 'code-block', '@codeblock'],
13582
+ [/^.*$/, 'title', '@body'],
13583
+ [commitmentRegex, 'commitment'],
13584
+ ],
13585
+ body: bookRules,
13586
+ codeblock: [
13587
+ [/^```.*$/, 'code-block', '@pop'],
13588
+ [/^.*$/, 'code-block'],
13589
+ ],
13590
+ },
13591
+ });
13592
+ const completionProvider = monaco.languages.registerCompletionItemProvider(BookEditorMonacoConstants.BOOK_LANGUAGE_ID, {
13593
+ provideCompletionItems: (model, position) => {
13594
+ const word = model.getWordUntilPosition(position);
13595
+ const range = {
13596
+ startLineNumber: position.lineNumber,
13597
+ endLineNumber: position.lineNumber,
13598
+ startColumn: word.startColumn,
13599
+ endColumn: word.endColumn,
13600
+ };
13601
+ const suggestions = commitmentTypes.map((type) => ({
13602
+ label: type,
13603
+ kind: monaco.languages.CompletionItemKind.Keyword,
13604
+ insertText: type,
13605
+ range,
13606
+ }));
13607
+ return { suggestions };
13608
+ },
13609
+ });
13610
+ const linkProvider = monaco.languages.registerLinkProvider(BookEditorMonacoConstants.BOOK_LANGUAGE_ID, {
13611
+ provideLinks: (model) => {
13612
+ const content = model.getValue();
13613
+ const links = BookEditorMonacoTokenization.extractAgentReferenceMatches(content).map((reference) => {
13614
+ const startPos = model.getPositionAt(reference.index);
13615
+ const endPos = model.getPositionAt(reference.index + reference.length);
13616
+ return {
13617
+ range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
13618
+ url: reference.url,
13619
+ tooltip: `Open agent: ${reference.value}`,
13620
+ };
13621
+ });
13622
+ return { links };
13623
+ },
13624
+ });
13625
+ monaco.editor.defineTheme('book-theme', {
13626
+ base: 'vs',
13627
+ inherit: true,
13628
+ rules: [
13629
+ {
13630
+ token: 'title',
13631
+ foreground: PROMPTBOOK_SYNTAX_COLORS.TITLE.toHex(),
13632
+ fontStyle: 'bold underline',
13633
+ },
13634
+ {
13635
+ token: 'commitment',
13636
+ foreground: PROMPTBOOK_SYNTAX_COLORS.COMMITMENT.toHex(),
13637
+ fontStyle: 'bold',
13638
+ },
13639
+ {
13640
+ token: 'parameter',
13641
+ foreground: PROMPTBOOK_SYNTAX_COLORS.PARAMETER.toHex(),
13642
+ fontStyle: 'italic',
13643
+ },
13644
+ {
13645
+ token: 'agent-reference',
13646
+ foreground: PROMPTBOOK_SYNTAX_COLORS.COMMITMENT.toHex(),
13647
+ fontStyle: 'underline',
13648
+ },
13649
+ {
13650
+ token: 'code-block',
13651
+ foreground: PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex(),
13652
+ },
13653
+ ],
13654
+ colors: {
13655
+ 'editor.scrollbarSlider.background': '#E0E0E0',
13656
+ 'editor.scrollbarSlider.hoverBackground': '#D0D0D0',
13657
+ 'editor.scrollbarSlider.activeBackground': '#C0C0C0',
13658
+ },
13659
+ });
13660
+ monaco.editor.setTheme('book-theme');
13175
13661
  return () => {
13176
- binding.destroy();
13177
- provider.destroy();
13662
+ tokenProvider.dispose();
13663
+ completionProvider.dispose();
13664
+ linkProvider.dispose();
13178
13665
  };
13179
- }, [monaco, editor, sync]);
13180
- */
13666
+ }, [monaco]);
13667
+ }
13668
+
13669
+ /**
13670
+ * Relative Y offset multiplier for aligning line background with Monaco rendering.
13671
+ *
13672
+ * @private function of BookEditorMonaco
13673
+ */
13674
+ const BACKGROUND_POSITION_Y_MULTIPLIER = -0.1;
13675
+ /**
13676
+ * Injects notebook-inspired styling that is unique per `BookEditorMonaco` instance.
13677
+ *
13678
+ * @private function of BookEditorMonaco
13679
+ */
13680
+ function useBookEditorMonacoStyles({ instanceClass, scaledLineHeight, scaledContentPaddingLeft, scaledVerticalLineLeft, zoomLevel, }) {
13181
13681
  react.useEffect(() => {
13182
- // Note: Test on client side only
13183
- setIsTouchDevice(typeof window !== 'undefined' && window.matchMedia('(pointer: coarse)').matches);
13184
- }, []);
13185
- /**
13186
- * Updates upload items state and keeps the ref in sync.
13187
- */
13188
- const setUploadItems = react.useCallback((updater) => {
13189
- const next = updater(uploadItemsRef.current);
13190
- uploadItemsRef.current = next;
13191
- setUploadItemsState(next);
13192
- }, []);
13193
- /**
13194
- * Batches upload progress updates to reduce render churn.
13195
- */
13196
- const queueProgressUpdate = react.useCallback((uploadId, progress, loadedBytes, totalBytes) => {
13197
- pendingProgressUpdatesRef.current.set(uploadId, {
13198
- progress,
13199
- loadedBytes,
13200
- totalBytes,
13201
- });
13202
- if (progressUpdateTimerRef.current !== null) {
13203
- return;
13682
+ const styleId = `notebook-margin-line-style-${instanceClass}`;
13683
+ let style = document.getElementById(styleId);
13684
+ if (!style) {
13685
+ style = document.createElement('style');
13686
+ style.id = styleId;
13687
+ document.head.appendChild(style);
13204
13688
  }
13205
- progressUpdateTimerRef.current = window.setTimeout(() => {
13206
- progressUpdateTimerRef.current = null;
13207
- const updates = pendingProgressUpdatesRef.current;
13208
- pendingProgressUpdatesRef.current = new Map();
13209
- setUploadItems((items) => items.map((item) => {
13210
- const update = updates.get(item.id);
13211
- if (!update) {
13212
- return item;
13213
- }
13214
- return {
13215
- ...item,
13216
- progress: update.progress,
13217
- loadedBytes: update.loadedBytes,
13218
- totalBytes: update.totalBytes,
13219
- };
13220
- }));
13221
- }, UPLOAD_PROGRESS_DEBOUNCE_MS);
13222
- }, [setUploadItems]);
13223
- /**
13224
- * Applies queued placeholder replacements in a single editor edit batch.
13225
- */
13226
- const flushEditorReplacements = react.useCallback(() => {
13227
- if (!editor) {
13228
- return;
13689
+ style.innerHTML = `
13690
+
13691
+ @import url('https://fonts.googleapis.com/css2?family=Bitcount+Grid+Single:wght@100..900&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');
13692
+ /* <- [🚚] */
13693
+
13694
+ .${instanceClass} .monaco-editor .view-lines {
13695
+ background-image: linear-gradient(to bottom, transparent ${scaledLineHeight - 1}px, ${PROMPTBOOK_SYNTAX_COLORS.LINE.toHex()} ${scaledLineHeight - 1}px);
13696
+ background-size: calc(100% + ${scaledContentPaddingLeft}px) ${scaledLineHeight}px;
13697
+ background-position-x: -${scaledContentPaddingLeft}px;
13698
+ background-position-y: ${scaledLineHeight * BACKGROUND_POSITION_Y_MULTIPLIER}px;
13229
13699
  }
13230
- const model = editor.getModel();
13700
+ .${instanceClass} .monaco-editor .overflow-guard::before {
13701
+ content: '';
13702
+ position: absolute;
13703
+ left: ${scaledVerticalLineLeft}px;
13704
+ top: 0;
13705
+ bottom: 0;
13706
+ width: 1px;
13707
+ background-color: ${PROMPTBOOK_SYNTAX_COLORS.LINE.toHex()};
13708
+ z-index: 10;
13709
+ }
13710
+
13711
+ .${instanceClass} .monaco-editor .separator-line {
13712
+ background: linear-gradient(
13713
+ to bottom,
13714
+ transparent ${scaledLineHeight * 0.9 - 2}px,
13715
+ ${PROMPTBOOK_SYNTAX_COLORS.SEPARATOR.toHex()} ${scaledLineHeight * 0.9 - 2}px,
13716
+ ${PROMPTBOOK_SYNTAX_COLORS.SEPARATOR.toHex()} ${scaledLineHeight * 0.9 + 1}px,
13717
+ transparent ${scaledLineHeight * 0.9 + 1}px
13718
+ );
13719
+ }
13720
+
13721
+ .${instanceClass} .monaco-editor .transparent-text {
13722
+ color: transparent !important;
13723
+ }
13724
+
13725
+ .${instanceClass} .monaco-editor .code-block-box {
13726
+ background-color: #f5f5f566;
13727
+ border-left: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
13728
+ border-right: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
13729
+ padding-left: ${Math.round(8 * zoomLevel)}px;
13730
+ padding-right: ${Math.round(8 * zoomLevel)}px;
13731
+ }
13732
+
13733
+ .${instanceClass} .monaco-editor .code-block-top {
13734
+ border-top: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
13735
+ border-top-left-radius: ${Math.round(10 * zoomLevel)}px;
13736
+ border-top-right-radius: ${Math.round(10 * zoomLevel)}px;
13737
+ overflow: hidden;
13738
+ }
13739
+
13740
+ .${instanceClass} .monaco-editor .code-block-bottom {
13741
+ border-bottom: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
13742
+ border-bottom-left-radius: ${Math.round(10 * zoomLevel)}px;
13743
+ border-bottom-right-radius: ${Math.round(10 * zoomLevel)}px;
13744
+ overflow: hidden;
13745
+ }
13746
+ `;
13747
+ return () => {
13748
+ // Style intentionally persists to avoid flash of unstyled content when using fast refresh.
13749
+ };
13750
+ }, [instanceClass, scaledLineHeight, scaledContentPaddingLeft, scaledVerticalLineLeft, zoomLevel]);
13751
+ }
13752
+
13753
+ /**
13754
+ * Helper for manipulating agent books in-memory.
13755
+ *
13756
+ * @private internal helper for `@promptbook/core`
13757
+ */
13758
+ class BookEditable {
13759
+ /**
13760
+ * Creates a mutable view over the supplied book content.
13761
+ *
13762
+ * @param book - Agent source text to work with.
13763
+ */
13764
+ constructor(book) {
13765
+ this.lines = book.split(/\r?\n/);
13766
+ }
13767
+ /**
13768
+ * Creates a new instance from the supplied book text.
13769
+ *
13770
+ * @param book - Agent source text to work with.
13771
+ * @returns Editable view over the book content.
13772
+ */
13773
+ static from(book) {
13774
+ return new BookEditable(book);
13775
+ }
13776
+ /**
13777
+ * Returns the editable content as a string_book.
13778
+ *
13779
+ * @returns Current book content with original line breaks preserved.
13780
+ */
13781
+ toString() {
13782
+ return this.lines.join('\n');
13783
+ }
13784
+ /**
13785
+ * Checks whether the book contains any non-empty lines.
13786
+ *
13787
+ * @returns `true` when the book has meaningful content beyond blank lines.
13788
+ */
13789
+ hasNonEmptyContent() {
13790
+ return this.lines.some((line) => line.trim() !== '');
13791
+ }
13792
+ /**
13793
+ * Finds the last line index whose trimmed text matches the commitment name.
13794
+ *
13795
+ * @param commitment - Commitment keyword to locate (for example `CLOSED`).
13796
+ * @returns Zero-based line index or `null` when the commitment is absent.
13797
+ */
13798
+ findLastCommitmentLineIndex(commitment) {
13799
+ const normalized = commitment.trim().toUpperCase();
13800
+ for (let lineIndex = this.lines.length - 1; lineIndex >= 0; lineIndex -= 1) {
13801
+ const line = this.lines[lineIndex];
13802
+ if ((line === null || line === void 0 ? void 0 : line.trim().toUpperCase()) === normalized) {
13803
+ return lineIndex;
13804
+ }
13805
+ }
13806
+ return null;
13807
+ }
13808
+ }
13809
+
13810
+ /**
13811
+ * Number of seconds in one hour.
13812
+ *
13813
+ * @private function of BookEditorMonaco
13814
+ */
13815
+ const SECONDS_IN_HOUR = 3600;
13816
+ /**
13817
+ * Formatting helpers for `BookEditorMonaco`.
13818
+ *
13819
+ * @private function of BookEditorMonaco
13820
+ */
13821
+ const BookEditorMonacoFormatting = {
13822
+ getUploadPlaceholderText: (fileName) => `KNOWLEDGE ⏳ Uploading ${fileName}...`,
13823
+ formatBytes: (bytes) => {
13824
+ if (!Number.isFinite(bytes) || bytes <= 0) {
13825
+ return '0 B';
13826
+ }
13827
+ const units = ['B', 'KB', 'MB', 'GB', 'TB'];
13828
+ const exponent = Math.min(units.length - 1, Math.floor(Math.log(bytes) / Math.log(1024)));
13829
+ const value = bytes / Math.pow(1024, exponent);
13830
+ const precision = value >= 10 || exponent === 0 ? 0 : 1;
13831
+ return `${value.toFixed(precision)} ${units[exponent]}`;
13832
+ },
13833
+ formatDuration: (durationMs) => {
13834
+ if (!Number.isFinite(durationMs) || durationMs <= 0) {
13835
+ return '0:00';
13836
+ }
13837
+ const totalSeconds = Math.floor(durationMs / 1000);
13838
+ const seconds = totalSeconds % 60;
13839
+ const minutes = Math.floor(totalSeconds / 60) % 60;
13840
+ const hours = Math.floor(totalSeconds / SECONDS_IN_HOUR);
13841
+ const paddedSeconds = `${seconds}`.padStart(2, '0');
13842
+ if (hours > 0) {
13843
+ const paddedMinutes = `${minutes}`.padStart(2, '0');
13844
+ return `${hours}:${paddedMinutes}:${paddedSeconds}`;
13845
+ }
13846
+ return `${minutes}:${paddedSeconds}`;
13847
+ },
13848
+ };
13849
+
13850
+ /**
13851
+ * Delay before clearing completed uploads from UI.
13852
+ *
13853
+ * @private function of BookEditorMonaco
13854
+ */
13855
+ const COMPLETED_UPLOADS_CLEAR_DELAY_MS = 1500;
13856
+ /**
13857
+ * Generates deterministic ids for uploads that support server preloading.
13858
+ *
13859
+ * @private function of BookEditorMonaco
13860
+ */
13861
+ const createUploadId = (() => {
13862
+ let sequence = 0;
13863
+ return () => {
13864
+ if (typeof crypto !== 'undefined' && 'randomUUID' in crypto) {
13865
+ return crypto.randomUUID();
13866
+ }
13867
+ sequence += 1;
13868
+ return `upload-${Date.now()}-${sequence}`;
13869
+ };
13870
+ })();
13871
+ /**
13872
+ * Recognizes abort signals that should pause but not mark uploads as failed.
13873
+ *
13874
+ * @private function of BookEditorMonaco
13875
+ */
13876
+ const isAbortError = (error) => {
13877
+ if (!error) {
13878
+ return false;
13879
+ }
13880
+ if (typeof error === 'object' && 'name' in error) {
13881
+ return error.name === 'AbortError';
13882
+ }
13883
+ const message = error instanceof Error ? error.message : String(error);
13884
+ return message.toLowerCase().includes('abort');
13885
+ };
13886
+ /**
13887
+ * Handles file uploads and placeholder rendering inside `BookEditorMonaco`.
13888
+ *
13889
+ * @private function of BookEditorMonaco
13890
+ */
13891
+ function useBookEditorMonacoUploads({ editor, monaco, onFileUpload }) {
13892
+ const [uploadItems, setUploadItemsState] = react.useState([]);
13893
+ const uploadItemsRef = react.useRef([]);
13894
+ const uploadFilesRef = react.useRef(new Map());
13895
+ const uploadDecorationIdsRef = react.useRef(new Map());
13896
+ const uploadControllersRef = react.useRef(new Map());
13897
+ const uploadQueueTimerRef = react.useRef(null);
13898
+ const editorUpdateTimerRef = react.useRef(null);
13899
+ const progressUpdateTimerRef = react.useRef(null);
13900
+ const pendingReplacementsRef = react.useRef([]);
13901
+ const pendingProgressUpdatesRef = react.useRef(new Map());
13902
+ const processUploadQueueRef = react.useRef(() => undefined);
13903
+ const setUploadItems = react.useCallback((updater) => {
13904
+ const next = updater(uploadItemsRef.current);
13905
+ uploadItemsRef.current = next;
13906
+ setUploadItemsState(next);
13907
+ }, []);
13908
+ const queueProgressUpdate = react.useCallback((uploadId, progress, loadedBytes, totalBytes) => {
13909
+ pendingProgressUpdatesRef.current.set(uploadId, {
13910
+ progress,
13911
+ loadedBytes,
13912
+ totalBytes,
13913
+ });
13914
+ if (progressUpdateTimerRef.current !== null) {
13915
+ return;
13916
+ }
13917
+ progressUpdateTimerRef.current = window.setTimeout(() => {
13918
+ progressUpdateTimerRef.current = null;
13919
+ const updates = pendingProgressUpdatesRef.current;
13920
+ pendingProgressUpdatesRef.current = new Map();
13921
+ setUploadItems((items) => items.map((item) => {
13922
+ const update = updates.get(item.id);
13923
+ if (!update) {
13924
+ return item;
13925
+ }
13926
+ return {
13927
+ ...item,
13928
+ progress: update.progress,
13929
+ loadedBytes: update.loadedBytes,
13930
+ totalBytes: update.totalBytes,
13931
+ };
13932
+ }));
13933
+ }, BookEditorMonacoConstants.UPLOAD_PROGRESS_DEBOUNCE_MS);
13934
+ }, [setUploadItems]);
13935
+ const flushEditorReplacements = react.useCallback(() => {
13936
+ if (!editor) {
13937
+ return;
13938
+ }
13939
+ const model = editor.getModel();
13231
13940
  if (!model) {
13232
13941
  return;
13233
13942
  }
@@ -13256,9 +13965,6 @@
13256
13965
  editor.deltaDecorations(decorationsToRemove, []);
13257
13966
  }
13258
13967
  }, [editor]);
13259
- /**
13260
- * Queues a placeholder replacement and debounces editor updates.
13261
- */
13262
13968
  const queueEditorReplacement = react.useCallback((uploadId, replacementText) => {
13263
13969
  const decorationId = uploadDecorationIdsRef.current.get(uploadId);
13264
13970
  if (!decorationId) {
@@ -13282,11 +13988,8 @@
13282
13988
  editorUpdateTimerRef.current = window.setTimeout(() => {
13283
13989
  editorUpdateTimerRef.current = null;
13284
13990
  flushEditorReplacements();
13285
- }, UPLOAD_EDIT_DEBOUNCE_MS);
13991
+ }, BookEditorMonacoConstants.UPLOAD_EDIT_DEBOUNCE_MS);
13286
13992
  }, [flushEditorReplacements]);
13287
- /**
13288
- * Schedules upload queue processing on the next tick.
13289
- */
13290
13993
  const queueUploadProcessing = react.useCallback(() => {
13291
13994
  if (uploadQueueTimerRef.current !== null) {
13292
13995
  return;
@@ -13296,9 +13999,6 @@
13296
13999
  processUploadQueueRef.current();
13297
14000
  }, 0);
13298
14001
  }, []);
13299
- /**
13300
- * Starts uploading a queued item.
13301
- */
13302
14002
  const startUpload = react.useCallback(async (uploadId) => {
13303
14003
  if (!onFileUpload) {
13304
14004
  return;
@@ -13373,9 +14073,6 @@
13373
14073
  queueUploadProcessing();
13374
14074
  }
13375
14075
  }, [onFileUpload, queueEditorReplacement, queueProgressUpdate, queueUploadProcessing, setUploadItems]);
13376
- /**
13377
- * Starts queued uploads up to the concurrency limit.
13378
- */
13379
14076
  const processUploadQueue = react.useCallback(() => {
13380
14077
  if (!onFileUpload) {
13381
14078
  return;
@@ -13392,9 +14089,6 @@
13392
14089
  });
13393
14090
  }, [onFileUpload, startUpload]);
13394
14091
  processUploadQueueRef.current = processUploadQueue;
13395
- /**
13396
- * Pauses a queued or active upload.
13397
- */
13398
14092
  const pauseUpload = react.useCallback((uploadId) => {
13399
14093
  setUploadItems((items) => items.map((item) => item.id === uploadId && item.status === 'queued'
13400
14094
  ? {
@@ -13405,9 +14099,6 @@
13405
14099
  const controller = uploadControllersRef.current.get(uploadId);
13406
14100
  controller === null || controller === void 0 ? void 0 : controller.abort();
13407
14101
  }, [setUploadItems]);
13408
- /**
13409
- * Resumes a paused or failed upload by re-queuing it.
13410
- */
13411
14102
  const resumeUpload = react.useCallback((uploadId) => {
13412
14103
  setUploadItems((items) => items.map((item) => item.id === uploadId
13413
14104
  ? {
@@ -13422,43 +14113,6 @@
13422
14113
  : item));
13423
14114
  queueUploadProcessing();
13424
14115
  }, [queueUploadProcessing, setUploadItems]);
13425
- react.useEffect(() => {
13426
- if (!editor) {
13427
- return;
13428
- }
13429
- const focusListener = editor.onDidFocusEditorWidget(() => {
13430
- setIsFocused(true);
13431
- });
13432
- const blurListener = editor.onDidBlurEditorWidget(() => {
13433
- setIsFocused(false);
13434
- });
13435
- const saveAction = editor.addAction({
13436
- id: 'save-book',
13437
- label: 'Save',
13438
- keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS],
13439
- run: () => {
13440
- setIsSavedShown(false);
13441
- setTimeout(() => setIsSavedShown(true), 0);
13442
- // Note: We don't prevent default, so browser's save dialog still opens
13443
- },
13444
- });
13445
- return () => {
13446
- focusListener.dispose();
13447
- blurListener.dispose();
13448
- saveAction.dispose();
13449
- };
13450
- }, [editor, monaco]);
13451
- react.useEffect(() => {
13452
- if (!isSavedShown) {
13453
- return;
13454
- }
13455
- const timer = setTimeout(() => {
13456
- setIsSavedShown(false);
13457
- }, 2000);
13458
- return () => {
13459
- clearTimeout(timer);
13460
- };
13461
- }, [isSavedShown]);
13462
14116
  react.useEffect(() => {
13463
14117
  return () => {
13464
14118
  if (uploadQueueTimerRef.current !== null) {
@@ -13488,380 +14142,242 @@
13488
14142
  uploadFilesRef.current.clear();
13489
14143
  uploadDecorationIdsRef.current.clear();
13490
14144
  setUploadItems(() => []);
13491
- }, 1500);
14145
+ }, COMPLETED_UPLOADS_CLEAR_DELAY_MS);
13492
14146
  return () => {
13493
14147
  clearTimeout(timer);
13494
14148
  };
13495
- }, [setUploadItems, uploadItems]);
13496
- react.useEffect(() => {
13497
- if (!monaco) {
14149
+ }, [uploadItems]);
14150
+ const handleFiles = react.useCallback(async (files) => {
14151
+ var _a;
14152
+ if (!onFileUpload || !editor || !monaco) {
13498
14153
  return;
13499
14154
  }
13500
- // Register a new language
13501
- monaco.languages.register({ id: BOOK_LANGUAGE_ID });
13502
- const commitmentTypes = [...new Set(getAllCommitmentDefinitions().map(({ type }) => type))];
13503
- const commitmentRegex = new RegExp(`^\\s*(${commitmentTypes
13504
- .sort((a, b) => b.length - a.length) // [1] Prefer longer commitments to avoid partial matching (e.g. LANGUAGES vs LANGUAGE)
13505
- .map((type) => (type === 'META' ? 'META\\s+\\w+' : type.replace(/\s+/, '\\s+')))
13506
- .join('|')})(?=\\s|$)`);
13507
- // Note: Using a broad character set for Latin and Cyrillic to support international characters in parameters.
13508
- // Monarch tokenizer does not support Unicode property escapes like \p{L}.
13509
- const parameterRegex = /@([a-zA-Z0-9_á-žÁ-Žč-řČ-Řš-žŠ-Žа-яА-ЯёЁ]+)/;
13510
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
13511
- const bookRules = [
13512
- [/^---[-]*$/, ''],
13513
- [/^```.*$/, 'code-block', '@codeblock'],
13514
- ...AGENT_REFERENCE_HIGHLIGHT_REGEXES.map((regex) => [regex, 'agent-reference']),
13515
- [parameterRegex, 'parameter'],
13516
- [/\{[^}]+\}/, 'parameter'],
13517
- [commitmentRegex, 'commitment'],
13518
- ];
13519
- // Register a tokens provider for the language
13520
- const tokenProvider = monaco.languages.setMonarchTokensProvider(BOOK_LANGUAGE_ID, {
13521
- ignoreCase: true,
13522
- tokenizer: {
13523
- root: [
13524
- [/^\s*$/, 'empty'],
13525
- [/^-*$/, 'line'],
13526
- [/^```.*$/, 'code-block', '@codeblock'],
13527
- [/^.*$/, 'title', '@body'],
13528
- [commitmentRegex, 'commitment'],
13529
- ],
13530
- body: bookRules,
13531
- codeblock: [
13532
- [/^```.*$/, 'code-block', '@pop'],
13533
- [/^.*$/, 'code-block'],
13534
- ],
13535
- },
13536
- });
13537
- // Register a completion item provider for the language
13538
- const completionProvider = monaco.languages.registerCompletionItemProvider(BOOK_LANGUAGE_ID, {
13539
- provideCompletionItems: (model, position) => {
13540
- const word = model.getWordUntilPosition(position);
13541
- const range = {
13542
- startLineNumber: position.lineNumber,
13543
- endLineNumber: position.lineNumber,
13544
- startColumn: word.startColumn,
13545
- endColumn: word.endColumn,
13546
- };
13547
- const suggestions = commitmentTypes.map((type) => ({
13548
- label: type,
13549
- kind: monaco.languages.CompletionItemKind.Keyword,
13550
- insertText: type,
13551
- range: range,
13552
- }));
13553
- return { suggestions: suggestions };
13554
- },
13555
- });
13556
- const linkProvider = monaco.languages.registerLinkProvider(BOOK_LANGUAGE_ID, {
13557
- provideLinks: (model) => {
13558
- const content = model.getValue();
13559
- const links = extractAgentReferenceMatches(content).map((reference) => {
13560
- const startPos = model.getPositionAt(reference.index);
13561
- const endPos = model.getPositionAt(reference.index + reference.length);
13562
- return {
13563
- range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
13564
- url: reference.url,
13565
- tooltip: `Open agent: ${reference.value}`,
13566
- };
13567
- });
13568
- return { links };
13569
- },
13570
- });
13571
- monaco.editor.defineTheme('book-theme', {
13572
- base: 'vs',
13573
- inherit: true,
13574
- rules: [
13575
- {
13576
- token: 'title',
13577
- foreground: PROMPTBOOK_SYNTAX_COLORS.TITLE.toHex(),
13578
- // [🚚]> fontStyle: 'underline italic',
13579
- fontStyle: 'bold underline',
13580
- },
13581
- {
13582
- token: 'commitment',
13583
- foreground: PROMPTBOOK_SYNTAX_COLORS.COMMITMENT.toHex(),
13584
- fontStyle: 'bold',
13585
- },
13586
- {
13587
- token: 'parameter',
13588
- foreground: PROMPTBOOK_SYNTAX_COLORS.PARAMETER.toHex(),
13589
- fontStyle: `italic`,
13590
- },
13591
- {
13592
- token: 'agent-reference',
13593
- foreground: PROMPTBOOK_SYNTAX_COLORS.COMMITMENT.toHex(),
13594
- fontStyle: 'underline',
13595
- },
13596
- {
13597
- token: 'code-block',
13598
- foreground: PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex(),
13599
- },
13600
- ],
13601
- colors: {
13602
- 'editor.scrollbarSlider.background': '#E0E0E0',
13603
- 'editor.scrollbarSlider.hoverBackground': '#D0D0D0',
13604
- 'editor.scrollbarSlider.activeBackground': '#C0C0C0',
13605
- },
13606
- });
13607
- monaco.editor.setTheme('book-theme');
13608
- return () => {
13609
- tokenProvider.dispose();
13610
- completionProvider.dispose();
13611
- linkProvider.dispose();
13612
- };
13613
- }, [monaco]);
13614
- react.useEffect(() => {
13615
- const styleId = `notebook-margin-line-style-${instanceIdRef.current}`; // <-- unique per instance
13616
- let style = document.getElementById(styleId);
13617
- if (!style) {
13618
- style = document.createElement('style');
13619
- style.id = styleId;
13620
- document.head.appendChild(style);
13621
- }
13622
- style.innerHTML = `
13623
-
13624
- @import url('https://fonts.googleapis.com/css2?family=Bitcount+Grid+Single:wght@100..900&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');
13625
- /* <- [🚚] */
13626
-
13627
- .${instanceClass} .monaco-editor .view-lines {
13628
- background-image: linear-gradient(to bottom, transparent ${scaledLineHeight - 1}px, ${PROMPTBOOK_SYNTAX_COLORS.LINE.toHex()} ${scaledLineHeight - 1}px);
13629
- background-size: calc(100% + ${scaledContentPaddingLeft}px) ${scaledLineHeight}px;
13630
- background-position-x: -${scaledContentPaddingLeft}px;
13631
- background-position-y: ${scaledLineHeight * -0.1}px;
13632
- }
13633
- .${instanceClass} .monaco-editor .overflow-guard::before {
13634
- content: '';
13635
- position: absolute;
13636
- left: ${scaledVerticalLineLeft}px;
13637
- top: 0;
13638
- bottom: 0;
13639
- width: 1px;
13640
- background-color: ${PROMPTBOOK_SYNTAX_COLORS.LINE.toHex()};
13641
- z-index: 10;
13642
- }
13643
-
13644
- .${instanceClass} .monaco-editor .separator-line {
13645
- background: linear-gradient(
13646
- to bottom,
13647
- transparent ${scaledLineHeight * 0.9 - 2}px,
13648
- ${PROMPTBOOK_SYNTAX_COLORS.SEPARATOR.toHex()} ${scaledLineHeight * 0.9 - 2}px,
13649
- ${PROMPTBOOK_SYNTAX_COLORS.SEPARATOR.toHex()} ${scaledLineHeight * 0.9 + 1}px,
13650
- transparent ${scaledLineHeight * 0.9 + 1}px
13651
- );
13652
- }
13653
-
13654
- .${instanceClass} .monaco-editor .transparent-text {
13655
- color: transparent !important;
13656
- }
13657
-
13658
- .${instanceClass} .monaco-editor .code-block-box {
13659
- background-color: #f5f5f566;
13660
- border-left: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
13661
- border-right: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
13662
- padding-left: ${Math.round(8 * zoomLevel)}px;
13663
- padding-right: ${Math.round(8 * zoomLevel)}px;
13664
- }
13665
-
13666
- .${instanceClass} .monaco-editor .code-block-top {
13667
- border-top: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
13668
- border-top-left-radius: ${Math.round(10 * zoomLevel)}px;
13669
- border-top-right-radius: ${Math.round(10 * zoomLevel)}px;
13670
- overflow: hidden;
13671
- }
13672
-
13673
- .${instanceClass} .monaco-editor .code-block-bottom {
13674
- border-bottom: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
13675
- border-bottom-left-radius: ${Math.round(10 * zoomLevel)}px;
13676
- border-bottom-right-radius: ${Math.round(10 * zoomLevel)}px;
13677
- overflow: hidden;
13678
- }
13679
- `;
13680
- return () => {
13681
- // Note: Style is not removed on purpose to avoid flickering during development with fast refresh
13682
- };
13683
- }, [scaledLineHeight, scaledContentPaddingLeft, scaledVerticalLineLeft]);
13684
- const decorationIdsRef = react.useRef([]);
13685
- const codeBlockDecorationIdsRef = react.useRef([]);
13686
- react.useEffect(() => {
13687
- if (!editor || !monaco) {
14155
+ if (files.length === 0) {
13688
14156
  return;
13689
14157
  }
13690
14158
  const model = editor.getModel();
13691
14159
  if (!model) {
13692
14160
  return;
13693
14161
  }
13694
- const markers = (diagnostics || []).map((diagnostic) => ({
13695
- startLineNumber: diagnostic.startLineNumber,
13696
- startColumn: diagnostic.startColumn,
13697
- endLineNumber: diagnostic.endLineNumber,
13698
- endColumn: diagnostic.endColumn,
13699
- message: diagnostic.message,
13700
- source: diagnostic.source,
13701
- severity: toMonacoMarkerSeverity(diagnostic.severity),
14162
+ const placeholders = files.map((file) => ({
14163
+ id: createUploadId(),
14164
+ file,
14165
+ placeholder: BookEditorMonacoFormatting.getUploadPlaceholderText(file.name),
13702
14166
  }));
13703
- monaco.editor.setModelMarkers(model, DIAGNOSTIC_MARKER_OWNER, markers);
13704
- return () => {
13705
- monaco.editor.setModelMarkers(model, DIAGNOSTIC_MARKER_OWNER, []);
13706
- };
13707
- }, [diagnostics, editor, monaco]);
13708
- react.useEffect(() => {
13709
- if (!editor || !monaco) {
13710
- return;
14167
+ const currentValue = ((_a = model.getValue()) !== null && _a !== void 0 ? _a : '');
14168
+ const bookEditable = new BookEditable(currentValue);
14169
+ const closedLineIndex = bookEditable.findLastCommitmentLineIndex('CLOSED');
14170
+ const insertingBeforeClosed = closedLineIndex !== null;
14171
+ const insertLine = insertingBeforeClosed ? closedLineIndex + 1 : model.getLineCount();
14172
+ const insertColumn = insertingBeforeClosed ? 1 : model.getLineMaxColumn(insertLine);
14173
+ const shouldAddLeadingLineBreak = !insertingBeforeClosed && Boolean(model.getValue());
14174
+ const prefix = shouldAddLeadingLineBreak ? '\n' : '';
14175
+ const placeholderBlock = placeholders.map((entry) => `${entry.placeholder}\n`).join('');
14176
+ const textToInsert = `${prefix}${placeholderBlock}`;
14177
+ const insertStartOffset = model.getOffsetAt(new monaco.Position(insertLine, insertColumn));
14178
+ editor.executeEdits('upload-placeholders', [
14179
+ {
14180
+ range: new monaco.Range(insertLine, insertColumn, insertLine, insertColumn),
14181
+ text: textToInsert,
14182
+ forceMoveMarkers: true,
14183
+ },
14184
+ ]);
14185
+ const decorations = [];
14186
+ let runningOffset = prefix.length;
14187
+ for (const entry of placeholders) {
14188
+ const startOffset = insertStartOffset + runningOffset;
14189
+ const endOffset = startOffset + entry.placeholder.length;
14190
+ const startPos = model.getPositionAt(startOffset);
14191
+ const endPos = model.getPositionAt(endOffset);
14192
+ decorations.push({
14193
+ range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
14194
+ options: {
14195
+ stickiness: monaco.editor.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
14196
+ },
14197
+ });
14198
+ runningOffset += entry.placeholder.length + 1;
13711
14199
  }
13712
- const updateDecorations = () => {
13713
- const model = editor.getModel();
13714
- if (!model) {
13715
- return;
13716
- }
13717
- const text = model.getValue();
13718
- const matches = text.matchAll(/^---[-]*$/gm);
13719
- const newDecorations = [];
13720
- for (const match of matches) {
13721
- if (match.index === undefined) {
13722
- continue;
13723
- }
13724
- const startPos = model.getPositionAt(match.index);
13725
- const endPos = model.getPositionAt(match.index + match[0].length);
13726
- newDecorations.push({
13727
- range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
13728
- options: {
13729
- isWholeLine: true,
13730
- className: 'separator-line',
13731
- inlineClassName: 'transparent-text',
13732
- },
13733
- });
14200
+ const decorationIds = editor.deltaDecorations([], decorations);
14201
+ placeholders.forEach((entry, index) => {
14202
+ uploadFilesRef.current.set(entry.id, entry.file);
14203
+ const decorationId = decorationIds[index];
14204
+ if (decorationId) {
14205
+ uploadDecorationIdsRef.current.set(entry.id, decorationId);
13734
14206
  }
13735
- decorationIdsRef.current = editor.deltaDecorations(decorationIdsRef.current, newDecorations);
13736
- // Add decorations for code blocks
13737
- const lines = text.split(/\r?\n/);
13738
- const codeBlockDecorations = [];
13739
- let inCodeBlock = false;
13740
- let codeBlockStartLine = 0;
13741
- for (let i = 0; i < lines.length; i++) {
13742
- const line = lines[i];
13743
- if (line === null || line === void 0 ? void 0 : line.trim().startsWith('```')) {
13744
- if (!inCodeBlock) {
13745
- // Starting a code block
13746
- inCodeBlock = true;
13747
- codeBlockStartLine = i + 1; // 1-based line number
13748
- }
13749
- else {
13750
- // Ending a code block
13751
- inCodeBlock = false;
13752
- const endLine = i + 1; // 1-based line number
13753
- // Add decorations for each line in the code block
13754
- for (let j = codeBlockStartLine; j <= endLine; j++) {
13755
- const isFirst = j === codeBlockStartLine;
13756
- const isLast = j === endLine;
13757
- codeBlockDecorations.push({
13758
- range: new monaco.Range(j, 1, j, 1),
13759
- options: {
13760
- isWholeLine: true,
13761
- className: `code-block-box${isFirst ? ' code-block-top' : ''}${isLast ? ' code-block-bottom' : ''}`,
13762
- },
13763
- });
13764
- }
13765
- }
13766
- }
14207
+ });
14208
+ const newUploadItems = placeholders.map((entry) => ({
14209
+ id: entry.id,
14210
+ fileName: entry.file.name,
14211
+ fileSize: entry.file.size,
14212
+ status: 'queued',
14213
+ progress: 0,
14214
+ loadedBytes: 0,
14215
+ totalBytes: entry.file.size,
14216
+ startedAt: null,
14217
+ completedAt: null,
14218
+ }));
14219
+ setUploadItems((items) => [...items, ...newUploadItems]);
14220
+ queueUploadProcessing();
14221
+ }, [onFileUpload, editor, monaco, queueUploadProcessing]);
14222
+ const uploadStats = react.useMemo(() => {
14223
+ const totalFiles = uploadItems.length;
14224
+ const queuedFiles = uploadItems.filter((item) => item.status === 'queued').length;
14225
+ const uploadingFiles = uploadItems.filter((item) => item.status === 'uploading').length;
14226
+ const pausedFiles = uploadItems.filter((item) => item.status === 'paused').length;
14227
+ const failedFiles = uploadItems.filter((item) => item.status === 'failed').length;
14228
+ const completedFiles = uploadItems.filter((item) => item.status === 'completed').length;
14229
+ const totalBytes = uploadItems.reduce((sum, item) => sum + item.totalBytes, 0);
14230
+ const uploadedBytes = uploadItems.reduce((sum, item) => {
14231
+ const total = item.totalBytes || 0;
14232
+ const loaded = total > 0 ? Math.min(item.loadedBytes, total) : item.loadedBytes;
14233
+ return sum + loaded;
14234
+ }, 0);
14235
+ const progress = totalBytes > 0 ? uploadedBytes / totalBytes : 0;
14236
+ const startedAt = uploadItems.reduce((min, item) => {
14237
+ if (!item.startedAt) {
14238
+ return min;
13767
14239
  }
13768
- codeBlockDecorationIdsRef.current = editor.deltaDecorations(codeBlockDecorationIdsRef.current, codeBlockDecorations);
14240
+ return Math.min(min, item.startedAt);
14241
+ }, Number.POSITIVE_INFINITY);
14242
+ const elapsedMs = Number.isFinite(startedAt) ? Math.max(0, Date.now() - startedAt) : 0;
14243
+ const speedBytesPerSecond = elapsedMs > 0 ? uploadedBytes / (elapsedMs / 1000) : 0;
14244
+ return {
14245
+ totalFiles,
14246
+ queuedFiles,
14247
+ uploadingFiles,
14248
+ pausedFiles,
14249
+ failedFiles,
14250
+ completedFiles,
14251
+ totalBytes,
14252
+ uploadedBytes,
14253
+ progress,
14254
+ elapsedMs,
14255
+ speedBytesPerSecond,
13769
14256
  };
13770
- updateDecorations();
13771
- const changeListener = editor.onDidChangeModelContent(() => {
13772
- updateDecorations();
14257
+ }, [uploadItems]);
14258
+ const activeUploadItems = react.useMemo(() => uploadItems.filter((item) => item.status !== 'completed'), [uploadItems]);
14259
+ return {
14260
+ activeUploadItems,
14261
+ uploadItems,
14262
+ uploadStats,
14263
+ handleFiles,
14264
+ pauseUpload,
14265
+ resumeUpload,
14266
+ };
14267
+ }
14268
+
14269
+ const UPLOAD_STATUS_LABELS = {
14270
+ queued: 'Queued',
14271
+ uploading: 'Uploading',
14272
+ paused: 'Paused',
14273
+ completed: 'Completed',
14274
+ failed: 'Failed',
14275
+ };
14276
+ /**
14277
+ * Shows upload progress details for active uploads inside `BookEditorMonaco`.
14278
+ *
14279
+ * @private function of BookEditorMonaco
14280
+ */
14281
+ function BookEditorMonacoUploadPanel({ activeUploadItems, uploadStats, pauseUpload, resumeUpload, }) {
14282
+ if (activeUploadItems.length === 0) {
14283
+ return null;
14284
+ }
14285
+ return (jsxRuntime.jsxs("div", { className: styles$d.uploadPanel, role: "status", "aria-live": "polite", children: [jsxRuntime.jsxs("div", { className: styles$d.uploadPanelHeader, children: [jsxRuntime.jsx("div", { className: styles$d.uploadPanelTitle, children: "Uploads" }), jsxRuntime.jsxs("div", { className: styles$d.uploadPanelHeaderMeta, children: [uploadStats.uploadingFiles + uploadStats.queuedFiles, " active / ", uploadStats.totalFiles, " total"] })] }), jsxRuntime.jsxs("div", { className: styles$d.uploadPanelSummary, children: [jsxRuntime.jsxs("div", { children: ["Files: ", uploadStats.totalFiles, " total, ", uploadStats.completedFiles, " done"] }), jsxRuntime.jsxs("div", { children: ["Data: ", BookEditorMonacoFormatting.formatBytes(uploadStats.uploadedBytes), " /", ' ', BookEditorMonacoFormatting.formatBytes(uploadStats.totalBytes)] }), jsxRuntime.jsxs("div", { children: ["Speed:", ' ', uploadStats.speedBytesPerSecond > 0
14286
+ ? `${BookEditorMonacoFormatting.formatBytes(uploadStats.speedBytesPerSecond)}/s`
14287
+ : '--'] }), jsxRuntime.jsxs("div", { children: ["Elapsed: ", BookEditorMonacoFormatting.formatDuration(uploadStats.elapsedMs)] }), jsxRuntime.jsxs("div", { children: ["Paused: ", uploadStats.pausedFiles, ", Failed: ", uploadStats.failedFiles] })] }), jsxRuntime.jsx("div", { className: styles$d.uploadPanelProgressBar, children: jsxRuntime.jsx("div", { className: styles$d.uploadPanelProgressFill, style: { width: `${Math.round(uploadStats.progress * 100)}%` } }) }), jsxRuntime.jsx("div", { className: styles$d.uploadPanelList, children: activeUploadItems.map((item) => {
14288
+ const percent = Math.round(item.progress * 100);
14289
+ const actionLabel = item.status === 'paused' ? 'Resume' : item.status === 'failed' ? 'Retry' : 'Pause';
14290
+ const canPause = item.status === 'uploading' || item.status === 'queued';
14291
+ const canResume = item.status === 'paused' || item.status === 'failed';
14292
+ return (jsxRuntime.jsxs("div", { className: styles$d.uploadRow, children: [jsxRuntime.jsxs("div", { className: styles$d.uploadRowHeader, children: [jsxRuntime.jsx("div", { className: styles$d.uploadRowName, title: item.fileName, children: item.fileName }), jsxRuntime.jsx("div", { className: styles$d.uploadRowStatus, children: UPLOAD_STATUS_LABELS[item.status] })] }), jsxRuntime.jsxs("div", { className: styles$d.uploadRowMeta, children: [jsxRuntime.jsxs("span", { children: [BookEditorMonacoFormatting.formatBytes(item.loadedBytes), " /", ' ', BookEditorMonacoFormatting.formatBytes(item.totalBytes)] }), jsxRuntime.jsxs("span", { children: [percent, "%"] })] }), jsxRuntime.jsx("div", { className: styles$d.uploadRowProgressBar, children: jsxRuntime.jsx("div", { className: styles$d.uploadRowProgressFill, style: { width: `${percent}%` } }) }), jsxRuntime.jsxs("div", { className: styles$d.uploadRowActions, children: [canPause && (jsxRuntime.jsx("button", { type: "button", className: styles$d.uploadActionButton, onClick: () => pauseUpload(item.id), children: "Pause" })), canResume && (jsxRuntime.jsx("button", { type: "button", className: styles$d.uploadActionButton, onClick: () => resumeUpload(item.id), children: actionLabel }))] }), item.errorMessage && item.status === 'failed' && (jsxRuntime.jsx("div", { className: styles$d.uploadRowError, children: item.errorMessage }))] }, item.id));
14293
+ }) })] }));
14294
+ }
14295
+
14296
+ let notebookStyleCounter = 0;
14297
+ /**
14298
+ * @private Internal component used by `BookEditor`
14299
+ */
14300
+ function BookEditorMonaco(props) {
14301
+ const { value, onChange, diagnostics, isReadonly, translations, onFileUpload, isUploadButtonShown, isCameraButtonShown, isDownloadButtonShown, isAboutButtonShown = true, isFullscreenButtonShown = true, onFullscreenClick, isFullscreen, zoom = 1, } = props;
14302
+ const zoomLevel = zoom;
14303
+ const scaledLineHeight = Math.round(BookEditorMonacoConstants.LINE_HEIGHT * zoomLevel);
14304
+ const scaledContentPaddingLeft = Math.max(8, Math.round(BookEditorMonacoConstants.CONTENT_PADDING_LEFT * zoomLevel));
14305
+ const scaledVerticalLineLeft = Math.max(0, Math.round(BookEditorMonacoConstants.VERTICAL_LINE_LEFT * zoomLevel));
14306
+ const baseFontSize = 20;
14307
+ const scaledFontSize = Math.max(8, Math.round(baseFontSize * zoomLevel));
14308
+ const scaledScrollbarSize = Math.max(2, Math.round(5 * zoomLevel));
14309
+ const [isDragOver, setIsDragOver] = react.useState(false);
14310
+ const [editor, setEditor] = react.useState(null);
14311
+ const [isFocused, setIsFocused] = react.useState(false);
14312
+ const [isTouchDevice, setIsTouchDevice] = react.useState(false);
14313
+ const [isSavedShown, setIsSavedShown] = react.useState(false);
14314
+ const monaco = Editor.useMonaco();
14315
+ const instanceIdRef = react.useRef(++notebookStyleCounter);
14316
+ const instanceClass = `book-editor-instance-${instanceIdRef.current}`;
14317
+ const touchStartRef = react.useRef(null);
14318
+ const fileUploadInputRef = react.useRef(null);
14319
+ const cameraInputRef = react.useRef(null);
14320
+ const { activeUploadItems, uploadStats, pauseUpload, resumeUpload, handleFiles, } = useBookEditorMonacoUploads({
14321
+ editor,
14322
+ monaco,
14323
+ onFileUpload,
14324
+ });
14325
+ useBookEditorMonacoLanguage({ monaco });
14326
+ useBookEditorMonacoDiagnostics({ monaco, editor, diagnostics });
14327
+ useBookEditorMonacoDecorations({ editor, monaco });
14328
+ useBookEditorMonacoStyles({
14329
+ instanceClass,
14330
+ scaledContentPaddingLeft,
14331
+ scaledLineHeight,
14332
+ scaledVerticalLineLeft,
14333
+ zoomLevel,
14334
+ });
14335
+ react.useEffect(() => {
14336
+ setIsTouchDevice(typeof window !== 'undefined' && window.matchMedia('(pointer: coarse)').matches);
14337
+ }, []);
14338
+ react.useEffect(() => {
14339
+ if (!editor) {
14340
+ return;
14341
+ }
14342
+ const focusListener = editor.onDidFocusEditorWidget(() => {
14343
+ setIsFocused(true);
14344
+ });
14345
+ const blurListener = editor.onDidBlurEditorWidget(() => {
14346
+ setIsFocused(false);
14347
+ });
14348
+ const saveAction = editor.addAction({
14349
+ id: 'save-book',
14350
+ label: 'Save',
14351
+ keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS],
14352
+ run: () => {
14353
+ setIsSavedShown(false);
14354
+ setTimeout(() => setIsSavedShown(true), 0);
14355
+ // Note: We don't prevent default, so browser's save dialog still opens
14356
+ },
13773
14357
  });
13774
14358
  return () => {
13775
- changeListener.dispose();
14359
+ focusListener.dispose();
14360
+ blurListener.dispose();
14361
+ saveAction.dispose();
13776
14362
  };
13777
14363
  }, [editor, monaco]);
13778
- /**
13779
- * Inserts upload placeholders and queues uploads for processing.
13780
- */
13781
- const handleFiles = react.useCallback(async (files) => {
13782
- var _a;
13783
- if (!onFileUpload || !editor || !monaco) {
13784
- return;
13785
- }
13786
- if (files.length === 0) {
13787
- return;
13788
- }
13789
- const model = editor.getModel();
13790
- if (!model) {
14364
+ react.useEffect(() => {
14365
+ if (!isSavedShown) {
13791
14366
  return;
13792
14367
  }
13793
- const placeholders = files.map((file) => ({
13794
- id: createUploadId(),
13795
- file,
13796
- placeholder: getUploadPlaceholderText(file.name),
13797
- }));
13798
- const currentValue = ((_a = model.getValue()) !== null && _a !== void 0 ? _a : '');
13799
- const bookEditable = new BookEditable(currentValue);
13800
- const closedLineIndex = bookEditable.findLastCommitmentLineIndex('CLOSED');
13801
- const insertingBeforeClosed = closedLineIndex !== null;
13802
- const insertLine = insertingBeforeClosed ? closedLineIndex + 1 : model.getLineCount();
13803
- const insertColumn = insertingBeforeClosed ? 1 : model.getLineMaxColumn(insertLine);
13804
- const shouldAddLeadingLineBreak = !insertingBeforeClosed && Boolean(model.getValue());
13805
- const prefix = shouldAddLeadingLineBreak ? '\n' : '';
13806
- const placeholderBlock = placeholders.map((entry) => `${entry.placeholder}\n`).join('');
13807
- const textToInsert = `${prefix}${placeholderBlock}`;
13808
- const insertStartOffset = model.getOffsetAt(new monaco.Position(insertLine, insertColumn));
13809
- editor.executeEdits('upload-placeholders', [
13810
- {
13811
- range: new monaco.Range(insertLine, insertColumn, insertLine, insertColumn),
13812
- text: textToInsert,
13813
- forceMoveMarkers: true,
13814
- },
13815
- ]);
13816
- const decorations = [];
13817
- let runningOffset = prefix.length;
13818
- for (const entry of placeholders) {
13819
- const startOffset = insertStartOffset + runningOffset;
13820
- const endOffset = startOffset + entry.placeholder.length;
13821
- const startPos = model.getPositionAt(startOffset);
13822
- const endPos = model.getPositionAt(endOffset);
13823
- decorations.push({
13824
- range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
13825
- options: {
13826
- stickiness: monaco.editor.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
13827
- },
13828
- });
13829
- runningOffset += entry.placeholder.length + 1;
13830
- }
13831
- const decorationIds = editor.deltaDecorations([], decorations);
13832
- placeholders.forEach((entry, index) => {
13833
- uploadFilesRef.current.set(entry.id, entry.file);
13834
- const decorationId = decorationIds[index];
13835
- if (decorationId) {
13836
- uploadDecorationIdsRef.current.set(entry.id, decorationId);
13837
- }
13838
- });
13839
- const newUploadItems = placeholders.map((entry) => ({
13840
- id: entry.id,
13841
- fileName: entry.file.name,
13842
- fileSize: entry.file.size,
13843
- status: 'queued',
13844
- progress: 0,
13845
- loadedBytes: 0,
13846
- totalBytes: entry.file.size,
13847
- startedAt: null,
13848
- completedAt: null,
13849
- }));
13850
- setUploadItems((items) => [...items, ...newUploadItems]);
13851
- queueUploadProcessing();
13852
- }, [onFileUpload, editor, monaco, queueUploadProcessing, setUploadItems]);
13853
- /**
13854
- * Handles file drop uploads.
13855
- */
14368
+ const timer = setTimeout(() => {
14369
+ setIsSavedShown(false);
14370
+ }, 2000);
14371
+ return () => {
14372
+ clearTimeout(timer);
14373
+ };
14374
+ }, [isSavedShown]);
13856
14375
  const handleDrop = react.useCallback(async (event) => {
13857
14376
  event.preventDefault();
13858
14377
  setIsDragOver(false);
13859
14378
  const files = Array.from(event.dataTransfer.files);
13860
14379
  await handleFiles(files);
13861
14380
  }, [handleFiles]);
13862
- /**
13863
- * Handles paste uploads.
13864
- */
13865
14381
  const handlePaste = react.useCallback(async (event) => {
13866
14382
  const files = Array.from(event.clipboardData.files);
13867
14383
  if (files.length === 0) {
@@ -13871,95 +14387,58 @@
13871
14387
  event.stopPropagation();
13872
14388
  await handleFiles(files);
13873
14389
  }, [handleFiles]);
13874
- // <- TODO: [✨🏺] !!!! Maybe not working
13875
- /**
13876
- * Opens the document upload input.
13877
- */
13878
14390
  const handleUploadDocument = react.useCallback(() => {
13879
- if (fileUploadInputRef.current) {
13880
- fileUploadInputRef.current.click();
13881
- }
14391
+ var _a;
14392
+ (_a = fileUploadInputRef.current) === null || _a === void 0 ? void 0 : _a.click();
13882
14393
  }, []);
13883
- /**
13884
- * Opens the camera capture input.
13885
- */
13886
14394
  const handleTakePhoto = react.useCallback(() => {
13887
- if (cameraInputRef.current) {
13888
- cameraInputRef.current.click();
13889
- }
14395
+ var _a;
14396
+ (_a = cameraInputRef.current) === null || _a === void 0 ? void 0 : _a.click();
13890
14397
  }, []);
13891
- /**
13892
- * Handles file selection from hidden inputs.
13893
- */
13894
14398
  const handleFileInputChange = react.useCallback((event) => {
13895
14399
  const files = Array.from(event.target.files || []);
13896
- handleFiles(files);
13897
- // Reset the input value so the same file can be selected again
14400
+ void handleFiles(files);
13898
14401
  event.target.value = '';
13899
14402
  }, [handleFiles]);
13900
- /**
13901
- * Shows drag overlay while dragging over the editor.
13902
- */
13903
14403
  const handleDragOver = react.useCallback((event) => {
13904
14404
  event.preventDefault();
13905
14405
  setIsDragOver(true);
13906
14406
  }, []);
13907
- /**
13908
- * Shows drag overlay when entering the editor.
13909
- */
13910
14407
  const handleDragEnter = react.useCallback((event) => {
13911
14408
  event.preventDefault();
13912
14409
  setIsDragOver(true);
13913
14410
  }, []);
13914
- /**
13915
- * Hides drag overlay when leaving the editor.
13916
- */
13917
14411
  const handleDragLeave = react.useCallback((event) => {
13918
14412
  event.preventDefault();
13919
14413
  setIsDragOver(false);
13920
14414
  }, []);
13921
- const uploadStats = react.useMemo(() => {
13922
- const totalFiles = uploadItems.length;
13923
- const queuedFiles = uploadItems.filter((item) => item.status === 'queued').length;
13924
- const uploadingFiles = uploadItems.filter((item) => item.status === 'uploading').length;
13925
- const pausedFiles = uploadItems.filter((item) => item.status === 'paused').length;
13926
- const failedFiles = uploadItems.filter((item) => item.status === 'failed').length;
13927
- const completedFiles = uploadItems.filter((item) => item.status === 'completed').length;
13928
- const totalBytes = uploadItems.reduce((sum, item) => sum + item.totalBytes, 0);
13929
- const uploadedBytes = uploadItems.reduce((sum, item) => {
13930
- const total = item.totalBytes || 0;
13931
- const loaded = total > 0 ? Math.min(item.loadedBytes, total) : item.loadedBytes;
13932
- return sum + loaded;
13933
- }, 0);
13934
- const progress = totalBytes > 0 ? uploadedBytes / totalBytes : 0;
13935
- const startedAt = uploadItems.reduce((min, item) => {
13936
- if (!item.startedAt) {
13937
- return min;
14415
+ const focusOverlayTouchHandlers = {
14416
+ onTouchStart: (event) => {
14417
+ const touch = event.touches[0];
14418
+ if (touch) {
14419
+ touchStartRef.current = { x: touch.clientX, y: touch.clientY };
13938
14420
  }
13939
- return Math.min(min, item.startedAt);
13940
- }, Number.POSITIVE_INFINITY);
13941
- const elapsedMs = Number.isFinite(startedAt) ? Math.max(0, Date.now() - startedAt) : 0;
13942
- const speedBytesPerSecond = elapsedMs > 0 ? uploadedBytes / (elapsedMs / 1000) : 0;
13943
- return {
13944
- totalFiles,
13945
- queuedFiles,
13946
- uploadingFiles,
13947
- pausedFiles,
13948
- failedFiles,
13949
- completedFiles,
13950
- totalBytes,
13951
- uploadedBytes,
13952
- progress,
13953
- elapsedMs,
13954
- speedBytesPerSecond,
13955
- };
13956
- }, [uploadItems]);
13957
- const activeUploadItems = react.useMemo(() => uploadItems.filter((item) => item.status !== 'completed'), [uploadItems]);
13958
- return (jsxRuntime.jsxs("div", { className: classNames(styles$d.bookEditorContainer, instanceClass), onDrop: handleDrop, onPaste: handlePaste, onDragOver: handleDragOver, onDragEnter: handleDragEnter, onDragLeave: handleDragLeave, children: [(isUploadButtonShown ||
13959
- isCameraButtonShown ||
13960
- isDownloadButtonShown ||
13961
- isAboutButtonShown ||
13962
- isFullscreenButtonShown) && (jsxRuntime.jsx(BookEditorActionbar, { value,
14421
+ },
14422
+ onTouchEnd: (event) => {
14423
+ event.preventDefault();
14424
+ const touch = event.changedTouches[0];
14425
+ if (touch && touchStartRef.current) {
14426
+ const deltaX = Math.abs(touch.clientX - touchStartRef.current.x);
14427
+ const deltaY = Math.abs(touch.clientY - touchStartRef.current.y);
14428
+ const threshold = 10;
14429
+ if (deltaX < threshold && deltaY < threshold) {
14430
+ editor === null || editor === void 0 ? void 0 : editor.focus();
14431
+ }
14432
+ }
14433
+ touchStartRef.current = null;
14434
+ },
14435
+ };
14436
+ const isActionBarVisible = isUploadButtonShown ||
14437
+ isCameraButtonShown ||
14438
+ isDownloadButtonShown ||
14439
+ isAboutButtonShown ||
14440
+ isFullscreenButtonShown;
14441
+ return (jsxRuntime.jsxs("div", { className: classNames(styles$d.bookEditorContainer, instanceClass), onDrop: handleDrop, onPaste: handlePaste, onDragOver: handleDragOver, onDragEnter: handleDragEnter, onDragLeave: handleDragLeave, children: [isActionBarVisible && (jsxRuntime.jsx(BookEditorActionbar, { value,
13963
14442
  isUploadButtonShown,
13964
14443
  isCameraButtonShown: isCameraButtonShown !== null && isCameraButtonShown !== void 0 ? isCameraButtonShown : isTouchDevice,
13965
14444
  isDownloadButtonShown,
@@ -13968,20 +14447,11 @@
13968
14447
  onFullscreenClick,
13969
14448
  onUploadDocument: handleUploadDocument,
13970
14449
  onTakePhoto: handleTakePhoto,
13971
- isFullscreen })), jsxRuntime.jsx("input", { type: "file", ref: fileUploadInputRef, style: { display: 'none' }, onChange: handleFileInputChange, multiple: true }), jsxRuntime.jsx("input", { type: "file", ref: cameraInputRef, style: { display: 'none' }, accept: "image/*", capture: "environment", onChange: handleFileInputChange }), isDragOver && jsxRuntime.jsx("div", { className: styles$d.dropOverlay, children: "Drop files to upload" }), isSavedShown && (jsxRuntime.jsxs("div", { className: styles$d.savedNotification, children: [jsxRuntime.jsx(SaveIcon, {}), "Saved"] })), activeUploadItems.length > 0 && (jsxRuntime.jsxs("div", { className: styles$d.uploadPanel, role: "status", "aria-live": "polite", children: [jsxRuntime.jsxs("div", { className: styles$d.uploadPanelHeader, children: [jsxRuntime.jsx("div", { className: styles$d.uploadPanelTitle, children: "Uploads" }), jsxRuntime.jsxs("div", { className: styles$d.uploadPanelHeaderMeta, children: [uploadStats.uploadingFiles + uploadStats.queuedFiles, " active / ", uploadStats.totalFiles, ' ', "total"] })] }), jsxRuntime.jsxs("div", { className: styles$d.uploadPanelSummary, children: [jsxRuntime.jsxs("div", { children: ["Files: ", uploadStats.totalFiles, " total, ", uploadStats.completedFiles, " done"] }), jsxRuntime.jsxs("div", { children: ["Data: ", formatBytes(uploadStats.uploadedBytes), " / ", formatBytes(uploadStats.totalBytes)] }), jsxRuntime.jsxs("div", { children: ["Speed:", ' ', uploadStats.speedBytesPerSecond > 0
13972
- ? `${formatBytes(uploadStats.speedBytesPerSecond)}/s`
13973
- : '--'] }), jsxRuntime.jsxs("div", { children: ["Elapsed: ", formatDuration(uploadStats.elapsedMs)] }), jsxRuntime.jsxs("div", { children: ["Paused: ", uploadStats.pausedFiles, ", Failed: ", uploadStats.failedFiles] })] }), jsxRuntime.jsx("div", { className: styles$d.uploadPanelProgressBar, children: jsxRuntime.jsx("div", { className: styles$d.uploadPanelProgressFill, style: { width: `${Math.round(uploadStats.progress * 100)}%` } }) }), jsxRuntime.jsx("div", { className: styles$d.uploadPanelList, children: activeUploadItems.map((item) => {
13974
- const percent = Math.round(item.progress * 100);
13975
- const actionLabel = item.status === 'paused' ? 'Resume' : item.status === 'failed' ? 'Retry' : 'Pause';
13976
- const canPause = item.status === 'uploading' || item.status === 'queued';
13977
- const canResume = item.status === 'paused' || item.status === 'failed';
13978
- return (jsxRuntime.jsxs("div", { className: styles$d.uploadRow, children: [jsxRuntime.jsxs("div", { className: styles$d.uploadRowHeader, children: [jsxRuntime.jsx("div", { className: styles$d.uploadRowName, title: item.fileName, children: item.fileName }), jsxRuntime.jsx("div", { className: styles$d.uploadRowStatus, children: UPLOAD_STATUS_LABELS[item.status] })] }), jsxRuntime.jsxs("div", { className: styles$d.uploadRowMeta, children: [jsxRuntime.jsxs("span", { children: [formatBytes(item.loadedBytes), " / ", formatBytes(item.totalBytes)] }), jsxRuntime.jsxs("span", { children: [percent, "%"] })] }), jsxRuntime.jsx("div", { className: styles$d.uploadRowProgressBar, children: jsxRuntime.jsx("div", { className: styles$d.uploadRowProgressFill, style: { width: `${percent}%` } }) }), jsxRuntime.jsxs("div", { className: styles$d.uploadRowActions, children: [canPause && (jsxRuntime.jsx("button", { type: "button", className: styles$d.uploadActionButton, onClick: () => pauseUpload(item.id), children: "Pause" })), canResume && (jsxRuntime.jsx("button", { type: "button", className: styles$d.uploadActionButton, onClick: () => resumeUpload(item.id), children: actionLabel }))] }), item.errorMessage && item.status === 'failed' && (jsxRuntime.jsx("div", { className: styles$d.uploadRowError, children: item.errorMessage }))] }, item.id));
13979
- }) })] })), jsxRuntime.jsxs("div", { style: {
14450
+ isFullscreen })), jsxRuntime.jsx("input", { type: "file", ref: fileUploadInputRef, style: { display: 'none' }, onChange: handleFileInputChange, multiple: true }), jsxRuntime.jsx("input", { type: "file", ref: cameraInputRef, style: { display: 'none' }, accept: "image/*", capture: "environment", onChange: handleFileInputChange }), isDragOver && jsxRuntime.jsx("div", { className: styles$d.dropOverlay, children: "Drop files to upload" }), isSavedShown && (jsxRuntime.jsxs("div", { className: styles$d.savedNotification, children: [jsxRuntime.jsx(SaveIcon, {}), "Saved"] })), jsxRuntime.jsx(BookEditorMonacoUploadPanel, { activeUploadItems: activeUploadItems, uploadStats: uploadStats, pauseUpload: pauseUpload, resumeUpload: resumeUpload }), jsxRuntime.jsxs("div", { style: {
13980
14451
  position: 'relative',
13981
14452
  flex: 1,
13982
14453
  height: '100%',
13983
14454
  width: '100%',
13984
- // outline: '1px dotted #ff3333'
13985
14455
  }, children: [isTouchDevice && !isFocused && (jsxRuntime.jsx("div", { style: {
13986
14456
  position: 'absolute',
13987
14457
  top: 0,
@@ -13992,29 +14462,7 @@
13992
14462
  height: '100%',
13993
14463
  width: '100%',
13994
14464
  backgroundColor: 'transparent',
13995
- // outline: '1px dotted #ff3333',
13996
- }, onTouchStart: (event) => {
13997
- // [1] Record the starting position of the touch
13998
- const touch = event.touches[0];
13999
- if (touch) {
14000
- touchStartRef.current = { x: touch.clientX, y: touch.clientY };
14001
- }
14002
- }, onTouchEnd: (event) => {
14003
- event.preventDefault();
14004
- // [1] Check if this was a tap (not a drag)
14005
- const touch = event.changedTouches[0];
14006
- if (touch && touchStartRef.current) {
14007
- const deltaX = Math.abs(touch.clientX - touchStartRef.current.x);
14008
- const deltaY = Math.abs(touch.clientY - touchStartRef.current.y);
14009
- const threshold = 10; // pixels
14010
- // [1] Only focus if the touch hasn't moved much (it's a tap)
14011
- if (deltaX < threshold && deltaY < threshold) {
14012
- // alert('Tap inside the book editor to focus and start editing.');
14013
- editor === null || editor === void 0 ? void 0 : editor.focus();
14014
- }
14015
- }
14016
- touchStartRef.current = null;
14017
- } })), jsxRuntime.jsx(Editor__default["default"], { language: BOOK_LANGUAGE_ID, value: value, onMount: (editor) => setEditor(editor), onChange: (newValue) => onChange === null || onChange === void 0 ? void 0 : onChange(newValue), options: {
14465
+ }, ...focusOverlayTouchHandlers })), jsxRuntime.jsx(Editor__default["default"], { language: BookEditorMonacoConstants.BOOK_LANGUAGE_ID, value: value, onMount: (mountedEditor) => setEditor(mountedEditor), onChange: (newValue) => onChange === null || onChange === void 0 ? void 0 : onChange(newValue), options: {
14018
14466
  readOnly: isReadonly,
14019
14467
  readOnlyMessage: {
14020
14468
  value: (translations === null || translations === void 0 ? void 0 : translations.readonlyMessage) || 'You cannot edit this book',
@@ -14023,13 +14471,9 @@
14023
14471
  minimap: { enabled: false },
14024
14472
  lineNumbers: 'off',
14025
14473
  fontSize: scaledFontSize,
14026
- // TODO: [🚚] Allow to pass font family as prop + [😺] Make the font asset hosted on Promptbook CDN side
14027
- // <- TODO: [😺]Pass font as asset
14028
14474
  fontFamily: `"Playfair Display", serif`,
14029
- // [🚚]> fontFamily: `"Bitcount Grid Single", system-ui`,
14030
14475
  lineHeight: scaledLineHeight,
14031
14476
  renderLineHighlight: 'none',
14032
- // Note: To add little lines between each line of the book, like a notebook page
14033
14477
  lineDecorationsWidth: scaledContentPaddingLeft,
14034
14478
  glyphMargin: false,
14035
14479
  folding: false,
@@ -15149,7 +15593,7 @@
15149
15593
  *
15150
15594
  * @private Internal helper of the HTML export renderer.
15151
15595
  */
15152
- function escapeHtml(value) {
15596
+ function escapeHtml$1(value) {
15153
15597
  return String(value)
15154
15598
  .replace(/&/g, '&amp;')
15155
15599
  .replace(/</g, '&lt;')
@@ -15169,7 +15613,7 @@
15169
15613
  const paragraphs = content.split(/\n{2,}/).map((paragraph) => paragraph.trim());
15170
15614
  const rendered = paragraphs
15171
15615
  .filter(Boolean)
15172
- .map((paragraph) => `<p>${escapeHtml(paragraph).replace(/\n/g, '<br />')}</p>`)
15616
+ .map((paragraph) => `<p>${escapeHtml$1(paragraph).replace(/\n/g, '<br />')}</p>`)
15173
15617
  .join('');
15174
15618
  if (rendered) {
15175
15619
  return rendered;
@@ -15264,9 +15708,9 @@
15264
15708
  var _a;
15265
15709
  const hasUrl = Boolean(attachment.url);
15266
15710
  const tag = hasUrl ? 'a' : 'span';
15267
- const href = hasUrl ? ` href="${escapeHtml((_a = attachment.url) !== null && _a !== void 0 ? _a : '#')}" target="_blank" rel="noopener"` : '';
15268
- const name = escapeHtml(attachment.name || 'Attachment');
15269
- const meta = escapeHtml(attachment.type || 'file');
15711
+ const href = hasUrl ? ` href="${escapeHtml$1((_a = attachment.url) !== null && _a !== void 0 ? _a : '#')}" target="_blank" rel="noopener"` : '';
15712
+ const name = escapeHtml$1(attachment.name || 'Attachment');
15713
+ const meta = escapeHtml$1(attachment.type || 'file');
15270
15714
  return spaceTrim__default["default"](`
15271
15715
  <${tag} class="attachment-chip"${href}>
15272
15716
  <span class="attachment-icon">📎</span>
@@ -15288,15 +15732,15 @@
15288
15732
  return '';
15289
15733
  }
15290
15734
  const chips = citations.map((citation) => {
15291
- const excerpt = citation.excerpt ? `<p class="citation-excerpt">${escapeHtml(citation.excerpt)}</p>` : '';
15735
+ const excerpt = citation.excerpt ? `<p class="citation-excerpt">${escapeHtml$1(citation.excerpt)}</p>` : '';
15292
15736
  const urlLink = citation.url
15293
- ? `<a class="citation-link" href="${escapeHtml(citation.url)}" target="_blank" rel="noopener">Open source</a>`
15737
+ ? `<a class="citation-link" href="${escapeHtml$1(citation.url)}" target="_blank" rel="noopener">Open source</a>`
15294
15738
  : '';
15295
15739
  return spaceTrim__default["default"](`
15296
15740
  <article class="citation-chip">
15297
15741
  <div class="citation-header">
15298
- <span class="citation-badge">${escapeHtml(citation.id)}</span>
15299
- <span class="citation-source">${escapeHtml(citation.source)}</span>
15742
+ <span class="citation-badge">${escapeHtml$1(citation.id)}</span>
15743
+ <span class="citation-source">${escapeHtml$1(citation.source)}</span>
15300
15744
  </div>
15301
15745
  ${excerpt}
15302
15746
  ${urlLink}
@@ -15322,8 +15766,8 @@
15322
15766
  const citations = buildCitationsMarkup(message);
15323
15767
  const alignmentClass = upperSender === 'USER' ? 'message-user' : 'message-assistant';
15324
15768
  const avatarMarkup = visuals.avatarSrc
15325
- ? `<img class="message-avatar-img" src="${escapeHtml(visuals.avatarSrc)}" alt="${escapeHtml(visuals.displayName)}" />`
15326
- : `<span class="message-avatar-fallback" style="background:${visuals.accentColor};color:${bubbleTextColor};">${escapeHtml(visuals.avatarLabel)}</span>`;
15769
+ ? `<img class="message-avatar-img" src="${escapeHtml$1(visuals.avatarSrc)}" alt="${escapeHtml$1(visuals.displayName)}" />`
15770
+ : `<span class="message-avatar-fallback" style="background:${visuals.accentColor};color:${bubbleTextColor};">${escapeHtml$1(visuals.avatarLabel)}</span>`;
15327
15771
  return spaceTrim__default["default"](`
15328
15772
  <article class="message-block ${alignmentClass}">
15329
15773
  <div class="message-avatar">${avatarMarkup}</div>
@@ -15331,14 +15775,14 @@
15331
15775
  <div class="message-card-inner">
15332
15776
  <header class="message-card-header">
15333
15777
  <div>
15334
- <strong class="message-name">${escapeHtml(visuals.displayName)}</strong>
15335
- <span class="message-role">${escapeHtml(upperSender)}</span>
15778
+ <strong class="message-name">${escapeHtml$1(visuals.displayName)}</strong>
15779
+ <span class="message-role">${escapeHtml$1(upperSender)}</span>
15336
15780
  </div>
15337
- ${timestamp ? `<time class="message-time">${escapeHtml(timestamp)}</time>` : ''}
15781
+ ${timestamp ? `<time class="message-time">${escapeHtml$1(timestamp)}</time>` : ''}
15338
15782
  </header>
15339
15783
  <div class="message-content">${formatMessageContent(message.content)}</div>
15340
15784
  ${durationLabel
15341
- ? `<div class="message-duration">Responded in ${escapeHtml(durationLabel)}</div>`
15785
+ ? `<div class="message-duration">Responded in ${escapeHtml$1(durationLabel)}</div>`
15342
15786
  : ''}
15343
15787
  ${attachments}
15344
15788
  ${citations}
@@ -15356,7 +15800,7 @@
15356
15800
  formatName: 'html',
15357
15801
  label: 'Html',
15358
15802
  getContent: ({ title, messages, participants }) => {
15359
- const safeTitle = escapeHtml(title || 'Chat');
15803
+ const safeTitle = escapeHtml$1(title || 'Chat');
15360
15804
  const participantLookup = buildParticipantMap(participants);
15361
15805
  const exportedAt = new Date();
15362
15806
  const exportedLabel = formatTimestamp(exportedAt);
@@ -15777,13 +16221,13 @@
15777
16221
  <div class="hero-content">
15778
16222
  <p class="hero-kicker">Chat export</p>
15779
16223
  <h1>Conversation with ${safeTitle}</h1>
15780
- <p class="hero-subtitle">${escapeHtml(heroSubtitle)}</p>
16224
+ <p class="hero-subtitle">${escapeHtml$1(heroSubtitle)}</p>
15781
16225
  <div class="stat-grid">
15782
16226
  ${statCards
15783
16227
  .map((stat) => spaceTrim__default["default"](`
15784
16228
  <div class="stat-card">
15785
- <span class="stat-value">${escapeHtml(stat.value)}</span>
15786
- <span class="stat-label">${escapeHtml(stat.label)}</span>
16229
+ <span class="stat-value">${escapeHtml$1(stat.value)}</span>
16230
+ <span class="stat-label">${escapeHtml$1(stat.label)}</span>
15787
16231
  </div>
15788
16232
  `))
15789
16233
  .join('')}
@@ -15800,8 +16244,8 @@
15800
16244
  <p class="chat-panel-subhead">Captured messages, ready to share</p>
15801
16245
  </div>
15802
16246
  <div class="chat-panel-meta">
15803
- <span>${escapeHtml(`${messages.length} messages`)}</span>
15804
- <span>${escapeHtml(`${participantCount} participants`)}</span>
16247
+ <span>${escapeHtml$1(`${messages.length} messages`)}</span>
16248
+ <span>${escapeHtml$1(`${participantCount} participants`)}</span>
15805
16249
  </div>
15806
16250
  </div>
15807
16251
  <div class="chat-messages">
@@ -15811,7 +16255,7 @@
15811
16255
  <footer class="export-footer">
15812
16256
  <div>
15813
16257
  <p>Generated by Promptbook</p>
15814
- <p class="footer-meta">Exported ${escapeHtml(exportedLabel)}</p>
16258
+ <p class="footer-meta">Exported ${escapeHtml$1(exportedLabel)}</p>
15815
16259
  </div>
15816
16260
  <div class="footer-brand">
15817
16261
  <img src="${BRAND_MARK_URL}" alt="" aria-hidden="true" />
@@ -21974,27 +22418,6 @@
21974
22418
  * TODO: [®] DRY Register logic
21975
22419
  */
21976
22420
 
21977
- /*! *****************************************************************************
21978
- Copyright (c) Microsoft Corporation.
21979
-
21980
- Permission to use, copy, modify, and/or distribute this software for any
21981
- purpose with or without fee is hereby granted.
21982
-
21983
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
21984
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
21985
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
21986
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
21987
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
21988
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
21989
- PERFORMANCE OF THIS SOFTWARE.
21990
- ***************************************************************************** */
21991
-
21992
- function __classPrivateFieldGet(receiver, state, kind, f) {
21993
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
21994
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
21995
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
21996
- }
21997
-
21998
22421
  /**
21999
22422
  * Helper of usage compute
22000
22423
  *
@@ -25770,6 +26193,24 @@
25770
26193
  ],
25771
26194
  });
25772
26195
  }
26196
+ /**
26197
+ * Merges the agent's predefined knowledge sources with user-provided attachment URLs.
26198
+ *
26199
+ * @private internal helper for `AgentLlmExecutionTools`
26200
+ */
26201
+ function mergeKnowledgeSourcesWithAttachments(baseSources, attachmentUrls) {
26202
+ const combined = [];
26203
+ if (baseSources && baseSources.length > 0) {
26204
+ combined.push(...baseSources.filter((value) => typeof value === 'string' && value.trim() !== ''));
26205
+ }
26206
+ for (const url of attachmentUrls) {
26207
+ const trimmed = String(url !== null && url !== void 0 ? url : '').trim();
26208
+ if (trimmed !== '') {
26209
+ combined.push(trimmed);
26210
+ }
26211
+ }
26212
+ return Array.from(new Set(combined));
26213
+ }
25773
26214
  /**
25774
26215
  * Execution Tools for calling LLM models with a predefined agent "soul"
25775
26216
  * This wraps underlying LLM execution tools and applies agent-specific system prompts and requirements
@@ -25914,7 +26355,7 @@
25914
26355
  * Calls the chat model with agent-specific system prompt and requirements with streaming
25915
26356
  */
25916
26357
  async callChatModelStream(prompt, onProgress) {
25917
- var _a, _b;
26358
+ var _a;
25918
26359
  // Ensure we're working with a chat prompt
25919
26360
  if (prompt.modelRequirements.modelVariant !== 'CHAT') {
25920
26361
  throw new Error('AgentLlmExecutionTools only supports chat prompts');
@@ -25922,6 +26363,14 @@
25922
26363
  const modelRequirements = await this.getModelRequirements();
25923
26364
  const { _metadata, promptSuffix, ...sanitizedRequirements } = modelRequirements;
25924
26365
  const chatPrompt = prompt;
26366
+ const attachmentUrls = Array.isArray(chatPrompt.attachments) && chatPrompt.attachments.length > 0
26367
+ ? chatPrompt.attachments
26368
+ .map((attachment) => (typeof (attachment === null || attachment === void 0 ? void 0 : attachment.url) === 'string' ? attachment.url.trim() : ''))
26369
+ .filter((url) => url !== '')
26370
+ : [];
26371
+ const knowledgeSourcesForAgentList = mergeKnowledgeSourcesWithAttachments(sanitizedRequirements.knowledgeSources, attachmentUrls);
26372
+ const knowledgeSourcesForAgent = knowledgeSourcesForAgentList.length > 0 ? knowledgeSourcesForAgentList : undefined;
26373
+ const hasAttachmentSources = attachmentUrls.length > 0;
25925
26374
  let underlyingLlmResult;
25926
26375
  const chatPromptContentWithSuffix = promptSuffix
25927
26376
  ? `${chatPrompt.content}\n\n${promptSuffix}`
@@ -25937,9 +26386,7 @@
25937
26386
  ? [...sanitizedRequirements.tools]
25938
26387
  : chatPrompt.modelRequirements.tools,
25939
26388
  // Spread knowledgeSources to convert readonly array to mutable
25940
- knowledgeSources: sanitizedRequirements.knowledgeSources
25941
- ? [...sanitizedRequirements.knowledgeSources]
25942
- : undefined,
26389
+ knowledgeSources: knowledgeSourcesForAgent,
25943
26390
  // Prepend agent system message to existing system message
25944
26391
  systemMessage: sanitizedRequirements.systemMessage +
25945
26392
  (chatPrompt.modelRequirements.systemMessage
@@ -25949,27 +26396,34 @@
25949
26396
  };
25950
26397
  console.log('!!!! promptWithAgentModelRequirements:', promptWithAgentModelRequirements);
25951
26398
  if (OpenAiAgentKitExecutionTools.isOpenAiAgentKitExecutionTools(this.options.llmTools)) {
25952
- const requirementsHash = cryptoJs.SHA256(JSON.stringify(sanitizedRequirements)).toString();
25953
- const vectorStoreHash = cryptoJs.SHA256(JSON.stringify((_a = sanitizedRequirements.knowledgeSources) !== null && _a !== void 0 ? _a : [])).toString();
25954
- const cachedVectorStore = AgentLlmExecutionTools.vectorStoreCache.get(this.title);
25955
- const cachedAgentKit = AgentLlmExecutionTools.agentKitAgentCache.get(this.title);
25956
- let preparedAgentKit = this.options.assistantPreparationMode === 'external'
26399
+ const shouldUseCache = !hasAttachmentSources;
26400
+ let preparedAgentKit = shouldUseCache && this.options.assistantPreparationMode === 'external'
25957
26401
  ? this.options.llmTools.getPreparedAgentKitAgent()
25958
26402
  : null;
25959
- const vectorStoreId = (preparedAgentKit === null || preparedAgentKit === void 0 ? void 0 : preparedAgentKit.vectorStoreId) ||
25960
- (cachedVectorStore && cachedVectorStore.requirementsHash === vectorStoreHash
25961
- ? cachedVectorStore.vectorStoreId
25962
- : undefined);
25963
- if (!preparedAgentKit && cachedAgentKit && cachedAgentKit.requirementsHash === requirementsHash) {
25964
- if (this.options.isVerbose) {
25965
- console.info('[🤰]', 'Using cached OpenAI AgentKit agent', {
25966
- agent: this.title,
25967
- });
26403
+ let vectorStoreId;
26404
+ let vectorStoreHash;
26405
+ let requirementsHash;
26406
+ if (shouldUseCache) {
26407
+ requirementsHash = cryptoJs.SHA256(JSON.stringify(sanitizedRequirements)).toString();
26408
+ vectorStoreHash = cryptoJs.SHA256(JSON.stringify((_a = sanitizedRequirements.knowledgeSources) !== null && _a !== void 0 ? _a : [])).toString();
26409
+ const cachedVectorStore = AgentLlmExecutionTools.vectorStoreCache.get(this.title);
26410
+ const cachedAgentKit = AgentLlmExecutionTools.agentKitAgentCache.get(this.title);
26411
+ vectorStoreId =
26412
+ (preparedAgentKit === null || preparedAgentKit === void 0 ? void 0 : preparedAgentKit.vectorStoreId) ||
26413
+ (cachedVectorStore && cachedVectorStore.requirementsHash === vectorStoreHash
26414
+ ? cachedVectorStore.vectorStoreId
26415
+ : undefined);
26416
+ if (!preparedAgentKit && cachedAgentKit && cachedAgentKit.requirementsHash === requirementsHash) {
26417
+ if (this.options.isVerbose) {
26418
+ console.info('[🤰]', 'Using cached OpenAI AgentKit agent', {
26419
+ agent: this.title,
26420
+ });
26421
+ }
26422
+ preparedAgentKit = {
26423
+ agent: cachedAgentKit.agent,
26424
+ vectorStoreId: cachedAgentKit.vectorStoreId,
26425
+ };
25968
26426
  }
25969
- preparedAgentKit = {
25970
- agent: cachedAgentKit.agent,
25971
- vectorStoreId: cachedAgentKit.vectorStoreId,
25972
- };
25973
26427
  }
25974
26428
  if (!preparedAgentKit) {
25975
26429
  if (this.options.isVerbose) {
@@ -25977,7 +26431,7 @@
25977
26431
  agent: this.title,
25978
26432
  });
25979
26433
  }
25980
- if (!vectorStoreId && ((_b = sanitizedRequirements.knowledgeSources) === null || _b === void 0 ? void 0 : _b.length)) {
26434
+ if (!vectorStoreId && (knowledgeSourcesForAgent === null || knowledgeSourcesForAgent === void 0 ? void 0 : knowledgeSourcesForAgent.length)) {
25981
26435
  emitAssistantPreparationProgress({
25982
26436
  onProgress,
25983
26437
  prompt,
@@ -25994,22 +26448,24 @@
25994
26448
  preparedAgentKit = await this.options.llmTools.prepareAgentKitAgent({
25995
26449
  name: this.title,
25996
26450
  instructions: sanitizedRequirements.systemMessage || '',
25997
- knowledgeSources: sanitizedRequirements.knowledgeSources,
26451
+ knowledgeSources: knowledgeSourcesForAgent,
25998
26452
  tools: sanitizedRequirements.tools ? [...sanitizedRequirements.tools] : undefined,
25999
- vectorStoreId,
26453
+ vectorStoreId: shouldUseCache ? vectorStoreId : undefined,
26000
26454
  });
26001
26455
  }
26002
- if (preparedAgentKit.vectorStoreId) {
26456
+ if (shouldUseCache && vectorStoreHash && preparedAgentKit.vectorStoreId) {
26003
26457
  AgentLlmExecutionTools.vectorStoreCache.set(this.title, {
26004
26458
  vectorStoreId: preparedAgentKit.vectorStoreId,
26005
26459
  requirementsHash: vectorStoreHash,
26006
26460
  });
26007
26461
  }
26008
- AgentLlmExecutionTools.agentKitAgentCache.set(this.title, {
26009
- agent: preparedAgentKit.agent,
26010
- requirementsHash,
26011
- vectorStoreId: preparedAgentKit.vectorStoreId,
26012
- });
26462
+ if (shouldUseCache && requirementsHash) {
26463
+ AgentLlmExecutionTools.agentKitAgentCache.set(this.title, {
26464
+ agent: preparedAgentKit.agent,
26465
+ requirementsHash,
26466
+ vectorStoreId: preparedAgentKit.vectorStoreId,
26467
+ });
26468
+ }
26013
26469
  const responseFormatOutputType = mapResponseFormatToAgentOutputType(promptWithAgentModelRequirements.modelRequirements.responseFormat);
26014
26470
  underlyingLlmResult = await this.options.llmTools.callChatModelStreamWithPreparedAgent({
26015
26471
  openAiAgentKitAgent: preparedAgentKit.agent,
@@ -26166,9 +26622,148 @@
26166
26622
  * TODO: [🧠] Adding parameter substitution support (here or should be responsibility of the underlying LLM Tools)
26167
26623
  */
26168
26624
 
26169
- var _Agent_instances, _Agent_selfLearnNonce, _Agent_selfLearnSamples, _Agent_selfLearnTeacher;
26625
+ /**
26626
+ * Coordinates the Agent self-learning workflow that was extracted from the main class.
26627
+ *
26628
+ * @private helper for Agent
26629
+ */
26630
+ class SelfLearningManager {
26631
+ constructor(options) {
26632
+ this.options = options;
26633
+ this.teacherAgent = options.teacherAgent;
26634
+ }
26635
+ /**
26636
+ * Runs nonce, sampling, and teacher steps for every interaction that should learn.
26637
+ *
26638
+ * @param prompt Received prompt for the interaction
26639
+ * @param result Response produced by the agent
26640
+ * @returns Teacher summary or null when no teacher is configured
26641
+ * @private helper of Agent
26642
+ */
26643
+ async runSelfLearning(prompt, result) {
26644
+ if (just(false)) {
26645
+ await this.appendNonce();
26646
+ }
26647
+ this.appendSample(prompt, result);
26648
+ if (this.teacherAgent === null) {
26649
+ return null;
26650
+ }
26651
+ try {
26652
+ return await this.callTeacher(prompt, result);
26653
+ }
26654
+ catch (error) {
26655
+ console.error(colors__default["default"].bgCyan('[Self-learning]') + colors__default["default"].red(' Failed to learn from teacher agent'));
26656
+ console.error(error);
26657
+ return buildTeacherSummary('', true);
26658
+ }
26659
+ }
26660
+ /**
26661
+ * Appends the nonce section to the agent source with slight delay to avoid thundering herd lookups.
26662
+ *
26663
+ * @private helper of Agent
26664
+ */
26665
+ async appendNonce() {
26666
+ await waitasecond.forTime(Math.random() * 5000);
26667
+ console.info(colors__default["default"].bgCyan('[Self-learning]') + colors__default["default"].cyan(' Nonce'));
26668
+ const nonce = `NONCE ${await linguisticHash(Math.random().toString())}`;
26669
+ this.appendToAgentSource('\n\n---\n\n' + nonce);
26670
+ }
26671
+ /**
26672
+ * Appends the recent user/agent exchange as a new sample.
26673
+ *
26674
+ * @private helper of Agent
26675
+ */
26676
+ appendSample(prompt, result) {
26677
+ console.info(colors__default["default"].bgCyan('[Self-learning]') + colors__default["default"].cyan(' Sampling'));
26678
+ const learningExample = spaceTrim__default["default"]((block) => `
26679
+
26680
+ USER MESSAGE
26681
+ ${block(prompt.content)}
26682
+
26683
+ AGENT MESSAGE
26684
+ ${block(result.content)}
26685
+
26686
+ `);
26687
+ this.appendToAgentSource('\n\n---\n\n' + learningExample);
26688
+ }
26689
+ /**
26690
+ * Calls the teacher agent, appends its commitments, and summarizes the results.
26691
+ *
26692
+ * @private helper of Agent
26693
+ */
26694
+ async callTeacher(prompt, result) {
26695
+ console.info(colors__default["default"].bgCyan('[Self-learning]') + colors__default["default"].cyan(' Teacher'));
26696
+ const teacherPromptContent = spaceTrim__default["default"]((block) => `
26697
+
26698
+ You are a teacher agent helping another agent to learn from its interactions.
26699
+
26700
+ Here is your current client which you are teaching:
26701
+
26702
+ \`\`\`book
26703
+ ${block(this.options.getAgentSource())}
26704
+ \`\`\`
26705
+
26706
+ **And here is the latest interaction:**
26707
+
26708
+ **User:**
26709
+ ${block(prompt.content)}
26710
+
26711
+ **Agent:**
26712
+ ${block(result.content)}
26713
+
26714
+
26715
+ **Rules:**
26716
+
26717
+ - Decide what the agent should learn from this interaction.
26718
+ - Append new commitments at the end of the agent source.
26719
+ - Do not modify the current agent source, just return new commitments (KNOWLEDGE, RULE, etc.).
26720
+ - If there is nothing new to learn, return empty book code block
26721
+ - Wrap the commitments in a book code block.
26722
+ - Do not explain anything, just return the commitments wrapped in a book code block.
26723
+ - Write the learned commitments in the same style and language as in the original agent source.
26724
+
26725
+
26726
+ This is how book code block looks like:
26727
+
26728
+ \`\`\`book
26729
+ KNOWLEDGE The sky is blue.
26730
+ RULE Always be polite.
26731
+ \`\`\`
26732
+ `);
26733
+ const teacherResult = await this.teacherAgent.callChatModel({
26734
+ title: 'Self-learning',
26735
+ modelRequirements: {
26736
+ modelVariant: 'CHAT',
26737
+ },
26738
+ content: teacherPromptContent,
26739
+ parameters: {},
26740
+ });
26741
+ console.log('!!!! teacherResult', teacherResult);
26742
+ const teacherCommitments = unwrapResult(teacherResult.content);
26743
+ if (teacherCommitments === '') {
26744
+ console.info(colors__default["default"].bgCyan('[Self-learning]') +
26745
+ colors__default["default"].cyan(' Teacher agent did not provide new commitments to learn'));
26746
+ return buildTeacherSummary('', true);
26747
+ }
26748
+ this.appendToAgentSource('\n\n' + teacherCommitments);
26749
+ return buildTeacherSummary(teacherCommitments, true);
26750
+ }
26751
+ /**
26752
+ * Appends a new fragment to the agent source and triggers normalization.
26753
+ *
26754
+ * @param section Fragment that should be appended
26755
+ * @private helper of Agent
26756
+ */
26757
+ appendToAgentSource(section) {
26758
+ const currentSource = this.options.getAgentSource();
26759
+ const newSource = padBook(validateBook(spaceTrim__default["default"](currentSource) + section));
26760
+ this.options.updateAgentSource(newSource);
26761
+ }
26762
+ }
26170
26763
  /**
26171
26764
  * Creates an empty commitment breakdown for self-learning summaries.
26765
+ *
26766
+ * @private function of Agent
26172
26767
  */
26173
26768
  function createEmptySelfLearningCommitmentCounts() {
26174
26769
  return {
@@ -26181,6 +26776,9 @@
26181
26776
  }
26182
26777
  /**
26183
26778
  * Normalizes teacher commitments into trimmed, display-ready lines.
26779
+ *
26780
+ * @param commitments Raw teacher output
26781
+ * @private function of Agent
26184
26782
  */
26185
26783
  function getTeacherCommitmentLines(commitments) {
26186
26784
  return commitments
@@ -26190,6 +26788,9 @@
26190
26788
  }
26191
26789
  /**
26192
26790
  * Summarizes teacher commitment lines into user-friendly counts for self-learning.
26791
+ *
26792
+ * @param lines Parsed teacher commitment lines
26793
+ * @private function of Agent
26193
26794
  */
26194
26795
  function summarizeTeacherCommitmentLines(lines) {
26195
26796
  var _a, _b;
@@ -26217,6 +26818,11 @@
26217
26818
  }
26218
26819
  /**
26219
26820
  * Builds the teacher summary payload for the self-learning tool call.
26821
+ *
26822
+ * @param commitments Raw teacher commitments
26823
+ * @param used Whether the teacher was invoked
26824
+ * @returns Summary of learned commitments
26825
+ * @private function of Agent
26220
26826
  */
26221
26827
  function buildTeacherSummary(commitments, used) {
26222
26828
  const commitmentLines = getTeacherCommitmentLines(commitments);
@@ -26226,6 +26832,34 @@
26226
26832
  commitments: commitmentLines.length > 0 ? commitmentLines : undefined,
26227
26833
  };
26228
26834
  }
26835
+
26836
+ /**
26837
+ * Parses boolean prompt parameters, defaulting when the value is missing or invalid.
26838
+ *
26839
+ * @private
26840
+ */
26841
+ function parseBooleanPromptParameter(value, fallback) {
26842
+ if (value === undefined) {
26843
+ return fallback;
26844
+ }
26845
+ const normalized = value.trim().toLowerCase();
26846
+ if (normalized === 'true') {
26847
+ return true;
26848
+ }
26849
+ if (normalized === 'false') {
26850
+ return false;
26851
+ }
26852
+ try {
26853
+ const parsed = JSON.parse(value);
26854
+ if (typeof parsed === 'boolean') {
26855
+ return parsed;
26856
+ }
26857
+ }
26858
+ catch (_a) {
26859
+ // If JSON parsing fails, fall back to the default.
26860
+ }
26861
+ return fallback;
26862
+ }
26229
26863
  /**
26230
26864
  * Represents one AI Agent
26231
26865
  *
@@ -26268,7 +26902,6 @@
26268
26902
  assistantPreparationMode: options.assistantPreparationMode,
26269
26903
  agentSource: agentSource.value, // <- TODO: [🐱‍🚀] Allow to pass BehaviorSubject<string_book> OR refresh llmExecutionTools.callChat on agentSource change
26270
26904
  });
26271
- _Agent_instances.add(this);
26272
26905
  this._agentName = undefined;
26273
26906
  /**
26274
26907
  * Description of the agent
@@ -26307,8 +26940,12 @@
26307
26940
  this.toolTitles = {};
26308
26941
  // TODO: [🐱‍🚀] Add `Agent` simple "mocked" learning by appending to agent source
26309
26942
  // TODO: [🐱‍🚀] Add `Agent` learning by promptbookAgent
26310
- this.teacherAgent = options.teacherAgent;
26311
26943
  this.agentSource = agentSource;
26944
+ this.selfLearningManager = new SelfLearningManager({
26945
+ teacherAgent: options.teacherAgent,
26946
+ getAgentSource: () => this.agentSource.value,
26947
+ updateAgentSource: (source) => this.agentSource.next(source),
26948
+ });
26312
26949
  this.agentSource.subscribe((source) => {
26313
26950
  this.updateAgentSource(source);
26314
26951
  const { agentName, personaDescription, initialMessage, links, meta, capabilities, samples, knowledgeSources, } = parseAgentSource(source);
@@ -26332,6 +26969,7 @@
26332
26969
  * Note: This method also implements the learning mechanism
26333
26970
  */
26334
26971
  async callChatModelStream(prompt, onProgress) {
26972
+ var _a;
26335
26973
  // [1] Check if the user is asking the same thing as in the samples
26336
26974
  const modelRequirements = await this.getModelRequirements();
26337
26975
  if (modelRequirements.samples) {
@@ -26382,6 +27020,10 @@
26382
27020
  if (modelRequirements.isClosed) {
26383
27021
  return result;
26384
27022
  }
27023
+ const shouldSelfLearn = parseBooleanPromptParameter((_a = prompt.parameters) === null || _a === void 0 ? void 0 : _a[PROMPT_PARAMETER_SELF_LEARNING_ENABLED], true);
27024
+ if (!shouldSelfLearn) {
27025
+ return result;
27026
+ }
26385
27027
  // Note: [0] Notify start of self-learning
26386
27028
  const selfLearningToolCall = {
26387
27029
  name: 'self-learning',
@@ -26393,24 +27035,7 @@
26393
27035
  toolCalls: [...(result.toolCalls || []), selfLearningToolCall],
26394
27036
  };
26395
27037
  onProgress(resultWithLearning);
26396
- // Note: [1] Asynchronously add nonce
26397
- if (just(false)) {
26398
- await __classPrivateFieldGet(this, _Agent_instances, "m", _Agent_selfLearnNonce).call(this);
26399
- }
26400
- // Note: [2] Do the append of the samples
26401
- await __classPrivateFieldGet(this, _Agent_instances, "m", _Agent_selfLearnSamples).call(this, prompt, result);
26402
- // Note: [3] Asynchronously call the teacher agent and invoke the silver link. When the teacher fails, keep just the samples
26403
- let teacherSummary = null;
26404
- try {
26405
- teacherSummary = await __classPrivateFieldGet(this, _Agent_instances, "m", _Agent_selfLearnTeacher).call(this, prompt, result);
26406
- }
26407
- catch (error) {
26408
- // !!!!! if (this.options.isVerbose) {
26409
- console.error(colors__default["default"].bgCyan('[Self-learning]') + colors__default["default"].red(' Failed to learn from teacher agent'));
26410
- console.error(error);
26411
- // }
26412
- teacherSummary = this.teacherAgent ? buildTeacherSummary('', true) : null;
26413
- }
27038
+ const teacherSummary = await this.selfLearningManager.runSelfLearning(prompt, result);
26414
27039
  // Note: [4] Notify end of self-learning
26415
27040
  const completedAt = new Date().toISOString();
26416
27041
  const selfLearningResult = {
@@ -26432,110 +27057,6 @@
26432
27057
  return finalResult;
26433
27058
  }
26434
27059
  }
26435
- _Agent_instances = new WeakSet(), _Agent_selfLearnNonce =
26436
- /**
26437
- * Self-learning Step 0: Asynchronously with random timing add nonce to the agent source
26438
- */
26439
- async function _Agent_selfLearnNonce() {
26440
- await waitasecond.forTime(Math.random() * 5000);
26441
- // <- TODO: [🕓] `await forRandom(...)`
26442
- console.info(colors__default["default"].bgCyan('[Self-learning]') + colors__default["default"].cyan(' Nonce'));
26443
- const nonce = `NONCE ${await linguisticHash(Math.random().toString())}`;
26444
- // Append to the current source
26445
- const currentSource = this.agentSource.value;
26446
- const newSource = padBook(validateBook(spaceTrim__default["default"](currentSource) + '\n\n---\n\n' + nonce));
26447
- // <- TODO: [🈲] Use some object-based way how to append on book (with sections `---`)
26448
- // Update the source (which will trigger the subscription and update the underlying tools)
26449
- this.agentSource.next(newSource);
26450
- }, _Agent_selfLearnSamples = function _Agent_selfLearnSamples(prompt, result) {
26451
- console.info(colors__default["default"].bgCyan('[Self-learning]') + colors__default["default"].cyan(' Sampling'));
26452
- const learningExample = spaceTrim__default["default"]((block) => `
26453
-
26454
- USER MESSAGE
26455
- ${block(prompt.content)}
26456
-
26457
- AGENT MESSAGE
26458
- ${block(result.content)}
26459
-
26460
- `);
26461
- // Append to the current source
26462
- const currentSource = this.agentSource.value;
26463
- const newSource = padBook(validateBook(spaceTrim__default["default"](currentSource) + '\n\n---\n\n' + learningExample));
26464
- // <- TODO: [🈲] Use some object-based way how to append on book (with sections `---`)
26465
- // Update the source (which will trigger the subscription and update the underlying tools)
26466
- this.agentSource.next(newSource);
26467
- }, _Agent_selfLearnTeacher =
26468
- /**
26469
- * Self-learning Step 2: Asynchronously call the teacher agent and invoke the silver link
26470
- */
26471
- async function _Agent_selfLearnTeacher(prompt, result) {
26472
- // [1] Call the teacher agent // <- !!!!! Emojis
26473
- if (this.teacherAgent === null) {
26474
- return null;
26475
- }
26476
- console.info(colors__default["default"].bgCyan('[Self-learning]') + colors__default["default"].cyan(' Teacher'));
26477
- const teacherResult = await this.teacherAgent.callChatModel({
26478
- title: 'Self-learning',
26479
- modelRequirements: {
26480
- modelVariant: 'CHAT',
26481
- },
26482
- // TODO: !!!! Use prompt notation
26483
- content: spaceTrim__default["default"]((block) => `
26484
-
26485
- You are a teacher agent helping another agent to learn from its interactions.
26486
-
26487
- Here is your current client which you are teaching:
26488
-
26489
- \`\`\`book
26490
- ${block(this.agentSource.value)}
26491
- \`\`\`
26492
-
26493
- **And here is the latest interaction:**
26494
-
26495
- **User:**
26496
- ${block(prompt.content)}
26497
-
26498
- **Agent:**
26499
- ${block(result.content)}
26500
-
26501
-
26502
- **Rules:**
26503
-
26504
- - Decide what the agent should learn from this interaction.
26505
- - Append new commitments at the end of the agent source.
26506
- - Do not modify the current agent source, just return new commitments (KNOWLEDGE, RULE, etc.).
26507
- - If there is nothing new to learn, return empty book code block
26508
- - Wrap the commitments in a book code block.
26509
- - Do not explain anything, just return the commitments wrapped in a book code block.
26510
- - Write the learned commitments in the same style and language as in the original agent source.
26511
-
26512
-
26513
- This is how book code block looks like:
26514
-
26515
- \`\`\`book
26516
- KNOWLEDGE The sky is blue.
26517
- RULE Always be polite.
26518
- \`\`\`
26519
- `),
26520
- // pipelineUrl: 'https://github.com/webgptorg/promptbook/blob/main/prompts/self-learning.ptbk.md',
26521
- // <- TODO: !!!! Remove and `pipelineUrl` for agent purposes
26522
- parameters: {},
26523
- });
26524
- console.log('!!!! teacherResult', teacherResult);
26525
- const teacherCommitments = unwrapResult(teacherResult.content);
26526
- if (teacherCommitments === '') {
26527
- console.info(colors__default["default"].bgCyan('[Self-learning]') +
26528
- colors__default["default"].cyan(' Teacher agent did not provide new commitments to learn'));
26529
- return buildTeacherSummary('', true);
26530
- }
26531
- // [2] Append to the current source
26532
- const currentSource = this.agentSource.value;
26533
- const newSource = padBook(validateBook(spaceTrim__default["default"](currentSource) + '\n\n' + teacherCommitments));
26534
- // <- TODO: [🈲] Use some object-based way how to append on book (with sections `---`)
26535
- // [3] Update the source
26536
- this.agentSource.next(newSource);
26537
- return buildTeacherSummary(teacherCommitments, true);
26538
- };
26539
27060
  /**
26540
27061
  * TODO: [🧠][😰]Agent is not working with the parameters, should it be?
26541
27062
  */
@@ -26810,13 +27331,23 @@
26810
27331
  remoteAgent.samples = profile.samples || [];
26811
27332
  remoteAgent.toolTitles = profile.toolTitles || {};
26812
27333
  remoteAgent._isVoiceCallingEnabled = profile.isVoiceCallingEnabled === true; // [✨✷] Store voice calling status
27334
+ remoteAgent._isVoiceTtsSttEnabled = profile.isVoiceTtsSttEnabled !== false;
26813
27335
  remoteAgent.knowledgeSources = profile.knowledgeSources || [];
26814
27336
  return remoteAgent;
26815
27337
  }
27338
+ /**
27339
+ * Indicates whether the remote server allows text-to-speech and speech-to-text.
27340
+ *
27341
+ * @public exported from `@promptbook/core`
27342
+ */
27343
+ get isVoiceTtsSttEnabled() {
27344
+ return this._isVoiceTtsSttEnabled;
27345
+ }
26816
27346
  constructor(options) {
26817
27347
  super(options);
26818
27348
  this.toolTitles = {};
26819
27349
  this._isVoiceCallingEnabled = false; // [✨✷] Track voice calling status
27350
+ this._isVoiceTtsSttEnabled = true;
26820
27351
  this.knowledgeSources = [];
26821
27352
  this.agentUrl = options.agentUrl;
26822
27353
  }
@@ -26838,7 +27369,7 @@
26838
27369
  * Returns undefined if voice calling is disabled
26839
27370
  */
26840
27371
  get callVoiceChatModel() {
26841
- if (!this._isVoiceCallingEnabled) {
27372
+ if (!this._isVoiceCallingEnabled || !this._isVoiceTtsSttEnabled) {
26842
27373
  return undefined;
26843
27374
  }
26844
27375
  return async (audio, prompt) => {
@@ -26901,6 +27432,7 @@
26901
27432
  const toolCalls = [];
26902
27433
  const preparationToolCalls = [];
26903
27434
  let hasReceivedModelOutput = false;
27435
+ let pendingToolCallLineFragment = '';
26904
27436
  const normalizeToolCall = (toolCall) => {
26905
27437
  if (toolCall.createdAt) {
26906
27438
  return toolCall;
@@ -26953,6 +27485,113 @@
26953
27485
  * Builds the tool call list including any preparation marker still active.
26954
27486
  */
26955
27487
  const getActiveToolCalls = () => preparationToolCalls.length > 0 ? [...preparationToolCalls, ...toolCalls] : toolCalls;
27488
+ /**
27489
+ * Emits one progress snapshot using current aggregated text and tool calls.
27490
+ */
27491
+ const emitProgress = () => {
27492
+ onProgress({
27493
+ content,
27494
+ modelName: this.modelName,
27495
+ timing: {},
27496
+ usage: {},
27497
+ rawPromptContent: {},
27498
+ rawRequest: {},
27499
+ rawResponse: {},
27500
+ toolCalls: getActiveToolCalls(),
27501
+ });
27502
+ };
27503
+ /**
27504
+ * Attempts to parse one completed NDJSON tool-call line.
27505
+ */
27506
+ const tryParseToolCallLine = (trimmedLine) => {
27507
+ if (!trimmedLine.startsWith('{') || !trimmedLine.endsWith('}')) {
27508
+ return false;
27509
+ }
27510
+ try {
27511
+ const chunk = JSON.parse(trimmedLine);
27512
+ if (!chunk.toolCalls) {
27513
+ return false;
27514
+ }
27515
+ const normalizedToolCalls = chunk.toolCalls.map(normalizeToolCall);
27516
+ upsertToolCalls(normalizedToolCalls);
27517
+ emitProgress();
27518
+ return true;
27519
+ }
27520
+ catch (_a) {
27521
+ return false;
27522
+ }
27523
+ };
27524
+ /**
27525
+ * Detects whether an incomplete trailing line might be a split tool-call payload.
27526
+ */
27527
+ const isPotentialToolCallLineFragment = (trimmedLine) => {
27528
+ if (trimmedLine.length === 0) {
27529
+ return false;
27530
+ }
27531
+ const toolCallPrefix = '{"toolCalls":';
27532
+ return toolCallPrefix.startsWith(trimmedLine) || trimmedLine.startsWith(toolCallPrefix);
27533
+ };
27534
+ /**
27535
+ * Appends model text to accumulated content and emits progress.
27536
+ */
27537
+ const appendTextChunk = (textChunk) => {
27538
+ if (!textChunk) {
27539
+ return;
27540
+ }
27541
+ content += textChunk;
27542
+ if (!hasReceivedModelOutput && content.trim().length > 0) {
27543
+ hasReceivedModelOutput = true;
27544
+ preparationToolCalls.length = 0;
27545
+ }
27546
+ emitProgress();
27547
+ };
27548
+ /**
27549
+ * Consumes one decoded transport chunk, removing keep-alive pings and tool-call frames.
27550
+ *
27551
+ * Note: Tool-call JSON is line-delimited but may arrive split across transport chunks.
27552
+ */
27553
+ const processDecodedChunk = (decodedChunk) => {
27554
+ var _a;
27555
+ if (!decodedChunk) {
27556
+ return;
27557
+ }
27558
+ const combinedChunk = pendingToolCallLineFragment + decodedChunk;
27559
+ pendingToolCallLineFragment = '';
27560
+ const hasTrailingNewline = combinedChunk.endsWith('\n') || combinedChunk.endsWith('\r');
27561
+ const lines = combinedChunk.split(/\r?\n/);
27562
+ const trailingFragment = hasTrailingNewline ? '' : ((_a = lines.pop()) !== null && _a !== void 0 ? _a : '');
27563
+ let hasNonEmptyText = false;
27564
+ const textLines = [];
27565
+ for (const line of lines) {
27566
+ const trimmedLine = line.trim();
27567
+ if (trimmedLine === CHAT_STREAM_KEEP_ALIVE_TOKEN) {
27568
+ continue;
27569
+ }
27570
+ if (tryParseToolCallLine(trimmedLine)) {
27571
+ continue;
27572
+ }
27573
+ textLines.push(line);
27574
+ if (trimmedLine.length > 0) {
27575
+ hasNonEmptyText = true;
27576
+ }
27577
+ }
27578
+ if (trailingFragment !== '') {
27579
+ const trimmedTrailingFragment = trailingFragment.trim();
27580
+ if (isPotentialToolCallLineFragment(trimmedTrailingFragment)) {
27581
+ pendingToolCallLineFragment = trailingFragment;
27582
+ }
27583
+ else {
27584
+ textLines.push(trailingFragment);
27585
+ if (trimmedTrailingFragment.length > 0) {
27586
+ hasNonEmptyText = true;
27587
+ }
27588
+ }
27589
+ }
27590
+ if (!hasNonEmptyText) {
27591
+ return;
27592
+ }
27593
+ appendTextChunk(textLines.join('\n'));
27594
+ };
26956
27595
  if (!bookResponse.body) {
26957
27596
  content = await bookResponse.text();
26958
27597
  }
@@ -26968,84 +27607,26 @@
26968
27607
  doneReading = !!done;
26969
27608
  if (value) {
26970
27609
  const textChunk = decoder.decode(value, { stream: true });
26971
- let hasNonEmptyText = false;
26972
- const textLines = [];
26973
- const lines = textChunk.split(/\r?\n/);
26974
- for (const line of lines) {
26975
- const trimmedLine = line.trim();
26976
- if (trimmedLine === CHAT_STREAM_KEEP_ALIVE_TOKEN) {
26977
- continue;
26978
- }
26979
- let isToolCallLine = false;
26980
- if (trimmedLine.startsWith('{') && trimmedLine.endsWith('}')) {
26981
- try {
26982
- const chunk = JSON.parse(trimmedLine);
26983
- if (chunk.toolCalls) {
26984
- const normalizedToolCalls = chunk.toolCalls.map(normalizeToolCall);
26985
- upsertToolCalls(normalizedToolCalls);
26986
- onProgress({
26987
- content,
26988
- modelName: this.modelName,
26989
- timing: {},
26990
- usage: {},
26991
- rawPromptContent: {},
26992
- rawRequest: {},
26993
- rawResponse: {},
26994
- toolCalls: getActiveToolCalls(),
26995
- });
26996
- isToolCallLine = true;
26997
- }
26998
- }
26999
- catch (error) {
27000
- // Ignore non-json lines
27001
- }
27002
- }
27003
- if (!isToolCallLine) {
27004
- textLines.push(line);
27005
- if (trimmedLine.length > 0) {
27006
- hasNonEmptyText = true;
27007
- }
27008
- }
27009
- }
27010
- if (!hasNonEmptyText) {
27011
- continue;
27012
- }
27013
- const textChunkWithoutToolCalls = textLines.join('\n');
27014
- content += textChunkWithoutToolCalls;
27015
- if (!hasReceivedModelOutput && content.trim().length > 0) {
27016
- hasReceivedModelOutput = true;
27017
- preparationToolCalls.length = 0;
27018
- }
27019
- onProgress({
27020
- content,
27021
- modelName: this.modelName,
27022
- timing: {},
27023
- usage: {},
27024
- rawPromptContent: {},
27025
- rawRequest: {},
27026
- rawResponse: {},
27027
- toolCalls: getActiveToolCalls(),
27028
- });
27610
+ processDecodedChunk(textChunk);
27029
27611
  }
27030
27612
  }
27031
27613
  // Flush any remaining decoder internal state
27032
27614
  const lastChunk = decoder.decode();
27033
27615
  if (lastChunk) {
27034
- content += lastChunk;
27035
- if (!hasReceivedModelOutput && content.trim().length > 0) {
27036
- hasReceivedModelOutput = true;
27037
- preparationToolCalls.length = 0;
27616
+ processDecodedChunk(lastChunk);
27617
+ }
27618
+ if (pendingToolCallLineFragment) {
27619
+ const trimmedPending = pendingToolCallLineFragment.trim();
27620
+ if (trimmedPending === CHAT_STREAM_KEEP_ALIVE_TOKEN) {
27621
+ pendingToolCallLineFragment = '';
27622
+ }
27623
+ else if (tryParseToolCallLine(trimmedPending)) {
27624
+ pendingToolCallLineFragment = '';
27625
+ }
27626
+ else {
27627
+ appendTextChunk(pendingToolCallLineFragment);
27628
+ pendingToolCallLineFragment = '';
27038
27629
  }
27039
- onProgress({
27040
- content: lastChunk,
27041
- modelName: this.modelName,
27042
- timing: {},
27043
- usage: {},
27044
- rawPromptContent: {},
27045
- rawRequest: {},
27046
- rawResponse: {},
27047
- toolCalls: getActiveToolCalls(),
27048
- });
27049
27630
  }
27050
27631
  }
27051
27632
  finally {
@@ -28449,6 +29030,7 @@
28449
29030
  run_browser: { title: 'Running browser', emoji: '🌐' },
28450
29031
  get_current_time: { title: 'Checking time', emoji: '🕒' },
28451
29032
  useTime: { title: 'Checking time', emoji: '🕒' },
29033
+ get_user_location: { title: 'Checking location', emoji: '📍' },
28452
29034
  send_email: { title: 'Sending email', emoji: '📧' },
28453
29035
  useEmail: { title: 'Sending email', emoji: '📧' },
28454
29036
  // Add more tools here as needed
@@ -28709,8 +29291,8 @@
28709
29291
  return (jsxRuntime.jsxs("div", { className: styles$5.imagePrompt, "aria-live": "polite", children: [jsxRuntime.jsxs("div", { className: styles$5.imagePromptPreview, children: [status === 'success' && imageUrl ? (jsxRuntime.jsx("img", { src: imageUrl, alt: alt, className: styles$5.imagePromptImage })) : (jsxRuntime.jsx("div", { className: styles$5.imagePromptPlaceholder, children: jsxRuntime.jsx("div", { className: styles$5.imagePromptSpinner }) })), status === 'error' && error && jsxRuntime.jsx("div", { className: styles$5.imagePromptError, children: error })] }), jsxRuntime.jsxs("div", { className: styles$5.imagePromptMeta, children: [jsxRuntime.jsx("span", { className: styles$5.imagePromptPrompt, children: trimmedPrompt || 'Generated image' }), jsxRuntime.jsx("span", { className: styles$5.imagePromptStatus, children: statusLabel })] })] }));
28710
29292
  }
28711
29293
 
28712
- var css_248z$1 = ".ChatMessageMap-module_mapContainer__OBOgP{aspect-ratio:1/1;background:rgba(15,23,36,.94);border:1px solid hsla(0,0%,100%,.12);border-radius:16px;box-shadow:0 14px 50px rgba(2,6,23,.45);margin:16px 0;overflow:hidden;position:relative;width:100%}.ChatMessageMap-module_mapSurface__E713z{border-radius:inherit;height:100%;width:100%}.ChatMessageMap-module_mapControls__2VZT6{display:flex;gap:8px;position:absolute;right:10px;top:10px;z-index:2}.ChatMessageMap-module_mapControlButton__q5pgF{align-items:center;background:rgba(2,6,23,.75);border:none;border-radius:12px;box-shadow:0 6px 18px rgba(2,6,23,.45);color:#f8fafc;cursor:pointer;display:inline-flex;height:38px;justify-content:center;transition:background .2s ease,transform .2s ease;width:38px}.ChatMessageMap-module_mapControlButton__q5pgF:hover{background:rgba(59,130,246,.9);transform:translateY(-1px)}.ChatMessageMap-module_mapControlButton__q5pgF:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.ChatMessageMap-module_mapModalBackdrop__uC0ud{align-items:center;background:rgba(2,6,23,.85);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1100}.ChatMessageMap-module_mapModalContent__XaQyP{background:rgba(15,23,42,.98);border:1px solid hsla(0,0%,100%,.08);border-radius:24px;box-shadow:0 30px 70px rgba(2,6,23,.75);display:flex;flex-direction:column;gap:16px;max-height:min(90vh,720px);padding:20px 24px 24px;width:min(92vw,960px)}.ChatMessageMap-module_mapModalHeader__RRj5V{display:flex;justify-content:flex-end}.ChatMessageMap-module_mapModalCloseButton__vUs1S{align-items:center;background:hsla(0,0%,100%,.12);border:none;border-radius:12px;color:#f8fafc;cursor:pointer;display:inline-flex;height:38px;justify-content:center;transition:background .2s ease;width:38px}.ChatMessageMap-module_mapModalCloseButton__vUs1S:hover{background:hsla(0,0%,100%,.24)}.ChatMessageMap-module_mapModalCloseButton__vUs1S:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.ChatMessageMap-module_mapModalBody__T4vO-{display:flex;flex:1;min-height:320px}.ChatMessageMap-module_mapModalSurface__FWJgn{border-radius:16px;flex:1;height:100%;width:100%}@media (max-width:640px){.ChatMessageMap-module_mapContainer__OBOgP{border-radius:12px;margin:12px 0}.ChatMessageMap-module_mapControlButton__q5pgF{height:34px;width:34px}.ChatMessageMap-module_mapModalContent__XaQyP{border-radius:18px;max-height:90vh;padding:16px;width:100%}.ChatMessageMap-module_mapModalBody__T4vO-{min-height:260px}.ChatMessageMap-module_mapModalSurface__FWJgn{border-radius:12px}}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNoYXRNZXNzYWdlTWFwLm1vZHVsZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBTUksZ0JBQW1CLENBRm5CLDZCQUFrQyxDQURsQyxvQ0FBMkMsQ0FEM0Msa0JBQW1CLENBTW5CLHVDQUE0QyxDQUQ1QyxhQUFjLENBRmQsZUFBZ0IsQ0FJaEIsaUJBQWtCLENBUmxCLFVBU0osQ0FFQSx5Q0FHSSxxQkFBc0IsQ0FEdEIsV0FBWSxDQURaLFVBR0osQ0FFQSwwQ0FJSSxZQUFhLENBQ2IsT0FBUSxDQUpSLGlCQUFrQixDQUVsQixVQUFXLENBRFgsUUFBUyxDQUlULFNBQ0osQ0FFQSwrQ0FRSSxrQkFBbUIsQ0FIbkIsMkJBQWdDLENBRGhDLFdBQVksQ0FEWixrQkFBbUIsQ0FRbkIsc0NBQTJDLENBTDNDLGFBQWMsQ0FJZCxjQUFlLENBSGYsbUJBQW9CLENBTHBCLFdBQVksQ0FPWixzQkFBdUIsQ0FHdkIsaURBQXFELENBWHJELFVBWUosQ0FFQSxxREFDSSw4QkFBbUMsQ0FDbkMsMEJBQ0osQ0FFQSw2REFDSSx5QkFBMEIsQ0FDMUIsa0JBQ0osQ0FFQSwrQ0FNSSxrQkFBbUIsQ0FIbkIsMkJBQWdDLENBRWhDLFlBQWEsQ0FIYixPQUFRLENBS1Isc0JBQXVCLENBQ3ZCLFlBQWEsQ0FQYixjQUFlLENBR2YsWUFLSixDQUVBLDhDQUNJLDZCQUFrQyxDQVNsQyxvQ0FBMkMsQ0FSM0Msa0JBQW1CLENBR25CLHVDQUE0QyxDQUM1QyxZQUFhLENBQ2IscUJBQXNCLENBQ3RCLFFBQVMsQ0FKVCwwQkFBNEIsQ0FLNUIsc0JBQXVCLENBTnZCLHFCQVFKLENBRUEsNkNBQ0ksWUFBYSxDQUNiLHdCQUNKLENBRUEsa0RBUUksa0JBQW1CLENBSG5CLDhCQUFxQyxDQURyQyxXQUFZLENBRFosa0JBQW1CLENBR25CLGFBQWMsQ0FJZCxjQUFlLENBSGYsbUJBQW9CLENBTHBCLFdBQVksQ0FPWixzQkFBdUIsQ0FFdkIsOEJBQWdDLENBVmhDLFVBV0osQ0FFQSx3REFDSSw4QkFDSixDQUVBLGdFQUNJLHlCQUEwQixDQUMxQixrQkFDSixDQUVBLDJDQUdJLFlBQWEsQ0FGYixNQUFPLENBQ1AsZ0JBRUosQ0FFQSw4Q0FFSSxrQkFBbUIsQ0FEbkIsTUFBTyxDQUdQLFdBQVksQ0FEWixVQUVKLENBRUEseUJBQ0ksMkNBQ0ksa0JBQW1CLENBQ25CLGFBQ0osQ0FFQSwrQ0FFSSxXQUFZLENBRFosVUFFSixDQUVBLDhDQUlJLGtCQUFtQixDQUZuQixlQUFnQixDQUNoQixZQUFhLENBRmIsVUFJSixDQUVBLDJDQUNJLGdCQUNKLENBRUEsOENBQ0ksa0JBQ0osQ0FDSiIsImZpbGUiOiJDaGF0TWVzc2FnZU1hcC5tb2R1bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hcENvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCAzNiwgMC45NCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIG1hcmdpbjogMTZweCAwO1xuICAgIGJveC1zaGFkb3c6IDAgMTRweCA1MHB4IHJnYmEoMiwgNiwgMjMsIDAuNDUpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1hcFN1cmZhY2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xufVxuXG4ubWFwQ29udHJvbHMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwcHg7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDhweDtcbiAgICB6LWluZGV4OiAyO1xufVxuXG4ubWFwQ29udHJvbEJ1dHRvbiB7XG4gICAgd2lkdGg6IDM4cHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMiwgNiwgMjMsIDAuNzUpO1xuICAgIGNvbG9yOiAjZjhmYWZjO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDE4cHggcmdiYSgyLCA2LCAyMywgMC40NSk7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7XG59XG5cbi5tYXBDb250cm9sQnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC45KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi5tYXBDb250cm9sQnV0dG9uOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAjMzhiZGY4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi5tYXBNb2RhbEJhY2tkcm9wIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyLCA2LCAyMywgMC44NSk7XG4gICAgei1pbmRleDogMTEwMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMjBweDtcbn1cblxuLm1hcE1vZGFsQ29udGVudCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjk4KTtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIHdpZHRoOiBtaW4oOTJ2dywgOTYwcHgpO1xuICAgIG1heC1oZWlnaHQ6IG1pbig5MHZoLCA3MjBweCk7XG4gICAgYm94LXNoYWRvdzogMCAzMHB4IDcwcHggcmdiYSgyLCA2LCAyMywgMC43NSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiAyMHB4IDI0cHggMjRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xufVxuXG4ubWFwTW9kYWxIZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLm1hcE1vZGFsQ2xvc2VCdXR0b24ge1xuICAgIHdpZHRoOiAzOHB4O1xuICAgIGhlaWdodDogMzhweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xuICAgIGNvbG9yOiAjZjhmYWZjO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlO1xufVxuXG4ubWFwTW9kYWxDbG9zZUJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI0KTtcbn1cblxuLm1hcE1vZGFsQ2xvc2VCdXR0b246Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICMzOGJkZjg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuLm1hcE1vZGFsQm9keSB7XG4gICAgZmxleDogMTtcbiAgICBtaW4taGVpZ2h0OiAzMjBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubWFwTW9kYWxTdXJmYWNlIHtcbiAgICBmbGV4OiAxO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAubWFwQ29udGFpbmVyIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgbWFyZ2luOiAxMnB4IDA7XG4gICAgfVxuXG4gICAgLm1hcENvbnRyb2xCdXR0b24ge1xuICAgICAgICB3aWR0aDogMzRweDtcbiAgICAgICAgaGVpZ2h0OiAzNHB4O1xuICAgIH1cblxuICAgIC5tYXBNb2RhbENvbnRlbnQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICB9XG5cbiAgICAubWFwTW9kYWxCb2R5IHtcbiAgICAgICAgbWluLWhlaWdodDogMjYwcHg7XG4gICAgfVxuXG4gICAgLm1hcE1vZGFsU3VyZmFjZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgfVxufVxuIl19 */";
28713
- var styles$1 = {"mapContainer":"ChatMessageMap-module_mapContainer__OBOgP","mapSurface":"ChatMessageMap-module_mapSurface__E713z","mapControls":"ChatMessageMap-module_mapControls__2VZT6","mapControlButton":"ChatMessageMap-module_mapControlButton__q5pgF","mapModalBackdrop":"ChatMessageMap-module_mapModalBackdrop__uC0ud","mapModalContent":"ChatMessageMap-module_mapModalContent__XaQyP","mapModalHeader":"ChatMessageMap-module_mapModalHeader__RRj5V","mapModalCloseButton":"ChatMessageMap-module_mapModalCloseButton__vUs1S","mapModalBody":"ChatMessageMap-module_mapModalBody__T4vO-","mapModalSurface":"ChatMessageMap-module_mapModalSurface__FWJgn"};
29294
+ var css_248z$1 = ".ChatMessageMap-module_mapContainer__OBOgP{aspect-ratio:1/1;background:rgba(15,23,36,.94);border:1px solid hsla(0,0%,100%,.12);border-radius:16px;box-shadow:0 14px 50px rgba(2,6,23,.45);margin:16px 0;overflow:hidden;position:relative;width:100%}.ChatMessageMap-module_mapSurface__E713z{border-radius:inherit;height:100%;width:100%}.ChatMessageMap-module_poiMarkerIcon__LPNik{align-items:center;background:radial-gradient(circle at 30% 30%,#fdf7c1,#fb923c 60%,#ea580c);border-radius:50%;box-shadow:0 6px 18px rgba(249,115,22,.5),inset 0 0 10px rgba(251,191,36,.6);display:inline-flex;font-weight:600;height:38px;justify-content:center;position:relative;transform:translateZ(0);width:38px}.ChatMessageMap-module_poiMarkerPulse__5flBS{animation:ChatMessageMap-module_poiPulse__O5mLt 1.6s ease-out infinite;background:rgba(251,146,60,.35);border-radius:50%;filter:blur(.5px);inset:0;position:absolute}.ChatMessageMap-module_poiMarkerInitial__HfA6H{color:#0f172a;font-size:12px;letter-spacing:.05em;line-height:1;text-transform:uppercase;z-index:1}.ChatMessageMap-module_mapTooltip__p4sIO{background:rgba(15,23,42,.95)!important;border:1px solid rgba(56,189,248,.45)!important;border-radius:999px!important;box-shadow:0 10px 25px rgba(2,6,23,.6)!important;color:#f8fafc!important;font-size:.75rem;padding:4px 12px!important;pointer-events:none}@keyframes ChatMessageMap-module_poiPulse__O5mLt{0%{opacity:.6;transform:scale(.6)}70%{opacity:0;transform:scale(1.2)}to{opacity:0}}.ChatMessageMap-module_mapControls__2VZT6{display:flex;gap:8px;position:absolute;right:10px;top:10px;z-index:2}.ChatMessageMap-module_mapControlButton__q5pgF{align-items:center;background:rgba(2,6,23,.75);border:none;border-radius:12px;box-shadow:0 6px 18px rgba(2,6,23,.45);color:#f8fafc;cursor:pointer;display:inline-flex;height:38px;justify-content:center;transition:background .2s ease,transform .2s ease;width:38px}.ChatMessageMap-module_mapControlButton__q5pgF:hover{background:rgba(59,130,246,.9);transform:translateY(-1px)}.ChatMessageMap-module_mapControlButton__q5pgF:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.ChatMessageMap-module_mapModalBackdrop__uC0ud{align-items:center;background:rgba(2,6,23,.85);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1100}.ChatMessageMap-module_mapModalContent__XaQyP{background:rgba(15,23,42,.98);border:1px solid hsla(0,0%,100%,.08);border-radius:24px;box-shadow:0 30px 70px rgba(2,6,23,.75);display:flex;flex-direction:column;gap:16px;max-height:min(90vh,720px);padding:20px 24px 24px;width:min(92vw,960px)}.ChatMessageMap-module_mapModalHeader__RRj5V{display:flex;justify-content:flex-end}.ChatMessageMap-module_mapModalCloseButton__vUs1S{align-items:center;background:hsla(0,0%,100%,.12);border:none;border-radius:12px;color:#f8fafc;cursor:pointer;display:inline-flex;height:38px;justify-content:center;transition:background .2s ease;width:38px}.ChatMessageMap-module_mapModalCloseButton__vUs1S:hover{background:hsla(0,0%,100%,.24)}.ChatMessageMap-module_mapModalCloseButton__vUs1S:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.ChatMessageMap-module_mapModalBody__T4vO-{display:flex;flex:1;min-height:320px}.ChatMessageMap-module_mapModalSurface__FWJgn{border-radius:16px;flex:1;height:100%;width:100%}@media (max-width:640px){.ChatMessageMap-module_mapContainer__OBOgP{border-radius:12px;margin:12px 0}.ChatMessageMap-module_mapControlButton__q5pgF{height:34px;width:34px}.ChatMessageMap-module_mapModalContent__XaQyP{border-radius:18px;max-height:90vh;padding:16px;width:100%}.ChatMessageMap-module_mapModalBody__T4vO-{min-height:260px}.ChatMessageMap-module_mapModalSurface__FWJgn{border-radius:12px}}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNoYXRNZXNzYWdlTWFwLm1vZHVsZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBTUksZ0JBQW1CLENBRm5CLDZCQUFrQyxDQURsQyxvQ0FBMkMsQ0FEM0Msa0JBQW1CLENBTW5CLHVDQUE0QyxDQUQ1QyxhQUFjLENBRmQsZUFBZ0IsQ0FJaEIsaUJBQWtCLENBUmxCLFVBU0osQ0FFQSx5Q0FHSSxxQkFBc0IsQ0FEdEIsV0FBWSxDQURaLFVBR0osQ0FFQSw0Q0FPSSxrQkFBbUIsQ0FIbkIseUVBQTZFLENBRDdFLGlCQUFrQixDQUVsQiw0RUFBc0YsQ0FDdEYsbUJBQW9CLENBSXBCLGVBQWdCLENBUmhCLFdBQVksQ0FNWixzQkFBdUIsQ0FDdkIsaUJBQWtCLENBRWxCLHVCQUErQixDQVYvQixVQVdKLENBRUEsNkNBS0ksc0VBQTBDLENBRDFDLCtCQUFvQyxDQURwQyxpQkFBa0IsQ0FHbEIsaUJBQW1CLENBSm5CLE9BQVEsQ0FEUixpQkFNSixDQUVBLCtDQUVJLGFBQWMsQ0FDZCxjQUFlLENBR2Ysb0JBQXNCLENBRnRCLGFBQWMsQ0FDZCx3QkFBeUIsQ0FKekIsU0FNSixDQUVBLHlDQUNJLHVDQUE2QyxDQUM3QywrQ0FBcUQsQ0FFckQsNkJBQStCLENBRy9CLGdEQUFzRCxDQUp0RCx1QkFBeUIsQ0FHekIsZ0JBQWtCLENBRGxCLDBCQUE0QixDQUc1QixtQkFDSixDQUVBLGlEQUNJLEdBRUksVUFBWSxDQURaLG1CQUVKLENBQ0EsSUFFSSxTQUFVLENBRFYsb0JBRUosQ0FDQSxHQUNJLFNBQ0osQ0FDSixDQUVBLDBDQUlJLFlBQWEsQ0FDYixPQUFRLENBSlIsaUJBQWtCLENBRWxCLFVBQVcsQ0FEWCxRQUFTLENBSVQsU0FDSixDQUVBLCtDQVFJLGtCQUFtQixDQUhuQiwyQkFBZ0MsQ0FEaEMsV0FBWSxDQURaLGtCQUFtQixDQVFuQixzQ0FBMkMsQ0FMM0MsYUFBYyxDQUlkLGNBQWUsQ0FIZixtQkFBb0IsQ0FMcEIsV0FBWSxDQU9aLHNCQUF1QixDQUd2QixpREFBcUQsQ0FYckQsVUFZSixDQUVBLHFEQUNJLDhCQUFtQyxDQUNuQywwQkFDSixDQUVBLDZEQUNJLHlCQUEwQixDQUMxQixrQkFDSixDQUVBLCtDQU1JLGtCQUFtQixDQUhuQiwyQkFBZ0MsQ0FFaEMsWUFBYSxDQUhiLE9BQVEsQ0FLUixzQkFBdUIsQ0FDdkIsWUFBYSxDQVBiLGNBQWUsQ0FHZixZQUtKLENBRUEsOENBQ0ksNkJBQWtDLENBU2xDLG9DQUEyQyxDQVIzQyxrQkFBbUIsQ0FHbkIsdUNBQTRDLENBQzVDLFlBQWEsQ0FDYixxQkFBc0IsQ0FDdEIsUUFBUyxDQUpULDBCQUE0QixDQUs1QixzQkFBdUIsQ0FOdkIscUJBUUosQ0FFQSw2Q0FDSSxZQUFhLENBQ2Isd0JBQ0osQ0FFQSxrREFRSSxrQkFBbUIsQ0FIbkIsOEJBQXFDLENBRHJDLFdBQVksQ0FEWixrQkFBbUIsQ0FHbkIsYUFBYyxDQUlkLGNBQWUsQ0FIZixtQkFBb0IsQ0FMcEIsV0FBWSxDQU9aLHNCQUF1QixDQUV2Qiw4QkFBZ0MsQ0FWaEMsVUFXSixDQUVBLHdEQUNJLDhCQUNKLENBRUEsZ0VBQ0kseUJBQTBCLENBQzFCLGtCQUNKLENBRUEsMkNBR0ksWUFBYSxDQUZiLE1BQU8sQ0FDUCxnQkFFSixDQUVBLDhDQUVJLGtCQUFtQixDQURuQixNQUFPLENBR1AsV0FBWSxDQURaLFVBRUosQ0FFQSx5QkFDSSwyQ0FDSSxrQkFBbUIsQ0FDbkIsYUFDSixDQUVBLCtDQUVJLFdBQVksQ0FEWixVQUVKLENBRUEsOENBSUksa0JBQW1CLENBRm5CLGVBQWdCLENBQ2hCLFlBQWEsQ0FGYixVQUlKLENBRUEsMkNBQ0ksZ0JBQ0osQ0FFQSw4Q0FDSSxrQkFDSixDQUNKIiwiZmlsZSI6IkNoYXRNZXNzYWdlTWFwLm1vZHVsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWFwQ29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDM2LCAwLjk0KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgbWFyZ2luOiAxNnB4IDA7XG4gICAgYm94LXNoYWRvdzogMCAxNHB4IDUwcHggcmdiYSgyLCA2LCAyMywgMC40NSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubWFwU3VyZmFjZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG59XG5cbi5wb2lNYXJrZXJJY29uIHtcbiAgICB3aWR0aDogMzhweDtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzAlIDMwJSwgI2ZkZjdjMSwgI2ZiOTIzYyA2MCUsICNlYTU4MGMpO1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDE4cHggcmdiYSgyNDksIDExNSwgMjIsIDAuNSksIGluc2V0IDAgMCAxMHB4IHJnYmEoMjUxLCAxOTEsIDM2LCAwLjYpO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLnBvaU1hcmtlclB1bHNlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjUxLCAxNDYsIDYwLCAwLjM1KTtcbiAgICBhbmltYXRpb246IHBvaVB1bHNlIDEuNnMgZWFzZS1vdXQgaW5maW5pdGU7XG4gICAgZmlsdGVyOiBibHVyKDAuNXB4KTtcbn1cblxuLnBvaU1hcmtlckluaXRpYWwge1xuICAgIHotaW5kZXg6IDE7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbn1cblxuLm1hcFRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC45NSkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU2LCAxODksIDI0OCwgMC40NSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2Y4ZmFmYyAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogNHB4IDEycHggIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDI1cHggcmdiYSgyLCA2LCAyMywgMC42KSAhaW1wb3J0YW50O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5Aa2V5ZnJhbWVzIHBvaVB1bHNlIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgIH1cbiAgICA3MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbn1cblxuLm1hcENvbnRyb2xzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMHB4O1xuICAgIHJpZ2h0OiAxMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA4cHg7XG4gICAgei1pbmRleDogMjtcbn1cblxuLm1hcENvbnRyb2xCdXR0b24ge1xuICAgIHdpZHRoOiAzOHB4O1xuICAgIGhlaWdodDogMzhweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIsIDYsIDIzLCAwLjc1KTtcbiAgICBjb2xvcjogI2Y4ZmFmYztcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3gtc2hhZG93OiAwIDZweCAxOHB4IHJnYmEoMiwgNiwgMjMsIDAuNDUpO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xufVxuXG4ubWFwQ29udHJvbEJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuOSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4ubWFwQ29udHJvbEJ1dHRvbjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgIzM4YmRmODtcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4ubWFwTW9kYWxCYWNrZHJvcCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMiwgNiwgMjMsIDAuODUpO1xuICAgIHotaW5kZXg6IDExMDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDIwcHg7XG59XG5cbi5tYXBNb2RhbENvbnRlbnQge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC45OCk7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICB3aWR0aDogbWluKDkydncsIDk2MHB4KTtcbiAgICBtYXgtaGVpZ2h0OiBtaW4oOTB2aCwgNzIwcHgpO1xuICAgIGJveC1zaGFkb3c6IDAgMzBweCA3MHB4IHJnYmEoMiwgNiwgMjMsIDAuNzUpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMjBweCAyNHB4IDI0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbn1cblxuLm1hcE1vZGFsSGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5tYXBNb2RhbENsb3NlQnV0dG9uIHtcbiAgICB3aWR0aDogMzhweDtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICBjb2xvcjogI2Y4ZmFmYztcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZTtcbn1cblxuLm1hcE1vZGFsQ2xvc2VCdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNCk7XG59XG5cbi5tYXBNb2RhbENsb3NlQnV0dG9uOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAjMzhiZGY4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi5tYXBNb2RhbEJvZHkge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLWhlaWdodDogMzIwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLm1hcE1vZGFsU3VyZmFjZSB7XG4gICAgZmxleDogMTtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgLm1hcENvbnRhaW5lciB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIG1hcmdpbjogMTJweCAwO1xuICAgIH1cblxuICAgIC5tYXBDb250cm9sQnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICAgIGhlaWdodDogMzRweDtcbiAgICB9XG5cbiAgICAubWFwTW9kYWxDb250ZW50IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gICAgfVxuXG4gICAgLm1hcE1vZGFsQm9keSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI2MHB4O1xuICAgIH1cblxuICAgIC5tYXBNb2RhbFN1cmZhY2Uge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIH1cbn1cbiJdfQ== */";
29295
+ var styles$1 = {"mapContainer":"ChatMessageMap-module_mapContainer__OBOgP","mapSurface":"ChatMessageMap-module_mapSurface__E713z","poiMarkerIcon":"ChatMessageMap-module_poiMarkerIcon__LPNik","poiMarkerPulse":"ChatMessageMap-module_poiMarkerPulse__5flBS","poiPulse":"ChatMessageMap-module_poiPulse__O5mLt","poiMarkerInitial":"ChatMessageMap-module_poiMarkerInitial__HfA6H","mapTooltip":"ChatMessageMap-module_mapTooltip__p4sIO","mapControls":"ChatMessageMap-module_mapControls__2VZT6","mapControlButton":"ChatMessageMap-module_mapControlButton__q5pgF","mapModalBackdrop":"ChatMessageMap-module_mapModalBackdrop__uC0ud","mapModalContent":"ChatMessageMap-module_mapModalContent__XaQyP","mapModalHeader":"ChatMessageMap-module_mapModalHeader__RRj5V","mapModalCloseButton":"ChatMessageMap-module_mapModalCloseButton__vUs1S","mapModalBody":"ChatMessageMap-module_mapModalBody__T4vO-","mapModalSurface":"ChatMessageMap-module_mapModalSurface__FWJgn"};
28714
29296
  styleInject(css_248z$1);
28715
29297
 
28716
29298
  /**
@@ -28719,6 +29301,206 @@
28719
29301
  * @private internal helper of `<ChatMessageItem/>`
28720
29302
  */
28721
29303
  const DEFAULT_LAYER_ID = 'chat-message-map-layer';
29304
+ /**
29305
+ * Style tokens used to make GeoJSON paths and polygons feel more modern.
29306
+ *
29307
+ * @private internal helper of `<ChatMessageMap/>`
29308
+ */
29309
+ const GEOJSON_STYLE_PRESETS = {
29310
+ polygon: {
29311
+ color: '#38bdf8',
29312
+ weight: 2,
29313
+ opacity: 0.95,
29314
+ fillColor: 'rgba(59, 130, 246, 0.28)',
29315
+ fillOpacity: 0.35,
29316
+ dashArray: '6 8',
29317
+ lineCap: 'round',
29318
+ lineJoin: 'round',
29319
+ },
29320
+ line: {
29321
+ color: '#67e8f9',
29322
+ weight: 3,
29323
+ opacity: 0.92,
29324
+ dashArray: '5 7',
29325
+ lineCap: 'round',
29326
+ lineJoin: 'round',
29327
+ },
29328
+ highlight: {
29329
+ color: '#7dd3fc',
29330
+ weight: 4,
29331
+ fillOpacity: 0.55,
29332
+ },
29333
+ default: {
29334
+ color: '#6ee7b7',
29335
+ weight: 2.5,
29336
+ opacity: 0.9,
29337
+ dashArray: '4 6',
29338
+ lineCap: 'round',
29339
+ lineJoin: 'round',
29340
+ },
29341
+ };
29342
+ /**
29343
+ * Dimensions and anchor offsets for the custom point-of-interest markers.
29344
+ *
29345
+ * @private internal helper of `<ChatMessageMap/>`
29346
+ */
29347
+ const POI_MARKER_CONFIG = {
29348
+ size: 38,
29349
+ anchor: [19, 19],
29350
+ };
29351
+ /**
29352
+ * Offset used for map tooltips so labels sit above the features.
29353
+ *
29354
+ * @private internal helper of `<ChatMessageMap/>`
29355
+ */
29356
+ const MAP_TOOLTIP_OFFSET = [0, -20];
29357
+ /**
29358
+ * Returns the preferred label for a GeoJSON feature by checking common property keys.
29359
+ *
29360
+ * @param feature - Feature to inspect for identifying properties.
29361
+ * @returns A trimmed string label or `null` when no candidate is available.
29362
+ *
29363
+ * @private internal helper of `<ChatMessageMap/>`
29364
+ */
29365
+ function getGeoJsonFeatureLabel(feature) {
29366
+ const properties = feature.properties;
29367
+ if (properties && typeof properties === 'object') {
29368
+ const bag = properties;
29369
+ for (const key of ['name', 'title', 'label', 'description']) {
29370
+ const value = bag[key];
29371
+ if (typeof value === 'string' && value.trim().length > 0) {
29372
+ return value.trim();
29373
+ }
29374
+ }
29375
+ }
29376
+ if (typeof feature.id === 'string' && feature.id.trim().length > 0) {
29377
+ return feature.id.trim();
29378
+ }
29379
+ if (typeof feature.id === 'number') {
29380
+ return feature.id.toString();
29381
+ }
29382
+ return null;
29383
+ }
29384
+ /**
29385
+ * Provides a base style object for GeoJSON paths so polygons, lines, and fallbacks get distinct strokes.
29386
+ *
29387
+ * @param feature - Feature driving the style calculation.
29388
+ * @returns A fresh `PathOptions` instance describing stroke/fill tokens.
29389
+ *
29390
+ * @private internal helper of `<ChatMessageMap/>`
29391
+ */
29392
+ function getGeoJsonFeatureStyle(feature) {
29393
+ var _a;
29394
+ const geometryType = (_a = feature === null || feature === void 0 ? void 0 : feature.geometry) === null || _a === void 0 ? void 0 : _a.type;
29395
+ if (geometryType === 'Polygon' || geometryType === 'MultiPolygon') {
29396
+ return { ...GEOJSON_STYLE_PRESETS.polygon };
29397
+ }
29398
+ if (geometryType === 'LineString' || geometryType === 'MultiLineString') {
29399
+ return { ...GEOJSON_STYLE_PRESETS.line };
29400
+ }
29401
+ return { ...GEOJSON_STYLE_PRESETS.default };
29402
+ }
29403
+ /**
29404
+ * Builds a highlighted style variant for hover states while respecting the base tokens.
29405
+ *
29406
+ * @param baseStyle - Style to ramp up for the hover effect.
29407
+ * @returns A new `PathOptions` instance with stronger stroke/fill emphasis.
29408
+ *
29409
+ * @private internal helper of `<ChatMessageMap/>`
29410
+ */
29411
+ function getGeoJsonHighlightStyle(baseStyle) {
29412
+ var _a, _b, _c;
29413
+ return {
29414
+ ...baseStyle,
29415
+ color: (_a = GEOJSON_STYLE_PRESETS.highlight.color) !== null && _a !== void 0 ? _a : baseStyle.color,
29416
+ weight: Math.max((_b = baseStyle.weight) !== null && _b !== void 0 ? _b : 2, 1) * 1.3,
29417
+ fillOpacity: Math.min(0.6, ((_c = baseStyle.fillOpacity) !== null && _c !== void 0 ? _c : 0.2) + 0.25),
29418
+ };
29419
+ }
29420
+ /**
29421
+ * Guards Leaflet layers that support `setStyle`.
29422
+ *
29423
+ * @param layer - Candidate Leaflet layer to check.
29424
+ * @returns `true` when the supplied layer exposes `Path` styling helpers.
29425
+ *
29426
+ * @private internal helper of `<ChatMessageMap/>`
29427
+ */
29428
+ function isLeafletPathLayer(layer) {
29429
+ return typeof layer.setStyle === 'function';
29430
+ }
29431
+ /**
29432
+ * Attaches tooltips, hover highlights, and accessibility helpers to GeoJSON layers.
29433
+ *
29434
+ * @param feature - Feature backing the Leaflet layer.
29435
+ * @param layer - Leaflet layer created for the feature.
29436
+ *
29437
+ * @private internal helper of `<ChatMessageMap/>`
29438
+ */
29439
+ function decorateGeoJsonLayer(feature, layer) {
29440
+ const label = getGeoJsonFeatureLabel(feature);
29441
+ if (label) {
29442
+ layer.bindTooltip(label, {
29443
+ direction: 'top',
29444
+ offset: MAP_TOOLTIP_OFFSET,
29445
+ className: styles$1.mapTooltip,
29446
+ });
29447
+ }
29448
+ if (!isLeafletPathLayer(layer)) {
29449
+ return;
29450
+ }
29451
+ const baseStyle = getGeoJsonFeatureStyle(feature);
29452
+ layer.on('mouseover', () => {
29453
+ layer.setStyle(getGeoJsonHighlightStyle(baseStyle));
29454
+ });
29455
+ layer.on('mouseout', () => {
29456
+ layer.setStyle(baseStyle);
29457
+ });
29458
+ }
29459
+ /**
29460
+ * Renders a custom point-of-interest marker for point features.
29461
+ *
29462
+ * @param feature - Feature describing the point.
29463
+ * @param latlng - Coordinates where the marker should appear.
29464
+ * @returns Leaflet marker with layered glow and optional initial text.
29465
+ *
29466
+ * @private internal helper of `<ChatMessageMap/>`
29467
+ */
29468
+ function createPointOfInterestMarker(feature, latlng) {
29469
+ const label = getGeoJsonFeatureLabel(feature);
29470
+ const initial = label ? label.trim().charAt(0).toLocaleUpperCase() : '';
29471
+ const initialHtml = initial
29472
+ ? `<span class="${styles$1.poiMarkerInitial}" aria-hidden="true">${escapeHtml(initial)}</span>`
29473
+ : '';
29474
+ const icon = L__default["default"].divIcon({
29475
+ className: styles$1.poiMarkerIcon,
29476
+ html: `
29477
+ <span class="${styles$1.poiMarkerPulse}" aria-hidden="true"></span>
29478
+ ${initialHtml}
29479
+ `.trim(),
29480
+ iconSize: [POI_MARKER_CONFIG.size, POI_MARKER_CONFIG.size],
29481
+ iconAnchor: POI_MARKER_CONFIG.anchor,
29482
+ });
29483
+ return L__default["default"].marker(latlng, {
29484
+ icon,
29485
+ riseOnHover: true,
29486
+ });
29487
+ }
29488
+ /**
29489
+ * Escapes HTML-sensitive characters to keep raw GeoJSON properties safe when injected into markup.
29490
+ *
29491
+ * @param value - Source string to escape.
29492
+ * @returns Escaped string safe for insertion into HTML fragments.
29493
+ *
29494
+ * @private internal helper of `<ChatMessageMap/>`
29495
+ */
29496
+ function escapeHtml(value) {
29497
+ return value
29498
+ .replace(/&/g, '&amp;')
29499
+ .replace(/</g, '&lt;')
29500
+ .replace(/>/g, '&gt;')
29501
+ .replace(/"/g, '&quot;')
29502
+ .replace(/'/g, '&#39;');
29503
+ }
28722
29504
  /**
28723
29505
  * Custom hook that renders a Leaflet map inside the provided container and keeps it synced with the geojson payload.
28724
29506
  *
@@ -28754,17 +29536,9 @@
28754
29536
  });
28755
29537
  layer.addTo(map);
28756
29538
  const geoJsonLayer = L__default["default"].geoJSON(data, {
28757
- style: () => ({
28758
- color: '#6EE7B7',
28759
- weight: 3,
28760
- }),
28761
- pointToLayer: (_feature, latlng) => L__default["default"].circleMarker(latlng, {
28762
- radius: 6,
28763
- fillColor: '#f59e0b',
28764
- color: '#fbbf24',
28765
- weight: 2,
28766
- fillOpacity: 0.9,
28767
- }),
29539
+ style: getGeoJsonFeatureStyle,
29540
+ pointToLayer: (feature, latlng) => createPointOfInterestMarker(feature, latlng),
29541
+ onEachFeature: (feature, layer) => decorateGeoJsonLayer(feature, layer),
28768
29542
  });
28769
29543
  geoJsonLayer.addTo(map);
28770
29544
  const bounds = geoJsonLayer.getBounds();
@@ -29126,11 +29900,10 @@
29126
29900
  * Builds the label for an ongoing tool call group.
29127
29901
  */
29128
29902
  function buildOngoingToolCallLabel(group) {
29129
- const baseLabel = group.displayTitle || `Executing ${group.toolCall.name}`;
29130
- return appendOngoingToolCallCount(baseLabel, group.count);
29903
+ return appendOngoingToolCallCount(group.label, group.count);
29131
29904
  }
29132
29905
  /**
29133
- * Extracts the assistant preparation phase for grouping, when present.
29906
+ * Extracts the assistant preparation phase from one tool call, when present.
29134
29907
  */
29135
29908
  function getOngoingToolCallPreparationPhase(toolCall) {
29136
29909
  if (!isAssistantPreparationToolCall(toolCall)) {
@@ -29139,6 +29912,21 @@
29139
29912
  const toolArguments = parseToolCallArguments(toolCall);
29140
29913
  return typeof toolArguments.phase === 'string' ? toolArguments.phase : undefined;
29141
29914
  }
29915
+ /**
29916
+ * Resolves shared chip text for one tool call.
29917
+ *
29918
+ * This helper is intentionally reused for both ongoing and completed tool-call chips.
29919
+ */
29920
+ function resolveToolCallChipLabel(toolCall, options = {}) {
29921
+ const { chipletInfo } = options;
29922
+ const preparationPhase = getOngoingToolCallPreparationPhase(toolCall);
29923
+ if (preparationPhase) {
29924
+ const toolInfo = TOOL_TITLES[toolCall.name];
29925
+ const preparationTitle = (toolInfo === null || toolInfo === void 0 ? void 0 : toolInfo.title) || toolCall.name;
29926
+ return `${preparationTitle}: ${preparationPhase}`;
29927
+ }
29928
+ return buildToolCallChipText(chipletInfo || getToolCallChipletInfo(toolCall));
29929
+ }
29142
29930
  /**
29143
29931
  * Builds a stable participant identity for ongoing tool call grouping.
29144
29932
  */
@@ -29173,15 +29961,17 @@
29173
29961
  /**
29174
29962
  * Groups ongoing tool calls by tool identity to avoid duplicate chips.
29175
29963
  */
29176
- function groupOngoingToolCalls(toolCalls, toolTitles, teammates) {
29964
+ function groupOngoingToolCalls(toolCalls, teammates) {
29177
29965
  if (!toolCalls || toolCalls.length === 0) {
29178
29966
  return [];
29179
29967
  }
29180
29968
  const grouped = new Map();
29181
29969
  const ordered = [];
29182
29970
  for (const toolCall of toolCalls) {
29971
+ const chipletInfo = getToolCallChipletInfo(toolCall);
29972
+ const label = resolveToolCallChipLabel(toolCall, { chipletInfo });
29183
29973
  const preparationPhase = getOngoingToolCallPreparationPhase(toolCall);
29184
- const teamAgentData = resolveTeamAgentChipData(toolCall, teammates);
29974
+ const teamAgentData = resolveTeamAgentChipData(toolCall, teammates, chipletInfo);
29185
29975
  const participantKey = getOngoingToolCallParticipantKey(teamAgentData);
29186
29976
  const groupKey = getOngoingToolCallGroupKey(toolCall, {
29187
29977
  preparationPhase,
@@ -29192,17 +29982,11 @@
29192
29982
  existing.count += 1;
29193
29983
  continue;
29194
29984
  }
29195
- const toolInfo = TOOL_TITLES[toolCall.name];
29196
- const isTeamTool = isTeamToolName(toolCall.name);
29197
- const toolTitle = (toolTitles === null || toolTitles === void 0 ? void 0 : toolTitles[toolCall.name]) || (toolInfo === null || toolInfo === void 0 ? void 0 : toolInfo.title) || (isTeamTool ? 'Consulting teammate' : undefined);
29198
- const displayTitle = preparationPhase ? `${toolTitle || toolCall.name}: ${preparationPhase}` : toolTitle;
29199
- const emoji = isTeamTool ? '??' : (toolInfo === null || toolInfo === void 0 ? void 0 : toolInfo.emoji) || '???';
29200
29985
  const group = {
29201
29986
  key: groupKey,
29202
29987
  toolCall,
29203
29988
  count: 1,
29204
- displayTitle,
29205
- emoji,
29989
+ label,
29206
29990
  teamAgentData,
29207
29991
  };
29208
29992
  grouped.set(groupKey, group);
@@ -29220,7 +30004,7 @@
29220
30004
  // Or make normal function from this?
29221
30005
  (props) => {
29222
30006
  var _a, _b;
29223
- const { message, participant, participants, isLastMessage, onMessage, setExpandedMessageId, isExpanded, currentRating, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, onCreateAgent, toolTitles, teammates, onToolCallClick, onCitationClick, soundSystem, } = props;
30007
+ const { message, participant, participants, isLastMessage, onMessage, setExpandedMessageId, isExpanded, currentRating, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, onCreateAgent, teammates, onToolCallClick, onCitationClick, soundSystem, isSpeechPlaybackEnabled, } = props;
29224
30008
  const { isComplete = true,
29225
30009
  // <- TODO: Destruct all `messages` properties like `isComplete`
29226
30010
  } = message;
@@ -29322,15 +30106,16 @@
29322
30106
  const [isAudioLoading, setIsAudioLoading] = react.useState(false);
29323
30107
  const [isAudioPlaying, setIsAudioPlaying] = react.useState(false);
29324
30108
  const [audioError, setAudioError] = react.useState(null);
29325
- const ongoingToolCallGroups = react.useMemo(() => groupOngoingToolCalls(message.ongoingToolCalls, toolTitles, teammates), [message.ongoingToolCalls, toolTitles, teammates]);
30109
+ const ongoingToolCallGroups = react.useMemo(() => groupOngoingToolCalls(message.ongoingToolCalls, teammates), [message.ongoingToolCalls, teammates]);
29326
30110
  const completedToolCallCount = (_b = completedToolCalls === null || completedToolCalls === void 0 ? void 0 : completedToolCalls.length) !== null && _b !== void 0 ? _b : 0;
29327
30111
  const transitiveToolCallCount = transitiveToolCalls.length;
29328
30112
  const ongoingToolCallCount = ongoingToolCallGroups.length;
29329
30113
  const toolCallChipCount = completedToolCallCount + transitiveToolCallCount + ongoingToolCallCount;
29330
30114
  const shouldShowButtons = isLastMessage && buttons.length > 0 && onMessage;
29331
- const playButtonTitle = audioError !== null && audioError !== void 0 ? audioError : (isAudioPlaying ? 'Pause message playback' : 'Read message aloud');
29332
30115
  const trimmedMessageContent = message.content.trim();
29333
- const shouldShowPlayButton = trimmedMessageContent.length > 0;
30116
+ const speechPlaybackEnabled = isSpeechPlaybackEnabled !== null && isSpeechPlaybackEnabled !== void 0 ? isSpeechPlaybackEnabled : true;
30117
+ const shouldShowPlayButton = speechPlaybackEnabled && trimmedMessageContent.length > 0;
30118
+ const playButtonTitle = audioError !== null && audioError !== void 0 ? audioError : (isAudioPlaying ? 'Pause message playback' : 'Read message aloud');
29334
30119
  /**
29335
30120
  * Attaches playback listeners to keep the UI in sync with the audio element.
29336
30121
  *
@@ -29556,7 +30341,7 @@
29556
30341
  return null;
29557
30342
  }) })), message.attachments && message.attachments.length > 0 && (jsxRuntime.jsx("div", { className: styles$5.attachments, children: message.attachments.map((attachment, index) => (jsxRuntime.jsxs("a", { href: attachment.url, target: "_blank", rel: "noopener noreferrer", className: styles$5.attachment, title: attachment.name, children: [jsxRuntime.jsx("span", { className: styles$5.attachmentIcon, children: "\uD83D\uDCCE" }), jsxRuntime.jsx("span", { className: styles$5.attachmentName, children: attachment.name })] }, index))) })), completedToolCalls && completedToolCalls.length > 0 && (jsxRuntime.jsxs("div", { className: styles$5.completedToolCalls, children: [completedToolCalls.map((toolCall, index) => {
29558
30343
  const chipletInfo = getToolCallChipletInfo(toolCall);
29559
- const chipletText = buildToolCallChipText(chipletInfo);
30344
+ const chipletText = resolveToolCallChipLabel(toolCall, { chipletInfo });
29560
30345
  const teamAgentData = resolveTeamAgentChipData(toolCall, teammates, chipletInfo);
29561
30346
  // If this is a team tool with agent data, use AgentChip
29562
30347
  if (teamAgentData) {
@@ -29577,7 +30362,9 @@
29577
30362
  }, children: chipletText }, index));
29578
30363
  }), transitiveToolCalls.map((toolCallEntry, index) => {
29579
30364
  const chipletInfo = getToolCallChipletInfo(toolCallEntry.toolCall);
29580
- const chipletText = buildToolCallChipText(chipletInfo);
30365
+ const chipletText = resolveToolCallChipLabel(toolCallEntry.toolCall, {
30366
+ chipletInfo,
30367
+ });
29581
30368
  return (jsxRuntime.jsxs("button", { className: styles$5.completedToolCall, onClick: (event) => {
29582
30369
  event.stopPropagation();
29583
30370
  if (onToolCallClick) {
@@ -29590,7 +30377,7 @@
29590
30377
  return (jsxRuntime.jsx(AgentChip, { agent: group.teamAgentData, isOngoing: true, labelSuffix: labelSuffix }, group.key));
29591
30378
  }
29592
30379
  const label = buildOngoingToolCallLabel(group);
29593
- return (jsxRuntime.jsxs("div", { className: styles$5.ongoingToolCall, children: [jsxRuntime.jsx("div", { className: styles$5.ongoingToolCallSpinner }), jsxRuntime.jsx("span", { className: styles$5.ongoingToolCallName, children: `${group.emoji} ${label}...` })] }, group.key));
30380
+ return (jsxRuntime.jsxs("div", { className: styles$5.ongoingToolCall, children: [jsxRuntime.jsx("div", { className: styles$5.ongoingToolCallSpinner }), jsxRuntime.jsx("span", { className: styles$5.ongoingToolCallName, children: `${label}...` })] }, group.key));
29594
30381
  }) })), shouldShowButtons && (jsxRuntime.jsx("div", { className: styles$5.messageButtons, children: buttons.map((button, buttonIndex) => (jsxRuntime.jsx("button", { className: styles$5.messageButton, onClick: (event) => {
29595
30382
  event.stopPropagation();
29596
30383
  if (onMessage) {
@@ -29687,7 +30474,7 @@
29687
30474
  * @private component of `<Chat/>`
29688
30475
  */
29689
30476
  function ChatMessageList(props) {
29690
- const { messages, participants, expandedMessageId, messageRatings, setExpandedMessageId, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, onMessage, onCreateAgent, toolTitles, teammates, onToolCallClick, onCitationClick, soundSystem, setChatMessagesElement, onScroll, chatMessagesClassName, hasActions, } = props;
30477
+ const { messages, participants, expandedMessageId, messageRatings, setExpandedMessageId, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, onMessage, onCreateAgent, toolTitles, teammates, onToolCallClick, onCitationClick, soundSystem, isSpeechPlaybackEnabled, setChatMessagesElement, onScroll, chatMessagesClassName, hasActions, } = props;
29691
30478
  const firstMessage = messages[0];
29692
30479
  const firstMsgContent = (firstMessage === null || firstMessage === void 0 ? void 0 : firstMessage.content) || '';
29693
30480
  const firstMsgLines = firstMsgContent.split(/\r?\n/).length;
@@ -29699,7 +30486,7 @@
29699
30486
  const isLastMessage = index === messages.length - 1;
29700
30487
  const isExpanded = expandedMessageId === message.id;
29701
30488
  const currentRating = messageRatings.get(message.id || message.content /* <-[??] */) || 0;
29702
- return (jsxRuntime.jsx(ChatMessageItem, { message: message, participant: participant, participants: participants, isLastMessage: isLastMessage, onMessage: onMessage, setExpandedMessageId: setExpandedMessageId, isExpanded: isExpanded, currentRating: currentRating, handleRating: handleRating, mode: mode, isCopyButtonEnabled: isCopyButtonEnabled, isFeedbackEnabled: isFeedbackEnabled, onCopy: onCopy, onCreateAgent: onCreateAgent, toolTitles: toolTitles, teammates: teammates, onToolCallClick: onToolCallClick, onCitationClick: onCitationClick, soundSystem: soundSystem }, message.id));
30489
+ return (jsxRuntime.jsx(ChatMessageItem, { message: message, participant: participant, participants: participants, isLastMessage: isLastMessage, onMessage: onMessage, setExpandedMessageId: setExpandedMessageId, isExpanded: isExpanded, currentRating: currentRating, handleRating: handleRating, mode: mode, isCopyButtonEnabled: isCopyButtonEnabled, isFeedbackEnabled: isFeedbackEnabled, onCopy: onCopy, onCreateAgent: onCreateAgent, toolTitles: toolTitles, teammates: teammates, onToolCallClick: onToolCallClick, onCitationClick: onCitationClick, soundSystem: soundSystem, isSpeechPlaybackEnabled: isSpeechPlaybackEnabled }, message.id));
29703
30490
  }), jsxRuntime.jsx("div", { style: { height: 100 } })] }));
29704
30491
  }
29705
30492
 
@@ -30903,7 +31690,7 @@
30903
31690
  * @public exported from `@promptbook/components`
30904
31691
  */
30905
31692
  function Chat(props) {
30906
- const { title = 'Chat', messages, onChange, onMessage, onReset, onFeedback, onFileUpload, speechRecognition, placeholderMessageContent, defaultMessage, children, className, style, isAiTextHumanizedAndPromptbookified = true, isVoiceCalling = false, isFocusedOnLoad, participants = [], extraActions, actionsContainer, saveFormats, isSaveButtonEnabled = true, isCopyButtonEnabled = true, buttonColor: buttonColorRaw, onUseTemplate, onCreateAgent, toolTitles, teammates, visual, effectConfigs, soundSystem, speechRecognitionLanguage, } = props;
31693
+ const { title = 'Chat', messages, onChange, onMessage, onReset, onFeedback, onFileUpload, speechRecognition, placeholderMessageContent, defaultMessage, children, className, style, isAiTextHumanizedAndPromptbookified = true, isVoiceCalling = false, isFocusedOnLoad, participants = [], extraActions, actionsContainer, saveFormats, isSaveButtonEnabled = true, isCopyButtonEnabled = true, buttonColor: buttonColorRaw, onUseTemplate, onCreateAgent, toolTitles, teammates, visual, effectConfigs, soundSystem, speechRecognitionLanguage, isSpeechPlaybackEnabled = true, } = props;
30907
31694
  const buttonColor = react.useMemo(() => Color.from(buttonColorRaw || '#0066cc'), [buttonColorRaw]);
30908
31695
  const agentParticipant = react.useMemo(() => participants.find((participant) => participant.name === 'AGENT'), [participants]);
30909
31696
  const postprocessedMessages = react.useMemo(() => {
@@ -31077,7 +31864,7 @@
31077
31864
  }, onCitationClick: (citation) => {
31078
31865
  setSelectedCitation(citation);
31079
31866
  setCitationModalOpen(true);
31080
- }, setChatMessagesElement: setChatMessagesElement, onScroll: handleChatScroll, chatMessagesClassName: useChatCssClassName('chatMessages'), hasActions: hasActions }), onMessage && (jsxRuntime.jsx(ChatInputArea, { onMessage: onMessage, onChange: onChange, onFileUpload: onFileUpload, speechRecognition: speechRecognition, speechRecognitionLanguage: speechRecognitionLanguage, defaultMessage: defaultMessage, placeholderMessageContent: placeholderMessageContent, isFocusedOnLoad: isFocusedOnLoad, isMobile: isMobileFromHook, isVoiceCalling: isVoiceCalling, participants: participants, buttonColor: buttonColor, soundSystem: soundSystem, onButtonClick: handleButtonClick, chatInputClassName: useChatCssClassName('chatInput') }))] }) }), jsxRuntime.jsx(ChatToolCallModal, { isOpen: toolCallModalOpen, toolCall: selectedToolCall, onClose: () => setToolCallModalOpen(false), toolTitles: toolTitles, agentParticipant: agentParticipant, buttonColor: buttonColor }), jsxRuntime.jsx(ChatCitationModal, { isOpen: citationModalOpen, citation: selectedCitation, participants: participants, soundSystem: soundSystem, onClose: () => setCitationModalOpen(false) }), jsxRuntime.jsx(ChatRatingModal, { isOpen: ratingModalOpen, selectedMessage: selectedMessage, postprocessedMessages: postprocessedMessages, messages: messages, hoveredRating: hoveredRating, messageRatings: messageRatings, textRating: textRating, mode: mode, isMobile: isMobileFromHook, onClose: () => setRatingModalOpen(false), setHoveredRating: setHoveredRating, setMessageRatings: setMessageRatings, setSelectedMessage: setSelectedMessage, setTextRating: setTextRating, submitRating: submitRating })] }));
31867
+ }, setChatMessagesElement: setChatMessagesElement, onScroll: handleChatScroll, isSpeechPlaybackEnabled: isSpeechPlaybackEnabled, chatMessagesClassName: useChatCssClassName('chatMessages'), hasActions: hasActions }), onMessage && (jsxRuntime.jsx(ChatInputArea, { onMessage: onMessage, onChange: onChange, onFileUpload: onFileUpload, speechRecognition: speechRecognition, speechRecognitionLanguage: speechRecognitionLanguage, defaultMessage: defaultMessage, placeholderMessageContent: placeholderMessageContent, isFocusedOnLoad: isFocusedOnLoad, isMobile: isMobileFromHook, isVoiceCalling: isVoiceCalling, participants: participants, buttonColor: buttonColor, soundSystem: soundSystem, onButtonClick: handleButtonClick, chatInputClassName: useChatCssClassName('chatInput') }))] }) }), jsxRuntime.jsx(ChatToolCallModal, { isOpen: toolCallModalOpen, toolCall: selectedToolCall, onClose: () => setToolCallModalOpen(false), toolTitles: toolTitles, agentParticipant: agentParticipant, buttonColor: buttonColor }), jsxRuntime.jsx(ChatCitationModal, { isOpen: citationModalOpen, citation: selectedCitation, participants: participants, soundSystem: soundSystem, onClose: () => setCitationModalOpen(false) }), jsxRuntime.jsx(ChatRatingModal, { isOpen: ratingModalOpen, selectedMessage: selectedMessage, postprocessedMessages: postprocessedMessages, messages: messages, hoveredRating: hoveredRating, messageRatings: messageRatings, textRating: textRating, mode: mode, isMobile: isMobileFromHook, onClose: () => setRatingModalOpen(false), setHoveredRating: setHoveredRating, setMessageRatings: setMessageRatings, setSelectedMessage: setSelectedMessage, setTextRating: setTextRating, submitRating: submitRating })] }));
31081
31868
  }
31082
31869
 
31083
31870
  /**
@@ -31225,6 +32012,23 @@
31225
32012
  }
31226
32013
  return candidates[Math.floor(Math.random() * candidates.length)];
31227
32014
  }
32015
+ /**
32016
+ * Converts unknown prompt parameter values to string values required by prompt templates.
32017
+ */
32018
+ function normalizePromptParameters(parameters) {
32019
+ const normalizedEntries = [];
32020
+ for (const [key, value] of Object.entries(parameters)) {
32021
+ if (value === undefined || value === null) {
32022
+ continue;
32023
+ }
32024
+ if (typeof value === 'string') {
32025
+ normalizedEntries.push([key, value]);
32026
+ continue;
32027
+ }
32028
+ normalizedEntries.push([key, JSON.stringify(value)]);
32029
+ }
32030
+ return Object.fromEntries(normalizedEntries);
32031
+ }
31228
32032
  /**
31229
32033
  * LlmChat component that provides chat functionality with LLM integration
31230
32034
  *
@@ -31238,7 +32042,8 @@
31238
32042
  * @public exported from `@promptbook/components`
31239
32043
  */
31240
32044
  function LlmChat(props) {
31241
- const { llmTools, persistenceKey, onChange, onReset, onError, initialMessages, sendMessage, userParticipantName = 'USER', llmParticipantName = 'ASSISTANT', autoExecuteMessage, buttonColor, toolTitles, thinkingMessages, chatFailMessage, ...restProps } = props;
32045
+ const { llmTools, persistenceKey, onChange, onReset, onError, initialMessages, sendMessage, userParticipantName = 'USER', llmParticipantName = 'ASSISTANT', autoExecuteMessage, buttonColor, toolTitles, thinkingMessages, promptParameters, chatFailMessage, resetMode = 'reset-current', ...restProps } = props;
32046
+ const resolvedPromptParameters = react.useMemo(() => normalizePromptParameters(promptParameters !== null && promptParameters !== void 0 ? promptParameters : {}), [promptParameters]);
31242
32047
  const resolvedChatFailMessage = chatFailMessage || DEFAULT_CHAT_FAIL_MESSAGE;
31243
32048
  // Internal state management
31244
32049
  // DRY: Single factory for seeding initial messages (used on mount and after reset)
@@ -31414,7 +32219,7 @@
31414
32219
  const prompt = {
31415
32220
  title: 'User Message',
31416
32221
  content: messageContent,
31417
- parameters: {},
32222
+ parameters: resolvedPromptParameters,
31418
32223
  modelRequirements: {
31419
32224
  modelVariant: 'CHAT',
31420
32225
  },
@@ -31504,9 +32309,22 @@
31504
32309
  finally {
31505
32310
  requestInFlightRef.current = false;
31506
32311
  }
31507
- }, [messages, llmTools, props.thread, onError, llmParticipantName, userParticipantName, thinkingVariants]);
32312
+ }, [
32313
+ messages,
32314
+ llmTools,
32315
+ props.thread,
32316
+ resolvedPromptParameters,
32317
+ onError,
32318
+ llmParticipantName,
32319
+ userParticipantName,
32320
+ thinkingVariants,
32321
+ ]);
31508
32322
  // Handle chat reset
31509
32323
  const handleReset = react.useCallback(async () => {
32324
+ if (resetMode === 'delegate' && onReset) {
32325
+ await onReset();
32326
+ return;
32327
+ }
31510
32328
  // Re-seed with initialMessages instead of empty array
31511
32329
  setMessages(buildInitialMessages());
31512
32330
  setTasksProgress([]);
@@ -31521,7 +32339,7 @@
31521
32339
  if (onReset) {
31522
32340
  await onReset();
31523
32341
  }
31524
- }, [persistenceKey, onReset, buildInitialMessages]);
32342
+ }, [buildInitialMessages, onReset, persistenceKey, resetMode]);
31525
32343
  // Handle retry of last failed message
31526
32344
  const handleRetry = react.useCallback(() => {
31527
32345
  if (lastFailedMessage) {