Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 27 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,30 @@
/target
# Rust
/target/
node_modules/
Cargo.lock

# Python
__pycache__/
*.py[cod]
*$py.class
venv/
.env

# Mojo
build/
.mojo_cache/

# IDEs
.vscode/
.idea/

# System
.DS_Store
Thumbs.db

# Logs
*.log

# Project specific
.superpowers/
docs/
STRUCTURE.tree
45 changes: 14 additions & 31 deletions STRUCTURE.tree
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
.
β”œβ”€β”€ ARCHITECTURE.md
β”œβ”€β”€ buf.yaml
β”œβ”€β”€ Cargo.lock
β”œβ”€β”€ Cargo.toml
β”œβ”€β”€ CLAUDE.md
Expand All @@ -20,21 +21,14 @@
β”‚Β Β  └── brain-proto
β”‚Β Β  β”œβ”€β”€ build.rs
β”‚Β Β  β”œβ”€β”€ Cargo.toml
β”‚Β Β  β”œβ”€β”€ proto
β”‚Β Β  β”‚Β Β  └── brain.proto
β”‚Β Β  └── src
β”‚Β Β  └── lib.rs
β”œβ”€β”€ DEPLOYMENT_GUIDE.md
β”œβ”€β”€ DESIGN_DECISIONS.md
β”œβ”€β”€ docs
β”‚Β Β  β”œβ”€β”€ specs
β”‚Β Β  β”‚Β Β  └── ecosystem
β”‚Β Β  β”‚Β Β  └── .gitkeep
β”‚Β Β  └── superpowers
β”‚Β Β  β”œβ”€β”€ plans
β”‚Β Β  β”‚Β Β  └── 2026-04-30-foundation-core-loop.md
β”‚Β Β  └── specs
β”‚Β Β  └── 2026-04-30-foundation-core-loop-design.md
β”‚Β Β  └── specs
β”‚Β Β  └── ecosystem
β”‚Β Β  └── 2026-05-01-canonical-proto-standard.md
β”œβ”€β”€ FAQ.md
β”œβ”€β”€ GEMINI.md
β”œβ”€β”€ .github
Expand All @@ -59,33 +53,22 @@
β”œβ”€β”€ PHILOSOPHY.md
β”œβ”€β”€ .pre-commit-config.yaml
β”œβ”€β”€ PRINCIPLES.md
β”œβ”€β”€ proto
β”‚Β Β  └── echo
β”‚Β Β  └── vtuber
β”‚Β Β  β”œβ”€β”€ brain
β”‚Β Β  β”‚Β Β  └── v1
β”‚Β Β  β”‚Β Β  └── brain.proto
β”‚Β Β  └── voice
β”‚Β Β  └── v1
β”‚Β Β  └── voice.proto
β”œβ”€β”€ README.md
β”œβ”€β”€ ROADMAP.md
β”œβ”€β”€ SECURITY.md
β”œβ”€β”€ STRATEGY.md
β”œβ”€β”€ STRUCTURE.tree
β”œβ”€β”€ .superpowers
β”‚Β Β  └── brainstorm
β”‚Β Β  β”œβ”€β”€ 1516087-1777552623
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ content
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ architecture-overview.html
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ boundaries.html
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── phase1-design.html
β”‚Β Β  β”‚Β Β  └── state
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ server.pid
β”‚Β Β  β”‚Β Β  └── server-stopped
β”‚Β Β  └── 2118992-1777559437
β”‚Β Β  β”œβ”€β”€ content
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ architecture-overview.html
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ boundaries-fixed.html
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ boundaries.html
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ final-boundaries.html
β”‚Β Β  β”‚Β Β  └── phase1-design.html
β”‚Β Β  └── state
β”‚Β Β  β”œβ”€β”€ server.pid
β”‚Β Β  └── server-stopped
β”œβ”€β”€ SUPPORT.md
β”œβ”€β”€ TROUBLESHOOTING.md
└── VISION.md

28 directories, 61 files
23 directories, 49 files
9 changes: 9 additions & 0 deletions buf.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
version: v2
modules:
- path: proto
lint:
use:
- STANDARD
breaking:
use:
- STANDARD
2 changes: 1 addition & 1 deletion crates/brain-grpc/src/bin/server.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use brain_grpc::server::MyBrainService;
use brain_proto::brain::brain_service_server::BrainServiceServer;
use brain_proto::brain::v1::brain_service_server::BrainServiceServer;
use tonic::transport::Server;

#[tokio::main]
Expand Down
10 changes: 5 additions & 5 deletions crates/brain-grpc/src/server.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use brain_proto::brain::brain_service_server::BrainService;
use brain_proto::brain::{ContextRequest, ContextResponse};
use brain_proto::brain::v1::brain_service_server::BrainService;
use brain_proto::brain::v1::{PushContextRequest, PushContextResponse};
use tonic::{Request, Response, Status};

#[derive(Default)]
Expand All @@ -9,12 +9,12 @@ pub struct MyBrainService {}
impl BrainService for MyBrainService {
async fn push_context(
&self,
request: Request<ContextRequest>,
) -> Result<Response<ContextResponse>, Status> {
request: Request<PushContextRequest>,
) -> Result<Response<PushContextResponse>, Status> {
let r = request.into_inner();
tracing::info!("Received context from {}: {}", r.user_id, r.message);

Ok(Response::new(ContextResponse {
Ok(Response::new(PushContextResponse {
accepted: true,
request_id: "mock-uuid".to_string(),
}))
Expand Down
8 changes: 7 additions & 1 deletion crates/brain-proto/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
tonic_build::configure()
.build_server(true)
.build_client(true)
.compile_protos(&["proto/brain.proto"], &["proto"])?;
.compile_protos(
&[
"../../proto/echo/vtuber/brain/v1/brain.proto",
"../../proto/echo/vtuber/voice/v1/voice.proto",
],
&["../../proto"],
)?;
Ok(())
}
35 changes: 0 additions & 35 deletions crates/brain-proto/proto/brain.proto

This file was deleted.

10 changes: 9 additions & 1 deletion crates/brain-proto/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
pub mod brain {
tonic::include_proto!("brain");
pub mod v1 {
tonic::include_proto!("echo.vtuber.brain.v1");
}
}

pub mod voice {
pub mod v1 {
tonic::include_proto!("echo.vtuber.voice.v1");
}
}
20 changes: 20 additions & 0 deletions proto/echo/vtuber/brain/v1/brain.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
syntax = "proto3";

package echo.vtuber.brain.v1;

// BrainService defines the interface for vtuber-api to feed context into the reasoning core.
service BrainService {
rpc PushContext (PushContextRequest) returns (PushContextResponse);
}

message PushContextRequest {
string session_id = 1;
string user_id = 2;
string message = 3;
map<string, string> metadata = 4;
}

message PushContextResponse {
bool accepted = 1;
string request_id = 2;
}
18 changes: 18 additions & 0 deletions proto/echo/vtuber/voice/v1/voice.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
syntax = "proto3";

package echo.vtuber.voice.v1;

// VoiceService defines the interface for the Performer (vtuber-voice) to receive directives.
service VoiceService {
rpc EmitDirective (EmitDirectiveRequest) returns (EmitDirectiveResponse);
}

message EmitDirectiveRequest {
string text_prompt = 1;
string voice_prompt = 2;
map<string, string> commands = 3;
}

message EmitDirectiveResponse {
bool success = 1;
}
Loading