Files
likang 994d06aaea feat(selector): 增加离线候选遍历与严格回放验证 Demo
- 新增 selector_candidate_demo,移除 provenance intent 后枚举候选 selector
- 对候选分支执行有界重建与严格 STEP 比较
- 仅在候选遍历完整且唯一 strict 通过时生成 selector 映射记录
- 增加 selector 候选搜索、预算限制和记录生成的测试
- 保持生产 selector resolver 不受 Demo 逻辑影响
- 更新 CADFS 能力台账,记录 IMPRINT 派生 profile 的 lineage selector 缺口
2026-09-10 15:12:57 +08:00

46 lines
1.2 KiB
Python

from __future__ import annotations
from dataclasses import dataclass, field
from typing import Any
@dataclass
class Call:
name: str
args: list[Any] = field(default_factory=list)
line: int = 0
raw: str = ""
@dataclass
class FeatureIR:
feature_id: str
operation: str
params: dict[str, Any]
queries: list[Any] = field(default_factory=list)
line_start: int = 0
line_end: int = 0
raw_source: str = ""
@dataclass
class SketchIR:
feature_id: str
workplane: Any
entities: list[FeatureIR] = field(default_factory=list)
@dataclass
class ModelIR:
sample_id: str
features: list[FeatureIR] = field(default_factory=list)
sketches: list[SketchIR] = field(default_factory=list)
steps: list[Any] = field(default_factory=list)
raw_source: str = ""
# Source metadata is retained independently from the lowered CDSL so a
# selector can be audited against the FeatureScript API contract it used.
featurescript_version: str | None = None
standard_library: str | None = None
standard_library_version: str | None = None
standard_library_imports: list[dict[str, str]] = field(default_factory=list)