Plan step

This commit is contained in:
2026-09-23 22:42:21 +03:00
parent 1f2dc25e0b
commit 762ac2f14b
15 changed files with 823 additions and 283 deletions
+16
View File
@@ -0,0 +1,16 @@
from typing import Literal
from pydantic import BaseModel, Field
from contracts.base import _StrictModel
class FileSelection(_StrictModel):
path: str = Field(...)
role: Literal["primary", "context", "test"] = Field(...)
reason: str = Field(...)
confidence: float = Field(ge=0.0, le=1.0)
class FileSelectionOutput(_StrictModel):
selections: list[FileSelection] = Field(...)
notes: list[str] = Field(...)
+13 -1
View File
@@ -4,6 +4,7 @@ from __future__ import annotations
import secrets
from dataclasses import dataclass
from datetime import datetime, timezone
from pathlib import Path
from typing import Any
from agents.coders.state import AgentState
@@ -15,9 +16,13 @@ from common.youtrack_mcp_client import YouTrackMCPClient
@dataclass(frozen=True)
class AgentConfig:
agent_dir: Path
# ── project-level ──────────────────────────────────────────
youtrack_project: str
gitea_repo: str
git_name: str
git_email: str
gitea_repo: str = ""
gitea_target_branch: str = "main"
# ── limits (snapshotted into state at run start) ───────────
@@ -39,6 +44,13 @@ class AgentConfig:
# ── language hints (for Plan) ──────────────────────────────
language_markers: dict[str, list[str]] = None # filled from project
def project_mem_dir(self):
p = self.agent_dir / "memory" / f"{self.youtrack_project}"
if not p.exists():
p.mkdir(parents=True, exist_ok=True)
return p
@dataclass
class RunContext: