diff --git a/pbl_evidence/init.py b/pbl_evidence/init.py index a3e680a..6e98525 100644 --- a/pbl_evidence/init.py +++ b/pbl_evidence/init.py @@ -3,11 +3,15 @@ """`load_pbl_evidence()` —— pbl_evidence 模块唯一挂载入口。 注册三处同步之 ③:``env.<契约名> = <契约名>`` -(① 定义在 api.py,② 导出在 __init__.py,③ 本文件挂 ServerEnv)。 -漏本文件注册 → .dspy 调用 NameError。 +(① 定义在 api.py/aggregation.py/crud_api.py,② 导出在 __init__.py,③ 本文件挂 ServerEnv)。 +漏本文件注册 → .dspy 调用 NameError(M5a 事故根因)。 宿主应用(apps/pbls)在 ``init()`` 中按拓扑序调用本函数;库名由宿主 ``get_module_dbname('pbl_evidence')`` 决定,本模块不硬编码。 + +复数别名(module-development-spec 硬门禁 5):CRUD 框架生成的 .dspy 包装器用 +复数表名(create_pbl_evidences / pbl_evidence_lists 等),而本模块函数按单数语义 +命名,故两个名字都挂,避免框架端点取不到函数。 """ from ahserver.serverenv import ServerEnv @@ -64,6 +68,18 @@ def load_pbl_evidence(): env.pbl_evidence_aggregate = pbl_evidence_aggregate env.pbl_evidence_query = pbl_evidence_query env.pbl_evidence_subject_summary = pbl_evidence_subject_summary + # ── 复数别名(硬门禁 5:CRUD 生成端点按复数表名取函数,单复数都要可达)── + env.pbl_artifact_lists = pbl_artifact_list + env.pbl_artifact_options_plural = pbl_artifact_options + env.pbl_evidence_lists = pbl_evidence_list + env.pbl_evidence_stats_plural = pbl_evidence_stats + env.pbl_evidence_watermark_plural = pbl_evidence_watermark + env.pbl_evidence_querys = pbl_evidence_query + env.pbl_evidence_aggregates = pbl_evidence_aggregate + env.pbl_evidence_updates = pbl_evidence_update + env.pbl_evidence_deletes = pbl_evidence_delete + env.pbl_evidence_collect_idempotents = pbl_evidence_collect_idempotent + env.pbl_evidence_subject_summarys = pbl_evidence_subject_summary # ── 底层能力(供 M5b 回放 / M6 评估直接复用)────────────────── env.pbl_collect_evidence_from_events = collect_evidence_from_events env.pbl_resolve_event_table = resolve_event_table