diff --git a/README.md b/README.md
index bfc6465a..1618d5fd 100644
--- a/README.md
+++ b/README.md
@@ -1,17 +1,17 @@
-
MemoHome
+
Memoh
Long-memory, self-hosted, AI-powered personal housekeeper and lifemate.
-Memohome是一个专属于你的AI私人管家,你可以把它跑在你的NAS,路由器等个人设备上,24小时的为你提供服务。
+Memoh是一个专属于你的AI私人管家,你可以把它跑在你的NAS,路由器等个人设备上,24小时的为你提供服务。
## Features
-- [x] 长记忆:Memohome拥有长记忆能力,可以为你的家庭成员提供个性化的服务。他会存储最近一段时间(默认最近15个小时)的上下文,超出时间后则会根据你的需求按需加载记忆
-- [x] 定时任务:Memohome可以帮你创建智能的定时任务,比如:每天早上七点生成一个早餐菜谱,通过Telegram发送给我
-- [x] 聊天软件支持:Memohome可以支持多种聊天软件,比如:Telegram,微信,QQ等常用社交软件,通过直接发送消息与Memohome进行交互,同时Memohome也可以通过事件触发,选择工具主动给你发送消息
-- [ ] 文件系统管理:Memohome可以帮你管理你的文件系统,比如:文件搜索,图片分类,文件分享等。他可以创建文件,也可以通过聊天软件发送文件给你;你也可以通过发送文件给他帮你处理。
-- [ ] MCP支持:Memohome可以支持多种MCP接口,与多种外部工具进行交互。
+- [x] 长记忆:Memoh拥有长记忆能力,可以为你的家庭成员提供个性化的服务。他会存储最近一段时间(默认最近15个小时)的上下文,超出时间后则会根据你的需求按需加载记忆
+- [x] 定时任务:Memoh可以帮你创建智能的定时任务,比如:每天早上七点生成一个早餐菜谱,通过Telegram发送给我
+- [x] 聊天软件支持:Memoh可以支持多种聊天软件,比如:Telegram,微信,QQ等常用社交软件,通过直接发送消息与Memoh进行交互,同时Memoh也可以通过事件触发,选择工具主动给你发送消息
+- [ ] 文件系统管理:Memoh可以帮你管理你的文件系统,比如:文件搜索,图片分类,文件分享等。他可以创建文件,也可以通过聊天软件发送文件给你;你也可以通过发送文件给他帮你处理。
+- [ ] MCP支持:Memoh可以支持多种MCP接口,与多种外部工具进行交互。
- More...
## Message Platforms
@@ -92,7 +92,7 @@ pnpm cli config set --chat-model --summary-model --embedding-model
- `--summary-model`: 摘要模型uuid
- `--embedding-model`: 嵌入模型uuid
-然后你就可以正常的使用Memohome了。
+然后你就可以正常的使用Memoh了。
你可以设置你的最大上下文加载时间,默认是900分钟,你可以通过以下命令来设置:
@@ -109,9 +109,9 @@ pnpm cli config set --max-context-time
pnpm telegram:start
```
-Telegram Service将在 `http://localhost:7101` 启动,这个是endpoint,你需要在Memohome中配置你的Telegram Bot Token:
+Telegram Service将在 `http://localhost:7101` 启动,这个是endpoint,你需要在Memoh中配置你的Telegram Bot Token:
-使用Memohome Cli:
+使用Memoh Cli:
```bash
pnpm cli platform create
@@ -122,4 +122,4 @@ pnpm cli platform create
- endpoint: http://localhost:7101
- config: { "botToken": "" }
-然后你就可以通过Telegram Bot与Memohome进行交互了。
+然后你就可以通过Telegram Bot与Memoh进行交互了。
diff --git a/package.json b/package.json
index 5b17bf85..1688040e 100644
--- a/package.json
+++ b/package.json
@@ -1,23 +1,23 @@
{
- "name": "@memohome/monorepo",
+ "name": "@memoh/monorepo",
"private": true,
"version": "1.0.0",
"scripts": {
- "dev": "pnpm --parallel --filter @memohome/* dev",
- "build": "pnpm --parallel --filter @memohome/* build",
- "start": "pnpm --parallel --filter @memohome/* start",
- "api:dev": "pnpm --filter @memohome/api dev",
- "api:build": "pnpm --filter @memohome/api build",
- "api:start": "pnpm --filter @memohome/api start",
- "web:dev": "pnpm --filter @memohome/web dev",
- "web:build": "pnpm --filter @memohome/web build",
- "web:start": "pnpm --filter @memohome/web start",
- "db:push": "pnpm --filter @memohome/db push",
- "db:migrate": "pnpm --filter @memohome/db migrate",
- "db:generate": "pnpm --filter @memohome/db generate",
- "db:studio": "pnpm --filter @memohome/db studio",
- "telegram:start": "pnpm --filter @memohome/platform-telegram start",
- "cli": "pnpm --filter @memohome/client start",
+ "dev": "pnpm --parallel --filter @memoh/* dev",
+ "build": "pnpm --parallel --filter @memoh/* build",
+ "start": "pnpm --parallel --filter @memoh/* start",
+ "api:dev": "pnpm --filter @memoh/api dev",
+ "api:build": "pnpm --filter @memoh/api build",
+ "api:start": "pnpm --filter @memoh/api start",
+ "web:dev": "pnpm --filter @memoh/web dev",
+ "web:build": "pnpm --filter @memoh/web build",
+ "web:start": "pnpm --filter @memoh/web start",
+ "db:push": "pnpm --filter @memoh/db push",
+ "db:migrate": "pnpm --filter @memoh/db migrate",
+ "db:generate": "pnpm --filter @memoh/db generate",
+ "db:studio": "pnpm --filter @memoh/db studio",
+ "telegram:start": "pnpm --filter @memoh/platform-telegram start",
+ "cli": "pnpm --filter @memoh/client start",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"test": "vitest"
diff --git a/packages/agent/README.md b/packages/agent/README.md
index 9171f3ef..61c65d8d 100644
--- a/packages/agent/README.md
+++ b/packages/agent/README.md
@@ -1,3 +1,3 @@
-# @memohome/agent
+# @memoh/agent
Agent for PhoneTutor.
\ No newline at end of file
diff --git a/packages/agent/client/index.ts b/packages/agent/client/index.ts
index d4e011a6..d20c8af2 100644
--- a/packages/agent/client/index.ts
+++ b/packages/agent/client/index.ts
@@ -1,8 +1,8 @@
import { createInterface } from 'node:readline'
import { stdin as input, stdout as output } from 'node:process'
import { createAgent } from '../src/agent'
-import { createMemory, filterByTimestamp, MemoryUnit } from '@memohome/memory'
-import { ModelClientType, ChatModel, EmbeddingModel } from '@memohome/shared'
+import { createMemory, filterByTimestamp, MemoryUnit } from '@memoh/memory'
+import { ModelClientType, ChatModel, EmbeddingModel } from '@memoh/shared'
// Load environment variables
const MODEL = process.env.MODEL
diff --git a/packages/agent/package.json b/packages/agent/package.json
index 979f3ee4..071a2404 100644
--- a/packages/agent/package.json
+++ b/packages/agent/package.json
@@ -1,5 +1,5 @@
{
- "name": "@memohome/agent",
+ "name": "@memoh/agent",
"version": "1.0.0",
"description": "Agent package for the phonetutor monorepo",
"type": "module",
@@ -18,9 +18,9 @@
"@ai-sdk/anthropic": "^3.0.9",
"@ai-sdk/google": "^3.0.6",
"@ai-sdk/openai": "^3.0.7",
- "@memohome/ai-gateway": "workspace:*",
- "@memohome/memory": "workspace:*",
- "@memohome/shared": "workspace:*",
+ "@memoh/ai-gateway": "workspace:*",
+ "@memoh/memory": "workspace:*",
+ "@memoh/shared": "workspace:*",
"ai": "^6.0.25",
"dotenv": "^17.2.3",
"sqlite3": "^5.1.7",
diff --git a/packages/agent/src/agent.ts b/packages/agent/src/agent.ts
index efe1291b..a7227299 100644
--- a/packages/agent/src/agent.ts
+++ b/packages/agent/src/agent.ts
@@ -2,8 +2,8 @@ import { streamText, generateText, ModelMessage, stepCountIs, UserModelMessage }
import { AgentParams } from './types'
import { system, schedule as schedulePrompt } from './prompts'
import { getMemoryTools, getScheduleTools, getMessageTools } from './tools'
-import { createChatGateway } from '@memohome/ai-gateway'
-import { Schedule } from '@memohome/shared'
+import { createChatGateway } from '@memoh/ai-gateway'
+import { Schedule } from '@memoh/shared'
export const createAgent = (params: AgentParams) => {
const messages: ModelMessage[] = []
diff --git a/packages/agent/src/prompts/schedule.ts b/packages/agent/src/prompts/schedule.ts
index 68050240..c8cf83bf 100644
--- a/packages/agent/src/prompts/schedule.ts
+++ b/packages/agent/src/prompts/schedule.ts
@@ -1,4 +1,4 @@
-import { Schedule } from '@memohome/shared'
+import { Schedule } from '@memoh/shared'
import { time } from './shared'
export interface ScheduleParams {
diff --git a/packages/agent/src/prompts/system.ts b/packages/agent/src/prompts/system.ts
index 08e7956f..a6d1a0c1 100644
--- a/packages/agent/src/prompts/system.ts
+++ b/packages/agent/src/prompts/system.ts
@@ -1,4 +1,4 @@
-import { Platform } from '@memohome/shared'
+import { Platform } from '@memoh/shared'
import { time } from './shared'
import { quote } from './utils'
diff --git a/packages/agent/src/tools/message.ts b/packages/agent/src/tools/message.ts
index 4b86b696..7227219f 100644
--- a/packages/agent/src/tools/message.ts
+++ b/packages/agent/src/tools/message.ts
@@ -1,4 +1,4 @@
-import { Platform } from '@memohome/shared'
+import { Platform } from '@memoh/shared'
import { SendMessageOptions } from '../types'
import { tool } from 'ai'
import z from 'zod'
diff --git a/packages/agent/src/tools/schedule.ts b/packages/agent/src/tools/schedule.ts
index cba5d0e4..8915b0b5 100644
--- a/packages/agent/src/tools/schedule.ts
+++ b/packages/agent/src/tools/schedule.ts
@@ -1,4 +1,4 @@
-import { Schedule } from '@memohome/shared'
+import { Schedule } from '@memoh/shared'
import { tool } from 'ai'
import z from 'zod'
diff --git a/packages/agent/src/types.ts b/packages/agent/src/types.ts
index 91a08245..439d43f4 100644
--- a/packages/agent/src/types.ts
+++ b/packages/agent/src/types.ts
@@ -1,5 +1,5 @@
-import type { MemoryUnit } from '@memohome/memory'
-import { ChatModel, Platform, Schedule } from '@memohome/shared'
+import type { MemoryUnit } from '@memoh/memory'
+import { ChatModel, Platform, Schedule } from '@memoh/shared'
import { ModelMessage } from 'ai'
export interface SendMessageOptions {
diff --git a/packages/ai-gateway/README.md b/packages/ai-gateway/README.md
index 5616fdeb..e50cda4f 100644
--- a/packages/ai-gateway/README.md
+++ b/packages/ai-gateway/README.md
@@ -1 +1 @@
-# @memohome/ai-gateway
+# @memoh/ai-gateway
diff --git a/packages/ai-gateway/package.json b/packages/ai-gateway/package.json
index 6a914d2f..7e19aa58 100644
--- a/packages/ai-gateway/package.json
+++ b/packages/ai-gateway/package.json
@@ -1,5 +1,5 @@
{
- "name": "@memohome/ai-gateway",
+ "name": "@memoh/ai-gateway",
"version": "1.0.0",
"description": "",
"exports": {
@@ -13,7 +13,7 @@
"@ai-sdk/anthropic": "^3.0.9",
"@ai-sdk/google": "^3.0.6",
"@ai-sdk/openai": "^3.0.7",
- "@memohome/shared": "workspace:*",
+ "@memoh/shared": "workspace:*",
"ai": "^6.0.25"
},
"keywords": [],
diff --git a/packages/ai-gateway/src/chat.ts b/packages/ai-gateway/src/chat.ts
index 50320a33..6cd3ce33 100644
--- a/packages/ai-gateway/src/chat.ts
+++ b/packages/ai-gateway/src/chat.ts
@@ -2,7 +2,7 @@ import { createGateway as createAiGateway } from 'ai'
import { createOpenAI } from '@ai-sdk/openai'
import { createAnthropic } from '@ai-sdk/anthropic'
import { createGoogleGenerativeAI } from '@ai-sdk/google'
-import { ChatModel, ModelClientType } from '@memohome/shared'
+import { ChatModel, ModelClientType } from '@memoh/shared'
export const createChatGateway = (model: ChatModel) => {
const clients = {
diff --git a/packages/ai-gateway/src/embedding.ts b/packages/ai-gateway/src/embedding.ts
index dacca120..b402b75e 100644
--- a/packages/ai-gateway/src/embedding.ts
+++ b/packages/ai-gateway/src/embedding.ts
@@ -1,5 +1,5 @@
import { createOpenAI } from '@ai-sdk/openai'
-import { EmbeddingModel } from '@memohome/shared'
+import { EmbeddingModel } from '@memoh/shared'
export const createEmbeddingGateway = (model: EmbeddingModel) => {
return createOpenAI({
diff --git a/packages/api/README.md b/packages/api/README.md
index 0e2afbef..a82eabbc 100644
--- a/packages/api/README.md
+++ b/packages/api/README.md
@@ -1,4 +1,4 @@
-# @memohome/api
+# @memoh/api
API 服务器,基于 Elysia 构建。
diff --git a/packages/api/package.json b/packages/api/package.json
index 7ef6ea33..1f1c2e90 100644
--- a/packages/api/package.json
+++ b/packages/api/package.json
@@ -1,5 +1,5 @@
{
- "name": "@memohome/api",
+ "name": "@memoh/api",
"version": "1.0.50",
"scripts": {
"dev": "bun run --env-file=../../.env --watch src/index.ts",
@@ -17,10 +17,10 @@
"@elysiajs/eden": "^1.4.6",
"@elysiajs/jwt": "^1.2.0",
"@elysiajs/openapi": "^1.4.13",
- "@memohome/agent": "workspace:*",
- "@memohome/db": "workspace:*",
- "@memohome/memory": "workspace:*",
- "@memohome/shared": "workspace:*",
+ "@memoh/agent": "workspace:*",
+ "@memoh/db": "workspace:*",
+ "@memoh/memory": "workspace:*",
+ "@memoh/shared": "workspace:*",
"drizzle-orm": "^0.45.1",
"elysia": "latest",
"node-cron": "^4.2.1",
diff --git a/packages/api/src/modules/agent/index.ts b/packages/api/src/modules/agent/index.ts
index 621d477e..69c5a132 100644
--- a/packages/api/src/modules/agent/index.ts
+++ b/packages/api/src/modules/agent/index.ts
@@ -4,7 +4,7 @@ import { AgentStreamModel } from './model'
import { createAgent } from './service'
import { getChatModel, getEmbeddingModel, getSummaryModel } from '../model/service'
import { getSettings } from '../settings/service'
-import { ChatModel, EmbeddingModel } from '@memohome/shared'
+import { ChatModel, EmbeddingModel } from '@memoh/shared'
export const agentModule = new Elysia({
prefix: '/agent',
diff --git a/packages/api/src/modules/agent/service.ts b/packages/api/src/modules/agent/service.ts
index 106e0313..3523b463 100644
--- a/packages/api/src/modules/agent/service.ts
+++ b/packages/api/src/modules/agent/service.ts
@@ -1,6 +1,6 @@
-import { createAgent as createAgentService } from '@memohome/agent'
-import { createMemory, filterByTimestamp, MemoryUnit } from '@memohome/memory'
-import { ChatModel, EmbeddingModel, Platform, Schedule } from '@memohome/shared'
+import { createAgent as createAgentService } from '@memoh/agent'
+import { createMemory, filterByTimestamp, MemoryUnit } from '@memoh/memory'
+import { ChatModel, EmbeddingModel, Platform, Schedule } from '@memoh/shared'
import { createSchedule, deleteSchedule, getActiveSchedules } from '../schedule/service'
import { getActivePlatforms, sendMessageToPlatform } from '../platform/service'
diff --git a/packages/api/src/modules/auth/service.ts b/packages/api/src/modules/auth/service.ts
index e4087b81..e7f5bf37 100644
--- a/packages/api/src/modules/auth/service.ts
+++ b/packages/api/src/modules/auth/service.ts
@@ -1,5 +1,5 @@
-import { db } from '@memohome/db'
-import { users, settings } from '@memohome/db/schema'
+import { db } from '@memoh/db'
+import { users, settings } from '@memoh/db/schema'
import { eq } from 'drizzle-orm'
/**
diff --git a/packages/api/src/modules/memory/index.ts b/packages/api/src/modules/memory/index.ts
index 73777b46..655552d9 100644
--- a/packages/api/src/modules/memory/index.ts
+++ b/packages/api/src/modules/memory/index.ts
@@ -3,7 +3,7 @@ import { authMiddleware } from '../../middlewares/auth'
import { messageModule } from './message'
import { AddMemoryModel, SearchMemoryModel } from './model'
import { addMemory, searchMemory } from './service'
-import { MemoryUnit } from '@memohome/memory'
+import { MemoryUnit } from '@memoh/memory'
export const memoryModule = new Elysia({
prefix: '/memory',
diff --git a/packages/api/src/modules/memory/message/service.ts b/packages/api/src/modules/memory/message/service.ts
index 9c0b6c22..73d5db45 100644
--- a/packages/api/src/modules/memory/message/service.ts
+++ b/packages/api/src/modules/memory/message/service.ts
@@ -1,5 +1,5 @@
-import { db } from '@memohome/db'
-import { history } from '@memohome/db/schema'
+import { db } from '@memoh/db'
+import { history } from '@memoh/db/schema'
import { eq, desc, and, gte, lte, asc } from 'drizzle-orm'
export const getMemoryMessages = async (
diff --git a/packages/api/src/modules/memory/service.ts b/packages/api/src/modules/memory/service.ts
index ab2feded..c5ecdd6c 100644
--- a/packages/api/src/modules/memory/service.ts
+++ b/packages/api/src/modules/memory/service.ts
@@ -1,6 +1,6 @@
-import { createMemory, MemoryUnit } from '@memohome/memory'
+import { createMemory, MemoryUnit } from '@memoh/memory'
import { getEmbeddingModel, getSummaryModel } from '@/modules/model/service'
-import { ChatModel, EmbeddingModel } from '@memohome/shared'
+import { ChatModel, EmbeddingModel } from '@memoh/shared'
export const addMemory = async (memoryUnit: MemoryUnit) => {
const [embeddingModel, summaryModel] = await Promise.all([
diff --git a/packages/api/src/modules/model/index.ts b/packages/api/src/modules/model/index.ts
index e06f14ad..697fc682 100644
--- a/packages/api/src/modules/model/index.ts
+++ b/packages/api/src/modules/model/index.ts
@@ -17,7 +17,7 @@ import {
getSummaryModel,
getEmbeddingModel,
} from './service'
-import { Model } from '@memohome/shared'
+import { Model } from '@memoh/shared'
export const modelModule = new Elysia({
prefix: '/model',
diff --git a/packages/api/src/modules/model/service.ts b/packages/api/src/modules/model/service.ts
index 962b7451..b65ac9ae 100644
--- a/packages/api/src/modules/model/service.ts
+++ b/packages/api/src/modules/model/service.ts
@@ -1,6 +1,6 @@
-import { db } from '@memohome/db'
-import { model } from '@memohome/db/schema'
-import { Model } from '@memohome/shared'
+import { db } from '@memoh/db'
+import { model } from '@memoh/db/schema'
+import { Model } from '@memoh/shared'
import { eq, sql, desc, asc } from 'drizzle-orm'
import { getSettings } from '@/modules/settings/service'
import { calculateOffset, createPaginatedResult, type PaginatedResult } from '../../utils/pagination'
diff --git a/packages/api/src/modules/platform/index.ts b/packages/api/src/modules/platform/index.ts
index 78dd659f..aeeb4b63 100644
--- a/packages/api/src/modules/platform/index.ts
+++ b/packages/api/src/modules/platform/index.ts
@@ -19,7 +19,7 @@ import {
activePlatform,
setActivePlatform,
} from './service'
-import { Platform } from '@memohome/shared'
+import { Platform } from '@memoh/shared'
export const platformModule = new Elysia({
prefix: '/platform',
diff --git a/packages/api/src/modules/platform/service.ts b/packages/api/src/modules/platform/service.ts
index cc0bccd2..c5f452ec 100644
--- a/packages/api/src/modules/platform/service.ts
+++ b/packages/api/src/modules/platform/service.ts
@@ -1,6 +1,6 @@
-import { db } from '@memohome/db'
-import { platform } from '@memohome/db/schema'
-import { Platform } from '@memohome/shared'
+import { db } from '@memoh/db'
+import { platform } from '@memoh/db/schema'
+import { Platform } from '@memoh/shared'
import { eq, sql, desc, asc } from 'drizzle-orm'
import { calculateOffset, createPaginatedResult, type PaginatedResult } from '../../utils/pagination'
import path from 'node:path'
diff --git a/packages/api/src/modules/schedule/service.ts b/packages/api/src/modules/schedule/service.ts
index e705ab69..e83df146 100644
--- a/packages/api/src/modules/schedule/service.ts
+++ b/packages/api/src/modules/schedule/service.ts
@@ -1,6 +1,6 @@
-import { db } from '@memohome/db'
-import { schedule } from '@memohome/db/schema'
-import { ChatModel, EmbeddingModel, Schedule } from '@memohome/shared'
+import { db } from '@memoh/db'
+import { schedule } from '@memoh/db/schema'
+import { ChatModel, EmbeddingModel, Schedule } from '@memoh/shared'
import { eq, desc, asc, and, sql } from 'drizzle-orm'
import cron from 'node-cron'
import { createAgent } from '../agent/service'
diff --git a/packages/api/src/modules/settings/service.ts b/packages/api/src/modules/settings/service.ts
index dc8935f2..6ebf8191 100644
--- a/packages/api/src/modules/settings/service.ts
+++ b/packages/api/src/modules/settings/service.ts
@@ -1,5 +1,5 @@
-import { db } from '@memohome/db'
-import { settings } from '@memohome/db/schema'
+import { db } from '@memoh/db'
+import { settings } from '@memoh/db/schema'
import { eq } from 'drizzle-orm'
import type { SettingsInput } from './model'
diff --git a/packages/api/src/modules/user/service.ts b/packages/api/src/modules/user/service.ts
index 9b15c9f3..0a659631 100644
--- a/packages/api/src/modules/user/service.ts
+++ b/packages/api/src/modules/user/service.ts
@@ -1,5 +1,5 @@
-import { db } from '@memohome/db'
-import { users, settings } from '@memohome/db/schema'
+import { db } from '@memoh/db'
+import { users, settings } from '@memoh/db/schema'
import { eq, sql, desc, asc } from 'drizzle-orm'
import type { CreateUserInput, UpdateUserInput } from './model'
import { calculateOffset, createPaginatedResult, type PaginatedResult } from '../../utils/pagination'
diff --git a/packages/cli/ARCHITECTURE.md b/packages/cli/ARCHITECTURE.md
index c6256990..3016af24 100644
--- a/packages/cli/ARCHITECTURE.md
+++ b/packages/cli/ARCHITECTURE.md
@@ -1,4 +1,4 @@
-# MemoHome CLI 架构说明
+# Memoh CLI 架构说明
## 项目重构概述
@@ -55,14 +55,14 @@ Core 层提供纯粹的功能函数,特点:
```typescript
// Auth
-import { login, logout, getCurrentUser } from '@memohome/cli/core'
+import { login, logout, getCurrentUser } from '@memoh/cli/core'
await login({ username: 'admin', password: 'password' })
const user = await getCurrentUser()
logout()
// Agent
-import { chat, chatStream } from '@memohome/cli/core'
+import { chat, chatStream } from '@memoh/cli/core'
// 非流式对话
const response = await chat({
@@ -78,7 +78,7 @@ await chatStream({ message: 'Hello' }, async (event) => {
})
// Model
-import { listModels, createModel } from '@memohome/cli/core'
+import { listModels, createModel } from '@memoh/cli/core'
const models = await listModels()
const newModel = await createModel({
@@ -91,7 +91,7 @@ const newModel = await createModel({
})
// Memory
-import { searchMemory, addMemory, getMessages } from '@memohome/cli/core'
+import { searchMemory, addMemory, getMessages } from '@memoh/cli/core'
const memories = await searchMemory({ query: 'test', limit: 10 })
await addMemory({ content: 'Important note' })
@@ -117,9 +117,9 @@ CLI 层负责用户交互,特点:
pnpm install
# 运行命令
-memohome auth login
-memohome agent chat "Hello"
-memohome model list
+memoh auth login
+memoh agent chat "Hello"
+memoh model list
```
### 2. 作为库使用
@@ -128,17 +128,17 @@ memohome model list
```typescript
// 导入所有功能
-import * as memohome from '@memohome/cli'
+import * as memoh from '@memoh/cli'
// 或导入特定模块
-import { login, chat, listModels } from '@memohome/cli'
-import * as auth from '@memohome/cli/core'
-import type { User, Model } from '@memohome/cli/types'
+import { login, chat, listModels } from '@memoh/cli'
+import * as auth from '@memoh/cli/core'
+import type { User, Model } from '@memoh/cli/types'
// 使用
-await memohome.login({ username: 'admin', password: 'password' })
-const response = await memohome.chat({ message: 'Hello' })
-const models = await memohome.listModels()
+await memoh.login({ username: 'admin', password: 'password' })
+const response = await memoh.chat({ message: 'Hello' })
+const models = await memoh.listModels()
```
## 包导出
@@ -154,7 +154,7 @@ const models = await memohome.listModels()
"./utils": "./src/utils/index.ts" // 工具函数
},
"bin": {
- "memohome": "./src/cli/index.ts" // CLI 入口
+ "memoh": "./src/cli/index.ts" // CLI 入口
}
}
```
@@ -179,7 +179,7 @@ const models = await memohome.listModels()
### 新代码(Core 层调用)
```typescript
// 可以在任何地方使用,无 UI 依赖
-import { login, chat } from '@memohome/cli'
+import { login, chat } from '@memoh/cli'
try {
await login({ username: 'admin', password: 'password' })
@@ -216,6 +216,6 @@ test('login should work', async () => {
- Core 层函数通过 `throw Error` 返回错误,调用者需要处理
- CLI 层负责美化错误信息和用户反馈
-- 配置文件位于 `~/.memohome/config.json`
+- 配置文件位于 `~/.memoh/config.json`
- API 客户端使用 Eden Treaty
diff --git a/packages/cli/EXAMPLES.md b/packages/cli/EXAMPLES.md
index 4bd003af..7b4f085c 100644
--- a/packages/cli/EXAMPLES.md
+++ b/packages/cli/EXAMPLES.md
@@ -1,41 +1,41 @@
-# MemoHome CLI 使用示例
+# Memoh CLI 使用示例
## 作为 CLI 使用
### 认证
```bash
# 登录
-memohome auth login -u admin -p password
+memoh auth login -u admin -p password
# 查看当前用户
-memohome auth whoami
+memoh auth whoami
# 登出
-memohome auth logout
+memoh auth logout
# 配置 API URL
-memohome auth config -s http://localhost:7002
+memoh auth config -s http://localhost:7002
```
### AI 对话
```bash
# 单次对话
-memohome agent chat "今天天气怎么样?"
+memoh agent chat "今天天气怎么样?"
# 交互模式
-memohome agent interactive
+memoh agent interactive
# 指定语言和上下文时间
-memohome agent chat "Hello" -l English -t 30
+memoh agent chat "Hello" -l English -t 30
```
### 模型管理
```bash
# 列出所有模型
-memohome model list
+memoh model list
# 创建模型配置
-memohome model create \
+memoh model create \
-n "GPT-4" \
-m "gpt-4" \
-u "https://api.openai.com/v1" \
@@ -44,85 +44,85 @@ memohome model create \
-t chat
# 查看默认模型
-memohome model defaults
+memoh model defaults
# 获取模型详情
-memohome model get
+memoh model get
# 删除模型
-memohome model delete
+memoh model delete
```
### 用户管理
```bash
# 列出所有用户
-memohome user list
+memoh user list
# 创建用户
-memohome user create -u newuser -p password -r user
+memoh user create -u newuser -p password -r user
# 查看用户
-memohome user get
+memoh user get
# 更新密码
-memohome user update-password -p newpassword
+memoh user update-password -p newpassword
# 删除用户
-memohome user delete
+memoh user delete
```
### 记忆管理
```bash
# 搜索记忆
-memohome memory search "关键词" -l 10
+memoh memory search "关键词" -l 10
# 添加记忆
-memohome memory add "重要的事情"
+memoh memory add "重要的事情"
# 查看消息历史
-memohome memory messages -p 1 -l 20
+memoh memory messages -p 1 -l 20
# 按日期过滤消息
-memohome memory filter -s 2024-01-01T00:00:00Z -e 2024-12-31T23:59:59Z
+memoh memory filter -s 2024-01-01T00:00:00Z -e 2024-12-31T23:59:59Z
```
### 定时任务
```bash
# 列出所有任务
-memohome schedule list
+memoh schedule list
# 创建任务
-memohome schedule create -t "每日报告" -c "0 9 * * *" -e
+memoh schedule create -t "每日报告" -c "0 9 * * *" -e
# 查看任务详情
-memohome schedule get
+memoh schedule get
# 更新任务
-memohome schedule update -t "新标题" --enabled true
+memoh schedule update -t "新标题" --enabled true
# 切换任务状态
-memohome schedule toggle
+memoh schedule toggle
# 删除任务
-memohome schedule delete
+memoh schedule delete
```
### 配置管理
```bash
# 查看配置
-memohome config get
+memoh config get
# 设置配置
-memohome config set --language Chinese --max-context-time 60 --chat-model
+memoh config set --language Chinese --max-context-time 60 --chat-model
# 交互式配置向导
-memohome config setup
+memoh config setup
```
### 调试工具
```bash
# 测试 API 连接
-memohome debug ping
+memoh debug ping
```
## 作为库使用
@@ -130,34 +130,34 @@ memohome debug ping
### 基础使用
```typescript
-import * as memohome from '@memohome/cli'
+import * as memoh from '@memoh/cli'
async function main() {
try {
// 登录
- const loginResult = await memohome.login({
+ const loginResult = await memoh.login({
username: 'admin',
password: 'password'
})
console.log('登录成功:', loginResult.user?.username)
// 获取当前用户
- const user = await memohome.getCurrentUser()
+ const user = await memoh.getCurrentUser()
console.log('当前用户:', user.username)
// AI 对话
- const response = await memohome.chat({
+ const response = await memoh.chat({
message: 'Hello',
language: 'Chinese'
})
console.log('AI 回复:', response)
// 列出模型
- const models = await memohome.listModels()
+ const models = await memoh.listModels()
console.log('模型数量:', models.length)
// 登出
- memohome.logout()
+ memoh.logout()
} catch (error) {
console.error('错误:', error.message)
}
@@ -169,7 +169,7 @@ main()
### 流式对话
```typescript
-import { chatStream } from '@memohome/cli'
+import { chatStream } from '@memoh/cli'
async function streamChat() {
await chatStream(
@@ -197,7 +197,7 @@ streamChat()
### 模型管理
```typescript
-import { createModel, listModels, getDefaultModels } from '@memohome/cli'
+import { createModel, listModels, getDefaultModels } from '@memoh/cli'
async function manageModels() {
// 创建 Chat 模型
@@ -241,7 +241,7 @@ manageModels()
### 记忆管理
```typescript
-import { searchMemory, addMemory, getMessages } from '@memohome/cli'
+import { searchMemory, addMemory, getMessages } from '@memoh/cli'
async function manageMemory() {
// 添加记忆
@@ -273,7 +273,7 @@ manageMemory()
### 用户管理
```typescript
-import { createUser, listUsers, updateUserPassword } from '@memohome/cli'
+import { createUser, listUsers, updateUserPassword } from '@memoh/cli'
async function manageUsers() {
// 创建用户
@@ -302,7 +302,7 @@ manageUsers()
### 定时任务管理
```typescript
-import { createSchedule, listSchedules, toggleSchedule } from '@memohome/cli'
+import { createSchedule, listSchedules, toggleSchedule } from '@memoh/cli'
async function manageSchedules() {
// 创建定时任务
@@ -331,7 +331,7 @@ manageSchedules()
### 配置管理
```typescript
-import { getSettings, updateSettings, setConfig } from '@memohome/cli'
+import { getSettings, updateSettings, setConfig } from '@memoh/cli'
async function manageConfig() {
// 设置 API URL
@@ -357,7 +357,7 @@ manageConfig()
### 错误处理
```typescript
-import { login, chat } from '@memohome/cli'
+import { login, chat } from '@memoh/cli'
async function handleErrors() {
try {
@@ -387,8 +387,8 @@ handleErrors()
### 类型安全
```typescript
-import type { User, Model, Memory, Schedule } from '@memohome/cli/types'
-import { listUsers, listModels } from '@memohome/cli'
+import type { User, Model, Memory, Schedule } from '@memoh/cli/types'
+import { listUsers, listModels } from '@memoh/cli'
async function withTypes() {
// 类型自动推导
@@ -412,20 +412,20 @@ withTypes()
## Web 应用集成示例
```typescript
-// api/memohome.ts
-import * as memohome from '@memohome/cli'
+// api/memoh.ts
+import * as memoh from '@memoh/cli'
-export class MemoHomeService {
+export class MemohService {
async login(username: string, password: string) {
try {
- return await memohome.login({ username, password })
+ return await memoh.login({ username, password })
} catch (error) {
throw new Error('登录失败')
}
}
async chat(message: string, onChunk: (text: string) => void) {
- await memohome.chatStream(
+ await memoh.chatStream(
{ message },
async (event) => {
if (event.type === 'text-delta' && event.text) {
@@ -436,18 +436,18 @@ export class MemoHomeService {
}
async getModels() {
- return await memohome.listModels()
+ return await memoh.listModels()
}
}
// 在 React 组件中使用
import { useState } from 'react'
-import { MemoHomeService } from './api/memohome'
+import { MemohService } from './api/memoh'
function ChatComponent() {
const [message, setMessage] = useState('')
const [response, setResponse] = useState('')
- const service = new MemoHomeService()
+ const service = new MemohService()
const handleChat = async () => {
setResponse('')
@@ -470,9 +470,9 @@ function ChatComponent() {
```typescript
import { describe, test, expect, beforeAll } from 'bun:test'
-import { login, logout, chat, createModel } from '@memohome/cli'
+import { login, logout, chat, createModel } from '@memoh/cli'
-describe('MemoHome Core API', () => {
+describe('Memoh Core API', () => {
beforeAll(async () => {
// 测试前登录
await login({ username: 'test', password: 'test' })
diff --git a/packages/cli/README.md b/packages/cli/README.md
index 23679529..9ad003da 100644
--- a/packages/cli/README.md
+++ b/packages/cli/README.md
@@ -1,6 +1,6 @@
-# @memohome/cli
+# @memoh/cli
-MemoHome 的命令行工具,使用 Elysia Eden 与 API 服务器通信。
+Memoh 的命令行工具,使用 Elysia Eden 与 API 服务器通信。
## 功能特性
@@ -59,45 +59,45 @@ bun run src/index.ts agent interactive
```bash
# 登录
-memohome auth login [-u username] [-p password]
+memoh auth login [-u username] [-p password]
# 登出
-memohome auth logout
+memoh auth logout
# 查看当前登录用户
-memohome auth whoami
+memoh auth whoami
# 查看/设置 API 配置
-memohome auth config [--set ]
+memoh auth config [--set ]
```
### 用户管理 (`user`) 🔒 需要管理员权限
```bash
# 列出所有用户
-memohome user list
+memoh user list
# 创建用户
-memohome user create [-u username] [-p password] [-r role]
+memoh user create [-u username] [-p password] [-r role]
# 获取用户详情
-memohome user get
+memoh user get
# 删除用户
-memohome user delete
+memoh user delete
# 更新用户密码
-memohome user update-password [-p password]
+memoh user update-password [-p password]
```
### 模型管理 (`model`)
```bash
# 列出所有模型
-memohome model list
+memoh model list
# 创建聊天模型配置
-memohome model create \
+memoh model create \
-n "GPT-4" \
-m "gpt-4" \
-u "https://api.openai.com/v1" \
@@ -106,7 +106,7 @@ memohome model create \
-t "chat"
# 创建 Embedding 模型配置
-memohome model create \
+memoh model create \
-n "Text Embedding 3 Small" \
-m "text-embedding-3-small" \
-u "https://api.openai.com/v1" \
@@ -116,26 +116,26 @@ memohome model create \
-d 1536
# 获取模型详情
-memohome model get
+memoh model get
# 删除模型
-memohome model delete
+memoh model delete
# 查看默认模型配置
-memohome model defaults
+memoh model defaults
```
### Agent 对话 (`agent`)
```bash
# 发送单条消息
-memohome agent chat "你好,介绍一下你自己" \
+memoh agent chat "你好,介绍一下你自己" \
[-t 60] \
[-l Chinese]
# 进入交互模式
-memohome agent interactive
-memohome agent i # 简写
+memoh agent interactive
+memoh agent i # 简写
# 交互模式命令:
# /exit, /quit - 退出
@@ -146,17 +146,17 @@ memohome agent i # 简写
```bash
# 搜索记忆
-memohome memory search "关键词" [-l 10]
+memoh memory search "关键词" [-l 10]
# 添加记忆
-memohome memory add "这是一条记忆"
+memoh memory add "这是一条记忆"
# 查看消息历史
-memohome memory messages [-p 1] [-l 20]
-memohome memory msg # 简写
+memoh memory messages [-p 1] [-l 20]
+memoh memory msg # 简写
# 按日期过滤消息
-memohome memory filter \
+memoh memory filter \
-s 2024-01-01T00:00:00Z \
-e 2024-12-31T23:59:59Z
```
@@ -165,10 +165,10 @@ memohome memory filter \
```bash
# 查看当前设置
-memohome settings get
+memoh settings get
# 更新设置
-memohome settings set \
+memoh settings set \
[--language Chinese] \
[--max-context-time 60] \
[--chat-model ] \
@@ -176,37 +176,37 @@ memohome settings set \
[--embedding-model ]
# 交互式设置向导
-memohome settings setup
+memoh settings setup
```
### 日程管理 (`schedule`)
```bash
# 列出所有定时任务
-memohome schedule list
+memoh schedule list
# 创建定时任务
-memohome schedule create \
+memoh schedule create \
-t "每日提醒" \
-d "每天早上9点的提醒" \
-c "0 9 * * *" \
-e
# 获取任务详情
-memohome schedule get
+memoh schedule get
# 更新任务
-memohome schedule update \
+memoh schedule update \
[-t title] \
[-d description] \
[-c cron] \
[-e true/false]
# 删除任务
-memohome schedule delete
+memoh schedule delete
# 切换任务启用状态
-memohome schedule toggle
+memoh schedule toggle
```
## 使用示例
@@ -215,10 +215,10 @@ memohome schedule toggle
```bash
# 1. 登录
-memohome auth login -u admin -p password
+memoh auth login -u admin -p password
# 2. 创建模型配置(聊天模型)
-memohome model create \
+memoh model create \
-n "GPT-4" \
-m "gpt-4" \
-u "https://api.openai.com/v1" \
@@ -227,7 +227,7 @@ memohome model create \
-t "chat"
# 如果需要 embedding 模型
-memohome model create \
+memoh model create \
-n "Text Embedding" \
-m "text-embedding-3-small" \
-u "https://api.openai.com/v1" \
@@ -237,28 +237,28 @@ memohome model create \
-d 1536
# 3. 配置设置(使用模型ID)
-memohome settings set \
+memoh settings set \
--language Chinese \
--max-context-time 60 \
--chat-model
# 4. 开始对话
-memohome agent chat "你好"
+memoh agent chat "你好"
# 5. 进入交互模式
-memohome agent i
+memoh agent i
```
### Agent 交互模式示例
```bash
-$ memohome agent interactive
+$ memoh agent interactive
-🤖 MemoHome Agent 交互模式
+🤖 Memoh Agent 交互模式
输入 /exit 或 /quit 退出,输入 /help 查看帮助
You: 你好
-Agent: 你好!我是 MemoHome AI 助手,很高兴为你服务...
+Agent: 你好!我是 Memoh AI 助手,很高兴为你服务...
You: 帮我总结一下今天的对话
Agent: [🔧 使用工具: search_memory]
@@ -271,7 +271,7 @@ You: /exit
### 搜索记忆示例
```bash
-$ memohome memory search "项目计划"
+$ memoh memory search "项目计划"
✓ 找到 3 条记忆
@@ -290,7 +290,7 @@ $ memohome memory search "项目计划"
## 配置文件
-CLI 配置保存在 `~/.memohome/config.json`:
+CLI 配置保存在 `~/.memoh/config.json`:
```json
{
diff --git a/packages/cli/package.json b/packages/cli/package.json
index a0f68d1e..fd4058af 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,7 +1,7 @@
{
- "name": "@memohome/client",
+ "name": "@memoh/client",
"version": "1.0.0",
- "description": "Command line interface and core API for MemoHome",
+ "description": "Command line interface and core API for Memoh",
"exports": {
".": "./src/index.ts",
"./core": "./src/core/index.ts",
@@ -10,7 +10,7 @@
"./cli": "./src/cli/index.ts"
},
"bin": {
- "memohome": "./src/cli/index.ts"
+ "memoh": "./src/cli/index.ts"
},
"scripts": {
"start": "bun run src/cli/index.ts",
@@ -18,8 +18,8 @@
},
"dependencies": {
"@elysiajs/eden": "^1.4.6",
- "@memohome/api": "workspace:*",
- "@memohome/shared": "workspace:*",
+ "@memoh/api": "workspace:*",
+ "@memoh/shared": "workspace:*",
"elysia": "latest",
"commander": "^12.1.0",
"chalk": "^5.4.1",
diff --git a/packages/cli/src/cli/commands/agent.ts b/packages/cli/src/cli/commands/agent.ts
index 98bc2ff1..f42d1a42 100644
--- a/packages/cli/src/cli/commands/agent.ts
+++ b/packages/cli/src/cli/commands/agent.ts
@@ -7,7 +7,7 @@ export async function startInteractiveMode(options: { maxContextTime?: string; l
try {
requireAuth()
- console.log(chalk.green.bold('🤖 MemoHome Agent Interactive Mode'))
+ console.log(chalk.green.bold('🤖 Memoh Agent Interactive Mode'))
console.log(chalk.dim('Type /exit or /quit to exit, type /help for help\n'))
const { createInterface } = await import('readline')
diff --git a/packages/cli/src/cli/commands/auth.ts b/packages/cli/src/cli/commands/auth.ts
index c631eb40..c91b9ea7 100644
--- a/packages/cli/src/cli/commands/auth.ts
+++ b/packages/cli/src/cli/commands/auth.ts
@@ -8,7 +8,7 @@ import { formatError } from '../../utils'
export function authCommands(program: Command) {
program
.command('login')
- .description('Login to MemoHome')
+ .description('Login to Memoh')
.option('-u, --username ', 'Username')
.option('-p, --password ', 'Password')
.action(async (options) => {
@@ -75,7 +75,7 @@ export function authCommands(program: Command) {
try {
if (!authCore.isLoggedIn()) {
console.log(chalk.yellow('Not currently logged in'))
- console.log(chalk.dim('Use "memohome auth login" to login'))
+ console.log(chalk.dim('Use "memoh auth login" to login'))
return
}
diff --git a/packages/cli/src/cli/commands/memory.ts b/packages/cli/src/cli/commands/memory.ts
index 9a8c2b8c..95c58f56 100644
--- a/packages/cli/src/cli/commands/memory.ts
+++ b/packages/cli/src/cli/commands/memory.ts
@@ -121,7 +121,7 @@ export function memoryCommands(program: Command) {
try {
if (!options.start || !options.end) {
console.error(chalk.red('Please provide start and end dates'))
- console.log(chalk.dim('Example: memohome memory filter -s 2024-01-01T00:00:00Z -e 2024-12-31T23:59:59Z'))
+ console.log(chalk.dim('Example: memoh memory filter -s 2024-01-01T00:00:00Z -e 2024-12-31T23:59:59Z'))
process.exit(1)
}
diff --git a/packages/cli/src/cli/index.ts b/packages/cli/src/cli/index.ts
index 21e32dd4..a53ca2f6 100755
--- a/packages/cli/src/cli/index.ts
+++ b/packages/cli/src/cli/index.ts
@@ -15,8 +15,8 @@ import { debugCommands } from './commands/debug'
const program = new Command()
program
- .name('memohome')
- .description(chalk.bold.blue('🏠 MemoHome Agent'))
+ .name('memoh')
+ .description(chalk.bold.blue('🏠 Memoh Agent'))
.version('1.0.0')
// Authentication commands
diff --git a/packages/cli/src/core/agent.ts b/packages/cli/src/core/agent.ts
index fa8bfb6c..b34693b8 100644
--- a/packages/cli/src/core/agent.ts
+++ b/packages/cli/src/core/agent.ts
@@ -1,5 +1,5 @@
import { requireAuth, getToken, getApiUrl } from './client'
-import type { MemoHomeContext } from './context'
+import type { MemohContext } from './context'
export interface ChatParams {
message: string
@@ -22,7 +22,7 @@ export type StreamCallback = (event: StreamEvent) => void | Promise
export async function chatStream(
params: ChatParams,
onEvent: StreamCallback,
- context?: MemoHomeContext
+ context?: MemohContext
): Promise {
requireAuth(context)
const token = getToken(context)!
@@ -37,7 +37,7 @@ export async function chatStream(
export async function chatStreamAsync(
params: ChatParams,
onEvent: StreamCallback,
- context?: MemoHomeContext
+ context?: MemohContext
): Promise {
requireAuth(context)
const token = getToken(context)!
@@ -126,7 +126,7 @@ async function performStreamChat(
/**
* Chat with AI Agent (non-streaming, collect full response) - sync version
*/
-export async function chat(params: ChatParams, context?: MemoHomeContext): Promise {
+export async function chat(params: ChatParams, context?: MemohContext): Promise {
let fullResponse = ''
await chatStream(params, async (event) => {
@@ -143,7 +143,7 @@ export async function chat(params: ChatParams, context?: MemoHomeContext): Promi
/**
* Chat with AI Agent (non-streaming, collect full response) - async version
*/
-export async function chatAsync(params: ChatParams, context?: MemoHomeContext): Promise {
+export async function chatAsync(params: ChatParams, context?: MemohContext): Promise {
let fullResponse = ''
await chatStreamAsync(params, async (event) => {
diff --git a/packages/cli/src/core/auth.ts b/packages/cli/src/core/auth.ts
index 1391fdf9..69a44d0c 100644
--- a/packages/cli/src/core/auth.ts
+++ b/packages/cli/src/core/auth.ts
@@ -1,5 +1,5 @@
import { createClient } from './client'
-import { getContext, type MemoHomeContext } from './context'
+import { getContext, type MemohContext } from './context'
export interface LoginParams {
username: string
@@ -28,11 +28,11 @@ export interface ConfigInfo {
}
/**
- * Login to MemoHome API (sync version for file storage)
+ * Login to Memoh API (sync version for file storage)
* @param params - Login parameters
* @param context - Optional context
*/
-export async function login(params: LoginParams, context?: MemoHomeContext): Promise {
+export async function login(params: LoginParams, context?: MemohContext): Promise {
const client = createClient(context)
const response = await client.auth.login.post({
@@ -70,7 +70,7 @@ export async function login(params: LoginParams, context?: MemoHomeContext): Pro
* Logout current user
* @param context - Optional context
*/
-export function logout(context?: MemoHomeContext): void {
+export function logout(context?: MemohContext): void {
const ctx = context || getContext()
const storage = ctx.storage
@@ -85,7 +85,7 @@ export function logout(context?: MemoHomeContext): void {
* Check if user is logged in
* @param context - Optional context
*/
-export function isLoggedIn(context?: MemoHomeContext): boolean {
+export function isLoggedIn(context?: MemohContext): boolean {
const ctx = context || getContext()
const storage = ctx.storage
@@ -102,7 +102,7 @@ export function isLoggedIn(context?: MemoHomeContext): boolean {
* Get current logged in user info
* @param context - Optional context
*/
-export async function getCurrentUser(context?: MemoHomeContext): Promise {
+export async function getCurrentUser(context?: MemohContext): Promise {
const ctx = context || getContext()
const storage = ctx.storage
@@ -136,7 +136,7 @@ export async function getCurrentUser(context?: MemoHomeContext): Promise): void {
+export function setContext(context: Partial): void {
defaultContext = { ...defaultContext, ...context }
}
@@ -44,7 +44,7 @@ export function setContext(context: Partial): void {
export function createContext(options: {
storage: TokenStorage
userId?: string
-}): MemoHomeContext {
+}): MemohContext {
return {
storage: options.storage,
currentUserId: options.userId,
diff --git a/packages/cli/src/core/debug.ts b/packages/cli/src/core/debug.ts
index c7eb369c..4b0f6673 100644
--- a/packages/cli/src/core/debug.ts
+++ b/packages/cli/src/core/debug.ts
@@ -1,5 +1,5 @@
import { getApiUrl, getToken } from './client'
-import type { MemoHomeContext } from './context'
+import type { MemohContext } from './context'
export interface PingResult {
success: boolean
@@ -12,7 +12,7 @@ export interface PingResult {
* Test API server connection
* @param context - Optional context, uses global context if not provided
*/
-export async function ping(context?: MemoHomeContext): Promise {
+export async function ping(context?: MemohContext): Promise {
const apiUrl = getApiUrl(context)
const token = getToken(context)
@@ -67,7 +67,7 @@ export async function ping(context?: MemoHomeContext): Promise {
* Get connection info
* @param context - Optional context, uses global context if not provided
*/
-export function getConnectionInfo(context?: MemoHomeContext): {
+export function getConnectionInfo(context?: MemohContext): {
apiUrl: string
hasToken: boolean
} {
diff --git a/packages/cli/src/core/index.ts b/packages/cli/src/core/index.ts
index fb396432..06f460fc 100644
--- a/packages/cli/src/core/index.ts
+++ b/packages/cli/src/core/index.ts
@@ -1,5 +1,5 @@
/**
- * MemoHome Core API
+ * Memoh Core API
*
* This module provides core functionality that can be used by CLI and other applications.
* All functions are independent of CLI-specific UI concerns (no chalk, ora, inquirer, etc.)
@@ -11,7 +11,7 @@ export {
setContext,
createContext,
resetContext,
- type MemoHomeContext,
+ type MemohContext,
} from './context'
// Storage
diff --git a/packages/cli/src/core/storage/file.ts b/packages/cli/src/core/storage/file.ts
index eb310601..43c7c9d7 100644
--- a/packages/cli/src/core/storage/file.ts
+++ b/packages/cli/src/core/storage/file.ts
@@ -3,7 +3,7 @@ import { join } from 'path'
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs'
import type { TokenStorage, Config } from '../storage'
-const CONFIG_DIR = join(homedir(), '.memohome')
+const CONFIG_DIR = join(homedir(), '.memoh')
const CONFIG_FILE = join(CONFIG_DIR, 'config.json')
const DEFAULT_CONFIG: Config = {
@@ -12,7 +12,7 @@ const DEFAULT_CONFIG: Config = {
/**
* File-based token storage for CLI
- * Stores config in ~/.memohome/config.json
+ * Stores config in ~/.memoh/config.json
*/
export class FileTokenStorage implements TokenStorage {
private ensureConfigDir() {
diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts
index 401b611b..537cb586 100644
--- a/packages/cli/src/index.ts
+++ b/packages/cli/src/index.ts
@@ -1,19 +1,19 @@
/**
- * MemoHome CLI Package
+ * Memoh CLI Package
*
* This package provides both:
- * 1. A command-line interface (CLI) for interacting with MemoHome API
+ * 1. A command-line interface (CLI) for interacting with Memoh API
* 2. Core functionality that can be imported and used in other projects
*
* @example CLI Usage (from terminal)
* ```bash
- * memohome auth login
- * memohome agent chat "Hello"
+ * memoh auth login
+ * memoh agent chat "Hello"
* ```
*
* @example Core API Usage (from code)
* ```typescript
- * import { login, chat, listModels } from '@memohome/cli'
+ * import { login, chat, listModels } from '@memoh/cli'
*
* // Login
* await login({ username: 'admin', password: 'password' })
diff --git a/packages/db/README.md b/packages/db/README.md
index 3d312356..07ea9374 100644
--- a/packages/db/README.md
+++ b/packages/db/README.md
@@ -1,6 +1,6 @@
-# @memohome/db
+# @memoh/db
-Database package for memohome project using Drizzle ORM and PostgreSQL.
+Database package for memoh project using Drizzle ORM and PostgreSQL.
## Database Schema
diff --git a/packages/db/USERS_SCHEMA.md b/packages/db/USERS_SCHEMA.md
index 689f63ae..b546dd27 100644
--- a/packages/db/USERS_SCHEMA.md
+++ b/packages/db/USERS_SCHEMA.md
@@ -44,8 +44,8 @@ pnpm run push
### 3. 在代码中使用
```typescript
-import { users, userRoleEnum } from '@memohome/db/schema'
-import { db } from '@memohome/db'
+import { users, userRoleEnum } from '@memoh/db/schema'
+import { db } from '@memoh/db'
// 创建用户
const password = 'password123'
@@ -60,7 +60,7 @@ const newUser = await db.insert(users).values({
}).returning()
// 或者使用辅助函数
-import { createUser } from '@memohome/db/src/user-helpers'
+import { createUser } from '@memoh/db/src/user-helpers'
const user = await createUser({
username: 'john_doe',
diff --git a/packages/db/package.json b/packages/db/package.json
index 27a3d5ab..8535b8fc 100644
--- a/packages/db/package.json
+++ b/packages/db/package.json
@@ -1,5 +1,5 @@
{
- "name": "@memohome/db",
+ "name": "@memoh/db",
"version": "1.0.0",
"type": "module",
"exports": {
@@ -13,7 +13,7 @@
"studio": "drizzle-kit studio"
},
"dependencies": {
- "@memohome/shared": "workspace:*",
+ "@memoh/shared": "workspace:*",
"dotenv": "^17.2.3",
"drizzle-orm": "^0.45.1",
"pg": "^8.16.3"
diff --git a/packages/db/src/model.ts b/packages/db/src/model.ts
index 4822380a..308d687d 100644
--- a/packages/db/src/model.ts
+++ b/packages/db/src/model.ts
@@ -1,4 +1,4 @@
-import { Model } from '@memohome/shared'
+import { Model } from '@memoh/shared'
import { jsonb, pgTable, uuid } from 'drizzle-orm/pg-core'
export const model = pgTable('model', {
diff --git a/packages/memory/README.md b/packages/memory/README.md
index c8dc29e9..6b0c38a1 100644
--- a/packages/memory/README.md
+++ b/packages/memory/README.md
@@ -1 +1 @@
-# @memohome/memory
+# @memoh/memory
diff --git a/packages/memory/package.json b/packages/memory/package.json
index 7275052b..df2ced7c 100644
--- a/packages/memory/package.json
+++ b/packages/memory/package.json
@@ -1,5 +1,5 @@
{
- "name": "@memohome/memory",
+ "name": "@memoh/memory",
"version": "1.0.0",
"description": "",
"exports": {
@@ -15,9 +15,9 @@
"packageManager": "pnpm@10.27.0",
"dependencies": {
"@ai-sdk/openai": "^3.0.7",
- "@memohome/ai-gateway": "workspace:*",
- "@memohome/db": "workspace:*",
- "@memohome/shared": "workspace:*",
+ "@memoh/ai-gateway": "workspace:*",
+ "@memoh/db": "workspace:*",
+ "@memoh/shared": "workspace:*",
"ai": "^6.0.25",
"drizzle-orm": "^0.45.1",
"mem0ai": "^2.2.0",
diff --git a/packages/memory/src/filter.ts b/packages/memory/src/filter.ts
index 048ab961..cf47c936 100644
--- a/packages/memory/src/filter.ts
+++ b/packages/memory/src/filter.ts
@@ -1,5 +1,5 @@
-import { db } from '@memohome/db'
-import { history } from '@memohome/db/schema'
+import { db } from '@memoh/db'
+import { history } from '@memoh/db/schema'
import { and, gte, lte, asc, eq } from 'drizzle-orm'
import { MemoryUnit } from './memory-unit'
diff --git a/packages/memory/src/memory.ts b/packages/memory/src/memory.ts
index 5df15811..29ee4862 100644
--- a/packages/memory/src/memory.ts
+++ b/packages/memory/src/memory.ts
@@ -1,8 +1,8 @@
import { Memory, type Message } from 'mem0ai/oss'
-import { ChatModel, EmbeddingModel } from '@memohome/shared'
+import { ChatModel, EmbeddingModel } from '@memoh/shared'
import { MemoryUnit } from './memory-unit'
-import { db } from '@memohome/db'
-import { history } from '@memohome/db/schema'
+import { db } from '@memoh/db'
+import { history } from '@memoh/db/schema'
export interface CreateMemoryParams {
summaryModel: ChatModel
diff --git a/packages/platform-telegram/QUICKSTART.md b/packages/platform-telegram/QUICKSTART.md
index 6317bc59..ba0f384e 100644
--- a/packages/platform-telegram/QUICKSTART.md
+++ b/packages/platform-telegram/QUICKSTART.md
@@ -31,7 +31,7 @@ EOF
redis-server
```
-**Terminal 2 - 启动 MemoHome API:**
+**Terminal 2 - 启动 Memoh API:**
```bash
cd packages/api
pnpm start
@@ -50,7 +50,7 @@ pnpm start
```
你: /start
-Bot: 👋 Welcome to MemoHome Bot!
+Bot: 👋 Welcome to Memoh Bot!
Available commands:
/login - Login to your account
@@ -69,13 +69,13 @@ Bot: ✅ Login successful!
🎭 Role: admin
🔑 User ID: xxx
-You can now use the bot to interact with MemoHome.
+You can now use the bot to interact with Memoh.
```
```
你: /chat 你好,介绍一下你自己
-Bot: 🤖 你好!我是 MemoHome AI 助手...
+Bot: 🤖 你好!我是 Memoh AI 助手...
```
```
@@ -140,16 +140,16 @@ Bot: 🤖 你好 userB...
redis-cli
# 查看所有 token
-KEYS memohome:tg:token:*
+KEYS memoh:tg:token:*
# 查看特定用户的 token
-GET memohome:tg:token:123456789
+GET memoh:tg:token:123456789
# 查看用户信息
-GET memohome:tg:user:123456789
+GET memoh:tg:user:123456789
# 查看过期时间
-TTL memohome:tg:token:123456789
+TTL memoh:tg:token:123456789
```
## 下一步
@@ -191,7 +191,7 @@ Bot: Hello! 你好!
```json
{
"apps": [{
- "name": "memohome-tg-bot",
+ "name": "memoh-tg-bot",
"script": "bun",
"args": "run src/bot.ts",
"env": {
@@ -206,7 +206,7 @@ Bot: Hello! 你好!
启动:
```bash
pm2 start ecosystem.json
-pm2 logs memohome-tg-bot
+pm2 logs memoh-tg-bot
```
祝你使用愉快!🎉
diff --git a/packages/platform-telegram/README.md b/packages/platform-telegram/README.md
index b9ebf497..8472186d 100644
--- a/packages/platform-telegram/README.md
+++ b/packages/platform-telegram/README.md
@@ -1,12 +1,12 @@
-# MemoHome Telegram Platform
+# Memoh Telegram Platform
-Telegram bot platform for MemoHome, supporting multi-user authentication with Redis storage.
+Telegram bot platform for Memoh, supporting multi-user authentication with Redis storage.
## Features
-- 🔐 **Multi-user Authentication**: Each Telegram user can login to their own MemoHome account
+- 🔐 **Multi-user Authentication**: Each Telegram user can login to their own Memoh account
- 💾 **Redis Storage**: Token and user info stored in Redis
-- 💬 **AI Chat**: Stream responses from MemoHome AI agent
+- 💬 **AI Chat**: Stream responses from Memoh AI agent
- 🔄 **Real-time Updates**: Live message editing during streaming responses
- 🛡️ **Auth Middleware**: Protected commands require login
@@ -34,7 +34,7 @@ BOT_TOKEN=your_telegram_bot_token_here
# Redis connection string
REDIS_URL=redis://localhost:6379
-# MemoHome API URL
+# Memoh API URL
API_BASE_URL=http://localhost:7002
```
@@ -57,7 +57,7 @@ pnpm dev
### As a Platform Module
```typescript
-import { TelegramPlatform } from '@memohome/platform-telegram'
+import { TelegramPlatform } from '@memoh/platform-telegram'
const platform = new TelegramPlatform()
@@ -73,7 +73,7 @@ await platform.start({
### Authentication
- `/start` - Welcome message and command list
-- `/login ` - Login to your MemoHome account
+- `/login ` - Login to your Memoh account
- `/logout` - Logout from your account
- `/whoami` - Show current user information
@@ -93,13 +93,13 @@ await platform.start({
Redis keys follow this pattern:
```
-memohome:tg:token:{telegram_user_id} -> token (30 days TTL)
-memohome:tg:user:{telegram_user_id} -> { username, role, userId } (30 days TTL)
+memoh:tg:token:{telegram_user_id} -> token (30 days TTL)
+memoh:tg:user:{telegram_user_id} -> { username, role, userId } (30 days TTL)
```
### Multi-user Support
-Each Telegram user ID is mapped to their own MemoHome account token:
+Each Telegram user ID is mapped to their own Memoh account token:
```typescript
// User 123456 logs in
@@ -114,7 +114,7 @@ telegram_user_id: "789012" -> userInfo: { username: "user2", ... }
### Authentication Flow
1. User sends `/login username password`
-2. Bot validates credentials with MemoHome API
+2. Bot validates credentials with Memoh API
3. Token is stored in Redis with Telegram user ID as key
4. User info is cached in Redis
5. Subsequent messages use the stored token
@@ -145,7 +145,7 @@ this.bot.command('mycommand', requireAuth(storage), async (ctx) => {
### Using Core Functions
```typescript
-import { chatStreamAsync, listModels } from '@memohome/cli/core'
+import { chatStreamAsync, listModels } from '@memoh/cli/core'
import { getMemoContext } from './auth'
// In a command handler
@@ -190,7 +190,7 @@ Or send a message directly:
### Bot not responding
1. Check if the bot token is correct
-2. Ensure MemoHome API is running
+2. Ensure Memoh API is running
3. Check Redis connection
### Login failed
@@ -234,7 +234,7 @@ Set these in your deployment environment:
- `BOT_TOKEN` - Your Telegram bot token
- `REDIS_URL` - Redis connection string
-- `API_BASE_URL` - MemoHome API URL
+- `API_BASE_URL` - Memoh API URL
## License
diff --git a/packages/platform-telegram/SETUP.md b/packages/platform-telegram/SETUP.md
index d87e44ad..bbc66b62 100644
--- a/packages/platform-telegram/SETUP.md
+++ b/packages/platform-telegram/SETUP.md
@@ -19,7 +19,7 @@
docker run -d -p 6379:6379 redis:latest
```
-3. **MemoHome API**
+3. **Memoh API**
- Ensure the API server is running on `http://localhost:7002`
- Or update `API_BASE_URL` to your API endpoint
@@ -68,7 +68,7 @@ Open Telegram and find your bot, then:
/start
```
-2. **Login to MemoHome**
+2. **Login to Memoh**
```
/login admin password
```
@@ -109,13 +109,13 @@ Open Telegram and find your bot, then:
```
1. User: /login admin password
│
- ├──► Bot validates with MemoHome API
+ ├──► Bot validates with Memoh API
│
├──► API returns token + user info
│
└──► Redis stores:
- ├─ memohome:tg:token:123456 = "token_abc..."
- └─ memohome:tg:user:123456 = { username, role, userId }
+ ├─ memoh:tg:token:123456 = "token_abc..."
+ └─ memoh:tg:user:123456 = { username, role, userId }
2. User: /chat Hello
│
@@ -123,7 +123,7 @@ Open Telegram and find your bot, then:
│
├──► Get token from Redis by telegram_id
│
- ├──► Call MemoHome API with token
+ ├──► Call Memoh API with token
│
└──► Stream response back to user
```
@@ -210,7 +210,7 @@ import {
chatStreamAsync,
listModels,
searchMemory
-} from '@memohome/cli/core'
+} from '@memoh/cli/core'
// In command handler
const memoContext = getMemoContext(ctx, storage)
@@ -249,16 +249,16 @@ DEBUG=telegraf:* pnpm start
redis-cli
# List all keys
-KEYS memohome:tg:*
+KEYS memoh:tg:*
# Get a token
-GET memohome:tg:token:123456
+GET memoh:tg:token:123456
# Get user info
-GET memohome:tg:user:123456
+GET memoh:tg:user:123456
# Check TTL (time to live)
-TTL memohome:tg:token:123456
+TTL memoh:tg:token:123456
```
### Test API Connection
@@ -345,7 +345,7 @@ API_BASE_URL=https://api.yourdomain.com
**Solutions**:
1. Verify API URL is accessible
2. Check username/password are correct
-3. Ensure MemoHome API is running
+3. Ensure Memoh API is running
4. Test API endpoint directly with curl
### Redis connection errors
@@ -365,7 +365,7 @@ API_BASE_URL=https://api.yourdomain.com
**Solutions**:
1. Tokens expire after 30 days
2. User needs to `/logout` and `/login` again
-3. Check token TTL in Redis: `TTL memohome:tg:token:123456`
+3. Check token TTL in Redis: `TTL memoh:tg:token:123456`
## Advanced Usage
@@ -374,7 +374,7 @@ API_BASE_URL=https://api.yourdomain.com
You can implement your own storage:
```typescript
-import type { TokenStorage } from '@memohome/cli/core'
+import type { TokenStorage } from '@memoh/cli/core'
class MyCustomStorage implements TokenStorage {
async getApiUrl(): Promise { /* ... */ }
diff --git a/packages/platform-telegram/example.ts b/packages/platform-telegram/example.ts
index c05bbff5..9bb189de 100644
--- a/packages/platform-telegram/example.ts
+++ b/packages/platform-telegram/example.ts
@@ -31,7 +31,7 @@ async function main() {
console.log('Bot is running!')
console.log('\nAvailable commands:')
console.log(' /start - Welcome message')
- console.log(' /login - Login to MemoHome')
+ console.log(' /login - Login to Memoh')
console.log(' /whoami - Show current user')
console.log(' /chat - Chat with AI')
console.log(' /logout - Logout')
diff --git a/packages/platform-telegram/package.json b/packages/platform-telegram/package.json
index ed4c0eeb..774eafe9 100644
--- a/packages/platform-telegram/package.json
+++ b/packages/platform-telegram/package.json
@@ -1,13 +1,13 @@
{
- "name": "@memohome/platform-telegram",
+ "name": "@memoh/platform-telegram",
"version": "1.0.0",
- "description": "Telegram platform for MemoHome",
+ "description": "Telegram platform for Memoh",
"exports": {
".": "./src/index.ts"
},
"main": "src/index.ts",
"bin": {
- "memohome-tg-bot": "./src/bot.ts"
+ "memoh-tg-bot": "./src/bot.ts"
},
"scripts": {
"start": "bun run src/bot.ts",
@@ -18,8 +18,8 @@
"license": "ISC",
"packageManager": "pnpm@10.27.0",
"dependencies": {
- "@memohome/client": "workspace:*",
- "@memohome/platform": "workspace:*",
+ "@memoh/client": "workspace:*",
+ "@memoh/platform": "workspace:*",
"dotenv": "^16.4.7",
"ioredis": "^5.9.1",
"telegraf": "^4.16.3",
diff --git a/packages/platform-telegram/src/auth.ts b/packages/platform-telegram/src/auth.ts
index c40bc08d..e61bc807 100644
--- a/packages/platform-telegram/src/auth.ts
+++ b/packages/platform-telegram/src/auth.ts
@@ -1,5 +1,5 @@
import type { Context } from 'telegraf'
-import { login, logout, isLoggedIn, getCurrentUser } from '@memohome/client'
+import { login, logout, isLoggedIn, getCurrentUser } from '@memoh/client'
import { getTokenStorage } from './storage'
@@ -38,7 +38,7 @@ export async function handleLogin(ctx: Context) {
`👤 Username: ${result.user.username}\n` +
`🎭 Role: ${result.user.role}\n` +
`🔑 User ID: ${result.user.id}\n\n` +
- 'You can now use the bot to interact with MemoHome.'
+ 'You can now use the bot to interact with Memoh.'
)
} else {
await ctx.reply('❌ Login failed: Invalid response from server')
diff --git a/packages/platform-telegram/src/index.ts b/packages/platform-telegram/src/index.ts
index 6ab6329c..1fc9c7fb 100644
--- a/packages/platform-telegram/src/index.ts
+++ b/packages/platform-telegram/src/index.ts
@@ -1,7 +1,7 @@
import { Telegraf, type Context } from 'telegraf'
-import { BasePlatform, SendSchema } from '@memohome/platform'
+import { BasePlatform, SendSchema } from '@memoh/platform'
import { handleLogin, handleLogout, handleWhoami, requireAuth } from './auth'
-import { chatStreamAsync, type StreamEvent } from '@memohome/client'
+import { chatStreamAsync, type StreamEvent } from '@memoh/client'
import { getTokenStorage } from './storage'
import z from 'zod'
import Redis from 'ioredis'
@@ -14,7 +14,7 @@ export interface TelegramPlatformConfig {
export class TelegramPlatform extends BasePlatform {
name = 'telegram'
- description = 'Telegram Bot platform for MemoHome'
+ description = 'Telegram Bot platform for Memoh'
config = z.object({
botToken: z.string(),
})
@@ -60,7 +60,7 @@ export class TelegramPlatform extends BasePlatform {
}
async send({ userId, message }: z.infer): Promise {
- const pattern = 'memohome:telegram:*:userId'
+ const pattern = 'memoh:telegram:*:userId'
let cursor = '0'
let telegramUserId: string | null = null
@@ -78,8 +78,8 @@ export class TelegramPlatform extends BasePlatform {
for (const key of keys) {
const storedUserId = await this.redis.get(key)
if (storedUserId === userId) {
- // 从 key 中提取 telegramUserId: memohome:telegram:{telegramUserId}:userId
- const match = key.match(/^memohome:telegram:(.+):userId$/)
+ // 从 key 中提取 telegramUserId: memoh:telegram:{telegramUserId}:userId
+ const match = key.match(/^memoh:telegram:(.+):userId$/)
if (match) {
telegramUserId = match[1]
break
@@ -88,7 +88,7 @@ export class TelegramPlatform extends BasePlatform {
}
} while (cursor !== '0')
if (telegramUserId) {
- const chatId = await this.redis.get(`memohome:telegram:${telegramUserId}:chatId`)
+ const chatId = await this.redis.get(`memoh:telegram:${telegramUserId}:chatId`)
if (chatId && this.bot) {
await this.bot.telegram.sendMessage(chatId, message)
}
@@ -103,7 +103,7 @@ export class TelegramPlatform extends BasePlatform {
// Start command
this.bot.command('start', async (ctx) => {
await ctx.reply(
- '👋 Welcome to MemoHome Bot!\n\n' +
+ '👋 Welcome to Memoh Bot!\n\n' +
'Available commands:\n' +
'/login - Login to your account\n' +
'/logout - Logout from your account\n' +
@@ -116,7 +116,7 @@ export class TelegramPlatform extends BasePlatform {
// Help command
this.bot.command('help', async (ctx) => {
await ctx.reply(
- '📚 MemoHome Bot Help\n\n' +
+ '📚 Memoh Bot Help\n\n' +
'🔐 Authentication:\n' +
'/login - Login\n' +
'/logout - Logout\n' +
diff --git a/packages/platform-telegram/src/storage.ts b/packages/platform-telegram/src/storage.ts
index 8f252faa..d527418d 100644
--- a/packages/platform-telegram/src/storage.ts
+++ b/packages/platform-telegram/src/storage.ts
@@ -1,4 +1,4 @@
-import type { TokenStorage } from '@memohome/client'
+import type { TokenStorage } from '@memoh/client'
import Redis from 'ioredis'
import { Context } from 'telegraf'
@@ -16,16 +16,16 @@ export const getTokenStorage = async (ctx: Context): Promise chatId,
setChatId: (chatId: string) => {
- redis.set(`memohome:telegram:${telegramUserId}:chatId`, chatId)
+ redis.set(`memoh:telegram:${telegramUserId}:chatId`, chatId)
.then(() => {
redis.save()
})
@@ -34,27 +34,27 @@ export const getTokenStorage = async (ctx: Context): Promise {},
getToken: () => token,
setToken: (token: string) => {
- redis.set(`memohome:telegram:${telegramUserId}:token`, token)
+ redis.set(`memoh:telegram:${telegramUserId}:token`, token)
.then(() => {
redis.save()
})
},
clearToken: () => {
- redis.del(`memohome:telegram:${telegramUserId}:token`)
+ redis.del(`memoh:telegram:${telegramUserId}:token`)
.then(() => {
redis.save()
})
},
getUserId: () => userId,
setUserId: (userId: string) => {
- redis.set(`memohome:telegram:${telegramUserId}:userId`, userId)
+ redis.set(`memoh:telegram:${telegramUserId}:userId`, userId)
.then(() => {
redis.save()
})
},
getTelegramIdByUserId: async (userId: string) => {
- // 扫描所有 memohome:telegram:*:userId 的 key
- const pattern = 'memohome:telegram:*:userId'
+ // 扫描所有 memoh:telegram:*:userId 的 key
+ const pattern = 'memoh:telegram:*:userId'
let cursor = '0'
do {
@@ -71,8 +71,8 @@ export const getTokenStorage = async (ctx: Context): Promise
- Memohome
+ Memoh
diff --git a/packages/web/package.json b/packages/web/package.json
index fc590251..65992cf6 100644
--- a/packages/web/package.json
+++ b/packages/web/package.json
@@ -1,5 +1,5 @@
{
- "name": "@memohome/web",
+ "name": "@memoh/web",
"private": true,
"version": "0.0.0",
"type": "module",
@@ -9,8 +9,8 @@
"start": "vite preview"
},
"dependencies": {
- "@memohome/shared": "workspace:*",
- "@memohome/ui": "workspace:*",
+ "@memoh/shared": "workspace:*",
+ "@memoh/ui": "workspace:*",
"@tailwindcss/vite": "^4.1.18",
"dotenv": "^17.2.3",
"pinia": "^3.0.4",
diff --git a/packages/web/src/App.vue b/packages/web/src/App.vue
index ed037c65..31538144 100644
--- a/packages/web/src/App.vue
+++ b/packages/web/src/App.vue
@@ -1,6 +1,6 @@
diff --git a/packages/web/src/main.ts b/packages/web/src/main.ts
index 868aa3c0..1f9340e4 100644
--- a/packages/web/src/main.ts
+++ b/packages/web/src/main.ts
@@ -4,7 +4,7 @@ import App from './App.vue'
import router from './router'
import { createPinia } from 'pinia'
import i18n from './i18n'
-import '@memohome/ui/style.css'
+import '@memoh/ui/style.css'
createApp(App)
.use(createPinia())
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 291097e2..86a13187 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -45,13 +45,13 @@ importers:
'@ai-sdk/openai':
specifier: ^3.0.7
version: 3.0.7(zod@4.3.5)
- '@memohome/ai-gateway':
+ '@memoh/ai-gateway':
specifier: workspace:*
version: link:../ai-gateway
- '@memohome/memory':
+ '@memoh/memory':
specifier: workspace:*
version: link:../memory
- '@memohome/shared':
+ '@memoh/shared':
specifier: workspace:*
version: link:../shared
ai:
@@ -81,7 +81,7 @@ importers:
'@ai-sdk/openai':
specifier: ^3.0.7
version: 3.0.7(zod@4.3.5)
- '@memohome/shared':
+ '@memoh/shared':
specifier: workspace:*
version: link:../shared
ai:
@@ -108,16 +108,16 @@ importers:
'@elysiajs/openapi':
specifier: ^1.4.13
version: 1.4.13(elysia@1.4.21(@sinclair/typebox@0.34.47)(@types/bun@1.3.5)(exact-mirror@0.2.6(@sinclair/typebox@0.34.47))(file-type@21.3.0)(openapi-types@12.1.3)(typescript@5.9.3))
- '@memohome/agent':
+ '@memoh/agent':
specifier: workspace:*
version: link:../agent
- '@memohome/db':
+ '@memoh/db':
specifier: workspace:*
version: link:../db
- '@memohome/memory':
+ '@memoh/memory':
specifier: workspace:*
version: link:../memory
- '@memohome/shared':
+ '@memoh/shared':
specifier: workspace:*
version: link:../shared
drizzle-orm:
@@ -142,10 +142,10 @@ importers:
'@elysiajs/eden':
specifier: ^1.4.6
version: 1.4.6(elysia@1.4.21(@sinclair/typebox@0.34.47)(@types/bun@1.3.5)(exact-mirror@0.2.6(@sinclair/typebox@0.34.47))(file-type@21.3.0)(openapi-types@12.1.3)(typescript@5.9.3))
- '@memohome/api':
+ '@memoh/api':
specifier: workspace:*
version: link:../api
- '@memohome/shared':
+ '@memoh/shared':
specifier: workspace:*
version: link:../shared
chalk:
@@ -185,7 +185,7 @@ importers:
packages/db:
dependencies:
- '@memohome/shared':
+ '@memoh/shared':
specifier: workspace:*
version: link:../shared
dotenv:
@@ -213,13 +213,13 @@ importers:
'@ai-sdk/openai':
specifier: ^3.0.7
version: 3.0.7(zod@4.3.5)
- '@memohome/ai-gateway':
+ '@memoh/ai-gateway':
specifier: workspace:*
version: link:../ai-gateway
- '@memohome/db':
+ '@memoh/db':
specifier: workspace:*
version: link:../db
- '@memohome/shared':
+ '@memoh/shared':
specifier: workspace:*
version: link:../shared
ai:
@@ -249,10 +249,10 @@ importers:
packages/platform-telegram:
dependencies:
- '@memohome/client':
+ '@memoh/client':
specifier: workspace:*
version: link:../cli
- '@memohome/platform':
+ '@memoh/platform':
specifier: workspace:*
version: link:../platform
dotenv:
@@ -352,10 +352,10 @@ importers:
packages/web:
dependencies:
- '@memohome/shared':
+ '@memoh/shared':
specifier: workspace:*
version: link:../shared
- '@memohome/ui':
+ '@memoh/ui':
specifier: workspace:*
version: link:../ui
'@tailwindcss/vite':