diff --git a/agent/src/agent.ts b/agent/src/agent.ts index aa98e6fb..33d18d48 100644 --- a/agent/src/agent.ts +++ b/agent/src/agent.ts @@ -20,10 +20,16 @@ export const createAgent = ({ brave, language = 'Same as the user input', allowedActions = allActions, - identity, channels = [], mcpConnections = [], currentChannel = 'Unknown Channel', + identity = { + botId: '', + sessionId: '', + containerId: '', + contactId: '', + contactName: '', + }, }: AgentParams, fetch: AuthFetcher) => { const model = createModel(modelConfig) diff --git a/agent/src/types/agent.ts b/agent/src/types/agent.ts index bd505fe0..6bca7e9d 100644 --- a/agent/src/types/agent.ts +++ b/agent/src/types/agent.ts @@ -41,10 +41,10 @@ export interface AgentParams { activeContextTime?: number allowedActions?: AgentAction[] brave?: BraveConfig - identity: IdentityContext channels?: string[] currentChannel?: string mcpConnections?: MCPConnection[] + identity?: IdentityContext } export interface AgentInput { diff --git a/config.toml.example b/config.toml.example index 3f1c5d4a..7f8458b1 100644 --- a/config.toml.example +++ b/config.toml.example @@ -35,7 +35,7 @@ host = "localhost" port = 5432 user = "postgres" password = "1234" -database = "postgres" +database = "demo" sslmode = "disable" diff --git a/mise.toml b/mise.toml index e80f09ec..fe3f3b40 100644 --- a/mise.toml +++ b/mise.toml @@ -65,6 +65,15 @@ description = "Install CLI" depends = ["//:pnpm-install"] run = "cd packages/cli && npm install -g" +[tasks.build-cli] +description = "Build Go CLI binary and install to local bin" +run = """ +mkdir -p ~/.local/bin +go build -trimpath -ldflags "-s -w" -o ~/.local/bin/container-cli ./cmd/cli +chmod +x ~/.local/bin/container-cli +echo "✓ CLI binary installed to ~/.local/bin/container-cli" +""" + [tasks.mcp-image-up] description = "Build MCP container image" run = "scripts/mcp-image-up.sh" diff --git a/packages/ui/src/components/text-generate-effect/TextGenerateEffect.vue b/packages/ui/src/components/text-generate-effect/TextGenerateEffect.vue new file mode 100644 index 00000000..83d23e93 --- /dev/null +++ b/packages/ui/src/components/text-generate-effect/TextGenerateEffect.vue @@ -0,0 +1,57 @@ + + + diff --git a/packages/ui/src/components/text-generate-effect/index.ts b/packages/ui/src/components/text-generate-effect/index.ts new file mode 100644 index 00000000..ec07e3f0 --- /dev/null +++ b/packages/ui/src/components/text-generate-effect/index.ts @@ -0,0 +1 @@ +export { default as TextGenerateEffect } from "./TextGenerateEffect.vue"; diff --git a/packages/web/src/App.vue b/packages/web/src/App.vue index 3bc339e5..f1f29d4c 100644 --- a/packages/web/src/App.vue +++ b/packages/web/src/App.vue @@ -6,57 +6,18 @@ import { DropdownMenuItem, DropdownMenuTrigger, Toaster, - Separator } from '@memoh/ui' import SvgIcon from '@jamescoyle/vue-icon' import { mdiTranslate, mdiBrightness6 } from '@mdi/js' -import { useColorMode } from '@vueuse/core' + // @ts-ignore import 'vue-sonner/style.css' -const mode = useColorMode() -const modeToggleMap: Record<'dark' | 'light', 'dark' | 'light'> = { - dark: 'light', - light: 'dark' -} -const toggleMode = () => { - if (mode.value !== 'auto') { - mode.value = modeToggleMap[mode.value] - } -} @@ -79,26 +61,25 @@ import { SidebarMenu, SidebarMenuButton, SidebarMenuItem, - SidebarRail, - CollapsibleTrigger, - Collapsible, - Button, + Toggle } from '@memoh/ui' import { computed } from 'vue' import SvgIcon from '@jamescoyle/vue-icon' import { mdiRobot, mdiChatOutline, mdiCogBox } from '@mdi/js' -import { useRouter } from 'vue-router' +import { useRouter,useRoute } from 'vue-router' import { useUserStore } from '@/store/User.ts' import i18n from '@/i18n' import { ref } from 'vue' + const router = useRouter() +const route=useRoute() const { t } = i18n.global -const curSlider = ref('chat') +const curSlider = ref() const curSelectSlide = (cur: string) => computed(() => { - return curSlider.value === cur + return curSlider.value === cur||new RegExp(`^/main/${cur}$`).test(route.path) }) const sidebarInfo = computed(() => [ { @@ -131,9 +112,4 @@ const sidebarInfo = computed(() => [ // } ]) -const { exitLogin } = useUserStore() -const exit = () => { - exitLogin() - router.replace({ name: 'Login' }) -} \ No newline at end of file diff --git a/packages/web/src/pages/chat/index.vue b/packages/web/src/pages/chat/index.vue index bbcbf53f..817312c3 100644 --- a/packages/web/src/pages/chat/index.vue +++ b/packages/web/src/pages/chat/index.vue @@ -8,16 +8,15 @@ -
-
- logo.png +
+

-

- Memoh +

@@ -54,15 +53,15 @@ import { ScrollArea, Textarea, - Button + Button, + TextGenerateEffect } from '@memoh/ui' import SvgIcon from '@jamescoyle/vue-icon' import { mdiSendOutline } from '@mdi/js' import ChatList from '@/components/ChatList/index.vue' import { provide, ref } from 'vue' import { useChatList } from '@/store/ChatList' -import {storeToRefs} from 'pinia' - +import { storeToRefs } from 'pinia' const chatSay = ref('') const curInputSay = ref('') diff --git a/packages/web/src/pages/login/index.vue b/packages/web/src/pages/login/index.vue index 30d5c40e..af4f0071 100644 --- a/packages/web/src/pages/login/index.vue +++ b/packages/web/src/pages/login/index.vue @@ -2,38 +2,38 @@
- logo.png -

- Memoh + 欢迎使用

-
+ - + - + + -
- -
- + - + + -
- -
@@ -66,6 +67,7 @@
+