Commit Graph
42 Commits
Author SHA1 Message Date
Alaister Young 6c83f97478 fix: local api route fixes (#35642)
* fix: local api route fixes

* fix build

* fix tests

* address feedback

* remove unused debug
2025-05-14 15:26:50 +00:00
Ivan Vasilov 21f6f1bb16 fix: Disable the convertSqlToSupabaseJs AI tool (#35280)
* Disable the convertSqlToSupabaseJs tool because it relies on sql-to-rest which expects binaries of libpg-query.

* Comment out the code instead of deleting it.
2025-04-25 22:30:39 +07:00
Joshen LimandAlaister Young 8239e2f27b Cache results in assistant panel (#34509)
* Cache results in assistant panel

* Small fixes

* fix

* disable switching chats while new messages are streaming in

* small comment

* Fix Create new snippet CTA in query block

* Add useCallbacks

* Update

* Remove console log

---------

Co-authored-by: Alaister Young <a@alaisteryoung.com>
2025-03-31 19:24:21 +08:00
Joshen Lim 497ef6159b Just to trigger redeploy (#34326) 2025-03-21 21:19:16 +08:00
Joshen Lim 6f765da829 Fix openai api key empty state not showing in local (#34120) 2025-03-13 15:15:35 +01:00
Saxon FletcherandJoshen Lim 1cefb95a73 Create edge function (#33726)
* page components

* page component changes

* settings but broken saving

* rvert

* use sheet for provider

* styling

* remove things

* Some refactoring and fixing, added JSDocs to layouts

* Smol refactor

* Fix

* Update JSDocs

* updated scaffolding

* update edge functions layout

* remove params

* Clean up

* Spelling

* Clean up FormFieldWrappers

* One last clean up

* create edge functon

* use component

* flag

* fix merge errors

* fix imports

* fix merge issues

* fix import

* fix flag

* remove unused

* move templates

* re-add flag

* Small refactors

* Smol refactors

* Refactor

* add rename and delete via context

* create function fixes

* moved function name

* Smol update

* Small fix for selected state in edge functions side menu when on /new

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-02-27 20:04:46 +08:00
Saxon FletcherandJoshen Lim 28fe5811de Inline editor feature preview (#33541)
* add edge function knowledge

* deploy edge function mutaton

* add edge function block with deploy

* update function url

* update tools

* editor sql

* add templates

* use monaco editor

* hook up templates

* fixes

* add behind feature flag

* preview docs

* move editor

* initialPrompt

* consolidate widgets

* remove generic editor

* move logic

* fix ts

* include schema metadata

* Fix width of save snippet button

* Set tooltip position

* Use inlineLink component

* Remove unnecessary z index

* Lint

* Lint import statements in EditorPanel

* fixes

* fix keyboard shortcut

* show/hide results and invalidation

* fix focus issues in widget

* fixes

* fix ts

* Support cmd enter shortcut to run query in InlineEditor

* Update InlineEditorPreview to use admonition

* prompt updates

* add discussion url to preview

* schemas array

* One last clean up

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-02-19 14:58:58 +10:00
dff6c817ae Chore/assistant in self hosted (#33422)
* Add layoutheader to self-hosted to allow showing assistant

* Fix layout

* Remove debug checks

* Check for key

* Dont load tables

* Fix assistant error handling

* Yeet

* Update turbo.json

* Another one

* god

* Fix

* Add fallback

* last attempt to fix

* Clean up

* take the wheel

* Tiny fix

* Skip enrich query for local, to match prod

---------

Co-authored-by: Alaister Young <alaister@users.noreply.github.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-02-18 17:37:53 +08:00
f58b594ee8 Deploy edge function from Assistant (#33293)
* add edge function knowledge

* deploy edge function mutaton

* add edge function block with deploy

* update function url

* update tools

* Update apps/studio/pages/api/ai/sql/tools.ts

Co-authored-by: Greg Richardson <greg.nmr@gmail.com>

* edge function tool fixes

* copy

* prompt changes and verify jwt

* Very minor refactors

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
Co-authored-by: Greg Richardson <greg.nmr@gmail.com>
2025-02-07 14:11:23 +10:00
Greg Richardson 1106bfea32 fix: ai prompt to discourage security_invoker=on for table creations (#33207) 2025-01-30 17:08:15 -07:00
8b90d416ec Add inline completions to SQL Editor (#30706)
* monaco complete

* progress

* just add panel to sqleditor

* update panel and prompt

* adjust prompt

* clean up

* clean up and improve prompt

* update prompt

* refine prompt

* remove package

* use constants file

* revert v3 prompt

* combine diff action bars

* use widget

* refactor

* Some updates

* fix: useCompletion base path

* fix: typo on monaco action label

* feat: use entire selected line(s) for inline completions

* fix widget consistency

* widget styling

* Fix TS

* feat: lock llm model version

* fix enter key issue

* move complete endpoint

* update complete prompt

* remove file

* placeholder text

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
Co-authored-by: Greg Richardson <greg.nmr@gmail.com>
2024-12-17 15:02:06 +10:00
Joshen Lim 464f9aa5dd Chore/update rules in generate v3 (#31113)
* Add rules for RLS policies when using functions from auth schema

* Add rules to never expose auth.users through a public view

* Add rule for ensuring all tables have a PK

* Add rule to create a DB index when a foreign key is created

* Add rule to enable RLS on tables by default

* Add rule to use security invoker for views

* Add rules for materialized view, foreign table, and extensions
2024-12-13 17:15:11 +08:00
Saxon Fletcher 9f718e904f Feat/assistant scroll (#31042) 2024-12-11 07:00:29 +10:00
Saxon Fletcher ba372c349d Feat/assistant refinements 3 (#31015)
* limit local storage messages

* add tool for getting database functions

* reduce loading jitter in assistant
2024-12-09 17:02:39 +10:00
Joshen Lim 7ca43d8919 Chore/fix error handling in generate v3 (#30913)
* Fix error handling in generate-v3 endpoint

* Lint
2024-12-05 15:40:23 +08:00
Saxon Fletcher a92e34d7a4 dont send current table or schema if not opted in (#30793) 2024-12-02 20:51:29 +08:00
Saxon Fletcher ccb26246f4 let the assistant decide when to run (#30789)
* let the assistant decide when to run

* remove log
2024-12-02 21:47:46 +10:00
Saxon FletcherandJoshen Lim fcfc1cf38f Assistant refinements (#30759)
* message enter

* auth prompt

* style changes to message

* header assistant button

* more auth prompt

* prompt

* prompt user refine

* iteration of read only

* Add basic tests for AIAssistant.utils

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2024-12-02 14:46:11 +08:00
Saxon FletcherandJoshen Lim 8c3da2ed95 More assistant refinements (#30730)
* ai refinements

* ui fixes

* space

* reduce dot height

* Fix prop type issue

* Assign allowHoverEffect to ai assistant button and panel

* Lint

* Some lints

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2024-11-29 20:31:02 +10:00
Saxon FletcherandJoshen Lim aea64c9a07 Assistant refinements (#30685)
* empty state refinements

* specify js conversion prompt

* placeholder state

* update dot color

* Lint

* ADjust padding

* Lint imports

* adjust prompt

* revert padding

* wrap line prop in code block

* fix margin

* use sql icon

* margin

* add chart prompt

* Add prevent default behaviour

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2024-11-28 16:37:54 +08:00
Saxon FletcherandJoshen Lim 2bcc17d514 Feat/assistant convert supabasejs (#30648)
* add ability to convert sql to js

* remove console

* Merge master + small style fix

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2024-11-27 09:56:46 +10:00
Saxon FletcherandJoshen Lim 72910fc30f Feat/assistant additions (#30647)
* show thinking if last message is empty

* sql toggle copy and border fix

* add table and schema context

* add suggestions for policy

* Add snippet content to ai assistant if on sql editor and assistant is open

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2024-11-26 20:17:54 +08:00
Joshen LimandSaxon Fletcher 12d92aed99 Assistant V2 (#30523)
* start

* added panels

* remove stuff

* fixes and refinements

* clean up

* remove old assistant panel

* resizable assistant kinda

* use icon

* Add missing package

* remove canvas

* add suggestions

* updated empty state if no tables exist

* fix table condition

* Implement diffing if using assistant in sql editor

* Reinstate old assistant in SQL editor if feature preview is off

* pane size adjustment

* assistant button corners

* Add SQL snippet content to assistant if opening assistant in sql editor

* Add the necessary checks for opt in and hipaa

* revert adding snippet to assistant when opening assistant in sql editor

* Add cmd i shortcut

* Add admonitions for when disablePrompt is toggled on, and if no api key is set. Add footer note RE rate limitation

* Bump ai package in packages

* some fixes for backwards compability depending on feature preview toggled

* Rename feature preview property for new assistant

* Smol fix

* Prevent SQL snippet from running until message is finished

* only loading last message

* fix z-index

* save chat state to global state

* add debug to failed ai queries

* Add basic contextual invalidation

* Add explain code action to SQL editor

* Add link to abort ongoing queries from SqlSnippet

* Update feature preview content

* Fix

* Fix

* Fix

* Te4st

* Fix tests

* ONly show ai button within a project

* Fix PH tracking

* Beef up a bit more event tracking

* Rough fix to padding when assistant is open

* A bit more telemetry stuff

* Update prompts

* fix rls editing via assistant

* Update generate-v3.ts

prompt to get auth schema too

* Add policy satement to assistant when editing

* Address all comments

* fixc

* Fix SqlSnippet not taking full width on larger viewports

* Adjust max width

---------

Co-authored-by: Saxon Fletcher <saxonafletcher@gmail.com>
2024-11-25 18:50:56 +08:00
Terry SuttonandJoshen Lim 95219d3e2a Chore/cron nl (#30345)
* Add NL input

* Add chart to sidebar

* Better loading animation

* Redo api route to not use edge

* Remove edge stuff

* Allow sheet to close

* Cleanup

* Adjust loading state

* Add timezone

* CR comments

* Replace query with useCompletion

* Set the form value

* Tiny clean up

* Tinyyyyy tweaks

* Fix missing syntax

* Smol refactor

* Fixy

* Remove console log

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2024-11-12 11:55:01 -03:30
Joshen Lim 225d461381 Hook up RLS to new assistant if feature flag is enabled (#30357)
* Hook up RLS to new assistant if feature flag is enabled

* Reset conversation if opening a different entity

* Add prompt to use alter policy if policy definition is provided

* Remove console log
2024-11-08 18:03:30 +08:00
Terry SuttonandJoshen Lim d30ec48b50 Chore/self hosted assistant disabled (#30198)
* Add a message if openai_api_key not set

* Fix disabled state

* Some fixes

* Add same check in global assistant

* Remove check for api key for platform

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2024-10-31 09:19:03 -02:30
Joshen Lim f521109ce2 Chore/database functions v2 (#29969)
* Init AiAssistantPanel

* Temp

* Temp

* iterating on assistant ux

* More spiking

* Tweaking...

* Moar tweaking..

* Even more tweaking

* Tweek

* More tweaks

* Final tweaking...

* TWEAK

* Spelling

* Fix

* Assistant error handling and small bug fix in context for message

* Add feature flag

* Fix

* Address all feedback

* Minor
2024-10-23 16:43:38 +08:00
Terry Sutton a40ccd11bc rls changes (#29118)
* Inital setup

* Add suggest feature to the RLS Assistant

* Add AI button

* Use existing policies in AI editor

* Remove old feature preview

* Cleanup

* Tooltip

* Update

* Change panel width

* Fix type

* Fix types again

* Flag cleanup

* Add tooltip

* Cleanup

* Add a clear history button
2024-10-02 08:52:36 -02:30
Charis 4e93bf42e8 fix(ai): restrict edge function regions (#29330)
Missed some routes when restricting edge function regions in an earlier
PR. Any edge function that calls OpenAI needs to be called from an
OpenAI-supported region.
2024-09-17 10:35:34 -04:00
Greg RichardsonandIvan Vasilov 801ad65603 RLS AI improvements (#26895)
* chore: libpg-query types

* feat: improved rls ai tests

* feat: simplify assertitions for sql expressions

* refactor: split ai logic into separate files

* feat(rls-ai): test select, insert, update, delete policies

* feat: adds withMetadata wrapper for failed tests

* chore: remove custom libpg-query types

* feat(rls-ai): make tests concurrent

* fix(rls-ai): rules for 'using' and 'with check'

* feat(rls-ai): discourages restrictive policies

* feat(ai): makes withMetadata util sync or async

* refactor(ai): moves withMetadata to generic test utils

* feat(rls-ai): test joined table

* feat(rls-ai): test mfa

* chore(ai): make all tests concurrent

* fix(ai): chatSql function rename in studio

* refactor(ai): isolate logic into separate files

* chore(ai): remove trailing comma in tsconfig

* chore(ai): remove unused dep

* Reset some of the package versions to the versions from master.

* chore(ai): remove unused imports

---------

Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
2024-06-05 14:33:56 +02:00
Ivan Vasilov 6f5cabdc62 feat: Make the conversational AI in the SQL editor default (#23142)
* Remove feature preview for the conversational AI for SQL editor.

* Remove all code related to the previous implementation of editor ai.

* Update the snapshots for the ai commands.

* Remove unneeded code from the ai panel.

* Show the diff bar when debugging.

* Convert the updateEditor function into a callback.

* Simplify the debugging functionality by using react state instead of react context.

* Erase the AI disclaimer when formatting code as modification.

* Add a button to clear the chat history.
2024-05-14 15:40:42 +02:00
Terry Sutton a5d00f9923 Chore/rename open ai key name (#21856)
* Rename OPENAI_KEY to OPENAI_API_KEY

* Force a redeploy
2024-04-25 09:38:56 -02:30
7548fd1850 feat: Conversational AI for the SQL Editor (#21388)
* Add a API endpoint for generating queries for the SQL editor.

* Merge all multiline props.

* Add a new component for diff actions.

* Copy components for the AI panel.

* Add useChat hook.

* Add a feature preview for the this feature. The preview is dependent on the feature flag.

* Reorder the nesting in the SQL editor to accomodate the AI assistant.

* Try to fit both AI assistants in the SQL editor, available via a feature preview.

* Refactor the SQL editor to make the diff work correctly in all cases.

* Minor fixes for the old AI feature.

* Fix the debug functionality to work with both assistants.

* Fix some copy-paste leftovers.

* Remove unneeded code.

* Make the icons softer.

* Fix the name of the panel component.

* Fix console.logs.

* Add overflow to the AI assistant.

* surface opt in config in ai settings button

* Skip diffing if editor is empty

* Add selected state when selecting a message to insert/replace code

* Add sample prompts

* Add SQL ai dislaimer when replacing code

* Light mode action bar nudges

* Add text for the feature preview.

* lang nudges

* Hide the command suggestions for now.

* Set the discussion url to undefined.

* Don't add the disclaimer twice.

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
Co-authored-by: Terry Sutton <saltcod@gmail.com>
2024-03-05 17:26:11 +01:00
Greg RichardsonandIvan Vasilov a6f1313490 AI SQL: Update model + add test suite (#19644)
* refactor: ai sql logic to common package

* feat: ai sql tests

* feat: test rls policy ai chat assistant

* refactor: jest env loading

* feat(ai): improve sql title and description quality

* fix: ai message role type

* Move the new files to a separate package.

* Remove a forgotten console.log.

* Migrate the tests to use snapshots and commit the snapshots.

* Separate the functions which require edge runtime to be exported via /edge subpath.

* Bust the turbo cache when one of the deps has been rebuilt.

* chore: fix package main/type references

* fix: package lock out of sync

* fix: ai sql debugging to fix typos

---------

Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
2023-12-18 11:23:59 -07:00
Ivan VasilovandTerry Sutton eb83b51d98 fix: Add some more instructions to the AI Editor (#19507)
* Add some more instructions to the AI Editor.

* More updates to the suggestion instructions.

* Add spacing to policy details

* Monaco settings

* Copy changes to check when clicked

* Spelling

* More instructions for the AI.

* Make the error panel wrap text. Calculate the height of the editor dynamically.

* Add a comment.

---------

Co-authored-by: Terry Sutton <saltcod@gmail.com>
2023-12-11 11:20:04 +01:00
Ivan Vasilov efa055f068 fix: RLS Editor with Streaming AI - second attempt (#19462)
* Reapply all changes from the reverted PR.

* Move the API route to pages folder.

* Turn off outputFileTracing.
2023-12-06 15:54:22 +01:00
Kevin Grüneberg d6b7c1b7ba Revert "feat: Add streaming responses to the new RLS Editor (#19304)" (#19439)
This reverts commit a2b01e0bc5.
2023-12-05 16:50:26 +00:00
Ivan Vasilov a2b01e0bc5 feat: Add streaming responses to the new RLS Editor (#19304)
* Add vercel/ai. Commit additional next types.

* Add a API route in /app for streaming responses.

* Make the components work with streaming response.

* Add a dummy page to /app folder to fix a linking bug.

* Fix the dummy page.

* Fix the dummy page again.

* Add an empty layout to the app folder.

* Make the code snippets in the chat read-only.

* Remove queries and mutations for suggest.

* Reset the chat when closing the panel.

* Make the AI instructions a bit better.

* Don't render empty code blocks.

* Try to use remark for rendering the code. Style fixes for CodeBlock in AI assistant panel.

* Fix the styling of the definitions when sending them to OpenAI.

* Fix the css styling of the messages and code blocks.

* Move the suggest API route from app to pages folder.

* Revert the change for app API routes.

* Make the API route look like the rest of the API routes.

* Use Pre instead of Code because the <code> tags aren't working if between spans.

* Minor leftovers.

* Revert to using app route handlers.

* Change the wording on the diff header.

* Add nextjs types.

* Fix a missing import.

* Move AssistantChatForm back to db-new.

* Fix a build error.

* Rename the suggest route to assistant.

* Fix Joshen's comments.
2023-12-05 16:05:02 +01:00
Joshen Lim 9d48e8c770 Chore/rls ai assistant updates 041223 (#19404)
* Send policy definition to AI when editing a policy

* Only send entity definitions if opted into AI for RLS ai assistant

* Scaffold collapsible policy details

* Update comment

* Update

* Update height

* fix messages sorting
2023-12-05 15:42:07 +08:00
Ivan VasilovandGreg Richardson 33f617a6cc Migrate all apps and packages to use OpenAI v4 lib (#19270)
* Migrate all apps and packages to use OpenAI v4 lib.

* Minor fix.

* refactor: improve types for completion chunks

---------

Co-authored-by: Greg Richardson <greg.nmr@gmail.com>
2023-11-30 09:01:51 +00:00
1f38fe2012 feat: New Policy Editor (#19166)
* Add two more sizes to the Panel component.

* Add alias for the older openai-api library. The new one is added under the openai name.

* Add API routes

* Add components for the new AI RLS panel.

* Bunch of changes to the AI Policy Editor.

* Add a button for opening the new Policy Editor.

* Add a feature flag for the new editor.

* Add a confirmation modal when closing the panel.

* Fix leftover data when closing the panel.

* Make the copy button work.

* Add the next/swc packages to package-lock.json.

* Merge master

* Scaffold debug sql in rls editor

* Small improvements to policy chat

* Hook up debug to ai assistant panel

* Improve debug UX

* Add debug request badge

* Some styling fix

* Small styling fix

* Another small styling fix

* Shift create new policy ai button + fix error stylign with code editor height

* Add tooltips to apply changes and copy code from assistant message

* Hide assistant button is not platform

* Small lint

* Add default error handlers to all AI RQ mutations

* Small fix

* Remove IS PLATFORM check for rls assistant

* Add placeholder to RLS code editor

* Fix diff + rls code editor

* Add placeholder message after sending prompt

* Small style

* RLSCodeEditor hit tab if empty to populate placeholder text

* Light mode nudeges

* Update logic for when confirmation close modal should show

* Set render overview ruler as false for rls diff editor

* improve chat UX to make it smoother (thank you alaister for your help 🙏)

* Dynamically do keepPreviousData

* Gracefully handle errors for add prompt

* Use animated ai icon while message is loading

* using Sheet component

* Address commernts

* Bit more improvements

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>
2023-11-29 17:12:50 +08:00
Ivan Vasilov 436bdb10ae chore: Move the studio app to apps/studio (#18915)
* Move all studio files from /studio to /apps/studio.

* Move studio specific prettier ignores.

* Fix the ui references from studio.

* Fix the css imports.

* Fix all package.json issues.

* Fix the prettier setup for the studio app.

* Add .turbo folder to prettierignore.

* Fix the github workflows.
2023-11-15 12:38:55 +01:00