994d06aaea
- 新增 selector_candidate_demo,移除 provenance intent 后枚举候选 selector - 对候选分支执行有界重建与严格 STEP 比较 - 仅在候选遍历完整且唯一 strict 通过时生成 selector 映射记录 - 增加 selector 候选搜索、预算限制和记录生成的测试 - 保持生产 selector resolver 不受 Demo 逻辑影响 - 更新 CADFS 能力台账,记录 IMPRINT 派生 profile 的 lineage selector 缺口
46 lines
1.2 KiB
Python
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)
|