Files
quercus/pyproject.toml
T
Mike-Solar 1b66a70859 P2: tool adapter layer, mock host, frame pipeline, and local web UI
- MockHostAdapter (tests/mock_host): in-memory editing model with opaque
  entity ids, id invalidation, token-bucket rate limiting, snapshot/restore
  with cap, event subscription, and a stdlib-zlib PNG encoder producing
  time-varying non-black frames
- HostToolExecutor: all 26 tool handlers mapped to HostAdapter calls,
  snapshot orchestration for mutating batches, concurrent scan_timeline
  frame pipeline with token bucket and RateLimited backoff, undo_session()
  restoring per-batch snapshots in reverse, get_params min/max/choices
  reflection
- Web UI (core[webui] extra): FastAPI + single-page vanilla JS, chat log,
  pending-confirmation list with approve/reject endpoints (timeout defaults
  to reject), progress, undo-session, snapshot management; SSE push + POST,
  bound to 127.0.0.1
- Host error types (HostError/EntityNotFound/RateLimited) and shared
  TokenBucket
- P2 acceptance chain: import -> place -> split -> ripple delete ->
  effect + param -> frame verification (non-black, pixel changes at cut
  and after effect) -> undo_session restores original state

Tests: 129 passed via uv run pytest (no network)
2026-08-25 02:40:43 +08:00

33 lines
580 B
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.
[project]
name = "quercus"
version = "0.1.0"
description = "Quercus AI 剪辑助手 — monorepo(workspace 根,虚拟包)"
requires-python = ">=3.11"
dependencies = [
"quercus-core",
]
[dependency-groups]
dev = [
"pytest>=8.0",
"quercus-core[webui]",
]
[tool.uv]
# 根目录不是可安装包,仅作 workspace 锚点
package = false
[[tool.uv.index]]
url = "https://pypi.org/simple"
default = true
[tool.uv.sources]
quercus-core = { workspace = true }
[tool.uv.workspace]
members = ["core"]
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "-q"