asurada 0.1.0

Asurada — a memory + cognition daemon that grows with the user. Local-first, BYOK, shared by Devist/Webchemist Core/etc.
# Asurada

> 사용자와 함께 성장하는 AI 메모리·인지 데몬.
> 사이버포뮬러의 Asurada 시스템에서 영감받음.

`asurada` 는 macOS 백그라운드 데몬으로 동작하며, 도메인 무관 인지 레이어 역할을 합니다.
[Devist](https://github.com/WebchemistCorp/devist) 같은 도구가 brain.db 를 통해 Asurada 와 협력합니다.

## 특징

- **로컬 우선**`~/.asurada/brain.db` (SQLite + FTS5) 가 단일 진실 + Supabase 양방향 sync
- **BYOK** — 사용자 본인의 Supabase Postgres + ElevenLabs API 키
- **단일 인격, 다중 사용자** — 한 Asurada 가 여러 사용자를 user_id 별 컨텍스트로 응대
- **임베딩된 인격**`prompts/persona.md`, `prompts/policies.md`, `prompts/classify.md` 가 코드에 함께 배포되어 동일 인격 보장
- **TTS** — ElevenLabs 통합 (어드바이스 음성 출력, 향후 양방향 대화)

## 설치

### Homebrew

```bash
brew install webchemistcorp/asurada/asurada
```

### Cargo

```bash
cargo install asurada
```

### 소스에서

```bash
git clone https://github.com/WebchemistCorp/asurada
cd asurada
cargo install --path .
```

## 빠른 시작

```bash
# 1. brain.db 초기화
asurada init

# 2. Supabase 자격증명 환경 변수 (사용자 본인의 Postgres)
export ASURADA_DATABASE_URL='postgresql://user:pass@host:5432/db'
export ASURADA_USER_ID='alice'

# 3. Supabase 측 마이그레이션 한 번 적용
psql "$ASURADA_DATABASE_URL" -f migrations/supabase/0001_init.sql

# 4. 데몬 시작 (HTTP API + 백그라운드 sync)
asurada serve
```

## 명령어

```
asurada init                    brain.db 초기화
asurada serve [--port 7878]     데몬 시작 (HTTP API + sync 루프)
asurada path                    경로 확인
asurada sync push|pull|run      수동 sync
asurada tts on|off|status       TTS 토글
asurada tts voices              ElevenLabs voice 목록
asurada tts speak [--project]   미확인 어드바이스 음성 출력
asurada tts test "<text>"       테스트
```

## 아키텍처

```
[User's Mac]
                    Supabase Postgres (사용자 본인)
                    asurada.{events,memories,advice,projects}
                       ▲              ▲              ▲
                       │ tokio-pg     │ tokio-pg     │ Supabase JS
                       │              │              │
   asurada 데몬 ───────┘              │              Vercel Dashboard
   (sync 게이트,                       │
    인격, Claude,                      │
    TTS)              ~/.asurada/brain.db
                       (WAL, 다중 프로세스)
                              │ INSERT events
                       Devist 데몬 (파일 감시)
```

## 책임 경계

Asurada 는 인지 레이어. 도메인은 소비자가 정함.

| 영역 | 담당 |
|------|------|
| 메모리 저장 / 분류 / 검색 | **Asurada** |
| 어드바이스 생성 (Claude 호출) | **Asurada** |
| 통합 / 반성 sleep cycle | **Asurada** |
| 페르소나 / 정책 / 톤 | **Asurada** (prompts/) |
| 파일 감시 / 프로젝트 관리 | Devist (개발) |
| 영상/블로그/콘텐츠 도메인 | Webchemist Core (미래) |
| 사용자 데이터 저장 | 사용자 본인의 Postgres |

## License

MIT — © Webchemist