@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/esm/index.es.js CHANGED
@@ -8,7 +8,6 @@ import { randomBytes } from 'crypto';
8
8
  import moment from 'moment';
9
9
  import { createPortal } from 'react-dom';
10
10
  import Editor, { useMonaco } from '@monaco-editor/react';
11
- import { MarkerSeverity } from 'monaco-editor';
12
11
  import { Registration } from 'destroyable';
13
12
  import katex from 'katex';
14
13
  import { createRoot } from 'react-dom/client';
@@ -42,7 +41,7 @@ const BOOK_LANGUAGE_VERSION = '2.0.0';
42
41
  * @generated
43
42
  * @see https://github.com/webgptorg/promptbook
44
43
  */
45
- const PROMPTBOOK_ENGINE_VERSION = '0.111.0-4';
44
+ const PROMPTBOOK_ENGINE_VERSION = '0.111.0-7';
46
45
  /**
47
46
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
48
47
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -526,6 +525,188 @@ function checkChannelValue(channelName, value) {
526
525
  }
527
526
  }
528
527
 
528
+ const SHORT_HEX_LENGTHS = new Set([3, 4]);
529
+ const LONG_HEX_LENGTHS = new Set([6, 8]);
530
+ /**
531
+ * Parses a hex string into RGBA channel values.
532
+ *
533
+ * @param hex - Hex value such as `#09d`, `009edd`, `#009eddff`.
534
+ * @returns RGBA channel values.
535
+ *
536
+ * @private function of Color
537
+ */
538
+ function parseHexColor(hex) {
539
+ const sanitized = hex.startsWith('#') ? hex.substring(1) : hex;
540
+ const throwInvalidHex = () => {
541
+ throw new Error(`Can not parse color from hex string "${hex}"`);
542
+ };
543
+ if (SHORT_HEX_LENGTHS.has(sanitized.length)) {
544
+ return {
545
+ red: parseShortHexChannel(sanitized.charAt(0), throwInvalidHex),
546
+ green: parseShortHexChannel(sanitized.charAt(1), throwInvalidHex),
547
+ blue: parseShortHexChannel(sanitized.charAt(2), throwInvalidHex),
548
+ alpha: sanitized.length === 4 ? parseShortHexChannel(sanitized.charAt(3), throwInvalidHex) : 255,
549
+ };
550
+ }
551
+ if (LONG_HEX_LENGTHS.has(sanitized.length)) {
552
+ return {
553
+ red: parseLongHexChannel(sanitized, 0, throwInvalidHex),
554
+ green: parseLongHexChannel(sanitized, 2, throwInvalidHex),
555
+ blue: parseLongHexChannel(sanitized, 4, throwInvalidHex),
556
+ alpha: sanitized.length === 8 ? parseLongHexChannel(sanitized, 6, throwInvalidHex) : 255,
557
+ };
558
+ }
559
+ return throwInvalidHex();
560
+ }
561
+ function parseShortHexChannel(char, onError) {
562
+ if (!char) {
563
+ return onError();
564
+ }
565
+ const parsed = parseInt(char, 16);
566
+ if (Number.isNaN(parsed)) {
567
+ return onError();
568
+ }
569
+ return parsed * 16;
570
+ }
571
+ function parseLongHexChannel(hex, start, onError) {
572
+ const segment = hex.substr(start, 2);
573
+ if (segment.length < 2) {
574
+ return onError();
575
+ }
576
+ const parsed = parseInt(segment, 16);
577
+ if (Number.isNaN(parsed)) {
578
+ return onError();
579
+ }
580
+ return parsed;
581
+ }
582
+
583
+ const HSL_REGEX = /^hsl\(\s*([0-9.]+)\s*,\s*([0-9.]+)%\s*,\s*([0-9.]+)%\s*\)$/;
584
+ /**
585
+ * Parses an HSL string into RGBA channel values.
586
+ *
587
+ * @param hsl - HSL string such as `hsl(197.1, 100%, 43.3%)`.
588
+ * @returns RGBA channel values.
589
+ *
590
+ * @private function of Color
591
+ */
592
+ function parseHslColor(hsl) {
593
+ const match = hsl.match(HSL_REGEX);
594
+ if (!match) {
595
+ throw new Error(`Invalid hsl string format: "${hsl}"`);
596
+ }
597
+ const hue = parseFloat(match[1]);
598
+ const saturation = parseFloat(match[2]) / 100;
599
+ const lightness = parseFloat(match[3]) / 100;
600
+ const { red, green, blue } = convertHslToRgb(hue, saturation, lightness);
601
+ return {
602
+ red,
603
+ green,
604
+ blue,
605
+ alpha: 255,
606
+ };
607
+ }
608
+ function convertHslToRgb(h, s, l) {
609
+ const c = (1 - Math.abs(2 * l - 1)) * s;
610
+ const x = c * (1 - Math.abs(((h / 60) % 2) - 1));
611
+ const m = l - c / 2;
612
+ let r1 = 0;
613
+ let g1 = 0;
614
+ let b1 = 0;
615
+ if (h >= 0 && h < 60) {
616
+ r1 = c;
617
+ g1 = x;
618
+ }
619
+ else if (h >= 60 && h < 120) {
620
+ r1 = x;
621
+ g1 = c;
622
+ }
623
+ else if (h >= 120 && h < 180) {
624
+ g1 = c;
625
+ b1 = x;
626
+ }
627
+ else if (h >= 180 && h < 240) {
628
+ g1 = x;
629
+ b1 = c;
630
+ }
631
+ else if (h >= 240 && h < 300) {
632
+ r1 = x;
633
+ b1 = c;
634
+ }
635
+ else if (h >= 300 && h < 360) {
636
+ r1 = c;
637
+ b1 = x;
638
+ }
639
+ return {
640
+ red: Math.round((r1 + m) * 255),
641
+ green: Math.round((g1 + m) * 255),
642
+ blue: Math.round((b1 + m) * 255),
643
+ };
644
+ }
645
+
646
+ const RGB_REGEX = /^rgb\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/;
647
+ const RGBA_REGEX = /^rgba\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/;
648
+ /**
649
+ * Parses an RGB string into RGBA channel values.
650
+ *
651
+ * @param rgb - RGB string such as `rgb(0%, 62%, 86.7%)`.
652
+ * @returns RGBA channel values.
653
+ *
654
+ * @private function of Color
655
+ */
656
+ function parseRgbColor(rgb) {
657
+ const match = rgb.match(RGB_REGEX);
658
+ if (!match) {
659
+ throw new Error(`Invalid rgb string format: "${rgb}"`);
660
+ }
661
+ return {
662
+ red: parseChannelValue(match[1]),
663
+ green: parseChannelValue(match[2]),
664
+ blue: parseChannelValue(match[3]),
665
+ alpha: 255,
666
+ };
667
+ }
668
+ /**
669
+ * Parses an RGBA string into RGBA channel values.
670
+ *
671
+ * @param rgba - RGBA string such as `rgba(0, 158, 221, 0.5)`.
672
+ * @returns RGBA channel values.
673
+ *
674
+ * @private function of Color
675
+ */
676
+ function parseRgbaColor(rgba) {
677
+ const match = rgba.match(RGBA_REGEX);
678
+ if (!match) {
679
+ throw new Error(`Invalid rgba string format: "${rgba}"`);
680
+ }
681
+ return {
682
+ red: parseChannelValue(match[1]),
683
+ green: parseChannelValue(match[2]),
684
+ blue: parseChannelValue(match[3]),
685
+ alpha: parseAlphaValue(match[4]),
686
+ };
687
+ }
688
+ function parseChannelValue(value) {
689
+ if (value.endsWith('%')) {
690
+ const percent = parseFloat(value);
691
+ return Math.round((percent / 100) * 255);
692
+ }
693
+ return Math.round(parseFloat(value));
694
+ }
695
+ function parseAlphaValue(value) {
696
+ if (value.endsWith('%')) {
697
+ const percent = parseFloat(value);
698
+ return Math.round((percent / 100) * 255);
699
+ }
700
+ const parsed = parseFloat(value);
701
+ if (parsed <= 1) {
702
+ return Math.round(parsed * 255);
703
+ }
704
+ return Math.round(parsed);
705
+ }
706
+
707
+ const HSL_REGEX_PATTERN = /^hsl\(\s*([0-9.]+)\s*,\s*([0-9.]+)%\s*,\s*([0-9.]+)%\s*\)$/;
708
+ const RGB_REGEX_PATTERN = /^rgb\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/;
709
+ const RGBA_REGEX_PATTERN = /^rgba\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/;
529
710
  /**
530
711
  * Color object represents an RGB color with alpha channel
531
712
  *
@@ -606,29 +787,24 @@ class Color {
606
787
  * @returns Color object
607
788
  */
