From 402a007c5ae13294cec9944516c0ccdb0b0c7c70 Mon Sep 17 00:00:00 2001 From: Rucha Mahabal Date: Mon, 25 May 2026 10:59:55 +0530 Subject: [PATCH 01/57] feat: basic AI page generation (single prompt) --- frontend/components.d.ts | 2 + frontend/src/components/AIPanel.vue | 86 +++++++++ frontend/src/components/StudioLeftPanel.vue | 14 +- .../src/components/StudioSettingsDialog.vue | 87 +++++++++ frontend/src/components/StudioToolbar.vue | 11 +- frontend/src/types/index.ts | 2 +- pyproject.toml | 1 + studio/ai.py | 169 ++++++++++++++++++ .../doctype/studio_settings/__init__.py | 0 .../studio_settings/studio_settings.json | 47 +++++ .../studio_settings/studio_settings.py | 20 +++ 11 files changed, 436 insertions(+), 3 deletions(-) create mode 100644 frontend/src/components/AIPanel.vue create mode 100644 frontend/src/components/StudioSettingsDialog.vue create mode 100644 studio/ai.py create mode 100644 studio/studio/doctype/studio_settings/__init__.py create mode 100644 studio/studio/doctype/studio_settings/studio_settings.json create mode 100644 studio/studio/doctype/studio_settings/studio_settings.py diff --git a/frontend/components.d.ts b/frontend/components.d.ts index 41120a03..28ac4119 100644 --- a/frontend/components.d.ts +++ b/frontend/components.d.ts @@ -8,6 +8,7 @@ export {} /* prettier-ignore */ declare module 'vue' { export interface GlobalComponents { + AIPanel: typeof import('./src/components/AIPanel.vue')['default'] AppComponent: typeof import('./src/components/AppComponent.vue')['default'] AppDialog: typeof import('./src/components/AppDialog.vue')['default'] AppHeader: typeof import('./src/components/AppLayout/AppHeader.vue')['default'] @@ -96,6 +97,7 @@ declare module 'vue' { StudioLeftPanel: typeof import('./src/components/StudioLeftPanel.vue')['default'] StudioLogo: typeof import('./src/components/Icons/StudioLogo.vue')['default'] StudioRightPanel: typeof import('./src/components/StudioRightPanel.vue')['default'] + StudioSettingsDialog: typeof import('./src/components/StudioSettingsDialog.vue')['default'] StudioToolbar: typeof import('./src/components/StudioToolbar.vue')['default'] TextBlock: typeof import('./src/components/AppLayout/TextBlock.vue')['default'] } diff --git a/frontend/src/components/AIPanel.vue b/frontend/src/components/AIPanel.vue new file mode 100644 index 00000000..632d1f84 --- /dev/null +++ b/frontend/src/components/AIPanel.vue @@ -0,0 +1,86 @@ +