# kenneth0111/agent architecture

> Architecture diagram of the GitHub repository kenneth0111/agent, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kenneth0111/agent
- Repository: https://github.com/kenneth0111/agent

## Overview

Creator Agent is a Java content-creation workspace: users register or sign in, configure content accounts, add reference materials, research questions, generate and revise topics/scripts, then assemble and manage weekly schedules. The graph includes documented model and optional web-search integrations. Runtime wiring is based on the README and sampled frontend; unsampled backend calls are shown only where the README documents the workflow.

Main entry points: [`frontend/src/api/http.ts`](https://github.com/kenneth0111/agent/blob/main/frontend/src/api/http.ts) (HTTP Client), [`frontend/src/App.vue`](https://github.com/kenneth0111/agent/blob/main/frontend/src/App.vue) (Workspace App), [`backend/src/main/resources/db/migration`](https://github.com/kenneth0111/agent/tree/main/backend/src/main/resources/db/migration) (MySQL), [`backend/src/main/java/com/example/creator/agent/ResearchWorkflow.java`](https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/agent/ResearchWorkflow.java) (Research Workflow)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workspace["Workspace UI"]
  node_webapp["Workspace App<br/>[App.vue]"]
  node_authui["Login &amp; Register<br/>[LoginPage.vue]"]
  node_accountui["Account Editor<br/>[AccountsPage.vue]"]
  node_materialsui["Materials Page<br/>[MaterialsPage.vue]"]
  node_chatui["Research Chat<br/>[ChatPage.vue]"]
  node_generationui["Generation Page<br/>[GenerationPage.vue]"]
  node_scheduleui["Schedule Page<br/>[SchedulePage.vue]"]
  node_http["HTTP Client<br/>[http.ts]"]
end

subgraph group_identity["Identity &amp; Accounts"]
  node_auth["Authentication"]
  node_account["Content Accounts"]
end

subgraph group_evidence["Research &amp; Materials"]
  node_material["Material Library"]
  node_materialsearch["Material Search"]
  node_research["Research Workflow"]
  node_contentworkflow["Account Summary"]
end

subgraph group_creation["Content Operations"]
  node_generation["Generation API"]
  node_generationgraph["Draft Workflow"]
  node_schedule["Schedule Operations"]
end

subgraph group_runtime["Runtime Services"]
  node_model["Model Gateway<br/>[ModelGateway.java]"]
  node_mcp["MCP Search Gateway"]
  node_mysql[("MySQL")]
  node_redis[("Redis Sessions<br/>[RedisConfig.java]")]
end

node_creator(("Creator"))
node_deepseek{{"DeepSeek API"}}
node_tavily{{"Tavily MCP"}}

node_creator -->|"uses"| node_webapp
node_webapp -->|"shows"| node_authui
node_webapp -->|"shows"| node_accountui
node_webapp -->|"shows"| node_materialsui
node_webapp -->|"shows"| node_chatui
node_webapp -->|"shows"| node_generationui
node_webapp -->|"shows"| node_scheduleui
node_authui -->|"sends requests"| node_http
node_accountui -->|"sends requests"| node_http
node_materialsui -->|"sends requests"| node_http
node_chatui -->|"sends requests"| node_http
node_generationui -->|"sends requests"| node_http
node_scheduleui -->|"sends requests"| node_http
node_http -->|"calls API"| node_auth
node_http -->|"calls API"| node_account
node_http -->|"calls API"| node_material
node_http -->|"calls API"| node_research
node_http -->|"calls API"| node_contentworkflow
node_http -->|"calls API"| node_generation
node_http -->|"calls API"| node_schedule
node_auth -->|"stores users"| node_mysql
node_auth -->|"stores sessions"| node_redis
node_account -->|"stores accounts"| node_mysql
node_material -->|"stores materials"| node_mysql
node_materialsearch -->|"retrieves materials"| node_mysql
node_research -->|"searches locally"| node_materialsearch
node_research -.->|"searches web"| node_mcp
node_research -->|"generates answer"| node_model
node_contentworkflow -->|"generates summary"| node_model
node_generation -->|"runs workflow"| node_generationgraph
node_generationgraph -->|"retrieves evidence"| node_materialsearch
node_generationgraph -->|"generates drafts"| node_model
node_generation -->|"stores runs and drafts"| node_mysql
node_schedule -->|"stores schedules"| node_mysql
node_model -->|"sends prompts"| node_deepseek
node_mcp -.->|"searches"| node_tavily

click node_webapp "https://github.com/kenneth0111/agent/blob/main/frontend/src/App.vue"
click node_authui "https://github.com/kenneth0111/agent/blob/main/frontend/src/pages/LoginPage.vue"
click node_accountui "https://github.com/kenneth0111/agent/blob/main/frontend/src/pages/AccountsPage.vue"
click node_materialsui "https://github.com/kenneth0111/agent/blob/main/frontend/src/pages/MaterialsPage.vue"
click node_chatui "https://github.com/kenneth0111/agent/blob/main/frontend/src/pages/ChatPage.vue"
click node_generationui "https://github.com/kenneth0111/agent/blob/main/frontend/src/pages/GenerationPage.vue"
click node_scheduleui "https://github.com/kenneth0111/agent/blob/main/frontend/src/pages/SchedulePage.vue"
click node_http "https://github.com/kenneth0111/agent/blob/main/frontend/src/api/http.ts"
click node_auth "https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/auth/AuthController.java"
click node_account "https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/account/AccountController.java"
click node_material "https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/material/MaterialController.java"
click node_materialsearch "https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/material/MaterialSearchService.java"
click node_research "https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/agent/ResearchWorkflow.java"
click node_contentworkflow "https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/agent/ContentWorkflow.java"
click node_generation "https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/content/GenerationController.java"
click node_generationgraph "https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/content/GenerationGraph.java"
click node_schedule "https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/content/ScheduleController.java"
click node_model "https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/agent/ModelGateway.java"
click node_mcp "https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/agent/McpSearchGateway.java"
click node_mysql "https://github.com/kenneth0111/agent/tree/main/backend/src/main/resources/db/migration"
click node_redis "https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/config/RedisConfig.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_webapp,node_authui,node_accountui,node_materialsui,node_chatui,node_generationui,node_scheduleui,node_http toneBlue
class node_auth,node_account toneAmber
class node_material,node_materialsearch,node_research,node_contentworkflow,node_deepseek toneMint
class node_generation,node_generationgraph,node_schedule toneRose
class node_model,node_mcp,node_mysql,node_redis,node_creator,node_tavily toneIndigo
```

## Components

### Workspace UI

- [Workspace App](https://github.com/kenneth0111/agent/blob/main/frontend/src/App.vue): `frontend/src/App.vue`
- [Login & Register](https://github.com/kenneth0111/agent/blob/main/frontend/src/pages/LoginPage.vue): `frontend/src/pages/LoginPage.vue`
- [Account Editor](https://github.com/kenneth0111/agent/blob/main/frontend/src/pages/AccountsPage.vue): `frontend/src/pages/AccountsPage.vue`
- [Materials Page](https://github.com/kenneth0111/agent/blob/main/frontend/src/pages/MaterialsPage.vue): `frontend/src/pages/MaterialsPage.vue`
- [Research Chat](https://github.com/kenneth0111/agent/blob/main/frontend/src/pages/ChatPage.vue): `frontend/src/pages/ChatPage.vue`
- [Generation Page](https://github.com/kenneth0111/agent/blob/main/frontend/src/pages/GenerationPage.vue): `frontend/src/pages/GenerationPage.vue`
- [Schedule Page](https://github.com/kenneth0111/agent/blob/main/frontend/src/pages/SchedulePage.vue): `frontend/src/pages/SchedulePage.vue`
- [HTTP Client](https://github.com/kenneth0111/agent/blob/main/frontend/src/api/http.ts): `frontend/src/api/http.ts`

### Identity & Accounts

- [Authentication](https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/auth/AuthController.java): `backend/src/main/java/com/example/creator/auth/AuthController.java`
- [Content Accounts](https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/account/AccountController.java): `backend/src/main/java/com/example/creator/account/AccountController.java`

### Research & Materials

- [Material Library](https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/material/MaterialController.java): `backend/src/main/java/com/example/creator/material/MaterialController.java`
- [Material Search](https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/material/MaterialSearchService.java): `backend/src/main/java/com/example/creator/material/MaterialSearchService.java`
- [Research Workflow](https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/agent/ResearchWorkflow.java): `backend/src/main/java/com/example/creator/agent/ResearchWorkflow.java`
- [Account Summary](https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/agent/ContentWorkflow.java): `backend/src/main/java/com/example/creator/agent/ContentWorkflow.java`

### Content Operations

- [Generation API](https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/content/GenerationController.java): `backend/src/main/java/com/example/creator/content/GenerationController.java`
- [Draft Workflow](https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/content/GenerationGraph.java): `backend/src/main/java/com/example/creator/content/GenerationGraph.java`
- [Schedule Operations](https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/content/ScheduleController.java): `backend/src/main/java/com/example/creator/content/ScheduleController.java`

### Runtime Services

- [Model Gateway](https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/agent/ModelGateway.java): `backend/src/main/java/com/example/creator/agent/ModelGateway.java`
- [MCP Search Gateway](https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/agent/McpSearchGateway.java): `backend/src/main/java/com/example/creator/agent/McpSearchGateway.java`
- [MySQL](https://github.com/kenneth0111/agent/tree/main/backend/src/main/resources/db/migration): `backend/src/main/resources/db/migration`
- [Redis Sessions](https://github.com/kenneth0111/agent/blob/main/backend/src/main/java/com/example/creator/config/RedisConfig.java): `backend/src/main/java/com/example/creator/config/RedisConfig.java`

### Other components

- **Creator**
- **DeepSeek API**
- **Tavily MCP**

## Connections

- Creator → Workspace App: uses
- Workspace App → Login & Register: shows
- Workspace App → Account Editor: shows
- Workspace App → Materials Page: shows
- Workspace App → Research Chat: shows
- Workspace App → Generation Page: shows
- Workspace App → Schedule Page: shows
- Login & Register → HTTP Client: sends requests
- Account Editor → HTTP Client: sends requests
- Materials Page → HTTP Client: sends requests
- Research Chat → HTTP Client: sends requests
- Generation Page → HTTP Client: sends requests
- Schedule Page → HTTP Client: sends requests
- HTTP Client → Authentication: calls API
- HTTP Client → Content Accounts: calls API
- HTTP Client → Material Library: calls API
- HTTP Client → Research Workflow: calls API
- HTTP Client → Account Summary: calls API
- HTTP Client → Generation API: calls API
- HTTP Client → Schedule Operations: calls API
- Authentication → MySQL: stores users
- Authentication → Redis Sessions: stores sessions
- Content Accounts → MySQL: stores accounts
- Material Library → MySQL: stores materials
- Material Search → MySQL: retrieves materials
- Research Workflow → Material Search: searches locally
- Research Workflow → MCP Search Gateway: searches web
- Research Workflow → Model Gateway: generates answer
- Account Summary → Model Gateway: generates summary
- Generation API → Draft Workflow: runs workflow
- Draft Workflow → Material Search: retrieves evidence
- Draft Workflow → Model Gateway: generates drafts
- Generation API → MySQL: stores runs and drafts
- Schedule Operations → MySQL: stores schedules
- Model Gateway → DeepSeek API: sends prompts
- MCP Search Gateway → Tavily MCP: searches
