diff --git a/apps/stage-web/package.json b/apps/stage-web/package.json index ecd3ec4c7..945a979af 100644 --- a/apps/stage-web/package.json +++ b/apps/stage-web/package.json @@ -93,6 +93,7 @@ "@iconify-json/simple-icons": "^1.2.26", "@iconify-json/solar": "^1.2.2", "@iconify-json/svg-spinners": "^1.2.2", + "@iconify-json/vscode-icons": "^1.2.16", "@iconify/utils": "^2.3.0", "@intlify/unplugin-vue-i18n": "^6.0.3", "@proj-airi/drizzle-duckdb-wasm": "workspace:^", diff --git a/apps/stage-web/src/assets/icons/modules/games/factorio.png b/apps/stage-web/src/assets/icons/modules/games/factorio.png new file mode 100644 index 000000000..8162e4817 Binary files /dev/null and b/apps/stage-web/src/assets/icons/modules/games/factorio.png differ diff --git a/apps/stage-web/src/components/Menu/IconItem.vue b/apps/stage-web/src/components/Menu/IconItem.vue index 2c21ce6fd..ce7f2b46c 100644 --- a/apps/stage-web/src/components/Menu/IconItem.vue +++ b/apps/stage-web/src/components/Menu/IconItem.vue @@ -2,7 +2,8 @@ defineProps<{ title: string description: string - icon: string + icon?: string + iconTemplate?: boolean to: string }>() @@ -15,19 +16,26 @@ defineProps<{ :to="to" >
-
+
{{ title }}
-
+
{{ description }}
-
+ + diff --git a/apps/stage-web/src/pages/settings/index.vue b/apps/stage-web/src/pages/settings/index.vue index edb5b5161..5a17d8862 100644 --- a/apps/stage-web/src/pages/settings/index.vue +++ b/apps/stage-web/src/pages/settings/index.vue @@ -25,6 +25,7 @@ function handleLanguageChange(event: Event) {
+
diff --git a/apps/stage-web/src/pages/settings/models/index.vue b/apps/stage-web/src/pages/settings/models/index.vue new file mode 100644 index 000000000..808137511 --- /dev/null +++ b/apps/stage-web/src/pages/settings/models/index.vue @@ -0,0 +1,30 @@ + + + + + +meta: + stageTransition: + name: slide + diff --git a/apps/stage-web/src/pages/settings/modules/consciousness.vue b/apps/stage-web/src/pages/settings/modules/consciousness.vue new file mode 100644 index 000000000..4dec93cf5 --- /dev/null +++ b/apps/stage-web/src/pages/settings/modules/consciousness.vue @@ -0,0 +1,40 @@ + + + + + +meta: + stageTransition: + name: slide + diff --git a/apps/stage-web/src/pages/settings/modules/index.vue b/apps/stage-web/src/pages/settings/modules/index.vue index 929e6b5b3..95ceda084 100644 --- a/apps/stage-web/src/pages/settings/modules/index.vue +++ b/apps/stage-web/src/pages/settings/modules/index.vue @@ -1,6 +1,140 @@ + + diff --git a/apps/stage-web/src/pages/settings/providers/index.vue b/apps/stage-web/src/pages/settings/providers/index.vue index 929e6b5b3..976217f82 100644 --- a/apps/stage-web/src/pages/settings/providers/index.vue +++ b/apps/stage-web/src/pages/settings/providers/index.vue @@ -1,6 +1,162 @@ + + diff --git a/apps/stage-web/src/pages/settings/providers/openrouter.vue b/apps/stage-web/src/pages/settings/providers/openrouter.vue new file mode 100644 index 000000000..e1e2b42c6 --- /dev/null +++ b/apps/stage-web/src/pages/settings/providers/openrouter.vue @@ -0,0 +1,115 @@ + + + diff --git a/apps/stage-web/src/pages/settings/themes/index.vue b/apps/stage-web/src/pages/settings/themes/index.vue new file mode 100644 index 000000000..691d43896 --- /dev/null +++ b/apps/stage-web/src/pages/settings/themes/index.vue @@ -0,0 +1,30 @@ + + + + + +meta: + stageTransition: + name: slide + diff --git a/packages/stage-ui/src/stores/providers.ts b/packages/stage-ui/src/stores/providers.ts index 21d7a8c1d..a1ced1740 100644 --- a/packages/stage-ui/src/stores/providers.ts +++ b/packages/stage-ui/src/stores/providers.ts @@ -1,5 +1,6 @@ import { useLocalStorage } from '@vueuse/core' import { defineStore } from 'pinia' +import { computed } from 'vue' export const useProvidersStore = defineStore('providers', () => { const providers = useLocalStorage>>('settings/credentials/providers', {}) @@ -7,9 +8,24 @@ export const useProvidersStore = defineStore('providers', () => { const coreControllerProvider = useLocalStorage('settings/credentials/coreControllerProvider', 'openai') const audioSynthesisProvider = useLocalStorage('settings/credentials/audioSynthesisProvider', 'elevenlabs') + const configuredForOpenRouter = computed(() => { + return !!providers.value['openrouter-ai'].baseUrl && !!providers.value['openrouter-ai'].apiKey + }) + + function configuredFor(provider: string): boolean { + switch (provider) { + case 'openrouter-ai': + return configuredForOpenRouter.value + default: + return false + } + } + return { providers, coreControllerProvider, audioSynthesisProvider, + configuredForOpenRouter, + configuredFor, } }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8f306dbae..a0a7a9371 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -680,6 +680,9 @@ importers: '@iconify-json/svg-spinners': specifier: ^1.2.2 version: 1.2.2 + '@iconify-json/vscode-icons': + specifier: ^1.2.16 + version: 1.2.16 '@iconify/utils': specifier: ^2.3.0 version: 2.3.0 @@ -3093,6 +3096,9 @@ packages: '@iconify-json/svg-spinners@1.2.2': resolution: {integrity: sha512-DIErwfBWWzLfmAG2oQnbUOSqZhDxlXvr8941itMCrxQoMB0Hiv8Ww6Bln/zIgxwjDvSem2dKJtap+yKKwsB/2A==} + '@iconify-json/vscode-icons@1.2.16': + resolution: {integrity: sha512-hstc2yVq2UJ6v6FrgjftzXRvphGZBsKxvSeXoFLP1Hgx89TPZKrGE5SV6vqsoeIlLYaQ7OZbXmAoVGroTfGmVQ==} + '@iconify/tools@4.1.1': resolution: {integrity: sha512-Hybu/HGhv6T8nLQhiG9rKx+ekF7NNpPOEQAy7JRSKht3s3dcFSsPccYzk24Znc9MTxrR6Gak3cg6CPP5dyvS2Q==} @@ -13732,6 +13738,10 @@ snapshots: dependencies: '@iconify/types': 2.0.0 + '@iconify-json/vscode-icons@1.2.16': + dependencies: + '@iconify/types': 2.0.0 + '@iconify/tools@4.1.1': dependencies: '@iconify/types': 2.0.0