muse-agent-example/pyproject.toml
zizi b9af240b68 R2 收尾:W30 唯一写入观察与最终验收(C08 章后接通 / 构建身份重建 / 最终备份与恢复演练)
- 章后处理:事实提案命令身份加入类型、批内去重改为先校验后去重(REPEAT_OBJECT_TYPE 记跳过、不再静默丢重复);查询章后状态回传事实跳过;可按需发布/核对可登记任务与 config_not_declared 语义收紧
- 模型治理:推理字符数计量(ChatCompletions/Messages/执行合同)、探针在声明关闭推理却仍有推理时拒绝、计价支持缓存协议与未知模型兜底
- 运行态:资源包重建(发布身份 21d850f7…),三处配置同步,post-extract v5 代次 5 启用,服务 PID 96675(health/ready 通过)
- 门禁:make 检查通过;离线 1008 passed;定点数据库 101 passed;最终完整备份 bkp-1f5591d8… 与空库恢复演练 verified(152 表/158 关系/迁移 45,演练库已 DROP)
- 文档与证据:运行手册、功能覆盖、工作包清单 W30 证据、测试用例清单(17 条 execution_evidence 回填 + 历史死指针说明)、目标文件清单
- 旧实现与旧库直连材料退出(含明文凭据文件移除);新配置 配置/本机正式.toml、配置/本机维护.toml、配置/计费/、配置/运行配置/ 入库,均只含受控引用
- R2 执行证据在 .agents.local/改造/R2-20260909/(不入库)
2026-09-16 08:23:39 +08:00

82 lines
2.8 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# muse 应用包:安装、命令、依赖与检查配置。
# 边界:只约束安装、构建或编辑配置;不规范化作者正文、不替代业务权限与验收。
# 运行时依赖随所属工作包逐步加入(W03 数据库、W06 模型传输、W07 HTTP 等),
[build-system]
requires = ["hatchling==1.32.0"]
build-backend = "hatchling.build"
[project]
name = "muse"
version = "0.1.0"
description = "Muse:AI 驱动的长篇创作工具(单作者模块化单体)"
requires-python = ">=3.12"
dependencies = [
"fastapi>=0.115",
"httpx>=0.28",
"itsdangerous>=2.2",
"jsonschema>=4.23",
"referencing>=0.28.4",
"psycopg[binary]>=3.2",
"pydantic>=2.0",
"pyyaml>=6.0",
"uvicorn>=0.30",
]
[project.scripts]
muse = "muse.__main__:main"
[dependency-groups]
dev = [
"pytest>=8.3",
"pytest-timeout>=2.3",
"ruff>=0.8",
"pyright>=1.1.390",
]
# 资源发布包(运行资源.zip、清单.json、工作台/)是 gitignore 的生成物:
# 存在时打入 sdist/wheel(artifacts 同时作用于两目标),未生成时不阻塞全新环境安装。
[tool.hatch.build]
# 迁移仅由数据库/迁移强制映射进入轮子,排除可编辑安装的同名投影。
exclude = ["src/muse/资源/迁移/**"]
artifacts = ["src/muse/资源/**", "!src/muse/资源/迁移/**"]
[tool.hatch.build.targets.sdist]
include = ["/src", "/数据库/迁移", "/数据库/初始化", "/pyproject.toml", "/uv.lock", "/README.md"]
[tool.hatch.build.targets.wheel.force-include]
"数据库/迁移" = "muse/资源/迁移"
[tool.hatch.build.targets.wheel]
packages = ["src/muse"]
[tool.pytest.ini_options]
# 只收集新版用例目录;旧实现与旧测试树已退出本仓,不参与同一收集。
testpaths = ["tests/单元", "tests/契约", "tests/集成", "tests/架构", "tests/迁移", "tests/端到端", "tests/真实调用"]
# 独立维护脚本以其目录为导入根;不把旧 muse 树加入路径。
pythonpath = ["数据库/旧库迁移"]
# 架构/契约/集成/单元 是目录级组织;完整用例身份绑定登记文件与符号。
addopts = "--strict-markers --timeout=120"
markers = [
"数据库: 显式外部执行需要 MUSE_TEST_DATABASE_URL;缺配置失败",
"网络: 需要真实网络访问;必须显式标记",
"真实模型: 需要真实模型调用与预算授权;必须显式标记",
"浏览器: 需要真实浏览器与后端;必须显式标记",
]
[tool.ruff]
line-length = 100
target-version = "py312"
src = ["src", "tests", "工具", "数据库/旧库迁移"]
[tool.ruff.lint]
select = ["E", "F", "W", "I", "B", "UP"]
[tool.pyright]
venvPath = "."
venv = ".venv"
include = ["src", "工具", "数据库/旧库迁移"]
extraPaths = ["数据库/旧库迁移"]
pythonVersion = "3.12"
typeCheckingMode = "standard"