generated from coulomb/repo-seed
Introduces end-to-end token consumption tracking so agent work is visible as a cost/effort metric alongside tasks and workplans. - Migration o2j3k4l5m6n7: token_events table with FK indexes on task_id, workstream_id, repo_id, created_at - ORM model, Pydantic schemas (TokenEventCreate, TokenEventRead with computed tokens_total, TokenSummary) - Router: POST /token-events/, GET /token-events/ (7 filters), GET /token-events/summary/ (task|workstream|repo|commit|release scope) - MCP tools: record_token_event, get_token_summary (formatted table) - update_task_status enriched with optional tokens_in/tokens_out passthrough — one call creates status update + token event - Dashboard token-cost.md page: by-repo bar, by-workplan table, by-model bar, top-10 tasks by tokens - ralph-workplan skill updated with token reporting guidance and per-task heuristics for estimating counts - Tests: test_token_events.py + test_token_passthrough.py (182 pass) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
48 lines
1.9 KiB
Python
48 lines
1.9 KiB
Python
from api.models.base import Base
|
|
from api.models.domain import Domain
|
|
from api.models.domain_goal import DomainGoal, DomainGoalStatus
|
|
from api.models.topic import Topic, TopicStatus
|
|
from api.models.managed_repo import ManagedRepo
|
|
from api.models.repo_goal import RepoGoal, RepoGoalStatus
|
|
from api.models.workstream import Workstream, WorkstreamStatus
|
|
from api.models.workstream_dependency import WorkstreamDependency
|
|
from api.models.task import Task, TaskStatus, TaskPriority
|
|
from api.models.decision import Decision, DecisionType, DecisionStatus
|
|
from api.models.progress_event import ProgressEvent
|
|
from api.models.extension_point import ExtensionPoint, EPStatus
|
|
from api.models.technical_debt import TechnicalDebt, TDStatus
|
|
from api.models.contribution import Contribution, ContributionType, ContributionStatus
|
|
from api.models.sbom_snapshot import SBOMSnapshot
|
|
from api.models.sbom_entry import SBOMEntry, Ecosystem
|
|
from api.models.agent_message import AgentMessage
|
|
from api.models.capability_catalog import CapabilityCatalog
|
|
from api.models.capability_request import CapabilityRequest
|
|
from api.models.tpsc import TPSCCatalog, TPSCSnapshot, TPSCEntry
|
|
from api.models.doi_cache import DOICache
|
|
from api.models.token_event import TokenEvent
|
|
|
|
__all__ = [
|
|
"Base",
|
|
"Domain",
|
|
"DomainGoal", "DomainGoalStatus",
|
|
"Topic", "TopicStatus",
|
|
"ManagedRepo",
|
|
"RepoGoal", "RepoGoalStatus",
|
|
"Workstream", "WorkstreamStatus",
|
|
"WorkstreamDependency",
|
|
"Task", "TaskStatus", "TaskPriority",
|
|
"Decision", "DecisionType", "DecisionStatus",
|
|
"ProgressEvent",
|
|
"ExtensionPoint", "EPStatus",
|
|
"TechnicalDebt", "TDStatus",
|
|
"Contribution", "ContributionType", "ContributionStatus",
|
|
"SBOMSnapshot",
|
|
"SBOMEntry", "Ecosystem",
|
|
"AgentMessage",
|
|
"CapabilityCatalog",
|
|
"CapabilityRequest",
|
|
"TPSCCatalog", "TPSCSnapshot", "TPSCEntry",
|
|
"DOICache",
|
|
"TokenEvent",
|
|
]
|