Skip to content

Commit 5804804

Browse files
authored
Merge pull request #2373 from appwrite/suggestions-api
Feat: ai suggestions
2 parents 5c254fc + 3e4ac31 commit 5804804

File tree

31 files changed

+1662
-116
lines changed

31 files changed

+1662
-116
lines changed

.env.example

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,6 @@ PUBLIC_CONSOLE_FEATURE_FLAGS=
33
PUBLIC_APPWRITE_MULTI_REGION=false
44
PUBLIC_APPWRITE_ENDPOINT=http://localhost/v1
55
PUBLIC_STRIPE_KEY=
6-
PUBLIC_GROWTH_ENDPOINT=
6+
PUBLIC_GROWTH_ENDPOINT=
7+
PUBLIC_CONSOLE_EMAIL_VERIFICATION=false
8+
PUBLIC_CONSOLE_MOCK_AI_SUGGESTIONS=true

.github/workflows/publish.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ jobs:
4141
"PUBLIC_CONSOLE_MODE=cloud"
4242
"PUBLIC_CONSOLE_FEATURE_FLAGS="
4343
"PUBLIC_APPWRITE_MULTI_REGION=true"
44+
"PUBLIC_CONSOLE_MOCK_AI_SUGGESTIONS=false"
4445
"PUBLIC_GROWTH_ENDPOINT=${{ secrets.PUBLIC_GROWTH_ENDPOINT }}"
4546
"PUBLIC_STRIPE_KEY=${{ secrets.PUBLIC_STRIPE_KEY }}"
4647
"SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }}"
@@ -81,6 +82,7 @@ jobs:
8182
"PUBLIC_CONSOLE_MODE=cloud"
8283
"PUBLIC_CONSOLE_FEATURE_FLAGS="
8384
"PUBLIC_APPWRITE_MULTI_REGION=true"
85+
"PUBLIC_CONSOLE_MOCK_AI_SUGGESTIONS=false"
8486
"PUBLIC_GROWTH_ENDPOINT=${{ secrets.PUBLIC_GROWTH_ENDPOINT }}"
8587
"PUBLIC_STRIPE_KEY=${{ secrets.PUBLIC_STRIPE_KEY_STAGE }}"
8688
publish-self-hosted:
@@ -118,6 +120,7 @@ jobs:
118120
build-args: |
119121
"PUBLIC_CONSOLE_MODE=self-hosted"
120122
"PUBLIC_APPWRITE_MULTI_REGION=false"
123+
"PUBLIC_CONSOLE_MOCK_AI_SUGGESTIONS=false"
121124
"PUBLIC_CONSOLE_FEATURE_FLAGS="
122125
"PUBLIC_GROWTH_ENDPOINT=${{ secrets.PUBLIC_GROWTH_ENDPOINT }}"
123126
@@ -156,6 +159,7 @@ jobs:
156159
build-args: |
157160
"PUBLIC_CONSOLE_MODE=cloud"
158161
"PUBLIC_APPWRITE_MULTI_REGION=false"
162+
"PUBLIC_CONSOLE_MOCK_AI_SUGGESTIONS=false"
159163
"PUBLIC_CONSOLE_FEATURE_FLAGS="
160164
"PUBLIC_STRIPE_KEY=${{ secrets.PUBLIC_STRIPE_KEY_STAGE }}"
161165
"PUBLIC_GROWTH_ENDPOINT=${{ secrets.PUBLIC_GROWTH_ENDPOINT }}"

Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ ADD ./static /app/static
2323
ARG PUBLIC_CONSOLE_MODE
2424
ARG PUBLIC_CONSOLE_FEATURE_FLAGS
2525
ARG PUBLIC_APPWRITE_MULTI_REGION
26+
ARG PUBLIC_CONSOLE_MOCK_AI_SUGGESTIONS
2627
ARG PUBLIC_APPWRITE_ENDPOINT
2728
ARG PUBLIC_GROWTH_ENDPOINT
2829
ARG PUBLIC_STRIPE_KEY
@@ -34,6 +35,7 @@ ENV PUBLIC_GROWTH_ENDPOINT=$PUBLIC_GROWTH_ENDPOINT
3435
ENV PUBLIC_CONSOLE_MODE=$PUBLIC_CONSOLE_MODE
3536
ENV PUBLIC_CONSOLE_FEATURE_FLAGS=$PUBLIC_CONSOLE_FEATURE_FLAGS
3637
ENV PUBLIC_APPWRITE_MULTI_REGION=$PUBLIC_APPWRITE_MULTI_REGION
38+
ENV PUBLIC_CONSOLE_MOCK_AI_SUGGESTIONS=$PUBLIC_CONSOLE_MOCK_AI_SUGGESTIONS
3739
ENV PUBLIC_STRIPE_KEY=$PUBLIC_STRIPE_KEY
3840
ENV SENTRY_AUTH_TOKEN=$SENTRY_AUTH_TOKEN
3941
ENV SENTRY_RELEASE=$SENTRY_RELEASE

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@
2222
},
2323
"dependencies": {
2424
"@ai-sdk/svelte": "^1.1.24",
25-
"@appwrite.io/console": "https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@7747562",
25+
"@appwrite.io/console": "https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@f08cb74",
2626
"@appwrite.io/pink-icons": "0.25.0",
27-
"@appwrite.io/pink-icons-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@f2198f1",
27+
"@appwrite.io/pink-icons-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@077179c",
2828
"@appwrite.io/pink-legacy": "^1.0.3",
29-
"@appwrite.io/pink-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@f2198f1",
29+
"@appwrite.io/pink-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@077179c",
3030
"@faker-js/faker": "^9.9.0",
3131
"@popperjs/core": "^2.11.8",
3232
"@sentry/sveltekit": "^8.38.0",

pnpm-lock.yaml

Lines changed: 15 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/lib/actions/analytics.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,9 +274,12 @@ export enum Submit {
274274
DatabaseDelete = 'submit_database_delete',
275275
DatabaseUpdateName = 'submit_database_update_name',
276276
DatabaseImportCsv = 'submit_database_import_csv',
277+
277278
ColumnCreate = 'submit_column_create',
278279
ColumnUpdate = 'submit_column_update',
279280
ColumnDelete = 'submit_column_delete',
281+
ColumnSuggestions = 'submit_column_suggestions',
282+
280283
RowCreate = 'submit_row_create',
281284
RowDelete = 'submit_row_delete',
282285
RowUpdate = 'submit_row_update',

src/lib/components/alerts/emailVerificationBanner.svelte

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,20 @@
66
import SendVerificationEmailModal from '../account/sendVerificationEmailModal.svelte';
77
import { page } from '$app/stores';
88
import { wizard, isNewWizardStatusOpen } from '$lib/stores/wizard';
9-
import { isCloud } from '$lib/system';
9+
import { isCloud, VARS } from '$lib/system';
1010
1111
const hasUser = $derived(!!$user);
1212
const needsEmailVerification = $derived(hasUser && !$user.emailVerification);
1313
const notOnOnboarding = $derived(!$page.route.id.includes('/onboarding'));
1414
const notOnWizard = $derived(!$wizard.show && !$isNewWizardStatusOpen);
15+
const isEnabledViaEnvConfig = $derived(VARS.EMAIL_VERIFICATION);
1516
const shouldShowEmailBanner = $derived(
16-
isCloud && hasUser && needsEmailVerification && notOnOnboarding && notOnWizard
17+
isEnabledViaEnvConfig &&
18+
isCloud &&
19+
hasUser &&
20+
needsEmailVerification &&
21+
notOnOnboarding &&
22+
notOnWizard
1723
);
1824
1925
let showSendVerification = $state(false);

src/lib/layout/notifications.svelte

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<script lang="ts">
2-
import { dismissNotification, notifications } from '../stores/notifications';
32
import { flip } from 'svelte/animate';
43
import { Layout, Toast } from '@appwrite.io/pink-svelte';
4+
import { dismissNotification, notifications } from '../stores/notifications';
55
</script>
66

77
{#if $notifications}
@@ -28,16 +28,16 @@
2828

2929
<style lang="scss">
3030
section {
31+
right: 3.25px;
32+
z-index: 1001;
3133
position: fixed;
3234
top: calc(var(--main-header-height) + 12px);
33-
right: 12px;
34-
z-index: 1001;
3535
}
3636
3737
@media (min-width: 768px) {
3838
section {
39-
top: calc(var(--main-header-height) + 24px);
4039
right: 24px;
40+
top: calc(var(--main-header-height) + 24px);
4141
}
4242
}
4343
</style>

src/lib/layout/progress.svelte

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<script lang="ts">
2+
import { navigationCancelled } from '$lib/stores/navigation';
23
import { afterNavigate, beforeNavigate } from '$app/navigation';
34
45
const minimum = 0.08;
@@ -97,6 +98,13 @@
9798
complete();
9899
});
99100
101+
navigationCancelled.subscribe((cancelled) => {
102+
if (cancelled) {
103+
complete();
104+
navigationCancelled.set(false);
105+
}
106+
});
107+
100108
$: barStyle = (width && width * 100 && `width: ${width * 100}%;`) || '';
101109
</script>
102110

src/lib/stores/navigation.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { writable } from 'svelte/store';
2+
3+
export const navigationCancelled = writable(false);

0 commit comments

Comments
 (0)