608
789
  static fromString(color) {
609
- if (CSS_COLORS[color]) {
610
- return Color.fromString(CSS_COLORS[color]);
611
- // -----
790
+ const trimmed = color.trim();
791
+ if (CSS_COLORS[trimmed]) {
792
+ return Color.fromString(CSS_COLORS[trimmed]);
612
793
  }
613
- else if (Color.isHexColorString(color)) {
614
- return Color.fromHex(color);
615
- // -----
794
+ else if (Color.isHexColorString(trimmed)) {
795
+ return Color.fromHex(trimmed);
616
796
  }
617
- else if (/^hsl\(\s*(\d+)\s*,\s*(\d+(?:\.\d+)?%)\s*,\s*(\d+(?:\.\d+)?%)\)$/.test(color)) {
618
- return Color.fromHsl(color);
619
- // -----
797
+ if (HSL_REGEX_PATTERN.test(trimmed)) {
798
+ return Color.fromHsl(trimmed);
620
799
  }
621
- else if (/^rgb\((\s*[0-9-.%]+\s*,?){3}\)$/.test(color)) {
622
- // TODO: [0] Should be fromRgbString and fromRgbaString one or two functions
623
- return Color.fromRgbString(color);
624
- // -----
800
+ else if (RGB_REGEX_PATTERN.test(trimmed)) {
801
+ return Color.fromRgbString(trimmed);
625
802
  }
626
- else if (/^rgba\((\s*[0-9-.%]+\s*,?){4}\)$/.test(color)) {
627
- return Color.fromRgbaString(color);
628
- // -----
803
+ else if (RGBA_REGEX_PATTERN.test(trimmed)) {
804
+ return Color.fromRgbaString(trimmed);
629
805
  }
630
806
  else {
631
- throw new Error(`Can not create a new Color instance from string "${color}".`);
807
+ throw new Error(`Can not create a new Color instance from string "${trimmed}".`);
632
808
  }
633
809
  }
634
810
  /**
@@ -659,73 +835,8 @@ class Color {
659
835
  * @returns Color object
660
836
  */
661
837
  static fromHex(hex) {
662
- const hexOriginal = hex;
663
- if (hex.startsWith('#')) {
664
- hex = hex.substring(1);
665
- }
666
- if (hex.length === 3) {
667
- return Color.fromHex3(hex);
668
- }
669
- if (hex.length === 4) {
670
- return Color.fromHex4(hex);
671
- }
672
- if (hex.length === 6) {
673
- return Color.fromHex6(hex);
674
- }
675
- if (hex.length === 8) {
676
- return Color.fromHex8(hex);
677
- }
678
- throw new Error(`Can not parse color from hex string "${hexOriginal}"`);
679
- }
680
- /**
681
- * Creates a new Color instance from color in hex format with 3 color digits (without alpha channel)
682
- *
683
- * @param color in hex for example `09d`
684
- * @returns Color object
685
- */
686
- static fromHex3(hex) {
687
- const r = parseInt(hex.substr(0, 1), 16) * 16;
688
- const g = parseInt(hex.substr(1, 1), 16) * 16;
689
- const b = parseInt(hex.substr(2, 1), 16) * 16;
690
- return take(new Color(r, g, b));
691
- }
692
- /**
693
- * Creates a new Color instance from color in hex format with 4 digits (with alpha channel)
694
- *
695
- * @param color in hex for example `09df`
696
- * @returns Color object
697
- */
698
- static fromHex4(hex) {
699
- const r = parseInt(hex.substr(0, 1), 16) * 16;
700
- const g = parseInt(hex.substr(1, 1), 16) * 16;
701
- const b = parseInt(hex.substr(2, 1), 16) * 16;
702
- const a = parseInt(hex.substr(3, 1), 16) * 16;
703
- return take(new Color(r, g, b, a));
704
- }
705
- /**
706
- * Creates a new Color instance from color in hex format with 6 color digits (without alpha channel)
707
- *
708
- * @param color in hex for example `009edd`
709
- * @returns Color object
710
- */
711
- static fromHex6(hex) {
712
- const r = parseInt(hex.substr(0, 2), 16);
713
- const g = parseInt(hex.substr(2, 2), 16);
714
- const b = parseInt(hex.substr(4, 2), 16);
715
- return take(new Color(r, g, b));
716
- }
717
- /**
718
- * Creates a new Color instance from color in hex format with 8 color digits (with alpha channel)
719
- *
720
- * @param color in hex for example `009edd`
721
- * @returns Color object
722
- */
723
- static fromHex8(hex) {
724
- const r = parseInt(hex.substr(0, 2), 16);
725
- const g = parseInt(hex.substr(2, 2), 16);
726
- const b = parseInt(hex.substr(4, 2), 16);
727
- const a = parseInt(hex.substr(6, 2), 16);
728
- return take(new Color(r, g, b, a));
838
+ const { red, green, blue, alpha } = parseHexColor(hex);
839
+ return take(new Color(red, green, blue, alpha));
729
840
  }
730
841
  /**
731
842
  * Creates a new Color instance from color in hsl format
@@ -734,52 +845,8 @@ class Color {
734
845
  * @returns Color object
735
846
  */
736
847
  static fromHsl(hsl) {
737
- const match = hsl.match(/^hsl\(\s*([0-9.]+)\s*,\s*([0-9.]+)%\s*,\s*([0-9.]+)%\s*\)$/);
738
- if (!match) {
739
- throw new Error(`Invalid hsl string format: "${hsl}"`);
740
- }
741
- const h = parseFloat(match[1]);
742
- const s = parseFloat(match[2]) / 100;
743
- const l = parseFloat(match[3]) / 100;
744
- // HSL to RGB conversion
745
- const c = (1 - Math.abs(2 * l - 1)) * s;
746
- const x = c * (1 - Math.abs(((h / 60) % 2) - 1));
747
- const m = l - c / 2;
748
- let r1 = 0, g1 = 0, b1 = 0;
749
- if (h >= 0 && h < 60) {
750
- r1 = c;
751
- g1 = x;
752
- b1 = 0;
753
- }
754
- else if (h >= 60 && h < 120) {
755
- r1 = x;
756
- g1 = c;
757
- b1 = 0;
758
- }
759
- else if (h >= 120 && h < 180) {
760
- r1 = 0;
761
- g1 = c;
762
- b1 = x;
763
- }
764
- else if (h >= 180 && h < 240) {
765
- r1 = 0;
766
- g1 = x;
767
- b1 = c;
768
- }
769
- else if (h >= 240 && h < 300) {
770
- r1 = x;
771
- g1 = 0;
772
- b1 = c;
773
- }
774
- else if (h >= 300 && h < 360) {
775
- r1 = c;
776
- g1 = 0;
777
- b1 = x;
778
- }
779
- const r = Math.round((r1 + m) * 255);
780
- const g = Math.round((g1 + m) * 255);
781
- const b = Math.round((b1 + m) * 255);
782
- return take(new Color(r, g, b));
848
+ const { red, green, blue, alpha } = parseHslColor(hsl);
849
+ return take(new Color(red, green, blue, alpha));
783
850
  }
784
851
  /**
785
852
  * Creates a new Color instance from color in rgb format
@@ -788,25 +855,8 @@ class Color {
788
855
  * @returns Color object
789
856
  */
790
857
  static fromRgbString(rgb) {
791
- const match = rgb.match(/^rgb\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/);
792
- if (!match) {
793
- throw new Error(`Invalid rgb string format: "${rgb}"`);
794
- }
795
- const parseChannel = (value) => {
796
- if (value.endsWith('%')) {
797
- // Percentage value
798
- const percent = parseFloat(value);
799
- return Math.round((percent / 100) * 255);
800
- }
801
- else {
802
- // Numeric value
803
- return Math.round(parseFloat(value));
804
- }
805
- };
806
- const r = parseChannel(match[1]);
807
- const g = parseChannel(match[2]);
808
- const b = parseChannel(match[3]);
809
- return take(new Color(r, g, b));
858
+ const { red, green, blue, alpha } = parseRgbColor(rgb);
859
+ return take(new Color(red, green, blue, alpha));
810
860
  }
811
861
  /**
812
862
  * Creates a new Color instance from color in rbga format
@@ -815,39 +865,8 @@ class Color {
815
865
  * @returns Color object
816
866
  */
817
867
  static fromRgbaString(rgba) {
818
- const match = rgba.match(/^rgba\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/);
819
- if (!match) {
820
- throw new Error(`Invalid rgba string format: "${rgba}"`);
821
- }
822
- const parseChannel = (value) => {
823
- if (value.endsWith('%')) {
824
- const percent = parseFloat(value);
825
- return Math.round((percent / 100) * 255);
826
- }
827
- else {
828
- return Math.round(parseFloat(value));
829
- }
830
- };
831
- const parseAlpha = (value) => {
832
- if (value.endsWith('%')) {
833
- const percent = parseFloat(value);
834
- return Math.round((percent / 100) * 255);
835
- }
836
- else {
837
- const alphaFloat = parseFloat(value);
838
- // If alpha is between 0 and 1, treat as float
839
- if (alphaFloat <= 1) {
840
- return Math.round(alphaFloat * 255);
841
- }
842
- // Otherwise, treat as 0-255
843
- return Math.round(alphaFloat);
844
- }
845
- };
846
- const r = parseChannel(match[1]);
847
- const g = parseChannel(match[2]);
848
- const b = parseChannel(match[3]);
849
- const a = parseAlpha(match[4]);
850
- return take(new Color(r, g, b, a));
868
+ const { red, green, blue, alpha } = parseRgbaColor(rgba);
869
+ return take(new Color(red, green, blue, alpha));
851
870
  }
852
871
  /**
853
872
  * Creates a new Color for color channels values
@@ -969,14 +988,16 @@ class Color {
969
988
  }
970
989
  toHex() {
971
990
  if (this.alpha === 255) {
972
- return `#${this.red.toString(16).padStart(2, '0')}${this.green.toString(16).padStart(2, '0')}${this.blue
991
+ return `#${this.red.toString(16).padStart(2, '0')}${this.green
973
992
  .toString(16)
974
- .padStart(2, '0')}`;
993
+ .padStart(2, '0')}${this.blue.toString(16).padStart(2, '0')}`;
975
994
  }
976
995
  else {
977
- return `#${this.red.toString(16).padStart(2, '0')}${this.green.toString(16).padStart(2, '0')}${this.blue
996
+ return `#${this.red.toString(16).padStart(2, '0')}${this.green
978
997
  .toString(16)
979
- .padStart(2, '0')}${this.alpha.toString(16).padStart(2, '0')}`;
998
+ .padStart(2, '0')}${this.blue.toString(16).padStart(2, '0')}${this.alpha
999
+ .toString(16)
1000
+ .padStart(2, '0')}`;
980
1001
  }
981
1002
  }
982
1003
  toRgb() {
@@ -991,22 +1012,6 @@ class Color {
991
1012
  throw new Error(`Getting HSL is not implemented`);
992
1013
  }
993
1014
  }
994
- /**
995
- * TODO: [🥻] Split Color class and color type
996
- * TODO: For each method a corresponding static method should be created
997
- * Like clone can be done by color.clone() OR Color.clone(color)
998
- * TODO: Probably as an independent LIB OR add to LIB xyzt (ask @roseckyj)
999
- * TODO: !! Transfer back to Collboard (whole directory)
1000
- * TODO: Maybe [🏌️‍♂️] change ACRY toString => (toHex) toRgb when there will be toRgb and toRgba united
1001
- * TODO: Convert getters to methods - getters only for values
1002
- * TODO: Write tests
1003
- * TODO: Getters for alpha, opacity, transparency, r, b, g, h, s, l, a,...
1004
- * TODO: [0] Should be fromRgbString and fromRgbaString one or two functions + one or two regex
1005
- * TODO: Use rgb, rgba, hsl for testing and parsing with the same regex
1006
- * TODO: Regex for rgb, rgba, hsl does not support all options like deg, rad, turn,...
1007
- * TODO: Convolution matrix
1008
- * TODO: Maybe connect with textures
1009
- */
1010
1015
 
1011
1016
  /**
1012
1017
  * Makes color transformer which returns a grayscale version of the color
@@ -1998,6 +2003,12 @@ const RESERVED_PARAMETER_NAMES = exportJson({
1998
2003
  // <- TODO: Add [emoji] + instructions ACRY when adding new reserved parameter
1999
2004
  ],
2000
2005
  });
2006
+ /**
2007
+ * Prompt parameter that toggles whether the agent runs self-learning after each chat.
2008
+ *
2009
+ * @public exported from `@promptbook/core`
2010
+ */
2011
+ const PROMPT_PARAMETER_SELF_LEARNING_ENABLED = 'selfLearningEnabled';
2001
2012
  /**
2002
2013
  * Limits for IDs, names, and other strings
2003
2014
  *
@@ -3096,13 +3107,29 @@ function templateParameters(template, parameters) {
3096
3107
  return replacedTemplates;
3097
3108
  }
3098
3109
 
3110
+ /**
3111
+ * Unsafe characters that prevent an inline parameter.
3112
+ *
3113
+ * @private constant of ParameterEscaping
3114
+ */
3099
3115
  const INLINE_UNSAFE_PARAMETER_PATTERN = /[\r\n`$'"|<>{};()-*/~+!@#$%^&*\\/[\]]/;
3116
+ /**
3117
+ * Characters that always need escaping for inline placeholders.
3118
+ *
3119
+ * @private constant of ParameterEscaping
3120
+ */
3100
3121
  const PROMPT_PARAMETER_ESCAPE_PATTERN = /[`$]/g;
3122
+ /**
3123
+ * Characters that always need escaping when braces are included.
3124
+ *
3125
+ * @private constant of ParameterEscaping
3126
+ */
3101
3127
  const PROMPT_PARAMETER_ESCAPE_WITH_BRACES_PATTERN = /[{}$`]/g;
3102
3128
  /**
3103
3129
  * Normalizes a JSON string so it can be safely rendered without double escaping.
3104
3130
  *
3105
3131
  * @param value Candidate JSON string.
3132
+ * @private function of ParameterEscaping
3106
3133
  */
3107
3134
  function normalizeJsonString(value) {
3108
3135
  try {
@@ -3114,59 +3141,35 @@ function normalizeJsonString(value) {
3114
3141
  }
3115
3142
  /**
3116
3143
  * Hides brackets in a string to avoid confusion with template parameters.
3117
- */
3118
- function hideBrackets(value) {
3119
- return value.split('{').join(`${REPLACING_NONCE}beginbracket`).split('}').join(`${REPLACING_NONCE}endbracket`);
3120
- }
3121
- /**
3122
- * Restores brackets in a string.
3123
- */
3124
- function restoreBrackets(value) {
3125
- return value.split(`${REPLACING_NONCE}beginbracket`).join('{').split(`${REPLACING_NONCE}endbracket`).join('}');
3126
- }
3127
- /**
3128
- * Prompt string wrapper to retain prompt context across interpolations.
3129
3144
  *
3130
- * @public exported from `@promptbook/utils`
3145
+ * @param value Input string with literal brackets.
3146
+ * @private function of ParameterEscaping
3131
3147
  */
3132
- class PromptString extends String {
3133
- /**
3134
- * @param value Prompt content.
3135
- */
3136
- constructor(value) {
3137
- super(value);
3138
- }
3139
- /**
3140
- * Returns the prompt as a primitive string.
3141
- */
3142
- toString() {
3143
- return super.toString();
3144
- }
3145
- /**
3146
- * Returns the prompt as a primitive string for implicit coercion.
3147
- */
3148
- valueOf() {
3149
- return super.valueOf();
3150
- }
3151
- /**
3152
- * Ensures template literal coercion returns the raw string.
3153
- */
3154
- [Symbol.toPrimitive]() {
3155
- return this.toString();
3156
- }
3148
+ function hideBrackets(value) {
3149
+ return value
3150
+ .split('{')
3151
+ .join(`${REPLACING_NONCE}beginbracket`)
3152
+ .split('}')
3153
+ .join(`${REPLACING_NONCE}endbracket`);
3157
3154
  }
3158
3155
  /**
3159
- * Checks whether a value is a PromptString instance.
3156
+ * Restores hidden brackets.
3160
3157
  *
3161
- * @param value Candidate value.
3158
+ * @param value String with hidden brackets.
3159
+ * @private function of ParameterEscaping
3162
3160
  */
3163
- function isPromptString(value) {
3164
- return value instanceof PromptString;
3161
+ function restoreBrackets(value) {
3162
+ return value
3163
+ .split(`${REPLACING_NONCE}beginbracket`)
3164
+ .join('{')
3165
+ .split(`${REPLACING_NONCE}endbracket`)
3166
+ .join('}');
3165
3167
  }
3166
3168
  /**
3167
- * Decides whether a value is safe to inline directly into the prompt.
3169
+ * Decides whether a parameter can be inlined safely.
3168
3170
  *
3169
- * @param value Parameter value as string.
3171
+ * @param value Parameter rendered as string.
3172
+ * @private function of ParameterEscaping
3170
3173
  */
3171
3174
  function shouldInlineParameterValue(value) {
3172
3175
  if (value.trim() === '') {
@@ -3175,10 +3178,11 @@ function shouldInlineParameterValue(value) {
3175
3178
  return !INLINE_UNSAFE_PARAMETER_PATTERN.test(value);
3176
3179
  }
3177
3180
  /**
3178
- * Escapes parameter content to avoid breaking prompt structure.
3181
+ * Escapes prompt parameter content to avoid breaking the template structure.
3179
3182
  *
3180
3183
  * @param value Parameter value to escape.
3181
3184
  * @param options Escape options for additional characters.
3185
+ * @private function of ParameterEscaping
3182
3186
  */
3183
3187
  function escapePromptParameterValue(value, options) {
3184
3188
  const pattern = options.includeBraces
@@ -3187,17 +3191,32 @@ function escapePromptParameterValue(value, options) {
3187
3191
  return value.replace(pattern, '\\$&');
3188
3192
  }
3189
3193
  /**
3190
- * Builds numeric parameter name used in prompt placeholders.
3194
+ * Collection of utilities that keep prompt parameters safe during interpolation.
3195
+ *
3196
+ * @private helper of prompt notation
3197
+ */
3198
+ const ParameterEscaping = {
3199
+ normalizeJsonString,
3200
+ hideBrackets,
3201
+ restoreBrackets,
3202
+ shouldInlineParameterValue,
3203
+ escapePromptParameterValue,
3204
+ };
3205
+
3206
+ /**
3207
+ * Builds numeric parameter names (1, 2, ...).
3191
3208
  *
3192
3209
  * @param index Zero-based parameter index.
3210
+ * @private function of ParameterNaming
3193
3211
  */
3194
3212
  function buildNumericParameterName(index) {
3195
3213
  return `${index + 1}`;
3196
3214
  }
3197
3215
  /**
3198
- * Builds alphabetic parameter name used in prompt placeholders.
3216
+ * Builds alphabetic parameter names (a, b, ..., aa).
3199
3217
  *
3200
3218
  * @param index Zero-based parameter index.
3219
+ * @private function of ParameterNaming
3201
3220
  */
3202
3221
  function buildAlphabeticParameterName(index) {
3203
3222
  const alphabet = 'abcdefghijklmnopqrstuvwxyz';
@@ -3213,6 +3232,7 @@ function buildAlphabeticParameterName(index) {
3213
3232
  * Converts a positive integer into a Roman numeral string.
3214
3233
  *
3215
3234
  * @param value Positive integer value.
3235
+ * @private function of ParameterNaming
3216
3236
  */
3217
3237
  function toRomanNumeral(value) {
3218
3238
  const romanTable = [
@@ -3241,24 +3261,28 @@ function toRomanNumeral(value) {
3241
3261
  return result;
3242
3262
  }
3243
3263
  /**
3244
- * Builds Roman numeral parameter name used in prompt placeholders.
3264
+ * Builds Roman numeral parameter names (I, II, ...).
3245
3265
  *
3246
3266
  * @param index Zero-based parameter index.
3267
+ * @private function of ParameterNaming
3247
3268
  */
3248
3269
  function buildRomanParameterName(index) {
3249
3270
  return toRomanNumeral(index + 1);
3250
3271
  }
3251
3272
  /**
3252
- * Creates a parameter name builder that prefixes another builder.
3273
+ * Creates a prefixed naming strategy.
3253
3274
  *
3254
- * @param prefix Prefix to add.
3255
- * @param builder Base builder to wrap.
3275
+ * @param prefix Prefix string.
3276
+ * @param builder Base builder function.
3277
+ * @private function of ParameterNaming
3256
3278
  */
3257
3279
  function buildPrefixedParameterName(prefix, builder) {
3258
3280
  return (index) => `${prefix}${builder(index)}`;
3259
3281
  }
3260
3282
  /**
3261
- * Ordered list of strategies for parameter naming.
3283
+ * Available strategies that try to avoid placeholder conflicts.
3284
+ *
3285
+ * @private constant of ParameterNaming
3262
3286
  */
3263
3287
  const PARAMETER_NAME_STRATEGIES = [
3264
3288
  { buildName: buildNumericParameterName },
@@ -3271,6 +3295,7 @@ const PARAMETER_NAME_STRATEGIES = [
3271
3295
  * Collects bracketed tokens from parameter values to avoid placeholder collisions.
3272
3296
  *
3273
3297
  * @param values Parameter values to scan.
3298
+ * @private function of ParameterNaming
3274
3299
  */
3275
3300
  function collectBracketedParameterTokens(values) {
3276
3301
  const tokens = new Set();
@@ -3287,9 +3312,10 @@ function collectBracketedParameterTokens(values) {
3287
3312
  return tokens;
3288
3313
  }
3289
3314
  /**
3290
- * Builds parameter names used in prompt placeholders while avoiding collisions.
3315
+ * Builds placeholder names while avoiding collisions with parameter content.
3291
3316
  *
3292
3317
  * @param values Parameter values to scan for conflicting tokens.
3318
+ * @private function of ParameterNaming
3293
3319
  */
3294
3320
  function buildParameterNames(values) {
3295
3321
  const count = values.length;
@@ -3306,28 +3332,40 @@ function buildParameterNames(values) {
3306
3332
  }
3307
3333
  return Array.from({ length: count }, (_, index) => `${REPLACING_NONCE}${index + 1}`);
3308
3334
  }
3335
+ /**
3336
+ * Provides naming utilities for prompt parameters.
3337
+ *
3338
+ * @private helper of prompt notation
3339
+ */
3340
+ const ParameterNaming = {
3341
+ buildParameterNames,
3342
+ };
3343
+
3309
3344
  /**
3310
3345
  * Formats the placeholder used in the prompt body for a parameter.
3311
3346
  *
3312
3347
  * @param name Parameter placeholder name.
3348
+ * @private function of ParameterSection
3313
3349
  */
3314
3350
  function formatParameterPlaceholder(name) {
3315
3351
  return `{${name}}`;
3316
3352
  }
3317
3353
  /**
3318
- * Formats a parameter entry for the structured parameters section.
3354
+ * Formats a single line entry for structured parameters.
3319
3355
  *
3320
3356
  * @param item Parameter entry data.
3357
+ * @private function of ParameterSection
3321
3358
  */
3322
3359
  function formatParameterListItem(item) {
3323
3360
  var _a;
3324
- const formattedValue = (_a = item.jsonValue) !== null && _a !== void 0 ? _a : JSON.stringify(escapePromptParameterValue(item.value, { includeBraces: true }));
3361
+ const formattedValue = (_a = item.jsonValue) !== null && _a !== void 0 ? _a : JSON.stringify(ParameterEscaping.escapePromptParameterValue(item.value, { includeBraces: true }));
3325
3362
  return `${item.name}) ${formattedValue}`;
3326
3363
  }
3327
3364
  /**
3328
3365
  * Builds the structured parameters section appended to the prompt.
3329
3366
  *
3330
3367
  * @param items Parameter entries to include.
3368
+ * @private function of ParameterSection
3331
3369
  */
3332
3370
  function buildParametersSection(items) {
3333
3371
  const entries = items
@@ -3342,6 +3380,55 @@ function buildParametersSection(items) {
3342
3380
  - Parameter values are escaped in JSON structures to avoid breaking the prompt structure.
3343
3381
  `);
3344
3382
  }
3383
+ /**
3384
+ * Provides helpers for rendering structured parameter placeholders.
3385
+ *
3386
+ * @private helper of prompt notation
3387
+ */
3388
+ const ParameterSection = {
3389
+ formatParameterPlaceholder,
3390
+ buildParametersSection,
3391
+ };
3392
+
3393
+ /**
3394
+ * Prompt string wrapper to retain prompt context across interpolations.
3395
+ *
3396
+ * @public exported from `@promptbook/utils`
3397
+ */
3398
+ class PromptString extends String {
3399
+ /**
3400
+ * @param value Prompt content.
3401
+ */
3402
+ constructor(value) {
3403
+ super(value);
3404
+ }
3405
+ /**
3406
+ * Returns the prompt as a primitive string.
3407
+ */
3408
+ toString() {
3409
+ return super.toString();
3410
+ }
3411
+ /**
3412
+ * Returns the prompt as a primitive string for implicit coercion.
3413
+ */
3414
+ valueOf() {
3415
+ return super.valueOf();
3416
+ }
3417
+ /**
3418
+ * Ensures template literal coercion returns the raw string.
3419
+ */
3420
+ [Symbol.toPrimitive]() {
3421
+ return this.toString();
3422
+ }
3423
+ }
3424
+ /**
3425
+ * Checks whether a value is a PromptString instance.
3426
+ *
3427
+ * @param value Candidate value.
3428
+ */
3429
+ function isPromptString(value) {
3430
+ return value instanceof PromptString;
3431
+ }
3345
3432
  /**
3346
3433
  * Tag function for notating a prompt as template literal
3347
3434
  *
@@ -3359,24 +3446,24 @@ function prompt(strings, ...values) {
3359
3446
  if (values.length === 0) {
3360
3447
  return new PromptString(spaceTrim$2(strings.join('')));
3361
3448
  }
3362
- const stringsWithHiddenParameters = strings.map((stringsItem) => hideBrackets(stringsItem));
3449
+ const stringsWithHiddenParameters = strings.map((stringsItem) => ParameterEscaping.hideBrackets(stringsItem));
3363
3450
  const parameterMetadata = values.map((value) => {
3364
3451
  const isPrompt = isPromptString(value);
3365
3452
  const stringValue = isPrompt ? value.toString() : valueToString(value);
3366
- const isInline = isPrompt ? true : shouldInlineParameterValue(stringValue);
3367
- const jsonValue = !isPrompt && !isInline ? normalizeJsonString(stringValue) : null;
3453
+ const isInline = isPrompt ? true : ParameterEscaping.shouldInlineParameterValue(stringValue);
3454
+ const jsonValue = !isPrompt && !isInline ? ParameterEscaping.normalizeJsonString(stringValue) : null;
3368
3455
  return { isPrompt, stringValue, isInline, jsonValue };
3369
3456
  });
3370
- const parameterNames = buildParameterNames(parameterMetadata.map((entry) => entry.stringValue));
3457
+ const parameterNames = ParameterNaming.buildParameterNames(parameterMetadata.map((entry) => entry.stringValue));
3371
3458
  const parameterEntries = parameterMetadata.map((entry, index) => {
3372
3459
  var _a;
3373
- const name = (_a = parameterNames[index]) !== null && _a !== void 0 ? _a : buildNumericParameterName(index);
3460
+ const name = (_a = parameterNames[index]) !== null && _a !== void 0 ? _a : `${index + 1}`;
3374
3461
  const promptMarker = `${REPLACING_NONCE}prompt-${index}`;
3375
3462
  const parameterMarker = `${REPLACING_NONCE}parameter-${index}`;
3376
3463
  const templateValue = entry.isPrompt
3377
3464
  ? promptMarker
3378
3465
  : entry.isInline
3379
- ? escapePromptParameterValue(entry.stringValue, { includeBraces: false })
3466
+ ? ParameterEscaping.escapePromptParameterValue(entry.stringValue, { includeBraces: false })
3380
3467
  : parameterMarker;
3381
3468
  return {
3382
3469
  name,
@@ -3396,7 +3483,7 @@ function prompt(strings, ...values) {
3396
3483
  const parameterName = parameterNamesOrdered[i];
3397
3484
  return parameterName === undefined
3398
3485
  ? `${result}${stringsItem}`
3399
- : `${result}${stringsItem}${formatParameterPlaceholder(parameterName)}`;
3486
+ : `${result}${stringsItem}${ParameterSection.formatParameterPlaceholder(parameterName)}`;
3400
3487
  }, '');
3401
3488
  pipelineString = spaceTrim$2(pipelineString);
3402
3489
  try {
@@ -3414,14 +3501,16 @@ function prompt(strings, ...values) {
3414
3501
 
3415
3502
  `));
3416
3503
  }
3417
- pipelineString = restoreBrackets(pipelineString);
3504
+ pipelineString = ParameterEscaping.restoreBrackets(pipelineString);
3418
3505
  for (const entry of parameterEntries) {
3419
3506
  if (entry.isPrompt) {
3420
3507
  pipelineString = pipelineString.split(entry.promptMarker).join(entry.stringValue);
3421
3508
  continue;
3422
3509
  }
3423
3510
  if (!entry.isInline) {
3424
- pipelineString = pipelineString.split(entry.parameterMarker).join(formatParameterPlaceholder(entry.name));
3511
+ pipelineString = pipelineString
3512
+ .split(entry.parameterMarker)
3513
+ .join(ParameterSection.formatParameterPlaceholder(entry.name));
3425
3514
  }
3426
3515
  }
3427
3516
  const structuredParameters = parameterEntries.filter((entry) => !entry.isPrompt && !entry.isInline);
@@ -3431,7 +3520,7 @@ function prompt(strings, ...values) {
3431
3520
  value: entry.stringValue,
3432
3521
  jsonValue: entry.jsonValue,
3433
3522
  }));
3434
- pipelineString = `${pipelineString}\n\n${buildParametersSection(parameterItems)}`;
3523
+ pipelineString = `${pipelineString}\n\n${ParameterSection.buildParametersSection(parameterItems)}`;
3435
3524
  }
3436
3525
  return new PromptString(pipelineString);
3437
3526
  }
@@ -7095,6 +7184,7 @@ function resolveMemoryRuntimeContext(args) {
7095
7184
  agentId: memoryContext === null || memoryContext === void 0 ? void 0 : memoryContext.agentId,
7096
7185
  agentName: memoryContext === null || memoryContext === void 0 ? void 0 : memoryContext.agentName,
7097
7186
  isTeamConversation: (memoryContext === null || memoryContext === void 0 ? void 0 : memoryContext.isTeamConversation) === true,
7187
+ isPrivateMode: (memoryContext === null || memoryContext === void 0 ? void 0 : memoryContext.isPrivateMode) === true,
7098
7188
  };
7099
7189
  }
7100
7190
  /**
@@ -7140,12 +7230,15 @@ function createDisabledMemoryResult(action, message) {
7140
7230
  * @private utility of MEMORY commitment
7141
7231
  */
7142
7232
  function getRuntimeAdapterOrDisabledResult(action, runtimeContext) {
7143
- if (!runtimeContext.enabled || runtimeContext.isTeamConversation) {
7233
+ if (!runtimeContext.enabled || runtimeContext.isTeamConversation || runtimeContext.isPrivateMode) {
7234
+ const message = runtimeContext.isPrivateMode
7235
+ ? 'Memory is disabled because private mode is active.'
7236
+ : runtimeContext.isTeamConversation
7237
+ ? 'Memory is disabled for TEAM conversations.'
7238
+ : 'Memory is disabled for unauthenticated users.';
7144
7239
  return {
7145
7240
  adapter: null,
7146
- disabledResult: createDisabledMemoryResult(action, runtimeContext.isTeamConversation
7147
- ? 'Memory is disabled for TEAM conversations.'
7148
- : 'Memory is disabled for unauthenticated users.'),
7241
+ disabledResult: createDisabledMemoryResult(action, message),
7149
7242
  };
7150
7243
  }
7151
7244
  {
@@ -7869,71 +7962,137 @@ class UserMessageCommitmentDefinition extends BaseCommitmentDefinition {
7869
7962
  }
7870
7963
 
7871
7964
  /**
7872
- * META commitment definition
7873
- *
7874
- * The META commitment handles all meta-information about the agent such as:
7875
- * - META IMAGE: Sets the agent's avatar/profile image URL
7876
- * - META LINK: Provides profile/source links for the person the agent models
7877
- * - META TITLE: Sets the agent's display title
7878
- * - META DESCRIPTION: Sets the agent's description
7879
- * - META [ANYTHING]: Any other meta information in uppercase format
7965
+ * MESSAGE SUFFIX commitment definition
7880
7966
  *
7881
- * These commitments are special because they don't affect the system message,
7882
- * but are handled separately in the parsing logic for profile display.
7967
+ * The MESSAGE SUFFIX commitment stores a hardcoded message that is appended
7968
+ * to every assistant response in Agents Server runtimes.
7883
7969
  *
7884
7970
  * Example usage in agent source:
7885
7971
  *
7886
7972
  * ```book
7887
- * META IMAGE https://example.com/avatar.jpg
7888
- * META LINK https://twitter.com/username
7889
- * META TITLE Professional Assistant
7890
- * META DESCRIPTION An AI assistant specialized in business tasks
7891
- * META AUTHOR John Doe
7892
- * META VERSION 1.0
7973
+ * MESSAGE SUFFIX This message was generated by Promptbook.
7893
7974
  * ```
7894
7975
  *
7895
7976
  * @private [🪔] Maybe export the commitments through some package
7896
7977
  */
7897
- class MetaCommitmentDefinition extends BaseCommitmentDefinition {
7978
+ class MessageSuffixCommitmentDefinition extends BaseCommitmentDefinition {
7898
7979
  constructor() {
7899
- super('META');
7980
+ super('MESSAGE SUFFIX');
7900
7981
  }
7901
7982
  /**
7902
- * Short one-line description of META commitments.
7983
+ * Short one-line description of MESSAGE SUFFIX.
7903
7984
  */
7904
7985
  get description() {
7905
- return 'Set meta-information about the agent (IMAGE, LINK, TITLE, DESCRIPTION, etc.).';
7986
+ return 'Set a hardcoded suffix appended to every assistant response.';
7906
7987
  }
7907
7988
  /**
7908
7989
  * Icon for this commitment.
7909
7990
  */
7910
7991
  get icon() {
7911
- return 'ℹ️';
7992
+ return '🏷️';
7912
7993
  }
7913
7994
  /**
7914
- * Markdown documentation for META commitment.
7995
+ * Markdown documentation for MESSAGE SUFFIX commitment.
7915
7996
  */
7916
7997
  get documentation() {
7917
7998
  return spaceTrim$1(`
7918
- # META
7919
-
7920
- Sets meta-information about the agent that is used for display and attribution purposes.
7999
+ # MESSAGE SUFFIX
7921
8000
 
7922
- ## Supported META types
7923
-
7924
- - **META IMAGE** - Sets the agent's avatar/profile image URL
7925
- - **META LINK** - Provides profile/source links for the person the agent models
7926
- - **META TITLE** - Sets the agent's display title
7927
- - **META DESCRIPTION** - Sets the agent's description
7928
- - **META [ANYTHING]** - Any other meta information in uppercase format
8001
+ Defines a hardcoded message appended to every assistant response.
7929
8002
 
7930
8003
  ## Key aspects
7931
8004
 
7932
- - Does not modify the agent's behavior or responses
7933
- - Used for visual representation and attribution in user interfaces
7934
- - Multiple META commitments of different types can be used
7935
- - Multiple META LINK commitments can be used for different social profiles
7936
- - If multiple META commitments of the same type are specified, the last one takes precedence (except for LINK)
8005
+ - Does not modify the system message or model requirements.
8006
+ - Supports multiline markdown content.
8007
+ - Useful for branding, legal notes, and disclosure notices.
8008
+ - If multiple \`MESSAGE SUFFIX\` commitments are present, the last one takes precedence.
8009
+
8010
+ ## Example
8011
+
8012
+ \`\`\`book
8013
+ Branded Assistant
8014
+
8015
+ MESSAGE SUFFIX
8016
+ This was generated by Promptbook, the best tool to create AI agents.
8017
+ \`\`\`
8018
+ `);
8019
+ }
8020
+ applyToAgentModelRequirements(requirements, content) {
8021
+ // MESSAGE SUFFIX does not modify model requirements.
8022
+ // It is consumed by parsing/runtime layers in Agents Server.
8023
+ return requirements;
8024
+ }
8025
+ }
8026
+ /**
8027
+ * Note: [💞] Ignore a discrepancy between file name and entity name
8028
+ */
8029
+
8030
+ /**
8031
+ * META commitment definition
8032
+ *
8033
+ * The META commitment handles all meta-information about the agent such as:
8034
+ * - META IMAGE: Sets the agent's avatar/profile image URL
8035
+ * - META LINK: Provides profile/source links for the person the agent models
8036
+ * - META TITLE: Sets the agent's display title
8037
+ * - META DESCRIPTION: Sets the agent's description
8038
+ * - META [ANYTHING]: Any other meta information in uppercase format
8039
+ *
8040
+ * These commitments are special because they don't affect the system message,
8041
+ * but are handled separately in the parsing logic for profile display.
8042
+ *
8043
+ * Example usage in agent source:
8044
+ *
8045
+ * ```book
8046
+ * META IMAGE https://example.com/avatar.jpg
8047
+ * META LINK https://twitter.com/username
8048
+ * META TITLE Professional Assistant
8049
+ * META DESCRIPTION An AI assistant specialized in business tasks
8050
+ * META AUTHOR John Doe
8051
+ * META VERSION 1.0
8052
+ * ```
8053
+ *
8054
+ * @private [🪔] Maybe export the commitments through some package
8055
+ */
8056
+ class MetaCommitmentDefinition extends BaseCommitmentDefinition {
8057
+ constructor() {
8058
+ super('META');
8059
+ }
8060
+ /**
8061
+ * Short one-line description of META commitments.
8062
+ */
8063
+ get description() {
8064
+ return 'Set meta-information about the agent (IMAGE, LINK, TITLE, DESCRIPTION, etc.).';
8065
+ }
8066
+ /**
8067
+ * Icon for this commitment.
8068
+ */
8069
+ get icon() {
8070
+ return 'ℹ️';
8071
+ }
8072
+ /**
8073
+ * Markdown documentation for META commitment.
8074
+ */
8075
+ get documentation() {
8076
+ return spaceTrim$1(`
8077
+ # META
8078
+
8079
+ Sets meta-information about the agent that is used for display and attribution purposes.
8080
+
8081
+ ## Supported META types
8082
+
8083
+ - **META IMAGE** - Sets the agent's avatar/profile image URL
8084
+ - **META LINK** - Provides profile/source links for the person the agent models
8085
+ - **META TITLE** - Sets the agent's display title
8086
+ - **META DESCRIPTION** - Sets the agent's description
8087
+ - **META [ANYTHING]** - Any other meta information in uppercase format
8088
+
8089
+ ## Key aspects
8090
+
8091
+ - Does not modify the agent's behavior or responses
8092
+ - Used for visual representation and attribution in user interfaces
8093
+ - Multiple META commitments of different types can be used
8094
+ - Multiple META LINK commitments can be used for different social profiles
8095
+ - If multiple META commitments of the same type are specified, the last one takes precedence (except for LINK)
7937
8096
 
7938
8097
  ## Examples
7939
8098
 
@@ -8109,6 +8268,76 @@ class MetaColorCommitmentDefinition extends BaseCommitmentDefinition {
8109
8268
  * Note: [💞] Ignore a discrepancy between file name and entity name
8110
8269
  */
8111
8270
 
8271
+ /**
8272
+ * META DISCLAIMER commitment definition
8273
+ *
8274
+ * The META DISCLAIMER commitment stores markdown text that must be acknowledged
8275
+ * by the user before they can chat with the agent.
8276
+ *
8277
+ * Example usage in agent source:
8278
+ *
8279
+ * ```book
8280
+ * META DISCLAIMER
8281
+ *
8282
+ * This agent may provide information that is **not legally binding**.
8283
+ * ```
8284
+ *
8285
+ * @private [🪔] Maybe export the commitments through some package
8286
+ */
8287
+ class MetaDisclaimerCommitmentDefinition extends BaseCommitmentDefinition {
8288
+ constructor() {
8289
+ super('META DISCLAIMER');
8290
+ }
8291
+ /**
8292
+ * Short one-line description of META DISCLAIMER.
8293
+ */
8294
+ get description() {
8295
+ return 'Set markdown disclaimer text that users must agree with before chat.';
8296
+ }
8297
+ /**
8298
+ * Icon for this commitment.
8299
+ */
8300
+ get icon() {
8301
+ return '⚠️';
8302
+ }
8303
+ /**
8304
+ * Markdown documentation for META DISCLAIMER commitment.
8305
+ */
8306
+ get documentation() {
8307
+ return spaceTrim$1(`
8308
+ # META DISCLAIMER
8309
+
8310
+ Defines a markdown disclaimer shown to users before they can start chatting with the agent.
8311
+
8312
+ ## Key aspects
8313
+
8314
+ - Does not modify the system message or model requirements.
8315
+ - Supports multiline markdown content.
8316
+ - Intended for legal warnings, safety notices, and mandatory acknowledgements.
8317
+ - If multiple \`META DISCLAIMER\` commitments are present, the last one takes precedence.
8318
+
8319
+ ## Example
8320
+
8321
+ \`\`\`book
8322
+ Legal Assistant
8323
+
8324
+ META DISCLAIMER
8325
+
8326
+ This assistant provides **informational content only** and does not
8327
+ replace professional legal advice.
8328
+ \`\`\`
8329
+ `);
8330
+ }
8331
+ applyToAgentModelRequirements(requirements, content) {
8332
+ // META DISCLAIMER does not modify model requirements.
8333
+ // It is consumed by parsing/UI layers in Agents Server.
8334
+ return requirements;
8335
+ }
8336
+ }
8337
+ /**
8338
+ * Note: [💞] Ignore a discrepancy between file name and entity name
8339
+ */
8340
+
8112
8341
  /**
8113
8342
  * META FONT commitment definition
8114
8343
  *
@@ -11006,75 +11235,290 @@ class UseTimeCommitmentDefinition extends BaseCommitmentDefinition {
11006
11235
  */
11007
11236
 
11008
11237
  /**
11009
- * Placeholder commitment definition for commitments that are not yet implemented
11238
+ * Tool name used by the USE USER LOCATION commitment.
11010
11239
  *
11011
- * This commitment simply adds its content 1:1 into the system message,
11012
- * preserving the original behavior until proper implementation is added.
11240
+ * @private internal USE USER LOCATION constant
11241
+ */
11242
+ const GET_USER_LOCATION_TOOL_NAME = 'get_user_location';
11243
+ /**
11244
+ * Returns a finite number when valid.
11013
11245
  *
11014
- * @public exported from `@promptbook/core`
11246
+ * @private utility of USE USER LOCATION commitment
11015
11247
  */
11016
- class NotYetImplementedCommitmentDefinition extends BaseCommitmentDefinition {
11017
- constructor(type) {
11018
- super(type);
11248
+ function normalizeFiniteNumber(value) {
11249
+ if (typeof value !== 'number') {
11250
+ return undefined;
11251
+ }
11252
+ return Number.isFinite(value) ? value : undefined;
11253
+ }
11254
+ /**
11255
+ * Returns a finite number or null when explicitly null.
11256
+ *
11257
+ * @private utility of USE USER LOCATION commitment
11258
+ */
11259
+ function normalizeNullableFiniteNumber(value) {
11260
+ if (value === null) {
11261
+ return null;
11262
+ }
11263
+ return normalizeFiniteNumber(value);
11264
+ }
11265
+ /**
11266
+ * Normalizes raw runtime location payload into a safe location object.
11267
+ *
11268
+ * @private utility of USE USER LOCATION commitment
11269
+ */
11270
+ function normalizeUserLocation(location) {
11271
+ return {
11272
+ permission: location.permission,
11273
+ latitude: normalizeFiniteNumber(location.latitude),
11274
+ longitude: normalizeFiniteNumber(location.longitude),
11275
+ accuracyMeters: normalizeFiniteNumber(location.accuracyMeters),
11276
+ altitudeMeters: normalizeNullableFiniteNumber(location.altitudeMeters),
11277
+ headingDegrees: normalizeNullableFiniteNumber(location.headingDegrees),
11278
+ speedMetersPerSecond: normalizeNullableFiniteNumber(location.speedMetersPerSecond),
11279
+ timestamp: typeof location.timestamp === 'string' ? location.timestamp : undefined,
11280
+ };
11281
+ }
11282
+ /**
11283
+ * Resolves the user location payload from hidden tool runtime context.
11284
+ *
11285
+ * @private utility of USE USER LOCATION commitment
11286
+ */
11287
+ function resolveUserLocationFromRuntimeContext(args) {
11288
+ const runtimeContext = readToolRuntimeContextFromToolArgs(args);
11289
+ const location = runtimeContext === null || runtimeContext === void 0 ? void 0 : runtimeContext.userLocation;
11290
+ if (!location || typeof location !== 'object') {
11291
+ return null;
11292
+ }
11293
+ return normalizeUserLocation(location);
11294
+ }
11295
+ /**
11296
+ * Creates a standard "unavailable location" tool result.
11297
+ *
11298
+ * @private utility of USE USER LOCATION commitment
11299
+ */
11300
+ function createUnavailableLocationResult() {
11301
+ return {
11302
+ status: 'unavailable',
11303
+ 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.',
11304
+ };
11305
+ }
11306
+ /**
11307
+ * Creates a standard "permission denied" tool result.
11308
+ *
11309
+ * @private utility of USE USER LOCATION commitment
11310
+ */
11311
+ function createPermissionDeniedResult() {
11312
+ return {
11313
+ status: 'permission-denied',
11314
+ message: 'Location access is denied by the user/browser. Ask the user to enable location access or provide their location manually.',
11315
+ };
11316
+ }
11317
+ /**
11318
+ * USE USER LOCATION commitment definition.
11319
+ *
11320
+ * The `USE USER LOCATION` commitment enables an agent to retrieve user location from runtime context.
11321
+ *
11322
+ * @private [🪔] Maybe export the commitments through some package
11323
+ */
11324
+ class UseUserLocationCommitmentDefinition extends BaseCommitmentDefinition {
11325
+ constructor() {
11326
+ super('USE USER LOCATION', ['USER LOCATION']);
11327
+ }
11328
+ get requiresContent() {
11329
+ return false;
11019
11330
  }
11020
11331
  /**
11021
- * Short one-line description of a placeholder commitment.
11332
+ * Short one-line description of USE USER LOCATION.
11022
11333
  */
11023
11334
  get description() {
11024
- return 'Placeholder commitment that appends content verbatim to the system message.';
11335
+ return 'Enable the agent to determine the user location when browser permission is granted.';
11025
11336
  }
11026
11337
  /**
11027
11338
  * Icon for this commitment.
11028
11339
  */
11029
11340
  get icon() {
11030
- return '🚧';
11341
+ return '📍';
11031
11342
  }
11032
11343
  /**
11033
- * Markdown documentation available at runtime.
11344
+ * Markdown documentation for USE USER LOCATION commitment.
11034
11345
  */
11035
11346
  get documentation() {
11036
11347
  return spaceTrim$1(`
11037
- # ${this.type}
11348
+ # USE USER LOCATION
11038
11349
 
11039
- This commitment is not yet fully implemented.
11350
+ Enables the agent to retrieve the user's location from runtime context.
11040
11351
 
11041
11352
  ## Key aspects
11042
11353
 
11043
- - Content is appended directly to the system message.
11044
- - No special processing or validation is performed.
11045
- - Behavior preserved until proper implementation is added.
11354
+ - The location is requested by the browser runtime (with user permission).
11355
+ - Use the tool \`get_user_location\` when an answer depends on user's location.
11356
+ - If location is unavailable or denied, ask the user to enable location sharing or provide location manually.
11357
+ - The content following \`USE USER LOCATION\` can define additional location usage instructions.
11046
11358
 
11047
- ## Status
11359
+ ## Examples
11048
11360
 
11049
- - **Status:** Placeholder implementation
11050
- - **Effect:** Appends content prefixed by commitment type
11051
- - **Future:** Will be replaced with specialized logic
11361
+ \`\`\`book
11362
+ Local Assistant
11052
11363
 
11053
- ## Examples
11364
+ PERSONA You help with local recommendations.
11365
+ USE USER LOCATION
11366
+ \`\`\`
11054
11367
 
11055
11368
  \`\`\`book
11056
- Example Agent
11369
+ Travel Assistant
11057
11370
 
11058
- PERSONA You are a helpful assistant
11059
- ${this.type} Your content here
11060
- RULE Always be helpful
11371
+ PERSONA You help users with nearby transport and weather.
11372
+ USE USER LOCATION Use location only when strictly needed.
11061
11373
  \`\`\`
11062
11374
  `);
11063
11375
  }
11064
11376
  applyToAgentModelRequirements(requirements, content) {
11065
- const trimmedContent = content.trim();
11066
- if (!trimmedContent) {
11067
- return requirements;
11068
- }
11069
- // Add the commitment content 1:1 to the system message
11070
- const commitmentLine = `${this.type} ${trimmedContent}`;
11071
- return this.appendToSystemMessage(requirements, commitmentLine, '\n\n');
11377
+ const extraInstructions = formatOptionalInstructionBlock('User location instructions', content);
11378
+ const existingTools = requirements.tools || [];
11379
+ const tools = existingTools.some((tool) => tool.name === GET_USER_LOCATION_TOOL_NAME)
11380
+ ? existingTools
11381
+ : [
11382
+ ...existingTools,
11383
+ {
11384
+ name: GET_USER_LOCATION_TOOL_NAME,
11385
+ description: spaceTrim$1(`
11386
+ Retrieves user location shared by browser runtime (if permission is granted).
11387
+ Returns JSON status with coordinates and metadata when available.
11388
+ `),
11389
+ parameters: {
11390
+ type: 'object',
11391
+ properties: {},
11392
+ required: [],
11393
+ },
11394
+ },
11395
+ ];
11396
+ return this.appendToSystemMessage({
11397
+ ...requirements,
11398
+ tools,
11399
+ _metadata: {
11400
+ ...requirements._metadata,
11401
+ useUserLocation: content || true,
11402
+ },
11403
+ }, spaceTrim$1((block) => `
11404
+ User location:
11405
+ - Use "${GET_USER_LOCATION_TOOL_NAME}" only when location is needed for a better answer.
11406
+ - If the tool returns "unavailable" or "permission-denied", ask user to share location or provide city manually.
11407
+ - Do not invent coordinates or local facts when location is unavailable.
11408
+ ${block(extraInstructions)}
11409
+ `));
11410
+ }
11411
+ /**
11412
+ * Gets human-readable titles for tool functions provided by this commitment.
11413
+ */
11414
+ getToolTitles() {
11415
+ return {
11416
+ [GET_USER_LOCATION_TOOL_NAME]: 'Get user location',
11417
+ };
11418
+ }
11419
+ /**
11420
+ * Gets the `get_user_location` tool function implementation.
11421
+ */
11422
+ getToolFunctions() {
11423
+ return {
11424
+ async [GET_USER_LOCATION_TOOL_NAME](args) {
11425
+ const location = resolveUserLocationFromRuntimeContext(args);
11426
+ if (!location) {
11427
+ return JSON.stringify(createUnavailableLocationResult());
11428
+ }
11429
+ if (location.permission === 'denied') {
11430
+ return JSON.stringify(createPermissionDeniedResult());
11431
+ }
11432
+ if (location.latitude === undefined || location.longitude === undefined) {
11433
+ return JSON.stringify(createUnavailableLocationResult());
11434
+ }
11435
+ const result = {
11436
+ status: 'ok',
11437
+ location: {
11438
+ ...location,
11439
+ permission: location.permission || 'granted',
11440
+ },
11441
+ message: 'User location is available.',
11442
+ };
11443
+ return JSON.stringify(result);
11444
+ },
11445
+ };
11072
11446
  }
11073
11447
  }
11074
-
11075
- // Import all commitment definition classes
11076
11448
  /**
11077
- * Registry of all available commitment definitions
11449
+ * Note: [💞] Ignore a discrepancy between file name and entity name
11450
+ */
11451
+
11452
+ /**
11453
+ * Placeholder commitment definition for commitments that are not yet implemented
11454
+ *
11455
+ * This commitment simply adds its content 1:1 into the system message,
11456
+ * preserving the original behavior until proper implementation is added.
11457
+ *
11458
+ * @public exported from `@promptbook/core`
11459
+ */
11460
+ class NotYetImplementedCommitmentDefinition extends BaseCommitmentDefinition {
11461
+ constructor(type) {
11462
+ super(type);
11463
+ }
11464
+ /**
11465
+ * Short one-line description of a placeholder commitment.
11466
+ */
11467
+ get description() {
11468
+ return 'Placeholder commitment that appends content verbatim to the system message.';
11469
+ }
11470
+ /**
11471
+ * Icon for this commitment.
11472
+ */
11473
+ get icon() {
11474
+ return '🚧';
11475
+ }
11476
+ /**
11477
+ * Markdown documentation available at runtime.
11478
+ */
11479
+ get documentation() {
11480
+ return spaceTrim$1(`
11481
+ # ${this.type}
11482
+
11483
+ This commitment is not yet fully implemented.
11484
+
11485
+ ## Key aspects
11486
+
11487
+ - Content is appended directly to the system message.
11488
+ - No special processing or validation is performed.
11489
+ - Behavior preserved until proper implementation is added.
11490
+
11491
+ ## Status
11492
+
11493
+ - **Status:** Placeholder implementation
11494
+ - **Effect:** Appends content prefixed by commitment type
11495
+ - **Future:** Will be replaced with specialized logic
11496
+
11497
+ ## Examples
11498
+
11499
+ \`\`\`book
11500
+ Example Agent
11501
+
11502
+ PERSONA You are a helpful assistant
11503
+ ${this.type} Your content here
11504
+ RULE Always be helpful
11505
+ \`\`\`
11506
+ `);
11507
+ }
11508
+ applyToAgentModelRequirements(requirements, content) {
11509
+ const trimmedContent = content.trim();
11510
+ if (!trimmedContent) {
11511
+ return requirements;
11512
+ }
11513
+ // Add the commitment content 1:1 to the system message
11514
+ const commitmentLine = `${this.type} ${trimmedContent}`;
11515
+ return this.appendToSystemMessage(requirements, commitmentLine, '\n\n');
11516
+ }
11517
+ }
11518
+
11519
+ // Import all commitment definition classes
11520
+ /**
11521
+ * Registry of all available commitment definitions
11078
11522
  * This array contains instances of all commitment definitions
11079
11523
  * This is the single source of truth for all commitments in the system
11080
11524
  *
@@ -11111,6 +11555,7 @@ const COMMITMENT_REGISTRY = [
11111
11555
  new MetaColorCommitmentDefinition(),
11112
11556
  new MetaFontCommitmentDefinition(),
11113
11557
  new MetaLinkCommitmentDefinition(),
11558
+ new MetaDisclaimerCommitmentDefinition(),
11114
11559
  new MetaCommitmentDefinition(),
11115
11560
  new NoteCommitmentDefinition('NOTE'),
11116
11561
  new NoteCommitmentDefinition('NOTES'),
@@ -11122,6 +11567,7 @@ const COMMITMENT_REGISTRY = [
11122
11567
  new InitialMessageCommitmentDefinition(),
11123
11568
  new UserMessageCommitmentDefinition(),
11124
11569
  new AgentMessageCommitmentDefinition(),
11570
+ new MessageSuffixCommitmentDefinition(),
11125
11571
  new MessageCommitmentDefinition('MESSAGE'),
11126
11572
  new MessageCommitmentDefinition('MESSAGES'),
11127
11573
  new ScenarioCommitmentDefinition('SCENARIO'),
@@ -11137,6 +11583,7 @@ const COMMITMENT_REGISTRY = [
11137
11583
  new UseBrowserCommitmentDefinition(),
11138
11584
  new UseSearchEngineCommitmentDefinition(),
11139
11585
  new UseTimeCommitmentDefinition(),
11586
+ new UseUserLocationCommitmentDefinition(),
11140
11587
  new UseEmailCommitmentDefinition(),
11141
11588
  new UseImageGeneratorCommitmentDefinition('USE IMAGE GENERATOR'),
11142
11589
  new UseMcpCommitmentDefinition(),
@@ -11488,6 +11935,14 @@ function parseAgentSource(agentSource) {
11488
11935
  });
11489
11936
  continue;
11490
11937
  }
11938
+ if (commitment.type === 'USE USER LOCATION') {
11939
+ capabilities.push({
11940
+ type: 'user-location',
11941
+ label: 'User location',
11942
+ iconName: 'MapPin',
11943
+ });
11944
+ continue;
11945
+ }
11491
11946
  if (commitment.type === 'USE EMAIL' /* || commitment.type === 'EMAIL' || commitment.type === 'MAIL' */) {
11492
11947
  capabilities.push({
11493
11948
  type: 'email',
@@ -11622,6 +12077,14 @@ function parseAgentSource(agentSource) {
11622
12077
  meta.description = spaceTrim$2(commitment.content);
11623
12078
  continue;
11624
12079
  }
12080
+ if (commitment.type === 'META DISCLAIMER') {
12081
+ meta.disclaimer = commitment.content;
12082
+ continue;
12083
+ }
12084
+ if (commitment.type === 'MESSAGE SUFFIX') {
12085
+ meta.messageSuffix = commitment.content;
12086
+ continue;
12087
+ }
11625
12088
  if (commitment.type === 'META COLOR') {
11626
12089
  meta.color = normalizeSeparator(commitment.content);
11627
12090
  continue;
@@ -11828,73 +12291,6 @@ var css_248z$d = ".BookEditor-module_BookEditor__s-0PU{width:100%}.BookEditor-mo
11828
12291
  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"};
11829
12292
  styleInject(css_248z$d);
11830
12293
 
11831
- /**
11832
- * Helper for manipulating agent books in-memory.
11833
- *
11834
- * @private internal helper for `@promptbook/core`
11835
- */
11836
- class BookEditable {
11837
- /**
11838
- * Creates a mutable view over the supplied book content.
11839
- *
11840
- * @param book - Agent source text to work with.
11841
- */
11842
- constructor(book) {
11843
- this.lines = book.split(/\r?\n/);
11844
- }
11845
- /**
11846
- * Creates a new instance from the supplied book text.
11847
- *
11848
- * @param book - Agent source text to work with.
11849
- * @returns Editable view over the book content.
11850
- */
11851
- static from(book) {
11852
- return new BookEditable(book);
11853
- }
11854
- /**
11855
- * Returns the editable content as a string_book.
11856
- *
11857
- * @returns Current book content with original line breaks preserved.
11858
- */
11859
- toString() {
11860
- return this.lines.join('\n');
11861
- }
11862
- /**
11863
- * Checks whether the book contains any non-empty lines.
11864
- *
11865
- * @returns `true` when the book has meaningful content beyond blank lines.
11866
- */
11867
- hasNonEmptyContent() {
11868
- return this.lines.some((line) => line.trim() !== '');
11869
- }
11870
- /**
11871
- * Finds the last line index whose trimmed text matches the commitment name.
11872
- *
11873
- * @param commitment - Commitment keyword to locate (for example `CLOSED`).
11874
- * @returns Zero-based line index or `null` when the commitment is absent.
11875
- */
11876
- findLastCommitmentLineIndex(commitment) {
11877
- const normalized = commitment.trim().toUpperCase();
11878
- for (let lineIndex = this.lines.length - 1; lineIndex >= 0; lineIndex -= 1) {
11879
- const line = this.lines[lineIndex];
11880
- if ((line === null || line === void 0 ? void 0 : line.trim().toUpperCase()) === normalized) {
11881
- return lineIndex;
11882
- }
11883
- }
11884
- return null;
11885
- }
11886
- }
11887
-
11888
- /**
11889
- * Gets all available commitment definitions
11890
- * @returns Array of all commitment definitions
11891
- *
11892
- * @public exported from `@promptbook/core`
11893
- */
11894
- function getAllCommitmentDefinitions() {
11895
- return $deepFreeze([...COMMITMENT_REGISTRY]);
11896
- }
11897
-
11898
12294
  /**
11899
12295
  * Renders a save icon.
11900
12296
  *
@@ -12928,122 +13324,164 @@ function BookEditorActionbar(props) {
12928
13324
  }, children: jsx(AboutPromptbookInformation, {}) }))] }));
12929
13325
  }
12930
13326
 
12931
- const BOOK_LANGUAGE_ID = 'book';
12932
- const LINE_HEIGHT = 28;
12933
- const CONTENT_PADDING_LEFT = 20;
12934
- const VERTICAL_LINE_LEFT = 0; // <- TODO: This value is weird
12935
- const UPLOAD_EDIT_DEBOUNCE_MS = 300;
12936
- const UPLOAD_PROGRESS_DEBOUNCE_MS = 150;
12937
- /**
12938
- * Monaco marker owner used for external diagnostics injected into the editor.
12939
- */
12940
- const DIAGNOSTIC_MARKER_OWNER = 'book-editor-diagnostics';
12941
- /**
12942
- * Matches absolute agent URLs (only `/agents/...` paths).
12943
- */
12944
- const AGENT_URL_REFERENCE_REGEX = /https?:\/\/[^\s{}]+\/agents\/[^\s{}]+/i;
12945
- /**
12946
- * Matches all clickable agent-reference token variants in Book text.
12947
- */
12948
- 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;
12949
13327
  /**
12950
- * Captures content of `{...}` agent-reference tokens.
12951
- */
12952
- const AGENT_REFERENCE_BRACED_REGEX = /^\{([\s\S]+)\}$/;
12953
- /**
12954
- * Regex rules reused by Monaco tokenization for agent-reference highlighting.
13328
+ * Shared constants for `BookEditorMonaco`.
13329
+ *
13330
+ * @private function of BookEditorMonaco
12955
13331
  */
12956
- const AGENT_REFERENCE_HIGHLIGHT_REGEXES = [
12957
- /\{https?:\/\/[^\s{}]+\/agents\/[^\s{}]+\}/,
12958
- /https?:\/\/[^\s{}]+\/agents\/[^\s{}]+/,
12959
- /\{[A-Za-z0-9_-]{6,}\}/,
12960
- /\{[^{}\r\n]*\s+[^{}\r\n]*\}/,
12961
- /@[A-Za-z0-9_-]+/,
12962
- ];
12963
- let uploadSequenceCounter = 0;
12964
- const UPLOAD_STATUS_LABELS = {
12965
- queued: 'Queued',
12966
- uploading: 'Uploading',
12967
- paused: 'Paused',
12968
- completed: 'Completed',
12969
- failed: 'Failed',
13332
+ const BookEditorMonacoConstants = {
13333
+ BOOK_LANGUAGE_ID: 'book',
13334
+ LINE_HEIGHT: 28,
13335
+ CONTENT_PADDING_LEFT: 20,
13336
+ VERTICAL_LINE_LEFT: 0,
13337
+ UPLOAD_EDIT_DEBOUNCE_MS: 300,
13338
+ UPLOAD_PROGRESS_DEBOUNCE_MS: 150,
13339
+ DIAGNOSTIC_MARKER_OWNER: 'book-editor-diagnostics',
12970
13340
  };
13341
+
12971
13342
  /**
12972
- * Converts editor diagnostic severity to Monaco marker severity.
13343
+ * Adds visual decorations for separators and code blocks inside `BookEditorMonaco`.
13344
+ *
13345
+ * @private function of BookEditorMonaco
12973
13346
  */
12974
- const toMonacoMarkerSeverity = (severity) => {
13347
+ function useBookEditorMonacoDecorations({ editor, monaco }) {
13348
+ const decorationIdsRef = useRef([]);
13349
+ const codeBlockDecorationIdsRef = useRef([]);
13350
+ useEffect(() => {
13351
+ if (!editor || !monaco) {
13352
+ return;
13353
+ }
13354
+ const updateDecorations = () => {
13355
+ const model = editor.getModel();
13356
+ if (!model) {
13357
+ return;
13358
+ }
13359
+ const text = model.getValue();
13360
+ const matches = text.matchAll(/^---[-]*$/gm);
13361
+ const newDecorations = [];
13362
+ for (const match of matches) {
13363
+ if (match.index === undefined) {
13364
+ continue;
13365
+ }
13366
+ const startPos = model.getPositionAt(match.index);
13367
+ const endPos = model.getPositionAt(match.index + match[0].length);
13368
+ newDecorations.push({
13369
+ range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
13370
+ options: {
13371
+ isWholeLine: true,
13372
+ className: 'separator-line',
13373
+ inlineClassName: 'transparent-text',
13374
+ },
13375
+ });
13376
+ }
13377
+ decorationIdsRef.current = editor.deltaDecorations(decorationIdsRef.current, newDecorations);
13378
+ const lines = text.split(/\r?\n/);
13379
+ const codeBlockDecorations = [];
13380
+ let inCodeBlock = false;
13381
+ let codeBlockStartLine = 0;
13382
+ for (let i = 0; i < lines.length; i++) {
13383
+ const line = lines[i];
13384
+ if (line === null || line === void 0 ? void 0 : line.trim().startsWith('```')) {
13385
+ if (!inCodeBlock) {
13386
+ inCodeBlock = true;
13387
+ codeBlockStartLine = i + 1;
13388
+ }
13389
+ else {
13390
+ inCodeBlock = false;
13391
+ const endLine = i + 1;
13392
+ for (let j = codeBlockStartLine; j <= endLine; j++) {
13393
+ const isFirst = j === codeBlockStartLine;
13394
+ const isLast = j === endLine;
13395
+ codeBlockDecorations.push({
13396
+ range: new monaco.Range(j, 1, j, 1),
13397
+ options: {
13398
+ isWholeLine: true,
13399
+ className: `code-block-box${isFirst ? ' code-block-top' : ''}${isLast ? ' code-block-bottom' : ''}`,
13400
+ },
13401
+ });
13402
+ }
13403
+ }
13404
+ }
13405
+ }
13406
+ codeBlockDecorationIdsRef.current = editor.deltaDecorations(codeBlockDecorationIdsRef.current, codeBlockDecorations);
13407
+ };
13408
+ updateDecorations();
13409
+ const changeListener = editor.onDidChangeModelContent(() => {
13410
+ updateDecorations();
13411
+ });
13412
+ return () => {
13413
+ changeListener.dispose();
13414
+ };
13415
+ }, [editor, monaco]);
13416
+ }
13417
+
13418
+ const toMonacoMarkerSeverity = (monaco, severity) => {
12975
13419
  if (severity === 'warning') {
12976
- return MarkerSeverity.Warning;
13420
+ return monaco.MarkerSeverity.Warning;
12977
13421
  }
12978
13422
  if (severity === 'info') {
12979
- return MarkerSeverity.Info;
13423
+ return monaco.MarkerSeverity.Info;
12980
13424
  }
12981
13425
  if (severity === 'hint') {
12982
- return MarkerSeverity.Hint;
12983
- }
12984
- return MarkerSeverity.Error;
12985
- };
12986
- /**
12987
- * Builds the placeholder text for an in-progress upload entry.
12988
- */
12989
- const getUploadPlaceholderText = (fileName) => `KNOWLEDGE ⏳ Uploading ${fileName}...`;
12990
- /**
12991
- * Formats a byte size into a readable string.
12992
- */
12993
- const formatBytes = (bytes) => {
12994
- if (!Number.isFinite(bytes) || bytes <= 0) {
12995
- return '0 B';
12996
- }
12997
- const units = ['B', 'KB', 'MB', 'GB', 'TB'];
12998
- const exponent = Math.min(units.length - 1, Math.floor(Math.log(bytes) / Math.log(1024)));
12999
- const value = bytes / Math.pow(1024, exponent);
13000
- const precision = value >= 10 || exponent === 0 ? 0 : 1;
13001
- return `${value.toFixed(precision)} ${units[exponent]}`;
13002
- };
13003
- /**
13004
- * Formats a duration in milliseconds into a readable timer string.
13005
- */
13006
- const formatDuration = (durationMs) => {
13007
- if (!Number.isFinite(durationMs) || durationMs <= 0) {
13008
- return '0:00';
13009
- }
13010
- const totalSeconds = Math.floor(durationMs / 1000);
13011
- const seconds = totalSeconds % 60;
13012
- const minutes = Math.floor(totalSeconds / 60) % 60;
13013
- const hours = Math.floor(totalSeconds / 3600);
13014
- const paddedSeconds = `${seconds}`.padStart(2, '0');
13015
- if (hours > 0) {
13016
- const paddedMinutes = `${minutes}`.padStart(2, '0');
13017
- return `${hours}:${paddedMinutes}:${paddedSeconds}`;
13426
+ return monaco.MarkerSeverity.Hint;
13018
13427
  }
13019
- return `${minutes}:${paddedSeconds}`;
13428
+ return monaco.MarkerSeverity.Error;
13020
13429
  };
13021
13430
  /**
13022
- * Generates a unique id for upload tracking.
13431
+ * Synchronizes Monaco markers with the diagnostics provided to `BookEditorMonaco`.
13432
+ *
13433
+ * @private function of BookEditorMonaco
13023
13434
  */
13024
- const createUploadId = () => {
13025
- if (typeof crypto !== 'undefined' && 'randomUUID' in crypto) {
13026
- return crypto.randomUUID();
13027
- }
13028
- uploadSequenceCounter += 1;
13029
- return `upload-${Date.now()}-${uploadSequenceCounter}`;
13030
- };
13435
+ function useBookEditorMonacoDiagnostics({ editor, monaco, diagnostics }) {
13436
+ useEffect(() => {
13437
+ if (!editor || !monaco) {
13438
+ return;
13439
+ }
13440
+ const model = editor.getModel();
13441
+ if (!model) {
13442
+ return;
13443
+ }
13444
+ const markers = (diagnostics || []).map((diagnostic) => ({
13445
+ startLineNumber: diagnostic.startLineNumber,
13446
+ startColumn: diagnostic.startColumn,
13447
+ endLineNumber: diagnostic.endLineNumber,
13448
+ endColumn: diagnostic.endColumn,
13449
+ message: diagnostic.message,
13450
+ source: diagnostic.source,
13451
+ severity: toMonacoMarkerSeverity(monaco, diagnostic.severity),
13452
+ }));
13453
+ monaco.editor.setModelMarkers(model, BookEditorMonacoConstants.DIAGNOSTIC_MARKER_OWNER, markers);
13454
+ return () => {
13455
+ monaco.editor.setModelMarkers(model, BookEditorMonacoConstants.DIAGNOSTIC_MARKER_OWNER, []);
13456
+ };
13457
+ }, [diagnostics, editor, monaco]);
13458
+ }
13459
+
13031
13460
  /**
13032
- * Detects whether an error represents an aborted upload.
13461
+ * Gets all available commitment definitions
13462
+ * @returns Array of all commitment definitions
13463
+ *
13464
+ * @public exported from `@promptbook/core`
13033
13465
  */
13034
- const isAbortError = (error) => {
13035
- if (!error) {
13036
- return false;
13037
- }
13038
- if (typeof error === 'object' && 'name' in error) {
13039
- return error.name === 'AbortError';
13040
- }
13041
- const message = error instanceof Error ? error.message : String(error);
13042
- return message.toLowerCase().includes('abort');
13043
- };
13466
+ function getAllCommitmentDefinitions() {
13467
+ return $deepFreeze([...COMMITMENT_REGISTRY]);
13468
+ }
13469
+
13044
13470
  /**
13045
- * Extracts the underlying reference value from a raw token.
13471
+ * Agent reference helpers for `BookEditorMonaco`.
13472
+ *
13473
+ * @private function of BookEditorMonaco
13046
13474
  */
13475
+ const AGENT_URL_REFERENCE_REGEX = /https?:\/\/[^\s{}]+\/agents\/[^\s{}]+/i;
13476
+ 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;
13477
+ const AGENT_REFERENCE_BRACED_REGEX = /^\{([\s\S]+)\}$/;
13478
+ const AGENT_REFERENCE_HIGHLIGHT_REGEXES = [
13479
+ /\{https?:\/\/[^\s{}]+\/agents\/[^\s{}]+\}/,
13480
+ /https?:\/\/[^\s{}]+\/agents\/[^\s{}]+/,
13481
+ /\{[A-Za-z0-9_-]{6,}\}/,
13482
+ /\{[^{}\r\n]*\s+[^{}\r\n]*\}/,
13483
+ /@[A-Za-z0-9_-]+/,
13484
+ ];
13047
13485
  const extractAgentReferenceValue = (token) => {
13048
13486
  if (token.startsWith('@')) {
13049
13487
  return token.slice(1).trim();
@@ -13054,9 +13492,6 @@ const extractAgentReferenceValue = (token) => {
13054
13492
  }
13055
13493
  return token.trim();
13056
13494
  };
13057
- /**
13058
- * Resolves a compact or absolute reference token into a clickable agent URL.
13059
- */
13060
13495
  const resolveAgentReferenceToUrl = (referenceValue) => {
13061
13496
  const normalizedReferenceValue = referenceValue.replace(/[),.;!?]+$/g, '').trim();
13062
13497
  if (!normalizedReferenceValue) {
@@ -13072,9 +13507,6 @@ const resolveAgentReferenceToUrl = (referenceValue) => {
13072
13507
  const origin = typeof window !== 'undefined' ? window.location.origin : '';
13073
13508
  return `${origin}/agents/${encoded}`;
13074
13509
  };
13075
- /**
13076
- * Finds all agent references that should be highlighted and ctrl/cmd-clickable.
13077
- */
13078
13510
  const extractAgentReferenceMatches = (content) => {
13079
13511
  const matches = [];
13080
13512
  let match;
@@ -13106,147 +13538,423 @@ const extractAgentReferenceMatches = (content) => {
13106
13538
  return matches;
13107
13539
  };
13108
13540
  /**
13109
- * @private Internal component used by `BookEditor`
13541
+ * Agent reference helpers for `BookEditorMonaco`.
13542
+ *
13543
+ * @private function of BookEditorMonaco
13110
13544
  */
13111
- let notebookStyleCounter = 0;
13545
+ const BookEditorMonacoTokenization = {
13546
+ AGENT_URL_REFERENCE_REGEX,
13547
+ AGENT_REFERENCE_TOKEN_REGEX,
13548
+ AGENT_REFERENCE_BRACED_REGEX,
13549
+ AGENT_REFERENCE_HIGHLIGHT_REGEXES,
13550
+ extractAgentReferenceValue,
13551
+ resolveAgentReferenceToUrl,
13552
+ extractAgentReferenceMatches,
13553
+ };
13554
+
13112
13555
  /**
13113
- * @private Internal component used by `BookEditor`
13556
+ * Registers the language helpers that power Monaco inside `BookEditorMonaco`.
13557
+ *
13558
+ * @private function of BookEditorMonaco
13114
13559
  */
13115
- function BookEditorMonaco(props) {
13116
- const { value, onChange, diagnostics, isReadonly, translations, onFileUpload, isUploadButtonShown, isCameraButtonShown, isDownloadButtonShown, isAboutButtonShown = true, isFullscreenButtonShown = true, onFullscreenClick, isFullscreen, zoom = 1,
13117
- // [🚱]> sync,
13118
- } = props;
13119
- const zoomLevel = zoom;
13120
- const scaledLineHeight = Math.round(LINE_HEIGHT * zoomLevel);
13121
- const scaledContentPaddingLeft = Math.max(8, Math.round(CONTENT_PADDING_LEFT * zoomLevel));
13122
- const scaledVerticalLineLeft = Math.max(0, Math.round(VERTICAL_LINE_LEFT * zoomLevel));
13123
- const baseFontSize = 20;
13124
- const scaledFontSize = Math.max(8, Math.round(baseFontSize * zoomLevel));
13125
- const scaledScrollbarSize = Math.max(2, Math.round(5 * zoomLevel));
13126
- const [isDragOver, setIsDragOver] = useState(false);
13127
- const [editor, setEditor] = useState(null);
13128
- const [isFocused, setIsFocused] = useState(false);
13129
- const [isTouchDevice, setIsTouchDevice] = useState(false);
13130
- const [isSavedShown, setIsSavedShown] = useState(false);
13131
- const [uploadItems, setUploadItemsState] = useState([]);
13132
- const monaco = useMonaco();
13133
- // stable unique id for this instance
13134
- const instanceIdRef = useRef(++notebookStyleCounter);
13135
- const instanceClass = `book-editor-instance-${instanceIdRef.current}`;
13136
- // [1] Track touch start position to differentiate tap from drag
13137
- const touchStartRef = useRef(null);
13138
- const fileUploadInputRef = useRef(null);
13139
- const cameraInputRef = useRef(null);
13140
- const uploadItemsRef = useRef([]);
13141
- const uploadFilesRef = useRef(new Map());
13142
- const uploadDecorationIdsRef = useRef(new Map());
13143
- const uploadControllersRef = useRef(new Map());
13144
- const uploadQueueTimerRef = useRef(null);
13145
- const editorUpdateTimerRef = useRef(null);
13146
- const progressUpdateTimerRef = useRef(null);
13147
- const pendingReplacementsRef = useRef([]);
13148
- const pendingProgressUpdatesRef = useRef(new Map());
13149
- const processUploadQueueRef = useRef(() => undefined);
13150
- /*
13151
- Note+TODO: [🚱] Yjs logic is commented out because it causes errors in the build of Next.js projects:
13152
- > ▲ Next.js 15.4.5
13153
- > - Experiments (use with caution):
13154
- > ✓ externalDir
13155
- >
13156
- > Creating an optimized production build ...
13157
- > ✓ Compiled successfully in 17.0s
13158
- > ✓ Linting and checking validity of types
13159
- > ✓ Collecting page data
13160
- > Error occurred prerendering page "/". Read more: https://nextjs.org/docs/messages/prerender-error
13161
- > ReferenceError: window is not defined
13162
- > at 27132 (C:\Users\me\work\ai\promptbook\apps\book-components\.next\server\chunks\134.js:1:525485)
13163
- > at c (C:\Users\me\work\ai\promptbook\apps\book-components\.next\server\webpack-runtime.js:1:128)
13164
- > at 89192 (C:\Users\me\work\ai\promptbook\apps\book-components\.next\server\chunks\462.js:711:10466)
13165
- > at Object.c [as require] (C:\Users\me\work\ai\promptbook\apps\book-components\.next\server\webpack-runtime.js:1:128) {
13166
- > digest: '2500543835'
13167
- > }
13168
- > Export encountered an error on /page: /, exiting the build.
13169
- > ⨯ Next.js build worker exited with code: 1 and signal: null
13170
-
13171
-
13172
- const [editor, setEditor] = useState<TODO_any>(null);
13173
-
13560
+ function useBookEditorMonacoLanguage({ monaco }) {
13174
13561
  useEffect(() => {
13175
- if (!monaco || !editor || !sync) {
13562
+ if (!monaco) {
13176
13563
  return;
13177
13564
  }
13178
-
13179
- const ydoc = new Y.Doc();
13180
- const provider = new WebsocketProvider(sync.serverUrl, sync.roomName, ydoc);
13181
- const ytext = ydoc.getText('monaco');
13182
-
13183
- const binding = new MonacoBinding(ytext, editor.getModel(), new Set([editor]), provider.awareness);
13184
-
13565
+ monaco.languages.register({ id: BookEditorMonacoConstants.BOOK_LANGUAGE_ID });
13566
+ const commitmentTypes = [...new Set(getAllCommitmentDefinitions().map(({ type }) => type))];
13567
+ const commitmentRegex = new RegExp(`^\\s*(${commitmentTypes
13568
+ .sort((a, b) => b.length - a.length)
13569
+ .map((type) => (type === 'META' ? 'META\\s+\\w+' : type.replace(/\s+/, '\\s+')))
13570
+ .join('|')})(?=\\s|$)`);
13571
+ const parameterRegex = /@([a-zA-Z0-9_á-žÁ-Žč-řČ-Řš-žŠ-Žа-яА-ЯёЁ]+)/;
13572
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13573
+ const bookRules = [
13574
+ [/^---[-]*$/, ''],
13575
+ [/^```.*$/, 'code-block', '@codeblock'],
13576
+ ...BookEditorMonacoTokenization.AGENT_REFERENCE_HIGHLIGHT_REGEXES.map((regex) => [
13577
+ regex,
13578
+ 'agent-reference',
13579
+ ]),
13580
+ [parameterRegex, 'parameter'],
13581
+ [/\{[^}]+\}/, 'parameter'],
13582
+ [commitmentRegex, 'commitment'],
13583
+ ];
13584
+ const tokenProvider = monaco.languages.setMonarchTokensProvider(BookEditorMonacoConstants.BOOK_LANGUAGE_ID, {
13585
+ ignoreCase: true,
13586
+ tokenizer: {
13587
+ root: [
13588
+ [/^\s*$/, 'empty'],
13589
+ [/^-*$/, 'line'],
13590
+ [/^```.*$/, 'code-block', '@codeblock'],
13591
+ [/^.*$/, 'title', '@body'],
13592
+ [commitmentRegex, 'commitment'],
13593
+ ],
13594
+ body: bookRules,
13595
+ codeblock: [
13596
+ [/^```.*$/, 'code-block', '@pop'],
13597
+ [/^.*$/, 'code-block'],
13598
+ ],
13599
+ },
13600
+ });
13601
+ const completionProvider = monaco.languages.registerCompletionItemProvider(BookEditorMonacoConstants.BOOK_LANGUAGE_ID, {
13602
+ provideCompletionItems: (model, position) => {
13603
+ const word = model.getWordUntilPosition(position);
13604
+ const range = {
13605
+ startLineNumber: position.lineNumber,
13606
+ endLineNumber: position.lineNumber,
13607
+ startColumn: word.startColumn,
13608
+ endColumn: word.endColumn,
13609
+ };
13610
+ const suggestions = commitmentTypes.map((type) => ({
13611
+ label: type,
13612
+ kind: monaco.languages.CompletionItemKind.Keyword,
13613
+ insertText: type,
13614
+ range,
13615
+ }));
13616
+ return { suggestions };
13617
+ },
13618
+ });
13619
+ const linkProvider = monaco.languages.registerLinkProvider(BookEditorMonacoConstants.BOOK_LANGUAGE_ID, {
13620
+ provideLinks: (model) => {
13621
+ const content = model.getValue();
13622
+ const links = BookEditorMonacoTokenization.extractAgentReferenceMatches(content).map((reference) => {
13623
+ const startPos = model.getPositionAt(reference.index);
13624
+ const endPos = model.getPositionAt(reference.index + reference.length);
13625
+ return {
13626
+ range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
13627
+ url: reference.url,
13628
+ tooltip: `Open agent: ${reference.value}`,
13629
+ };
13630
+ });
13631
+ return { links };
13632
+ },
13633
+ });
13634
+ monaco.editor.defineTheme('book-theme', {
13635
+ base: 'vs',
13636
+ inherit: true,
13637
+ rules: [
13638
+ {
13639
+ token: 'title',
13640
+ foreground: PROMPTBOOK_SYNTAX_COLORS.TITLE.toHex(),
13641
+ fontStyle: 'bold underline',
13642
+ },
13643
+ {
13644
+ token: 'commitment',
13645
+ foreground: PROMPTBOOK_SYNTAX_COLORS.COMMITMENT.toHex(),
13646
+ fontStyle: 'bold',
13647
+ },
13648
+ {
13649
+ token: 'parameter',
13650
+ foreground: PROMPTBOOK_SYNTAX_COLORS.PARAMETER.toHex(),
13651
+ fontStyle: 'italic',
13652
+ },
13653
+ {
13654
+ token: 'agent-reference',
13655
+ foreground: PROMPTBOOK_SYNTAX_COLORS.COMMITMENT.toHex(),
13656
+ fontStyle: 'underline',
13657
+ },
13658
+ {
13659
+ token: 'code-block',
13660
+ foreground: PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex(),
13661
+ },
13662
+ ],
13663
+ colors: {
13664
+ 'editor.scrollbarSlider.background': '#E0E0E0',
13665
+ 'editor.scrollbarSlider.hoverBackground': '#D0D0D0',
13666
+ 'editor.scrollbarSlider.activeBackground': '#C0C0C0',
13667
+ },
13668
+ });
13669
+ monaco.editor.setTheme('book-theme');
13185
13670
  return () => {
13186
- binding.destroy();
13187
- provider.destroy();
13671
+ tokenProvider.dispose();
13672
+ completionProvider.dispose();
13673
+ linkProvider.dispose();
13188
13674
  };
13189
- }, [monaco, editor, sync]);
13190
- */
13675
+ }, [monaco]);
13676
+ }
13677
+
13678
+ /**
13679
+ * Relative Y offset multiplier for aligning line background with Monaco rendering.
13680
+ *
13681
+ * @private function of BookEditorMonaco
13682
+ */
13683
+ const BACKGROUND_POSITION_Y_MULTIPLIER = -0.1;
13684
+ /**
13685
+ * Injects notebook-inspired styling that is unique per `BookEditorMonaco` instance.
13686
+ *
13687
+ * @private function of BookEditorMonaco
13688
+ */
13689
+ function useBookEditorMonacoStyles({ instanceClass, scaledLineHeight, scaledContentPaddingLeft, scaledVerticalLineLeft, zoomLevel, }) {
13191
13690
  useEffect(() => {
13192
- // Note: Test on client side only
13193
- setIsTouchDevice(typeof window !== 'undefined' && window.matchMedia('(pointer: coarse)').matches);
13194
- }, []);
13195
- /**
13196
- * Updates upload items state and keeps the ref in sync.
13197
- */
13198
- const setUploadItems = useCallback((updater) => {
13199
- const next = updater(uploadItemsRef.current);
13200
- uploadItemsRef.current = next;
13201
- setUploadItemsState(next);
13202
- }, []);
13203
- /**
13204
- * Batches upload progress updates to reduce render churn.
13205
- */
13206
- const queueProgressUpdate = useCallback((uploadId, progress, loadedBytes, totalBytes) => {
13207
- pendingProgressUpdatesRef.current.set(uploadId, {
13208
- progress,
13209
- loadedBytes,
13210
- totalBytes,
13211
- });
13212
- if (progressUpdateTimerRef.current !== null) {
13213
- return;
13214
- }
13215
- progressUpdateTimerRef.current = window.setTimeout(() => {
13216
- progressUpdateTimerRef.current = null;
13217
- const updates = pendingProgressUpdatesRef.current;
13218
- pendingProgressUpdatesRef.current = new Map();
13219
- setUploadItems((items) => items.map((item) => {
13220
- const update = updates.get(item.id);
13221
- if (!update) {
13222
- return item;
13223
- }
13224
- return {
13225
- ...item,
13226
- progress: update.progress,
13227
- loadedBytes: update.loadedBytes,
13228
- totalBytes: update.totalBytes,
13229
- };
13230
- }));
13231
- }, UPLOAD_PROGRESS_DEBOUNCE_MS);
13232
- }, [setUploadItems]);
13233
- /**
13234
- * Applies queued placeholder replacements in a single editor edit batch.
13235
- */
13236
- const flushEditorReplacements = useCallback(() => {
13237
- if (!editor) {
13238
- return;
13239
- }
13240
- const model = editor.getModel();
13241
- if (!model) {
13242
- return;
13691
+ const styleId = `notebook-margin-line-style-${instanceClass}`;
13692
+ let style = document.getElementById(styleId);
13693
+ if (!style) {
13694
+ style = document.createElement('style');
13695
+ style.id = styleId;
13696
+ document.head.appendChild(style);
13243
13697
  }
13244
- const replacements = pendingReplacementsRef.current;
13245
- pendingReplacementsRef.current = [];
13246
- const edits = [];
13247
- const decorationsToRemove = [];
13248
- for (const replacement of replacements) {
13249
- const range = model.getDecorationRange(replacement.decorationId);
13698
+ style.innerHTML = `
13699
+
13700
+ @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');
13701
+ /* <- [🚚] */
13702
+
13703
+ .${instanceClass} .monaco-editor .view-lines {
13704
+ background-image: linear-gradient(to bottom, transparent ${scaledLineHeight - 1}px, ${PROMPTBOOK_SYNTAX_COLORS.LINE.toHex()} ${scaledLineHeight - 1}px);
13705
+ background-size: calc(100% + ${scaledContentPaddingLeft}px) ${scaledLineHeight}px;
13706
+ background-position-x: -${scaledContentPaddingLeft}px;
13707
+ background-position-y: ${scaledLineHeight * BACKGROUND_POSITION_Y_MULTIPLIER}px;
13708
+ }
13709
+ .${instanceClass} .monaco-editor .overflow-guard::before {
13710
+ content: '';
13711
+ position: absolute;
13712
+ left: ${scaledVerticalLineLeft}px;
13713
+ top: 0;
13714
+ bottom: 0;
13715
+ width: 1px;
13716
+ background-color: ${PROMPTBOOK_SYNTAX_COLORS.LINE.toHex()};
13717
+ z-index: 10;
13718
+ }
13719
+
13720
+ .${instanceClass} .monaco-editor .separator-line {
13721
+ background: linear-gradient(
13722
+ to bottom,
13723
+ transparent ${scaledLineHeight * 0.9 - 2}px,
13724
+ ${PROMPTBOOK_SYNTAX_COLORS.SEPARATOR.toHex()} ${scaledLineHeight * 0.9 - 2}px,
13725
+ ${PROMPTBOOK_SYNTAX_COLORS.SEPARATOR.toHex()} ${scaledLineHeight * 0.9 + 1}px,
13726
+ transparent ${scaledLineHeight * 0.9 + 1}px
13727
+ );
13728
+ }
13729
+
13730
+ .${instanceClass} .monaco-editor .transparent-text {
13731
+ color: transparent !important;
13732
+ }
13733
+
13734
+ .${instanceClass} .monaco-editor .code-block-box {
13735
+ background-color: #f5f5f566;
13736
+ border-left: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
13737
+ border-right: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
13738
+ padding-left: ${Math.round(8 * zoomLevel)}px;
13739
+ padding-right: ${Math.round(8 * zoomLevel)}px;
13740
+ }
13741
+
13742
+ .${instanceClass} .monaco-editor .code-block-top {
13743
+ border-top: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
13744
+ border-top-left-radius: ${Math.round(10 * zoomLevel)}px;
13745
+ border-top-right-radius: ${Math.round(10 * zoomLevel)}px;
13746
+ overflow: hidden;
13747
+ }
13748
+
13749
+ .${instanceClass} .monaco-editor .code-block-bottom {
13750
+ border-bottom: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
13751
+ border-bottom-left-radius: ${Math.round(10 * zoomLevel)}px;
13752
+ border-bottom-right-radius: ${Math.round(10 * zoomLevel)}px;
13753
+ overflow: hidden;
13754
+ }
13755
+ `;
13756
+ return () => {
13757
+ // Style intentionally persists to avoid flash of unstyled content when using fast refresh.
13758
+ };
13759
+ }, [instanceClass, scaledLineHeight, scaledContentPaddingLeft, scaledVerticalLineLeft, zoomLevel]);
13760
+ }
13761
+
13762
+ /**
13763
+ * Helper for manipulating agent books in-memory.
13764
+ *
13765
+ * @private internal helper for `@promptbook/core`
13766
+ */
13767
+ class BookEditable {
13768
+ /**
13769
+ * Creates a mutable view over the supplied book content.
13770
+ *
13771
+ * @param book - Agent source text to work with.
13772
+ */
13773
+ constructor(book) {
13774
+ this.lines = book.split(/\r?\n/);
13775
+ }
13776
+ /**
13777
+ * Creates a new instance from the supplied book text.
13778
+ *
13779
+ * @param book - Agent source text to work with.
13780
+ * @returns Editable view over the book content.
13781
+ */
13782
+ static from(book) {
13783
+ return new BookEditable(book);
13784
+ }
13785
+ /**
13786
+ * Returns the editable content as a string_book.
13787
+ *
13788
+ * @returns Current book content with original line breaks preserved.
13789
+ */
13790
+ toString() {
13791
+ return this.lines.join('\n');
13792
+ }
13793
+ /**
13794
+ * Checks whether the book contains any non-empty lines.
13795
+ *
13796
+ * @returns `true` when the book has meaningful content beyond blank lines.
13797
+ */
13798
+ hasNonEmptyContent() {
13799
+ return this.lines.some((line) => line.trim() !== '');
13800
+ }
13801
+ /**
13802
+ * Finds the last line index whose trimmed text matches the commitment name.
13803
+ *
13804
+ * @param commitment - Commitment keyword to locate (for example `CLOSED`).
13805
+ * @returns Zero-based line index or `null` when the commitment is absent.
13806
+ */
13807
+ findLastCommitmentLineIndex(commitment) {
13808
+ const normalized = commitment.trim().toUpperCase();
13809
+ for (let lineIndex = this.lines.length - 1; lineIndex >= 0; lineIndex -= 1) {
13810
+ const line = this.lines[lineIndex];
13811
+ if ((line === null || line === void 0 ? void 0 : line.trim().toUpperCase()) === normalized) {
13812
+ return lineIndex;
13813
+ }
13814
+ }
13815
+ return null;
13816
+ }
13817
+ }
13818
+
13819
+ /**
13820
+ * Number of seconds in one hour.
13821
+ *
13822
+ * @private function of BookEditorMonaco
13823
+ */
13824
+ const SECONDS_IN_HOUR = 3600;
13825
+ /**
13826
+ * Formatting helpers for `BookEditorMonaco`.
13827
+ *
13828
+ * @private function of BookEditorMonaco
13829
+ */
13830
+ const BookEditorMonacoFormatting = {
13831
+ getUploadPlaceholderText: (fileName) => `KNOWLEDGE ⏳ Uploading ${fileName}...`,
13832
+ formatBytes: (bytes) => {
13833
+ if (!Number.isFinite(bytes) || bytes <= 0) {
13834
+ return '0 B';
13835
+ }
13836
+ const units = ['B', 'KB', 'MB', 'GB', 'TB'];
13837
+ const exponent = Math.min(units.length - 1, Math.floor(Math.log(bytes) / Math.log(1024)));
13838
+ const value = bytes / Math.pow(1024, exponent);
13839
+ const precision = value >= 10 || exponent === 0 ? 0 : 1;
13840
+ return `${value.toFixed(precision)} ${units[exponent]}`;
13841
+ },
13842
+ formatDuration: (durationMs) => {
13843
+ if (!Number.isFinite(durationMs) || durationMs <= 0) {
13844
+ return '0:00';
13845
+ }
13846
+ const totalSeconds = Math.floor(durationMs / 1000);
13847
+ const seconds = totalSeconds % 60;
13848
+ const minutes = Math.floor(totalSeconds / 60) % 60;
13849
+ const hours = Math.floor(totalSeconds / SECONDS_IN_HOUR);
13850
+ const paddedSeconds = `${seconds}`.padStart(2, '0');
13851
+ if (hours > 0) {
13852
+ const paddedMinutes = `${minutes}`.padStart(2, '0');
13853
+ return `${hours}:${paddedMinutes}:${paddedSeconds}`;
13854
+ }
13855
+ return `${minutes}:${paddedSeconds}`;
13856
+ },
13857
+ };
13858
+
13859
+ /**
13860
+ * Delay before clearing completed uploads from UI.
13861
+ *
13862
+ * @private function of BookEditorMonaco
13863
+ */
13864
+ const COMPLETED_UPLOADS_CLEAR_DELAY_MS = 1500;
13865
+ /**
13866
+ * Generates deterministic ids for uploads that support server preloading.
13867
+ *
13868
+ * @private function of BookEditorMonaco
13869
+ */
13870
+ const createUploadId = (() => {
13871
+ let sequence = 0;
13872
+ return () => {
13873
+ if (typeof crypto !== 'undefined' && 'randomUUID' in crypto) {
13874
+ return crypto.randomUUID();
13875
+ }
13876
+ sequence += 1;
13877
+ return `upload-${Date.now()}-${sequence}`;
13878
+ };
13879
+ })();
13880
+ /**
13881
+ * Recognizes abort signals that should pause but not mark uploads as failed.
13882
+ *
13883
+ * @private function of BookEditorMonaco
13884
+ */
13885
+ const isAbortError = (error) => {
13886
+ if (!error) {
13887
+ return false;
13888
+ }
13889
+ if (typeof error === 'object' && 'name' in error) {
13890
+ return error.name === 'AbortError';
13891
+ }
13892
+ const message = error instanceof Error ? error.message : String(error);
13893
+ return message.toLowerCase().includes('abort');
13894
+ };
13895
+ /**
13896
+ * Handles file uploads and placeholder rendering inside `BookEditorMonaco`.
13897
+ *
13898
+ * @private function of BookEditorMonaco
13899
+ */
13900
+ function useBookEditorMonacoUploads({ editor, monaco, onFileUpload }) {
13901
+ const [uploadItems, setUploadItemsState] = useState([]);
13902
+ const uploadItemsRef = useRef([]);
13903
+ const uploadFilesRef = useRef(new Map());
13904
+ const uploadDecorationIdsRef = useRef(new Map());
13905
+ const uploadControllersRef = useRef(new Map());
13906
+ const uploadQueueTimerRef = useRef(null);
13907
+ const editorUpdateTimerRef = useRef(null);
13908
+ const progressUpdateTimerRef = useRef(null);
13909
+ const pendingReplacementsRef = useRef([]);
13910
+ const pendingProgressUpdatesRef = useRef(new Map());
13911
+ const processUploadQueueRef = useRef(() => undefined);
13912
+ const setUploadItems = useCallback((updater) => {
13913
+ const next = updater(uploadItemsRef.current);
13914
+ uploadItemsRef.current = next;
13915
+ setUploadItemsState(next);
13916
+ }, []);
13917
+ const queueProgressUpdate = useCallback((uploadId, progress, loadedBytes, totalBytes) => {
13918
+ pendingProgressUpdatesRef.current.set(uploadId, {
13919
+ progress,
13920
+ loadedBytes,
13921
+ totalBytes,
13922
+ });
13923
+ if (progressUpdateTimerRef.current !== null) {
13924
+ return;
13925
+ }
13926
+ progressUpdateTimerRef.current = window.setTimeout(() => {
13927
+ progressUpdateTimerRef.current = null;
13928
+ const updates = pendingProgressUpdatesRef.current;
13929
+ pendingProgressUpdatesRef.current = new Map();
13930
+ setUploadItems((items) => items.map((item) => {
13931
+ const update = updates.get(item.id);
13932
+ if (!update) {
13933
+ return item;
13934
+ }
13935
+ return {
13936
+ ...item,
13937
+ progress: update.progress,
13938
+ loadedBytes: update.loadedBytes,
13939
+ totalBytes: update.totalBytes,
13940
+ };
13941
+ }));
13942
+ }, BookEditorMonacoConstants.UPLOAD_PROGRESS_DEBOUNCE_MS);
13943
+ }, [setUploadItems]);
13944
+ const flushEditorReplacements = useCallback(() => {
13945
+ if (!editor) {
13946
+ return;
13947
+ }
13948
+ const model = editor.getModel();
13949
+ if (!model) {
13950
+ return;
13951
+ }
13952
+ const replacements = pendingReplacementsRef.current;
13953
+ pendingReplacementsRef.current = [];
13954
+ const edits = [];
13955
+ const decorationsToRemove = [];
13956
+ for (const replacement of replacements) {
13957
+ const range = model.getDecorationRange(replacement.decorationId);
13250
13958
  if (!range) {
13251
13959
  uploadDecorationIdsRef.current.delete(replacement.uploadId);
13252
13960
  continue;
@@ -13266,9 +13974,6 @@ function BookEditorMonaco(props) {
13266
13974
  editor.deltaDecorations(decorationsToRemove, []);
13267
13975
  }
13268
13976
  }, [editor]);
13269
- /**
13270
- * Queues a placeholder replacement and debounces editor updates.
13271
- */
13272
13977
  const queueEditorReplacement = useCallback((uploadId, replacementText) => {
13273
13978
  const decorationId = uploadDecorationIdsRef.current.get(uploadId);
13274
13979
  if (!decorationId) {
@@ -13292,11 +13997,8 @@ function BookEditorMonaco(props) {
13292
13997
  editorUpdateTimerRef.current = window.setTimeout(() => {
13293
13998
  editorUpdateTimerRef.current = null;
13294
13999
  flushEditorReplacements();
13295
- }, UPLOAD_EDIT_DEBOUNCE_MS);
14000
+ }, BookEditorMonacoConstants.UPLOAD_EDIT_DEBOUNCE_MS);
13296
14001
  }, [flushEditorReplacements]);
13297
- /**
13298
- * Schedules upload queue processing on the next tick.
13299
- */
13300
14002
  const queueUploadProcessing = useCallback(() => {
13301
14003
  if (uploadQueueTimerRef.current !== null) {
13302
14004
  return;
@@ -13306,9 +14008,6 @@ function BookEditorMonaco(props) {
13306
14008
  processUploadQueueRef.current();
13307
14009
  }, 0);
13308
14010
  }, []);
13309
- /**
13310
- * Starts uploading a queued item.
13311
- */
13312
14011
  const startUpload = useCallback(async (uploadId) => {
13313
14012
  if (!onFileUpload) {
13314
14013
  return;
@@ -13383,9 +14082,6 @@ function BookEditorMonaco(props) {
13383
14082
  queueUploadProcessing();
13384
14083
  }
13385
14084
  }, [onFileUpload, queueEditorReplacement, queueProgressUpdate, queueUploadProcessing, setUploadItems]);
13386
- /**
13387
- * Starts queued uploads up to the concurrency limit.
13388
- */
13389
14085
  const processUploadQueue = useCallback(() => {
13390
14086
  if (!onFileUpload) {
13391
14087
  return;
@@ -13402,9 +14098,6 @@ function BookEditorMonaco(props) {
13402
14098
  });
13403
14099
  }, [onFileUpload, startUpload]);
13404
14100
  processUploadQueueRef.current = processUploadQueue;
13405
- /**
13406
- * Pauses a queued or active upload.
13407
- */
13408
14101
  const pauseUpload = useCallback((uploadId) => {
13409
14102
  setUploadItems((items) => items.map((item) => item.id === uploadId && item.status === 'queued'
13410
14103
  ? {
@@ -13415,9 +14108,6 @@ function BookEditorMonaco(props) {
13415
14108
  const controller = uploadControllersRef.current.get(uploadId);
13416
14109
  controller === null || controller === void 0 ? void 0 : controller.abort();
13417
14110
  }, [setUploadItems]);
13418
- /**
13419
- * Resumes a paused or failed upload by re-queuing it.
13420
- */
13421
14111
  const resumeUpload = useCallback((uploadId) => {
13422
14112
  setUploadItems((items) => items.map((item) => item.id === uploadId
13423
14113
  ? {
@@ -13433,57 +14123,20 @@ function BookEditorMonaco(props) {
13433
14123
  queueUploadProcessing();
13434
14124
  }, [queueUploadProcessing, setUploadItems]);
13435
14125
  useEffect(() => {
13436
- if (!editor) {
13437
- return;
13438
- }
13439
- const focusListener = editor.onDidFocusEditorWidget(() => {
13440
- setIsFocused(true);
13441
- });
13442
- const blurListener = editor.onDidBlurEditorWidget(() => {
13443
- setIsFocused(false);
13444
- });
13445
- const saveAction = editor.addAction({
13446
- id: 'save-book',
13447
- label: 'Save',
13448
- keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS],
13449
- run: () => {
13450
- setIsSavedShown(false);
13451
- setTimeout(() => setIsSavedShown(true), 0);
13452
- // Note: We don't prevent default, so browser's save dialog still opens
13453
- },
13454
- });
13455
14126
  return () => {
13456
- focusListener.dispose();
13457
- blurListener.dispose();
13458
- saveAction.dispose();
13459
- };
13460
- }, [editor, monaco]);
13461
- useEffect(() => {
13462
- if (!isSavedShown) {
13463
- return;
13464
- }
13465
- const timer = setTimeout(() => {
13466
- setIsSavedShown(false);
13467
- }, 2000);
13468
- return () => {
13469
- clearTimeout(timer);
13470
- };
13471
- }, [isSavedShown]);
13472
- useEffect(() => {
13473
- return () => {
13474
- if (uploadQueueTimerRef.current !== null) {
13475
- clearTimeout(uploadQueueTimerRef.current);
13476
- }
13477
- if (editorUpdateTimerRef.current !== null) {
13478
- clearTimeout(editorUpdateTimerRef.current);
13479
- }
13480
- if (progressUpdateTimerRef.current !== null) {
13481
- clearTimeout(progressUpdateTimerRef.current);
13482
- }
13483
- for (const controller of uploadControllersRef.current.values()) {
13484
- controller.abort();
13485
- }
13486
- uploadControllersRef.current.clear();
14127
+ if (uploadQueueTimerRef.current !== null) {
14128
+ clearTimeout(uploadQueueTimerRef.current);
14129
+ }
14130
+ if (editorUpdateTimerRef.current !== null) {
14131
+ clearTimeout(editorUpdateTimerRef.current);
14132
+ }
14133
+ if (progressUpdateTimerRef.current !== null) {
14134
+ clearTimeout(progressUpdateTimerRef.current);
14135
+ }
14136
+ for (const controller of uploadControllersRef.current.values()) {
14137
+ controller.abort();
14138
+ }
14139
+ uploadControllersRef.current.clear();
13487
14140
  };
13488
14141
  }, []);
13489
14142
  useEffect(() => {
@@ -13498,380 +14151,242 @@ function BookEditorMonaco(props) {
13498
14151
  uploadFilesRef.current.clear();
13499
14152
  uploadDecorationIdsRef.current.clear();
13500
14153
  setUploadItems(() => []);
13501
- }, 1500);
14154
+ }, COMPLETED_UPLOADS_CLEAR_DELAY_MS);
13502
14155
  return () => {
13503
14156
  clearTimeout(timer);
13504
14157
  };
13505
- }, [setUploadItems, uploadItems]);
13506
- useEffect(() => {
13507
- if (!monaco) {
14158
+ }, [uploadItems]);
14159
+ const handleFiles = useCallback(async (files) => {
14160
+ var _a;
14161
+ if (!onFileUpload || !editor || !monaco) {
13508
14162
  return;
13509
14163
  }
13510
- // Register a new language
13511
- monaco.languages.register({ id: BOOK_LANGUAGE_ID });
13512
- const commitmentTypes = [...new Set(getAllCommitmentDefinitions().map(({ type }) => type))];
13513
- const commitmentRegex = new RegExp(`^\\s*(${commitmentTypes
13514
- .sort((a, b) => b.length - a.length) // [1] Prefer longer commitments to avoid partial matching (e.g. LANGUAGES vs LANGUAGE)
13515
- .map((type) => (type === 'META' ? 'META\\s+\\w+' : type.replace(/\s+/, '\\s+')))
13516
- .join('|')})(?=\\s|$)`);
13517
- // Note: Using a broad character set for Latin and Cyrillic to support international characters in parameters.
13518
- // Monarch tokenizer does not support Unicode property escapes like \p{L}.
13519
- const parameterRegex = /@([a-zA-Z0-9_á-žÁ-Žč-řČ-Řš-žŠ-Žа-яА-ЯёЁ]+)/;
13520
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
13521
- const bookRules = [
13522
- [/^---[-]*$/, ''],
13523
- [/^```.*$/, 'code-block', '@codeblock'],
13524
- ...AGENT_REFERENCE_HIGHLIGHT_REGEXES.map((regex) => [regex, 'agent-reference']),
13525
- [parameterRegex, 'parameter'],
13526
- [/\{[^}]+\}/, 'parameter'],
13527
- [commitmentRegex, 'commitment'],
13528
- ];
13529
- // Register a tokens provider for the language
13530
- const tokenProvider = monaco.languages.setMonarchTokensProvider(BOOK_LANGUAGE_ID, {
13531
- ignoreCase: true,
13532
- tokenizer: {
13533
- root: [
13534
- [/^\s*$/, 'empty'],
13535
- [/^-*$/, 'line'],
13536
- [/^```.*$/, 'code-block', '@codeblock'],
13537
- [/^.*$/, 'title', '@body'],
13538
- [commitmentRegex, 'commitment'],
13539
- ],
13540
- body: bookRules,
13541
- codeblock: [
13542
- [/^```.*$/, 'code-block', '@pop'],
13543
- [/^.*$/, 'code-block'],
13544
- ],
13545
- },
13546
- });
13547
- // Register a completion item provider for the language
13548
- const completionProvider = monaco.languages.registerCompletionItemProvider(BOOK_LANGUAGE_ID, {
13549
- provideCompletionItems: (model, position) => {
13550
- const word = model.getWordUntilPosition(position);
13551
- const range = {
13552
- startLineNumber: position.lineNumber,
13553
- endLineNumber: position.lineNumber,
13554
- startColumn: word.startColumn,
13555
- endColumn: word.endColumn,
13556
- };
13557
- const suggestions = commitmentTypes.map((type) => ({
13558
- label: type,
13559
- kind: monaco.languages.CompletionItemKind.Keyword,
13560
- insertText: type,
13561
- range: range,
13562
- }));
13563
- return { suggestions: suggestions };
13564
- },
13565
- });
13566
- const linkProvider = monaco.languages.registerLinkProvider(BOOK_LANGUAGE_ID, {
13567
- provideLinks: (model) => {
13568
- const content = model.getValue();
13569
- const links = extractAgentReferenceMatches(content).map((reference) => {
13570
- const startPos = model.getPositionAt(reference.index);
13571
- const endPos = model.getPositionAt(reference.index + reference.length);
13572
- return {
13573
- range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
13574
- url: reference.url,
13575
- tooltip: `Open agent: ${reference.value}`,
13576
- };
13577
- });
13578
- return { links };
13579
- },
13580
- });
13581
- monaco.editor.defineTheme('book-theme', {
13582
- base: 'vs',
13583
- inherit: true,
13584
- rules: [
13585
- {
13586
- token: 'title',
13587
- foreground: PROMPTBOOK_SYNTAX_COLORS.TITLE.toHex(),
13588
- // [🚚]> fontStyle: 'underline italic',
13589
- fontStyle: 'bold underline',
13590
- },
13591
- {
13592
- token: 'commitment',
13593
- foreground: PROMPTBOOK_SYNTAX_COLORS.COMMITMENT.toHex(),
13594
- fontStyle: 'bold',
13595
- },
13596
- {
13597
- token: 'parameter',
13598
- foreground: PROMPTBOOK_SYNTAX_COLORS.PARAMETER.toHex(),
13599
- fontStyle: `italic`,
13600
- },
13601
- {
13602
- token: 'agent-reference',
13603
- foreground: PROMPTBOOK_SYNTAX_COLORS.COMMITMENT.toHex(),
13604
- fontStyle: 'underline',
13605
- },
13606
- {
13607
- token: 'code-block',
13608
- foreground: PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex(),
13609
- },
13610
- ],
13611
- colors: {
13612
- 'editor.scrollbarSlider.background': '#E0E0E0',
13613
- 'editor.scrollbarSlider.hoverBackground': '#D0D0D0',
13614
- 'editor.scrollbarSlider.activeBackground': '#C0C0C0',
13615
- },
13616
- });
13617
- monaco.editor.setTheme('book-theme');
13618
- return () => {
13619
- tokenProvider.dispose();
13620
- completionProvider.dispose();
13621
- linkProvider.dispose();
13622
- };
13623
- }, [monaco]);
13624
- useEffect(() => {
13625
- const styleId = `notebook-margin-line-style-${instanceIdRef.current}`; // <-- unique per instance
13626
- let style = document.getElementById(styleId);
13627
- if (!style) {
13628
- style = document.createElement('style');
13629
- style.id = styleId;
13630
- document.head.appendChild(style);
13631
- }
13632
- style.innerHTML = `
13633
-
13634
- @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');
13635
- /* <- [🚚] */
13636
-
13637
- .${instanceClass} .monaco-editor .view-lines {
13638
- background-image: linear-gradient(to bottom, transparent ${scaledLineHeight - 1}px, ${PROMPTBOOK_SYNTAX_COLORS.LINE.toHex()} ${scaledLineHeight - 1}px);
13639
- background-size: calc(100% + ${scaledContentPaddingLeft}px) ${scaledLineHeight}px;
13640
- background-position-x: -${scaledContentPaddingLeft}px;
13641
- background-position-y: ${scaledLineHeight * -0.1}px;
13642
- }
13643
- .${instanceClass} .monaco-editor .overflow-guard::before {
13644
- content: '';
13645
- position: absolute;
13646
- left: ${scaledVerticalLineLeft}px;
13647
- top: 0;
13648
- bottom: 0;
13649
- width: 1px;
13650
- background-color: ${PROMPTBOOK_SYNTAX_COLORS.LINE.toHex()};
13651
- z-index: 10;
13652
- }
13653
-
13654
- .${instanceClass} .monaco-editor .separator-line {
13655
- background: linear-gradient(
13656
- to bottom,
13657
- transparent ${scaledLineHeight * 0.9 - 2}px,
13658
- ${PROMPTBOOK_SYNTAX_COLORS.SEPARATOR.toHex()} ${scaledLineHeight * 0.9 - 2}px,
13659
- ${PROMPTBOOK_SYNTAX_COLORS.SEPARATOR.toHex()} ${scaledLineHeight * 0.9 + 1}px,
13660
- transparent ${scaledLineHeight * 0.9 + 1}px
13661
- );
13662
- }
13663
-
13664
- .${instanceClass} .monaco-editor .transparent-text {
13665
- color: transparent !important;
13666
- }
13667
-
13668
- .${instanceClass} .monaco-editor .code-block-box {
13669
- background-color: #f5f5f566;
13670
- border-left: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
13671
- border-right: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
13672
- padding-left: ${Math.round(8 * zoomLevel)}px;
13673
- padding-right: ${Math.round(8 * zoomLevel)}px;
13674
- }
13675
-
13676
- .${instanceClass} .monaco-editor .code-block-top {
13677
- border-top: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
13678
- border-top-left-radius: ${Math.round(10 * zoomLevel)}px;
13679
- border-top-right-radius: ${Math.round(10 * zoomLevel)}px;
13680
- overflow: hidden;
13681
- }
13682
-
13683
- .${instanceClass} .monaco-editor .code-block-bottom {
13684
- border-bottom: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
13685
- border-bottom-left-radius: ${Math.round(10 * zoomLevel)}px;
13686
- border-bottom-right-radius: ${Math.round(10 * zoomLevel)}px;
13687
- overflow: hidden;
13688
- }
13689
- `;
13690
- return () => {
13691
- // Note: Style is not removed on purpose to avoid flickering during development with fast refresh
13692
- };
13693
- }, [scaledLineHeight, scaledContentPaddingLeft, scaledVerticalLineLeft]);
13694
- const decorationIdsRef = useRef([]);
13695
- const codeBlockDecorationIdsRef = useRef([]);
13696
- useEffect(() => {
13697
- if (!editor || !monaco) {
14164
+ if (files.length === 0) {
13698
14165
  return;
13699
14166
  }
13700
14167
  const model = editor.getModel();
13701
14168
  if (!model) {
13702
14169
  return;
13703
14170
  }
13704
- const markers = (diagnostics || []).map((diagnostic) => ({
13705
- startLineNumber: diagnostic.startLineNumber,
13706
- startColumn: diagnostic.startColumn,
13707
- endLineNumber: diagnostic.endLineNumber,
13708
- endColumn: diagnostic.endColumn,
13709
- message: diagnostic.message,
13710
- source: diagnostic.source,
13711
- severity: toMonacoMarkerSeverity(diagnostic.severity),
14171
+ const placeholders = files.map((file) => ({
14172
+ id: createUploadId(),
14173
+ file,
14174
+ placeholder: BookEditorMonacoFormatting.getUploadPlaceholderText(file.name),
13712
14175
  }));
13713
- monaco.editor.setModelMarkers(model, DIAGNOSTIC_MARKER_OWNER, markers);
13714
- return () => {
13715
- monaco.editor.setModelMarkers(model, DIAGNOSTIC_MARKER_OWNER, []);
13716
- };
13717
- }, [diagnostics, editor, monaco]);
13718
- useEffect(() => {
13719
- if (!editor || !monaco) {
13720
- return;
14176
+ const currentValue = ((_a = model.getValue()) !== null && _a !== void 0 ? _a : '');
14177
+ const bookEditable = new BookEditable(currentValue);
14178
+ const closedLineIndex = bookEditable.findLastCommitmentLineIndex('CLOSED');
14179
+ const insertingBeforeClosed = closedLineIndex !== null;
14180
+ const insertLine = insertingBeforeClosed ? closedLineIndex + 1 : model.getLineCount();
14181
+ const insertColumn = insertingBeforeClosed ? 1 : model.getLineMaxColumn(insertLine);
14182
+ const shouldAddLeadingLineBreak = !insertingBeforeClosed && Boolean(model.getValue());
14183
+ const prefix = shouldAddLeadingLineBreak ? '\n' : '';
14184
+ const placeholderBlock = placeholders.map((entry) => `${entry.placeholder}\n`).join('');
14185
+ const textToInsert = `${prefix}${placeholderBlock}`;
14186
+ const insertStartOffset = model.getOffsetAt(new monaco.Position(insertLine, insertColumn));
14187
+ editor.executeEdits('upload-placeholders', [
14188
+ {
14189
+ range: new monaco.Range(insertLine, insertColumn, insertLine, insertColumn),
14190
+ text: textToInsert,
14191
+ forceMoveMarkers: true,
14192
+ },
14193
+ ]);
14194
+ const decorations = [];
14195
+ let runningOffset = prefix.length;
14196
+ for (const entry of placeholders) {
14197
+ const startOffset = insertStartOffset + runningOffset;
14198
+ const endOffset = startOffset + entry.placeholder.length;
14199
+ const startPos = model.getPositionAt(startOffset);
14200
+ const endPos = model.getPositionAt(endOffset);
14201
+ decorations.push({
14202
+ range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
14203
+ options: {
14204
+ stickiness: monaco.editor.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
14205
+ },
14206
+ });
14207
+ runningOffset += entry.placeholder.length + 1;
13721
14208
  }
13722
- const updateDecorations = () => {
13723
- const model = editor.getModel();
13724
- if (!model) {
13725
- return;
13726
- }
13727
- const text = model.getValue();
13728
- const matches = text.matchAll(/^---[-]*$/gm);
13729
- const newDecorations = [];
13730
- for (const match of matches) {
13731
- if (match.index === undefined) {
13732
- continue;
13733
- }
13734
- const startPos = model.getPositionAt(match.index);
13735
- const endPos = model.getPositionAt(match.index + match[0].length);
13736
- newDecorations.push({
13737
- range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
13738
- options: {
13739
- isWholeLine: true,
13740
- className: 'separator-line',
13741
- inlineClassName: 'transparent-text',
13742
- },
13743
- });
14209
+ const decorationIds = editor.deltaDecorations([], decorations);
14210
+ placeholders.forEach((entry, index) => {
14211
+ uploadFilesRef.current.set(entry.id, entry.file);
14212
+ const decorationId = decorationIds[index];
14213
+ if (decorationId) {
14214
+ uploadDecorationIdsRef.current.set(entry.id, decorationId);
13744
14215
  }
13745
- decorationIdsRef.current = editor.deltaDecorations(decorationIdsRef.current, newDecorations);
13746
- // Add decorations for code blocks
13747
- const lines = text.split(/\r?\n/);
13748
- const codeBlockDecorations = [];
13749
- let inCodeBlock = false;
13750
- let codeBlockStartLine = 0;
13751
- for (let i = 0; i < lines.length; i++) {
13752
- const line = lines[i];
13753
- if (line === null || line === void 0 ? void 0 : line.trim().startsWith('```')) {
13754
- if (!inCodeBlock) {
13755
- // Starting a code block
13756
- inCodeBlock = true;
13757
- codeBlockStartLine = i + 1; // 1-based line number
13758
- }
13759
- else {
13760
- // Ending a code block
13761
- inCodeBlock = false;
13762
- const endLine = i + 1; // 1-based line number
13763
- // Add decorations for each line in the code block
13764
- for (let j = codeBlockStartLine; j <= endLine; j++) {
13765
- const isFirst = j === codeBlockStartLine;
13766
- const isLast = j === endLine;
13767
- codeBlockDecorations.push({
13768
- range: new monaco.Range(j, 1, j, 1),
13769
- options: {
13770
- isWholeLine: true,
13771
- className: `code-block-box${isFirst ? ' code-block-top' : ''}${isLast ? ' code-block-bottom' : ''}`,
13772
- },
13773
- });
13774
- }
13775
- }
13776
- }
14216
+ });
14217
+ const newUploadItems = placeholders.map((entry) => ({
14218
+ id: entry.id,
14219
+ fileName: entry.file.name,
14220
+ fileSize: entry.file.size,
14221
+ status: 'queued',
14222
+ progress: 0,
14223
+ loadedBytes: 0,
14224
+ totalBytes: entry.file.size,
14225
+ startedAt: null,
14226
+ completedAt: null,
14227
+ }));
14228
+ setUploadItems((items) => [...items, ...newUploadItems]);
14229
+ queueUploadProcessing();
14230
+ }, [onFileUpload, editor, monaco, queueUploadProcessing]);
14231
+ const uploadStats = useMemo(() => {
14232
+ const totalFiles = uploadItems.length;
14233
+ const queuedFiles = uploadItems.filter((item) => item.status === 'queued').length;
14234
+ const uploadingFiles = uploadItems.filter((item) => item.status === 'uploading').length;
14235
+ const pausedFiles = uploadItems.filter((item) => item.status === 'paused').length;
14236
+ const failedFiles = uploadItems.filter((item) => item.status === 'failed').length;
14237
+ const completedFiles = uploadItems.filter((item) => item.status === 'completed').length;
14238
+ const totalBytes = uploadItems.reduce((sum, item) => sum + item.totalBytes, 0);
14239
+ const uploadedBytes = uploadItems.reduce((sum, item) => {
14240
+ const total = item.totalBytes || 0;
14241
+ const loaded = total > 0 ? Math.min(item.loadedBytes, total) : item.loadedBytes;
14242
+ return sum + loaded;
14243
+ }, 0);
14244
+ const progress = totalBytes > 0 ? uploadedBytes / totalBytes : 0;
14245
+ const startedAt = uploadItems.reduce((min, item) => {
14246
+ if (!item.startedAt) {
14247
+ return min;
13777
14248
  }
13778
- codeBlockDecorationIdsRef.current = editor.deltaDecorations(codeBlockDecorationIdsRef.current, codeBlockDecorations);
14249
+ return Math.min(min, item.startedAt);
14250
+ }, Number.POSITIVE_INFINITY);
14251
+ const elapsedMs = Number.isFinite(startedAt) ? Math.max(0, Date.now() - startedAt) : 0;
14252
+ const speedBytesPerSecond = elapsedMs > 0 ? uploadedBytes / (elapsedMs / 1000) : 0;
14253
+ return {
14254
+ totalFiles,
14255
+ queuedFiles,
14256
+ uploadingFiles,
14257
+ pausedFiles,
14258
+ failedFiles,
14259
+ completedFiles,
14260
+ totalBytes,
14261
+ uploadedBytes,
14262
+ progress,
14263
+ elapsedMs,
14264
+ speedBytesPerSecond,
13779
14265
  };
13780
- updateDecorations();
13781
- const changeListener = editor.onDidChangeModelContent(() => {
13782
- updateDecorations();
14266
+ }, [uploadItems]);
14267
+ const activeUploadItems = useMemo(() => uploadItems.filter((item) => item.status !== 'completed'), [uploadItems]);
14268
+ return {
14269
+ activeUploadItems,
14270
+ uploadItems,
14271
+ uploadStats,
14272
+ handleFiles,
14273
+ pauseUpload,
14274
+ resumeUpload,
14275
+ };
14276
+ }
14277
+
14278
+ const UPLOAD_STATUS_LABELS = {
14279
+ queued: 'Queued',
14280
+ uploading: 'Uploading',
14281
+ paused: 'Paused',
14282
+ completed: 'Completed',
14283
+ failed: 'Failed',
14284
+ };
14285
+ /**
14286
+ * Shows upload progress details for active uploads inside `BookEditorMonaco`.
14287
+ *
14288
+ * @private function of BookEditorMonaco
14289
+ */
14290
+ function BookEditorMonacoUploadPanel({ activeUploadItems, uploadStats, pauseUpload, resumeUpload, }) {
14291
+ if (activeUploadItems.length === 0) {
14292
+ return null;
14293
+ }
14294
+ return (jsxs("div", { className: styles$d.uploadPanel, role: "status", "aria-live": "polite", children: [jsxs("div", { className: styles$d.uploadPanelHeader, children: [jsx("div", { className: styles$d.uploadPanelTitle, children: "Uploads" }), jsxs("div", { className: styles$d.uploadPanelHeaderMeta, children: [uploadStats.uploadingFiles + uploadStats.queuedFiles, " active / ", uploadStats.totalFiles, " total"] })] }), jsxs("div", { className: styles$d.uploadPanelSummary, children: [jsxs("div", { children: ["Files: ", uploadStats.totalFiles, " total, ", uploadStats.completedFiles, " done"] }), jsxs("div", { children: ["Data: ", BookEditorMonacoFormatting.formatBytes(uploadStats.uploadedBytes), " /", ' ', BookEditorMonacoFormatting.formatBytes(uploadStats.totalBytes)] }), jsxs("div", { children: ["Speed:", ' ', uploadStats.speedBytesPerSecond > 0
14295
+ ? `${BookEditorMonacoFormatting.formatBytes(uploadStats.speedBytesPerSecond)}/s`
14296
+ : '--'] }), jsxs("div", { children: ["Elapsed: ", BookEditorMonacoFormatting.formatDuration(uploadStats.elapsedMs)] }), jsxs("div", { children: ["Paused: ", uploadStats.pausedFiles, ", Failed: ", uploadStats.failedFiles] })] }), jsx("div", { className: styles$d.uploadPanelProgressBar, children: jsx("div", { className: styles$d.uploadPanelProgressFill, style: { width: `${Math.round(uploadStats.progress * 100)}%` } }) }), jsx("div", { className: styles$d.uploadPanelList, children: activeUploadItems.map((item) => {
14297
+ const percent = Math.round(item.progress * 100);
14298
+ const actionLabel = item.status === 'paused' ? 'Resume' : item.status === 'failed' ? 'Retry' : 'Pause';
14299
+ const canPause = item.status === 'uploading' || item.status === 'queued';
14300
+ const canResume = item.status === 'paused' || item.status === 'failed';
14301
+ return (jsxs("div", { className: styles$d.uploadRow, children: [jsxs("div", { className: styles$d.uploadRowHeader, children: [jsx("div", { className: styles$d.uploadRowName, title: item.fileName, children: item.fileName }), jsx("div", { className: styles$d.uploadRowStatus, children: UPLOAD_STATUS_LABELS[item.status] })] }), jsxs("div", { className: styles$d.uploadRowMeta, children: [jsxs("span", { children: [BookEditorMonacoFormatting.formatBytes(item.loadedBytes), " /", ' ', BookEditorMonacoFormatting.formatBytes(item.totalBytes)] }), jsxs("span", { children: [percent, "%"] })] }), jsx("div", { className: styles$d.uploadRowProgressBar, children: jsx("div", { className: styles$d.uploadRowProgressFill, style: { width: `${percent}%` } }) }), jsxs("div", { className: styles$d.uploadRowActions, children: [canPause && (jsx("button", { type: "button", className: styles$d.uploadActionButton, onClick: () => pauseUpload(item.id), children: "Pause" })), canResume && (jsx("button", { type: "button", className: styles$d.uploadActionButton, onClick: () => resumeUpload(item.id), children: actionLabel }))] }), item.errorMessage && item.status === 'failed' && (jsx("div", { className: styles$d.uploadRowError, children: item.errorMessage }))] }, item.id));
14302
+ }) })] }));
14303
+ }
14304
+
14305
+ let notebookStyleCounter = 0;
14306
+ /**
14307
+ * @private Internal component used by `BookEditor`
14308
+ */
14309
+ function BookEditorMonaco(props) {
14310
+ const { value, onChange, diagnostics, isReadonly, translations, onFileUpload, isUploadButtonShown, isCameraButtonShown, isDownloadButtonShown, isAboutButtonShown = true, isFullscreenButtonShown = true, onFullscreenClick, isFullscreen, zoom = 1, } = props;
14311
+ const zoomLevel = zoom;
14312
+ const scaledLineHeight = Math.round(BookEditorMonacoConstants.LINE_HEIGHT * zoomLevel);
14313
+ const scaledContentPaddingLeft = Math.max(8, Math.round(BookEditorMonacoConstants.CONTENT_PADDING_LEFT * zoomLevel));
14314
+ const scaledVerticalLineLeft = Math.max(0, Math.round(BookEditorMonacoConstants.VERTICAL_LINE_LEFT * zoomLevel));
14315
+ const baseFontSize = 20;
14316
+ const scaledFontSize = Math.max(8, Math.round(baseFontSize * zoomLevel));
14317
+ const scaledScrollbarSize = Math.max(2, Math.round(5 * zoomLevel));
14318
+ const [isDragOver, setIsDragOver] = useState(false);
14319
+ const [editor, setEditor] = useState(null);
14320
+ const [isFocused, setIsFocused] = useState(false);
14321
+ const [isTouchDevice, setIsTouchDevice] = useState(false);
14322
+ const [isSavedShown, setIsSavedShown] = useState(false);
14323
+ const monaco = useMonaco();
14324
+ const instanceIdRef = useRef(++notebookStyleCounter);
14325
+ const instanceClass = `book-editor-instance-${instanceIdRef.current}`;
14326
+ const touchStartRef = useRef(null);
14327
+ const fileUploadInputRef = useRef(null);
14328
+ const cameraInputRef = useRef(null);
14329
+ const { activeUploadItems, uploadStats, pauseUpload, resumeUpload, handleFiles, } = useBookEditorMonacoUploads({
14330
+ editor,
14331
+ monaco,
14332
+ onFileUpload,
14333
+ });
14334
+ useBookEditorMonacoLanguage({ monaco });
14335
+ useBookEditorMonacoDiagnostics({ monaco, editor, diagnostics });
14336
+ useBookEditorMonacoDecorations({ editor, monaco });
14337
+ useBookEditorMonacoStyles({
14338
+ instanceClass,
14339
+ scaledContentPaddingLeft,
14340
+ scaledLineHeight,
14341
+ scaledVerticalLineLeft,
14342
+ zoomLevel,
14343
+ });
14344
+ useEffect(() => {
14345
+ setIsTouchDevice(typeof window !== 'undefined' && window.matchMedia('(pointer: coarse)').matches);
14346
+ }, []);
14347
+ useEffect(() => {
14348
+ if (!editor) {
14349
+ return;
14350
+ }
14351
+ const focusListener = editor.onDidFocusEditorWidget(() => {
14352
+ setIsFocused(true);
14353
+ });
14354
+ const blurListener = editor.onDidBlurEditorWidget(() => {
14355
+ setIsFocused(false);
14356
+ });
14357
+ const saveAction = editor.addAction({
14358
+ id: 'save-book',
14359
+ label: 'Save',
14360
+ keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS],
14361
+ run: () => {
14362
+ setIsSavedShown(false);
14363
+ setTimeout(() => setIsSavedShown(true), 0);
14364
+ // Note: We don't prevent default, so browser's save dialog still opens
14365
+ },
13783
14366
  });
13784
14367
  return () => {
13785
- changeListener.dispose();
14368
+ focusListener.dispose();
14369
+ blurListener.dispose();
14370
+ saveAction.dispose();
13786
14371
  };
13787
14372
  }, [editor, monaco]);
13788
- /**
13789
- * Inserts upload placeholders and queues uploads for processing.
13790
- */
13791
- const handleFiles = useCallback(async (files) => {
13792
- var _a;
13793
- if (!onFileUpload || !editor || !monaco) {
13794
- return;
13795
- }
13796
- if (files.length === 0) {
13797
- return;
13798
- }
13799
- const model = editor.getModel();
13800
- if (!model) {
14373
+ useEffect(() => {
14374
+ if (!isSavedShown) {
13801
14375
  return;
13802
14376
  }
13803
- const placeholders = files.map((file) => ({
13804
- id: createUploadId(),
13805
- file,
13806
- placeholder: getUploadPlaceholderText(file.name),
13807
- }));
13808
- const currentValue = ((_a = model.getValue()) !== null && _a !== void 0 ? _a : '');
13809
- const bookEditable = new BookEditable(currentValue);
13810
- const closedLineIndex = bookEditable.findLastCommitmentLineIndex('CLOSED');
13811
- const insertingBeforeClosed = closedLineIndex !== null;
13812
- const insertLine = insertingBeforeClosed ? closedLineIndex + 1 : model.getLineCount();
13813
- const insertColumn = insertingBeforeClosed ? 1 : model.getLineMaxColumn(insertLine);
13814
- const shouldAddLeadingLineBreak = !insertingBeforeClosed && Boolean(model.getValue());
13815
- const prefix = shouldAddLeadingLineBreak ? '\n' : '';
13816
- const placeholderBlock = placeholders.map((entry) => `${entry.placeholder}\n`).join('');
13817
- const textToInsert = `${prefix}${placeholderBlock}`;
13818
- const insertStartOffset = model.getOffsetAt(new monaco.Position(insertLine, insertColumn));
13819
- editor.executeEdits('upload-placeholders', [
13820
- {
13821
- range: new monaco.Range(insertLine, insertColumn, insertLine, insertColumn),
13822
- text: textToInsert,
13823
- forceMoveMarkers: true,
13824
- },
13825
- ]);
13826
- const decorations = [];
13827
- let runningOffset = prefix.length;
13828
- for (const entry of placeholders) {
13829
- const startOffset = insertStartOffset + runningOffset;
13830
- const endOffset = startOffset + entry.placeholder.length;
13831
- const startPos = model.getPositionAt(startOffset);
13832
- const endPos = model.getPositionAt(endOffset);
13833
- decorations.push({
13834
- range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
13835
- options: {
13836
- stickiness: monaco.editor.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
13837
- },
13838
- });
13839
- runningOffset += entry.placeholder.length + 1;
13840
- }
13841
- const decorationIds = editor.deltaDecorations([], decorations);
13842
- placeholders.forEach((entry, index) => {
13843
- uploadFilesRef.current.set(entry.id, entry.file);
13844
- const decorationId = decorationIds[index];
13845
- if (decorationId) {
13846
- uploadDecorationIdsRef.current.set(entry.id, decorationId);
13847
- }
13848
- });
13849
- const newUploadItems = placeholders.map((entry) => ({
13850
- id: entry.id,
13851
- fileName: entry.file.name,
13852
- fileSize: entry.file.size,
13853
- status: 'queued',
13854
- progress: 0,
13855
- loadedBytes: 0,
13856
- totalBytes: entry.file.size,
13857
- startedAt: null,
13858
- completedAt: null,
13859
- }));
13860
- setUploadItems((items) => [...items, ...newUploadItems]);
13861
- queueUploadProcessing();
13862
- }, [onFileUpload, editor, monaco, queueUploadProcessing, setUploadItems]);
13863
- /**
13864
- * Handles file drop uploads.
13865
- */
14377
+ const timer = setTimeout(() => {
14378
+ setIsSavedShown(false);
14379
+ }, 2000);
14380
+ return () => {
14381
+ clearTimeout(timer);
14382
+ };
14383
+ }, [isSavedShown]);
13866
14384
  const handleDrop = useCallback(async (event) => {
13867
14385
  event.preventDefault();
13868
14386
  setIsDragOver(false);
13869
14387
  const files = Array.from(event.dataTransfer.files);
13870
14388
  await handleFiles(files);
13871
14389
  }, [handleFiles]);
13872
- /**
13873
- * Handles paste uploads.
13874
- */
13875
14390
  const handlePaste = useCallback(async (event) => {
13876
14391
  const files = Array.from(event.clipboardData.files);
13877
14392
  if (files.length === 0) {
@@ -13881,95 +14396,58 @@ function BookEditorMonaco(props) {
13881
14396
  event.stopPropagation();
13882
14397
  await handleFiles(files);
13883
14398
  }, [handleFiles]);
13884
- // <- TODO: [✨🏺] !!!! Maybe not working
13885
- /**
13886
- * Opens the document upload input.
13887
- */
13888
14399
  const handleUploadDocument = useCallback(() => {
13889
- if (fileUploadInputRef.current) {
13890
- fileUploadInputRef.current.click();
13891
- }
14400
+ var _a;
14401
+ (_a = fileUploadInputRef.current) === null || _a === void 0 ? void 0 : _a.click();
13892
14402
  }, []);
13893
- /**
13894
- * Opens the camera capture input.
13895
- */
13896
14403
  const handleTakePhoto = useCallback(() => {
13897
- if (cameraInputRef.current) {
13898
- cameraInputRef.current.click();
13899
- }
14404
+ var _a;
14405
+ (_a = cameraInputRef.current) === null || _a === void 0 ? void 0 : _a.click();
13900
14406
  }, []);
13901
- /**
13902
- * Handles file selection from hidden inputs.
13903
- */
13904
14407
  const handleFileInputChange = useCallback((event) => {
13905
14408
  const files = Array.from(event.target.files || []);
13906
- handleFiles(files);
13907
- // Reset the input value so the same file can be selected again
14409
+ void handleFiles(files);
13908
14410
  event.target.value = '';
13909
14411
  }, [handleFiles]);
13910
- /**
13911
- * Shows drag overlay while dragging over the editor.
13912
- */
13913
14412
  const handleDragOver = useCallback((event) => {
13914
14413
  event.preventDefault();
13915
14414
  setIsDragOver(true);
13916
14415
  }, []);
13917
- /**
13918
- * Shows drag overlay when entering the editor.
13919
- */
13920
14416
  const handleDragEnter = useCallback((event) => {
13921
14417
  event.preventDefault();
13922
14418
  setIsDragOver(true);
13923
14419
  }, []);
13924
- /**
13925
- * Hides drag overlay when leaving the editor.
13926
- */
13927
14420
  const handleDragLeave = useCallback((event) => {
13928
14421
  event.preventDefault();
13929
14422
  setIsDragOver(false);
13930
14423
  }, []);
13931
- const uploadStats = useMemo(() => {
13932
- const totalFiles = uploadItems.length;
13933
- const queuedFiles = uploadItems.filter((item) => item.status === 'queued').length;
13934
- const uploadingFiles = uploadItems.filter((item) => item.status === 'uploading').length;
13935
- const pausedFiles = uploadItems.filter((item) => item.status === 'paused').length;
13936
- const failedFiles = uploadItems.filter((item) => item.status === 'failed').length;
13937
- const completedFiles = uploadItems.filter((item) => item.status === 'completed').length;
13938
- const totalBytes = uploadItems.reduce((sum, item) => sum + item.totalBytes, 0);
13939
- const uploadedBytes = uploadItems.reduce((sum, item) => {
13940
- const total = item.totalBytes || 0;
13941
- const loaded = total > 0 ? Math.min(item.loadedBytes, total) : item.loadedBytes;
13942
- return sum + loaded;
13943
- }, 0);
13944
- const progress = totalBytes > 0 ? uploadedBytes / totalBytes : 0;
13945
- const startedAt = uploadItems.reduce((min, item) => {
13946
- if (!item.startedAt) {
13947
- return min;
14424
+ const focusOverlayTouchHandlers = {
14425
+ onTouchStart: (event) => {
14426
+ const touch = event.touches[0];
14427
+ if (touch) {
14428
+ touchStartRef.current = { x: touch.clientX, y: touch.clientY };
13948
14429
  }
13949
- return Math.min(min, item.startedAt);
13950
- }, Number.POSITIVE_INFINITY);
13951
- const elapsedMs = Number.isFinite(startedAt) ? Math.max(0, Date.now() - startedAt) : 0;
13952
- const speedBytesPerSecond = elapsedMs > 0 ? uploadedBytes / (elapsedMs / 1000) : 0;
13953
- return {
13954
- totalFiles,
13955
- queuedFiles,
13956
- uploadingFiles,
13957
- pausedFiles,
13958
- failedFiles,
13959
- completedFiles,
13960
- totalBytes,
13961
- uploadedBytes,
13962
- progress,
13963
- elapsedMs,
13964
- speedBytesPerSecond,
13965
- };
13966
- }, [uploadItems]);
13967
- const activeUploadItems = useMemo(() => uploadItems.filter((item) => item.status !== 'completed'), [uploadItems]);
13968
- return (jsxs("div", { className: classNames(styles$d.bookEditorContainer, instanceClass), onDrop: handleDrop, onPaste: handlePaste, onDragOver: handleDragOver, onDragEnter: handleDragEnter, onDragLeave: handleDragLeave, children: [(isUploadButtonShown ||
13969
- isCameraButtonShown ||
13970
- isDownloadButtonShown ||
13971
- isAboutButtonShown ||
13972
- isFullscreenButtonShown) && (jsx(BookEditorActionbar, { value,
14430
+ },
14431
+ onTouchEnd: (event) => {
14432
+ event.preventDefault();
14433
+ const touch = event.changedTouches[0];
14434
+ if (touch && touchStartRef.current) {
14435
+ const deltaX = Math.abs(touch.clientX - touchStartRef.current.x);
14436
+ const deltaY = Math.abs(touch.clientY - touchStartRef.current.y);
14437
+ const threshold = 10;
14438
+ if (deltaX < threshold && deltaY < threshold) {
14439
+ editor === null || editor === void 0 ? void 0 : editor.focus();
14440
+ }
14441
+ }
14442
+ touchStartRef.current = null;
14443
+ },
14444
+ };
14445
+ const isActionBarVisible = isUploadButtonShown ||
14446
+ isCameraButtonShown ||
14447
+ isDownloadButtonShown ||
14448
+ isAboutButtonShown ||
14449
+ isFullscreenButtonShown;
14450
+ return (jsxs("div", { className: classNames(styles$d.bookEditorContainer, instanceClass), onDrop: handleDrop, onPaste: handlePaste, onDragOver: handleDragOver, onDragEnter: handleDragEnter, onDragLeave: handleDragLeave, children: [isActionBarVisible && (jsx(BookEditorActionbar, { value,
13973
14451
  isUploadButtonShown,
13974
14452
  isCameraButtonShown: isCameraButtonShown !== null && isCameraButtonShown !== void 0 ? isCameraButtonShown : isTouchDevice,
13975
14453
  isDownloadButtonShown,
@@ -13978,20 +14456,11 @@ function BookEditorMonaco(props) {
13978
14456
  onFullscreenClick,
13979
14457
  onUploadDocument: handleUploadDocument,
13980
14458
  onTakePhoto: handleTakePhoto,
13981
- isFullscreen })), jsx("input", { type: "file", ref: fileUploadInputRef, style: { display: 'none' }, onChange: handleFileInputChange, multiple: true }), jsx("input", { type: "file", ref: cameraInputRef, style: { display: 'none' }, accept: "image/*", capture: "environment", onChange: handleFileInputChange }), isDragOver && jsx("div", { className: styles$d.dropOverlay, children: "Drop files to upload" }), isSavedShown && (jsxs("div", { className: styles$d.savedNotification, children: [jsx(SaveIcon, {}), "Saved"] })), activeUploadItems.length > 0 && (jsxs("div", { className: styles$d.uploadPanel, role: "status", "aria-live": "polite", children: [jsxs("div", { className: styles$d.uploadPanelHeader, children: [jsx("div", { className: styles$d.uploadPanelTitle, children: "Uploads" }), jsxs("div", { className: styles$d.uploadPanelHeaderMeta, children: [uploadStats.uploadingFiles + uploadStats.queuedFiles, " active / ", uploadStats.totalFiles, ' ', "total"] })] }), jsxs("div", { className: styles$d.uploadPanelSummary, children: [jsxs("div", { children: ["Files: ", uploadStats.totalFiles, " total, ", uploadStats.completedFiles, " done"] }), jsxs("div", { children: ["Data: ", formatBytes(uploadStats.uploadedBytes), " / ", formatBytes(uploadStats.totalBytes)] }), jsxs("div", { children: ["Speed:", ' ', uploadStats.speedBytesPerSecond > 0
13982
- ? `${formatBytes(uploadStats.speedBytesPerSecond)}/s`
13983
- : '--'] }), jsxs("div", { children: ["Elapsed: ", formatDuration(uploadStats.elapsedMs)] }), jsxs("div", { children: ["Paused: ", uploadStats.pausedFiles, ", Failed: ", uploadStats.failedFiles] })] }), jsx("div", { className: styles$d.uploadPanelProgressBar, children: jsx("div", { className: styles$d.uploadPanelProgressFill, style: { width: `${Math.round(uploadStats.progress * 100)}%` } }) }), jsx("div", { className: styles$d.uploadPanelList, children: activeUploadItems.map((item) => {
13984
- const percent = Math.round(item.progress * 100);
13985
- const actionLabel = item.status === 'paused' ? 'Resume' : item.status === 'failed' ? 'Retry' : 'Pause';
13986
- const canPause = item.status === 'uploading' || item.status === 'queued';
13987
- const canResume = item.status === 'paused' || item.status === 'failed';
13988
- return (jsxs("div", { className: styles$d.uploadRow, children: [jsxs("div", { className: styles$d.uploadRowHeader, children: [jsx("div", { className: styles$d.uploadRowName, title: item.fileName, children: item.fileName }), jsx("div", { className: styles$d.uploadRowStatus, children: UPLOAD_STATUS_LABELS[item.status] })] }), jsxs("div", { className: styles$d.uploadRowMeta, children: [jsxs("span", { children: [formatBytes(item.loadedBytes), " / ", formatBytes(item.totalBytes)] }), jsxs("span", { children: [percent, "%"] })] }), jsx("div", { className: styles$d.uploadRowProgressBar, children: jsx("div", { className: styles$d.uploadRowProgressFill, style: { width: `${percent}%` } }) }), jsxs("div", { className: styles$d.uploadRowActions, children: [canPause && (jsx("button", { type: "button", className: styles$d.uploadActionButton, onClick: () => pauseUpload(item.id), children: "Pause" })), canResume && (jsx("button", { type: "button", className: styles$d.uploadActionButton, onClick: () => resumeUpload(item.id), children: actionLabel }))] }), item.errorMessage && item.status === 'failed' && (jsx("div", { className: styles$d.uploadRowError, children: item.errorMessage }))] }, item.id));
13989
- }) })] })), jsxs("div", { style: {
14459
+ isFullscreen })), jsx("input", { type: "file", ref: fileUploadInputRef, style: { display: 'none' }, onChange: handleFileInputChange, multiple: true }), jsx("input", { type: "file", ref: cameraInputRef, style: { display: 'none' }, accept: "image/*", capture: "environment", onChange: handleFileInputChange }), isDragOver && jsx("div", { className: styles$d.dropOverlay, children: "Drop files to upload" }), isSavedShown && (jsxs("div", { className: styles$d.savedNotification, children: [jsx(SaveIcon, {}), "Saved"] })), jsx(BookEditorMonacoUploadPanel, { activeUploadItems: activeUploadItems, uploadStats: uploadStats, pauseUpload: pauseUpload, resumeUpload: resumeUpload }), jsxs("div", { style: {
13990
14460
  position: 'relative',
13991
14461
  flex: 1,
13992
14462
  height: '100%',
13993
14463
  width: '100%',
13994
- // outline: '1px dotted #ff3333'
13995
14464
  }, children: [isTouchDevice && !isFocused && (jsx("div", { style: {
13996
14465
  position: 'absolute',
13997
14466
  top: 0,
@@ -14002,29 +14471,7 @@ function BookEditorMonaco(props) {
14002
14471
  height: '100%',
14003
14472
  width: '100%',
14004
14473
  backgroundColor: 'transparent',
14005
- // outline: '1px dotted #ff3333',
14006
- }, onTouchStart: (event) => {
14007
- // [1] Record the starting position of the touch
14008
- const touch = event.touches[0];
14009
- if (touch) {
14010
- touchStartRef.current = { x: touch.clientX, y: touch.clientY };
14011
- }
14012
- }, onTouchEnd: (event) => {
14013
- event.preventDefault();
14014
- // [1] Check if this was a tap (not a drag)
14015
- const touch = event.changedTouches[0];
14016
- if (touch && touchStartRef.current) {
14017
- const deltaX = Math.abs(touch.clientX - touchStartRef.current.x);
14018
- const deltaY = Math.abs(touch.clientY - touchStartRef.current.y);
14019
- const threshold = 10; // pixels
14020
- // [1] Only focus if the touch hasn't moved much (it's a tap)
14021
- if (deltaX < threshold && deltaY < threshold) {
14022
- // alert('Tap inside the book editor to focus and start editing.');
14023
- editor === null || editor === void 0 ? void 0 : editor.focus();
14024
- }
14025
- }
14026
- touchStartRef.current = null;
14027
- } })), jsx(Editor, { language: BOOK_LANGUAGE_ID, value: value, onMount: (editor) => setEditor(editor), onChange: (newValue) => onChange === null || onChange === void 0 ? void 0 : onChange(newValue), options: {
14474
+ }, ...focusOverlayTouchHandlers })), jsx(Editor, { language: BookEditorMonacoConstants.BOOK_LANGUAGE_ID, value: value, onMount: (mountedEditor) => setEditor(mountedEditor), onChange: (newValue) => onChange === null || onChange === void 0 ? void 0 : onChange(newValue), options: {
14028
14475
  readOnly: isReadonly,
14029
14476
  readOnlyMessage: {
14030
14477
  value: (translations === null || translations === void 0 ? void 0 : translations.readonlyMessage) || 'You cannot edit this book',
@@ -14033,13 +14480,9 @@ function BookEditorMonaco(props) {
14033
14480
  minimap: { enabled: false },
14034
14481
  lineNumbers: 'off',
14035
14482
  fontSize: scaledFontSize,
14036
- // TODO: [🚚] Allow to pass font family as prop + [😺] Make the font asset hosted on Promptbook CDN side
14037
- // <- TODO: [😺]Pass font as asset
14038
14483
  fontFamily: `"Playfair Display", serif`,
14039
- // [🚚]> fontFamily: `"Bitcount Grid Single", system-ui`,
14040
14484
  lineHeight: scaledLineHeight,
14041
14485
  renderLineHighlight: 'none',
14042
- // Note: To add little lines between each line of the book, like a notebook page
14043
14486
  lineDecorationsWidth: scaledContentPaddingLeft,
14044
14487
  glyphMargin: false,
14045
14488
  folding: false,
@@ -15159,7 +15602,7 @@ const ROLE_COLOR_FALLBACKS = {
15159
15602
  *
15160
15603
  * @private Internal helper of the HTML export renderer.
15161
15604
  */
15162
- function escapeHtml(value) {
15605
+ function escapeHtml$1(value) {
15163
15606
  return String(value)
15164
15607
  .replace(/&/g, '&amp;')
15165
15608
  .replace(/</g, '&lt;')
@@ -15179,7 +15622,7 @@ function formatMessageContent(content) {
15179
15622
  const paragraphs = content.split(/\n{2,}/).map((paragraph) => paragraph.trim());
15180
15623
  const rendered = paragraphs
15181
15624
  .filter(Boolean)
15182
- .map((paragraph) => `<p>${escapeHtml(paragraph).replace(/\n/g, '<br />')}</p>`)
15625
+ .map((paragraph) => `<p>${escapeHtml$1(paragraph).replace(/\n/g, '<br />')}</p>`)
15183
15626
  .join('');
15184
15627
  if (rendered) {
15185
15628
  return rendered;
@@ -15274,9 +15717,9 @@ function buildAttachmentsMarkup(message) {
15274
15717
  var _a;
15275
15718
  const hasUrl = Boolean(attachment.url);
15276
15719
  const tag = hasUrl ? 'a' : 'span';
15277
- const href = hasUrl ? ` href="${escapeHtml((_a = attachment.url) !== null && _a !== void 0 ? _a : '#')}" target="_blank" rel="noopener"` : '';
15278
- const name = escapeHtml(attachment.name || 'Attachment');
15279
- const meta = escapeHtml(attachment.type || 'file');
15720
+ const href = hasUrl ? ` href="${escapeHtml$1((_a = attachment.url) !== null && _a !== void 0 ? _a : '#')}" target="_blank" rel="noopener"` : '';
15721
+ const name = escapeHtml$1(attachment.name || 'Attachment');
15722
+ const meta = escapeHtml$1(attachment.type || 'file');
15280
15723
  return spaceTrim$2(`
15281
15724
  <${tag} class="attachment-chip"${href}>
15282
15725
  <span class="attachment-icon">📎</span>
@@ -15298,15 +15741,15 @@ function buildCitationsMarkup(message) {
15298
15741
  return '';
15299
15742
  }
15300
15743
  const chips = citations.map((citation) => {
15301
- const excerpt = citation.excerpt ? `<p class="citation-excerpt">${escapeHtml(citation.excerpt)}</p>` : '';
15744
+ const excerpt = citation.excerpt ? `<p class="citation-excerpt">${escapeHtml$1(citation.excerpt)}</p>` : '';
15302
15745
  const urlLink = citation.url
15303
- ? `<a class="citation-link" href="${escapeHtml(citation.url)}" target="_blank" rel="noopener">Open source</a>`
15746
+ ? `<a class="citation-link" href="${escapeHtml$1(citation.url)}" target="_blank" rel="noopener">Open source</a>`
15304
15747
  : '';
15305
15748
  return spaceTrim$2(`
15306
15749
  <article class="citation-chip">
15307
15750
  <div class="citation-header">
15308
- <span class="citation-badge">${escapeHtml(citation.id)}</span>
15309
- <span class="citation-source">${escapeHtml(citation.source)}</span>
15751
+ <span class="citation-badge">${escapeHtml$1(citation.id)}</span>
15752
+ <span class="citation-source">${escapeHtml$1(citation.source)}</span>
15310
15753
  </div>
15311
15754
  ${excerpt}
15312
15755
  ${urlLink}
@@ -15332,8 +15775,8 @@ function renderMessageBlock(message, participants) {
15332
15775
  const citations = buildCitationsMarkup(message);
15333
15776
  const alignmentClass = upperSender === 'USER' ? 'message-user' : 'message-assistant';
15334
15777
  const avatarMarkup = visuals.avatarSrc
15335
- ? `<img class="message-avatar-img" src="${escapeHtml(visuals.avatarSrc)}" alt="${escapeHtml(visuals.displayName)}" />`
15336
- : `<span class="message-avatar-fallback" style="background:${visuals.accentColor};color:${bubbleTextColor};">${escapeHtml(visuals.avatarLabel)}</span>`;
15778
+ ? `<img class="message-avatar-img" src="${escapeHtml$1(visuals.avatarSrc)}" alt="${escapeHtml$1(visuals.displayName)}" />`
15779
+ : `<span class="message-avatar-fallback" style="background:${visuals.accentColor};color:${bubbleTextColor};">${escapeHtml$1(visuals.avatarLabel)}</span>`;
15337
15780
  return spaceTrim$2(`
15338
15781
  <article class="message-block ${alignmentClass}">
15339
15782
  <div class="message-avatar">${avatarMarkup}</div>
@@ -15341,14 +15784,14 @@ function renderMessageBlock(message, participants) {
15341
15784
  <div class="message-card-inner">
15342
15785
  <header class="message-card-header">
15343
15786
  <div>
15344
- <strong class="message-name">${escapeHtml(visuals.displayName)}</strong>
15345
- <span class="message-role">${escapeHtml(upperSender)}</span>
15787
+ <strong class="message-name">${escapeHtml$1(visuals.displayName)}</strong>
15788
+ <span class="message-role">${escapeHtml$1(upperSender)}</span>
15346
15789
  </div>
15347
- ${timestamp ? `<time class="message-time">${escapeHtml(timestamp)}</time>` : ''}
15790
+ ${timestamp ? `<time class="message-time">${escapeHtml$1(timestamp)}</time>` : ''}
15348
15791
  </header>
15349
15792
  <div class="message-content">${formatMessageContent(message.content)}</div>
15350
15793
  ${durationLabel
15351
- ? `<div class="message-duration">Responded in ${escapeHtml(durationLabel)}</div>`
15794
+ ? `<div class="message-duration">Responded in ${escapeHtml$1(durationLabel)}</div>`
15352
15795
  : ''}
15353
15796
  ${attachments}
15354
15797
  ${citations}
@@ -15366,7 +15809,7 @@ const htmlSaveFormatDefinition = {
15366
15809
  formatName: 'html',
15367
15810
  label: 'Html',
15368
15811
  getContent: ({ title, messages, participants }) => {
15369
- const safeTitle = escapeHtml(title || 'Chat');
15812
+ const safeTitle = escapeHtml$1(title || 'Chat');
15370
15813
  const participantLookup = buildParticipantMap(participants);
15371
15814
  const exportedAt = new Date();
15372
15815
  const exportedLabel = formatTimestamp(exportedAt);
@@ -15787,13 +16230,13 @@ const htmlSaveFormatDefinition = {
15787
16230
  <div class="hero-content">
15788
16231
  <p class="hero-kicker">Chat export</p>
15789
16232
  <h1>Conversation with ${safeTitle}</h1>
15790
- <p class="hero-subtitle">${escapeHtml(heroSubtitle)}</p>
16233
+ <p class="hero-subtitle">${escapeHtml$1(heroSubtitle)}</p>
15791
16234
  <div class="stat-grid">
15792
16235
  ${statCards
15793
16236
  .map((stat) => spaceTrim$2(`
15794
16237
  <div class="stat-card">
15795
- <span class="stat-value">${escapeHtml(stat.value)}</span>
15796
- <span class="stat-label">${escapeHtml(stat.label)}</span>
16238
+ <span class="stat-value">${escapeHtml$1(stat.value)}</span>
16239
+ <span class="stat-label">${escapeHtml$1(stat.label)}</span>
15797
16240
  </div>
15798
16241
  `))
15799
16242
  .join('')}
@@ -15810,8 +16253,8 @@ const htmlSaveFormatDefinition = {
15810
16253
  <p class="chat-panel-subhead">Captured messages, ready to share</p>
15811
16254
  </div>
15812
16255
  <div class="chat-panel-meta">
15813
- <span>${escapeHtml(`${messages.length} messages`)}</span>
15814
- <span>${escapeHtml(`${participantCount} participants`)}</span>
16256
+ <span>${escapeHtml$1(`${messages.length} messages`)}</span>
16257
+ <span>${escapeHtml$1(`${participantCount} participants`)}</span>
15815
16258
  </div>
15816
16259
  </div>
15817
16260
  <div class="chat-messages">
@@ -15821,7 +16264,7 @@ const htmlSaveFormatDefinition = {
15821
16264
  <footer class="export-footer">
15822
16265
  <div>
15823
16266
  <p>Generated by Promptbook</p>
15824
- <p class="footer-meta">Exported ${escapeHtml(exportedLabel)}</p>
16267
+ <p class="footer-meta">Exported ${escapeHtml$1(exportedLabel)}</p>
15825
16268
  </div>
15826
16269
  <div class="footer-brand">
15827
16270
  <img src="${BRAND_MARK_URL}" alt="" aria-hidden="true" />
@@ -21984,27 +22427,6 @@ const $llmToolsRegister = new $Register('llm_execution_tools_constructors');
21984
22427
  * TODO: [®] DRY Register logic
21985
22428
  */
21986
22429
 
21987
- /*! *****************************************************************************
21988
- Copyright (c) Microsoft Corporation.
21989
-
21990
- Permission to use, copy, modify, and/or distribute this software for any
21991
- purpose with or without fee is hereby granted.
21992
-
21993
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
21994
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
21995
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
21996
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
21997
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
21998
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
21999
- PERFORMANCE OF THIS SOFTWARE.
22000
- ***************************************************************************** */
22001
-
22002
- function __classPrivateFieldGet(receiver, state, kind, f) {
22003
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
22004
- 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");
22005
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
22006
- }
22007
-
22008
22430
  /**
22009
22431
  * Helper of usage compute
22010
22432
  *
@@ -25780,6 +26202,24 @@ function emitAssistantPreparationProgress(options) {
25780
26202
  ],
25781
26203
  });
25782
26204
  }
26205
+ /**
26206
+ * Merges the agent's predefined knowledge sources with user-provided attachment URLs.
26207
+ *
26208
+ * @private internal helper for `AgentLlmExecutionTools`
26209
+ */
26210
+ function mergeKnowledgeSourcesWithAttachments(baseSources, attachmentUrls) {
26211
+ const combined = [];
26212
+ if (baseSources && baseSources.length > 0) {
26213
+ combined.push(...baseSources.filter((value) => typeof value === 'string' && value.trim() !== ''));
26214
+ }
26215
+ for (const url of attachmentUrls) {
26216
+ const trimmed = String(url !== null && url !== void 0 ? url : '').trim();
26217
+ if (trimmed !== '') {
26218
+ combined.push(trimmed);
26219
+ }
26220
+ }
26221
+ return Array.from(new Set(combined));
26222
+ }
25783
26223
  /**
25784
26224
  * Execution Tools for calling LLM models with a predefined agent "soul"
25785
26225
  * This wraps underlying LLM execution tools and applies agent-specific system prompts and requirements
@@ -25924,7 +26364,7 @@ class AgentLlmExecutionTools {
25924
26364
  * Calls the chat model with agent-specific system prompt and requirements with streaming
25925
26365
  */
25926
26366
  async callChatModelStream(prompt, onProgress) {
25927
- var _a, _b;
26367
+ var _a;
25928
26368
  // Ensure we're working with a chat prompt
25929
26369
  if (prompt.modelRequirements.modelVariant !== 'CHAT') {
25930
26370
  throw new Error('AgentLlmExecutionTools only supports chat prompts');
@@ -25932,6 +26372,14 @@ class AgentLlmExecutionTools {
25932
26372
  const modelRequirements = await this.getModelRequirements();
25933
26373
  const { _metadata, promptSuffix, ...sanitizedRequirements } = modelRequirements;
25934
26374
  const chatPrompt = prompt;
26375
+ const attachmentUrls = Array.isArray(chatPrompt.attachments) && chatPrompt.attachments.length > 0
26376
+ ? chatPrompt.attachments
26377
+ .map((attachment) => (typeof (attachment === null || attachment === void 0 ? void 0 : attachment.url) === 'string' ? attachment.url.trim() : ''))
26378
+ .filter((url) => url !== '')
26379
+ : [];
26380
+ const knowledgeSourcesForAgentList = mergeKnowledgeSourcesWithAttachments(sanitizedRequirements.knowledgeSources, attachmentUrls);
26381
+ const knowledgeSourcesForAgent = knowledgeSourcesForAgentList.length > 0 ? knowledgeSourcesForAgentList : undefined;
26382
+ const hasAttachmentSources = attachmentUrls.length > 0;
25935
26383
  let underlyingLlmResult;
25936
26384
  const chatPromptContentWithSuffix = promptSuffix
25937
26385
  ? `${chatPrompt.content}\n\n${promptSuffix}`
@@ -25947,9 +26395,7 @@ class AgentLlmExecutionTools {
25947
26395
  ? [...sanitizedRequirements.tools]
25948
26396
  : chatPrompt.modelRequirements.tools,
25949
26397
  // Spread knowledgeSources to convert readonly array to mutable
25950
- knowledgeSources: sanitizedRequirements.knowledgeSources
25951
- ? [...sanitizedRequirements.knowledgeSources]
25952
- : undefined,
26398
+ knowledgeSources: knowledgeSourcesForAgent,
25953
26399
  // Prepend agent system message to existing system message
25954
26400
  systemMessage: sanitizedRequirements.systemMessage +
25955
26401
  (chatPrompt.modelRequirements.systemMessage
@@ -25959,27 +26405,34 @@ class AgentLlmExecutionTools {
25959
26405
  };
25960
26406
  console.log('!!!! promptWithAgentModelRequirements:', promptWithAgentModelRequirements);
25961
26407
  if (OpenAiAgentKitExecutionTools.isOpenAiAgentKitExecutionTools(this.options.llmTools)) {
25962
- const requirementsHash = SHA256(JSON.stringify(sanitizedRequirements)).toString();
25963
- const vectorStoreHash = SHA256(JSON.stringify((_a = sanitizedRequirements.knowledgeSources) !== null && _a !== void 0 ? _a : [])).toString();
25964
- const cachedVectorStore = AgentLlmExecutionTools.vectorStoreCache.get(this.title);
25965
- const cachedAgentKit = AgentLlmExecutionTools.agentKitAgentCache.get(this.title);
25966
- let preparedAgentKit = this.options.assistantPreparationMode === 'external'
26408
+ const shouldUseCache = !hasAttachmentSources;
26409
+ let preparedAgentKit = shouldUseCache && this.options.assistantPreparationMode === 'external'
25967
26410
  ? this.options.llmTools.getPreparedAgentKitAgent()
25968
26411
  : null;
25969
- const vectorStoreId = (preparedAgentKit === null || preparedAgentKit === void 0 ? void 0 : preparedAgentKit.vectorStoreId) ||
25970
- (cachedVectorStore && cachedVectorStore.requirementsHash === vectorStoreHash
25971
- ? cachedVectorStore.vectorStoreId
25972
- : undefined);
25973
- if (!preparedAgentKit && cachedAgentKit && cachedAgentKit.requirementsHash === requirementsHash) {
25974
- if (this.options.isVerbose) {
25975
- console.info('[🤰]', 'Using cached OpenAI AgentKit agent', {
25976
- agent: this.title,
25977
- });
26412
+ let vectorStoreId;
26413
+ let vectorStoreHash;
26414
+ let requirementsHash;
26415
+ if (shouldUseCache) {
26416
+ requirementsHash = SHA256(JSON.stringify(sanitizedRequirements)).toString();
26417
+ vectorStoreHash = SHA256(JSON.stringify((_a = sanitizedRequirements.knowledgeSources) !== null && _a !== void 0 ? _a : [])).toString();
26418
+ const cachedVectorStore = AgentLlmExecutionTools.vectorStoreCache.get(this.title);
26419
+ const cachedAgentKit = AgentLlmExecutionTools.agentKitAgentCache.get(this.title);
26420
+ vectorStoreId =
26421
+ (preparedAgentKit === null || preparedAgentKit === void 0 ? void 0 : preparedAgentKit.vectorStoreId) ||
26422
+ (cachedVectorStore && cachedVectorStore.requirementsHash === vectorStoreHash
26423
+ ? cachedVectorStore.vectorStoreId
26424
+ : undefined);
26425
+ if (!preparedAgentKit && cachedAgentKit && cachedAgentKit.requirementsHash === requirementsHash) {
26426
+ if (this.options.isVerbose) {
26427
+ console.info('[🤰]', 'Using cached OpenAI AgentKit agent', {
26428
+ agent: this.title,
26429
+ });
26430
+ }
26431
+ preparedAgentKit = {
26432
+ agent: cachedAgentKit.agent,
26433
+ vectorStoreId: cachedAgentKit.vectorStoreId,
26434
+ };
25978
26435
  }
25979
- preparedAgentKit = {
25980
- agent: cachedAgentKit.agent,
25981
- vectorStoreId: cachedAgentKit.vectorStoreId,
25982
- };
25983
26436
  }
25984
26437
  if (!preparedAgentKit) {
25985
26438
  if (this.options.isVerbose) {
@@ -25987,7 +26440,7 @@ class AgentLlmExecutionTools {
25987
26440
  agent: this.title,
25988
26441
  });
25989
26442
  }
25990
- if (!vectorStoreId && ((_b = sanitizedRequirements.knowledgeSources) === null || _b === void 0 ? void 0 : _b.length)) {
26443
+ if (!vectorStoreId && (knowledgeSourcesForAgent === null || knowledgeSourcesForAgent === void 0 ? void 0 : knowledgeSourcesForAgent.length)) {
25991
26444
  emitAssistantPreparationProgress({
25992
26445
  onProgress,
25993
26446
  prompt,
@@ -26004,22 +26457,24 @@ class AgentLlmExecutionTools {
26004
26457
  preparedAgentKit = await this.options.llmTools.prepareAgentKitAgent({
26005
26458
  name: this.title,
26006
26459
  instructions: sanitizedRequirements.systemMessage || '',
26007
- knowledgeSources: sanitizedRequirements.knowledgeSources,
26460
+ knowledgeSources: knowledgeSourcesForAgent,
26008
26461
  tools: sanitizedRequirements.tools ? [...sanitizedRequirements.tools] : undefined,
26009
- vectorStoreId,
26462
+ vectorStoreId: shouldUseCache ? vectorStoreId : undefined,
26010
26463
  });
26011
26464
  }
26012
- if (preparedAgentKit.vectorStoreId) {
26465
+ if (shouldUseCache && vectorStoreHash && preparedAgentKit.vectorStoreId) {
26013
26466
  AgentLlmExecutionTools.vectorStoreCache.set(this.title, {
26014
26467
  vectorStoreId: preparedAgentKit.vectorStoreId,
26015
26468
  requirementsHash: vectorStoreHash,
26016
26469
  });
26017
26470
  }
26018
- AgentLlmExecutionTools.agentKitAgentCache.set(this.title, {
26019
- agent: preparedAgentKit.agent,
26020
- requirementsHash,
26021
- vectorStoreId: preparedAgentKit.vectorStoreId,
26022
- });
26471
+ if (shouldUseCache && requirementsHash) {
26472
+ AgentLlmExecutionTools.agentKitAgentCache.set(this.title, {
26473
+ agent: preparedAgentKit.agent,
26474
+ requirementsHash,
26475
+ vectorStoreId: preparedAgentKit.vectorStoreId,
26476
+ });
26477
+ }
26023
26478
  const responseFormatOutputType = mapResponseFormatToAgentOutputType(promptWithAgentModelRequirements.modelRequirements.responseFormat);
26024
26479
  underlyingLlmResult = await this.options.llmTools.callChatModelStreamWithPreparedAgent({
26025
26480
  openAiAgentKitAgent: preparedAgentKit.agent,
@@ -26176,9 +26631,148 @@ AgentLlmExecutionTools.vectorStoreCache = new Map();
26176
26631
  * TODO: [🧠] Adding parameter substitution support (here or should be responsibility of the underlying LLM Tools)
26177
26632
  */
26178
26633
 
26179
- var _Agent_instances, _Agent_selfLearnNonce, _Agent_selfLearnSamples, _Agent_selfLearnTeacher;
26634
+ /**
26635
+ * Coordinates the Agent self-learning workflow that was extracted from the main class.
26636
+ *
26637
+ * @private helper for Agent
26638
+ */
26639
+ class SelfLearningManager {
26640
+ constructor(options) {
26641
+ this.options = options;
26642
+ this.teacherAgent = options.teacherAgent;
26643
+ }
26644
+ /**
26645
+ * Runs nonce, sampling, and teacher steps for every interaction that should learn.
26646
+ *
26647
+ * @param prompt Received prompt for the interaction
26648
+ * @param result Response produced by the agent
26649
+ * @returns Teacher summary or null when no teacher is configured
26650
+ * @private helper of Agent
26651
+ */
26652
+ async runSelfLearning(prompt, result) {
26653
+ if (just(false)) {
26654
+ await this.appendNonce();
26655
+ }
26656
+ this.appendSample(prompt, result);
26657
+ if (this.teacherAgent === null) {
26658
+ return null;
26659
+ }
26660
+ try {
26661
+ return await this.callTeacher(prompt, result);
26662
+ }
26663
+ catch (error) {
26664
+ console.error(colors.bgCyan('[Self-learning]') + colors.red(' Failed to learn from teacher agent'));
26665
+ console.error(error);
26666
+ return buildTeacherSummary('', true);
26667
+ }
26668
+ }
26669
+ /**
26670
+ * Appends the nonce section to the agent source with slight delay to avoid thundering herd lookups.
26671
+ *
26672
+ * @private helper of Agent
26673
+ */
26674
+ async appendNonce() {
26675
+ await forTime(Math.random() * 5000);
26676
+ console.info(colors.bgCyan('[Self-learning]') + colors.cyan(' Nonce'));
26677
+ const nonce = `NONCE ${await linguisticHash(Math.random().toString())}`;
26678
+ this.appendToAgentSource('\n\n---\n\n' + nonce);
26679
+ }
26680
+ /**
26681
+ * Appends the recent user/agent exchange as a new sample.
26682
+ *
26683
+ * @private helper of Agent
26684
+ */
26685
+ appendSample(prompt, result) {
26686
+ console.info(colors.bgCyan('[Self-learning]') + colors.cyan(' Sampling'));
26687
+ const learningExample = spaceTrim$2((block) => `
26688
+
26689
+ USER MESSAGE
26690
+ ${block(prompt.content)}
26691
+
26692
+ AGENT MESSAGE
26693
+ ${block(result.content)}
26694
+
26695
+ `);
26696
+ this.appendToAgentSource('\n\n---\n\n' + learningExample);
26697
+ }
26698
+ /**
26699
+ * Calls the teacher agent, appends its commitments, and summarizes the results.
26700
+ *
26701
+ * @private helper of Agent
26702
+ */
26703
+ async callTeacher(prompt, result) {
26704
+ console.info(colors.bgCyan('[Self-learning]') + colors.cyan(' Teacher'));
26705
+ const teacherPromptContent = spaceTrim$2((block) => `
26706
+
26707
+ You are a teacher agent helping another agent to learn from its interactions.
26708
+
26709
+ Here is your current client which you are teaching:
26710
+
26711
+ \`\`\`book
26712
+ ${block(this.options.getAgentSource())}
26713
+ \`\`\`
26714
+
26715
+ **And here is the latest interaction:**
26716
+
26717
+ **User:**
26718
+ ${block(prompt.content)}
26719
+
26720
+ **Agent:**
26721
+ ${block(result.content)}
26722
+
26723
+
26724
+ **Rules:**
26725
+
26726
+ - Decide what the agent should learn from this interaction.
26727
+ - Append new commitments at the end of the agent source.
26728
+ - Do not modify the current agent source, just return new commitments (KNOWLEDGE, RULE, etc.).
26729
+ - If there is nothing new to learn, return empty book code block
26730
+ - Wrap the commitments in a book code block.
26731
+ - Do not explain anything, just return the commitments wrapped in a book code block.
26732
+ - Write the learned commitments in the same style and language as in the original agent source.
26733
+
26734
+
26735
+ This is how book code block looks like:
26736
+
26737
+ \`\`\`book
26738
+ KNOWLEDGE The sky is blue.
26739
+ RULE Always be polite.
26740
+ \`\`\`
26741
+ `);
26742
+ const teacherResult = await this.teacherAgent.callChatModel({
26743
+ title: 'Self-learning',
26744
+ modelRequirements: {
26745
+ modelVariant: 'CHAT',
26746
+ },
26747
+ content: teacherPromptContent,
26748
+ parameters: {},
26749
+ });
26750
+ console.log('!!!! teacherResult', teacherResult);
26751
+ const teacherCommitments = unwrapResult(teacherResult.content);
26752
+ if (teacherCommitments === '') {
26753
+ console.info(colors.bgCyan('[Self-learning]') +
26754
+ colors.cyan(' Teacher agent did not provide new commitments to learn'));
26755
+ return buildTeacherSummary('', true);
26756
+ }
26757
+ this.appendToAgentSource('\n\n' + teacherCommitments);
26758
+ return buildTeacherSummary(teacherCommitments, true);
26759
+ }
26760
+ /**
26761
+ * Appends a new fragment to the agent source and triggers normalization.
26762
+ *
26763
+ * @param section Fragment that should be appended
26764
+ * @private helper of Agent
26765
+ */
26766
+ appendToAgentSource(section) {
26767
+ const currentSource = this.options.getAgentSource();
26768
+ const newSource = padBook(validateBook(spaceTrim$2(currentSource) + section));
26769
+ this.options.updateAgentSource(newSource);
26770
+ }
26771
+ }
26180
26772
  /**
26181
26773
  * Creates an empty commitment breakdown for self-learning summaries.
26774
+ *
26775
+ * @private function of Agent
26182
26776
  */
26183
26777
  function createEmptySelfLearningCommitmentCounts() {
26184
26778
  return {
@@ -26191,6 +26785,9 @@ function createEmptySelfLearningCommitmentCounts() {
26191
26785
  }
26192
26786
  /**
26193
26787
  * Normalizes teacher commitments into trimmed, display-ready lines.
26788
+ *
26789
+ * @param commitments Raw teacher output
26790
+ * @private function of Agent
26194
26791
  */
26195
26792
  function getTeacherCommitmentLines(commitments) {
26196
26793
  return commitments
@@ -26200,6 +26797,9 @@ function getTeacherCommitmentLines(commitments) {
26200
26797
  }
26201
26798
  /**
26202
26799
  * Summarizes teacher commitment lines into user-friendly counts for self-learning.
26800
+ *
26801
+ * @param lines Parsed teacher commitment lines
26802
+ * @private function of Agent
26203
26803
  */
26204
26804
  function summarizeTeacherCommitmentLines(lines) {
26205
26805
  var _a, _b;
@@ -26227,6 +26827,11 @@ function summarizeTeacherCommitmentLines(lines) {
26227
26827
  }
26228
26828
  /**
26229
26829
  * Builds the teacher summary payload for the self-learning tool call.
26830
+ *
26831
+ * @param commitments Raw teacher commitments
26832
+ * @param used Whether the teacher was invoked
26833
+ * @returns Summary of learned commitments
26834
+ * @private function of Agent
26230
26835
  */
26231
26836
  function buildTeacherSummary(commitments, used) {
26232
26837
  const commitmentLines = getTeacherCommitmentLines(commitments);
@@ -26236,6 +26841,34 @@ function buildTeacherSummary(commitments, used) {
26236
26841
  commitments: commitmentLines.length > 0 ? commitmentLines : undefined,
26237
26842
  };
26238
26843
  }
26844
+
26845
+ /**
26846
+ * Parses boolean prompt parameters, defaulting when the value is missing or invalid.
26847
+ *
26848
+ * @private
26849
+ */
26850
+ function parseBooleanPromptParameter(value, fallback) {
26851
+ if (value === undefined) {
26852
+ return fallback;
26853
+ }
26854
+ const normalized = value.trim().toLowerCase();
26855
+ if (normalized === 'true') {
26856
+ return true;
26857
+ }
26858
+ if (normalized === 'false') {
26859
+ return false;
26860
+ }
26861
+ try {
26862
+ const parsed = JSON.parse(value);
26863
+ if (typeof parsed === 'boolean') {
26864
+ return parsed;
26865
+ }
26866
+ }
26867
+ catch (_a) {
26868
+ // If JSON parsing fails, fall back to the default.
26869
+ }
26870
+ return fallback;
26871
+ }
26239
26872
  /**
26240
26873
  * Represents one AI Agent
26241
26874
  *
@@ -26278,7 +26911,6 @@ class Agent extends AgentLlmExecutionTools {
26278
26911
  assistantPreparationMode: options.assistantPreparationMode,
26279
26912
  agentSource: agentSource.value, // <- TODO: [🐱‍🚀] Allow to pass BehaviorSubject<string_book> OR refresh llmExecutionTools.callChat on agentSource change
26280
26913
  });
26281
- _Agent_instances.add(this);
26282
26914
  this._agentName = undefined;
26283
26915
  /**
26284
26916
  * Description of the agent
@@ -26317,8 +26949,12 @@ class Agent extends AgentLlmExecutionTools {
26317
26949
  this.toolTitles = {};
26318
26950
  // TODO: [🐱‍🚀] Add `Agent` simple "mocked" learning by appending to agent source
26319
26951
  // TODO: [🐱‍🚀] Add `Agent` learning by promptbookAgent
26320
- this.teacherAgent = options.teacherAgent;
26321
26952
  this.agentSource = agentSource;
26953
+ this.selfLearningManager = new SelfLearningManager({
26954
+ teacherAgent: options.teacherAgent,
26955
+ getAgentSource: () => this.agentSource.value,
26956
+ updateAgentSource: (source) => this.agentSource.next(source),
26957
+ });
26322
26958
  this.agentSource.subscribe((source) => {
26323
26959
  this.updateAgentSource(source);
26324
26960
  const { agentName, personaDescription, initialMessage, links, meta, capabilities, samples, knowledgeSources, } = parseAgentSource(source);
@@ -26342,6 +26978,7 @@ class Agent extends AgentLlmExecutionTools {
26342
26978
  * Note: This method also implements the learning mechanism
26343
26979
  */
26344
26980
  async callChatModelStream(prompt, onProgress) {
26981
+ var _a;
26345
26982
  // [1] Check if the user is asking the same thing as in the samples
26346
26983
  const modelRequirements = await this.getModelRequirements();
26347
26984
  if (modelRequirements.samples) {
@@ -26392,6 +27029,10 @@ class Agent extends AgentLlmExecutionTools {
26392
27029
  if (modelRequirements.isClosed) {
26393
27030
  return result;
26394
27031
  }
27032
+ const shouldSelfLearn = parseBooleanPromptParameter((_a = prompt.parameters) === null || _a === void 0 ? void 0 : _a[PROMPT_PARAMETER_SELF_LEARNING_ENABLED], true);
27033
+ if (!shouldSelfLearn) {
27034
+ return result;
27035
+ }
26395
27036
  // Note: [0] Notify start of self-learning
26396
27037
  const selfLearningToolCall = {
26397
27038
  name: 'self-learning',
@@ -26403,24 +27044,7 @@ class Agent extends AgentLlmExecutionTools {
26403
27044
  toolCalls: [...(result.toolCalls || []), selfLearningToolCall],
26404
27045
  };
26405
27046
  onProgress(resultWithLearning);
26406
- // Note: [1] Asynchronously add nonce
26407
- if (just(false)) {
26408
- await __classPrivateFieldGet(this, _Agent_instances, "m", _Agent_selfLearnNonce).call(this);
26409
- }
26410
- // Note: [2] Do the append of the samples
26411
- await __classPrivateFieldGet(this, _Agent_instances, "m", _Agent_selfLearnSamples).call(this, prompt, result);
26412
- // Note: [3] Asynchronously call the teacher agent and invoke the silver link. When the teacher fails, keep just the samples
26413
- let teacherSummary = null;
26414
- try {
26415
- teacherSummary = await __classPrivateFieldGet(this, _Agent_instances, "m", _Agent_selfLearnTeacher).call(this, prompt, result);
26416
- }
26417
- catch (error) {
26418
- // !!!!! if (this.options.isVerbose) {
26419
- console.error(colors.bgCyan('[Self-learning]') + colors.red(' Failed to learn from teacher agent'));
26420
- console.error(error);
26421
- // }
26422
- teacherSummary = this.teacherAgent ? buildTeacherSummary('', true) : null;
26423
- }
27047
+ const teacherSummary = await this.selfLearningManager.runSelfLearning(prompt, result);
26424
27048
  // Note: [4] Notify end of self-learning
26425
27049
  const completedAt = new Date().toISOString();
26426
27050
  const selfLearningResult = {
@@ -26442,110 +27066,6 @@ class Agent extends AgentLlmExecutionTools {
26442
27066
  return finalResult;
26443
27067
  }
26444
27068
  }
26445
- _Agent_instances = new WeakSet(), _Agent_selfLearnNonce =
26446
- /**
26447
- * Self-learning Step 0: Asynchronously with random timing add nonce to the agent source
26448
- */
26449
- async function _Agent_selfLearnNonce() {
26450
- await forTime(Math.random() * 5000);
26451
- // <- TODO: [🕓] `await forRandom(...)`
26452
- console.info(colors.bgCyan('[Self-learning]') + colors.cyan(' Nonce'));
26453
- const nonce = `NONCE ${await linguisticHash(Math.random().toString())}`;
26454
- // Append to the current source
26455
- const currentSource = this.agentSource.value;
26456
- const newSource = padBook(validateBook(spaceTrim$2(currentSource) + '\n\n---\n\n' + nonce));
26457
- // <- TODO: [🈲] Use some object-based way how to append on book (with sections `---`)
26458
- // Update the source (which will trigger the subscription and update the underlying tools)
26459
- this.agentSource.next(newSource);
26460
- }, _Agent_selfLearnSamples = function _Agent_selfLearnSamples(prompt, result) {
26461
- console.info(colors.bgCyan('[Self-learning]') + colors.cyan(' Sampling'));
26462
- const learningExample = spaceTrim$2((block) => `
26463
-
26464
- USER MESSAGE
26465
- ${block(prompt.content)}
26466
-
26467
- AGENT MESSAGE
26468
- ${block(result.content)}
26469
-
26470
- `);
26471
- // Append to the current source
26472
- const currentSource = this.agentSource.value;
26473
- const newSource = padBook(validateBook(spaceTrim$2(currentSource) + '\n\n---\n\n' + learningExample));
26474
- // <- TODO: [🈲] Use some object-based way how to append on book (with sections `---`)
26475
- // Update the source (which will trigger the subscription and update the underlying tools)
26476
- this.agentSource.next(newSource);
26477
- }, _Agent_selfLearnTeacher =
26478
- /**
26479
- * Self-learning Step 2: Asynchronously call the teacher agent and invoke the silver link
26480
- */
26481
- async function _Agent_selfLearnTeacher(prompt, result) {
26482
- // [1] Call the teacher agent // <- !!!!! Emojis
26483
- if (this.teacherAgent === null) {
26484
- return null;
26485
- }
26486
- console.info(colors.bgCyan('[Self-learning]') + colors.cyan(' Teacher'));
26487
- const teacherResult = await this.teacherAgent.callChatModel({
26488
- title: 'Self-learning',
26489
- modelRequirements: {
26490
- modelVariant: 'CHAT',
26491
- },
26492
- // TODO: !!!! Use prompt notation
26493
- content: spaceTrim$2((block) => `
26494
-
26495
- You are a teacher agent helping another agent to learn from its interactions.
26496
-
26497
- Here is your current client which you are teaching:
26498
-
26499
- \`\`\`book
26500
- ${block(this.agentSource.value)}
26501
- \`\`\`
26502
-
26503
- **And here is the latest interaction:**
26504
-
26505
- **User:**
26506
- ${block(prompt.content)}
26507
-
26508
- **Agent:**
26509
- ${block(result.content)}
26510
-
26511
-
26512
- **Rules:**
26513
-
26514
- - Decide what the agent should learn from this interaction.
26515
- - Append new commitments at the end of the agent source.
26516
- - Do not modify the current agent source, just return new commitments (KNOWLEDGE, RULE, etc.).
26517
- - If there is nothing new to learn, return empty book code block
26518
- - Wrap the commitments in a book code block.
26519
- - Do not explain anything, just return the commitments wrapped in a book code block.
26520
- - Write the learned commitments in the same style and language as in the original agent source.
26521
-
26522
-
26523
- This is how book code block looks like:
26524
-
26525
- \`\`\`book
26526
- KNOWLEDGE The sky is blue.
26527
- RULE Always be polite.
26528
- \`\`\`
26529
- `),
26530
- // pipelineUrl: 'https://github.com/webgptorg/promptbook/blob/main/prompts/self-learning.ptbk.md',
26531
- // <- TODO: !!!! Remove and `pipelineUrl` for agent purposes
26532
- parameters: {},
26533
- });
26534
- console.log('!!!! teacherResult', teacherResult);
26535
- const teacherCommitments = unwrapResult(teacherResult.content);
26536
- if (teacherCommitments === '') {
26537
- console.info(colors.bgCyan('[Self-learning]') +
26538
- colors.cyan(' Teacher agent did not provide new commitments to learn'));
26539
- return buildTeacherSummary('', true);
26540
- }
26541
- // [2] Append to the current source
26542
- const currentSource = this.agentSource.value;
26543
- const newSource = padBook(validateBook(spaceTrim$2(currentSource) + '\n\n' + teacherCommitments));
26544
- // <- TODO: [🈲] Use some object-based way how to append on book (with sections `---`)
26545
- // [3] Update the source
26546
- this.agentSource.next(newSource);
26547
- return buildTeacherSummary(teacherCommitments, true);
26548
- };
26549
27069
  /**
26550
27070
  * TODO: [🧠][😰]Agent is not working with the parameters, should it be?
26551
27071
  */
@@ -26820,13 +27340,23 @@ class RemoteAgent extends Agent {
26820
27340
  remoteAgent.samples = profile.samples || [];
26821
27341
  remoteAgent.toolTitles = profile.toolTitles || {};
26822
27342
  remoteAgent._isVoiceCallingEnabled = profile.isVoiceCallingEnabled === true; // [✨✷] Store voice calling status
27343
+ remoteAgent._isVoiceTtsSttEnabled = profile.isVoiceTtsSttEnabled !== false;
26823
27344
  remoteAgent.knowledgeSources = profile.knowledgeSources || [];
26824
27345
  return remoteAgent;
26825
27346
  }
27347
+ /**
27348
+ * Indicates whether the remote server allows text-to-speech and speech-to-text.
27349
+ *
27350
+ * @public exported from `@promptbook/core`
27351
+ */
27352
+ get isVoiceTtsSttEnabled() {
27353
+ return this._isVoiceTtsSttEnabled;
27354
+ }
26826
27355
  constructor(options) {
26827
27356
  super(options);
26828
27357
  this.toolTitles = {};
26829
27358
  this._isVoiceCallingEnabled = false; // [✨✷] Track voice calling status
27359
+ this._isVoiceTtsSttEnabled = true;
26830
27360
  this.knowledgeSources = [];
26831
27361
  this.agentUrl = options.agentUrl;
26832
27362
  }
@@ -26848,7 +27378,7 @@ class RemoteAgent extends Agent {
26848
27378
  * Returns undefined if voice calling is disabled
26849
27379
  */
26850
27380
  get callVoiceChatModel() {
26851
- if (!this._isVoiceCallingEnabled) {
27381
+ if (!this._isVoiceCallingEnabled || !this._isVoiceTtsSttEnabled) {
26852
27382
  return undefined;
26853
27383
  }
26854
27384
  return async (audio, prompt) => {
@@ -26911,6 +27441,7 @@ class RemoteAgent extends Agent {
26911
27441
  const toolCalls = [];
26912
27442
  const preparationToolCalls = [];
26913
27443
  let hasReceivedModelOutput = false;
27444
+ let pendingToolCallLineFragment = '';
26914
27445
  const normalizeToolCall = (toolCall) => {
26915
27446
  if (toolCall.createdAt) {
26916
27447
  return toolCall;
@@ -26963,6 +27494,113 @@ class RemoteAgent extends Agent {
26963
27494
  * Builds the tool call list including any preparation marker still active.
26964
27495
  */
26965
27496
  const getActiveToolCalls = () => preparationToolCalls.length > 0 ? [...preparationToolCalls, ...toolCalls] : toolCalls;
27497
+ /**
27498
+ * Emits one progress snapshot using current aggregated text and tool calls.
27499
+ */
27500
+ const emitProgress = () => {
27501
+ onProgress({
27502
+ content,
27503
+ modelName: this.modelName,
27504
+ timing: {},
27505
+ usage: {},
27506
+ rawPromptContent: {},
27507
+ rawRequest: {},
27508
+ rawResponse: {},
27509
+ toolCalls: getActiveToolCalls(),
27510
+ });
27511
+ };
27512
+ /**
27513
+ * Attempts to parse one completed NDJSON tool-call line.
27514
+ */
27515
+ const tryParseToolCallLine = (trimmedLine) => {
27516
+ if (!trimmedLine.startsWith('{') || !trimmedLine.endsWith('}')) {
27517
+ return false;
27518
+ }
27519
+ try {
27520
+ const chunk = JSON.parse(trimmedLine);
27521
+ if (!chunk.toolCalls) {
27522
+ return false;
27523
+ }
27524
+ const normalizedToolCalls = chunk.toolCalls.map(normalizeToolCall);
27525
+ upsertToolCalls(normalizedToolCalls);
27526
+ emitProgress();
27527
+ return true;
27528
+ }
27529
+ catch (_a) {
27530
+ return false;
27531
+ }
27532
+ };
27533
+ /**
27534
+ * Detects whether an incomplete trailing line might be a split tool-call payload.
27535
+ */
27536
+ const isPotentialToolCallLineFragment = (trimmedLine) => {
27537
+ if (trimmedLine.length === 0) {
27538
+ return false;
27539
+ }
27540
+ const toolCallPrefix = '{"toolCalls":';
27541
+ return toolCallPrefix.startsWith(trimmedLine) || trimmedLine.startsWith(toolCallPrefix);
27542
+ };
27543
+ /**
27544
+ * Appends model text to accumulated content and emits progress.
27545
+ */
27546
+ const appendTextChunk = (textChunk) => {
27547
+ if (!textChunk) {
27548
+ return;
27549
+ }
27550
+ content += textChunk;
27551
+ if (!hasReceivedModelOutput && content.trim().length > 0) {
27552
+ hasReceivedModelOutput = true;
27553
+ preparationToolCalls.length = 0;
27554
+ }
27555
+ emitProgress();
27556
+ };
27557
+ /**
27558
+ * Consumes one decoded transport chunk, removing keep-alive pings and tool-call frames.
27559
+ *
27560
+ * Note: Tool-call JSON is line-delimited but may arrive split across transport chunks.
27561
+ */
27562
+ const processDecodedChunk = (decodedChunk) => {
27563
+ var _a;
27564
+ if (!decodedChunk) {
27565
+ return;
27566
+ }
27567
+ const combinedChunk = pendingToolCallLineFragment + decodedChunk;
27568
+ pendingToolCallLineFragment = '';
27569
+ const hasTrailingNewline = combinedChunk.endsWith('\n') || combinedChunk.endsWith('\r');
27570
+ const lines = combinedChunk.split(/\r?\n/);
27571
+ const trailingFragment = hasTrailingNewline ? '' : ((_a = lines.pop()) !== null && _a !== void 0 ? _a : '');
27572
+ let hasNonEmptyText = false;
27573
+ const textLines = [];
27574
+ for (const line of lines) {
27575
+ const trimmedLine = line.trim();
27576
+ if (trimmedLine === CHAT_STREAM_KEEP_ALIVE_TOKEN) {
27577
+ continue;
27578
+ }
27579
+ if (tryParseToolCallLine(trimmedLine)) {
27580
+ continue;
27581
+ }
27582
+ textLines.push(line);
27583
+ if (trimmedLine.length > 0) {
27584
+ hasNonEmptyText = true;
27585
+ }
27586
+ }
27587
+ if (trailingFragment !== '') {
27588
+ const trimmedTrailingFragment = trailingFragment.trim();
27589
+ if (isPotentialToolCallLineFragment(trimmedTrailingFragment)) {
27590
+ pendingToolCallLineFragment = trailingFragment;
27591
+ }
27592
+ else {
27593
+ textLines.push(trailingFragment);
27594
+ if (trimmedTrailingFragment.length > 0) {
27595
+ hasNonEmptyText = true;
27596
+ }
27597
+ }
27598
+ }
27599
+ if (!hasNonEmptyText) {
27600
+ return;
27601
+ }
27602
+ appendTextChunk(textLines.join('\n'));
27603
+ };
26966
27604
  if (!bookResponse.body) {
26967
27605
  content = await bookResponse.text();
26968
27606
  }
@@ -26978,84 +27616,26 @@ class RemoteAgent extends Agent {
26978
27616
  doneReading = !!done;
26979
27617
  if (value) {
26980
27618
  const textChunk = decoder.decode(value, { stream: true });
26981
- let hasNonEmptyText = false;
26982
- const textLines = [];
26983
- const lines = textChunk.split(/\r?\n/);
26984
- for (const line of lines) {
26985
- const trimmedLine = line.trim();
26986
- if (trimmedLine === CHAT_STREAM_KEEP_ALIVE_TOKEN) {
26987
- continue;
26988
- }
26989
- let isToolCallLine = false;
26990
- if (trimmedLine.startsWith('{') && trimmedLine.endsWith('}')) {
26991
- try {
26992
- const chunk = JSON.parse(trimmedLine);
26993
- if (chunk.toolCalls) {
26994
- const normalizedToolCalls = chunk.toolCalls.map(normalizeToolCall);
26995
- upsertToolCalls(normalizedToolCalls);
26996
- onProgress({
26997
- content,
26998
- modelName: this.modelName,
26999
- timing: {},
27000
- usage: {},
27001
- rawPromptContent: {},
27002
- rawRequest: {},
27003
- rawResponse: {},
27004
- toolCalls: getActiveToolCalls(),
27005
- });
27006
- isToolCallLine = true;
27007
- }
27008
- }
27009
- catch (error) {
27010
- // Ignore non-json lines
27011
- }
27012
- }
27013
- if (!isToolCallLine) {
27014
- textLines.push(line);
27015
- if (trimmedLine.length > 0) {
27016
- hasNonEmptyText = true;
27017
- }
27018
- }
27019
- }
27020
- if (!hasNonEmptyText) {
27021
- continue;
27022
- }
27023
- const textChunkWithoutToolCalls = textLines.join('\n');
27024
- content += textChunkWithoutToolCalls;
27025
- if (!hasReceivedModelOutput && content.trim().length > 0) {
27026
- hasReceivedModelOutput = true;
27027
- preparationToolCalls.length = 0;
27028
- }
27029
- onProgress({
27030
- content,
27031
- modelName: this.modelName,
27032
- timing: {},
27033
- usage: {},
27034
- rawPromptContent: {},
27035
- rawRequest: {},
27036
- rawResponse: {},
27037
- toolCalls: getActiveToolCalls(),
27038
- });
27619
+ processDecodedChunk(textChunk);
27039
27620
  }
27040
27621
  }
27041
27622
  // Flush any remaining decoder internal state
27042
27623
  const lastChunk = decoder.decode();
27043
27624
  if (lastChunk) {
27044
- content += lastChunk;
27045
- if (!hasReceivedModelOutput && content.trim().length > 0) {
27046
- hasReceivedModelOutput = true;
27047
- preparationToolCalls.length = 0;
27625
+ processDecodedChunk(lastChunk);
27626
+ }
27627
+ if (pendingToolCallLineFragment) {
27628
+ const trimmedPending = pendingToolCallLineFragment.trim();
27629
+ if (trimmedPending === CHAT_STREAM_KEEP_ALIVE_TOKEN) {
27630
+ pendingToolCallLineFragment = '';
27631
+ }
27632
+ else if (tryParseToolCallLine(trimmedPending)) {
27633
+ pendingToolCallLineFragment = '';
27634
+ }
27635
+ else {
27636
+ appendTextChunk(pendingToolCallLineFragment);
27637
+ pendingToolCallLineFragment = '';
27048
27638
  }
27049
- onProgress({
27050
- content: lastChunk,
27051
- modelName: this.modelName,
27052
- timing: {},
27053
- usage: {},
27054
- rawPromptContent: {},
27055
- rawRequest: {},
27056
- rawResponse: {},
27057
- toolCalls: getActiveToolCalls(),
27058
- });
27059
27639
  }
27060
27640
  }
27061
27641
  finally {
@@ -28459,6 +29039,7 @@ const TOOL_TITLES = {
28459
29039
  run_browser: { title: 'Running browser', emoji: '🌐' },
28460
29040
  get_current_time: { title: 'Checking time', emoji: '🕒' },
28461
29041
  useTime: { title: 'Checking time', emoji: '🕒' },
29042
+ get_user_location: { title: 'Checking location', emoji: '📍' },
28462
29043
  send_email: { title: 'Sending email', emoji: '📧' },
28463
29044
  useEmail: { title: 'Sending email', emoji: '📧' },
28464
29045
  // Add more tools here as needed
@@ -28719,8 +29300,8 @@ function ImagePromptRenderer({ alt, prompt }) {
28719
29300
  return (jsxs("div", { className: styles$5.imagePrompt, "aria-live": "polite", children: [jsxs("div", { className: styles$5.imagePromptPreview, children: [status === 'success' && imageUrl ? (jsx("img", { src: imageUrl, alt: alt, className: styles$5.imagePromptImage })) : (jsx("div", { className: styles$5.imagePromptPlaceholder, children: jsx("div", { className: styles$5.imagePromptSpinner }) })), status === 'error' && error && jsx("div", { className: styles$5.imagePromptError, children: error })] }), jsxs("div", { className: styles$5.imagePromptMeta, children: [jsx("span", { className: styles$5.imagePromptPrompt, children: trimmedPrompt || 'Generated image' }), jsx("span", { className: styles$5.imagePromptStatus, children: statusLabel })] })] }));
28720
29301
  }
28721
29302
 
28722
- 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 */";
28723
- 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"};
29303
+ 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== */";
29304
+ 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"};
28724
29305
  styleInject(css_248z$1);
28725
29306
 
28726
29307
  /**
@@ -28729,6 +29310,206 @@ styleInject(css_248z$1);
28729
29310
  * @private internal helper of `<ChatMessageItem/>`
28730
29311
  */
28731
29312
  const DEFAULT_LAYER_ID = 'chat-message-map-layer';
29313
+ /**
29314
+ * Style tokens used to make GeoJSON paths and polygons feel more modern.
29315
+ *
29316
+ * @private internal helper of `<ChatMessageMap/>`
29317
+ */
29318
+ const GEOJSON_STYLE_PRESETS = {
29319
+ polygon: {
29320
+ color: '#38bdf8',
29321
+ weight: 2,
29322
+ opacity: 0.95,
29323
+ fillColor: 'rgba(59, 130, 246, 0.28)',
29324
+ fillOpacity: 0.35,
29325
+ dashArray: '6 8',
29326
+ lineCap: 'round',
29327
+ lineJoin: 'round',
29328
+ },
29329
+ line: {
29330
+ color: '#67e8f9',
29331
+ weight: 3,
29332
+ opacity: 0.92,
29333
+ dashArray: '5 7',
29334
+ lineCap: 'round',
29335
+ lineJoin: 'round',
29336
+ },
29337
+ highlight: {
29338
+ color: '#7dd3fc',
29339
+ weight: 4,
29340
+ fillOpacity: 0.55,
29341
+ },
29342
+ default: {
29343
+ color: '#6ee7b7',
29344
+ weight: 2.5,
29345
+ opacity: 0.9,
29346
+ dashArray: '4 6',
29347
+ lineCap: 'round',
29348
+ lineJoin: 'round',
29349
+ },
29350
+ };
29351
+ /**
29352
+ * Dimensions and anchor offsets for the custom point-of-interest markers.
29353
+ *
29354
+ * @private internal helper of `<ChatMessageMap/>`
29355
+ */
29356
+ const POI_MARKER_CONFIG = {
29357
+ size: 38,
29358
+ anchor: [19, 19],
29359
+ };
29360
+ /**
29361
+ * Offset used for map tooltips so labels sit above the features.
29362
+ *
29363
+ * @private internal helper of `<ChatMessageMap/>`
29364
+ */
29365
+ const MAP_TOOLTIP_OFFSET = [0, -20];
29366
+ /**
29367
+ * Returns the preferred label for a GeoJSON feature by checking common property keys.
29368
+ *
29369
+ * @param feature - Feature to inspect for identifying properties.
29370
+ * @returns A trimmed string label or `null` when no candidate is available.
29371
+ *
29372
+ * @private internal helper of `<ChatMessageMap/>`
29373
+ */
29374
+ function getGeoJsonFeatureLabel(feature) {
29375
+ const properties = feature.properties;
29376
+ if (properties && typeof properties === 'object') {
29377
+ const bag = properties;
29378
+ for (const key of ['name', 'title', 'label', 'description']) {
29379
+ const value = bag[key];
29380
+ if (typeof value === 'string' && value.trim().length > 0) {
29381
+ return value.trim();
29382
+ }
29383
+ }
29384
+ }
29385
+ if (typeof feature.id === 'string' && feature.id.trim().length > 0) {
29386
+ return feature.id.trim();
29387
+ }
29388
+ if (typeof feature.id === 'number') {
29389
+ return feature.id.toString();
29390
+ }
29391
+ return null;
29392
+ }
29393
+ /**
29394
+ * Provides a base style object for GeoJSON paths so polygons, lines, and fallbacks get distinct strokes.
29395
+ *
29396
+ * @param feature - Feature driving the style calculation.
29397
+ * @returns A fresh `PathOptions` instance describing stroke/fill tokens.
29398
+ *
29399
+ * @private internal helper of `<ChatMessageMap/>`
29400
+ */
29401
+ function getGeoJsonFeatureStyle(feature) {
29402
+ var _a;
29403
+ const geometryType = (_a = feature === null || feature === void 0 ? void 0 : feature.geometry) === null || _a === void 0 ? void 0 : _a.type;
29404
+ if (geometryType === 'Polygon' || geometryType === 'MultiPolygon') {
29405
+ return { ...GEOJSON_STYLE_PRESETS.polygon };
29406
+ }
29407
+ if (geometryType === 'LineString' || geometryType === 'MultiLineString') {
29408
+ return { ...GEOJSON_STYLE_PRESETS.line };
29409
+ }
29410
+ return { ...GEOJSON_STYLE_PRESETS.default };
29411
+ }
29412
+ /**
29413
+ * Builds a highlighted style variant for hover states while respecting the base tokens.
29414
+ *
29415
+ * @param baseStyle - Style to ramp up for the hover effect.
29416
+ * @returns A new `PathOptions` instance with stronger stroke/fill emphasis.
29417
+ *
29418
+ * @private internal helper of `<ChatMessageMap/>`
29419
+ */
29420
+ function getGeoJsonHighlightStyle(baseStyle) {
29421
+ var _a, _b, _c;
29422
+ return {
29423
+ ...baseStyle,
29424
+ color: (_a = GEOJSON_STYLE_PRESETS.highlight.color) !== null && _a !== void 0 ? _a : baseStyle.color,
29425
+ weight: Math.max((_b = baseStyle.weight) !== null && _b !== void 0 ? _b : 2, 1) * 1.3,
29426
+ fillOpacity: Math.min(0.6, ((_c = baseStyle.fillOpacity) !== null && _c !== void 0 ? _c : 0.2) + 0.25),
29427
+ };
29428
+ }
29429
+ /**
29430
+ * Guards Leaflet layers that support `setStyle`.
29431
+ *
29432
+ * @param layer - Candidate Leaflet layer to check.
29433
+ * @returns `true` when the supplied layer exposes `Path` styling helpers.
29434
+ *
29435
+ * @private internal helper of `<ChatMessageMap/>`
29436
+ */
29437
+ function isLeafletPathLayer(layer) {
29438
+ return typeof layer.setStyle === 'function';
29439
+ }
29440
+ /**
29441
+ * Attaches tooltips, hover highlights, and accessibility helpers to GeoJSON layers.
29442
+ *
29443
+ * @param feature - Feature backing the Leaflet layer.
29444
+ * @param layer - Leaflet layer created for the feature.
29445
+ *
29446
+ * @private internal helper of `<ChatMessageMap/>`
29447
+ */
29448
+ function decorateGeoJsonLayer(feature, layer) {
29449
+ const label = getGeoJsonFeatureLabel(feature);
29450
+ if (label) {
29451
+ layer.bindTooltip(label, {
29452
+ direction: 'top',
29453
+ offset: MAP_TOOLTIP_OFFSET,
29454
+ className: styles$1.mapTooltip,
29455
+ });
29456
+ }
29457
+ if (!isLeafletPathLayer(layer)) {
29458
+ return;
29459
+ }
29460
+ const baseStyle = getGeoJsonFeatureStyle(feature);
29461
+ layer.on('mouseover', () => {
29462
+ layer.setStyle(getGeoJsonHighlightStyle(baseStyle));
29463
+ });
29464
+ layer.on('mouseout', () => {
29465
+ layer.setStyle(baseStyle);
29466
+ });
29467
+ }
29468
+ /**
29469
+ * Renders a custom point-of-interest marker for point features.
29470
+ *
29471
+ * @param feature - Feature describing the point.
29472
+ * @param latlng - Coordinates where the marker should appear.
29473
+ * @returns Leaflet marker with layered glow and optional initial text.
29474
+ *
29475
+ * @private internal helper of `<ChatMessageMap/>`
29476
+ */
29477
+ function createPointOfInterestMarker(feature, latlng) {
29478
+ const label = getGeoJsonFeatureLabel(feature);
29479
+ const initial = label ? label.trim().charAt(0).toLocaleUpperCase() : '';
29480
+ const initialHtml = initial
29481
+ ? `<span class="${styles$1.poiMarkerInitial}" aria-hidden="true">${escapeHtml(initial)}</span>`
29482
+ : '';
29483
+ const icon = L.divIcon({
29484
+ className: styles$1.poiMarkerIcon,
29485
+ html: `
29486
+ <span class="${styles$1.poiMarkerPulse}" aria-hidden="true"></span>
29487
+ ${initialHtml}
29488
+ `.trim(),
29489
+ iconSize: [POI_MARKER_CONFIG.size, POI_MARKER_CONFIG.size],
29490
+ iconAnchor: POI_MARKER_CONFIG.anchor,
29491
+ });
29492
+ return L.marker(latlng, {
29493
+ icon,
29494
+ riseOnHover: true,
29495
+ });
29496
+ }
29497
+ /**
29498
+ * Escapes HTML-sensitive characters to keep raw GeoJSON properties safe when injected into markup.
29499
+ *
29500
+ * @param value - Source string to escape.
29501
+ * @returns Escaped string safe for insertion into HTML fragments.
29502
+ *
29503
+ * @private internal helper of `<ChatMessageMap/>`
29504
+ */
29505
+ function escapeHtml(value) {
29506
+ return value
29507
+ .replace(/&/g, '&amp;')
29508
+ .replace(/</g, '&lt;')
29509
+ .replace(/>/g, '&gt;')
29510
+ .replace(/"/g, '&quot;')
29511
+ .replace(/'/g, '&#39;');
29512
+ }
28732
29513
  /**
28733
29514
  * Custom hook that renders a Leaflet map inside the provided container and keeps it synced with the geojson payload.
28734
29515
  *
@@ -28764,17 +29545,9 @@ function useLeafletGeoJsonMap(containerRef, data, enabled) {
28764
29545
  });
28765
29546
  layer.addTo(map);
28766
29547
  const geoJsonLayer = L.geoJSON(data, {
28767
- style: () => ({
28768
- color: '#6EE7B7',
28769
- weight: 3,
28770
- }),
28771
- pointToLayer: (_feature, latlng) => L.circleMarker(latlng, {
28772
- radius: 6,
28773
- fillColor: '#f59e0b',
28774
- color: '#fbbf24',
28775
- weight: 2,
28776
- fillOpacity: 0.9,
28777
- }),
29548
+ style: getGeoJsonFeatureStyle,
29549
+ pointToLayer: (feature, latlng) => createPointOfInterestMarker(feature, latlng),
29550
+ onEachFeature: (feature, layer) => decorateGeoJsonLayer(feature, layer),
28778
29551
  });
28779
29552
  geoJsonLayer.addTo(map);
28780
29553
  const bounds = geoJsonLayer.getBounds();
@@ -29136,11 +29909,10 @@ function appendOngoingToolCallCount(label, count) {
29136
29909
  * Builds the label for an ongoing tool call group.
29137
29910
  */
29138
29911
  function buildOngoingToolCallLabel(group) {
29139
- const baseLabel = group.displayTitle || `Executing ${group.toolCall.name}`;
29140
- return appendOngoingToolCallCount(baseLabel, group.count);
29912
+ return appendOngoingToolCallCount(group.label, group.count);
29141
29913
  }
29142
29914
  /**
29143
- * Extracts the assistant preparation phase for grouping, when present.
29915
+ * Extracts the assistant preparation phase from one tool call, when present.
29144
29916
  */
29145
29917
  function getOngoingToolCallPreparationPhase(toolCall) {
29146
29918
  if (!isAssistantPreparationToolCall(toolCall)) {
@@ -29149,6 +29921,21 @@ function getOngoingToolCallPreparationPhase(toolCall) {
29149
29921
  const toolArguments = parseToolCallArguments(toolCall);
29150
29922
  return typeof toolArguments.phase === 'string' ? toolArguments.phase : undefined;
29151
29923
  }
29924
+ /**
29925
+ * Resolves shared chip text for one tool call.
29926
+ *
29927
+ * This helper is intentionally reused for both ongoing and completed tool-call chips.
29928
+ */
29929
+ function resolveToolCallChipLabel(toolCall, options = {}) {
29930
+ const { chipletInfo } = options;
29931
+ const preparationPhase = getOngoingToolCallPreparationPhase(toolCall);
29932
+ if (preparationPhase) {
29933
+ const toolInfo = TOOL_TITLES[toolCall.name];
29934
+ const preparationTitle = (toolInfo === null || toolInfo === void 0 ? void 0 : toolInfo.title) || toolCall.name;
29935
+ return `${preparationTitle}: ${preparationPhase}`;
29936
+ }
29937
+ return buildToolCallChipText(chipletInfo || getToolCallChipletInfo(toolCall));
29938
+ }
29152
29939
  /**
29153
29940
  * Builds a stable participant identity for ongoing tool call grouping.
29154
29941
  */
@@ -29183,15 +29970,17 @@ function dedupeToolCalls(toolCalls) {
29183
29970
  /**
29184
29971
  * Groups ongoing tool calls by tool identity to avoid duplicate chips.
29185
29972
  */
29186
- function groupOngoingToolCalls(toolCalls, toolTitles, teammates) {
29973
+ function groupOngoingToolCalls(toolCalls, teammates) {
29187
29974
  if (!toolCalls || toolCalls.length === 0) {
29188
29975
  return [];
29189
29976
  }
29190
29977
  const grouped = new Map();
29191
29978
  const ordered = [];
29192
29979
  for (const toolCall of toolCalls) {
29980
+ const chipletInfo = getToolCallChipletInfo(toolCall);
29981
+ const label = resolveToolCallChipLabel(toolCall, { chipletInfo });
29193
29982
  const preparationPhase = getOngoingToolCallPreparationPhase(toolCall);
29194
- const teamAgentData = resolveTeamAgentChipData(toolCall, teammates);
29983
+ const teamAgentData = resolveTeamAgentChipData(toolCall, teammates, chipletInfo);
29195
29984
  const participantKey = getOngoingToolCallParticipantKey(teamAgentData);
29196
29985
  const groupKey = getOngoingToolCallGroupKey(toolCall, {
29197
29986
  preparationPhase,
@@ -29202,17 +29991,11 @@ function groupOngoingToolCalls(toolCalls, toolTitles, teammates) {
29202
29991
  existing.count += 1;
29203
29992
  continue;
29204
29993
  }
29205
- const toolInfo = TOOL_TITLES[toolCall.name];
29206
- const isTeamTool = isTeamToolName(toolCall.name);
29207
- 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);
29208
- const displayTitle = preparationPhase ? `${toolTitle || toolCall.name}: ${preparationPhase}` : toolTitle;
29209
- const emoji = isTeamTool ? '??' : (toolInfo === null || toolInfo === void 0 ? void 0 : toolInfo.emoji) || '???';
29210
29994
  const group = {
29211
29995
  key: groupKey,
29212
29996
  toolCall,
29213
29997
  count: 1,
29214
- displayTitle,
29215
- emoji,
29998
+ label,
29216
29999
  teamAgentData,
29217
30000
  };
29218
30001
  grouped.set(groupKey, group);
@@ -29230,7 +30013,7 @@ const ChatMessageItem = memo(
29230
30013
  // Or make normal function from this?
29231
30014
  (props) => {
29232
30015
  var _a, _b;
29233
- const { message, participant, participants, isLastMessage, onMessage, setExpandedMessageId, isExpanded, currentRating, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, onCreateAgent, toolTitles, teammates, onToolCallClick, onCitationClick, soundSystem, } = props;
30016
+ const { message, participant, participants, isLastMessage, onMessage, setExpandedMessageId, isExpanded, currentRating, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, onCreateAgent, teammates, onToolCallClick, onCitationClick, soundSystem, isSpeechPlaybackEnabled, } = props;
29234
30017
  const { isComplete = true,
29235
30018
  // <- TODO: Destruct all `messages` properties like `isComplete`
29236
30019
  } = message;
@@ -29332,15 +30115,16 @@ const ChatMessageItem = memo(
29332
30115
  const [isAudioLoading, setIsAudioLoading] = useState(false);
29333
30116
  const [isAudioPlaying, setIsAudioPlaying] = useState(false);
29334
30117
  const [audioError, setAudioError] = useState(null);
29335
- const ongoingToolCallGroups = useMemo(() => groupOngoingToolCalls(message.ongoingToolCalls, toolTitles, teammates), [message.ongoingToolCalls, toolTitles, teammates]);
30118
+ const ongoingToolCallGroups = useMemo(() => groupOngoingToolCalls(message.ongoingToolCalls, teammates), [message.ongoingToolCalls, teammates]);
29336
30119
  const completedToolCallCount = (_b = completedToolCalls === null || completedToolCalls === void 0 ? void 0 : completedToolCalls.length) !== null && _b !== void 0 ? _b : 0;
29337
30120
  const transitiveToolCallCount = transitiveToolCalls.length;
29338
30121
  const ongoingToolCallCount = ongoingToolCallGroups.length;
29339
30122
  const toolCallChipCount = completedToolCallCount + transitiveToolCallCount + ongoingToolCallCount;
29340
30123
  const shouldShowButtons = isLastMessage && buttons.length > 0 && onMessage;
29341
- const playButtonTitle = audioError !== null && audioError !== void 0 ? audioError : (isAudioPlaying ? 'Pause message playback' : 'Read message aloud');
29342
30124
  const trimmedMessageContent = message.content.trim();
29343
- const shouldShowPlayButton = trimmedMessageContent.length > 0;
30125
+ const speechPlaybackEnabled = isSpeechPlaybackEnabled !== null && isSpeechPlaybackEnabled !== void 0 ? isSpeechPlaybackEnabled : true;
30126
+ const shouldShowPlayButton = speechPlaybackEnabled && trimmedMessageContent.length > 0;
30127
+ const playButtonTitle = audioError !== null && audioError !== void 0 ? audioError : (isAudioPlaying ? 'Pause message playback' : 'Read message aloud');
29344
30128
  /**
29345
30129
  * Attaches playback listeners to keep the UI in sync with the audio element.
29346
30130
  *
@@ -29566,7 +30350,7 @@ const ChatMessageItem = memo(
29566
30350
  return null;
29567
30351
  }) })), message.attachments && message.attachments.length > 0 && (jsx("div", { className: styles$5.attachments, children: message.attachments.map((attachment, index) => (jsxs("a", { href: attachment.url, target: "_blank", rel: "noopener noreferrer", className: styles$5.attachment, title: attachment.name, children: [jsx("span", { className: styles$5.attachmentIcon, children: "\uD83D\uDCCE" }), jsx("span", { className: styles$5.attachmentName, children: attachment.name })] }, index))) })), completedToolCalls && completedToolCalls.length > 0 && (jsxs("div", { className: styles$5.completedToolCalls, children: [completedToolCalls.map((toolCall, index) => {
29568
30352
  const chipletInfo = getToolCallChipletInfo(toolCall);
29569
- const chipletText = buildToolCallChipText(chipletInfo);
30353
+ const chipletText = resolveToolCallChipLabel(toolCall, { chipletInfo });
29570
30354
  const teamAgentData = resolveTeamAgentChipData(toolCall, teammates, chipletInfo);
29571
30355
  // If this is a team tool with agent data, use AgentChip
29572
30356
  if (teamAgentData) {
@@ -29587,7 +30371,9 @@ const ChatMessageItem = memo(
29587
30371
  }, children: chipletText }, index));
29588
30372
  }), transitiveToolCalls.map((toolCallEntry, index) => {
29589
30373
  const chipletInfo = getToolCallChipletInfo(toolCallEntry.toolCall);
29590
- const chipletText = buildToolCallChipText(chipletInfo);
30374
+ const chipletText = resolveToolCallChipLabel(toolCallEntry.toolCall, {
30375
+ chipletInfo,
30376
+ });
29591
30377
  return (jsxs("button", { className: styles$5.completedToolCall, onClick: (event) => {
29592
30378
  event.stopPropagation();
29593
30379
  if (onToolCallClick) {
@@ -29600,7 +30386,7 @@ const ChatMessageItem = memo(
29600
30386
  return (jsx(AgentChip, { agent: group.teamAgentData, isOngoing: true, labelSuffix: labelSuffix }, group.key));
29601
30387
  }
29602
30388
  const label = buildOngoingToolCallLabel(group);
29603
- return (jsxs("div", { className: styles$5.ongoingToolCall, children: [jsx("div", { className: styles$5.ongoingToolCallSpinner }), jsx("span", { className: styles$5.ongoingToolCallName, children: `${group.emoji} ${label}...` })] }, group.key));
30389
+ return (jsxs("div", { className: styles$5.ongoingToolCall, children: [jsx("div", { className: styles$5.ongoingToolCallSpinner }), jsx("span", { className: styles$5.ongoingToolCallName, children: `${label}...` })] }, group.key));
29604
30390
  }) })), shouldShowButtons && (jsx("div", { className: styles$5.messageButtons, children: buttons.map((button, buttonIndex) => (jsx("button", { className: styles$5.messageButton, onClick: (event) => {
29605
30391
  event.stopPropagation();
29606
30392
  if (onMessage) {
@@ -29697,7 +30483,7 @@ ChatMessageItem.displayName = 'ChatMessageItem';
29697
30483
  * @private component of `<Chat/>`
29698
30484
  */
29699
30485
  function ChatMessageList(props) {
29700
- const { messages, participants, expandedMessageId, messageRatings, setExpandedMessageId, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, onMessage, onCreateAgent, toolTitles, teammates, onToolCallClick, onCitationClick, soundSystem, setChatMessagesElement, onScroll, chatMessagesClassName, hasActions, } = props;
30486
+ const { messages, participants, expandedMessageId, messageRatings, setExpandedMessageId, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, onMessage, onCreateAgent, toolTitles, teammates, onToolCallClick, onCitationClick, soundSystem, isSpeechPlaybackEnabled, setChatMessagesElement, onScroll, chatMessagesClassName, hasActions, } = props;
29701
30487
  const firstMessage = messages[0];
29702
30488
  const firstMsgContent = (firstMessage === null || firstMessage === void 0 ? void 0 : firstMessage.content) || '';
29703
30489
  const firstMsgLines = firstMsgContent.split(/\r?\n/).length;
@@ -29709,7 +30495,7 @@ function ChatMessageList(props) {
29709
30495
  const isLastMessage = index === messages.length - 1;
29710
30496
  const isExpanded = expandedMessageId === message.id;
29711
30497
  const currentRating = messageRatings.get(message.id || message.content /* <-[??] */) || 0;
29712
- return (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));
30498
+ return (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));
29713
30499
  }), jsx("div", { style: { height: 100 } })] }));
29714
30500
  }
29715
30501
 
@@ -30913,7 +31699,7 @@ function isLatestMessageVisible(chatMessagesElement, messageSelector) {
30913
31699
  * @public exported from `@promptbook/components`
30914
31700
  */
30915
31701
  function Chat(props) {
30916
- 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;
31702
+ 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;
30917
31703
  const buttonColor = useMemo(() => Color.from(buttonColorRaw || '#0066cc'), [buttonColorRaw]);
30918
31704
  const agentParticipant = useMemo(() => participants.find((participant) => participant.name === 'AGENT'), [participants]);
30919
31705
  const postprocessedMessages = useMemo(() => {
@@ -31087,7 +31873,7 @@ function Chat(props) {
31087
31873
  }, onCitationClick: (citation) => {
31088
31874
  setSelectedCitation(citation);
31089
31875
  setCitationModalOpen(true);
31090
- }, setChatMessagesElement: setChatMessagesElement, onScroll: handleChatScroll, chatMessagesClassName: useChatCssClassName('chatMessages'), hasActions: hasActions }), onMessage && (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') }))] }) }), jsx(ChatToolCallModal, { isOpen: toolCallModalOpen, toolCall: selectedToolCall, onClose: () => setToolCallModalOpen(false), toolTitles: toolTitles, agentParticipant: agentParticipant, buttonColor: buttonColor }), jsx(ChatCitationModal, { isOpen: citationModalOpen, citation: selectedCitation, participants: participants, soundSystem: soundSystem, onClose: () => setCitationModalOpen(false) }), 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 })] }));
31876
+ }, setChatMessagesElement: setChatMessagesElement, onScroll: handleChatScroll, isSpeechPlaybackEnabled: isSpeechPlaybackEnabled, chatMessagesClassName: useChatCssClassName('chatMessages'), hasActions: hasActions }), onMessage && (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') }))] }) }), jsx(ChatToolCallModal, { isOpen: toolCallModalOpen, toolCall: selectedToolCall, onClose: () => setToolCallModalOpen(false), toolTitles: toolTitles, agentParticipant: agentParticipant, buttonColor: buttonColor }), jsx(ChatCitationModal, { isOpen: citationModalOpen, citation: selectedCitation, participants: participants, soundSystem: soundSystem, onClose: () => setCitationModalOpen(false) }), 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 })] }));
31091
31877
  }
31092
31878
 
31093
31879
  /**
@@ -31235,6 +32021,23 @@ function getRandomThinkingVariant(variants, excludeVariant) {
31235
32021
  }
31236
32022
  return candidates[Math.floor(Math.random() * candidates.length)];
31237
32023
  }
32024
+ /**
32025
+ * Converts unknown prompt parameter values to string values required by prompt templates.
32026
+ */
32027
+ function normalizePromptParameters(parameters) {
32028
+ const normalizedEntries = [];
32029
+ for (const [key, value] of Object.entries(parameters)) {
32030
+ if (value === undefined || value === null) {
32031
+ continue;
32032
+ }
32033
+ if (typeof value === 'string') {
32034
+ normalizedEntries.push([key, value]);
32035
+ continue;
32036
+ }
32037
+ normalizedEntries.push([key, JSON.stringify(value)]);
32038
+ }
32039
+ return Object.fromEntries(normalizedEntries);
32040
+ }
31238
32041
  /**
31239
32042
  * LlmChat component that provides chat functionality with LLM integration
31240
32043
  *
@@ -31248,7 +32051,8 @@ function getRandomThinkingVariant(variants, excludeVariant) {
31248
32051
  * @public exported from `@promptbook/components`
31249
32052
  */
31250
32053
  function LlmChat(props) {
31251
- const { llmTools, persistenceKey, onChange, onReset, onError, initialMessages, sendMessage, userParticipantName = 'USER', llmParticipantName = 'ASSISTANT', autoExecuteMessage, buttonColor, toolTitles, thinkingMessages, chatFailMessage, ...restProps } = props;
32054
+ const { llmTools, persistenceKey, onChange, onReset, onError, initialMessages, sendMessage, userParticipantName = 'USER', llmParticipantName = 'ASSISTANT', autoExecuteMessage, buttonColor, toolTitles, thinkingMessages, promptParameters, chatFailMessage, resetMode = 'reset-current', ...restProps } = props;
32055
+ const resolvedPromptParameters = useMemo(() => normalizePromptParameters(promptParameters !== null && promptParameters !== void 0 ? promptParameters : {}), [promptParameters]);
31252
32056
  const resolvedChatFailMessage = chatFailMessage || DEFAULT_CHAT_FAIL_MESSAGE;
31253
32057
  // Internal state management
31254
32058
  // DRY: Single factory for seeding initial messages (used on mount and after reset)
@@ -31424,7 +32228,7 @@ function LlmChat(props) {
31424
32228
  const prompt = {
31425
32229
  title: 'User Message',
31426
32230
  content: messageContent,
31427
- parameters: {},
32231
+ parameters: resolvedPromptParameters,
31428
32232
  modelRequirements: {
31429
32233
  modelVariant: 'CHAT',
31430
32234
  },
@@ -31514,9 +32318,22 @@ function LlmChat(props) {
31514
32318
  finally {
31515
32319
  requestInFlightRef.current = false;
31516
32320
  }
31517
- }, [messages, llmTools, props.thread, onError, llmParticipantName, userParticipantName, thinkingVariants]);
32321
+ }, [
32322
+ messages,
32323
+ llmTools,
32324
+ props.thread,
32325
+ resolvedPromptParameters,
32326
+ onError,
32327
+ llmParticipantName,
32328
+ userParticipantName,
32329
+ thinkingVariants,
32330
+ ]);
31518
32331
  // Handle chat reset
31519
32332
  const handleReset = useCallback(async () => {
32333
+ if (resetMode === 'delegate' && onReset) {
32334
+ await onReset();
32335
+ return;
32336
+ }
31520
32337
  // Re-seed with initialMessages instead of empty array
31521
32338
  setMessages(buildInitialMessages());
31522
32339
  setTasksProgress([]);
@@ -31531,7 +32348,7 @@ function LlmChat(props) {
31531
32348
  if (onReset) {
31532
32349
  await onReset();
31533
32350
  }
31534
- }, [persistenceKey, onReset, buildInitialMessages]);
32351
+ }, [buildInitialMessages, onReset, persistenceKey, resetMode]);
31535
32352
  // Handle retry of last failed message
31536
32353
  const handleRetry = useCallback(() => {
31537
32354
  if (lastFailedMessage) {