@promptbook/cli 0.103.0-8 → 0.103.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -39
- package/apps/agents-server/README.md +3 -0
- package/apps/agents-server/TODO.txt +7 -0
- package/apps/agents-server/config.ts +130 -0
- package/apps/agents-server/next.config.ts +45 -0
- package/apps/agents-server/package-lock.json +27 -0
- package/apps/agents-server/package.json +12 -0
- package/apps/agents-server/postcss.config.mjs +8 -0
- package/apps/agents-server/public/.gitkeep +0 -0
- package/apps/agents-server/public/favicon.ico +0 -0
- package/apps/agents-server/public/fonts/OpenMoji-black-glyf.woff2 +0 -0
- package/apps/agents-server/public/fonts/download-font.js +22 -0
- package/apps/agents-server/public/logo-blue-white-256.png +0 -0
- package/apps/agents-server/public/sw.js +16 -0
- package/apps/agents-server/src/app/AddAgentButton.tsx +41 -0
- package/apps/agents-server/src/app/[agentName]/[...rest]/page.tsx +11 -0
- package/apps/agents-server/src/app/[agentName]/page.tsx +1 -0
- package/apps/agents-server/src/app/actions.ts +53 -0
- package/apps/agents-server/src/app/admin/api-tokens/ApiTokensClient.tsx +186 -0
- package/apps/agents-server/src/app/admin/api-tokens/page.tsx +13 -0
- package/apps/agents-server/src/app/admin/chat-feedback/ChatFeedbackClient.tsx +614 -0
- package/apps/agents-server/src/app/admin/chat-feedback/page.tsx +22 -0
- package/apps/agents-server/src/app/admin/chat-history/ChatHistoryClient.tsx +634 -0
- package/apps/agents-server/src/app/admin/chat-history/page.tsx +21 -0
- package/apps/agents-server/src/app/admin/metadata/MetadataClient.tsx +477 -0
- package/apps/agents-server/src/app/admin/metadata/page.tsx +13 -0
- package/apps/agents-server/src/app/admin/models/page.tsx +22 -0
- package/apps/agents-server/src/app/admin/users/[userId]/UserDetailClient.tsx +131 -0
- package/apps/agents-server/src/app/admin/users/[userId]/page.tsx +21 -0
- package/apps/agents-server/src/app/admin/users/page.tsx +18 -0
- package/apps/agents-server/src/app/agents/[agentName]/AgentChatWrapper.tsx +78 -0
- package/apps/agents-server/src/app/agents/[agentName]/AgentOptionsMenu.tsx +314 -0
- package/apps/agents-server/src/app/agents/[agentName]/AgentProfileChat.tsx +91 -0
- package/apps/agents-server/src/app/agents/[agentName]/AgentProfileWrapper.tsx +48 -0
- package/apps/agents-server/src/app/agents/[agentName]/AgentUrlCopy.tsx +40 -0
- package/apps/agents-server/src/app/agents/[agentName]/ClearAgentChatFeedbackButton.tsx +63 -0
- package/apps/agents-server/src/app/agents/[agentName]/ClearAgentChatHistoryButton.tsx +63 -0
- package/apps/agents-server/src/app/agents/[agentName]/CloneAgentButton.tsx +41 -0
- package/apps/agents-server/src/app/agents/[agentName]/CopyField.tsx +44 -0
- package/apps/agents-server/src/app/agents/[agentName]/InstallPwaButton.tsx +74 -0
- package/apps/agents-server/src/app/agents/[agentName]/ServiceWorkerRegister.tsx +24 -0
- package/apps/agents-server/src/app/agents/[agentName]/TODO.txt +1 -0
- package/apps/agents-server/src/app/agents/[agentName]/_utils.ts +19 -0
- package/apps/agents-server/src/app/agents/[agentName]/agentLinks.tsx +80 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/agents/route.ts +67 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/book/route.ts +88 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/book/test.http +37 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/chat/route.ts +174 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/feedback/route.ts +54 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/mcp/route.ts +203 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/modelRequirements/TODO.txt +1 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/modelRequirements/route.ts +55 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/modelRequirements/systemMessage/route.ts +47 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/openai/chat/completions/route.ts +10 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/openai/models/route.ts +93 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/openai/v1/chat/completions/route.ts +10 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/openai/v1/models/route.ts +93 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/openrouter/chat/completions/route.ts +10 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/profile/route.ts +76 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/voice/route.ts +181 -0
- package/apps/agents-server/src/app/agents/[agentName]/book/BookEditorWrapper.tsx +139 -0
- package/apps/agents-server/src/app/agents/[agentName]/book/page.tsx +35 -0
- package/apps/agents-server/src/app/agents/[agentName]/book+chat/AgentBookAndChat.tsx +75 -0
- package/apps/agents-server/src/app/agents/[agentName]/book+chat/AgentBookAndChatComponent.tsx.todo +160 -0
- package/apps/agents-server/src/app/agents/[agentName]/book+chat/page.tsx +32 -0
- package/apps/agents-server/src/app/agents/[agentName]/book+chat/page.tsx.todo +21 -0
- package/apps/agents-server/src/app/agents/[agentName]/chat/AgentChatWrapper.tsx +68 -0
- package/apps/agents-server/src/app/agents/[agentName]/chat/page.tsx +33 -0
- package/apps/agents-server/src/app/agents/[agentName]/generateAgentMetadata.ts +46 -0
- package/apps/agents-server/src/app/agents/[agentName]/history/RestoreVersionButton.tsx +46 -0
- package/apps/agents-server/src/app/agents/[agentName]/history/actions.ts +12 -0
- package/apps/agents-server/src/app/agents/[agentName]/history/page.tsx +62 -0
- package/apps/agents-server/src/app/agents/[agentName]/images/icon-256.png/route.tsx +80 -0
- package/apps/agents-server/src/app/agents/[agentName]/images/screenshot-fullhd.png/route.tsx +92 -0
- package/apps/agents-server/src/app/agents/[agentName]/images/screenshot-phone.png/route.tsx +92 -0
- package/apps/agents-server/src/app/agents/[agentName]/integration/SdkCodeTabs.tsx +31 -0
- package/apps/agents-server/src/app/agents/[agentName]/integration/page.tsx +302 -0
- package/apps/agents-server/src/app/agents/[agentName]/layout.tsx +41 -0
- package/apps/agents-server/src/app/agents/[agentName]/links/page.tsx +182 -0
- package/apps/agents-server/src/app/agents/[agentName]/opengraph-image.tsx +102 -0
- package/apps/agents-server/src/app/agents/[agentName]/page.tsx +106 -0
- package/apps/agents-server/src/app/agents/[agentName]/website-integration/page.tsx +70 -0
- package/apps/agents-server/src/app/agents/page.tsx +11 -0
- package/apps/agents-server/src/app/api/agents/[agentName]/clone/route.ts +47 -0
- package/apps/agents-server/src/app/api/agents/[agentName]/route.ts +19 -0
- package/apps/agents-server/src/app/api/agents/route.ts +43 -0
- package/apps/agents-server/src/app/api/api-tokens/route.ts +76 -0
- package/apps/agents-server/src/app/api/auth/change-password/route.ts +75 -0
- package/apps/agents-server/src/app/api/auth/login/route.ts +27 -0
- package/apps/agents-server/src/app/api/auth/logout/route.ts +7 -0
- package/apps/agents-server/src/app/api/chat/route.ts +32 -0
- package/apps/agents-server/src/app/api/chat-feedback/[id]/route.ts +38 -0
- package/apps/agents-server/src/app/api/chat-feedback/export/route.ts +55 -0
- package/apps/agents-server/src/app/api/chat-feedback/route.ts +157 -0
- package/apps/agents-server/src/app/api/chat-history/[id]/route.ts +37 -0
- package/apps/agents-server/src/app/api/chat-history/export/route.ts +55 -0
- package/apps/agents-server/src/app/api/chat-history/route.ts +147 -0
- package/apps/agents-server/src/app/api/chat-streaming/route.ts +48 -0
- package/apps/agents-server/src/app/api/embed.js/route.ts +93 -0
- package/apps/agents-server/src/app/api/federated-agents/route.ts +17 -0
- package/apps/agents-server/src/app/api/long-running-task/route.ts +7 -0
- package/apps/agents-server/src/app/api/long-streaming/route.ts +20 -0
- package/apps/agents-server/src/app/api/metadata/route.ts +116 -0
- package/apps/agents-server/src/app/api/openai/v1/chat/completions/route.ts +6 -0
- package/apps/agents-server/src/app/api/openai/v1/models/route.ts +65 -0
- package/apps/agents-server/src/app/api/upload/route.ts +83 -0
- package/apps/agents-server/src/app/api/users/[username]/route.ts +75 -0
- package/apps/agents-server/src/app/api/users/route.ts +71 -0
- package/apps/agents-server/src/app/docs/[docId]/page.tsx +43 -0
- package/apps/agents-server/src/app/docs/page.tsx +59 -0
- package/apps/agents-server/src/app/embed/page.tsx +24 -0
- package/apps/agents-server/src/app/globals.css +276 -0
- package/apps/agents-server/src/app/humans.txt/route.ts +15 -0
- package/apps/agents-server/src/app/layout.tsx +139 -0
- package/apps/agents-server/src/app/manifest.ts +114 -0
- package/apps/agents-server/src/app/not-found.tsx +5 -0
- package/apps/agents-server/src/app/page.tsx +96 -0
- package/apps/agents-server/src/app/recycle-bin/RestoreAgentButton.tsx +40 -0
- package/apps/agents-server/src/app/recycle-bin/actions.ts +27 -0
- package/apps/agents-server/src/app/recycle-bin/page.tsx +58 -0
- package/apps/agents-server/src/app/restricted/page.tsx +33 -0
- package/apps/agents-server/src/app/robots.txt/route.ts +15 -0
- package/apps/agents-server/src/app/security.txt/route.ts +15 -0
- package/apps/agents-server/src/app/sitemap.xml/route.ts +37 -0
- package/apps/agents-server/src/app/test/og-image/README.md +1 -0
- package/apps/agents-server/src/app/test/og-image/opengraph-image.tsx +37 -0
- package/apps/agents-server/src/app/test/og-image/page.tsx +22 -0
- package/apps/agents-server/src/components/AgentProfile/AgentProfile.tsx +339 -0
- package/apps/agents-server/src/components/AgentProfile/AgentProfileFromSource.tsx +23 -0
- package/apps/agents-server/src/components/AgentProfile/AgentQrCode.tsx +62 -0
- package/apps/agents-server/src/components/AgentProfile/QrCodeModal.tsx +90 -0
- package/apps/agents-server/src/components/Auth/AuthControls.tsx +123 -0
- package/apps/agents-server/src/components/ChangePasswordDialog/ChangePasswordDialog.tsx +41 -0
- package/apps/agents-server/src/components/ChangePasswordForm/ChangePasswordForm.tsx +159 -0
- package/apps/agents-server/src/components/DocumentationContent/DocumentationContent.tsx +88 -0
- package/apps/agents-server/src/components/ErrorPage/ErrorPage.tsx +33 -0
- package/apps/agents-server/src/components/Footer/Footer.tsx +175 -0
- package/apps/agents-server/src/components/ForbiddenPage/ForbiddenPage.tsx +15 -0
- package/apps/agents-server/src/components/Header/Header.tsx +668 -0
- package/apps/agents-server/src/components/Homepage/AgentCard.tsx +60 -0
- package/apps/agents-server/src/components/Homepage/AgentsList.tsx +58 -0
- package/apps/agents-server/src/components/Homepage/Card.tsx +18 -0
- package/apps/agents-server/src/components/Homepage/ExternalAgentsSection.tsx +21 -0
- package/apps/agents-server/src/components/Homepage/ExternalAgentsSectionClient.tsx +183 -0
- package/apps/agents-server/src/components/Homepage/ModelCard.tsx +29 -0
- package/apps/agents-server/src/components/Homepage/ModelsSection.tsx +75 -0
- package/apps/agents-server/src/components/Homepage/Section.tsx +17 -0
- package/apps/agents-server/src/components/Homepage/TechInfoCard.tsx +20 -0
- package/apps/agents-server/src/components/LayoutWrapper/LayoutWrapper.tsx +57 -0
- package/apps/agents-server/src/components/LoginDialog/LoginDialog.tsx +41 -0
- package/apps/agents-server/src/components/LoginForm/LoginForm.tsx +109 -0
- package/apps/agents-server/src/components/NotFoundPage/NotFoundPage.tsx +17 -0
- package/apps/agents-server/src/components/OpenMojiIcon/OpenMojiIcon.tsx +20 -0
- package/apps/agents-server/src/components/Portal/Portal.tsx +38 -0
- package/apps/agents-server/src/components/PrintButton/PrintButton.tsx +18 -0
- package/apps/agents-server/src/components/PrintHeader/PrintHeader.tsx +18 -0
- package/apps/agents-server/src/components/UsersList/UsersList.tsx +141 -0
- package/apps/agents-server/src/components/UsersList/useUsersAdmin.ts +139 -0
- package/apps/agents-server/src/components/VercelDeploymentCard/VercelDeploymentCard.tsx +55 -0
- package/apps/agents-server/src/components/_utils/generateMetaTxt.ts +28 -0
- package/apps/agents-server/src/components/_utils/headlessParam.tsx +36 -0
- package/apps/agents-server/src/database/$getTableName.ts +18 -0
- package/apps/agents-server/src/database/$provideSupabase.ts +29 -0
- package/apps/agents-server/src/database/$provideSupabaseForBrowser.ts +41 -0
- package/apps/agents-server/src/database/$provideSupabaseForServer.ts +48 -0
- package/apps/agents-server/src/database/$provideSupabaseForWorker.ts +43 -0
- package/apps/agents-server/src/database/getMetadata.ts +31 -0
- package/apps/agents-server/src/database/metadataDefaults.ts +75 -0
- package/apps/agents-server/src/database/migrate.ts +131 -0
- package/apps/agents-server/src/database/migrations/2025-11-0001-initial-schema.sql +163 -0
- package/apps/agents-server/src/database/migrations/2025-11-0002-metadata-table.sql +16 -0
- package/apps/agents-server/src/database/migrations/2025-12-0010-llm-cache.sql +12 -0
- package/apps/agents-server/src/database/migrations/2025-12-0060-api-tokens.sql +13 -0
- package/apps/agents-server/src/database/migrations/2025-12-0070-chat-history-source.sql +2 -0
- package/apps/agents-server/src/database/schema.ts +308 -0
- package/apps/agents-server/src/deamons/longRunningTask.ts +37 -0
- package/apps/agents-server/src/middleware.ts +305 -0
- package/apps/agents-server/src/tools/$provideAgentCollectionForServer.ts +54 -0
- package/apps/agents-server/src/tools/$provideCdnForServer.ts +36 -0
- package/apps/agents-server/src/tools/$provideExecutionToolsForServer.ts +117 -0
- package/apps/agents-server/src/tools/$provideOpenAiAssistantExecutionToolsForServer.ts +35 -0
- package/apps/agents-server/src/tools/$provideServer.ts +39 -0
- package/apps/agents-server/src/utils/auth.ts +33 -0
- package/apps/agents-server/src/utils/authenticateUser.ts +42 -0
- package/apps/agents-server/src/utils/cache/SupabaseCacheStorage.ts +55 -0
- package/apps/agents-server/src/utils/cdn/classes/DigitalOceanSpaces.ts +119 -0
- package/apps/agents-server/src/utils/cdn/classes/VercelBlobStorage.ts +64 -0
- package/apps/agents-server/src/utils/cdn/interfaces/IFilesStorage.ts +32 -0
- package/apps/agents-server/src/utils/cdn/interfaces/IStorage.ts +14 -0
- package/apps/agents-server/src/utils/cdn/utils/getUserFileCdnKey.ts +28 -0
- package/apps/agents-server/src/utils/cdn/utils/nameToSubfolderPath.ts +9 -0
- package/apps/agents-server/src/utils/cdn/utils/nextRequestToNodeRequest.ts +27 -0
- package/apps/agents-server/src/utils/chatFeedbackAdmin.ts +96 -0
- package/apps/agents-server/src/utils/chatHistoryAdmin.ts +96 -0
- package/apps/agents-server/src/utils/convertToCsv.ts +31 -0
- package/apps/agents-server/src/utils/getCurrentUser.ts +32 -0
- package/apps/agents-server/src/utils/getEffectiveFederatedServers.ts +22 -0
- package/apps/agents-server/src/utils/getFederatedAgents.ts +89 -0
- package/apps/agents-server/src/utils/getFederatedServersFromMetadata.ts +10 -0
- package/apps/agents-server/src/utils/getVisibleCommitmentDefinitions.ts +12 -0
- package/apps/agents-server/src/utils/handleChatCompletion.ts +355 -0
- package/apps/agents-server/src/utils/isIpAllowed.ts +101 -0
- package/apps/agents-server/src/utils/isUserAdmin.ts +31 -0
- package/apps/agents-server/src/utils/resolveInheritedAgentSource.ts +100 -0
- package/apps/agents-server/src/utils/session.ts +50 -0
- package/apps/agents-server/src/utils/validateApiKey.ts +128 -0
- package/apps/agents-server/src/utils/validators/validateMimeType.ts +24 -0
- package/apps/agents-server/tailwind.config.ts +26 -0
- package/apps/agents-server/tsconfig.json +29 -0
- package/apps/agents-server/vercel.json +7 -0
- package/esm/index.es.js +5406 -443
- package/esm/index.es.js.map +1 -1
- package/esm/typings/books/index.d.ts +0 -81
- package/esm/typings/servers.d.ts +9 -7
- package/esm/typings/src/_packages/browser.index.d.ts +6 -0
- package/esm/typings/src/_packages/cli.index.d.ts +4 -0
- package/esm/typings/src/_packages/components.index.d.ts +22 -8
- package/esm/typings/src/_packages/core.index.d.ts +58 -18
- package/esm/typings/src/_packages/node.index.d.ts +2 -2
- package/esm/typings/src/_packages/remote-server.index.d.ts +2 -0
- package/esm/typings/src/_packages/types.index.d.ts +70 -8
- package/esm/typings/src/_packages/utils.index.d.ts +6 -0
- package/esm/typings/src/_packages/wizard.index.d.ts +4 -0
- package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +20 -5
- package/esm/typings/src/book-2.0/agent-source/AgentModelRequirements.d.ts +17 -1
- package/esm/typings/src/book-2.0/agent-source/AgentSourceParseResult.d.ts +3 -2
- package/esm/typings/src/book-2.0/agent-source/computeAgentHash.d.ts +8 -0
- package/esm/typings/src/book-2.0/agent-source/createCommitmentRegex.d.ts +3 -3
- package/esm/typings/src/book-2.0/agent-source/createDefaultAgentName.d.ts +8 -0
- package/esm/typings/src/book-2.0/agent-source/normalizeAgentName.d.ts +9 -0
- package/esm/typings/src/book-2.0/agent-source/padBook.d.ts +18 -0
- package/esm/typings/src/book-2.0/agent-source/parseAgentSourceWithCommitments.d.ts +1 -1
- package/esm/typings/src/book-2.0/agent-source/string_book.d.ts +3 -0
- package/esm/typings/src/book-components/AvatarProfile/AvatarProfile/AvatarProfile.d.ts +6 -1
- package/esm/typings/src/book-components/BookEditor/BookEditor.d.ts +85 -14
- package/esm/typings/src/book-components/BookEditor/BookEditorActionbar.d.ts +18 -0
- package/esm/typings/src/book-components/BookEditor/BookEditorMonaco.d.ts +5 -0
- package/esm/typings/src/book-components/Chat/AgentChat/AgentChat.d.ts +17 -0
- package/esm/typings/src/book-components/Chat/AgentChat/AgentChatProps.d.ts +13 -0
- package/esm/typings/src/book-components/Chat/Chat/ChatProps.d.ts +16 -0
- package/esm/typings/src/book-components/Chat/LlmChat/LlmChatProps.d.ts +5 -0
- package/esm/typings/src/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +15 -0
- package/esm/typings/src/book-components/Chat/MockedChat/MockedChat.d.ts +5 -0
- package/esm/typings/src/book-components/Chat/save/_common/ChatSaveFormatDefinition.d.ts +1 -1
- package/esm/typings/src/book-components/Chat/save/html/htmlSaveFormatDefinition.d.ts +1 -0
- package/esm/typings/src/book-components/Chat/save/pdf/pdfSaveFormatDefinition.d.ts +4 -0
- package/esm/typings/src/book-components/Chat/types/ChatParticipant.d.ts +1 -1
- package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgentIntegration.d.ts +52 -0
- package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgentSeamlessIntegration.d.ts +14 -0
- package/esm/typings/src/book-components/Qr/BrandedQrCode.d.ts +18 -0
- package/esm/typings/src/book-components/Qr/GenericQrCode.d.ts +10 -0
- package/esm/typings/src/book-components/Qr/PromptbookQrCode.d.ts +18 -0
- package/esm/typings/src/book-components/Qr/useQrCode.d.ts +15 -0
- package/esm/typings/src/book-components/_common/Dropdown/Dropdown.d.ts +15 -0
- package/esm/typings/src/book-components/_common/HamburgerMenu/HamburgerMenu.d.ts +12 -0
- package/esm/typings/src/book-components/_common/Modal/Modal.d.ts +2 -2
- package/esm/typings/src/book-components/_common/Tooltip/Tooltip.d.ts +47 -0
- package/esm/typings/src/book-components/icons/AboutIcon.d.ts +9 -0
- package/esm/typings/src/book-components/icons/CameraIcon.d.ts +11 -0
- package/esm/typings/src/book-components/icons/CloseIcon.d.ts +4 -8
- package/esm/typings/src/book-components/icons/DownloadIcon.d.ts +9 -0
- package/esm/typings/src/book-components/icons/ExitFullscreenIcon.d.ts +7 -0
- package/esm/typings/src/book-components/icons/FullscreenIcon.d.ts +7 -0
- package/esm/typings/src/book-components/icons/MenuIcon.d.ts +12 -0
- package/esm/typings/src/book-components/icons/MicIcon.d.ts +8 -0
- package/esm/typings/src/book-components/icons/SendIcon.d.ts +3 -0
- package/esm/typings/src/cli/cli-commands/_boilerplate.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/about.d.ts +3 -1
- package/esm/typings/src/cli/cli-commands/hello.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/list-models.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/list-scrapers.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/login.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/make.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/prettify.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/run.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/{start-server.d.ts → start-agents-server.d.ts} +3 -2
- package/esm/typings/src/cli/cli-commands/start-pipelines-server.d.ts +15 -0
- package/esm/typings/src/cli/cli-commands/test-command.d.ts +2 -1
- package/esm/typings/src/cli/common/$addGlobalOptionsToCommand.d.ts +2 -1
- package/esm/typings/src/collection/agent-collection/AgentCollection.d.ts +12 -0
- package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +75 -0
- package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabaseOptions.d.ts +10 -0
- package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +154 -0
- package/esm/typings/src/collection/{PipelineCollection.d.ts → pipeline-collection/PipelineCollection.d.ts} +7 -3
- package/esm/typings/src/collection/{SimplePipelineCollection.d.ts → pipeline-collection/SimplePipelineCollection.d.ts} +5 -5
- package/esm/typings/src/collection/{constructors/createCollectionFromDirectory.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.d.ts} +8 -11
- package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.d.ts +13 -0
- package/esm/typings/src/collection/{constructors/createCollectionFromPromise.d.ts → pipeline-collection/constructors/createPipelineCollectionFromPromise.d.ts} +6 -5
- package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromPromise.test.d.ts +1 -0
- package/esm/typings/src/collection/{constructors/createCollectionFromUrl.d.ts → pipeline-collection/constructors/createPipelineCollectionFromUrl.d.ts} +3 -3
- package/esm/typings/src/collection/{constructors/createSubcollection.d.ts → pipeline-collection/constructors/createPipelineSubcollection.d.ts} +3 -3
- package/esm/typings/src/collection/pipeline-collection/pipelineCollectionToJson.d.ts +13 -0
- package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -5
- package/esm/typings/src/{book-2.0/commitments → commitments}/ACTION/ACTION.d.ts +5 -1
- package/esm/typings/src/commitments/CLOSED/CLOSED.d.ts +39 -0
- package/esm/typings/src/commitments/CLOSED/CLOSED.test.d.ts +4 -0
- package/esm/typings/src/commitments/COMPONENT/COMPONENT.d.ts +28 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/DELETE/DELETE.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/FORMAT/FORMAT.d.ts +5 -1
- package/esm/typings/src/commitments/FROM/FROM.d.ts +34 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/GOAL/GOAL.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/KNOWLEDGE/KNOWLEDGE.d.ts +5 -5
- package/esm/typings/src/commitments/LANGUAGE/LANGUAGE.d.ts +35 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/MEMORY/MEMORY.d.ts +5 -1
- package/esm/typings/src/commitments/MESSAGE/AgentMessageCommitmentDefinition.d.ts +32 -0
- package/esm/typings/src/commitments/MESSAGE/InitialMessageCommitmentDefinition.d.ts +32 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/MESSAGE/MESSAGE.d.ts +5 -1
- package/esm/typings/src/commitments/MESSAGE/UserMessageCommitmentDefinition.d.ts +32 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/META/META.d.ts +5 -1
- package/esm/typings/src/commitments/META_COLOR/META_COLOR.d.ts +48 -0
- package/esm/typings/src/commitments/META_FONT/META_FONT.d.ts +42 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/META_IMAGE/META_IMAGE.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/META_LINK/META_LINK.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/MODEL/MODEL.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/NOTE/NOTE.d.ts +5 -1
- package/esm/typings/src/commitments/OPEN/OPEN.d.ts +35 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/PERSONA/PERSONA.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/RULE/RULE.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/SAMPLE/SAMPLE.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/SCENARIO/SCENARIO.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/STYLE/STYLE.d.ts +5 -1
- package/esm/typings/src/commitments/USE/USE.d.ts +53 -0
- package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +42 -0
- package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.test.d.ts +1 -0
- package/esm/typings/src/commitments/USE_MCP/USE_MCP.d.ts +37 -0
- package/esm/typings/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +38 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BaseCommitmentDefinition.d.ts +14 -2
- package/esm/typings/src/{book-2.0/commitments → commitments}/_base/CommitmentDefinition.d.ts +6 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/_base/NotYetImplementedCommitmentDefinition.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/_base/createEmptyAgentModelRequirements.d.ts +1 -1
- package/esm/typings/src/commitments/index.d.ts +93 -0
- package/esm/typings/src/config.d.ts +24 -3
- package/esm/typings/src/conversion/validation/validatePipeline.d.ts +2 -0
- package/esm/typings/src/errors/0-index.d.ts +6 -0
- package/esm/typings/src/errors/DatabaseError.d.ts +12 -0
- package/esm/typings/src/errors/NotAllowed.d.ts +9 -0
- package/esm/typings/src/errors/WrappedError.d.ts +2 -2
- package/esm/typings/src/execution/AvailableModel.d.ts +1 -0
- package/esm/typings/src/execution/Executables.d.ts +3 -0
- package/esm/typings/src/execution/ExecutionTask.d.ts +12 -3
- package/esm/typings/src/execution/ExecutionTools.d.ts +5 -0
- package/esm/typings/src/execution/FilesystemTools.d.ts +1 -1
- package/esm/typings/src/execution/LlmExecutionTools.d.ts +26 -2
- package/esm/typings/src/execution/PromptResult.d.ts +7 -1
- package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +5 -0
- package/esm/typings/src/execution/createPipelineExecutor/20-executeTask.d.ts +5 -0
- package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +5 -0
- package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +5 -0
- package/esm/typings/src/execution/utils/usage-constants.d.ts +4 -124
- package/esm/typings/src/execution/utils/validatePromptResult.d.ts +2 -0
- package/esm/typings/src/high-level-abstractions/_common/HighLevelAbstraction.d.ts +2 -1
- package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForWizardOrCli.d.ts +2 -2
- package/esm/typings/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +2 -1
- package/esm/typings/src/llm-providers/_common/register/LlmToolsMetadata.d.ts +1 -1
- package/esm/typings/src/llm-providers/_common/utils/assertUniqueModels.d.ts +12 -0
- package/esm/typings/src/llm-providers/_multiple/getSingleLlmExecutionTools.d.ts +1 -0
- package/esm/typings/src/llm-providers/_multiple/joinLlmExecutionTools.d.ts +1 -0
- package/esm/typings/src/llm-providers/agent/Agent.d.ts +72 -0
- package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +26 -4
- package/esm/typings/src/llm-providers/agent/AgentOptions.d.ts +19 -0
- package/esm/typings/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +17 -0
- package/esm/typings/src/llm-providers/agent/RemoteAgent.d.ts +50 -0
- package/esm/typings/src/llm-providers/agent/RemoteAgentOptions.d.ts +11 -0
- package/esm/typings/src/llm-providers/agent/createAgentLlmExecutionTools.d.ts +1 -19
- package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
- package/esm/typings/src/llm-providers/google/google-models.d.ts +1 -1
- package/esm/typings/src/llm-providers/ollama/OllamaExecutionTools.d.ts +4 -0
- package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +60 -2
- package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +7 -1
- package/esm/typings/src/llm-providers/openai/OpenAiCompatibleExecutionTools.d.ts +13 -1
- package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +4 -0
- package/esm/typings/src/llm-providers/openai/createOpenAiCompatibleExecutionTools.d.ts +6 -6
- package/esm/typings/src/llm-providers/openai/openai-models.d.ts +1 -1
- package/esm/typings/src/llm-providers/openai/openai-models.test.d.ts +4 -0
- package/esm/typings/src/other/templates/getTemplatesPipelineCollection.d.ts +1 -1
- package/esm/typings/src/pipeline/validatePipelineString.d.ts +2 -0
- package/esm/typings/src/playground/permanent/_boilerplate.d.ts +5 -0
- package/esm/typings/src/playground/permanent/agent-with-browser-playground.d.ts +5 -0
- package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +1 -0
- package/esm/typings/src/remote-server/startAgentServer.d.ts +26 -0
- package/esm/typings/src/remote-server/startRemoteServer.d.ts +4 -1
- package/esm/typings/src/remote-server/types/RemoteServerOptions.d.ts +3 -8
- package/esm/typings/src/scrapers/_boilerplate/createBoilerplateScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/_boilerplate/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/markitdown/createMarkitdownScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/markitdown/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -9
- package/esm/typings/src/storage/_common/PromptbookStorage.d.ts +1 -0
- package/esm/typings/src/storage/env-storage/$EnvStorage.d.ts +2 -1
- package/esm/typings/src/transpilers/_common/BookTranspiler.d.ts +33 -0
- package/esm/typings/src/transpilers/_common/BookTranspilerOptions.d.ts +18 -0
- package/esm/typings/src/transpilers/_common/register/$bookTranspilersRegister.d.ts +15 -0
- package/esm/typings/src/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.d.ts +16 -0
- package/esm/typings/src/transpilers/formatted-book-in-markdown/register.d.ts +15 -0
- package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.d.ts +16 -0
- package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.test.d.ts +1 -0
- package/esm/typings/src/transpilers/openai-sdk/playground/playground.d.ts +5 -0
- package/esm/typings/src/transpilers/openai-sdk/register.d.ts +15 -0
- package/esm/typings/src/types/LlmCall.d.ts +20 -0
- package/esm/typings/src/types/ModelRequirements.d.ts +13 -1
- package/esm/typings/src/types/ModelVariant.d.ts +1 -1
- package/esm/typings/src/types/Prompt.d.ts +13 -1
- package/esm/typings/src/types/Updatable.d.ts +19 -0
- package/esm/typings/src/types/typeAliases.d.ts +38 -2
- package/esm/typings/src/utils/color/$randomColor.d.ts +1 -0
- package/esm/typings/src/utils/color/Color.d.ts +16 -1
- package/esm/typings/src/utils/color/Color.test.d.ts +1 -0
- package/esm/typings/src/utils/color/css-colors.d.ts +1 -0
- package/esm/typings/src/utils/color/internal-utils/checkChannelValue.d.ts +0 -3
- package/esm/typings/src/utils/color/operators/darken.d.ts +1 -1
- package/esm/typings/src/utils/color/operators/grayscale.d.ts +1 -1
- package/esm/typings/src/utils/color/operators/lighten.d.ts +1 -1
- package/esm/typings/src/utils/color/operators/mixWithColor.d.ts +1 -1
- package/esm/typings/src/utils/color/operators/saturate.d.ts +1 -1
- package/esm/typings/src/utils/environment/$detectRuntimeEnvironment.d.ts +16 -0
- package/esm/typings/src/utils/environment/$getGlobalScope.d.ts +2 -2
- package/esm/typings/src/utils/execCommand/$execCommand.d.ts +2 -1
- package/esm/typings/src/utils/execCommand/$execCommands.d.ts +2 -1
- package/esm/typings/src/utils/files/$induceBookDownload.d.ts +13 -0
- package/esm/typings/src/utils/files/$induceFileDownload.d.ts +13 -0
- package/esm/typings/src/utils/files/ObjectUrl.d.ts +46 -0
- package/esm/typings/src/utils/files/listAllFiles.d.ts +2 -3
- package/esm/typings/src/utils/misc/aboutPromptbookInformation.d.ts +27 -0
- package/esm/typings/src/utils/misc/computeHash.d.ts +11 -0
- package/esm/typings/src/utils/misc/computeHash.test.d.ts +1 -0
- package/esm/typings/src/utils/misc/injectCssModuleIntoShadowRoot.d.ts +1 -0
- package/esm/typings/src/utils/misc/xAboutPromptbookInformation.d.ts +13 -0
- package/esm/typings/src/utils/normalization/normalize-to-kebab-case.d.ts +2 -0
- package/esm/typings/src/utils/normalization/normalizeMessageText.d.ts +9 -0
- package/esm/typings/src/utils/normalization/normalizeMessageText.test.d.ts +1 -0
- package/esm/typings/src/utils/normalization/normalizeTo_PascalCase.d.ts +3 -0
- package/esm/typings/src/utils/normalization/normalizeTo_camelCase.d.ts +2 -0
- package/esm/typings/src/utils/normalization/titleToName.d.ts +2 -0
- package/esm/typings/src/utils/organization/$sideEffect.d.ts +2 -2
- package/esm/typings/src/utils/organization/$side_effect.d.ts +7 -0
- package/esm/typings/src/utils/organization/TODO_USE.d.ts +2 -2
- package/esm/typings/src/utils/organization/keepUnused.d.ts +2 -2
- package/esm/typings/src/utils/organization/preserve.d.ts +3 -3
- package/esm/typings/src/utils/organization/really_any.d.ts +7 -0
- package/esm/typings/src/utils/random/$generateBookBoilerplate.d.ts +31 -0
- package/esm/typings/src/utils/random/$randomAgentPersona.d.ts +9 -0
- package/esm/typings/src/utils/random/$randomFullnameWithColor.d.ts +13 -0
- package/esm/typings/src/utils/random/$randomItem.d.ts +9 -0
- package/esm/typings/src/utils/random/$randomSeed.d.ts +3 -0
- package/esm/typings/src/utils/random/$randomToken.d.ts +2 -0
- package/esm/typings/src/utils/random/CzechNamePool.d.ts +7 -0
- package/esm/typings/src/utils/random/EnglishNamePool.d.ts +7 -0
- package/esm/typings/src/utils/random/NamePool.d.ts +17 -0
- package/esm/typings/src/utils/random/getNamePool.d.ts +10 -0
- package/esm/typings/src/utils/serialization/$deepFreeze.d.ts +2 -1
- package/esm/typings/src/utils/serialization/asSerializable.d.ts +2 -2
- package/esm/typings/src/utils/serialization/serializeToPromptbookJavascript.d.ts +2 -2
- package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +2 -0
- package/esm/typings/src/version.d.ts +1 -1
- package/esm/typings/src/wizard/$getCompiledBook.d.ts +1 -2
- package/package.json +16 -16
- package/umd/index.umd.js +5382 -417
- package/umd/index.umd.js.map +1 -1
- package/esm/typings/src/book-2.0/commitments/index.d.ts +0 -60
- package/esm/typings/src/book-components/BookEditor/BookEditorInner.d.ts +0 -5
- package/esm/typings/src/book-components/BookEditor/BookEditorWrapper.d.ts +0 -9
- package/esm/typings/src/book-components/BookEditor/config.d.ts +0 -10
- package/esm/typings/src/book-components/Chat/utils/renderMarkdown.d.ts +0 -21
- package/esm/typings/src/collection/collectionToJson.d.ts +0 -13
- package/esm/typings/src/collection/constructors/createCollectionFromJson.d.ts +0 -13
- /package/esm/typings/src/{book-components/Chat/utils/renderMarkdown.test.d.ts → book-2.0/agent-source/computeAgentHash.test.d.ts} +0 -0
- /package/esm/typings/src/{collection/constructors/createCollectionFromDirectory.test.d.ts → book-2.0/agent-source/normalizeAgentName.test.d.ts} +0 -0
- /package/esm/typings/src/{collection/constructors/createCollectionFromJson.test.d.ts → book-components/Chat/AgentChat/AgentChat.test.d.ts} +0 -0
- /package/esm/typings/src/collection/{constructors/createCollectionFromPromise.test.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.test.d.ts} +0 -0
- /package/esm/typings/src/{commands/_common/parseCommand.test.d.ts → collection/pipeline-collection/constructors/createPipelineCollectionFromJson.test.d.ts} +0 -0
- /package/esm/typings/src/collection/{collectionToJson.test.d.ts → pipeline-collection/pipelineCollectionToJson.test.d.ts} +0 -0
- /package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BookCommitment.d.ts +0 -0
- /package/esm/typings/src/{book-2.0/commitments → commitments}/_base/ParsedCommitment.d.ts +0 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { AgentsDatabaseSchema } from '@promptbook-local/types';
|
|
2
|
+
import { $isRunningInBrowser } from '@promptbook-local/utils';
|
|
3
|
+
import { createClient, SupabaseClient } from '@supabase/supabase-js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Internal cache for `$provideSupabaseForBrowser`
|
|
7
|
+
*
|
|
8
|
+
* @private
|
|
9
|
+
* @singleton
|
|
10
|
+
*/
|
|
11
|
+
let supabase: SupabaseClient<AgentsDatabaseSchema>;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Get supabase client
|
|
15
|
+
*
|
|
16
|
+
* Note: The client is cached, so it's safe to call this function multiple times
|
|
17
|
+
* Note: This function is available ONLY in browser, use $provideSupabaseForServer in node
|
|
18
|
+
*
|
|
19
|
+
* @returns instance of supabase client
|
|
20
|
+
*/
|
|
21
|
+
export function $provideSupabaseForBrowser(): typeof supabase {
|
|
22
|
+
if (!$isRunningInBrowser()) {
|
|
23
|
+
throw new Error(
|
|
24
|
+
'Function `$provideSupabaseForBrowser` can not be used on server or worker, use `$provideSupabaseForServer` or `$provideSupabaseForWorker` instead.',
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (!supabase) {
|
|
29
|
+
// Create a single supabase client for interacting with your database
|
|
30
|
+
supabase = createClient<AgentsDatabaseSchema>(
|
|
31
|
+
process.env.NEXT_PUBLIC_SUPABASE_URL!,
|
|
32
|
+
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return supabase;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Note: [🎇] Promptbook Agents Server is not using Supabase in Browser so maybe remove this file
|
|
41
|
+
*/
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { $isRunningInNode } from '@promptbook-local/utils';
|
|
2
|
+
import { createClient, SupabaseClient } from '@supabase/supabase-js';
|
|
3
|
+
import { AgentsServerDatabase } from './schema';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Internal cache for `$provideSupabaseForServer`
|
|
7
|
+
*
|
|
8
|
+
* @private
|
|
9
|
+
* @singleton
|
|
10
|
+
*/
|
|
11
|
+
let supabase: SupabaseClient<AgentsServerDatabase>;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Get supabase client
|
|
15
|
+
*
|
|
16
|
+
* Note: The client is cached, so it's safe to call this function multiple times
|
|
17
|
+
* Note: This function is available ONLY on server/node, use $provideSupabaseForClient in browser
|
|
18
|
+
*
|
|
19
|
+
* @returns instance of supabase client
|
|
20
|
+
*/
|
|
21
|
+
export function $provideSupabaseForServer(): typeof supabase {
|
|
22
|
+
if (!$isRunningInNode()) {
|
|
23
|
+
throw new Error(
|
|
24
|
+
'Function `$provideSupabaseForServer` can not be used in browser, use `$provideSupabaseForBrowser` instead.',
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (!supabase) {
|
|
29
|
+
// Create a single supabase client for interacting with your database
|
|
30
|
+
supabase = createClient<AgentsServerDatabase>(
|
|
31
|
+
process.env.NEXT_PUBLIC_SUPABASE_URL!,
|
|
32
|
+
process.env.SUPABASE_SERVICE_ROLE_KEY!,
|
|
33
|
+
{
|
|
34
|
+
auth: {
|
|
35
|
+
autoRefreshToken: false,
|
|
36
|
+
persistSession: false,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/*
|
|
43
|
+
// Access auth admin api
|
|
44
|
+
const adminAuthClient = supabase.auth.admin;
|
|
45
|
+
*/
|
|
46
|
+
|
|
47
|
+
return supabase;
|
|
48
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { AgentsDatabaseSchema } from '@promptbook-local/types';
|
|
2
|
+
import { $isRunningInWebWorker } from '@promptbook-local/utils';
|
|
3
|
+
import { createClient, SupabaseClient } from '@supabase/supabase-js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Internal cache for `$provideSupabaseForWorker`
|
|
7
|
+
*
|
|
8
|
+
* @private
|
|
9
|
+
* @singleton
|
|
10
|
+
*/
|
|
11
|
+
let supabase: SupabaseClient<AgentsDatabaseSchema>;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Get supabase client
|
|
15
|
+
*
|
|
16
|
+
* Note: The client is cached, so it's safe to call this function multiple times
|
|
17
|
+
* Note: This function is available ONLY in worker, use $provideSupabaseForBrowser for main thread
|
|
18
|
+
*
|
|
19
|
+
* @returns instance of supabase client
|
|
20
|
+
*/
|
|
21
|
+
export function $provideSupabaseForWorker(): typeof supabase {
|
|
22
|
+
if (!$isRunningInWebWorker) {
|
|
23
|
+
throw new Error(
|
|
24
|
+
'Function `$provideSupabaseForWorker` can not be used in browser, use `$provideSupabaseForBrowser` instead.',
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (!supabase) {
|
|
29
|
+
// Create a single supabase client for interacting with your database
|
|
30
|
+
supabase = createClient<AgentsDatabaseSchema>(
|
|
31
|
+
process.env.NEXT_PUBLIC_SUPABASE_URL!,
|
|
32
|
+
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return supabase;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Note: [🎇] Promptbook Agents Server is not using Supabase in Browser so maybe remove this file
|
|
41
|
+
* TODO: Fix> No storage option exists to persist the session, which may result in unexpected behavior when using auth.
|
|
42
|
+
If you want to set persistSession to true, please provide a storage option or you may set persistSession to false to disable this warning.
|
|
43
|
+
*/
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { $getTableName } from './$getTableName';
|
|
2
|
+
import { $provideSupabase } from './$provideSupabase';
|
|
3
|
+
import { metadataDefaults } from './metadataDefaults';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Get metadata value by key
|
|
7
|
+
*
|
|
8
|
+
* @param key - The key of the metadata
|
|
9
|
+
* @returns The value of the metadata or default value if not found
|
|
10
|
+
*/
|
|
11
|
+
export async function getMetadata(key: string): Promise<string | null> {
|
|
12
|
+
const supabase = $provideSupabase();
|
|
13
|
+
const table = await $getTableName('Metadata');
|
|
14
|
+
|
|
15
|
+
const { data } = await supabase
|
|
16
|
+
.from(table)
|
|
17
|
+
.select('value')
|
|
18
|
+
.eq('key', key)
|
|
19
|
+
.single();
|
|
20
|
+
|
|
21
|
+
if (data) {
|
|
22
|
+
return data.value;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const defaultValue = metadataDefaults.find((m) => m.key === key);
|
|
26
|
+
if (defaultValue) {
|
|
27
|
+
return defaultValue.value;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
export type MetadataType = 'TEXT_SINGLE_LINE' | 'TEXT' | 'NUMBER' | 'BOOLEAN' | 'IMAGE_URL' | 'IP_RANGE';
|
|
2
|
+
|
|
3
|
+
export const metadataDefaults = [
|
|
4
|
+
{
|
|
5
|
+
key: 'SERVER_NAME',
|
|
6
|
+
value: 'Promptbook Agents Server',
|
|
7
|
+
note: 'The name of the server displayed in the heading bar',
|
|
8
|
+
type: 'TEXT_SINGLE_LINE',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
key: 'SERVER_DESCRIPTION',
|
|
12
|
+
value: 'Agents server powered by Promptbook',
|
|
13
|
+
note: 'The description of the server displayed in the search engine results',
|
|
14
|
+
type: 'TEXT',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
key: 'SERVER_LOGO_URL',
|
|
18
|
+
value: '',
|
|
19
|
+
note: 'The URL of the logo displayed in the heading bar',
|
|
20
|
+
type: 'IMAGE_URL',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
key: 'SERVER_FAVICON_URL',
|
|
24
|
+
value: '',
|
|
25
|
+
note: 'The URL of the favicon',
|
|
26
|
+
type: 'IMAGE_URL',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
key: 'RESTRICT_IP',
|
|
30
|
+
value: '',
|
|
31
|
+
note: 'Comma separated list of allowed IPs or CIDR ranges. If set, only clients from these IPs are allowed to access the server.',
|
|
32
|
+
type: 'IP_RANGE',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
key: 'FEDERATED_SERVERS',
|
|
36
|
+
value: '',
|
|
37
|
+
note: 'Comma separated list of federated servers URLs. The server will look to all federated servers and list their agents.',
|
|
38
|
+
type: 'TEXT',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
key: 'IS_VOICE_CALLING_ENABLED',
|
|
42
|
+
value: 'false',
|
|
43
|
+
note: 'Enable or disable voice calling features for agents. When disabled, voice API endpoints will return 403 Forbidden.',
|
|
44
|
+
type: 'BOOLEAN',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
key: 'IS_FOOTER_SHOWN',
|
|
48
|
+
value: 'true',
|
|
49
|
+
note: 'Show or hide the footer.',
|
|
50
|
+
type: 'BOOLEAN',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
key: 'FOOTER_LINKS',
|
|
54
|
+
value: '[]',
|
|
55
|
+
note: 'Extra links to display in the footer, as a JSON array of objects with title and url properties.',
|
|
56
|
+
type: 'TEXT',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
key: 'MAX_FILE_UPLOAD_SIZE_MB',
|
|
60
|
+
value: '50', // <- TODO: [🌲] To /config.ts
|
|
61
|
+
note: 'Maximum size of file that can be uploaded in MB.',
|
|
62
|
+
type: 'NUMBER',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
key: 'NAME_POOL',
|
|
66
|
+
value: 'ENGLISH',
|
|
67
|
+
note: 'Language for generating new agent names. Possible values: ENGLISH, CZECH.',
|
|
68
|
+
type: 'TEXT_SINGLE_LINE',
|
|
69
|
+
},
|
|
70
|
+
] as const satisfies ReadonlyArray<{
|
|
71
|
+
key: string;
|
|
72
|
+
value: string;
|
|
73
|
+
note: string;
|
|
74
|
+
type: MetadataType;
|
|
75
|
+
}>;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import * as dotenv from 'dotenv';
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
import { Client } from 'pg';
|
|
5
|
+
|
|
6
|
+
dotenv.config();
|
|
7
|
+
|
|
8
|
+
async function migrate() {
|
|
9
|
+
console.info('🚀 Starting database migration');
|
|
10
|
+
|
|
11
|
+
// 1. Get configuration
|
|
12
|
+
const prefixesEnv = process.env.SUPABASE_MIGRATION_PREFIXES;
|
|
13
|
+
if (!prefixesEnv) {
|
|
14
|
+
console.warn('⚠️ SUPABASE_MIGRATION_PREFIXES is not defined. Skipping migration.');
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const prefixes = prefixesEnv
|
|
18
|
+
.split(',')
|
|
19
|
+
.map((p) => p.trim())
|
|
20
|
+
.filter((p) => p !== '');
|
|
21
|
+
|
|
22
|
+
if (prefixes.length === 0) {
|
|
23
|
+
console.warn('⚠️ No prefixes found in SUPABASE_MIGRATION_PREFIXES. Skipping migration.');
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const connectionString = process.env.POSTGRES_URL || process.env.DATABASE_URL;
|
|
28
|
+
if (!connectionString) {
|
|
29
|
+
console.error('❌ POSTGRES_URL or DATABASE_URL is not defined.');
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
console.info(`📋 Found ${prefixes.length} prefixes to migrate: ${prefixes.join(', ')}`);
|
|
34
|
+
|
|
35
|
+
// 2. Connect to database
|
|
36
|
+
const client = new Client({
|
|
37
|
+
connectionString,
|
|
38
|
+
ssl: { rejectUnauthorized: false }, // Required for some Supabase/Heroku connections
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
try {
|
|
42
|
+
await client.connect();
|
|
43
|
+
console.info('🔌 Connected to database');
|
|
44
|
+
|
|
45
|
+
// 3. Read migration files
|
|
46
|
+
const migrationsDir = path.join(__dirname, 'migrations');
|
|
47
|
+
if (!fs.existsSync(migrationsDir)) {
|
|
48
|
+
console.error(`❌ Migrations directory not found at ${migrationsDir}`);
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const migrationFiles = fs
|
|
53
|
+
.readdirSync(migrationsDir)
|
|
54
|
+
.filter((file) => file.endsWith('.sql'))
|
|
55
|
+
.sort(); // Ensure files are processed in order
|
|
56
|
+
|
|
57
|
+
console.info(`📂 Found ${migrationFiles.length} migration files`);
|
|
58
|
+
|
|
59
|
+
// 4. Iterate over prefixes and apply migrations
|
|
60
|
+
for (const prefix of prefixes) {
|
|
61
|
+
console.info(`\n🏗️ Migrating prefix: "${prefix}"`);
|
|
62
|
+
const migrationsTableName = `${prefix}Migrations`;
|
|
63
|
+
|
|
64
|
+
// 4.1 Create migrations table if not exists
|
|
65
|
+
const createMigrationsTableSql = `
|
|
66
|
+
CREATE TABLE IF NOT EXISTS "${migrationsTableName}" (
|
|
67
|
+
"filename" TEXT PRIMARY KEY,
|
|
68
|
+
"appliedAt" TIMESTAMP WITH TIME ZONE DEFAULT now()
|
|
69
|
+
);
|
|
70
|
+
`;
|
|
71
|
+
await client.query(createMigrationsTableSql);
|
|
72
|
+
|
|
73
|
+
// Enable RLS for migrations table
|
|
74
|
+
const enableRlsSql = `ALTER TABLE "${migrationsTableName}" ENABLE ROW LEVEL SECURITY;`;
|
|
75
|
+
await client.query(enableRlsSql);
|
|
76
|
+
|
|
77
|
+
// 4.2 Get applied migrations
|
|
78
|
+
const { rows: appliedMigrationsRows } = await client.query(
|
|
79
|
+
`SELECT "filename" FROM "${migrationsTableName}"`,
|
|
80
|
+
);
|
|
81
|
+
const appliedMigrations = new Set(appliedMigrationsRows.map((row) => row.filename));
|
|
82
|
+
|
|
83
|
+
// 4.3 Apply new migrations in one big transaction
|
|
84
|
+
let migrationError = null;
|
|
85
|
+
await client.query('BEGIN');
|
|
86
|
+
try {
|
|
87
|
+
for (const file of migrationFiles) {
|
|
88
|
+
if (appliedMigrations.has(file)) {
|
|
89
|
+
// console.info(` ⏭️ Skipping ${file} (already applied)`);
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
console.info(` 🚀 Applying ${file}...`);
|
|
94
|
+
const filePath = path.join(migrationsDir, file);
|
|
95
|
+
let sql = fs.readFileSync(filePath, 'utf-8');
|
|
96
|
+
|
|
97
|
+
// Replace prefix placeholder
|
|
98
|
+
sql = sql.replace(/prefix_/g, prefix);
|
|
99
|
+
|
|
100
|
+
try {
|
|
101
|
+
await client.query(sql);
|
|
102
|
+
await client.query(`INSERT INTO "${migrationsTableName}" ("filename") VALUES ($1)`, [file]);
|
|
103
|
+
console.info(` ✅ Applied ${file}`);
|
|
104
|
+
} catch (error) {
|
|
105
|
+
console.error(` ❌ Failed to apply ${file}:`, error);
|
|
106
|
+
migrationError = error;
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (migrationError) {
|
|
111
|
+
await client.query('ROLLBACK');
|
|
112
|
+
throw migrationError;
|
|
113
|
+
} else {
|
|
114
|
+
await client.query('COMMIT');
|
|
115
|
+
}
|
|
116
|
+
} catch (error) {
|
|
117
|
+
await client.query('ROLLBACK');
|
|
118
|
+
throw error;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
console.info('\n🎉 All migrations completed successfully');
|
|
123
|
+
} catch (error) {
|
|
124
|
+
console.error('\n❌ Migration failed:', error);
|
|
125
|
+
process.exit(1);
|
|
126
|
+
} finally {
|
|
127
|
+
await client.end();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
migrate();
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
-- Note: This is primary source of truth for the database schema
|
|
2
|
+
-- In future we want to be compatible with more then Supabase so we keep SQL as main schema definition
|
|
3
|
+
-- To update, search for [💽]
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
CREATE TABLE IF NOT EXISTS "prefix_Agent" (
|
|
7
|
+
"id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|
8
|
+
"agentName" TEXT NOT NULL,
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
"createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
|
|
12
|
+
"updatedAt" TIMESTAMP WITH TIME ZONE NULL DEFAULT NULL,
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
"agentHash" TEXT NOT NULL,
|
|
16
|
+
"agentSource" TEXT NOT NULL,
|
|
17
|
+
"agentProfile" JSONB NOT NULL,
|
|
18
|
+
"promptbookEngineVersion" TEXT NOT NULL,
|
|
19
|
+
|
|
20
|
+
"usage" JSONB NULL,
|
|
21
|
+
"preparedModelRequirements" JSONB NULL,
|
|
22
|
+
"preparedExternals" JSONB NULL
|
|
23
|
+
);
|
|
24
|
+
-- Ensure uniqueness of agentName even on repeated schema application without duplicate constraint creation
|
|
25
|
+
CREATE UNIQUE INDEX IF NOT EXISTS "prefix_agent_agentname_key" ON "prefix_Agent" ("agentName");
|
|
26
|
+
COMMENT ON COLUMN "prefix_Agent"."agentName" IS 'The unique name of the agent derived from the first line of the `agentSource`, automatically updated on `agentSource` change';
|
|
27
|
+
COMMENT ON COLUMN "prefix_Agent"."agentHash" IS 'The hash of the `agentSource`, automatically updated on `agentSource` change';
|
|
28
|
+
COMMENT ON COLUMN "prefix_Agent"."agentSource" IS 'The source code of the agent';
|
|
29
|
+
COMMENT ON COLUMN "prefix_Agent"."agentProfile" IS 'The profile of the agent generated from the `agentSource`, automatically updated on `agentSource` change <- TODO: [🕛]';
|
|
30
|
+
COMMENT ON COLUMN "prefix_Agent"."promptbookEngineVersion" IS 'The version of the Promptbook engine used for last update of the agent';
|
|
31
|
+
COMMENT ON COLUMN "prefix_Agent"."usage" IS 'Usage and spending statistics for the agent';
|
|
32
|
+
COMMENT ON COLUMN "prefix_Agent"."preparedModelRequirements" IS 'The prepared model requirements for the agent, generated from the `agentSource` but not after every change (only on explicit request), there is `agentHash` to identify the version of the `agentSource` this was prepared from';
|
|
33
|
+
COMMENT ON COLUMN "prefix_Agent"."preparedExternals" IS 'The prepared externals for the agent, generated from the `agentSource` but not after every change (only on explicit request), there is `agentHash` to identify the version of the `agentSource` this was prepared from';
|
|
34
|
+
|
|
35
|
+
ALTER TABLE "prefix_Agent" ENABLE ROW LEVEL SECURITY;
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
CREATE TABLE IF NOT EXISTS "prefix_AgentHistory" (
|
|
39
|
+
"id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|
40
|
+
"createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
|
|
41
|
+
|
|
42
|
+
"agentName" TEXT NOT NULL,
|
|
43
|
+
"agentHash" TEXT NOT NULL,
|
|
44
|
+
"previousAgentHash" TEXT NULL,
|
|
45
|
+
"agentSource" TEXT NOT NULL,
|
|
46
|
+
"promptbookEngineVersion" TEXT NOT NULL
|
|
47
|
+
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
CREATE INDEX IF NOT EXISTS "prefix_AgentHistory_agentName_idx" ON "prefix_AgentHistory" ("agentName");
|
|
51
|
+
CREATE INDEX IF NOT EXISTS "prefix_AgentHistory_agentHash_idx" ON "prefix_AgentHistory" ("agentHash");
|
|
52
|
+
|
|
53
|
+
ALTER TABLE "prefix_AgentHistory" ENABLE ROW LEVEL SECURITY;
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
CREATE TABLE IF NOT EXISTS "prefix_ChatHistory" (
|
|
57
|
+
"id" BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
|
|
58
|
+
"createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
|
|
59
|
+
|
|
60
|
+
"messageHash" TEXT NOT NULL,
|
|
61
|
+
"previousMessageHash" TEXT NULL,
|
|
62
|
+
"agentName" TEXT NOT NULL,
|
|
63
|
+
"agentHash" TEXT NOT NULL,
|
|
64
|
+
"message" JSONB NOT NULL,
|
|
65
|
+
|
|
66
|
+
-- Telemetry:
|
|
67
|
+
"promptbookEngineVersion" TEXT NULL,
|
|
68
|
+
"url" TEXT NULL,
|
|
69
|
+
"ip" TEXT NULL,
|
|
70
|
+
"userAgent" TEXT NULL,
|
|
71
|
+
"language" TEXT NULL,
|
|
72
|
+
"platform" TEXT NULL
|
|
73
|
+
);
|
|
74
|
+
COMMENT ON COLUMN "prefix_ChatHistory"."url" IS 'The URL where the chat was happening';
|
|
75
|
+
COMMENT ON COLUMN "prefix_ChatHistory"."ip" IS 'The IP address of the user';
|
|
76
|
+
COMMENT ON COLUMN "prefix_ChatHistory"."userAgent" IS 'The user agent (browser) of the user';
|
|
77
|
+
COMMENT ON COLUMN "prefix_ChatHistory"."language" IS 'The language (from the browser) of the user';
|
|
78
|
+
COMMENT ON COLUMN "prefix_ChatHistory"."platform" IS 'The platform of the user';
|
|
79
|
+
|
|
80
|
+
ALTER TABLE "prefix_ChatHistory" ENABLE ROW LEVEL SECURITY;
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
CREATE TABLE IF NOT EXISTS "prefix_ChatFeedback" (
|
|
84
|
+
"id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|
85
|
+
"createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
|
|
86
|
+
|
|
87
|
+
"agentName" TEXT NOT NULL,
|
|
88
|
+
"agentHash" TEXT NOT NULL,
|
|
89
|
+
"rating" TEXT NULL,
|
|
90
|
+
"textRating" TEXT NULL,
|
|
91
|
+
"chatThread" TEXT NULL,
|
|
92
|
+
"userNote" TEXT NULL,
|
|
93
|
+
"expectedAnswer" TEXT NULL,
|
|
94
|
+
|
|
95
|
+
-- Telemetry:
|
|
96
|
+
"promptbookEngineVersion" TEXT NULL,
|
|
97
|
+
"url" TEXT NULL,
|
|
98
|
+
"ip" TEXT NULL,
|
|
99
|
+
"userAgent" TEXT NULL,
|
|
100
|
+
"language" TEXT NULL,
|
|
101
|
+
"platform" TEXT NULL
|
|
102
|
+
);
|
|
103
|
+
COMMENT ON COLUMN "prefix_ChatFeedback"."url" IS 'The URL where the chat was happening';
|
|
104
|
+
COMMENT ON COLUMN "prefix_ChatFeedback"."ip" IS 'The IP address of the user';
|
|
105
|
+
COMMENT ON COLUMN "prefix_ChatFeedback"."userAgent" IS 'The user agent (browser) of the user';
|
|
106
|
+
COMMENT ON COLUMN "prefix_ChatFeedback"."language" IS 'The language (from the browser) of the user';
|
|
107
|
+
COMMENT ON COLUMN "prefix_ChatFeedback"."platform" IS 'The platform of the user';
|
|
108
|
+
|
|
109
|
+
ALTER TABLE "prefix_ChatFeedback" ENABLE ROW LEVEL SECURITY;
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
CREATE TABLE IF NOT EXISTS "prefix_User" (
|
|
113
|
+
"id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|
114
|
+
"createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
|
|
115
|
+
"updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
|
|
116
|
+
|
|
117
|
+
"username" TEXT NOT NULL,
|
|
118
|
+
"passwordHash" TEXT NOT NULL,
|
|
119
|
+
"isAdmin" BOOLEAN NOT NULL DEFAULT FALSE
|
|
120
|
+
);
|
|
121
|
+
CREATE UNIQUE INDEX IF NOT EXISTS "prefix_User_username_idx" ON "prefix_User" ("username");
|
|
122
|
+
|
|
123
|
+
ALTER TABLE "prefix_User" ENABLE ROW LEVEL SECURITY;
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
/*
|
|
127
|
+
CREATE TABLE IF NOT EXISTS "prefix_AgentActionHistory" (
|
|
128
|
+
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
|
|
129
|
+
createdAt TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
|
|
130
|
+
|
|
131
|
+
);
|
|
132
|
+
*/
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
/*
|
|
136
|
+
CREATE TABLE IF NOT EXISTS "prefix_Xxx" (
|
|
137
|
+
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
|
|
138
|
+
);
|
|
139
|
+
*/
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
-- Foreign key relationships
|
|
143
|
+
-- Note: Using agentName as the foreign key reference since it's the unique identifier used across tables
|
|
144
|
+
ALTER TABLE "prefix_AgentHistory"
|
|
145
|
+
DROP CONSTRAINT IF EXISTS "prefix_AgentHistory_agentName_fkey",
|
|
146
|
+
ADD CONSTRAINT "prefix_AgentHistory_agentName_fkey"
|
|
147
|
+
FOREIGN KEY ("agentName")
|
|
148
|
+
REFERENCES "prefix_Agent"("agentName")
|
|
149
|
+
ON DELETE CASCADE;
|
|
150
|
+
|
|
151
|
+
ALTER TABLE "prefix_ChatHistory"
|
|
152
|
+
DROP CONSTRAINT IF EXISTS "prefix_ChatHistory_agentName_fkey",
|
|
153
|
+
ADD CONSTRAINT "prefix_ChatHistory_agentName_fkey"
|
|
154
|
+
FOREIGN KEY ("agentName")
|
|
155
|
+
REFERENCES "prefix_Agent"("agentName")
|
|
156
|
+
ON DELETE CASCADE;
|
|
157
|
+
|
|
158
|
+
ALTER TABLE "prefix_ChatFeedback"
|
|
159
|
+
DROP CONSTRAINT IF EXISTS "prefix_ChatFeedback_agentName_fkey",
|
|
160
|
+
ADD CONSTRAINT "prefix_ChatFeedback_agentName_fkey"
|
|
161
|
+
FOREIGN KEY ("agentName")
|
|
162
|
+
REFERENCES "prefix_Agent"("agentName")
|
|
163
|
+
ON DELETE CASCADE;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
-- Note: This is primary source of truth for the database schema
|
|
2
|
+
-- In future we want to be compatible with more then Supabase so we keep SQL as main schema definition
|
|
3
|
+
-- To update, search for [💽]
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
CREATE TABLE IF NOT EXISTS "prefix_Metadata" (
|
|
7
|
+
"id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|
8
|
+
"createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
|
|
9
|
+
"updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
|
|
10
|
+
"key" TEXT NOT NULL,
|
|
11
|
+
"value" TEXT NOT NULL,
|
|
12
|
+
"note" TEXT NULL,
|
|
13
|
+
CONSTRAINT "prefix_Metadata_key_key" UNIQUE ("key")
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
ALTER TABLE "prefix_Metadata" ENABLE ROW LEVEL SECURITY;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS "prefix_LlmCache" (
|
|
2
|
+
"id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|
3
|
+
"createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
|
|
4
|
+
"updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
|
|
5
|
+
|
|
6
|
+
"hash" TEXT NOT NULL,
|
|
7
|
+
"value" JSONB NOT NULL
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
CREATE UNIQUE INDEX IF NOT EXISTS "prefix_LlmCache_hash_idx" ON "prefix_LlmCache" ("hash");
|
|
11
|
+
|
|
12
|
+
ALTER TABLE "prefix_LlmCache" ENABLE ROW LEVEL SECURITY;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS "prefix_ApiTokens" (
|
|
2
|
+
"id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|
3
|
+
"createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
|
|
4
|
+
"updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
|
|
5
|
+
|
|
6
|
+
"token" TEXT NOT NULL,
|
|
7
|
+
"note" TEXT,
|
|
8
|
+
"isRevoked" BOOLEAN NOT NULL DEFAULT FALSE
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
CREATE UNIQUE INDEX IF NOT EXISTS "prefix_ApiTokens_token_idx" ON "prefix_ApiTokens" ("token");
|
|
12
|
+
|
|
13
|
+
ALTER TABLE "prefix_ApiTokens" ENABLE ROW LEVEL SECURITY;
|