Skip to content

972729491/Scout

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scout

Scout 是 Linker 内部通用 AI 聊天工具,目标是提供类似 Codex / Claude App 的实时 Agent 对话体验。

当前状态

当前后端先保留 OAuth2 provider 查询能力,用于前端获取可登录的 OAuth2 渠道配置。

当前已完成:

  • 后端从旧 NestJS 骨架迁移到 Python FastAPI。
  • Open API 路由统一放在 /api/v1/open 下。
  • OAuth2 API 按 controller / dependencies / dto 拆分。
  • PostgreSQL 查询使用 SQLModel。
  • OAuth2 provider 数据库表为 oauth2_providers
  • 接口响应统一为 code / data / msg

项目结构

Scout
├─ scout-backend  # Python FastAPI backend
├─ scout-web      # Web frontend
├─ package.json   # 根目录项目元信息,不维护前后端启动脚本
└─ README.md

前端和后端各自维护自己的启动方式,根目录不维护统一启动脚本。

后端结构

scout-backend
├─ app.py                 # FastAPI app 与路由聚合
├─ main.py                # 服务启动入口
├─ pyproject.toml
└─ app
   ├─ api
   │  └─ open
   │     ├─ __init__.py
   │     └─ oauth2
   │        ├─ __init__.py
   │        ├─ oauth2.py        # controller
   │        ├─ dependencies.py  # dependency wiring
   │        └─ dto.py           # response DTO
   ├─ application
   │  └─ oauth2
   │     ├─ dto.py
   │     └─ oauth2_provider_query_service.py
   ├─ domain
   │  └─ oauth2
   │     ├─ entities.py
   │     ├─ models.py
   │     └─ repositories.py
   ├─ infrastructure
   │  ├─ pg.py
   │  └─ oauth2
   │     ├─ clients.py
   │     ├─ models.py
   │     └─ repos.py
   └─ core
      └─ base
         └─ resp_models.py

API

当前只保留:

GET /api/v1/open/oauth2/providers

响应格式:

{
  "code": 200,
  "data": [
    {
      "providerType": "item",
      "providerName": "Item"
    }
  ],
  "msg": ""
}

说明:

  • data 直接返回 provider 列表,不再包一层 providers
  • oauth2_providers 表默认只查询 enabled = true 的记录。
  • protocol 不返回,也不在表中保留;该表内记录默认都是 OAuth2 provider。

数据库

Scout 当前 PostgreSQL 数据库:

scout

OAuth2 provider 表:

public.oauth2_providers

当前字段:

id
provider_type
provider_name
enabled
authorization_uri
token_uri
refresh_token_uri
client_id
client_secret
scope
redirect_uri
extra_authorization_params_json
created_at
updated_at

环境变量

后端从启动目录直接读取 .env

PORT=8080
AGENTS_API_KEY=laf_xxx
ITEM_BASE_URL=https://id-staging.item.com

AGENTS_API_KEY 只允许放在后端环境变量中,不能暴露给前端。

开发命令

后端

安装 Python 依赖:

cd scout-backend
python -m venv .venv
source .venv/Scripts/activate
pip install -e ".[dev]"

启动后端:

cd scout-backend
source .venv/Scripts/activate
python main.py

基础检查:

cd scout-backend
source .venv/Scripts/activate
python -m compileall app.py main.py app
python -m ruff check app.py main.py app

前端

前端在 scout-web 下维护自己的启动与构建命令。

备注

本次重构删除了旧 NestJS 后端文件、旧 pnpm workspace 文件,以及暂未使用的 OAuth2 登录/session/WebSocket app 路由代码。后续需要时再按当前分层重新实现。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors