2024-01-17 10:52:43 +07:00
// Indonesia phrases
2024-01-30 14:34:02 -05:00
// file deepcode ignore NoHardcodedPasswords: No hardcoded values present in this file
// file deepcode ignore HardcodedNonCryptoSecret: No hardcoded secrets present in this file
2024-01-17 10:52:43 +07:00
export default {
2024-01-17 08:13:46 -05:00
com_ui_examples : 'Contoh' ,
com_ui_new_chat : 'Chat Baru' ,
2024-02-11 15:10:12 +01:00
com_ui_happy_birthday : 'Ini ulang tahun pertamaku!' ,
2024-01-17 08:13:46 -05:00
com_ui_example_quantum_computing : 'Jelaskan komputasi kuantum dengan istilah yang sederhana' ,
com_ui_example_10_year_old_b_day : 'Ada ide kreatif untuk ulang tahun anak 10 tahun?' ,
com_ui_example_http_in_js : 'Bagaimana cara membuat permintaan HTTP dalam Javascript?' ,
com_ui_capabilities : 'Kemampuan' ,
com_ui_capability_remember : 'Mengingat apa yang pengguna katakan sebelumnya dalam percakapan' ,
com_ui_capability_correction : 'Memungkinkan pengguna untuk memberikan koreksi tindak lanjut' ,
com_ui_capability_decline_requests : 'Dilatih untuk menolak permintaan yang tidak pantas' ,
com_ui_limitations : 'Keterbatasan' ,
com_ui_limitation_incorrect_info : 'Mungkin sesekali menghasilkan informasi yang salah' ,
com_ui_limitation_harmful_biased :
'Mungkin sesekali menghasilkan instruksi yang berbahaya atau konten yang bias' ,
com_ui_limitation_limited_2021 : 'Pengetahuan terbatas tentang dunia dan peristiwa setelah 2021' ,
2024-01-21 03:22:25 +07:00
com_ui_experimental : 'Fitur Eksperimental' ,
2024-01-17 08:13:46 -05:00
com_ui_input : 'Masukan' ,
com_ui_close : 'Tutup' ,
com_ui_model : 'Model' ,
com_ui_select_model : 'Pilih model' ,
com_ui_use_prompt : 'Gunakan petunjuk' ,
com_ui_prev : 'Sebelumnya' ,
com_ui_next : 'Berikutnya' ,
com_ui_stop : 'Berhenti' ,
com_ui_prompt_templates : 'Template Petunjuk' ,
com_ui_hide_prompt_templates : 'Sembunyikan Template Petunjuk' ,
com_ui_showing : 'Menampilkan' ,
com_ui_of : 'dari' ,
com_ui_entries : 'Entri' ,
com_ui_pay_per_call :
'Semua percakapan AI di satu tempat. Bayar per panggilan dan bukan per bulan' ,
com_ui_new_footer : 'Semua percakapan AI di satu tempat.' ,
com_ui_enter : 'Masuk' ,
com_ui_submit : 'Kirim' ,
com_ui_upload_success : 'Berhasil mengunggah file' ,
com_ui_upload_error : 'Ada kesalahan saat mengunggah file Anda' ,
com_ui_cancel : 'Batal' ,
com_ui_save : 'Simpan' ,
com_ui_save_submit : 'Simpan & Kirim' ,
2024-01-21 03:22:25 +07:00
com_user_message : 'Kamu' ,
2024-01-17 08:13:46 -05:00
com_ui_copy_to_clipboard : 'Salin ke papan klip' ,
com_ui_copied_to_clipboard : 'Disalin ke papan klip' ,
com_ui_regenerate : 'Regenerasi' ,
com_ui_continue : 'Lanjutkan' ,
com_ui_edit : 'Edit' ,
com_ui_success : 'Berhasil' ,
com_ui_all : 'semua' ,
com_ui_clear : 'Bersihkan' ,
com_ui_revoke : 'Cabut' ,
com_ui_revoke_info : 'Cabut semua kredensial yang diberikan pengguna' ,
2024-05-02 08:48:26 +02:00
com_ui_import_conversation : 'Impor' ,
com_ui_import_conversation_info : 'Impor percakapan dari file JSON' ,
com_ui_import_conversation_success : 'Percakapan berhasil diimpor' ,
com_ui_import_conversation_error : 'Terjadi kesalahan saat mengimpor percakapan Anda' ,
2024-01-17 08:13:46 -05:00
com_ui_confirm_action : 'Konfirmasi Aksi' ,
com_ui_chats : 'chat' ,
2024-06-15 08:12:03 -07:00
com_ui_share : 'Bagikan' ,
com_ui_copy_link : 'Salin tautan' ,
com_ui_update_link : 'Perbarui tautan' ,
com_ui_create_link : 'Buat tautan' ,
com_ui_share_link_to_chat : 'Bagikan tautan ke chat' ,
com_ui_share_error : 'Terjadi kesalahan saat membagikan tautan chat' ,
2024-06-21 07:12:37 -07:00
com_ui_share_retrieve_error : 'Terjadi kesalahan saat menghapus tautan yang dibagikan.' ,
com_ui_share_delete_error : 'Terjadi kesalahan saat menghapus tautan yang dibagikan.' ,
🗨️ feat: Prompts (#3131)
* 🗨️ feat: Prompts (#7)
* WIP: MERGE prompts/frontend (#1)
* added schema for prompt and promptgroup, added model methods for prompts, added routes for prompts
* * updated promptGroup Schema
* updated model methods for prompts (get, add, delete)
* slight fixes in prompt routes
* * Created Files Management components
* Created Vector Stores components
* Added file management route in the routes folder
* Completed UI for Files list, Compeleted UI for vector stores list, Completed UI for upload file modal, Completed UI for preview file, Completed UI for preview vector store
* Fixed style and UI fixes for file dashboard, file list and vector stores list
* added responsiveness classes for vector store page
* fixed responsiveness of file page, dashboard page, and main page
* fixed styling and responsiveness issues on dashboard page, file list page and vector store page
* added queries and mutations for prompts and promptGroups, added relevant endpoints in data-provider, added relevant components prompts, added and updated relevant APIs
* added types on mutation queries data service, updated prompt attributes
* feature: Prompts and prompt groups management, added relevant APIs, added types for data service/queries/mutations, added relevant mutation and queries
* chore: typing clarifications
* added drop down on prompts mgmt dashboard
* Fixes: fixed version switching issue on tags update or labels update, added cross button on create prompt group, fixed list updation on prompt group renaiming, added CSV upload button
* Feature: Added oneliner and category attributes in prompt group, added schema for categories, added schema methods and route for categories
* chore: typing and lint issues
* chore: more type and linter fixes
* chore: linting
* chore: prompt controller and backend typing example; MOVE TO CONTROLLER DIRECTORY
* chore: more type fixes
* style: prompt name changes
* chore: more type changes, and stateful prompt name change without flickering
* fix: Return result of savePrompt in patchPrompt API endpoint
* fix: navigation prompt queries; refactor: name 'prompt-groups' to just 'groups'
* refactor: fetch prompt groups rewrite
* refactor(prompts): query/mutation statefulness
* refactor: remove `isActive` field
* refactor: remove labels, consolidate logic
* style: width, layout shift
* refactor: improve hover toggle behavior and styling
* refactor: add useParams hook to PromptListItem for dynamic rendering and add timeout ref for blur timeout
* chore: hide upload button
* refactor: import Button component from correct location in PromptSidePanel
* style: prompt editor styling
* style: fix more layout shifts
* style: container scroll
* refactor: Rename CreatePrompt component to CreatePromptForm
* refactor: use react-hook-form
* refactor: Add Prompts components and routes to Dashboard
* style: skeletons for loading
* fix: optimize makePromptProduction
* refactor: consolidate variables
* feat: create prompt form validation
* refactor: Consolidate variables and update mutation hooks
* style: minor touchups
* chore: Update lucide-react npm dependency to version 0.394.0 and npm audit fix
* refactor: add a new icon for the Prompts heading.
* style: Update PromptsView heading to use h1 instead of h2 and other minor margin issues
* chore: wording
* refactor: Update PromptsView heading to use h1 instead of h2, consolidate variables, and add new icons
* refactor: Prompts Button for Mobile
* feature: added category field in prompt group, added relevant API and static data on BE to support FE UI for category in prompt group
* chore: template for prompt cards
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* WIP: Prompts/frontend Continued (#2)
* chore: loading style, remove unused component
* feat: Add CategorySelector component for prompt group category selection
* feat: add categories to create prompt
* feat: prompt versions styling
* feat: optimistic updates for prompt production state
* refactor: optimize form state and show if prompt field is dirty with cross icon, also other styling changes
* chore: remove unused code and localizations
* fix: light mode styling
* WIP: SidePanel Prompts
* refactor: move to groups directory
* refactor: rename GroupsSidePanel to GroupSidePanel and update imports
* style: ListCard
* refactor: isProduction changes
* refactor: infinite query with productionPrompt
* refactor: optimize snippets and prompts, and styling
* refactor: Update getSnippet function to accept a length parameter
* chore: localizations
* feat: prompts navigation to chat and vice versa
* fix: create prompt
* feat: remember last selected category for creating prompts
* fix(promptGroups): fix pagination and add usePromptGroupsNav hook
* Prompts/frontend 3 (#3)
* fix: stateful issues with prompt groups
* style: improved layout
* refactor: improve variable naming in Eng.ts
* refactor: theme selector styling improvements
* added prompt cards on chat new page, with dark mode, added API to fetch random prompts, added types for useQuery
Slightly improved usePromptGroupNav logic to fetch updated result for pageSize, updated prompt cards view with darkmode and responsiveness
fixed page size option buttons styling to match the theme
added dark mode on create prompt page and prompt edit/preview page
fixed page size option buttons styling to match the theme
added dark mode on create prompt page and prompt edit/preview page
* WIP: Prompts/frontend (#4)
* fix: optimize and fix paginated query
* fix: remove unique constraint on names
* refactor: button links and styling
* style: menu border light mode
* feat: Add Auto-Send Switch component for prompts groups
* refactor(ChatView): use form context for submission text
* chore: clear convo state on navigation to dashboard routes
* chore: save prompt edit name on tab, remove console log
* feat: basic prompt submission
* refactor: move Auto-Send Switch
* style(ListCard): border styling
* feat: Add function to detect variables in text
* feat: Add OriginalDialog component to UI library
* chore(ui): Update SelectDropDown options list class to use text-xs size
* refactor: submitMessage hook now includes submitPrompt, make compatible to document query selector
* WIP: Variable Dialog
* feat: variable submission working for both auto-send and non-autosend
* feat: dashboard breadcrumbs and prompts/chat navigation
* refactor: dashboard breadcrumb and dashboard link to chat navigation
* refactor: Update VariableDialog and VariableForm styles
* Prompts: Admin features (#5)
* fix: link issue
* fix: usePromptGroupsNav add missing dep.
* style: dashbreadcrumb and sidepanel text color
* temp fix: remove refetch on pageNumber change
* fix: handle multiple variable replacement
* WIP: create project schema and add project groups to fetch
* feat: Add functionality to add prompt group IDs to a project
* feat: Add caching for startup config in config route
* chore: remove prompt landing
* style: Update Skeleton component with additional background styling
* chore: styling and types
* WIP: SharePrompt first draft
* feat(SharePrompt): form validation
* feat: shared global indicators
* refactor: prompt details
* refactor: change NoPromptGroup directory
* feat: preview prompt
* feat: remove/add global prompts, add rbac-related enums
* refactor: manage prompts location
* WIP: first draft admin settings for prompts
* feat: SystemRoles enum
* refactor: update PromptDetails component styling
* style: ellipsis custom class for showing more preview text
* WIP: initial role schema and initialization
* style: improved margins for single unordered lists
* fix: use custom chat form context to prevent re-renders from FormProvider
* feat: Role mutations for Prompt Permissions
* feat: fetch user role
* feat: update AdminSettings form default values from user role values
* refactor: rename PromptPermissions to Permissions for general definitions
* feat: initial role checks
* feat: Add optional `bodyProps` parameter to generateCheckAccess middleware
* refactor: UI access checks
* Prompts: delete (#6)
* Fixed delete prompt version API, fixed types and logic for prompt version deletion, updated prompt delete mutation logic
* chore: Update return type of deletePrompt function in Prompt.js
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* chore: Update package-lock.json version to 0.7.4-rc1 and fast-xml-parser to 4.4.0
* feat: toast for saving admin settings, add timer no-access navigation
* feat: always make prod
* feat: Add localization to category labels in CategorySelector component
* feat: Update category label localization in CategorySelector component
* fix: Enable making prompt production in Prompt API
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* feat: Add helper fn for dark mode detection in ThemeProvider
* style: surface-primary definition
* fix(useHasAccess): utilize user.role and not just USER role
* fix: empty category and role fetch
* refactort: increase max height to options list and use label if no localization is found
* fix: update CategorySelector to handle empty category value and improve localization
* refactor: move prompts to own store/reactquery modules, add in filter WIP
* refactor: Rename AutoSendSwitch to AutoSendPrompt
* style: theming commit
* style: fix slight coloring issue for convos in dark mode
* style: better composition for prompts side panel
* style: remove gray-750 and make it gray-850
* chore: adjust theming
* feat: filter all prompt groups and properly remove prompts from projects
* refactor: optimize delete prompt groups further
* chore: localization
* feat: Add uniqueProperty filtering to normalizeData function
* WIP: filter prompts
* chore: Update FilterPrompts component to include User icon in FilterItem
* feat(FilterPrompts): set categories
* feat: more system filters and show selected category icon
* style: always make prod, flips switch to avoid mis-clicks
* style: ui/ux loading/no prompts
* chore: style FilterPrompts ChatView
* fix: handle missing role edge case
* style: special variables
* feat: special variables
* refactor: improve replaceSpecialVars function in prompts.ts
* feat: simple/advanced editor modes
* chore: bump versions
* feat: localizations and hide production button on simple mode
* fix: error connecting layout shift
* fix: prompts CRUD for admins
* fix: secure single group fetch
* style: sidepanel styling
* style(PromptName): bring edit button closer to name
* style: mobile prompts header
* style: mobile prompts header continued
* style: align send prompts switch right
* feat: description
* Update special variables description in Eng.ts
* feat: update/create/preview oneliner
* fix: allow empty oneliner update
* style: loading improvement and always make selected prompt Production if simple mode
* fix: production index set and remove unused props
* fix(ci): mock initializeRoles
* fix: address #3128
* fix: address #3128
* feat: add deletion confirmation dialog
* fix: mobile UI issues
* style: prompt library UI update
* style: focus, logcal tab order
* style: Refactor SelectDropDown component to improve code readability and maintainability
* chore: bump data-provider
* chore: fix labels
* refactor: confirm delete prompt version
---------
Co-authored-by: Marco Beretta <81851188+berry-13@users.noreply.github.com>
2024-06-20 20:24:32 -04:00
com_ui_share_create_message :
'Nama Anda dan pesan apa pun yang Anda tambahkan setelah berbagi tetap pribadi.' ,
🚀 feat: Shared Links (#2772)
* ✨ feat(types): add necessary types for shared link feature
* ✨ feat: add shared links functions to data service
Added functions for retrieving, creating, updating, and deleting shared links and shared messages.
* ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId
Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId.
* ✨ feat: Add share schema and data access functions to API models
* ✨ feat: Add share endpoint to API
The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication.
* ♻️ refactor(utils): generalize react-query cache manipulation functions
Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application.
- Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions.
- Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections.
- Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities.
* ✨ feat(shared-link): add functions to manipulate shared link cache list
implemented new utility functions to handle additions, updates, and deletions in the shared link cache list.
* ✨ feat: Add mutations and queries for shared links
* ✨ feat(shared-link): add `Share` button to conversation list
- Added a share button in each conversation in the conversation list.
- Implemented functionality where clicking the share button triggers a POST request to the API.
- The API checks if a share link was already created for the conversation today; if so, it returns the existing link.
- If no link was created for today, the API will create a new share link and return it.
- Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature.
* ♻️ refactor(hooks): generalize useNavScrolling for broader use
- Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`.
- Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`.
* ✨ feat(settings): add shared links listing table with delete functionality in settings
- Integrated a delete button for each shared link in the table, allowing users to remove links as needed.
* ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use
* ♻️ refactor: update useGetSharedMessages to return TSharedLink
- Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself.
- This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink.
* ✨ feat(shared link): add UI for displaying shared conversations without authentication
- Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication.
- Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context.
* 🔧 chore: Add translations
Translate labels only. Messages remain in English as they are possibly subject to change.
* ♻️ refactor: add icon and tooltip props to EditMenuButton component
* moved icon and popover to arguments so that EditMenuButton can be reused.
* modified so that when a ShareButton is closed, the parent DropdownMenu is also closed.
* ♻️irefactor: added DropdownMenu for Export and Share
* ♻️ refactor: renamed component names more intuitive
* More accurate naming of the dropdown menu.
* When the export button is closed, the parent dropdown menu is also closed.
* 🌍 chore: updated translations
* 🐞 Fix: OpenID Profile Image Download (#2757)
* Add fetch requirement
Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function
* Update openidStrategy.js
---------
Co-authored-by: Danny Avila <danacordially@gmail.com>
* 🚑 fix(export): Issue exporting Conversation with Assistants (#2769)
* 🚑 fix(export): use content as text if content is present in the message
If the endpoint is assistants, the text of the message goes into content, not message.text.
* refactor(ExportModel): TypeScript, remove unused code
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
* 📤style: export button icon (#2752)
* refactor(ShareDialog): logic and styling
* refactor(ExportAndShareMenu): imports order and icon update
* chore: imports
* chore: imports/render logic
* feat: message branching
* refactor: add optional config to useGetStartupConfig
* refactor: disable endpoints query
* chore: fix search view styling gradient in light mode
* style: ShareView gradient styling
* refactor(Share): use select queries
* style: shared link table buttons
* localization and dark text styling
* style: fix clipboard button layout shift app-wide and add localization for copy code
* support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages
* add localizations
* comparisons
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com>
Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
com_ui_share_created_message :
2024-06-15 08:12:03 -07:00
'Tautan berbagi ke chat Anda telah dibuat. Kelola chat yang pernah dibagikan kapan saja melalui Pengaturan.' ,
🚀 feat: Shared Links (#2772)
* ✨ feat(types): add necessary types for shared link feature
* ✨ feat: add shared links functions to data service
Added functions for retrieving, creating, updating, and deleting shared links and shared messages.
* ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId
Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId.
* ✨ feat: Add share schema and data access functions to API models
* ✨ feat: Add share endpoint to API
The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication.
* ♻️ refactor(utils): generalize react-query cache manipulation functions
Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application.
- Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions.
- Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections.
- Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities.
* ✨ feat(shared-link): add functions to manipulate shared link cache list
implemented new utility functions to handle additions, updates, and deletions in the shared link cache list.
* ✨ feat: Add mutations and queries for shared links
* ✨ feat(shared-link): add `Share` button to conversation list
- Added a share button in each conversation in the conversation list.
- Implemented functionality where clicking the share button triggers a POST request to the API.
- The API checks if a share link was already created for the conversation today; if so, it returns the existing link.
- If no link was created for today, the API will create a new share link and return it.
- Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature.
* ♻️ refactor(hooks): generalize useNavScrolling for broader use
- Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`.
- Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`.
* ✨ feat(settings): add shared links listing table with delete functionality in settings
- Integrated a delete button for each shared link in the table, allowing users to remove links as needed.
* ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use
* ♻️ refactor: update useGetSharedMessages to return TSharedLink
- Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself.
- This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink.
* ✨ feat(shared link): add UI for displaying shared conversations without authentication
- Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication.
- Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context.
* 🔧 chore: Add translations
Translate labels only. Messages remain in English as they are possibly subject to change.
* ♻️ refactor: add icon and tooltip props to EditMenuButton component
* moved icon and popover to arguments so that EditMenuButton can be reused.
* modified so that when a ShareButton is closed, the parent DropdownMenu is also closed.
* ♻️irefactor: added DropdownMenu for Export and Share
* ♻️ refactor: renamed component names more intuitive
* More accurate naming of the dropdown menu.
* When the export button is closed, the parent dropdown menu is also closed.
* 🌍 chore: updated translations
* 🐞 Fix: OpenID Profile Image Download (#2757)
* Add fetch requirement
Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function
* Update openidStrategy.js
---------
Co-authored-by: Danny Avila <danacordially@gmail.com>
* 🚑 fix(export): Issue exporting Conversation with Assistants (#2769)
* 🚑 fix(export): use content as text if content is present in the message
If the endpoint is assistants, the text of the message goes into content, not message.text.
* refactor(ExportModel): TypeScript, remove unused code
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
* 📤style: export button icon (#2752)
* refactor(ShareDialog): logic and styling
* refactor(ExportAndShareMenu): imports order and icon update
* chore: imports
* chore: imports/render logic
* feat: message branching
* refactor: add optional config to useGetStartupConfig
* refactor: disable endpoints query
* chore: fix search view styling gradient in light mode
* style: ShareView gradient styling
* refactor(Share): use select queries
* style: shared link table buttons
* localization and dark text styling
* style: fix clipboard button layout shift app-wide and add localization for copy code
* support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages
* add localizations
* comparisons
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com>
Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
com_ui_share_update_message :
2024-06-15 08:12:03 -07:00
'Nama Anda, petunjuk khusus, dan pesan apa pun yang Anda tambahkan setelah berbagi tetap pribadi.' ,
🚀 feat: Shared Links (#2772)
* ✨ feat(types): add necessary types for shared link feature
* ✨ feat: add shared links functions to data service
Added functions for retrieving, creating, updating, and deleting shared links and shared messages.
* ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId
Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId.
* ✨ feat: Add share schema and data access functions to API models
* ✨ feat: Add share endpoint to API
The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication.
* ♻️ refactor(utils): generalize react-query cache manipulation functions
Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application.
- Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions.
- Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections.
- Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities.
* ✨ feat(shared-link): add functions to manipulate shared link cache list
implemented new utility functions to handle additions, updates, and deletions in the shared link cache list.
* ✨ feat: Add mutations and queries for shared links
* ✨ feat(shared-link): add `Share` button to conversation list
- Added a share button in each conversation in the conversation list.
- Implemented functionality where clicking the share button triggers a POST request to the API.
- The API checks if a share link was already created for the conversation today; if so, it returns the existing link.
- If no link was created for today, the API will create a new share link and return it.
- Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature.
* ♻️ refactor(hooks): generalize useNavScrolling for broader use
- Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`.
- Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`.
* ✨ feat(settings): add shared links listing table with delete functionality in settings
- Integrated a delete button for each shared link in the table, allowing users to remove links as needed.
* ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use
* ♻️ refactor: update useGetSharedMessages to return TSharedLink
- Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself.
- This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink.
* ✨ feat(shared link): add UI for displaying shared conversations without authentication
- Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication.
- Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context.
* 🔧 chore: Add translations
Translate labels only. Messages remain in English as they are possibly subject to change.
* ♻️ refactor: add icon and tooltip props to EditMenuButton component
* moved icon and popover to arguments so that EditMenuButton can be reused.
* modified so that when a ShareButton is closed, the parent DropdownMenu is also closed.
* ♻️irefactor: added DropdownMenu for Export and Share
* ♻️ refactor: renamed component names more intuitive
* More accurate naming of the dropdown menu.
* When the export button is closed, the parent dropdown menu is also closed.
* 🌍 chore: updated translations
* 🐞 Fix: OpenID Profile Image Download (#2757)
* Add fetch requirement
Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function
* Update openidStrategy.js
---------
Co-authored-by: Danny Avila <danacordially@gmail.com>
* 🚑 fix(export): Issue exporting Conversation with Assistants (#2769)
* 🚑 fix(export): use content as text if content is present in the message
If the endpoint is assistants, the text of the message goes into content, not message.text.
* refactor(ExportModel): TypeScript, remove unused code
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
* 📤style: export button icon (#2752)
* refactor(ShareDialog): logic and styling
* refactor(ExportAndShareMenu): imports order and icon update
* chore: imports
* chore: imports/render logic
* feat: message branching
* refactor: add optional config to useGetStartupConfig
* refactor: disable endpoints query
* chore: fix search view styling gradient in light mode
* style: ShareView gradient styling
* refactor(Share): use select queries
* style: shared link table buttons
* localization and dark text styling
* style: fix clipboard button layout shift app-wide and add localization for copy code
* support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages
* add localizations
* comparisons
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com>
Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
com_ui_share_updated_message :
2024-06-15 08:12:03 -07:00
'Tautan berbagi ke chat Anda telah diperbarui. Kelola chat yang pernah dibagikan kapan saja melalui Pengaturan.' ,
com_ui_shared_link_not_found : 'Tautan berbagi tidak ditemukan' ,
2024-01-17 08:13:46 -05:00
com_ui_delete : 'Hapus' ,
com_ui_delete_conversation : 'Hapus chat?' ,
🗨️ feat: Prompts (#3131)
* 🗨️ feat: Prompts (#7)
* WIP: MERGE prompts/frontend (#1)
* added schema for prompt and promptgroup, added model methods for prompts, added routes for prompts
* * updated promptGroup Schema
* updated model methods for prompts (get, add, delete)
* slight fixes in prompt routes
* * Created Files Management components
* Created Vector Stores components
* Added file management route in the routes folder
* Completed UI for Files list, Compeleted UI for vector stores list, Completed UI for upload file modal, Completed UI for preview file, Completed UI for preview vector store
* Fixed style and UI fixes for file dashboard, file list and vector stores list
* added responsiveness classes for vector store page
* fixed responsiveness of file page, dashboard page, and main page
* fixed styling and responsiveness issues on dashboard page, file list page and vector store page
* added queries and mutations for prompts and promptGroups, added relevant endpoints in data-provider, added relevant components prompts, added and updated relevant APIs
* added types on mutation queries data service, updated prompt attributes
* feature: Prompts and prompt groups management, added relevant APIs, added types for data service/queries/mutations, added relevant mutation and queries
* chore: typing clarifications
* added drop down on prompts mgmt dashboard
* Fixes: fixed version switching issue on tags update or labels update, added cross button on create prompt group, fixed list updation on prompt group renaiming, added CSV upload button
* Feature: Added oneliner and category attributes in prompt group, added schema for categories, added schema methods and route for categories
* chore: typing and lint issues
* chore: more type and linter fixes
* chore: linting
* chore: prompt controller and backend typing example; MOVE TO CONTROLLER DIRECTORY
* chore: more type fixes
* style: prompt name changes
* chore: more type changes, and stateful prompt name change without flickering
* fix: Return result of savePrompt in patchPrompt API endpoint
* fix: navigation prompt queries; refactor: name 'prompt-groups' to just 'groups'
* refactor: fetch prompt groups rewrite
* refactor(prompts): query/mutation statefulness
* refactor: remove `isActive` field
* refactor: remove labels, consolidate logic
* style: width, layout shift
* refactor: improve hover toggle behavior and styling
* refactor: add useParams hook to PromptListItem for dynamic rendering and add timeout ref for blur timeout
* chore: hide upload button
* refactor: import Button component from correct location in PromptSidePanel
* style: prompt editor styling
* style: fix more layout shifts
* style: container scroll
* refactor: Rename CreatePrompt component to CreatePromptForm
* refactor: use react-hook-form
* refactor: Add Prompts components and routes to Dashboard
* style: skeletons for loading
* fix: optimize makePromptProduction
* refactor: consolidate variables
* feat: create prompt form validation
* refactor: Consolidate variables and update mutation hooks
* style: minor touchups
* chore: Update lucide-react npm dependency to version 0.394.0 and npm audit fix
* refactor: add a new icon for the Prompts heading.
* style: Update PromptsView heading to use h1 instead of h2 and other minor margin issues
* chore: wording
* refactor: Update PromptsView heading to use h1 instead of h2, consolidate variables, and add new icons
* refactor: Prompts Button for Mobile
* feature: added category field in prompt group, added relevant API and static data on BE to support FE UI for category in prompt group
* chore: template for prompt cards
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* WIP: Prompts/frontend Continued (#2)
* chore: loading style, remove unused component
* feat: Add CategorySelector component for prompt group category selection
* feat: add categories to create prompt
* feat: prompt versions styling
* feat: optimistic updates for prompt production state
* refactor: optimize form state and show if prompt field is dirty with cross icon, also other styling changes
* chore: remove unused code and localizations
* fix: light mode styling
* WIP: SidePanel Prompts
* refactor: move to groups directory
* refactor: rename GroupsSidePanel to GroupSidePanel and update imports
* style: ListCard
* refactor: isProduction changes
* refactor: infinite query with productionPrompt
* refactor: optimize snippets and prompts, and styling
* refactor: Update getSnippet function to accept a length parameter
* chore: localizations
* feat: prompts navigation to chat and vice versa
* fix: create prompt
* feat: remember last selected category for creating prompts
* fix(promptGroups): fix pagination and add usePromptGroupsNav hook
* Prompts/frontend 3 (#3)
* fix: stateful issues with prompt groups
* style: improved layout
* refactor: improve variable naming in Eng.ts
* refactor: theme selector styling improvements
* added prompt cards on chat new page, with dark mode, added API to fetch random prompts, added types for useQuery
Slightly improved usePromptGroupNav logic to fetch updated result for pageSize, updated prompt cards view with darkmode and responsiveness
fixed page size option buttons styling to match the theme
added dark mode on create prompt page and prompt edit/preview page
fixed page size option buttons styling to match the theme
added dark mode on create prompt page and prompt edit/preview page
* WIP: Prompts/frontend (#4)
* fix: optimize and fix paginated query
* fix: remove unique constraint on names
* refactor: button links and styling
* style: menu border light mode
* feat: Add Auto-Send Switch component for prompts groups
* refactor(ChatView): use form context for submission text
* chore: clear convo state on navigation to dashboard routes
* chore: save prompt edit name on tab, remove console log
* feat: basic prompt submission
* refactor: move Auto-Send Switch
* style(ListCard): border styling
* feat: Add function to detect variables in text
* feat: Add OriginalDialog component to UI library
* chore(ui): Update SelectDropDown options list class to use text-xs size
* refactor: submitMessage hook now includes submitPrompt, make compatible to document query selector
* WIP: Variable Dialog
* feat: variable submission working for both auto-send and non-autosend
* feat: dashboard breadcrumbs and prompts/chat navigation
* refactor: dashboard breadcrumb and dashboard link to chat navigation
* refactor: Update VariableDialog and VariableForm styles
* Prompts: Admin features (#5)
* fix: link issue
* fix: usePromptGroupsNav add missing dep.
* style: dashbreadcrumb and sidepanel text color
* temp fix: remove refetch on pageNumber change
* fix: handle multiple variable replacement
* WIP: create project schema and add project groups to fetch
* feat: Add functionality to add prompt group IDs to a project
* feat: Add caching for startup config in config route
* chore: remove prompt landing
* style: Update Skeleton component with additional background styling
* chore: styling and types
* WIP: SharePrompt first draft
* feat(SharePrompt): form validation
* feat: shared global indicators
* refactor: prompt details
* refactor: change NoPromptGroup directory
* feat: preview prompt
* feat: remove/add global prompts, add rbac-related enums
* refactor: manage prompts location
* WIP: first draft admin settings for prompts
* feat: SystemRoles enum
* refactor: update PromptDetails component styling
* style: ellipsis custom class for showing more preview text
* WIP: initial role schema and initialization
* style: improved margins for single unordered lists
* fix: use custom chat form context to prevent re-renders from FormProvider
* feat: Role mutations for Prompt Permissions
* feat: fetch user role
* feat: update AdminSettings form default values from user role values
* refactor: rename PromptPermissions to Permissions for general definitions
* feat: initial role checks
* feat: Add optional `bodyProps` parameter to generateCheckAccess middleware
* refactor: UI access checks
* Prompts: delete (#6)
* Fixed delete prompt version API, fixed types and logic for prompt version deletion, updated prompt delete mutation logic
* chore: Update return type of deletePrompt function in Prompt.js
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* chore: Update package-lock.json version to 0.7.4-rc1 and fast-xml-parser to 4.4.0
* feat: toast for saving admin settings, add timer no-access navigation
* feat: always make prod
* feat: Add localization to category labels in CategorySelector component
* feat: Update category label localization in CategorySelector component
* fix: Enable making prompt production in Prompt API
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* feat: Add helper fn for dark mode detection in ThemeProvider
* style: surface-primary definition
* fix(useHasAccess): utilize user.role and not just USER role
* fix: empty category and role fetch
* refactort: increase max height to options list and use label if no localization is found
* fix: update CategorySelector to handle empty category value and improve localization
* refactor: move prompts to own store/reactquery modules, add in filter WIP
* refactor: Rename AutoSendSwitch to AutoSendPrompt
* style: theming commit
* style: fix slight coloring issue for convos in dark mode
* style: better composition for prompts side panel
* style: remove gray-750 and make it gray-850
* chore: adjust theming
* feat: filter all prompt groups and properly remove prompts from projects
* refactor: optimize delete prompt groups further
* chore: localization
* feat: Add uniqueProperty filtering to normalizeData function
* WIP: filter prompts
* chore: Update FilterPrompts component to include User icon in FilterItem
* feat(FilterPrompts): set categories
* feat: more system filters and show selected category icon
* style: always make prod, flips switch to avoid mis-clicks
* style: ui/ux loading/no prompts
* chore: style FilterPrompts ChatView
* fix: handle missing role edge case
* style: special variables
* feat: special variables
* refactor: improve replaceSpecialVars function in prompts.ts
* feat: simple/advanced editor modes
* chore: bump versions
* feat: localizations and hide production button on simple mode
* fix: error connecting layout shift
* fix: prompts CRUD for admins
* fix: secure single group fetch
* style: sidepanel styling
* style(PromptName): bring edit button closer to name
* style: mobile prompts header
* style: mobile prompts header continued
* style: align send prompts switch right
* feat: description
* Update special variables description in Eng.ts
* feat: update/create/preview oneliner
* fix: allow empty oneliner update
* style: loading improvement and always make selected prompt Production if simple mode
* fix: production index set and remove unused props
* fix(ci): mock initializeRoles
* fix: address #3128
* fix: address #3128
* feat: add deletion confirmation dialog
* fix: mobile UI issues
* style: prompt library UI update
* style: focus, logcal tab order
* style: Refactor SelectDropDown component to improve code readability and maintainability
* chore: bump data-provider
* chore: fix labels
* refactor: confirm delete prompt version
---------
Co-authored-by: Marco Beretta <81851188+berry-13@users.noreply.github.com>
2024-06-20 20:24:32 -04:00
com_ui_delete_confirm : 'Ini akan menghapus' ,
🚀feat: Archive conversations (#2590)
* 🔧chore: add internationalization labels for archive feature
* ✨ feat: Add function to useArchiveConversationMutation()
This commit adds a new mutation function `useArchiveConversationMutation()` for archiving conversations. This function takes the ID string of the conversation to be archived and returns a mutation result object. Upon successful archiving, it removes and refreshes the conversation from the query data cache.
While ChatGPT PATCHes the archived status by sending `{is_archived: true}` to the URL `/backend-api/conversation/$conversation_id`, this implementation uses the `dataService.updateConversation(payload)` with a POST method, aligning with the existing code conventions.
* ✨ feat(api): add is_archived field to Conversation schema and update getConvosByPage method
This commit adds a new field `is_archived` with a default value of false to the Conversation schema. It also modifies the `getConvosByPage` method within the Conversation API to adjust the query to only target conversations where `is_archived` is set to false or where the `is_archived` field does not exist. The function `getConvosQueried`, which returns conversations for a specified Conversation ID, was determined not to require consideration of whether `is_archived` is true or false, and thus was not modified.
* ♻️ refactor: add className prop to DotsIcon component
To enhance the versatility of the DotsIcon component, this commit introduces the ability to specify a className prop, allowing for greater customization.
* ✨ feat(ui): add Edit Button to group Title change and Conversation delete buttons
Added a new Edit Button to the conversations, similar to the ChatGPT UI, which groups options for editing the conversation title and deleting conversations. This grouping is accessible through a dialogue that appears when the three-dot icon is clicked.
* ♻️ refactor(ui): enhance Delete Button to accept className and label options
Enhanced the Delete Button component to accept a `className` for customization and an optional `appendLabel`. The DeleteButton component is used by both `Convo.tsx` and `Conversation.tsx`, but currently only `Convo.tsx` is active and `Conversation.tsx `is apparently not used; removing `Conversation.tsx` may eliminate the need for the `appendLabel` property in the future.
* ♻️ refactor(ui): enhance RenameButton to accept label options
Added the ability to optionally display labels; the Rename Button component is used by both `Convo.tsx` and `Conversation.tsx`, but currently only `Convo.tsx` is active and `Conversation.tsx `is apparently not used; removing `Conversation.tsx` may eliminate the need for the `appendLabel` property in the future.
* 🔧 chors: additional localization labels
* ♻️ refactor: change is_archived property of conversation to camelCase
* Refactor the is_archived property of conversation to camelCase (isArchived) to adhere to the existing code conventions
* Modify the function that retrieves conversations to accept the isArchived parameter
* ♻️ refactor: add archiveConversation mutation
I thought I could divert dataService.updateConversation, but added a new archiveConversation because the request types are different. It might be better to make them common, but to avoid side effects, I added a new function this time.
Added process to deleteConversationMutation to delete archived conversations
* ✨ feat: Add the function to hide a cancel button in DialogTemplate component
The Cancel button is not needed when displaying the archive list, so I made the Cancel button optional.
* ♻️ refactor: Add support for filtering archived conversations in Nav component
This commit modifies the Nav component to add the ability to filter out archived conversations when fetching data. This is done by adding `isArchived: false` to the query parameters for both the `useConversationsInfiniteQuery()` and `useSearchInfiniteQuery()` hooks, effectively excluding any archived conversations from the results returned.
* ♻️ refactor: add Tooltip to DeleteButton
* Add Tooltip to DeleteButton component
* Display Tooltip when DeleteButton only shows an Icon without text
* ✨ feat(ui): add ArchiveButton component for archiving conversations
To be compatible with the ChatGPT UI, no confirmation dialog is displayed when ArchiveButton is clicked. The basic behavior conforms to DeleteButton and RenameButton.
* ✨ feat(ui): add Archive button to list of conversations
Modify the Nav of the conversation list to include a dropdown that contains the Rename and Delete options, similar to the ChatGPT UI. Additionally, an Archive button has been added adjacent to the dropdown menu.
* ✨ feat: Add ArchivedChatsTable component
Adds the `ArchivedChatsTable` component, which displays a table of archived chats. It has been implemented to be as compatible with the ChatGPT UI as possible.
* 🚑 fix(tooltip): increase z-index to ensure visibility over Dialog
Resolve an issue where tooltips were not visible when displayed over a Dialog. The z-index of `DialogPrimitive.Portal` in `Dialog.tsx` is set to 999. Since the rationale for this value is unclear, the z-index of the tooltip has been increased to 1000 to guarantee its visibility above the Dialog component.
* 🔧 chors: add internationalization labels
2024-05-06 20:07:00 -07:00
com_ui_rename : 'Renombrar' ,
com_ui_archive : 'Arsip' ,
com_ui_archive_error : 'Gagal mengarsipkan percakapan' ,
com_ui_unarchive : 'Buka Arsip' ,
com_ui_unarchive_error : 'Gagal membuka arsip' ,
com_ui_more_options : 'Lebih' ,
2024-01-17 08:13:46 -05:00
com_ui_preview : 'Pratinjau' ,
com_ui_upload : 'Unggah' ,
com_ui_connect : 'Hubungkan' ,
2024-07-29 07:45:59 -07:00
com_ui_bookmarks : 'Penanda' ,
com_ui_bookmarks_rebuild : 'Bangun Kembali' ,
com_ui_bookmarks_new : 'Penanda Baru' ,
com_ui_bookmark_delete_confirm : 'Apakah Anda yakin ingin menghapus penanda ini?' ,
com_ui_bookmarks_title : 'Judul' ,
com_ui_bookmarks_count : 'Jumlah' ,
com_ui_bookmarks_description : 'Deskripsi' ,
com_ui_bookmarks_create_success : 'Penanda berhasil dibuat' ,
com_ui_bookmarks_update_success : 'Penanda berhasil diperbarui' ,
com_ui_bookmarks_delete_success : 'Penanda berhasil dihapus' ,
com_ui_bookmarks_create_error : 'Terjadi kesalahan saat membuat penanda' ,
com_ui_bookmarks_update_error : 'Terjadi kesalahan saat memperbarui penanda' ,
com_ui_bookmarks_delete_error : 'Terjadi kesalahan saat menghapus penanda' ,
com_ui_bookmarks_add_to_conversation : 'Tambahkan ke percakapan saat ini' ,
2024-01-17 08:13:46 -05:00
com_auth_error_login :
'Tidak dapat masuk dengan informasi yang diberikan. Silakan periksa kredensial Anda dan coba lagi.' ,
com_auth_error_login_rl :
'Terlalu banyak upaya masuk dalam waktu singkat. Silakan coba lagi nanti.' ,
com_auth_error_login_ban : 'Akun Anda telah dilarang sementara karena pelanggaran layanan kami.' ,
com_auth_error_login_server :
'Ada kesalahan server internal. Harap tunggu beberapa saat dan coba lagi.' ,
com_auth_no_account : 'Tidak memiliki akun?' ,
com_auth_sign_up : 'Daftar' ,
com_auth_sign_in : 'Masuk' ,
com_auth_google_login : 'Masuk dengan Google' ,
com_auth_facebook_login : 'Masuk dengan Facebook' ,
com_auth_github_login : 'Masuk dengan Github' ,
com_auth_discord_login : 'Masuk dengan Discord' ,
com_auth_email : 'Email' ,
com_auth_email_required : 'Email diperlukan' ,
com_auth_email_min_length : 'Email harus setidaknya 6 karakter' ,
com_auth_email_max_length : 'Email tidak boleh lebih dari 120 karakter' ,
com_auth_email_pattern : 'Anda harus memasukkan alamat email yang valid' ,
com_auth_email_address : 'Alamat email' ,
com_auth_password : 'Kata sandi' ,
com_auth_password_required : 'Kata sandi diperlukan' ,
com_auth_password_min_length : 'Kata sandi harus setidaknya 8 karakter' ,
com_auth_password_max_length : 'Kata sandi harus kurang dari 128 karakter' ,
com_auth_password_forgot : 'Lupa Kata Sandi?' ,
com_auth_password_confirm : 'Konfirmasi kata sandi' ,
com_auth_password_not_match : 'Kata sandi tidak cocok' ,
com_auth_continue : 'Lanjutkan' ,
com_auth_create_account : 'Buat akun Anda' ,
com_auth_error_create : 'Ada kesalahan saat mencoba mendaftarkan akun Anda. Silakan coba lagi.' ,
com_auth_full_name : 'Nama lengkap' ,
com_auth_name_required : 'Nama diperlukan' ,
com_auth_name_min_length : 'Nama harus setidaknya 3 karakter' ,
com_auth_name_max_length : 'Nama harus kurang dari 80 karakter' ,
com_auth_username : 'Nama pengguna (opsional)' ,
com_auth_username_required : 'Nama pengguna diperlukan' ,
com_auth_username_min_length : 'Nama pengguna harus setidaknya 2 karakter' ,
com_auth_username_max_length : 'Nama pengguna harus kurang dari 20 karakter' ,
com_auth_already_have_account : 'Sudah memiliki akun?' ,
com_auth_login : 'Masuk' ,
com_auth_reset_password : 'Atur ulang kata sandi Anda' ,
com_auth_click : 'Klik' ,
com_auth_here : 'DI SINI' ,
com_auth_to_reset_your_password : 'untuk mengatur ulang kata sandi Anda.' ,
com_auth_reset_password_link_sent : 'Email Terkirim' ,
com_auth_reset_password_email_sent :
'Email telah dikirim kepada Anda dengan instruksi lebih lanjut untuk mengatur ulang kata sandi Anda.' ,
com_auth_error_reset_password :
'Ada masalah saat mengatur ulang kata sandi Anda. Tidak ada pengguna yang ditemukan dengan alamat email yang diberikan. Silakan coba lagi.' ,
com_auth_reset_password_success : 'Berhasil Mengatur Ulang Kata Sandi' ,
com_auth_login_with_new_password : 'Anda sekarang dapat masuk dengan kata sandi baru Anda.' ,
com_auth_error_invalid_reset_token : 'Token pengaturan ulang kata sandi ini tidak lagi valid.' ,
com_auth_click_here : 'Klik di sini' ,
com_auth_to_try_again : 'untuk mencoba lagi.' ,
com_auth_submit_registration : 'Kirim pendaftaran' ,
com_auth_welcome_back : 'Selamat datang kembali' ,
com_endpoint_open_menu : 'Buka Menu' ,
com_endpoint_bing_enable_sydney : 'Aktifkan Sydney' ,
com_endpoint_bing_to_enable_sydney : 'Untuk mengaktifkan Sydney' ,
com_endpoint_bing_jailbreak : 'Jailbreak' ,
com_endpoint_bing_context_placeholder :
'Bing dapat menggunakan hingga 7k token untuk \'konteks\', yang dapat dirujuk untuk percakapan. Batas spesifik tidak diketahui tetapi mungkin menemui kesalahan melebihi 7k token' ,
com_endpoint_bing_system_message_placeholder :
'PERINGATAN: Penyalahgunaan fitur ini dapat membuat Anda DILARANG menggunakan Bing! Klik pada \'Pesan Sistem\' untuk instruksi lengkap dan pesan default jika diabaikan, yang merupakan preset \'Sydney\' yang dianggap aman.' ,
com_endpoint_system_message : 'Pesan Sistem' ,
com_endpoint_message : 'Pesan' ,
com_endpoint_message_not_appendable : 'Edit pesan Anda atau Regenerasi.' ,
com_endpoint_default_blank : 'default: kosong' ,
com_endpoint_default_false : 'default: salah' ,
com_endpoint_default_creative : 'default: kreatif' ,
com_endpoint_default_empty : 'default: kosong' ,
com_endpoint_default_with_num : 'default: {0}' ,
com_endpoint_context : 'Konteks' ,
com_endpoint_tone_style : 'Gaya Nada' ,
com_endpoint_token_count : 'Jumlah Token' ,
com_endpoint_output : 'Output' ,
com_endpoint_google_temp :
'Nilai yang lebih tinggi = lebih acak, sedangkan nilai yang lebih rendah = lebih fokus dan deterministik. Kami merekomendasikan untuk mengubah ini atau Top P tetapi tidak keduanya.' ,
com_endpoint_google_topp :
'Top-p mengubah cara model memilih token untuk output. Token dipilih dari yang paling mungkin (lihat parameter topK) hingga yang paling tidak mungkin sampai jumlah probabilitas mereka sama dengan nilai top-p.' ,
com_endpoint_google_topk :
'Top-k mengubah cara model memilih token untuk output. Top-k 1 berarti token yang dipilih adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding serakah), sedangkan top-k 3 berarti token berikutnya dipilih dari antara 3 token yang paling mungkin (menggunakan temperatur).' ,
com_endpoint_google_maxoutputtokens :
'Jumlah maksimum token yang dapat dihasilkan dalam respons. Tentukan nilai yang lebih rendah untuk respons yang lebih pendek dan nilai yang lebih tinggi untuk respons yang lebih panjang.' ,
com_endpoint_google_custom_name_placeholder : 'Tetapkan nama kustom untuk Google' ,
com_endpoint_prompt_prefix_placeholder :
'Tetapkan instruksi kustom atau konteks. Diabaikan jika kosong.' ,
com_endpoint_custom_name : 'Nama Kustom' ,
com_endpoint_prompt_prefix : 'Awalan Prompt' ,
com_endpoint_temperature : 'Temperatur' ,
com_endpoint_default : 'default' ,
com_endpoint_top_p : 'Top P' ,
com_endpoint_top_k : 'Top K' ,
com_endpoint_max_output_tokens : 'Token Output Maks' ,
com_endpoint_openai_temp :
'Nilai yang lebih tinggi = lebih acak, sedangkan nilai yang lebih rendah = lebih fokus dan deterministik. Kami merekomendasikan untuk mengubah ini atau Top P tetapi tidak keduanya.' ,
com_endpoint_openai_max :
'Token maksimum yang akan dihasilkan. Panjang total token masukan dan token yang dihasilkan dibatasi oleh panjang konteks model.' ,
com_endpoint_openai_topp :
'Sebuah alternatif untuk pengambilan sampel dengan suhu, disebut pengambilan sampel inti, di mana model mempertimbangkan hasil dari token dengan massa probabilitas top_p. Jadi 0,1 berarti hanya token yang mencakup 10% massa probabilitas teratas yang dipertimbangkan. Kami merekomendasikan untuk mengubah ini atau suhu tetapi tidak keduanya.' ,
com_endpoint_openai_freq :
'Angka antara -2,0 dan 2,0. Nilai positif menghukum token baru berdasarkan frekuensi mereka yang ada dalam teks sejauh ini, mengurangi kemungkinan model untuk mengulangi baris yang sama secara harfiah.' ,
com_endpoint_openai_pres :
'Angka antara -2,0 dan 2,0. Nilai positif menghukum token baru berdasarkan apakah mereka muncul dalam teks sejauh ini, meningkatkan kemungkinan model untuk berbicara tentang topik baru.' ,
com_endpoint_openai_resend :
'Kirim ulang semua gambar yang sebelumnya dilampirkan. Catatan: ini dapat meningkatkan biaya token secara signifikan dan Anda mungkin mengalami kesalahan dengan banyak lampiran gambar.' ,
com_endpoint_openai_detail :
'Resolusi untuk permintaan Vision. "Rendah" lebih murah dan lebih cepat, "Tinggi" lebih detail dan mahal, dan "Otomatis" akan secara otomatis memilih antara keduanya berdasarkan resolusi gambar.' ,
com_endpoint_openai_custom_name_placeholder : 'Tetapkan nama kustom untuk ChatGPT' ,
com_endpoint_openai_prompt_prefix_placeholder :
'Tetapkan instruksi kustom untuk dimasukkan dalam Pesan Sistem. Default: tidak ada' ,
com_endpoint_anthropic_temp :
'Berkisar dari 0 hingga 1. Gunakan temp yang lebih dekat ke 0 untuk analitis / pilihan ganda, dan lebih dekat ke 1 untuk tugas kreatif dan generatif. Kami merekomendasikan untuk mengubah ini atau Top P tetapi tidak keduanya.' ,
com_endpoint_anthropic_topp :
'Top-p mengubah cara model memilih token untuk output. Token dipilih dari yang paling mungkin (lihat parameter topK) hingga yang paling tidak mungkin sampai jumlah probabilitas mereka sama dengan nilai top-p.' ,
com_endpoint_anthropic_topk :
'Top-k mengubah cara model memilih token untuk output. Top-k 1 berarti token yang dipilih adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding serakah), sedangkan top-k 3 berarti token berikutnya dipilih dari antara 3 token yang paling mungkin (menggunakan suhu).' ,
com_endpoint_anthropic_maxoutputtokens :
'Jumlah maksimum token yang dapat dihasilkan dalam respons. Tentukan nilai yang lebih rendah untuk respons yang lebih pendek dan nilai yang lebih tinggi untuk respons yang lebih panjang.' ,
com_endpoint_anthropic_custom_name_placeholder : 'Tetapkan nama kustom untuk Anthropic' ,
com_endpoint_frequency_penalty : 'Penalti Frekuensi' ,
com_endpoint_presence_penalty : 'Penalti Kehadiran' ,
com_endpoint_plug_use_functions : 'Gunakan Fungsi' ,
com_endpoint_plug_resend_images : 'Kirim Ulang Gambar' ,
2024-01-21 03:22:25 +07:00
com_endpoint_plug_image_detail : 'Rincian Gambar' ,
2024-01-17 08:13:46 -05:00
com_endpoint_plug_skip_completion : 'Lewati Penyelesaian' ,
com_endpoint_disabled_with_tools : 'dinonaktifkan dengan alat' ,
com_endpoint_disabled_with_tools_placeholder : 'Dinonaktifkan dengan Alat yang Dipilih' ,
com_endpoint_plug_set_custom_instructions_for_gpt_placeholder :
'Tetapkan instruksi kustom untuk dimasukkan dalam Pesan Sistem. Default: tidak ada' ,
com_endpoint_import : 'Impor' ,
com_endpoint_set_custom_name : 'Tetapkan nama kustom, jika Anda dapat menemukan preset ini' ,
com_endpoint_preset_delete_confirm : 'Anda yakin ingin menghapus preset ini?' ,
com_endpoint_preset_clear_all_confirm : 'Anda yakin ingin menghapus semua preset Anda?' ,
com_endpoint_preset_import : 'Preset Diimpor!' ,
com_endpoint_preset_import_error : 'Ada kesalahan saat mengimpor preset Anda. Silakan coba lagi.' ,
com_endpoint_preset_save_error : 'Ada kesalahan saat menyimpan preset Anda. Silakan coba lagi.' ,
com_endpoint_preset_delete_error : 'Ada kesalahan saat menghapus preset Anda. Silakan coba lagi.' ,
com_endpoint_preset_default_removed : 'tidak lagi menjadi preset default.' ,
com_endpoint_preset_default_item : 'Default:' ,
com_endpoint_preset_default_none : 'Tidak ada preset default yang aktif.' ,
com_endpoint_preset_title : 'Preset' ,
com_endpoint_preset_saved : 'Tersimpan!' ,
com_endpoint_preset_default : 'sekarang menjadi preset default.' ,
com_endpoint_preset : 'preset' ,
com_endpoint_presets : 'presets' ,
com_endpoint_preset_selected : 'Preset Aktif!' ,
com_endpoint_preset_selected_title : 'Aktif!' ,
com_endpoint_preset_name : 'Nama Preset' ,
com_endpoint_new_topic : 'Topik Baru' ,
com_endpoint : 'Endpoint' ,
com_endpoint_hide : 'Sembunyikan' ,
com_endpoint_show : 'Tampilkan' ,
com_endpoint_examples : ' Preset' ,
com_endpoint_completion : 'Penyelesaian' ,
com_endpoint_agent : 'Agen' ,
com_endpoint_show_what_settings : 'Tampilkan {0} Pengaturan' ,
com_endpoint_save : 'Simpan' ,
com_endpoint_export : 'Ekspor' ,
com_endpoint_save_as_preset : 'Simpan Sebagai Preset' ,
com_endpoint_presets_clear_warning :
'Anda yakin ingin menghapus semua preset? Ini tidak dapat dibatalkan.' ,
com_endpoint_not_implemented : 'Belum diimplementasikan' ,
com_endpoint_no_presets : 'Belum ada preset, gunakan tombol pengaturan untuk membuat satu' ,
com_endpoint_not_available : 'Endpoint tidak tersedia' ,
com_endpoint_view_options : 'Lihat Opsi' ,
com_endpoint_save_convo_as_preset : 'Simpan Percakapan sebagai Preset' ,
com_endpoint_my_preset : 'Preset Saya' ,
com_endpoint_agent_model : 'Model Agen (Direkomendasikan: GPT-3.5)' ,
com_endpoint_completion_model : 'Model Penyelesaian (Direkomendasikan: GPT-4)' ,
com_endpoint_func_hover : 'Aktifkan penggunaan Plugin sebagai Fungsi OpenAI' ,
com_endpoint_skip_hover :
'Aktifkan langkah penyelesaian yang dilewati, yang meninjau jawaban akhir dan langkah yang dihasilkan' ,
com_endpoint_config_key : 'Atur Kunci API' ,
com_endpoint_config_placeholder : 'Atur Kunci Anda di menu Header untuk mengobrol.' ,
com_endpoint_config_key_for : 'Atur Kunci API untuk' ,
com_endpoint_config_key_name : 'Kunci' ,
com_endpoint_config_value : 'Masukkan nilai untuk' ,
com_endpoint_config_key_name_placeholder : 'Atur kunci API terlebih dahulu' ,
com_endpoint_config_key_encryption : 'Kunci Anda akan dienkripsi dan dihapus pada' ,
com_endpoint_config_key_expiry : 'waktu kedaluwarsa' ,
com_endpoint_config_click_here : 'Klik Di Sini' ,
com_endpoint_config_google_service_key : 'Kunci Akun Layanan Google' ,
com_endpoint_config_google_cloud_platform : '(dari Google Cloud Platform)' ,
com_endpoint_config_google_api_key : 'Kunci API Google' ,
com_endpoint_config_google_gemini_api : '(Gemini API)' ,
com_endpoint_config_google_api_info :
'Untuk mendapatkan kunci API Bahasa Generatif Anda (untuk Gemini),' ,
com_endpoint_config_key_import_json_key : 'Impor Kunci JSON Akun Layanan.' ,
com_endpoint_config_key_import_json_key_success : 'Berhasil Mengimpor Kunci JSON Akun Layanan' ,
com_endpoint_config_key_import_json_key_invalid :
'Kunci JSON Akun Layanan Tidak Valid, Apakah Anda mengimpor file yang benar?' ,
com_endpoint_config_key_get_edge_key : 'Untuk mendapatkan token akses Anda untuk Bing, masuk ke' ,
com_endpoint_config_key_get_edge_key_dev_tool :
'Gunakan alat pengembang atau ekstensi saat masuk ke situs untuk menyalin konten dari cookie _U. Jika ini gagal, ikuti ini' ,
com_endpoint_config_key_edge_instructions : 'instruksi' ,
com_endpoint_config_key_edge_full_key_string : 'untuk memberikan string cookie lengkap.' ,
com_endpoint_config_key_chatgpt :
'Untuk mendapatkan token akses Anda Untuk ChatGPT \'Versi Gratis\', masuk ke' ,
com_endpoint_config_key_chatgpt_then_visit : 'kemudian kunjungi' ,
com_endpoint_config_key_chatgpt_copy_token : 'Salin token akses.' ,
com_endpoint_config_key_google_need_to : 'Anda perlu' ,
com_endpoint_config_key_google_vertex_ai : 'Aktifkan Vertex AI' ,
com_endpoint_config_key_google_vertex_api : 'API di Google Cloud, kemudian' ,
com_endpoint_config_key_google_service_account : 'Buat Akun Layanan' ,
com_endpoint_config_key_google_vertex_api_role :
'Pastikan untuk mengklik \'Buat dan Lanjutkan\' untuk memberikan setidaknya peran \'Pengguna Vertex AI\'. Terakhir, buat kunci JSON untuk diimpor di sini.' ,
com_nav_welcome_message : 'Bagaimana saya bisa membantu Anda hari ini?' ,
com_nav_auto_scroll : 'Otomatis gulir ke Baru saat Buka' ,
com_nav_modular_chat : 'Aktifkan penggantian Endpoint di tengah percakapan' ,
2024-01-21 03:22:25 +07:00
com_nav_latex_parsing : 'Parsing LaTeX dalam pesan (dapat memengaruhi kinerja)' ,
2024-01-17 08:13:46 -05:00
com_nav_profile_picture : 'Foto Profil' ,
com_nav_change_picture : 'Ubah foto' ,
com_nav_plugin_store : 'Toko plugin' ,
2024-01-21 03:22:25 +07:00
com_show_agent_settings : 'Tampilkan Pengaturan Agen' ,
com_show_completion_settings : 'Tampilkan Pengaturan Penyelesaian' ,
com_hide_examples : 'Sembunyikan Contoh' ,
com_show_examples : 'Tampilkan Contoh' ,
2024-01-17 08:13:46 -05:00
com_nav_plugin_search : 'Cari plugin' ,
com_nav_plugin_auth_error :
'Ada kesalahan saat mencoba mengautentikasi plugin ini. Silakan coba lagi.' ,
com_nav_export_filename : 'Nama File' ,
com_nav_export_filename_placeholder : 'Atur nama file' ,
com_nav_export_type : 'Tipe' ,
com_nav_export_include_endpoint_options : 'Sertakan opsi endpoint' ,
com_nav_enabled : 'Diaktifkan' ,
com_nav_not_supported : 'Tidak Didukung' ,
com_nav_export_all_message_branches : 'Ekspor semua cabang pesan' ,
com_nav_export_recursive_or_sequential : 'Rekursif atau berurutan?' ,
com_nav_export_recursive : 'Rekursif' ,
com_nav_export_conversation : 'Ekspor percakapan' ,
🚀 feat: Shared Links (#2772)
* ✨ feat(types): add necessary types for shared link feature
* ✨ feat: add shared links functions to data service
Added functions for retrieving, creating, updating, and deleting shared links and shared messages.
* ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId
Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId.
* ✨ feat: Add share schema and data access functions to API models
* ✨ feat: Add share endpoint to API
The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication.
* ♻️ refactor(utils): generalize react-query cache manipulation functions
Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application.
- Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions.
- Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections.
- Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities.
* ✨ feat(shared-link): add functions to manipulate shared link cache list
implemented new utility functions to handle additions, updates, and deletions in the shared link cache list.
* ✨ feat: Add mutations and queries for shared links
* ✨ feat(shared-link): add `Share` button to conversation list
- Added a share button in each conversation in the conversation list.
- Implemented functionality where clicking the share button triggers a POST request to the API.
- The API checks if a share link was already created for the conversation today; if so, it returns the existing link.
- If no link was created for today, the API will create a new share link and return it.
- Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature.
* ♻️ refactor(hooks): generalize useNavScrolling for broader use
- Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`.
- Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`.
* ✨ feat(settings): add shared links listing table with delete functionality in settings
- Integrated a delete button for each shared link in the table, allowing users to remove links as needed.
* ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use
* ♻️ refactor: update useGetSharedMessages to return TSharedLink
- Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself.
- This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink.
* ✨ feat(shared link): add UI for displaying shared conversations without authentication
- Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication.
- Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context.
* 🔧 chore: Add translations
Translate labels only. Messages remain in English as they are possibly subject to change.
* ♻️ refactor: add icon and tooltip props to EditMenuButton component
* moved icon and popover to arguments so that EditMenuButton can be reused.
* modified so that when a ShareButton is closed, the parent DropdownMenu is also closed.
* ♻️irefactor: added DropdownMenu for Export and Share
* ♻️ refactor: renamed component names more intuitive
* More accurate naming of the dropdown menu.
* When the export button is closed, the parent dropdown menu is also closed.
* 🌍 chore: updated translations
* 🐞 Fix: OpenID Profile Image Download (#2757)
* Add fetch requirement
Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function
* Update openidStrategy.js
---------
Co-authored-by: Danny Avila <danacordially@gmail.com>
* 🚑 fix(export): Issue exporting Conversation with Assistants (#2769)
* 🚑 fix(export): use content as text if content is present in the message
If the endpoint is assistants, the text of the message goes into content, not message.text.
* refactor(ExportModel): TypeScript, remove unused code
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
* 📤style: export button icon (#2752)
* refactor(ShareDialog): logic and styling
* refactor(ExportAndShareMenu): imports order and icon update
* chore: imports
* chore: imports/render logic
* feat: message branching
* refactor: add optional config to useGetStartupConfig
* refactor: disable endpoints query
* chore: fix search view styling gradient in light mode
* style: ShareView gradient styling
* refactor(Share): use select queries
* style: shared link table buttons
* localization and dark text styling
* style: fix clipboard button layout shift app-wide and add localization for copy code
* support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages
* add localizations
* comparisons
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com>
Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
com_nav_export : 'Ekspor' ,
com_nav_shared_links : 'Link berbagi' ,
com_nav_shared_links_manage : 'Pengeluaran' ,
com_nav_shared_links_empty : 'Anda tidak memiliki link berbagi.' ,
com_nav_shared_links_name : 'Nama' ,
com_nav_shared_links_date_shared : 'Tanggal berbagi' ,
2024-01-17 08:13:46 -05:00
com_nav_theme : 'Tema' ,
com_nav_theme_system : 'Sistem' ,
com_nav_theme_dark : 'Gelap' ,
com_nav_theme_light : 'Terang' ,
2024-08-07 14:23:33 -04:00
com_nav_font_size : 'Ukuran huruf' ,
2024-01-21 03:22:25 +07:00
com_nav_user_name_display : 'Tampilkan nama pengguna dalam pesan' ,
2024-06-13 06:52:30 -07:00
com_nav_save_drafts : 'Simpan draft' ,
2024-01-17 08:13:46 -05:00
com_nav_clear_all_chats : 'Hapus semua obrolan' ,
com_nav_confirm_clear : 'Konfirmasi Hapus' ,
com_nav_close_sidebar : 'Tutup sidebar' ,
com_nav_open_sidebar : 'Buka sidebar' ,
com_nav_send_message : 'Kirim pesan' ,
com_nav_log_out : 'Keluar' ,
com_nav_user : 'PENGGUNA' ,
🚀feat: Archive conversations (#2590)
* 🔧chore: add internationalization labels for archive feature
* ✨ feat: Add function to useArchiveConversationMutation()
This commit adds a new mutation function `useArchiveConversationMutation()` for archiving conversations. This function takes the ID string of the conversation to be archived and returns a mutation result object. Upon successful archiving, it removes and refreshes the conversation from the query data cache.
While ChatGPT PATCHes the archived status by sending `{is_archived: true}` to the URL `/backend-api/conversation/$conversation_id`, this implementation uses the `dataService.updateConversation(payload)` with a POST method, aligning with the existing code conventions.
* ✨ feat(api): add is_archived field to Conversation schema and update getConvosByPage method
This commit adds a new field `is_archived` with a default value of false to the Conversation schema. It also modifies the `getConvosByPage` method within the Conversation API to adjust the query to only target conversations where `is_archived` is set to false or where the `is_archived` field does not exist. The function `getConvosQueried`, which returns conversations for a specified Conversation ID, was determined not to require consideration of whether `is_archived` is true or false, and thus was not modified.
* ♻️ refactor: add className prop to DotsIcon component
To enhance the versatility of the DotsIcon component, this commit introduces the ability to specify a className prop, allowing for greater customization.
* ✨ feat(ui): add Edit Button to group Title change and Conversation delete buttons
Added a new Edit Button to the conversations, similar to the ChatGPT UI, which groups options for editing the conversation title and deleting conversations. This grouping is accessible through a dialogue that appears when the three-dot icon is clicked.
* ♻️ refactor(ui): enhance Delete Button to accept className and label options
Enhanced the Delete Button component to accept a `className` for customization and an optional `appendLabel`. The DeleteButton component is used by both `Convo.tsx` and `Conversation.tsx`, but currently only `Convo.tsx` is active and `Conversation.tsx `is apparently not used; removing `Conversation.tsx` may eliminate the need for the `appendLabel` property in the future.
* ♻️ refactor(ui): enhance RenameButton to accept label options
Added the ability to optionally display labels; the Rename Button component is used by both `Convo.tsx` and `Conversation.tsx`, but currently only `Convo.tsx` is active and `Conversation.tsx `is apparently not used; removing `Conversation.tsx` may eliminate the need for the `appendLabel` property in the future.
* 🔧 chors: additional localization labels
* ♻️ refactor: change is_archived property of conversation to camelCase
* Refactor the is_archived property of conversation to camelCase (isArchived) to adhere to the existing code conventions
* Modify the function that retrieves conversations to accept the isArchived parameter
* ♻️ refactor: add archiveConversation mutation
I thought I could divert dataService.updateConversation, but added a new archiveConversation because the request types are different. It might be better to make them common, but to avoid side effects, I added a new function this time.
Added process to deleteConversationMutation to delete archived conversations
* ✨ feat: Add the function to hide a cancel button in DialogTemplate component
The Cancel button is not needed when displaying the archive list, so I made the Cancel button optional.
* ♻️ refactor: Add support for filtering archived conversations in Nav component
This commit modifies the Nav component to add the ability to filter out archived conversations when fetching data. This is done by adding `isArchived: false` to the query parameters for both the `useConversationsInfiniteQuery()` and `useSearchInfiniteQuery()` hooks, effectively excluding any archived conversations from the results returned.
* ♻️ refactor: add Tooltip to DeleteButton
* Add Tooltip to DeleteButton component
* Display Tooltip when DeleteButton only shows an Icon without text
* ✨ feat(ui): add ArchiveButton component for archiving conversations
To be compatible with the ChatGPT UI, no confirmation dialog is displayed when ArchiveButton is clicked. The basic behavior conforms to DeleteButton and RenameButton.
* ✨ feat(ui): add Archive button to list of conversations
Modify the Nav of the conversation list to include a dropdown that contains the Rename and Delete options, similar to the ChatGPT UI. Additionally, an Archive button has been added adjacent to the dropdown menu.
* ✨ feat: Add ArchivedChatsTable component
Adds the `ArchivedChatsTable` component, which displays a table of archived chats. It has been implemented to be as compatible with the ChatGPT UI as possible.
* 🚑 fix(tooltip): increase z-index to ensure visibility over Dialog
Resolve an issue where tooltips were not visible when displayed over a Dialog. The z-index of `DialogPrimitive.Portal` in `Dialog.tsx` is set to 999. Since the rationale for this value is unclear, the z-index of the tooltip has been increased to 1000 to guarantee its visibility above the Dialog component.
* 🔧 chors: add internationalization labels
2024-05-06 20:07:00 -07:00
com_nav_archived_chats : 'Percakapan Arsip' ,
com_nav_archived_chats_manage : 'Pengelolaan' ,
com_nav_archived_chats_empty : 'Tidak ada percakapan yang diarsipkan.' ,
com_nav_archive_all_chats : 'Arsipkan semua percakapan' ,
com_nav_archive_all : 'Arsipkan semua' ,
com_nav_archive_name : 'Nama' ,
com_nav_archive_created_at : 'TanggalDibuat' ,
2024-01-17 08:13:46 -05:00
com_nav_clear_conversation : 'Hapus percakapan' ,
com_nav_clear_conversation_confirm_message :
'Anda yakin ingin menghapus semua percakapan? Ini tidak dapat dibatalkan.' ,
com_nav_help_faq : 'Bantuan & FAQ' ,
com_nav_settings : 'Pengaturan' ,
com_nav_search_placeholder : 'Cari pesan' ,
2024-07-29 07:45:59 -07:00
com_nav_info_bookmarks_rebuild :
'Jika jumlah penanda tidak benar, silakan bangun kembali informasi penanda. Jumlah penanda akan dihitung ulang dan data akan dipulihkan ke keadaan yang benar.' ,
2024-01-17 08:13:46 -05:00
com_nav_setting_general : 'Umum' ,
2024-01-21 03:22:25 +07:00
com_nav_setting_beta : 'Fitur beta' ,
2024-01-17 08:13:46 -05:00
com_nav_setting_data : 'Kontrol data' ,
com_nav_setting_account : 'Akun' ,
com_nav_language : 'Bahasa' ,
com_nav_lang_auto : 'Deteksi otomatis' ,
com_nav_lang_english : 'English' ,
com_nav_lang_chinese : '中文' ,
com_nav_lang_german : 'Deutsch' ,
com_nav_lang_spanish : 'Español' ,
com_nav_lang_french : 'Français ' ,
com_nav_lang_italian : 'Italiano' ,
com_nav_lang_polish : 'Polski' ,
com_nav_lang_brazilian_portuguese : 'Português Brasileiro' ,
com_nav_lang_russian : 'Русский' ,
com_nav_lang_japanese : '日本語' ,
com_nav_lang_swedish : 'Svenska' ,
com_nav_lang_korean : '한국어' ,
com_nav_lang_vietnamese : 'Tiếng Việt' ,
com_nav_lang_traditionalchinese : '繁體中文' ,
com_nav_lang_arabic : 'العربية' ,
com_nav_lang_turkish : 'Türkçe' ,
com_nav_lang_dutch : 'Nederlands' ,
com_nav_lang_indonesia : 'Indonesia' ,
} ;
2024-05-10 15:56:25 -04:00
export const comparisons = {
com_ui_examples : {
english : 'Examples' ,
translated : 'Contoh' ,
} ,
com_ui_new_chat : {
english : 'New chat' ,
translated : 'Chat Baru' ,
} ,
com_ui_happy_birthday : {
english : 'It\'s my 1st birthday!' ,
translated : 'Ini ulang tahun pertamaku!' ,
} ,
com_ui_example_quantum_computing : {
english : 'Explain quantum computing in simple terms' ,
translated : 'Jelaskan komputasi kuantum dengan istilah yang sederhana' ,
} ,
com_ui_example_10_year_old_b_day : {
english : 'Got any creative ideas for a 10 year old\'s birthday?' ,
translated : 'Ada ide kreatif untuk ulang tahun anak 10 tahun?' ,
} ,
com_ui_example_http_in_js : {
english : 'How do I make an HTTP request in Javascript?' ,
translated : 'Bagaimana cara membuat permintaan HTTP dalam Javascript?' ,
} ,
com_ui_capabilities : {
english : 'Capabilities' ,
translated : 'Kemampuan' ,
} ,
com_ui_capability_remember : {
english : 'Remembers what user said earlier in the conversation' ,
translated : 'Mengingat apa yang pengguna katakan sebelumnya dalam percakapan' ,
} ,
com_ui_capability_correction : {
english : 'Allows user to provide follow-up corrections' ,
translated : 'Memungkinkan pengguna untuk memberikan koreksi tindak lanjut' ,
} ,
com_ui_capability_decline_requests : {
english : 'Trained to decline inappropriate requests' ,
translated : 'Dilatih untuk menolak permintaan yang tidak pantas' ,
} ,
com_ui_limitations : {
english : 'Limitations' ,
translated : 'Keterbatasan' ,
} ,
com_ui_limitation_incorrect_info : {
english : 'May occasionally generate incorrect information' ,
translated : 'Mungkin sesekali menghasilkan informasi yang salah' ,
} ,
com_ui_limitation_harmful_biased : {
english : 'May occasionally produce harmful instructions or biased content' ,
translated : 'Mungkin sesekali menghasilkan instruksi yang berbahaya atau konten yang bias' ,
} ,
com_ui_limitation_limited_2021 : {
english : 'Limited knowledge of world and events after 2021' ,
translated : 'Pengetahuan terbatas tentang dunia dan peristiwa setelah 2021' ,
} ,
com_ui_experimental : {
english : 'Experimental Features' ,
translated : 'Fitur Eksperimental' ,
} ,
com_ui_input : {
english : 'Input' ,
translated : 'Masukan' ,
} ,
com_ui_close : {
english : 'Close' ,
translated : 'Tutup' ,
} ,
com_ui_model : {
english : 'Model' ,
translated : 'Model' ,
} ,
com_ui_select_model : {
english : 'Select a model' ,
translated : 'Pilih model' ,
} ,
com_ui_use_prompt : {
english : 'Use prompt' ,
translated : 'Gunakan petunjuk' ,
} ,
com_ui_prev : {
english : 'Prev' ,
translated : 'Sebelumnya' ,
} ,
com_ui_next : {
english : 'Next' ,
translated : 'Berikutnya' ,
} ,
com_ui_stop : {
english : 'Stop' ,
translated : 'Berhenti' ,
} ,
com_ui_prompt_templates : {
english : 'Prompt Templates' ,
translated : 'Template Petunjuk' ,
} ,
com_ui_hide_prompt_templates : {
english : 'Hide Prompt Templates' ,
translated : 'Sembunyikan Template Petunjuk' ,
} ,
com_ui_showing : {
english : 'Showing' ,
translated : 'Menampilkan' ,
} ,
com_ui_of : {
english : 'of' ,
translated : 'dari' ,
} ,
com_ui_entries : {
english : 'Entries' ,
translated : 'Entri' ,
} ,
com_ui_pay_per_call : {
english : 'All AI conversations in one place. Pay per call and not per month' ,
translated : 'Semua percakapan AI di satu tempat. Bayar per panggilan dan bukan per bulan' ,
} ,
com_ui_new_footer : {
english : 'All AI conversations in one place.' ,
translated : 'Semua percakapan AI di satu tempat.' ,
} ,
com_ui_enter : {
english : 'Enter' ,
translated : 'Masuk' ,
} ,
com_ui_submit : {
english : 'Submit' ,
translated : 'Kirim' ,
} ,
com_ui_upload_success : {
english : 'Successfully uploaded file' ,
translated : 'Berhasil mengunggah file' ,
} ,
com_ui_upload_error : {
english : 'There was an error uploading your file' ,
translated : 'Ada kesalahan saat mengunggah file Anda' ,
} ,
com_ui_upload_invalid : {
english : 'Invalid file for upload. Must be an image not exceeding 2 MB' ,
translated : 'File tidak valid untuk diunggah. Harus berupa gambar yang tidak melebihi 2 MB' ,
} ,
com_ui_cancel : {
english : 'Cancel' ,
translated : 'Batal' ,
} ,
com_ui_save : {
english : 'Save' ,
translated : 'Simpan' ,
} ,
com_ui_save_submit : {
english : 'Save & Submit' ,
translated : 'Simpan & Kirim' ,
} ,
com_user_message : {
english : 'You' ,
translated : 'Kamu' ,
} ,
com_ui_copy_to_clipboard : {
english : 'Copy to clipboard' ,
translated : 'Salin ke papan klip' ,
} ,
com_ui_copied_to_clipboard : {
english : 'Copied to clipboard' ,
translated : 'Disalin ke papan klip' ,
} ,
com_ui_regenerate : {
english : 'Regenerate' ,
translated : 'Regenerasi' ,
} ,
com_ui_continue : {
english : 'Continue' ,
translated : 'Lanjutkan' ,
} ,
com_ui_edit : {
english : 'Edit' ,
translated : 'Edit' ,
} ,
com_ui_success : {
english : 'Success' ,
translated : 'Berhasil' ,
} ,
com_ui_all : {
english : 'all' ,
translated : 'semua' ,
} ,
com_ui_clear : {
english : 'Clear' ,
translated : 'Bersihkan' ,
} ,
com_ui_revoke : {
english : 'Revoke' ,
translated : 'Cabut' ,
} ,
com_ui_revoke_info : {
english : 'Revoke all user provided credentials' ,
translated : 'Cabut semua kredensial yang diberikan pengguna' ,
} ,
com_ui_import_conversation : {
english : 'Import' ,
translated : 'Impor' ,
} ,
com_ui_import_conversation_info : {
english : 'Import conversations from a JSON file' ,
translated : 'Impor percakapan dari file JSON' ,
} ,
com_ui_import_conversation_success : {
english : 'Conversations imported successfully' ,
translated : 'Percakapan berhasil diimpor' ,
} ,
com_ui_import_conversation_error : {
english : 'There was an error importing your conversations' ,
translated : 'Terjadi kesalahan saat mengimpor percakapan Anda' ,
} ,
com_ui_confirm_action : {
english : 'Confirm Action' ,
translated : 'Konfirmasi Aksi' ,
} ,
com_ui_chats : {
english : 'chats' ,
translated : 'chat' ,
} ,
🚀 feat: Shared Links (#2772)
* ✨ feat(types): add necessary types for shared link feature
* ✨ feat: add shared links functions to data service
Added functions for retrieving, creating, updating, and deleting shared links and shared messages.
* ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId
Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId.
* ✨ feat: Add share schema and data access functions to API models
* ✨ feat: Add share endpoint to API
The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication.
* ♻️ refactor(utils): generalize react-query cache manipulation functions
Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application.
- Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions.
- Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections.
- Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities.
* ✨ feat(shared-link): add functions to manipulate shared link cache list
implemented new utility functions to handle additions, updates, and deletions in the shared link cache list.
* ✨ feat: Add mutations and queries for shared links
* ✨ feat(shared-link): add `Share` button to conversation list
- Added a share button in each conversation in the conversation list.
- Implemented functionality where clicking the share button triggers a POST request to the API.
- The API checks if a share link was already created for the conversation today; if so, it returns the existing link.
- If no link was created for today, the API will create a new share link and return it.
- Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature.
* ♻️ refactor(hooks): generalize useNavScrolling for broader use
- Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`.
- Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`.
* ✨ feat(settings): add shared links listing table with delete functionality in settings
- Integrated a delete button for each shared link in the table, allowing users to remove links as needed.
* ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use
* ♻️ refactor: update useGetSharedMessages to return TSharedLink
- Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself.
- This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink.
* ✨ feat(shared link): add UI for displaying shared conversations without authentication
- Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication.
- Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context.
* 🔧 chore: Add translations
Translate labels only. Messages remain in English as they are possibly subject to change.
* ♻️ refactor: add icon and tooltip props to EditMenuButton component
* moved icon and popover to arguments so that EditMenuButton can be reused.
* modified so that when a ShareButton is closed, the parent DropdownMenu is also closed.
* ♻️irefactor: added DropdownMenu for Export and Share
* ♻️ refactor: renamed component names more intuitive
* More accurate naming of the dropdown menu.
* When the export button is closed, the parent dropdown menu is also closed.
* 🌍 chore: updated translations
* 🐞 Fix: OpenID Profile Image Download (#2757)
* Add fetch requirement
Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function
* Update openidStrategy.js
---------
Co-authored-by: Danny Avila <danacordially@gmail.com>
* 🚑 fix(export): Issue exporting Conversation with Assistants (#2769)
* 🚑 fix(export): use content as text if content is present in the message
If the endpoint is assistants, the text of the message goes into content, not message.text.
* refactor(ExportModel): TypeScript, remove unused code
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
* 📤style: export button icon (#2752)
* refactor(ShareDialog): logic and styling
* refactor(ExportAndShareMenu): imports order and icon update
* chore: imports
* chore: imports/render logic
* feat: message branching
* refactor: add optional config to useGetStartupConfig
* refactor: disable endpoints query
* chore: fix search view styling gradient in light mode
* style: ShareView gradient styling
* refactor(Share): use select queries
* style: shared link table buttons
* localization and dark text styling
* style: fix clipboard button layout shift app-wide and add localization for copy code
* support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages
* add localizations
* comparisons
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com>
Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
com_ui_share : {
english : 'Share' ,
2024-06-15 08:12:03 -07:00
translated : 'Bagikan' ,
} ,
com_ui_copy_link : {
english : 'Copy link' ,
translated : 'Salin tautan' ,
} ,
com_ui_update_link : {
english : 'Update link' ,
translated : 'Perbarui tautan' ,
} ,
com_ui_create_link : {
english : 'Create link' ,
translated : 'Buat tautan' ,
🚀 feat: Shared Links (#2772)
* ✨ feat(types): add necessary types for shared link feature
* ✨ feat: add shared links functions to data service
Added functions for retrieving, creating, updating, and deleting shared links and shared messages.
* ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId
Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId.
* ✨ feat: Add share schema and data access functions to API models
* ✨ feat: Add share endpoint to API
The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication.
* ♻️ refactor(utils): generalize react-query cache manipulation functions
Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application.
- Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions.
- Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections.
- Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities.
* ✨ feat(shared-link): add functions to manipulate shared link cache list
implemented new utility functions to handle additions, updates, and deletions in the shared link cache list.
* ✨ feat: Add mutations and queries for shared links
* ✨ feat(shared-link): add `Share` button to conversation list
- Added a share button in each conversation in the conversation list.
- Implemented functionality where clicking the share button triggers a POST request to the API.
- The API checks if a share link was already created for the conversation today; if so, it returns the existing link.
- If no link was created for today, the API will create a new share link and return it.
- Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature.
* ♻️ refactor(hooks): generalize useNavScrolling for broader use
- Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`.
- Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`.
* ✨ feat(settings): add shared links listing table with delete functionality in settings
- Integrated a delete button for each shared link in the table, allowing users to remove links as needed.
* ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use
* ♻️ refactor: update useGetSharedMessages to return TSharedLink
- Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself.
- This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink.
* ✨ feat(shared link): add UI for displaying shared conversations without authentication
- Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication.
- Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context.
* 🔧 chore: Add translations
Translate labels only. Messages remain in English as they are possibly subject to change.
* ♻️ refactor: add icon and tooltip props to EditMenuButton component
* moved icon and popover to arguments so that EditMenuButton can be reused.
* modified so that when a ShareButton is closed, the parent DropdownMenu is also closed.
* ♻️irefactor: added DropdownMenu for Export and Share
* ♻️ refactor: renamed component names more intuitive
* More accurate naming of the dropdown menu.
* When the export button is closed, the parent dropdown menu is also closed.
* 🌍 chore: updated translations
* 🐞 Fix: OpenID Profile Image Download (#2757)
* Add fetch requirement
Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function
* Update openidStrategy.js
---------
Co-authored-by: Danny Avila <danacordially@gmail.com>
* 🚑 fix(export): Issue exporting Conversation with Assistants (#2769)
* 🚑 fix(export): use content as text if content is present in the message
If the endpoint is assistants, the text of the message goes into content, not message.text.
* refactor(ExportModel): TypeScript, remove unused code
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
* 📤style: export button icon (#2752)
* refactor(ShareDialog): logic and styling
* refactor(ExportAndShareMenu): imports order and icon update
* chore: imports
* chore: imports/render logic
* feat: message branching
* refactor: add optional config to useGetStartupConfig
* refactor: disable endpoints query
* chore: fix search view styling gradient in light mode
* style: ShareView gradient styling
* refactor(Share): use select queries
* style: shared link table buttons
* localization and dark text styling
* style: fix clipboard button layout shift app-wide and add localization for copy code
* support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages
* add localizations
* comparisons
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com>
Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
} ,
com_ui_share_link_to_chat : {
english : 'Share link to chat' ,
2024-06-15 08:12:03 -07:00
translated : 'Bagikan tautan ke chat' ,
🚀 feat: Shared Links (#2772)
* ✨ feat(types): add necessary types for shared link feature
* ✨ feat: add shared links functions to data service
Added functions for retrieving, creating, updating, and deleting shared links and shared messages.
* ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId
Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId.
* ✨ feat: Add share schema and data access functions to API models
* ✨ feat: Add share endpoint to API
The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication.
* ♻️ refactor(utils): generalize react-query cache manipulation functions
Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application.
- Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions.
- Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections.
- Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities.
* ✨ feat(shared-link): add functions to manipulate shared link cache list
implemented new utility functions to handle additions, updates, and deletions in the shared link cache list.
* ✨ feat: Add mutations and queries for shared links
* ✨ feat(shared-link): add `Share` button to conversation list
- Added a share button in each conversation in the conversation list.
- Implemented functionality where clicking the share button triggers a POST request to the API.
- The API checks if a share link was already created for the conversation today; if so, it returns the existing link.
- If no link was created for today, the API will create a new share link and return it.
- Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature.
* ♻️ refactor(hooks): generalize useNavScrolling for broader use
- Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`.
- Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`.
* ✨ feat(settings): add shared links listing table with delete functionality in settings
- Integrated a delete button for each shared link in the table, allowing users to remove links as needed.
* ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use
* ♻️ refactor: update useGetSharedMessages to return TSharedLink
- Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself.
- This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink.
* ✨ feat(shared link): add UI for displaying shared conversations without authentication
- Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication.
- Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context.
* 🔧 chore: Add translations
Translate labels only. Messages remain in English as they are possibly subject to change.
* ♻️ refactor: add icon and tooltip props to EditMenuButton component
* moved icon and popover to arguments so that EditMenuButton can be reused.
* modified so that when a ShareButton is closed, the parent DropdownMenu is also closed.
* ♻️irefactor: added DropdownMenu for Export and Share
* ♻️ refactor: renamed component names more intuitive
* More accurate naming of the dropdown menu.
* When the export button is closed, the parent dropdown menu is also closed.
* 🌍 chore: updated translations
* 🐞 Fix: OpenID Profile Image Download (#2757)
* Add fetch requirement
Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function
* Update openidStrategy.js
---------
Co-authored-by: Danny Avila <danacordially@gmail.com>
* 🚑 fix(export): Issue exporting Conversation with Assistants (#2769)
* 🚑 fix(export): use content as text if content is present in the message
If the endpoint is assistants, the text of the message goes into content, not message.text.
* refactor(ExportModel): TypeScript, remove unused code
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
* 📤style: export button icon (#2752)
* refactor(ShareDialog): logic and styling
* refactor(ExportAndShareMenu): imports order and icon update
* chore: imports
* chore: imports/render logic
* feat: message branching
* refactor: add optional config to useGetStartupConfig
* refactor: disable endpoints query
* chore: fix search view styling gradient in light mode
* style: ShareView gradient styling
* refactor(Share): use select queries
* style: shared link table buttons
* localization and dark text styling
* style: fix clipboard button layout shift app-wide and add localization for copy code
* support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages
* add localizations
* comparisons
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com>
Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
} ,
2024-06-21 07:12:37 -07:00
com_ui_share_retrieve_error : {
english : 'There was an error deleting the shared link.' ,
translated : 'Terjadi kesalahan saat menghapus tautan yang dibagikan.' ,
} ,
com_ui_share_delete_error : {
english : 'There was an error deleting the shared link.' ,
translated : 'Terjadi kesalahan saat menghapus tautan yang dibagikan.' ,
} ,
🚀 feat: Shared Links (#2772)
* ✨ feat(types): add necessary types for shared link feature
* ✨ feat: add shared links functions to data service
Added functions for retrieving, creating, updating, and deleting shared links and shared messages.
* ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId
Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId.
* ✨ feat: Add share schema and data access functions to API models
* ✨ feat: Add share endpoint to API
The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication.
* ♻️ refactor(utils): generalize react-query cache manipulation functions
Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application.
- Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions.
- Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections.
- Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities.
* ✨ feat(shared-link): add functions to manipulate shared link cache list
implemented new utility functions to handle additions, updates, and deletions in the shared link cache list.
* ✨ feat: Add mutations and queries for shared links
* ✨ feat(shared-link): add `Share` button to conversation list
- Added a share button in each conversation in the conversation list.
- Implemented functionality where clicking the share button triggers a POST request to the API.
- The API checks if a share link was already created for the conversation today; if so, it returns the existing link.
- If no link was created for today, the API will create a new share link and return it.
- Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature.
* ♻️ refactor(hooks): generalize useNavScrolling for broader use
- Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`.
- Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`.
* ✨ feat(settings): add shared links listing table with delete functionality in settings
- Integrated a delete button for each shared link in the table, allowing users to remove links as needed.
* ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use
* ♻️ refactor: update useGetSharedMessages to return TSharedLink
- Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself.
- This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink.
* ✨ feat(shared link): add UI for displaying shared conversations without authentication
- Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication.
- Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context.
* 🔧 chore: Add translations
Translate labels only. Messages remain in English as they are possibly subject to change.
* ♻️ refactor: add icon and tooltip props to EditMenuButton component
* moved icon and popover to arguments so that EditMenuButton can be reused.
* modified so that when a ShareButton is closed, the parent DropdownMenu is also closed.
* ♻️irefactor: added DropdownMenu for Export and Share
* ♻️ refactor: renamed component names more intuitive
* More accurate naming of the dropdown menu.
* When the export button is closed, the parent dropdown menu is also closed.
* 🌍 chore: updated translations
* 🐞 Fix: OpenID Profile Image Download (#2757)
* Add fetch requirement
Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function
* Update openidStrategy.js
---------
Co-authored-by: Danny Avila <danacordially@gmail.com>
* 🚑 fix(export): Issue exporting Conversation with Assistants (#2769)
* 🚑 fix(export): use content as text if content is present in the message
If the endpoint is assistants, the text of the message goes into content, not message.text.
* refactor(ExportModel): TypeScript, remove unused code
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
* 📤style: export button icon (#2752)
* refactor(ShareDialog): logic and styling
* refactor(ExportAndShareMenu): imports order and icon update
* chore: imports
* chore: imports/render logic
* feat: message branching
* refactor: add optional config to useGetStartupConfig
* refactor: disable endpoints query
* chore: fix search view styling gradient in light mode
* style: ShareView gradient styling
* refactor(Share): use select queries
* style: shared link table buttons
* localization and dark text styling
* style: fix clipboard button layout shift app-wide and add localization for copy code
* support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages
* add localizations
* comparisons
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com>
Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
com_ui_share_error : {
english : 'There was an error sharing the chat link' ,
2024-06-15 08:12:03 -07:00
translated : 'Terjadi kesalahan saat membagikan tautan chat' ,
🚀 feat: Shared Links (#2772)
* ✨ feat(types): add necessary types for shared link feature
* ✨ feat: add shared links functions to data service
Added functions for retrieving, creating, updating, and deleting shared links and shared messages.
* ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId
Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId.
* ✨ feat: Add share schema and data access functions to API models
* ✨ feat: Add share endpoint to API
The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication.
* ♻️ refactor(utils): generalize react-query cache manipulation functions
Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application.
- Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions.
- Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections.
- Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities.
* ✨ feat(shared-link): add functions to manipulate shared link cache list
implemented new utility functions to handle additions, updates, and deletions in the shared link cache list.
* ✨ feat: Add mutations and queries for shared links
* ✨ feat(shared-link): add `Share` button to conversation list
- Added a share button in each conversation in the conversation list.
- Implemented functionality where clicking the share button triggers a POST request to the API.
- The API checks if a share link was already created for the conversation today; if so, it returns the existing link.
- If no link was created for today, the API will create a new share link and return it.
- Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature.
* ♻️ refactor(hooks): generalize useNavScrolling for broader use
- Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`.
- Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`.
* ✨ feat(settings): add shared links listing table with delete functionality in settings
- Integrated a delete button for each shared link in the table, allowing users to remove links as needed.
* ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use
* ♻️ refactor: update useGetSharedMessages to return TSharedLink
- Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself.
- This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink.
* ✨ feat(shared link): add UI for displaying shared conversations without authentication
- Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication.
- Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context.
* 🔧 chore: Add translations
Translate labels only. Messages remain in English as they are possibly subject to change.
* ♻️ refactor: add icon and tooltip props to EditMenuButton component
* moved icon and popover to arguments so that EditMenuButton can be reused.
* modified so that when a ShareButton is closed, the parent DropdownMenu is also closed.
* ♻️irefactor: added DropdownMenu for Export and Share
* ♻️ refactor: renamed component names more intuitive
* More accurate naming of the dropdown menu.
* When the export button is closed, the parent dropdown menu is also closed.
* 🌍 chore: updated translations
* 🐞 Fix: OpenID Profile Image Download (#2757)
* Add fetch requirement
Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function
* Update openidStrategy.js
---------
Co-authored-by: Danny Avila <danacordially@gmail.com>
* 🚑 fix(export): Issue exporting Conversation with Assistants (#2769)
* 🚑 fix(export): use content as text if content is present in the message
If the endpoint is assistants, the text of the message goes into content, not message.text.
* refactor(ExportModel): TypeScript, remove unused code
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
* 📤style: export button icon (#2752)
* refactor(ShareDialog): logic and styling
* refactor(ExportAndShareMenu): imports order and icon update
* chore: imports
* chore: imports/render logic
* feat: message branching
* refactor: add optional config to useGetStartupConfig
* refactor: disable endpoints query
* chore: fix search view styling gradient in light mode
* style: ShareView gradient styling
* refactor(Share): use select queries
* style: shared link table buttons
* localization and dark text styling
* style: fix clipboard button layout shift app-wide and add localization for copy code
* support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages
* add localizations
* comparisons
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com>
Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
} ,
com_ui_share_create_message : {
english : 'Your name and any messages you add after sharing stay private.' ,
2024-06-15 08:12:03 -07:00
translated : 'Nama Anda dan pesan apa pun yang Anda tambahkan setelah berbagi tetap pribadi.' ,
🚀 feat: Shared Links (#2772)
* ✨ feat(types): add necessary types for shared link feature
* ✨ feat: add shared links functions to data service
Added functions for retrieving, creating, updating, and deleting shared links and shared messages.
* ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId
Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId.
* ✨ feat: Add share schema and data access functions to API models
* ✨ feat: Add share endpoint to API
The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication.
* ♻️ refactor(utils): generalize react-query cache manipulation functions
Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application.
- Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions.
- Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections.
- Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities.
* ✨ feat(shared-link): add functions to manipulate shared link cache list
implemented new utility functions to handle additions, updates, and deletions in the shared link cache list.
* ✨ feat: Add mutations and queries for shared links
* ✨ feat(shared-link): add `Share` button to conversation list
- Added a share button in each conversation in the conversation list.
- Implemented functionality where clicking the share button triggers a POST request to the API.
- The API checks if a share link was already created for the conversation today; if so, it returns the existing link.
- If no link was created for today, the API will create a new share link and return it.
- Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature.
* ♻️ refactor(hooks): generalize useNavScrolling for broader use
- Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`.
- Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`.
* ✨ feat(settings): add shared links listing table with delete functionality in settings
- Integrated a delete button for each shared link in the table, allowing users to remove links as needed.
* ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use
* ♻️ refactor: update useGetSharedMessages to return TSharedLink
- Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself.
- This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink.
* ✨ feat(shared link): add UI for displaying shared conversations without authentication
- Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication.
- Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context.
* 🔧 chore: Add translations
Translate labels only. Messages remain in English as they are possibly subject to change.
* ♻️ refactor: add icon and tooltip props to EditMenuButton component
* moved icon and popover to arguments so that EditMenuButton can be reused.
* modified so that when a ShareButton is closed, the parent DropdownMenu is also closed.
* ♻️irefactor: added DropdownMenu for Export and Share
* ♻️ refactor: renamed component names more intuitive
* More accurate naming of the dropdown menu.
* When the export button is closed, the parent dropdown menu is also closed.
* 🌍 chore: updated translations
* 🐞 Fix: OpenID Profile Image Download (#2757)
* Add fetch requirement
Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function
* Update openidStrategy.js
---------
Co-authored-by: Danny Avila <danacordially@gmail.com>
* 🚑 fix(export): Issue exporting Conversation with Assistants (#2769)
* 🚑 fix(export): use content as text if content is present in the message
If the endpoint is assistants, the text of the message goes into content, not message.text.
* refactor(ExportModel): TypeScript, remove unused code
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
* 📤style: export button icon (#2752)
* refactor(ShareDialog): logic and styling
* refactor(ExportAndShareMenu): imports order and icon update
* chore: imports
* chore: imports/render logic
* feat: message branching
* refactor: add optional config to useGetStartupConfig
* refactor: disable endpoints query
* chore: fix search view styling gradient in light mode
* style: ShareView gradient styling
* refactor(Share): use select queries
* style: shared link table buttons
* localization and dark text styling
* style: fix clipboard button layout shift app-wide and add localization for copy code
* support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages
* add localizations
* comparisons
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com>
Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
} ,
com_ui_share_created_message : {
english :
2024-06-15 08:12:03 -07:00
'A shared link to your chat has been created. Manage previously shared chats at any time via Settings.' ,
🗨️ feat: Prompts (#3131)
* 🗨️ feat: Prompts (#7)
* WIP: MERGE prompts/frontend (#1)
* added schema for prompt and promptgroup, added model methods for prompts, added routes for prompts
* * updated promptGroup Schema
* updated model methods for prompts (get, add, delete)
* slight fixes in prompt routes
* * Created Files Management components
* Created Vector Stores components
* Added file management route in the routes folder
* Completed UI for Files list, Compeleted UI for vector stores list, Completed UI for upload file modal, Completed UI for preview file, Completed UI for preview vector store
* Fixed style and UI fixes for file dashboard, file list and vector stores list
* added responsiveness classes for vector store page
* fixed responsiveness of file page, dashboard page, and main page
* fixed styling and responsiveness issues on dashboard page, file list page and vector store page
* added queries and mutations for prompts and promptGroups, added relevant endpoints in data-provider, added relevant components prompts, added and updated relevant APIs
* added types on mutation queries data service, updated prompt attributes
* feature: Prompts and prompt groups management, added relevant APIs, added types for data service/queries/mutations, added relevant mutation and queries
* chore: typing clarifications
* added drop down on prompts mgmt dashboard
* Fixes: fixed version switching issue on tags update or labels update, added cross button on create prompt group, fixed list updation on prompt group renaiming, added CSV upload button
* Feature: Added oneliner and category attributes in prompt group, added schema for categories, added schema methods and route for categories
* chore: typing and lint issues
* chore: more type and linter fixes
* chore: linting
* chore: prompt controller and backend typing example; MOVE TO CONTROLLER DIRECTORY
* chore: more type fixes
* style: prompt name changes
* chore: more type changes, and stateful prompt name change without flickering
* fix: Return result of savePrompt in patchPrompt API endpoint
* fix: navigation prompt queries; refactor: name 'prompt-groups' to just 'groups'
* refactor: fetch prompt groups rewrite
* refactor(prompts): query/mutation statefulness
* refactor: remove `isActive` field
* refactor: remove labels, consolidate logic
* style: width, layout shift
* refactor: improve hover toggle behavior and styling
* refactor: add useParams hook to PromptListItem for dynamic rendering and add timeout ref for blur timeout
* chore: hide upload button
* refactor: import Button component from correct location in PromptSidePanel
* style: prompt editor styling
* style: fix more layout shifts
* style: container scroll
* refactor: Rename CreatePrompt component to CreatePromptForm
* refactor: use react-hook-form
* refactor: Add Prompts components and routes to Dashboard
* style: skeletons for loading
* fix: optimize makePromptProduction
* refactor: consolidate variables
* feat: create prompt form validation
* refactor: Consolidate variables and update mutation hooks
* style: minor touchups
* chore: Update lucide-react npm dependency to version 0.394.0 and npm audit fix
* refactor: add a new icon for the Prompts heading.
* style: Update PromptsView heading to use h1 instead of h2 and other minor margin issues
* chore: wording
* refactor: Update PromptsView heading to use h1 instead of h2, consolidate variables, and add new icons
* refactor: Prompts Button for Mobile
* feature: added category field in prompt group, added relevant API and static data on BE to support FE UI for category in prompt group
* chore: template for prompt cards
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* WIP: Prompts/frontend Continued (#2)
* chore: loading style, remove unused component
* feat: Add CategorySelector component for prompt group category selection
* feat: add categories to create prompt
* feat: prompt versions styling
* feat: optimistic updates for prompt production state
* refactor: optimize form state and show if prompt field is dirty with cross icon, also other styling changes
* chore: remove unused code and localizations
* fix: light mode styling
* WIP: SidePanel Prompts
* refactor: move to groups directory
* refactor: rename GroupsSidePanel to GroupSidePanel and update imports
* style: ListCard
* refactor: isProduction changes
* refactor: infinite query with productionPrompt
* refactor: optimize snippets and prompts, and styling
* refactor: Update getSnippet function to accept a length parameter
* chore: localizations
* feat: prompts navigation to chat and vice versa
* fix: create prompt
* feat: remember last selected category for creating prompts
* fix(promptGroups): fix pagination and add usePromptGroupsNav hook
* Prompts/frontend 3 (#3)
* fix: stateful issues with prompt groups
* style: improved layout
* refactor: improve variable naming in Eng.ts
* refactor: theme selector styling improvements
* added prompt cards on chat new page, with dark mode, added API to fetch random prompts, added types for useQuery
Slightly improved usePromptGroupNav logic to fetch updated result for pageSize, updated prompt cards view with darkmode and responsiveness
fixed page size option buttons styling to match the theme
added dark mode on create prompt page and prompt edit/preview page
fixed page size option buttons styling to match the theme
added dark mode on create prompt page and prompt edit/preview page
* WIP: Prompts/frontend (#4)
* fix: optimize and fix paginated query
* fix: remove unique constraint on names
* refactor: button links and styling
* style: menu border light mode
* feat: Add Auto-Send Switch component for prompts groups
* refactor(ChatView): use form context for submission text
* chore: clear convo state on navigation to dashboard routes
* chore: save prompt edit name on tab, remove console log
* feat: basic prompt submission
* refactor: move Auto-Send Switch
* style(ListCard): border styling
* feat: Add function to detect variables in text
* feat: Add OriginalDialog component to UI library
* chore(ui): Update SelectDropDown options list class to use text-xs size
* refactor: submitMessage hook now includes submitPrompt, make compatible to document query selector
* WIP: Variable Dialog
* feat: variable submission working for both auto-send and non-autosend
* feat: dashboard breadcrumbs and prompts/chat navigation
* refactor: dashboard breadcrumb and dashboard link to chat navigation
* refactor: Update VariableDialog and VariableForm styles
* Prompts: Admin features (#5)
* fix: link issue
* fix: usePromptGroupsNav add missing dep.
* style: dashbreadcrumb and sidepanel text color
* temp fix: remove refetch on pageNumber change
* fix: handle multiple variable replacement
* WIP: create project schema and add project groups to fetch
* feat: Add functionality to add prompt group IDs to a project
* feat: Add caching for startup config in config route
* chore: remove prompt landing
* style: Update Skeleton component with additional background styling
* chore: styling and types
* WIP: SharePrompt first draft
* feat(SharePrompt): form validation
* feat: shared global indicators
* refactor: prompt details
* refactor: change NoPromptGroup directory
* feat: preview prompt
* feat: remove/add global prompts, add rbac-related enums
* refactor: manage prompts location
* WIP: first draft admin settings for prompts
* feat: SystemRoles enum
* refactor: update PromptDetails component styling
* style: ellipsis custom class for showing more preview text
* WIP: initial role schema and initialization
* style: improved margins for single unordered lists
* fix: use custom chat form context to prevent re-renders from FormProvider
* feat: Role mutations for Prompt Permissions
* feat: fetch user role
* feat: update AdminSettings form default values from user role values
* refactor: rename PromptPermissions to Permissions for general definitions
* feat: initial role checks
* feat: Add optional `bodyProps` parameter to generateCheckAccess middleware
* refactor: UI access checks
* Prompts: delete (#6)
* Fixed delete prompt version API, fixed types and logic for prompt version deletion, updated prompt delete mutation logic
* chore: Update return type of deletePrompt function in Prompt.js
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* chore: Update package-lock.json version to 0.7.4-rc1 and fast-xml-parser to 4.4.0
* feat: toast for saving admin settings, add timer no-access navigation
* feat: always make prod
* feat: Add localization to category labels in CategorySelector component
* feat: Update category label localization in CategorySelector component
* fix: Enable making prompt production in Prompt API
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* feat: Add helper fn for dark mode detection in ThemeProvider
* style: surface-primary definition
* fix(useHasAccess): utilize user.role and not just USER role
* fix: empty category and role fetch
* refactort: increase max height to options list and use label if no localization is found
* fix: update CategorySelector to handle empty category value and improve localization
* refactor: move prompts to own store/reactquery modules, add in filter WIP
* refactor: Rename AutoSendSwitch to AutoSendPrompt
* style: theming commit
* style: fix slight coloring issue for convos in dark mode
* style: better composition for prompts side panel
* style: remove gray-750 and make it gray-850
* chore: adjust theming
* feat: filter all prompt groups and properly remove prompts from projects
* refactor: optimize delete prompt groups further
* chore: localization
* feat: Add uniqueProperty filtering to normalizeData function
* WIP: filter prompts
* chore: Update FilterPrompts component to include User icon in FilterItem
* feat(FilterPrompts): set categories
* feat: more system filters and show selected category icon
* style: always make prod, flips switch to avoid mis-clicks
* style: ui/ux loading/no prompts
* chore: style FilterPrompts ChatView
* fix: handle missing role edge case
* style: special variables
* feat: special variables
* refactor: improve replaceSpecialVars function in prompts.ts
* feat: simple/advanced editor modes
* chore: bump versions
* feat: localizations and hide production button on simple mode
* fix: error connecting layout shift
* fix: prompts CRUD for admins
* fix: secure single group fetch
* style: sidepanel styling
* style(PromptName): bring edit button closer to name
* style: mobile prompts header
* style: mobile prompts header continued
* style: align send prompts switch right
* feat: description
* Update special variables description in Eng.ts
* feat: update/create/preview oneliner
* fix: allow empty oneliner update
* style: loading improvement and always make selected prompt Production if simple mode
* fix: production index set and remove unused props
* fix(ci): mock initializeRoles
* fix: address #3128
* fix: address #3128
* feat: add deletion confirmation dialog
* fix: mobile UI issues
* style: prompt library UI update
* style: focus, logcal tab order
* style: Refactor SelectDropDown component to improve code readability and maintainability
* chore: bump data-provider
* chore: fix labels
* refactor: confirm delete prompt version
---------
Co-authored-by: Marco Beretta <81851188+berry-13@users.noreply.github.com>
2024-06-20 20:24:32 -04:00
translated :
'Tautan berbagi ke chat Anda telah dibuat. Kelola chat yang pernah dibagikan kapan saja melalui Pengaturan.' ,
🚀 feat: Shared Links (#2772)
* ✨ feat(types): add necessary types for shared link feature
* ✨ feat: add shared links functions to data service
Added functions for retrieving, creating, updating, and deleting shared links and shared messages.
* ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId
Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId.
* ✨ feat: Add share schema and data access functions to API models
* ✨ feat: Add share endpoint to API
The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication.
* ♻️ refactor(utils): generalize react-query cache manipulation functions
Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application.
- Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions.
- Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections.
- Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities.
* ✨ feat(shared-link): add functions to manipulate shared link cache list
implemented new utility functions to handle additions, updates, and deletions in the shared link cache list.
* ✨ feat: Add mutations and queries for shared links
* ✨ feat(shared-link): add `Share` button to conversation list
- Added a share button in each conversation in the conversation list.
- Implemented functionality where clicking the share button triggers a POST request to the API.
- The API checks if a share link was already created for the conversation today; if so, it returns the existing link.
- If no link was created for today, the API will create a new share link and return it.
- Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature.
* ♻️ refactor(hooks): generalize useNavScrolling for broader use
- Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`.
- Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`.
* ✨ feat(settings): add shared links listing table with delete functionality in settings
- Integrated a delete button for each shared link in the table, allowing users to remove links as needed.
* ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use
* ♻️ refactor: update useGetSharedMessages to return TSharedLink
- Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself.
- This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink.
* ✨ feat(shared link): add UI for displaying shared conversations without authentication
- Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication.
- Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context.
* 🔧 chore: Add translations
Translate labels only. Messages remain in English as they are possibly subject to change.
* ♻️ refactor: add icon and tooltip props to EditMenuButton component
* moved icon and popover to arguments so that EditMenuButton can be reused.
* modified so that when a ShareButton is closed, the parent DropdownMenu is also closed.
* ♻️irefactor: added DropdownMenu for Export and Share
* ♻️ refactor: renamed component names more intuitive
* More accurate naming of the dropdown menu.
* When the export button is closed, the parent dropdown menu is also closed.
* 🌍 chore: updated translations
* 🐞 Fix: OpenID Profile Image Download (#2757)
* Add fetch requirement
Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function
* Update openidStrategy.js
---------
Co-authored-by: Danny Avila <danacordially@gmail.com>
* 🚑 fix(export): Issue exporting Conversation with Assistants (#2769)
* 🚑 fix(export): use content as text if content is present in the message
If the endpoint is assistants, the text of the message goes into content, not message.text.
* refactor(ExportModel): TypeScript, remove unused code
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
* 📤style: export button icon (#2752)
* refactor(ShareDialog): logic and styling
* refactor(ExportAndShareMenu): imports order and icon update
* chore: imports
* chore: imports/render logic
* feat: message branching
* refactor: add optional config to useGetStartupConfig
* refactor: disable endpoints query
* chore: fix search view styling gradient in light mode
* style: ShareView gradient styling
* refactor(Share): use select queries
* style: shared link table buttons
* localization and dark text styling
* style: fix clipboard button layout shift app-wide and add localization for copy code
* support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages
* add localizations
* comparisons
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com>
Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
} ,
com_ui_share_update_message : {
english : 'Your name, custom instructions, and any messages you add after sharing stay private.' ,
🗨️ feat: Prompts (#3131)
* 🗨️ feat: Prompts (#7)
* WIP: MERGE prompts/frontend (#1)
* added schema for prompt and promptgroup, added model methods for prompts, added routes for prompts
* * updated promptGroup Schema
* updated model methods for prompts (get, add, delete)
* slight fixes in prompt routes
* * Created Files Management components
* Created Vector Stores components
* Added file management route in the routes folder
* Completed UI for Files list, Compeleted UI for vector stores list, Completed UI for upload file modal, Completed UI for preview file, Completed UI for preview vector store
* Fixed style and UI fixes for file dashboard, file list and vector stores list
* added responsiveness classes for vector store page
* fixed responsiveness of file page, dashboard page, and main page
* fixed styling and responsiveness issues on dashboard page, file list page and vector store page
* added queries and mutations for prompts and promptGroups, added relevant endpoints in data-provider, added relevant components prompts, added and updated relevant APIs
* added types on mutation queries data service, updated prompt attributes
* feature: Prompts and prompt groups management, added relevant APIs, added types for data service/queries/mutations, added relevant mutation and queries
* chore: typing clarifications
* added drop down on prompts mgmt dashboard
* Fixes: fixed version switching issue on tags update or labels update, added cross button on create prompt group, fixed list updation on prompt group renaiming, added CSV upload button
* Feature: Added oneliner and category attributes in prompt group, added schema for categories, added schema methods and route for categories
* chore: typing and lint issues
* chore: more type and linter fixes
* chore: linting
* chore: prompt controller and backend typing example; MOVE TO CONTROLLER DIRECTORY
* chore: more type fixes
* style: prompt name changes
* chore: more type changes, and stateful prompt name change without flickering
* fix: Return result of savePrompt in patchPrompt API endpoint
* fix: navigation prompt queries; refactor: name 'prompt-groups' to just 'groups'
* refactor: fetch prompt groups rewrite
* refactor(prompts): query/mutation statefulness
* refactor: remove `isActive` field
* refactor: remove labels, consolidate logic
* style: width, layout shift
* refactor: improve hover toggle behavior and styling
* refactor: add useParams hook to PromptListItem for dynamic rendering and add timeout ref for blur timeout
* chore: hide upload button
* refactor: import Button component from correct location in PromptSidePanel
* style: prompt editor styling
* style: fix more layout shifts
* style: container scroll
* refactor: Rename CreatePrompt component to CreatePromptForm
* refactor: use react-hook-form
* refactor: Add Prompts components and routes to Dashboard
* style: skeletons for loading
* fix: optimize makePromptProduction
* refactor: consolidate variables
* feat: create prompt form validation
* refactor: Consolidate variables and update mutation hooks
* style: minor touchups
* chore: Update lucide-react npm dependency to version 0.394.0 and npm audit fix
* refactor: add a new icon for the Prompts heading.
* style: Update PromptsView heading to use h1 instead of h2 and other minor margin issues
* chore: wording
* refactor: Update PromptsView heading to use h1 instead of h2, consolidate variables, and add new icons
* refactor: Prompts Button for Mobile
* feature: added category field in prompt group, added relevant API and static data on BE to support FE UI for category in prompt group
* chore: template for prompt cards
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* WIP: Prompts/frontend Continued (#2)
* chore: loading style, remove unused component
* feat: Add CategorySelector component for prompt group category selection
* feat: add categories to create prompt
* feat: prompt versions styling
* feat: optimistic updates for prompt production state
* refactor: optimize form state and show if prompt field is dirty with cross icon, also other styling changes
* chore: remove unused code and localizations
* fix: light mode styling
* WIP: SidePanel Prompts
* refactor: move to groups directory
* refactor: rename GroupsSidePanel to GroupSidePanel and update imports
* style: ListCard
* refactor: isProduction changes
* refactor: infinite query with productionPrompt
* refactor: optimize snippets and prompts, and styling
* refactor: Update getSnippet function to accept a length parameter
* chore: localizations
* feat: prompts navigation to chat and vice versa
* fix: create prompt
* feat: remember last selected category for creating prompts
* fix(promptGroups): fix pagination and add usePromptGroupsNav hook
* Prompts/frontend 3 (#3)
* fix: stateful issues with prompt groups
* style: improved layout
* refactor: improve variable naming in Eng.ts
* refactor: theme selector styling improvements
* added prompt cards on chat new page, with dark mode, added API to fetch random prompts, added types for useQuery
Slightly improved usePromptGroupNav logic to fetch updated result for pageSize, updated prompt cards view with darkmode and responsiveness
fixed page size option buttons styling to match the theme
added dark mode on create prompt page and prompt edit/preview page
fixed page size option buttons styling to match the theme
added dark mode on create prompt page and prompt edit/preview page
* WIP: Prompts/frontend (#4)
* fix: optimize and fix paginated query
* fix: remove unique constraint on names
* refactor: button links and styling
* style: menu border light mode
* feat: Add Auto-Send Switch component for prompts groups
* refactor(ChatView): use form context for submission text
* chore: clear convo state on navigation to dashboard routes
* chore: save prompt edit name on tab, remove console log
* feat: basic prompt submission
* refactor: move Auto-Send Switch
* style(ListCard): border styling
* feat: Add function to detect variables in text
* feat: Add OriginalDialog component to UI library
* chore(ui): Update SelectDropDown options list class to use text-xs size
* refactor: submitMessage hook now includes submitPrompt, make compatible to document query selector
* WIP: Variable Dialog
* feat: variable submission working for both auto-send and non-autosend
* feat: dashboard breadcrumbs and prompts/chat navigation
* refactor: dashboard breadcrumb and dashboard link to chat navigation
* refactor: Update VariableDialog and VariableForm styles
* Prompts: Admin features (#5)
* fix: link issue
* fix: usePromptGroupsNav add missing dep.
* style: dashbreadcrumb and sidepanel text color
* temp fix: remove refetch on pageNumber change
* fix: handle multiple variable replacement
* WIP: create project schema and add project groups to fetch
* feat: Add functionality to add prompt group IDs to a project
* feat: Add caching for startup config in config route
* chore: remove prompt landing
* style: Update Skeleton component with additional background styling
* chore: styling and types
* WIP: SharePrompt first draft
* feat(SharePrompt): form validation
* feat: shared global indicators
* refactor: prompt details
* refactor: change NoPromptGroup directory
* feat: preview prompt
* feat: remove/add global prompts, add rbac-related enums
* refactor: manage prompts location
* WIP: first draft admin settings for prompts
* feat: SystemRoles enum
* refactor: update PromptDetails component styling
* style: ellipsis custom class for showing more preview text
* WIP: initial role schema and initialization
* style: improved margins for single unordered lists
* fix: use custom chat form context to prevent re-renders from FormProvider
* feat: Role mutations for Prompt Permissions
* feat: fetch user role
* feat: update AdminSettings form default values from user role values
* refactor: rename PromptPermissions to Permissions for general definitions
* feat: initial role checks
* feat: Add optional `bodyProps` parameter to generateCheckAccess middleware
* refactor: UI access checks
* Prompts: delete (#6)
* Fixed delete prompt version API, fixed types and logic for prompt version deletion, updated prompt delete mutation logic
* chore: Update return type of deletePrompt function in Prompt.js
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* chore: Update package-lock.json version to 0.7.4-rc1 and fast-xml-parser to 4.4.0
* feat: toast for saving admin settings, add timer no-access navigation
* feat: always make prod
* feat: Add localization to category labels in CategorySelector component
* feat: Update category label localization in CategorySelector component
* fix: Enable making prompt production in Prompt API
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* feat: Add helper fn for dark mode detection in ThemeProvider
* style: surface-primary definition
* fix(useHasAccess): utilize user.role and not just USER role
* fix: empty category and role fetch
* refactort: increase max height to options list and use label if no localization is found
* fix: update CategorySelector to handle empty category value and improve localization
* refactor: move prompts to own store/reactquery modules, add in filter WIP
* refactor: Rename AutoSendSwitch to AutoSendPrompt
* style: theming commit
* style: fix slight coloring issue for convos in dark mode
* style: better composition for prompts side panel
* style: remove gray-750 and make it gray-850
* chore: adjust theming
* feat: filter all prompt groups and properly remove prompts from projects
* refactor: optimize delete prompt groups further
* chore: localization
* feat: Add uniqueProperty filtering to normalizeData function
* WIP: filter prompts
* chore: Update FilterPrompts component to include User icon in FilterItem
* feat(FilterPrompts): set categories
* feat: more system filters and show selected category icon
* style: always make prod, flips switch to avoid mis-clicks
* style: ui/ux loading/no prompts
* chore: style FilterPrompts ChatView
* fix: handle missing role edge case
* style: special variables
* feat: special variables
* refactor: improve replaceSpecialVars function in prompts.ts
* feat: simple/advanced editor modes
* chore: bump versions
* feat: localizations and hide production button on simple mode
* fix: error connecting layout shift
* fix: prompts CRUD for admins
* fix: secure single group fetch
* style: sidepanel styling
* style(PromptName): bring edit button closer to name
* style: mobile prompts header
* style: mobile prompts header continued
* style: align send prompts switch right
* feat: description
* Update special variables description in Eng.ts
* feat: update/create/preview oneliner
* fix: allow empty oneliner update
* style: loading improvement and always make selected prompt Production if simple mode
* fix: production index set and remove unused props
* fix(ci): mock initializeRoles
* fix: address #3128
* fix: address #3128
* feat: add deletion confirmation dialog
* fix: mobile UI issues
* style: prompt library UI update
* style: focus, logcal tab order
* style: Refactor SelectDropDown component to improve code readability and maintainability
* chore: bump data-provider
* chore: fix labels
* refactor: confirm delete prompt version
---------
Co-authored-by: Marco Beretta <81851188+berry-13@users.noreply.github.com>
2024-06-20 20:24:32 -04:00
translated :
'Nama Anda, petunjuk khusus, dan pesan apa pun yang Anda tambahkan setelah berbagi tetap pribadi.' ,
🚀 feat: Shared Links (#2772)
* ✨ feat(types): add necessary types for shared link feature
* ✨ feat: add shared links functions to data service
Added functions for retrieving, creating, updating, and deleting shared links and shared messages.
* ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId
Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId.
* ✨ feat: Add share schema and data access functions to API models
* ✨ feat: Add share endpoint to API
The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication.
* ♻️ refactor(utils): generalize react-query cache manipulation functions
Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application.
- Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions.
- Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections.
- Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities.
* ✨ feat(shared-link): add functions to manipulate shared link cache list
implemented new utility functions to handle additions, updates, and deletions in the shared link cache list.
* ✨ feat: Add mutations and queries for shared links
* ✨ feat(shared-link): add `Share` button to conversation list
- Added a share button in each conversation in the conversation list.
- Implemented functionality where clicking the share button triggers a POST request to the API.
- The API checks if a share link was already created for the conversation today; if so, it returns the existing link.
- If no link was created for today, the API will create a new share link and return it.
- Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature.
* ♻️ refactor(hooks): generalize useNavScrolling for broader use
- Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`.
- Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`.
* ✨ feat(settings): add shared links listing table with delete functionality in settings
- Integrated a delete button for each shared link in the table, allowing users to remove links as needed.
* ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use
* ♻️ refactor: update useGetSharedMessages to return TSharedLink
- Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself.
- This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink.
* ✨ feat(shared link): add UI for displaying shared conversations without authentication
- Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication.
- Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context.
* 🔧 chore: Add translations
Translate labels only. Messages remain in English as they are possibly subject to change.
* ♻️ refactor: add icon and tooltip props to EditMenuButton component
* moved icon and popover to arguments so that EditMenuButton can be reused.
* modified so that when a ShareButton is closed, the parent DropdownMenu is also closed.
* ♻️irefactor: added DropdownMenu for Export and Share
* ♻️ refactor: renamed component names more intuitive
* More accurate naming of the dropdown menu.
* When the export button is closed, the parent dropdown menu is also closed.
* 🌍 chore: updated translations
* 🐞 Fix: OpenID Profile Image Download (#2757)
* Add fetch requirement
Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function
* Update openidStrategy.js
---------
Co-authored-by: Danny Avila <danacordially@gmail.com>
* 🚑 fix(export): Issue exporting Conversation with Assistants (#2769)
* 🚑 fix(export): use content as text if content is present in the message
If the endpoint is assistants, the text of the message goes into content, not message.text.
* refactor(ExportModel): TypeScript, remove unused code
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
* 📤style: export button icon (#2752)
* refactor(ShareDialog): logic and styling
* refactor(ExportAndShareMenu): imports order and icon update
* chore: imports
* chore: imports/render logic
* feat: message branching
* refactor: add optional config to useGetStartupConfig
* refactor: disable endpoints query
* chore: fix search view styling gradient in light mode
* style: ShareView gradient styling
* refactor(Share): use select queries
* style: shared link table buttons
* localization and dark text styling
* style: fix clipboard button layout shift app-wide and add localization for copy code
* support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages
* add localizations
* comparisons
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com>
Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
} ,
com_ui_share_updated_message : {
english :
2024-06-15 08:12:03 -07:00
'A shared link to your chat has been updated. Manage previously shared chats at any time via Settings.' ,
🗨️ feat: Prompts (#3131)
* 🗨️ feat: Prompts (#7)
* WIP: MERGE prompts/frontend (#1)
* added schema for prompt and promptgroup, added model methods for prompts, added routes for prompts
* * updated promptGroup Schema
* updated model methods for prompts (get, add, delete)
* slight fixes in prompt routes
* * Created Files Management components
* Created Vector Stores components
* Added file management route in the routes folder
* Completed UI for Files list, Compeleted UI for vector stores list, Completed UI for upload file modal, Completed UI for preview file, Completed UI for preview vector store
* Fixed style and UI fixes for file dashboard, file list and vector stores list
* added responsiveness classes for vector store page
* fixed responsiveness of file page, dashboard page, and main page
* fixed styling and responsiveness issues on dashboard page, file list page and vector store page
* added queries and mutations for prompts and promptGroups, added relevant endpoints in data-provider, added relevant components prompts, added and updated relevant APIs
* added types on mutation queries data service, updated prompt attributes
* feature: Prompts and prompt groups management, added relevant APIs, added types for data service/queries/mutations, added relevant mutation and queries
* chore: typing clarifications
* added drop down on prompts mgmt dashboard
* Fixes: fixed version switching issue on tags update or labels update, added cross button on create prompt group, fixed list updation on prompt group renaiming, added CSV upload button
* Feature: Added oneliner and category attributes in prompt group, added schema for categories, added schema methods and route for categories
* chore: typing and lint issues
* chore: more type and linter fixes
* chore: linting
* chore: prompt controller and backend typing example; MOVE TO CONTROLLER DIRECTORY
* chore: more type fixes
* style: prompt name changes
* chore: more type changes, and stateful prompt name change without flickering
* fix: Return result of savePrompt in patchPrompt API endpoint
* fix: navigation prompt queries; refactor: name 'prompt-groups' to just 'groups'
* refactor: fetch prompt groups rewrite
* refactor(prompts): query/mutation statefulness
* refactor: remove `isActive` field
* refactor: remove labels, consolidate logic
* style: width, layout shift
* refactor: improve hover toggle behavior and styling
* refactor: add useParams hook to PromptListItem for dynamic rendering and add timeout ref for blur timeout
* chore: hide upload button
* refactor: import Button component from correct location in PromptSidePanel
* style: prompt editor styling
* style: fix more layout shifts
* style: container scroll
* refactor: Rename CreatePrompt component to CreatePromptForm
* refactor: use react-hook-form
* refactor: Add Prompts components and routes to Dashboard
* style: skeletons for loading
* fix: optimize makePromptProduction
* refactor: consolidate variables
* feat: create prompt form validation
* refactor: Consolidate variables and update mutation hooks
* style: minor touchups
* chore: Update lucide-react npm dependency to version 0.394.0 and npm audit fix
* refactor: add a new icon for the Prompts heading.
* style: Update PromptsView heading to use h1 instead of h2 and other minor margin issues
* chore: wording
* refactor: Update PromptsView heading to use h1 instead of h2, consolidate variables, and add new icons
* refactor: Prompts Button for Mobile
* feature: added category field in prompt group, added relevant API and static data on BE to support FE UI for category in prompt group
* chore: template for prompt cards
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* WIP: Prompts/frontend Continued (#2)
* chore: loading style, remove unused component
* feat: Add CategorySelector component for prompt group category selection
* feat: add categories to create prompt
* feat: prompt versions styling
* feat: optimistic updates for prompt production state
* refactor: optimize form state and show if prompt field is dirty with cross icon, also other styling changes
* chore: remove unused code and localizations
* fix: light mode styling
* WIP: SidePanel Prompts
* refactor: move to groups directory
* refactor: rename GroupsSidePanel to GroupSidePanel and update imports
* style: ListCard
* refactor: isProduction changes
* refactor: infinite query with productionPrompt
* refactor: optimize snippets and prompts, and styling
* refactor: Update getSnippet function to accept a length parameter
* chore: localizations
* feat: prompts navigation to chat and vice versa
* fix: create prompt
* feat: remember last selected category for creating prompts
* fix(promptGroups): fix pagination and add usePromptGroupsNav hook
* Prompts/frontend 3 (#3)
* fix: stateful issues with prompt groups
* style: improved layout
* refactor: improve variable naming in Eng.ts
* refactor: theme selector styling improvements
* added prompt cards on chat new page, with dark mode, added API to fetch random prompts, added types for useQuery
Slightly improved usePromptGroupNav logic to fetch updated result for pageSize, updated prompt cards view with darkmode and responsiveness
fixed page size option buttons styling to match the theme
added dark mode on create prompt page and prompt edit/preview page
fixed page size option buttons styling to match the theme
added dark mode on create prompt page and prompt edit/preview page
* WIP: Prompts/frontend (#4)
* fix: optimize and fix paginated query
* fix: remove unique constraint on names
* refactor: button links and styling
* style: menu border light mode
* feat: Add Auto-Send Switch component for prompts groups
* refactor(ChatView): use form context for submission text
* chore: clear convo state on navigation to dashboard routes
* chore: save prompt edit name on tab, remove console log
* feat: basic prompt submission
* refactor: move Auto-Send Switch
* style(ListCard): border styling
* feat: Add function to detect variables in text
* feat: Add OriginalDialog component to UI library
* chore(ui): Update SelectDropDown options list class to use text-xs size
* refactor: submitMessage hook now includes submitPrompt, make compatible to document query selector
* WIP: Variable Dialog
* feat: variable submission working for both auto-send and non-autosend
* feat: dashboard breadcrumbs and prompts/chat navigation
* refactor: dashboard breadcrumb and dashboard link to chat navigation
* refactor: Update VariableDialog and VariableForm styles
* Prompts: Admin features (#5)
* fix: link issue
* fix: usePromptGroupsNav add missing dep.
* style: dashbreadcrumb and sidepanel text color
* temp fix: remove refetch on pageNumber change
* fix: handle multiple variable replacement
* WIP: create project schema and add project groups to fetch
* feat: Add functionality to add prompt group IDs to a project
* feat: Add caching for startup config in config route
* chore: remove prompt landing
* style: Update Skeleton component with additional background styling
* chore: styling and types
* WIP: SharePrompt first draft
* feat(SharePrompt): form validation
* feat: shared global indicators
* refactor: prompt details
* refactor: change NoPromptGroup directory
* feat: preview prompt
* feat: remove/add global prompts, add rbac-related enums
* refactor: manage prompts location
* WIP: first draft admin settings for prompts
* feat: SystemRoles enum
* refactor: update PromptDetails component styling
* style: ellipsis custom class for showing more preview text
* WIP: initial role schema and initialization
* style: improved margins for single unordered lists
* fix: use custom chat form context to prevent re-renders from FormProvider
* feat: Role mutations for Prompt Permissions
* feat: fetch user role
* feat: update AdminSettings form default values from user role values
* refactor: rename PromptPermissions to Permissions for general definitions
* feat: initial role checks
* feat: Add optional `bodyProps` parameter to generateCheckAccess middleware
* refactor: UI access checks
* Prompts: delete (#6)
* Fixed delete prompt version API, fixed types and logic for prompt version deletion, updated prompt delete mutation logic
* chore: Update return type of deletePrompt function in Prompt.js
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* chore: Update package-lock.json version to 0.7.4-rc1 and fast-xml-parser to 4.4.0
* feat: toast for saving admin settings, add timer no-access navigation
* feat: always make prod
* feat: Add localization to category labels in CategorySelector component
* feat: Update category label localization in CategorySelector component
* fix: Enable making prompt production in Prompt API
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* feat: Add helper fn for dark mode detection in ThemeProvider
* style: surface-primary definition
* fix(useHasAccess): utilize user.role and not just USER role
* fix: empty category and role fetch
* refactort: increase max height to options list and use label if no localization is found
* fix: update CategorySelector to handle empty category value and improve localization
* refactor: move prompts to own store/reactquery modules, add in filter WIP
* refactor: Rename AutoSendSwitch to AutoSendPrompt
* style: theming commit
* style: fix slight coloring issue for convos in dark mode
* style: better composition for prompts side panel
* style: remove gray-750 and make it gray-850
* chore: adjust theming
* feat: filter all prompt groups and properly remove prompts from projects
* refactor: optimize delete prompt groups further
* chore: localization
* feat: Add uniqueProperty filtering to normalizeData function
* WIP: filter prompts
* chore: Update FilterPrompts component to include User icon in FilterItem
* feat(FilterPrompts): set categories
* feat: more system filters and show selected category icon
* style: always make prod, flips switch to avoid mis-clicks
* style: ui/ux loading/no prompts
* chore: style FilterPrompts ChatView
* fix: handle missing role edge case
* style: special variables
* feat: special variables
* refactor: improve replaceSpecialVars function in prompts.ts
* feat: simple/advanced editor modes
* chore: bump versions
* feat: localizations and hide production button on simple mode
* fix: error connecting layout shift
* fix: prompts CRUD for admins
* fix: secure single group fetch
* style: sidepanel styling
* style(PromptName): bring edit button closer to name
* style: mobile prompts header
* style: mobile prompts header continued
* style: align send prompts switch right
* feat: description
* Update special variables description in Eng.ts
* feat: update/create/preview oneliner
* fix: allow empty oneliner update
* style: loading improvement and always make selected prompt Production if simple mode
* fix: production index set and remove unused props
* fix(ci): mock initializeRoles
* fix: address #3128
* fix: address #3128
* feat: add deletion confirmation dialog
* fix: mobile UI issues
* style: prompt library UI update
* style: focus, logcal tab order
* style: Refactor SelectDropDown component to improve code readability and maintainability
* chore: bump data-provider
* chore: fix labels
* refactor: confirm delete prompt version
---------
Co-authored-by: Marco Beretta <81851188+berry-13@users.noreply.github.com>
2024-06-20 20:24:32 -04:00
translated :
'Tautan berbagi ke chat Anda telah diperbarui. Kelola chat yang pernah dibagikan kapan saja melalui Pengaturan.' ,
🚀 feat: Shared Links (#2772)
* ✨ feat(types): add necessary types for shared link feature
* ✨ feat: add shared links functions to data service
Added functions for retrieving, creating, updating, and deleting shared links and shared messages.
* ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId
Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId.
* ✨ feat: Add share schema and data access functions to API models
* ✨ feat: Add share endpoint to API
The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication.
* ♻️ refactor(utils): generalize react-query cache manipulation functions
Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application.
- Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions.
- Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections.
- Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities.
* ✨ feat(shared-link): add functions to manipulate shared link cache list
implemented new utility functions to handle additions, updates, and deletions in the shared link cache list.
* ✨ feat: Add mutations and queries for shared links
* ✨ feat(shared-link): add `Share` button to conversation list
- Added a share button in each conversation in the conversation list.
- Implemented functionality where clicking the share button triggers a POST request to the API.
- The API checks if a share link was already created for the conversation today; if so, it returns the existing link.
- If no link was created for today, the API will create a new share link and return it.
- Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature.
* ♻️ refactor(hooks): generalize useNavScrolling for broader use
- Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`.
- Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`.
* ✨ feat(settings): add shared links listing table with delete functionality in settings
- Integrated a delete button for each shared link in the table, allowing users to remove links as needed.
* ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use
* ♻️ refactor: update useGetSharedMessages to return TSharedLink
- Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself.
- This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink.
* ✨ feat(shared link): add UI for displaying shared conversations without authentication
- Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication.
- Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context.
* 🔧 chore: Add translations
Translate labels only. Messages remain in English as they are possibly subject to change.
* ♻️ refactor: add icon and tooltip props to EditMenuButton component
* moved icon and popover to arguments so that EditMenuButton can be reused.
* modified so that when a ShareButton is closed, the parent DropdownMenu is also closed.
* ♻️irefactor: added DropdownMenu for Export and Share
* ♻️ refactor: renamed component names more intuitive
* More accurate naming of the dropdown menu.
* When the export button is closed, the parent dropdown menu is also closed.
* 🌍 chore: updated translations
* 🐞 Fix: OpenID Profile Image Download (#2757)
* Add fetch requirement
Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function
* Update openidStrategy.js
---------
Co-authored-by: Danny Avila <danacordially@gmail.com>
* 🚑 fix(export): Issue exporting Conversation with Assistants (#2769)
* 🚑 fix(export): use content as text if content is present in the message
If the endpoint is assistants, the text of the message goes into content, not message.text.
* refactor(ExportModel): TypeScript, remove unused code
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
* 📤style: export button icon (#2752)
* refactor(ShareDialog): logic and styling
* refactor(ExportAndShareMenu): imports order and icon update
* chore: imports
* chore: imports/render logic
* feat: message branching
* refactor: add optional config to useGetStartupConfig
* refactor: disable endpoints query
* chore: fix search view styling gradient in light mode
* style: ShareView gradient styling
* refactor(Share): use select queries
* style: shared link table buttons
* localization and dark text styling
* style: fix clipboard button layout shift app-wide and add localization for copy code
* support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages
* add localizations
* comparisons
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com>
Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
} ,
com_ui_shared_link_not_found : {
english : 'Shared link not found' ,
2024-06-15 08:12:03 -07:00
translated : 'Tautan berbagi tidak ditemukan' ,
🚀 feat: Shared Links (#2772)
* ✨ feat(types): add necessary types for shared link feature
* ✨ feat: add shared links functions to data service
Added functions for retrieving, creating, updating, and deleting shared links and shared messages.
* ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId
Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId.
* ✨ feat: Add share schema and data access functions to API models
* ✨ feat: Add share endpoint to API
The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication.
* ♻️ refactor(utils): generalize react-query cache manipulation functions
Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application.
- Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions.
- Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections.
- Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities.
* ✨ feat(shared-link): add functions to manipulate shared link cache list
implemented new utility functions to handle additions, updates, and deletions in the shared link cache list.
* ✨ feat: Add mutations and queries for shared links
* ✨ feat(shared-link): add `Share` button to conversation list
- Added a share button in each conversation in the conversation list.
- Implemented functionality where clicking the share button triggers a POST request to the API.
- The API checks if a share link was already created for the conversation today; if so, it returns the existing link.
- If no link was created for today, the API will create a new share link and return it.
- Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature.
* ♻️ refactor(hooks): generalize useNavScrolling for broader use
- Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`.
- Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`.
* ✨ feat(settings): add shared links listing table with delete functionality in settings
- Integrated a delete button for each shared link in the table, allowing users to remove links as needed.
* ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use
* ♻️ refactor: update useGetSharedMessages to return TSharedLink
- Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself.
- This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink.
* ✨ feat(shared link): add UI for displaying shared conversations without authentication
- Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication.
- Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context.
* 🔧 chore: Add translations
Translate labels only. Messages remain in English as they are possibly subject to change.
* ♻️ refactor: add icon and tooltip props to EditMenuButton component
* moved icon and popover to arguments so that EditMenuButton can be reused.
* modified so that when a ShareButton is closed, the parent DropdownMenu is also closed.
* ♻️irefactor: added DropdownMenu for Export and Share
* ♻️ refactor: renamed component names more intuitive
* More accurate naming of the dropdown menu.
* When the export button is closed, the parent dropdown menu is also closed.
* 🌍 chore: updated translations
* 🐞 Fix: OpenID Profile Image Download (#2757)
* Add fetch requirement
Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function
* Update openidStrategy.js
---------
Co-authored-by: Danny Avila <danacordially@gmail.com>
* 🚑 fix(export): Issue exporting Conversation with Assistants (#2769)
* 🚑 fix(export): use content as text if content is present in the message
If the endpoint is assistants, the text of the message goes into content, not message.text.
* refactor(ExportModel): TypeScript, remove unused code
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
* 📤style: export button icon (#2752)
* refactor(ShareDialog): logic and styling
* refactor(ExportAndShareMenu): imports order and icon update
* chore: imports
* chore: imports/render logic
* feat: message branching
* refactor: add optional config to useGetStartupConfig
* refactor: disable endpoints query
* chore: fix search view styling gradient in light mode
* style: ShareView gradient styling
* refactor(Share): use select queries
* style: shared link table buttons
* localization and dark text styling
* style: fix clipboard button layout shift app-wide and add localization for copy code
* support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages
* add localizations
* comparisons
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com>
Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
} ,
2024-05-10 15:56:25 -04:00
com_ui_delete : {
english : 'Delete' ,
translated : 'Hapus' ,
} ,
com_ui_delete_conversation : {
english : 'Delete chat?' ,
translated : 'Hapus chat?' ,
} ,
🗨️ feat: Prompts (#3131)
* 🗨️ feat: Prompts (#7)
* WIP: MERGE prompts/frontend (#1)
* added schema for prompt and promptgroup, added model methods for prompts, added routes for prompts
* * updated promptGroup Schema
* updated model methods for prompts (get, add, delete)
* slight fixes in prompt routes
* * Created Files Management components
* Created Vector Stores components
* Added file management route in the routes folder
* Completed UI for Files list, Compeleted UI for vector stores list, Completed UI for upload file modal, Completed UI for preview file, Completed UI for preview vector store
* Fixed style and UI fixes for file dashboard, file list and vector stores list
* added responsiveness classes for vector store page
* fixed responsiveness of file page, dashboard page, and main page
* fixed styling and responsiveness issues on dashboard page, file list page and vector store page
* added queries and mutations for prompts and promptGroups, added relevant endpoints in data-provider, added relevant components prompts, added and updated relevant APIs
* added types on mutation queries data service, updated prompt attributes
* feature: Prompts and prompt groups management, added relevant APIs, added types for data service/queries/mutations, added relevant mutation and queries
* chore: typing clarifications
* added drop down on prompts mgmt dashboard
* Fixes: fixed version switching issue on tags update or labels update, added cross button on create prompt group, fixed list updation on prompt group renaiming, added CSV upload button
* Feature: Added oneliner and category attributes in prompt group, added schema for categories, added schema methods and route for categories
* chore: typing and lint issues
* chore: more type and linter fixes
* chore: linting
* chore: prompt controller and backend typing example; MOVE TO CONTROLLER DIRECTORY
* chore: more type fixes
* style: prompt name changes
* chore: more type changes, and stateful prompt name change without flickering
* fix: Return result of savePrompt in patchPrompt API endpoint
* fix: navigation prompt queries; refactor: name 'prompt-groups' to just 'groups'
* refactor: fetch prompt groups rewrite
* refactor(prompts): query/mutation statefulness
* refactor: remove `isActive` field
* refactor: remove labels, consolidate logic
* style: width, layout shift
* refactor: improve hover toggle behavior and styling
* refactor: add useParams hook to PromptListItem for dynamic rendering and add timeout ref for blur timeout
* chore: hide upload button
* refactor: import Button component from correct location in PromptSidePanel
* style: prompt editor styling
* style: fix more layout shifts
* style: container scroll
* refactor: Rename CreatePrompt component to CreatePromptForm
* refactor: use react-hook-form
* refactor: Add Prompts components and routes to Dashboard
* style: skeletons for loading
* fix: optimize makePromptProduction
* refactor: consolidate variables
* feat: create prompt form validation
* refactor: Consolidate variables and update mutation hooks
* style: minor touchups
* chore: Update lucide-react npm dependency to version 0.394.0 and npm audit fix
* refactor: add a new icon for the Prompts heading.
* style: Update PromptsView heading to use h1 instead of h2 and other minor margin issues
* chore: wording
* refactor: Update PromptsView heading to use h1 instead of h2, consolidate variables, and add new icons
* refactor: Prompts Button for Mobile
* feature: added category field in prompt group, added relevant API and static data on BE to support FE UI for category in prompt group
* chore: template for prompt cards
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* WIP: Prompts/frontend Continued (#2)
* chore: loading style, remove unused component
* feat: Add CategorySelector component for prompt group category selection
* feat: add categories to create prompt
* feat: prompt versions styling
* feat: optimistic updates for prompt production state
* refactor: optimize form state and show if prompt field is dirty with cross icon, also other styling changes
* chore: remove unused code and localizations
* fix: light mode styling
* WIP: SidePanel Prompts
* refactor: move to groups directory
* refactor: rename GroupsSidePanel to GroupSidePanel and update imports
* style: ListCard
* refactor: isProduction changes
* refactor: infinite query with productionPrompt
* refactor: optimize snippets and prompts, and styling
* refactor: Update getSnippet function to accept a length parameter
* chore: localizations
* feat: prompts navigation to chat and vice versa
* fix: create prompt
* feat: remember last selected category for creating prompts
* fix(promptGroups): fix pagination and add usePromptGroupsNav hook
* Prompts/frontend 3 (#3)
* fix: stateful issues with prompt groups
* style: improved layout
* refactor: improve variable naming in Eng.ts
* refactor: theme selector styling improvements
* added prompt cards on chat new page, with dark mode, added API to fetch random prompts, added types for useQuery
Slightly improved usePromptGroupNav logic to fetch updated result for pageSize, updated prompt cards view with darkmode and responsiveness
fixed page size option buttons styling to match the theme
added dark mode on create prompt page and prompt edit/preview page
fixed page size option buttons styling to match the theme
added dark mode on create prompt page and prompt edit/preview page
* WIP: Prompts/frontend (#4)
* fix: optimize and fix paginated query
* fix: remove unique constraint on names
* refactor: button links and styling
* style: menu border light mode
* feat: Add Auto-Send Switch component for prompts groups
* refactor(ChatView): use form context for submission text
* chore: clear convo state on navigation to dashboard routes
* chore: save prompt edit name on tab, remove console log
* feat: basic prompt submission
* refactor: move Auto-Send Switch
* style(ListCard): border styling
* feat: Add function to detect variables in text
* feat: Add OriginalDialog component to UI library
* chore(ui): Update SelectDropDown options list class to use text-xs size
* refactor: submitMessage hook now includes submitPrompt, make compatible to document query selector
* WIP: Variable Dialog
* feat: variable submission working for both auto-send and non-autosend
* feat: dashboard breadcrumbs and prompts/chat navigation
* refactor: dashboard breadcrumb and dashboard link to chat navigation
* refactor: Update VariableDialog and VariableForm styles
* Prompts: Admin features (#5)
* fix: link issue
* fix: usePromptGroupsNav add missing dep.
* style: dashbreadcrumb and sidepanel text color
* temp fix: remove refetch on pageNumber change
* fix: handle multiple variable replacement
* WIP: create project schema and add project groups to fetch
* feat: Add functionality to add prompt group IDs to a project
* feat: Add caching for startup config in config route
* chore: remove prompt landing
* style: Update Skeleton component with additional background styling
* chore: styling and types
* WIP: SharePrompt first draft
* feat(SharePrompt): form validation
* feat: shared global indicators
* refactor: prompt details
* refactor: change NoPromptGroup directory
* feat: preview prompt
* feat: remove/add global prompts, add rbac-related enums
* refactor: manage prompts location
* WIP: first draft admin settings for prompts
* feat: SystemRoles enum
* refactor: update PromptDetails component styling
* style: ellipsis custom class for showing more preview text
* WIP: initial role schema and initialization
* style: improved margins for single unordered lists
* fix: use custom chat form context to prevent re-renders from FormProvider
* feat: Role mutations for Prompt Permissions
* feat: fetch user role
* feat: update AdminSettings form default values from user role values
* refactor: rename PromptPermissions to Permissions for general definitions
* feat: initial role checks
* feat: Add optional `bodyProps` parameter to generateCheckAccess middleware
* refactor: UI access checks
* Prompts: delete (#6)
* Fixed delete prompt version API, fixed types and logic for prompt version deletion, updated prompt delete mutation logic
* chore: Update return type of deletePrompt function in Prompt.js
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* chore: Update package-lock.json version to 0.7.4-rc1 and fast-xml-parser to 4.4.0
* feat: toast for saving admin settings, add timer no-access navigation
* feat: always make prod
* feat: Add localization to category labels in CategorySelector component
* feat: Update category label localization in CategorySelector component
* fix: Enable making prompt production in Prompt API
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* feat: Add helper fn for dark mode detection in ThemeProvider
* style: surface-primary definition
* fix(useHasAccess): utilize user.role and not just USER role
* fix: empty category and role fetch
* refactort: increase max height to options list and use label if no localization is found
* fix: update CategorySelector to handle empty category value and improve localization
* refactor: move prompts to own store/reactquery modules, add in filter WIP
* refactor: Rename AutoSendSwitch to AutoSendPrompt
* style: theming commit
* style: fix slight coloring issue for convos in dark mode
* style: better composition for prompts side panel
* style: remove gray-750 and make it gray-850
* chore: adjust theming
* feat: filter all prompt groups and properly remove prompts from projects
* refactor: optimize delete prompt groups further
* chore: localization
* feat: Add uniqueProperty filtering to normalizeData function
* WIP: filter prompts
* chore: Update FilterPrompts component to include User icon in FilterItem
* feat(FilterPrompts): set categories
* feat: more system filters and show selected category icon
* style: always make prod, flips switch to avoid mis-clicks
* style: ui/ux loading/no prompts
* chore: style FilterPrompts ChatView
* fix: handle missing role edge case
* style: special variables
* feat: special variables
* refactor: improve replaceSpecialVars function in prompts.ts
* feat: simple/advanced editor modes
* chore: bump versions
* feat: localizations and hide production button on simple mode
* fix: error connecting layout shift
* fix: prompts CRUD for admins
* fix: secure single group fetch
* style: sidepanel styling
* style(PromptName): bring edit button closer to name
* style: mobile prompts header
* style: mobile prompts header continued
* style: align send prompts switch right
* feat: description
* Update special variables description in Eng.ts
* feat: update/create/preview oneliner
* fix: allow empty oneliner update
* style: loading improvement and always make selected prompt Production if simple mode
* fix: production index set and remove unused props
* fix(ci): mock initializeRoles
* fix: address #3128
* fix: address #3128
* feat: add deletion confirmation dialog
* fix: mobile UI issues
* style: prompt library UI update
* style: focus, logcal tab order
* style: Refactor SelectDropDown component to improve code readability and maintainability
* chore: bump data-provider
* chore: fix labels
* refactor: confirm delete prompt version
---------
Co-authored-by: Marco Beretta <81851188+berry-13@users.noreply.github.com>
2024-06-20 20:24:32 -04:00
com_ui_delete_confirm : {
2024-05-10 15:56:25 -04:00
english : 'This will delete' ,
translated : 'Ini akan menghapus' ,
} ,
com_ui_rename : {
english : 'Rename' ,
translated : 'Renombrar' ,
} ,
com_ui_archive : {
english : 'Archive' ,
translated : 'Arsip' ,
} ,
com_ui_archive_error : {
english : 'Failed to archive conversation' ,
translated : 'Gagal mengarsipkan percakapan' ,
} ,
com_ui_unarchive : {
english : 'Unarchive' ,
translated : 'Buka Arsip' ,
} ,
com_ui_unarchive_error : {
english : 'Failed to unarchive conversation' ,
translated : 'Gagal membuka arsip' ,
} ,
com_ui_more_options : {
english : 'More' ,
translated : 'Lebih' ,
} ,
com_ui_preview : {
english : 'Preview' ,
translated : 'Pratinjau' ,
} ,
com_ui_upload : {
english : 'Upload' ,
translated : 'Unggah' ,
} ,
com_ui_connect : {
english : 'Connect' ,
translated : 'Hubungkan' ,
} ,
2024-07-29 07:45:59 -07:00
com_ui_bookmarks : {
english : 'Bookmarks' ,
translated : 'Penanda' ,
} ,
com_ui_bookmarks_rebuild : {
english : 'Rebuild' ,
translated : 'Bangun Kembali' ,
} ,
com_ui_bookmarks_new : {
english : 'New Bookmark' ,
translated : 'Penanda Baru' ,
} ,
com_ui_bookmark_delete_confirm : {
english : 'Are you sure you want to delete this bookmark?' ,
translated : 'Apakah Anda yakin ingin menghapus penanda ini?' ,
} ,
com_ui_bookmarks_title : {
english : 'Title' ,
translated : 'Judul' ,
} ,
com_ui_bookmarks_count : {
english : 'Count' ,
translated : 'Jumlah' ,
} ,
com_ui_bookmarks_description : {
english : 'Description' ,
translated : 'Deskripsi' ,
} ,
com_ui_bookmarks_create_success : {
english : 'Bookmark created successfully' ,
translated : 'Penanda berhasil dibuat' ,
} ,
com_ui_bookmarks_update_success : {
english : 'Bookmark updated successfully' ,
translated : 'Penanda berhasil diperbarui' ,
} ,
com_ui_bookmarks_delete_success : {
english : 'Bookmark deleted successfully' ,
translated : 'Penanda berhasil dihapus' ,
} ,
com_ui_bookmarks_create_error : {
english : 'There was an error creating the bookmark' ,
translated : 'Terjadi kesalahan saat membuat penanda' ,
} ,
com_ui_bookmarks_update_error : {
english : 'There was an error updating the bookmark' ,
translated : 'Terjadi kesalahan saat memperbarui penanda' ,
} ,
com_ui_bookmarks_delete_error : {
english : 'There was an error deleting the bookmark' ,
translated : 'Terjadi kesalahan saat menghapus penanda' ,
} ,
com_ui_bookmarks_add_to_conversation : {
english : 'Add to current conversation' ,
translated : 'Tambahkan ke percakapan saat ini' ,
} ,
2024-05-10 15:56:25 -04:00
com_auth_error_login : {
english :
'Unable to login with the information provided. Please check your credentials and try again.' ,
translated :
'Tidak dapat masuk dengan informasi yang diberikan. Silakan periksa kredensial Anda dan coba lagi.' ,
} ,
com_auth_error_login_rl : {
english : 'Too many login attempts in a short amount of time. Please try again later.' ,
translated : 'Terlalu banyak upaya masuk dalam waktu singkat. Silakan coba lagi nanti.' ,
} ,
com_auth_error_login_ban : {
english : 'Your account has been temporarily banned due to violations of our service.' ,
translated : 'Akun Anda telah dilarang sementara karena pelanggaran layanan kami.' ,
} ,
com_auth_error_login_server : {
english : 'There was an internal server error. Please wait a few moments and try again.' ,
translated : 'Ada kesalahan server internal. Harap tunggu beberapa saat dan coba lagi.' ,
} ,
com_auth_no_account : {
english : 'Don\'t have an account?' ,
translated : 'Tidak memiliki akun?' ,
} ,
com_auth_sign_up : {
english : 'Sign up' ,
translated : 'Daftar' ,
} ,
com_auth_sign_in : {
english : 'Sign in' ,
translated : 'Masuk' ,
} ,
com_auth_google_login : {
english : 'Continue with Google' ,
translated : 'Masuk dengan Google' ,
} ,
com_auth_facebook_login : {
english : 'Continue with Facebook' ,
translated : 'Masuk dengan Facebook' ,
} ,
com_auth_github_login : {
english : 'Continue with Github' ,
translated : 'Masuk dengan Github' ,
} ,
com_auth_discord_login : {
english : 'Continue with Discord' ,
translated : 'Masuk dengan Discord' ,
} ,
com_auth_email : {
english : 'Email' ,
translated : 'Email' ,
} ,
com_auth_email_required : {
english : 'Email is required' ,
translated : 'Email diperlukan' ,
} ,
com_auth_email_min_length : {
english : 'Email must be at least 6 characters' ,
translated : 'Email harus setidaknya 6 karakter' ,
} ,
com_auth_email_max_length : {
english : 'Email should not be longer than 120 characters' ,
translated : 'Email tidak boleh lebih dari 120 karakter' ,
} ,
com_auth_email_pattern : {
english : 'You must enter a valid email address' ,
translated : 'Anda harus memasukkan alamat email yang valid' ,
} ,
com_auth_email_address : {
english : 'Email address' ,
translated : 'Alamat email' ,
} ,
com_auth_password : {
english : 'Password' ,
translated : 'Kata sandi' ,
} ,
com_auth_password_required : {
english : 'Password is required' ,
translated : 'Kata sandi diperlukan' ,
} ,
com_auth_password_min_length : {
english : 'Password must be at least 8 characters' ,
translated : 'Kata sandi harus setidaknya 8 karakter' ,
} ,
com_auth_password_max_length : {
english : 'Password must be less than 128 characters' ,
translated : 'Kata sandi harus kurang dari 128 karakter' ,
} ,
com_auth_password_forgot : {
english : 'Forgot Password?' ,
translated : 'Lupa Kata Sandi?' ,
} ,
com_auth_password_confirm : {
english : 'Confirm password' ,
translated : 'Konfirmasi kata sandi' ,
} ,
com_auth_password_not_match : {
english : 'Passwords do not match' ,
translated : 'Kata sandi tidak cocok' ,
} ,
com_auth_continue : {
english : 'Continue' ,
translated : 'Lanjutkan' ,
} ,
com_auth_create_account : {
english : 'Create your account' ,
translated : 'Buat akun Anda' ,
} ,
com_auth_error_create : {
english : 'There was an error attempting to register your account. Please try again.' ,
translated : 'Ada kesalahan saat mencoba mendaftarkan akun Anda. Silakan coba lagi.' ,
} ,
com_auth_full_name : {
english : 'Full name' ,
translated : 'Nama lengkap' ,
} ,
com_auth_name_required : {
english : 'Name is required' ,
translated : 'Nama diperlukan' ,
} ,
com_auth_name_min_length : {
english : 'Name must be at least 3 characters' ,
translated : 'Nama harus setidaknya 3 karakter' ,
} ,
com_auth_name_max_length : {
english : 'Name must be less than 80 characters' ,
translated : 'Nama harus kurang dari 80 karakter' ,
} ,
com_auth_username : {
english : 'Username (optional)' ,
translated : 'Nama pengguna (opsional)' ,
} ,
com_auth_username_required : {
english : 'Username is required' ,
translated : 'Nama pengguna diperlukan' ,
} ,
com_auth_username_min_length : {
english : 'Username must be at least 2 characters' ,
translated : 'Nama pengguna harus setidaknya 2 karakter' ,
} ,
com_auth_username_max_length : {
english : 'Username must be less than 20 characters' ,
translated : 'Nama pengguna harus kurang dari 20 karakter' ,
} ,
com_auth_already_have_account : {
english : 'Already have an account?' ,
translated : 'Sudah memiliki akun?' ,
} ,
com_auth_login : {
english : 'Login' ,
translated : 'Masuk' ,
} ,
com_auth_reset_password : {
english : 'Reset your password' ,
translated : 'Atur ulang kata sandi Anda' ,
} ,
com_auth_click : {
english : 'Click' ,
translated : 'Klik' ,
} ,
com_auth_here : {
english : 'HERE' ,
translated : 'DI SINI' ,
} ,
com_auth_to_reset_your_password : {
english : 'to reset your password.' ,
translated : 'untuk mengatur ulang kata sandi Anda.' ,
} ,
com_auth_reset_password_link_sent : {
english : 'Email Sent' ,
translated : 'Email Terkirim' ,
} ,
com_auth_reset_password_email_sent : {
english : 'An email has been sent to you with further instructions to reset your password.' ,
translated :
'Email telah dikirim kepada Anda dengan instruksi lebih lanjut untuk mengatur ulang kata sandi Anda.' ,
} ,
com_auth_error_reset_password : {
english :
'There was a problem resetting your password. There was no user found with the email address provided. Please try again.' ,
translated :
'Ada masalah saat mengatur ulang kata sandi Anda. Tidak ada pengguna yang ditemukan dengan alamat email yang diberikan. Silakan coba lagi.' ,
} ,
com_auth_reset_password_success : {
english : 'Password Reset Success' ,
translated : 'Berhasil Mengatur Ulang Kata Sandi' ,
} ,
com_auth_login_with_new_password : {
english : 'You may now login with your new password.' ,
translated : 'Anda sekarang dapat masuk dengan kata sandi baru Anda.' ,
} ,
com_auth_error_invalid_reset_token : {
english : 'This password reset token is no longer valid.' ,
translated : 'Token pengaturan ulang kata sandi ini tidak lagi valid.' ,
} ,
com_auth_click_here : {
english : 'Click here' ,
translated : 'Klik di sini' ,
} ,
com_auth_to_try_again : {
english : 'to try again.' ,
translated : 'untuk mencoba lagi.' ,
} ,
com_auth_submit_registration : {
english : 'Submit registration' ,
translated : 'Kirim pendaftaran' ,
} ,
com_auth_welcome_back : {
english : 'Welcome back' ,
translated : 'Selamat datang kembali' ,
} ,
com_endpoint_open_menu : {
english : 'Open Menu' ,
translated : 'Buka Menu' ,
} ,
com_endpoint_bing_enable_sydney : {
english : 'Enable Sydney' ,
translated : 'Aktifkan Sydney' ,
} ,
com_endpoint_bing_to_enable_sydney : {
english : 'To enable Sydney' ,
translated : 'Untuk mengaktifkan Sydney' ,
} ,
com_endpoint_bing_jailbreak : {
english : 'Jailbreak' ,
translated : 'Jailbreak' ,
} ,
com_endpoint_bing_context_placeholder : {
english :
'Bing can use up to 7k tokens for \'context\', which it can reference for the conversation. The specific limit is not known but may run into errors exceeding 7k tokens' ,
translated :
'Bing dapat menggunakan hingga 7k token untuk \'konteks\', yang dapat dirujuk untuk percakapan. Batas spesifik tidak diketahui tetapi mungkin menemui kesalahan melebihi 7k token' ,
} ,
com_endpoint_bing_system_message_placeholder : {
english :
'WARNING: Misuse of this feature can get you BANNED from using Bing! Click on \'System Message\' for full instructions and the default message if omitted, which is the \'Sydney\' preset that is considered safe.' ,
translated :
'PERINGATAN: Penyalahgunaan fitur ini dapat membuat Anda DILARANG menggunakan Bing! Klik pada \'Pesan Sistem\' untuk instruksi lengkap dan pesan default jika diabaikan, yang merupakan preset \'Sydney\' yang dianggap aman.' ,
} ,
com_endpoint_system_message : {
english : 'System Message' ,
translated : 'Pesan Sistem' ,
} ,
com_endpoint_message : {
english : 'Message' ,
translated : 'Pesan' ,
} ,
com_endpoint_message_not_appendable : {
english : 'Edit your message or Regenerate.' ,
translated : 'Edit pesan Anda atau Regenerasi.' ,
} ,
com_endpoint_default_blank : {
english : 'default: blank' ,
translated : 'default: kosong' ,
} ,
com_endpoint_default_false : {
english : 'default: false' ,
translated : 'default: salah' ,
} ,
com_endpoint_default_creative : {
english : 'default: creative' ,
translated : 'default: kreatif' ,
} ,
com_endpoint_default_empty : {
english : 'default: empty' ,
translated : 'default: kosong' ,
} ,
com_endpoint_default_with_num : {
english : 'default: {0}' ,
translated : 'default: {0}' ,
} ,
com_endpoint_context : {
english : 'Context' ,
translated : 'Konteks' ,
} ,
com_endpoint_tone_style : {
english : 'Tone Style' ,
translated : 'Gaya Nada' ,
} ,
com_endpoint_token_count : {
english : 'Token count' ,
translated : 'Jumlah Token' ,
} ,
com_endpoint_output : {
english : 'Output' ,
translated : 'Output' ,
} ,
com_endpoint_google_temp : {
english :
'Higher values = more random, while lower values = more focused and deterministic. We recommend altering this or Top P but not both.' ,
translated :
'Nilai yang lebih tinggi = lebih acak, sedangkan nilai yang lebih rendah = lebih fokus dan deterministik. Kami merekomendasikan untuk mengubah ini atau Top P tetapi tidak keduanya.' ,
} ,
com_endpoint_google_topp : {
english :
'Top-p changes how the model selects tokens for output. Tokens are selected from most K (see topK parameter) probable to least until the sum of their probabilities equals the top-p value.' ,
translated :
'Top-p mengubah cara model memilih token untuk output. Token dipilih dari yang paling mungkin (lihat parameter topK) hingga yang paling tidak mungkin sampai jumlah probabilitas mereka sama dengan nilai top-p.' ,
} ,
com_endpoint_google_topk : {
english :
'Top-k changes how the model selects tokens for output. A top-k of 1 means the selected token is the most probable among all tokens in the model\'s vocabulary (also called greedy decoding), while a top-k of 3 means that the next token is selected from among the 3 most probable tokens (using temperature).' ,
translated :
'Top-k mengubah cara model memilih token untuk output. Top-k 1 berarti token yang dipilih adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding serakah), sedangkan top-k 3 berarti token berikutnya dipilih dari antara 3 token yang paling mungkin (menggunakan temperatur).' ,
} ,
com_endpoint_google_maxoutputtokens : {
english :
' \tMaximum number of tokens that can be generated in the response. Specify a lower value for shorter responses and a higher value for longer responses.' ,
translated :
'Jumlah maksimum token yang dapat dihasilkan dalam respons. Tentukan nilai yang lebih rendah untuk respons yang lebih pendek dan nilai yang lebih tinggi untuk respons yang lebih panjang.' ,
} ,
com_endpoint_google_custom_name_placeholder : {
english : 'Set a custom name for Google' ,
translated : 'Tetapkan nama kustom untuk Google' ,
} ,
com_endpoint_prompt_prefix_placeholder : {
english : 'Set custom instructions or context. Ignored if empty.' ,
translated : 'Tetapkan instruksi kustom atau konteks. Diabaikan jika kosong.' ,
} ,
com_endpoint_custom_name : {
english : 'Custom Name' ,
translated : 'Nama Kustom' ,
} ,
com_endpoint_prompt_prefix : {
english : 'Custom Instructions' ,
translated : 'Awalan Prompt' ,
} ,
com_endpoint_temperature : {
english : 'Temperature' ,
translated : 'Temperatur' ,
} ,
com_endpoint_default : {
english : 'default' ,
translated : 'default' ,
} ,
com_endpoint_top_p : {
english : 'Top P' ,
translated : 'Top P' ,
} ,
com_endpoint_top_k : {
english : 'Top K' ,
translated : 'Top K' ,
} ,
com_endpoint_max_output_tokens : {
english : 'Max Output Tokens' ,
translated : 'Token Output Maks' ,
} ,
com_endpoint_openai_temp : {
english :
'Higher values = more random, while lower values = more focused and deterministic. We recommend altering this or Top P but not both.' ,
translated :
'Nilai yang lebih tinggi = lebih acak, sedangkan nilai yang lebih rendah = lebih fokus dan deterministik. Kami merekomendasikan untuk mengubah ini atau Top P tetapi tidak keduanya.' ,
} ,
com_endpoint_openai_max : {
english :
'The max tokens to generate. The total length of input tokens and generated tokens is limited by the model\'s context length.' ,
translated :
'Token maksimum yang akan dihasilkan. Panjang total token masukan dan token yang dihasilkan dibatasi oleh panjang konteks model.' ,
} ,
com_endpoint_openai_topp : {
english :
'An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We recommend altering this or temperature but not both.' ,
translated :
'Sebuah alternatif untuk pengambilan sampel dengan suhu, disebut pengambilan sampel inti, di mana model mempertimbangkan hasil dari token dengan massa probabilitas top_p. Jadi 0,1 berarti hanya token yang mencakup 10% massa probabilitas teratas yang dipertimbangkan. Kami merekomendasikan untuk mengubah ini atau suhu tetapi tidak keduanya.' ,
} ,
com_endpoint_openai_freq : {
english :
'Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model\'s likelihood to repeat the same line verbatim.' ,
translated :
'Angka antara -2,0 dan 2,0. Nilai positif menghukum token baru berdasarkan frekuensi mereka yang ada dalam teks sejauh ini, mengurangi kemungkinan model untuk mengulangi baris yang sama secara harfiah.' ,
} ,
com_endpoint_openai_pres : {
english :
'Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model\'s likelihood to talk about new topics.' ,
translated :
'Angka antara -2,0 dan 2,0. Nilai positif menghukum token baru berdasarkan apakah mereka muncul dalam teks sejauh ini, meningkatkan kemungkinan model untuk berbicara tentang topik baru.' ,
} ,
com_endpoint_openai_resend : {
english :
'Resend all previously attached images. Note: this can significantly increase token cost and you may experience errors with many image attachments.' ,
translated :
'Kirim ulang semua gambar yang sebelumnya dilampirkan. Catatan: ini dapat meningkatkan biaya token secara signifikan dan Anda mungkin mengalami kesalahan dengan banyak lampiran gambar.' ,
} ,
com_endpoint_openai_detail : {
english :
'The resolution for Vision requests. "Low" is cheaper and faster, "High" is more detailed and expensive, and "Auto" will automatically choose between the two based on the image resolution.' ,
translated :
'Resolusi untuk permintaan Vision. "Rendah" lebih murah dan lebih cepat, "Tinggi" lebih detail dan mahal, dan "Otomatis" akan secara otomatis memilih antara keduanya berdasarkan resolusi gambar.' ,
} ,
com_endpoint_openai_custom_name_placeholder : {
english : 'Set a custom name for the AI' ,
translated : 'Tetapkan nama kustom untuk ChatGPT' ,
} ,
com_endpoint_openai_prompt_prefix_placeholder : {
english : 'Set custom instructions to include in System Message. Default: none' ,
translated : 'Tetapkan instruksi kustom untuk dimasukkan dalam Pesan Sistem. Default: tidak ada' ,
} ,
com_endpoint_anthropic_temp : {
english :
'Ranges from 0 to 1. Use temp closer to 0 for analytical / multiple choice, and closer to 1 for creative and generative tasks. We recommend altering this or Top P but not both.' ,
translated :
'Berkisar dari 0 hingga 1. Gunakan temp yang lebih dekat ke 0 untuk analitis / pilihan ganda, dan lebih dekat ke 1 untuk tugas kreatif dan generatif. Kami merekomendasikan untuk mengubah ini atau Top P tetapi tidak keduanya.' ,
} ,
com_endpoint_anthropic_topp : {
english :
'Top-p changes how the model selects tokens for output. Tokens are selected from most K (see topK parameter) probable to least until the sum of their probabilities equals the top-p value.' ,
translated :
'Top-p mengubah cara model memilih token untuk output. Token dipilih dari yang paling mungkin (lihat parameter topK) hingga yang paling tidak mungkin sampai jumlah probabilitas mereka sama dengan nilai top-p.' ,
} ,
com_endpoint_anthropic_topk : {
english :
'Top-k changes how the model selects tokens for output. A top-k of 1 means the selected token is the most probable among all tokens in the model\'s vocabulary (also called greedy decoding), while a top-k of 3 means that the next token is selected from among the 3 most probable tokens (using temperature).' ,
translated :
'Top-k mengubah cara model memilih token untuk output. Top-k 1 berarti token yang dipilih adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding serakah), sedangkan top-k 3 berarti token berikutnya dipilih dari antara 3 token yang paling mungkin (menggunakan suhu).' ,
} ,
com_endpoint_anthropic_maxoutputtokens : {
english :
'Maximum number of tokens that can be generated in the response. Specify a lower value for shorter responses and a higher value for longer responses.' ,
translated :
'Jumlah maksimum token yang dapat dihasilkan dalam respons. Tentukan nilai yang lebih rendah untuk respons yang lebih pendek dan nilai yang lebih tinggi untuk respons yang lebih panjang.' ,
} ,
com_endpoint_anthropic_custom_name_placeholder : {
english : 'Set a custom name for Anthropic' ,
translated : 'Tetapkan nama kustom untuk Anthropic' ,
} ,
com_endpoint_frequency_penalty : {
english : 'Frequency Penalty' ,
translated : 'Penalti Frekuensi' ,
} ,
com_endpoint_presence_penalty : {
english : 'Presence Penalty' ,
translated : 'Penalti Kehadiran' ,
} ,
com_endpoint_plug_use_functions : {
english : 'Use Functions' ,
translated : 'Gunakan Fungsi' ,
} ,
com_endpoint_plug_resend_images : {
english : 'Resend Images' ,
translated : 'Kirim Ulang Gambar' ,
} ,
com_endpoint_plug_image_detail : {
english : 'Image Detail' ,
translated : 'Rincian Gambar' ,
} ,
com_endpoint_plug_skip_completion : {
english : 'Skip Completion' ,
translated : 'Lewati Penyelesaian' ,
} ,
com_endpoint_disabled_with_tools : {
english : 'disabled with tools' ,
translated : 'dinonaktifkan dengan alat' ,
} ,
com_endpoint_disabled_with_tools_placeholder : {
english : 'Disabled with Tools Selected' ,
translated : 'Dinonaktifkan dengan Alat yang Dipilih' ,
} ,
com_endpoint_plug_set_custom_instructions_for_gpt_placeholder : {
english : 'Set custom instructions to include in System Message. Default: none' ,
translated : 'Tetapkan instruksi kustom untuk dimasukkan dalam Pesan Sistem. Default: tidak ada' ,
} ,
com_endpoint_import : {
english : 'Import' ,
translated : 'Impor' ,
} ,
com_endpoint_set_custom_name : {
english : 'Set a custom name, in case you can find this preset' ,
translated : 'Tetapkan nama kustom, jika Anda dapat menemukan preset ini' ,
} ,
com_endpoint_preset_delete_confirm : {
english : 'Are you sure you want to delete this preset?' ,
translated : 'Anda yakin ingin menghapus preset ini?' ,
} ,
com_endpoint_preset_clear_all_confirm : {
english : 'Are you sure you want to delete all of your presets?' ,
translated : 'Anda yakin ingin menghapus semua preset Anda?' ,
} ,
com_endpoint_preset_import : {
english : 'Preset Imported!' ,
translated : 'Preset Diimpor!' ,
} ,
com_endpoint_preset_import_error : {
english : 'There was an error importing your preset. Please try again.' ,
translated : 'Ada kesalahan saat mengimpor preset Anda. Silakan coba lagi.' ,
} ,
com_endpoint_preset_save_error : {
english : 'There was an error saving your preset. Please try again.' ,
translated : 'Ada kesalahan saat menyimpan preset Anda. Silakan coba lagi.' ,
} ,
com_endpoint_preset_delete_error : {
english : 'There was an error deleting your preset. Please try again.' ,
translated : 'Ada kesalahan saat menghapus preset Anda. Silakan coba lagi.' ,
} ,
com_endpoint_preset_default_removed : {
english : 'is no longer the default preset.' ,
translated : 'tidak lagi menjadi preset default.' ,
} ,
com_endpoint_preset_default_item : {
english : 'Default:' ,
translated : 'Default:' ,
} ,
com_endpoint_preset_default_none : {
english : 'No default preset active.' ,
translated : 'Tidak ada preset default yang aktif.' ,
} ,
com_endpoint_preset_title : {
english : 'Preset' ,
translated : 'Preset' ,
} ,
com_endpoint_preset_saved : {
english : 'Saved!' ,
translated : 'Tersimpan!' ,
} ,
com_endpoint_preset_default : {
english : 'is now the default preset.' ,
translated : 'sekarang menjadi preset default.' ,
} ,
com_endpoint_preset : {
english : 'preset' ,
translated : 'preset' ,
} ,
com_endpoint_presets : {
english : 'presets' ,
translated : 'presets' ,
} ,
com_endpoint_preset_selected : {
english : 'Preset Active!' ,
translated : 'Preset Aktif!' ,
} ,
com_endpoint_preset_selected_title : {
english : 'Active!' ,
translated : 'Aktif!' ,
} ,
com_endpoint_preset_name : {
english : 'Preset Name' ,
translated : 'Nama Preset' ,
} ,
com_endpoint_new_topic : {
english : 'New Topic' ,
translated : 'Topik Baru' ,
} ,
com_endpoint : {
english : 'Endpoint' ,
translated : 'Endpoint' ,
} ,
com_endpoint_hide : {
english : 'Hide' ,
translated : 'Sembunyikan' ,
} ,
com_endpoint_show : {
english : 'Show' ,
translated : 'Tampilkan' ,
} ,
com_endpoint_examples : {
english : ' Presets' ,
translated : ' Preset' ,
} ,
com_endpoint_completion : {
english : 'Completion' ,
translated : 'Penyelesaian' ,
} ,
com_endpoint_agent : {
english : 'Agent' ,
translated : 'Agen' ,
} ,
com_endpoint_show_what_settings : {
english : 'Show {0} Settings' ,
translated : 'Tampilkan {0} Pengaturan' ,
} ,
com_endpoint_export : {
english : 'Export' ,
translated : 'Ekspor' ,
} ,
com_endpoint_save_as_preset : {
english : 'Save As Preset' ,
translated : 'Simpan Sebagai Preset' ,
} ,
com_endpoint_presets_clear_warning : {
english : 'Are you sure you want to clear all presets? This is irreversible.' ,
translated : 'Anda yakin ingin menghapus semua preset? Ini tidak dapat dibatalkan.' ,
} ,
com_endpoint_not_implemented : {
english : 'Not implemented' ,
translated : 'Belum diimplementasikan' ,
} ,
com_endpoint_no_presets : {
english : 'No presets yet, use the settings button to create one' ,
translated : 'Belum ada preset, gunakan tombol pengaturan untuk membuat satu' ,
} ,
com_endpoint_not_available : {
english : 'No endpoint available' ,
translated : 'Endpoint tidak tersedia' ,
} ,
com_endpoint_view_options : {
english : 'View Options' ,
translated : 'Lihat Opsi' ,
} ,
com_endpoint_save_convo_as_preset : {
english : 'Save Conversation as Preset' ,
translated : 'Simpan Percakapan sebagai Preset' ,
} ,
com_endpoint_my_preset : {
english : 'My Preset' ,
translated : 'Preset Saya' ,
} ,
com_endpoint_agent_model : {
english : 'Agent Model (Recommended: GPT-3.5)' ,
translated : 'Model Agen (Direkomendasikan: GPT-3.5)' ,
} ,
com_endpoint_completion_model : {
english : 'Completion Model (Recommended: GPT-4)' ,
translated : 'Model Penyelesaian (Direkomendasikan: GPT-4)' ,
} ,
com_endpoint_func_hover : {
english : 'Enable use of Plugins as OpenAI Functions' ,
translated : 'Aktifkan penggunaan Plugin sebagai Fungsi OpenAI' ,
} ,
com_endpoint_skip_hover : {
english :
'Enable skipping the completion step, which reviews the final answer and generated steps' ,
translated :
'Aktifkan langkah penyelesaian yang dilewati, yang meninjau jawaban akhir dan langkah yang dihasilkan' ,
} ,
com_endpoint_config_key : {
english : 'Set API Key' ,
translated : 'Atur Kunci API' ,
} ,
com_endpoint_config_placeholder : {
english : 'Set your Key in the Header menu to chat.' ,
translated : 'Atur Kunci Anda di menu Header untuk mengobrol.' ,
} ,
com_endpoint_config_key_for : {
english : 'Set API Key for' ,
translated : 'Atur Kunci API untuk' ,
} ,
com_endpoint_config_key_name : {
english : 'Key' ,
translated : 'Kunci' ,
} ,
com_endpoint_config_value : {
english : 'Enter value for' ,
translated : 'Masukkan nilai untuk' ,
} ,
com_endpoint_config_key_name_placeholder : {
english : 'Set API key first' ,
translated : 'Atur kunci API terlebih dahulu' ,
} ,
com_endpoint_config_key_encryption : {
english : 'Your key will be encrypted and deleted at' ,
translated : 'Kunci Anda akan dienkripsi dan dihapus pada' ,
} ,
com_endpoint_config_key_expiry : {
english : 'the expiry time' ,
translated : 'waktu kedaluwarsa' ,
} ,
com_endpoint_config_click_here : {
english : 'Click Here' ,
translated : 'Klik Di Sini' ,
} ,
com_endpoint_config_google_service_key : {
english : 'Google Service Account Key' ,
translated : 'Kunci Akun Layanan Google' ,
} ,
com_endpoint_config_google_cloud_platform : {
english : '(from Google Cloud Platform)' ,
translated : '(dari Google Cloud Platform)' ,
} ,
com_endpoint_config_google_api_key : {
english : 'Google API Key' ,
translated : 'Kunci API Google' ,
} ,
com_endpoint_config_google_gemini_api : {
english : '(Gemini API)' ,
translated : '(Gemini API)' ,
} ,
com_endpoint_config_google_api_info : {
english : 'To get your Generative Language API key (for Gemini),' ,
translated : 'Untuk mendapatkan kunci API Bahasa Generatif Anda (untuk Gemini),' ,
} ,
com_endpoint_config_key_import_json_key : {
english : 'Import Service Account JSON Key.' ,
translated : 'Impor Kunci JSON Akun Layanan.' ,
} ,
com_endpoint_config_key_import_json_key_success : {
english : 'Successfully Imported Service Account JSON Key' ,
translated : 'Berhasil Mengimpor Kunci JSON Akun Layanan' ,
} ,
com_endpoint_config_key_import_json_key_invalid : {
english : 'Invalid Service Account JSON Key, Did you import the correct file?' ,
translated : 'Kunci JSON Akun Layanan Tidak Valid, Apakah Anda mengimpor file yang benar?' ,
} ,
com_endpoint_config_key_get_edge_key : {
english : 'To get your Access token for Bing, login to' ,
translated : 'Untuk mendapatkan token akses Anda untuk Bing, masuk ke' ,
} ,
com_endpoint_config_key_get_edge_key_dev_tool : {
english :
'Use dev tools or an extension while logged into the site to copy the content of the _U cookie. If this fails, follow these' ,
translated :
'Gunakan alat pengembang atau ekstensi saat masuk ke situs untuk menyalin konten dari cookie _U. Jika ini gagal, ikuti ini' ,
} ,
com_endpoint_config_key_edge_instructions : {
english : 'instructions' ,
translated : 'instruksi' ,
} ,
com_endpoint_config_key_edge_full_key_string : {
english : 'to provide the full cookie strings.' ,
translated : 'untuk memberikan string cookie lengkap.' ,
} ,
com_endpoint_config_key_chatgpt : {
english : 'To get your Access token For ChatGPT \'Free Version\', login to' ,
translated : 'Untuk mendapatkan token akses Anda Untuk ChatGPT \'Versi Gratis\', masuk ke' ,
} ,
com_endpoint_config_key_chatgpt_then_visit : {
english : 'then visit' ,
translated : 'kemudian kunjungi' ,
} ,
com_endpoint_config_key_chatgpt_copy_token : {
english : 'Copy access token.' ,
translated : 'Salin token akses.' ,
} ,
com_endpoint_config_key_google_need_to : {
english : 'You need to' ,
translated : 'Anda perlu' ,
} ,
com_endpoint_config_key_google_vertex_ai : {
english : 'Enable Vertex AI' ,
translated : 'Aktifkan Vertex AI' ,
} ,
com_endpoint_config_key_google_vertex_api : {
english : 'API on Google Cloud, then' ,
translated : 'API di Google Cloud, kemudian' ,
} ,
com_endpoint_config_key_google_service_account : {
english : 'Create a Service Account' ,
translated : 'Buat Akun Layanan' ,
} ,
com_endpoint_config_key_google_vertex_api_role : {
english :
'Make sure to click \'Create and Continue\' to give at least the \'Vertex AI User\' role. Lastly, create a JSON key to import here.' ,
translated :
'Pastikan untuk mengklik \'Buat dan Lanjutkan\' untuk memberikan setidaknya peran \'Pengguna Vertex AI\'. Terakhir, buat kunci JSON untuk diimpor di sini.' ,
} ,
com_nav_welcome_message : {
english : 'How can I help you today?' ,
translated : 'Bagaimana saya bisa membantu Anda hari ini?' ,
} ,
com_nav_auto_scroll : {
english : 'Auto-Scroll to latest message on chat open' ,
translated : 'Otomatis gulir ke Baru saat Buka' ,
} ,
com_nav_modular_chat : {
english : 'Enable switching Endpoints mid-conversation' ,
translated : 'Aktifkan penggantian Endpoint di tengah percakapan' ,
} ,
com_nav_latex_parsing : {
english : 'Parsing LaTeX in messages (may affect performance)' ,
translated : 'Parsing LaTeX dalam pesan (dapat memengaruhi kinerja)' ,
} ,
com_nav_profile_picture : {
english : 'Profile Picture' ,
translated : 'Foto Profil' ,
} ,
com_nav_change_picture : {
english : 'Change picture' ,
translated : 'Ubah foto' ,
} ,
com_nav_plugin_store : {
english : 'Plugin store' ,
translated : 'Toko plugin' ,
} ,
com_show_agent_settings : {
english : 'Show Agent Settings' ,
translated : 'Tampilkan Pengaturan Agen' ,
} ,
com_show_completion_settings : {
english : 'Show Completion Settings' ,
translated : 'Tampilkan Pengaturan Penyelesaian' ,
} ,
com_hide_examples : {
english : 'Hide Examples' ,
translated : 'Sembunyikan Contoh' ,
} ,
com_show_examples : {
english : 'Show Examples' ,
translated : 'Tampilkan Contoh' ,
} ,
com_nav_plugin_search : {
english : 'Search plugins' ,
translated : 'Cari plugin' ,
} ,
com_nav_plugin_auth_error : {
english : 'There was an error attempting to authenticate this plugin. Please try again.' ,
translated : 'Ada kesalahan saat mencoba mengautentikasi plugin ini. Silakan coba lagi.' ,
} ,
com_nav_export_filename : {
english : 'Filename' ,
translated : 'Nama File' ,
} ,
com_nav_export_filename_placeholder : {
english : 'Set the filename' ,
translated : 'Atur nama file' ,
} ,
com_nav_export_type : {
english : 'Type' ,
translated : 'Tipe' ,
} ,
com_nav_export_include_endpoint_options : {
english : 'Include endpoint options' ,
translated : 'Sertakan opsi endpoint' ,
} ,
com_nav_enabled : {
english : 'Enabled' ,
translated : 'Diaktifkan' ,
} ,
com_nav_not_supported : {
english : 'Not Supported' ,
translated : 'Tidak Didukung' ,
} ,
com_nav_export_all_message_branches : {
english : 'Export all message branches' ,
translated : 'Ekspor semua cabang pesan' ,
} ,
com_nav_export_recursive_or_sequential : {
english : 'Recursive or sequential?' ,
translated : 'Rekursif atau berurutan?' ,
} ,
com_nav_export_recursive : {
english : 'Recursive' ,
translated : 'Rekursif' ,
} ,
com_nav_export_conversation : {
english : 'Export conversation' ,
translated : 'Ekspor percakapan' ,
} ,
🚀 feat: Shared Links (#2772)
* ✨ feat(types): add necessary types for shared link feature
* ✨ feat: add shared links functions to data service
Added functions for retrieving, creating, updating, and deleting shared links and shared messages.
* ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId
Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId.
* ✨ feat: Add share schema and data access functions to API models
* ✨ feat: Add share endpoint to API
The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication.
* ♻️ refactor(utils): generalize react-query cache manipulation functions
Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application.
- Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions.
- Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections.
- Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities.
* ✨ feat(shared-link): add functions to manipulate shared link cache list
implemented new utility functions to handle additions, updates, and deletions in the shared link cache list.
* ✨ feat: Add mutations and queries for shared links
* ✨ feat(shared-link): add `Share` button to conversation list
- Added a share button in each conversation in the conversation list.
- Implemented functionality where clicking the share button triggers a POST request to the API.
- The API checks if a share link was already created for the conversation today; if so, it returns the existing link.
- If no link was created for today, the API will create a new share link and return it.
- Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature.
* ♻️ refactor(hooks): generalize useNavScrolling for broader use
- Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`.
- Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`.
* ✨ feat(settings): add shared links listing table with delete functionality in settings
- Integrated a delete button for each shared link in the table, allowing users to remove links as needed.
* ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use
* ♻️ refactor: update useGetSharedMessages to return TSharedLink
- Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself.
- This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink.
* ✨ feat(shared link): add UI for displaying shared conversations without authentication
- Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication.
- Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context.
* 🔧 chore: Add translations
Translate labels only. Messages remain in English as they are possibly subject to change.
* ♻️ refactor: add icon and tooltip props to EditMenuButton component
* moved icon and popover to arguments so that EditMenuButton can be reused.
* modified so that when a ShareButton is closed, the parent DropdownMenu is also closed.
* ♻️irefactor: added DropdownMenu for Export and Share
* ♻️ refactor: renamed component names more intuitive
* More accurate naming of the dropdown menu.
* When the export button is closed, the parent dropdown menu is also closed.
* 🌍 chore: updated translations
* 🐞 Fix: OpenID Profile Image Download (#2757)
* Add fetch requirement
Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function
* Update openidStrategy.js
---------
Co-authored-by: Danny Avila <danacordially@gmail.com>
* 🚑 fix(export): Issue exporting Conversation with Assistants (#2769)
* 🚑 fix(export): use content as text if content is present in the message
If the endpoint is assistants, the text of the message goes into content, not message.text.
* refactor(ExportModel): TypeScript, remove unused code
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
* 📤style: export button icon (#2752)
* refactor(ShareDialog): logic and styling
* refactor(ExportAndShareMenu): imports order and icon update
* chore: imports
* chore: imports/render logic
* feat: message branching
* refactor: add optional config to useGetStartupConfig
* refactor: disable endpoints query
* chore: fix search view styling gradient in light mode
* style: ShareView gradient styling
* refactor(Share): use select queries
* style: shared link table buttons
* localization and dark text styling
* style: fix clipboard button layout shift app-wide and add localization for copy code
* support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages
* add localizations
* comparisons
---------
Co-authored-by: Yuichi Ohneda <ohneda@gmail.com>
Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com>
Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
com_nav_export : {
english : 'Export' ,
translated : 'Ekspor' ,
} ,
com_nav_shared_links : {
english : 'Shared links' ,
translated : 'Link berbagi' ,
} ,
com_nav_shared_links_manage : {
english : 'Manage' ,
translated : 'Pengeluaran' ,
} ,
com_nav_shared_links_empty : {
english : 'You have no shared links.' ,
translated : 'Anda tidak memiliki link berbagi.' ,
} ,
com_nav_shared_links_name : {
english : 'Name' ,
translated : 'Nama' ,
} ,
com_nav_shared_links_date_shared : {
english : 'Date shared' ,
translated : 'Tanggal berbagi' ,
} ,
2024-05-10 15:56:25 -04:00
com_nav_theme : {
english : 'Theme' ,
translated : 'Tema' ,
} ,
com_nav_theme_system : {
english : 'System' ,
translated : 'Sistem' ,
} ,
com_nav_theme_dark : {
english : 'Dark' ,
translated : 'Gelap' ,
} ,
com_nav_theme_light : {
english : 'Light' ,
translated : 'Terang' ,
} ,
com_nav_user_name_display : {
english : 'Display username in messages' ,
translated : 'Tampilkan nama pengguna dalam pesan' ,
} ,
2024-06-13 06:52:30 -07:00
com_nav_save_drafts : {
english : 'Save drafts locally' ,
translated : 'Simpan draft' ,
} ,
2024-05-10 15:56:25 -04:00
com_nav_clear_all_chats : {
english : 'Clear all chats' ,
translated : 'Hapus semua obrolan' ,
} ,
com_nav_confirm_clear : {
english : 'Confirm Clear' ,
translated : 'Konfirmasi Hapus' ,
} ,
com_nav_close_sidebar : {
english : 'Close sidebar' ,
translated : 'Tutup sidebar' ,
} ,
com_nav_open_sidebar : {
english : 'Open sidebar' ,
translated : 'Buka sidebar' ,
} ,
com_nav_send_message : {
english : 'Send message' ,
translated : 'Kirim pesan' ,
} ,
com_nav_log_out : {
english : 'Log out' ,
translated : 'Keluar' ,
} ,
com_nav_user : {
english : 'USER' ,
translated : 'PENGGUNA' ,
} ,
com_nav_archived_chats : {
english : 'Archived chats' ,
translated : 'Percakapan Arsip' ,
} ,
com_nav_archived_chats_manage : {
english : 'Manage' ,
translated : 'Pengelolaan' ,
} ,
com_nav_archived_chats_empty : {
english : 'You have no archived conversations.' ,
translated : 'Tidak ada percakapan yang diarsipkan.' ,
} ,
com_nav_archive_all_chats : {
english : 'Archive all chats' ,
translated : 'Arsipkan semua percakapan' ,
} ,
com_nav_archive_all : {
english : 'Archive all' ,
translated : 'Arsipkan semua' ,
} ,
com_nav_archive_name : {
english : 'Name' ,
translated : 'Nama' ,
} ,
com_nav_archive_created_at : {
english : 'DateCreated' ,
translated : 'TanggalDibuat' ,
} ,
com_nav_clear_conversation : {
english : 'Clear conversations' ,
translated : 'Hapus percakapan' ,
} ,
com_nav_clear_conversation_confirm_message : {
english : 'Are you sure you want to clear all conversations? This is irreversible.' ,
translated : 'Anda yakin ingin menghapus semua percakapan? Ini tidak dapat dibatalkan.' ,
} ,
com_nav_help_faq : {
english : 'Help & FAQ' ,
translated : 'Bantuan & FAQ' ,
} ,
com_nav_settings : {
english : 'Settings' ,
translated : 'Pengaturan' ,
} ,
com_nav_search_placeholder : {
english : 'Search messages' ,
translated : 'Cari pesan' ,
} ,
2024-07-29 07:45:59 -07:00
com_nav_info_bookmarks_rebuild : {
english :
'If the bookmark count is incorrect, please rebuild the bookmark information. The bookmark count will be recalculated and the data will be restored to its correct state.' ,
translated :
'Jika jumlah penanda tidak benar, silakan bangun kembali informasi penanda. Jumlah penanda akan dihitung ulang dan data akan dipulihkan ke keadaan yang benar.' ,
} ,
2024-05-10 15:56:25 -04:00
com_nav_setting_general : {
english : 'General' ,
translated : 'Umum' ,
} ,
com_nav_setting_beta : {
english : 'Beta features' ,
translated : 'Fitur beta' ,
} ,
com_nav_setting_data : {
english : 'Data controls' ,
translated : 'Kontrol data' ,
} ,
com_nav_setting_account : {
english : 'Account' ,
translated : 'Akun' ,
} ,
com_nav_language : {
english : 'Language' ,
translated : 'Bahasa' ,
} ,
com_nav_lang_auto : {
english : 'Auto detect' ,
translated : 'Deteksi otomatis' ,
} ,
com_nav_lang_english : {
english : 'English' ,
translated : 'English' ,
} ,
com_nav_lang_chinese : {
english : '中文' ,
translated : '中文' ,
} ,
com_nav_lang_german : {
english : 'Deutsch' ,
translated : 'Deutsch' ,
} ,
com_nav_lang_spanish : {
english : 'Español' ,
translated : 'Español' ,
} ,
com_nav_lang_french : {
english : 'Français ' ,
translated : 'Français ' ,
} ,
com_nav_lang_italian : {
english : 'Italiano' ,
translated : 'Italiano' ,
} ,
com_nav_lang_polish : {
english : 'Polski' ,
translated : 'Polski' ,
} ,
com_nav_lang_brazilian_portuguese : {
english : 'Português Brasileiro' ,
translated : 'Português Brasileiro' ,
} ,
com_nav_lang_russian : {
english : 'Русский' ,
translated : 'Русский' ,
} ,
com_nav_lang_japanese : {
english : '日本語' ,
translated : '日本語' ,
} ,
com_nav_lang_swedish : {
english : 'Svenska' ,
translated : 'Svenska' ,
} ,
com_nav_lang_korean : {
english : '한국어' ,
translated : '한국어' ,
} ,
com_nav_lang_vietnamese : {
english : 'Tiếng Việt' ,
translated : 'Tiếng Việt' ,
} ,
com_nav_lang_traditionalchinese : {
english : '繁體中文' ,
translated : '繁體中文' ,
} ,
com_nav_lang_arabic : {
english : 'العربية' ,
translated : 'العربية' ,
} ,
com_nav_lang_turkish : {
english : 'Türkçe' ,
translated : 'Türkçe' ,
} ,
com_nav_lang_dutch : {
english : 'Nederlands' ,
translated : 'Nederlands' ,
} ,
com_nav_lang_indonesia : {
english : 'Indonesia' ,
translated : 'Indonesia' ,
} ,
} ;