@furongjun1999/dsh-memory 0.4.11 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (580) hide show
  1. package/README.md +552 -465
  2. package/codebuddy/CODEBUDDY.md +11 -3
  3. package/codebuddy/README.md +92 -90
  4. package/codebuddy/mcp.json +27 -27
  5. package/docs/GBrain/345/217/257/345/200/237/351/211/264/347/202/271_/347/201/265/346/236/242/350/220/275/347/202/271/344/272/244/346/216/245_20260919.md +169 -169
  6. package/docs/Pi/345/217/257/345/255/246/344/271/240/344/274/230/347/202/271_/347/201/265/346/236/242/345/244/247/350/204/221/346/224/271/350/277/233/344/272/244/346/216/245_20260915.md +144 -144
  7. package/docs/README.md +143 -111
  8. package/docs/discipline/harnesses.yaml +244 -226
  9. package/docs/discipline/templates/full.md.tmpl +61 -61
  10. package/docs/discipline/templates/rules.mdc.tmpl +68 -0
  11. package/docs/discipline/templates/skill.md.tmpl +23 -23
  12. package/docs/eval/AGI/344/270/203/347/273/264/350/257/204/345/210/206/346/212/245/345/221/212_md_cg_v1.0.md +299 -299
  13. package/docs/eval/AGI/344/270/203/347/273/264/350/257/204/345/210/206/346/212/245/345/221/212_md_cg_v2.0.md +239 -239
  14. package/docs/eval/bench_lingshu_self/bench_self.py +140 -0
  15. package/docs/eval/bench_lingshu_self/self_bench_result.json +404 -0
  16. package/docs/eval/bench_lingshu_self//347/201/265/346/236/242/350/207/252/345/272/223/347/253/257/345/210/260/347/253/257/346/243/200/347/264/242/345/256/236/346/265/213_v1.0.md +38 -0
  17. package/docs/eval//344/270/215/345/217/257/351/235/240/346/200/247/350/220/275/345/234/260_P0_v1.0.md +185 -0
  18. package/docs/eval//345/256/236/351/252/214/346/226/271/346/241/210_/345/255/246/344/271/240/351/227/255/347/216/257AB/344/270/216/346/250/252/350/257/204_v1.0.md +174 -174
  19. package/docs/eval//346/225/205/351/232/234/346/263/250/345/205/245/345/256/236/346/265/213_v1.0.md +422 -0
  20. package/docs/eval//346/250/252/350/257/204_/345/205/255/345/256/266100/351/242/230/344/270/255/350/213/261/345/217/214/346/237/245_v1.0.md +223 -223
  21. package/docs/eval//347/253/257/345/210/260/347/253/257LoCoMoQA/345/220/214/345/217/243/345/276/204/345/257/271/347/205/247_v1.0.md +100 -0
  22. package/docs/eval//347/253/257/345/210/260/347/253/257/345/271/262/346/211/260/346/261/240/350/257/204/346/265/213_/347/241/256/345/256/232/346/200/247/350/243/201/345/206/263vsLLM_judge_v1.1.md +197 -0
  23. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v1.md +156 -0
  24. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v10.md +210 -0
  25. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v11.md +227 -0
  26. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v12.md +203 -0
  27. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v13.md +233 -0
  28. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v14.md +191 -0
  29. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v15.md +213 -0
  30. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v16.md +214 -0
  31. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v17.md +199 -0
  32. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v2.md +156 -0
  33. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v3.md +152 -0
  34. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v4.md +128 -0
  35. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v5.md +114 -0
  36. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v6.md +192 -0
  37. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v7.md +187 -0
  38. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v8.md +207 -0
  39. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v9.md +203 -0
  40. package/docs/{mdcg → hive}//344/273/244/347/211/214/344/270/216/350/247/222/350/211/262/346/235/203/350/201/214/345/210/206/347/246/273_v0.1.md +165 -160
  41. package/docs/hive//344/273/244/347/211/214/350/257/255/344/271/211/344/277/256/346/255/243_/344/273/262/350/243/201/344/275/215_v0.1.md +76 -0
  42. package/docs/{mdcg → hive}//345/255/220/344/273/243/347/220/206/351/205/215/347/275/256/346/240/207/345/207/206_v0.5.md +236 -236
  43. package/docs/hive//345/256/211/345/205/250/345/256/241/350/256/241/345/256/236/351/224/232_v0.1.md +202 -0
  44. package/docs/hive//346/243/200/347/264/242/346/224/266/346/225/233/345/256/236/346/265/213/344/270/216S1b/350/256/276/350/256/241_v0.1.md +43 -43
  45. package/docs/hive//346/243/200/347/264/242/347/256/227/346/263/225/345/217/243/345/276/204/345/257/271/347/205/247_v0.1.md +85 -0
  46. package/docs/hive//346/243/200/347/264/242/350/267/257/345/276/204/344/270/216/350/256/244/347/237/245/347/273/223/346/236/204/345/245/221/347/272/246_v0.1.md +102 -102
  47. package/docs/hive//350/234/202/345/267/242M6_ingest/345/256/236/346/226/275/350/256/241/345/210/222_v0.1.md +47 -0
  48. package/docs/hive//350/234/202/345/267/242/345/217/214/345/256/236/344/276/213/344/272/222/351/252/214_/350/256/276/350/256/241/345/256/232/347/250/277.md +519 -503
  49. package/docs/hive//350/234/202/345/267/242/345/267/245/344/275/234/350/256/260/345/277/206_/351/241/271/347/233/256/350/256/241/345/210/222.md +85 -85
  50. package/docs/hive//350/234/202/345/267/242/350/256/276/350/256/241_/347/220/206/350/256/272/345/257/271/351/275/220_v0.1.md +191 -0
  51. package/docs/hive//350/234/202/345/267/242/350/277/255/344/273/243_/345/256/217/350/247/202/344/270/216/347/276/244/344/275/223/350/260/203/345/272/246_v0.1.md +90 -0
  52. package/docs/images/lingshu-moonlight-covenant-poster-preview.jpg +0 -0
  53. package/docs/images/lingshu-moonlight-covenant-poster.png +0 -0
  54. package/docs/mdcg/D_meta_/345/267/245/347/250/213/345/214/226/346/226/271/346/241/210_v0.2.md +216 -216
  55. package/docs/mdcg/README/350/257/246/347/273/206/347/211/210_v0.4.10.md +646 -646
  56. package/docs/mdcg/lingshu_tutorial.html +14449 -14449
  57. package/docs/mdcg/release_v0.4.11.md +49 -0
  58. package/docs/mdcg/release_v0.4.5.md +55 -55
  59. package/docs/mdcg/tool_table_v0.3.0.md +117 -117
  60. package/docs/mdcg//345/205/250/345/272/223/344/273/243/347/240/201/350/257/204/345/256/241/344/270/216/346/235/241/344/273/266/345/214/226/346/263/250/351/207/212_/350/256/241/345/210/222_v0.1.md +600 -600
  61. package/docs/mdcg//345/212/237/350/203/275/350/260/203/347/224/250/346/230/240/345/260/204/350/241/250_v0.1.md +40 -40
  62. package/docs/mdcg//345/215/225/345/205/203/350/207/252/346/210/221/351/224/232/347/202/271_/347/263/273/347/273/237/346/217/220/347/244/272/350/257/215/346/240/207/345/207/206_v0.3.md +275 -275
  63. package/docs/mdcg//345/217/221/345/270/203/351/227/250/347/246/201/351/223/276_v0.1.md +54 -0
  64. package/docs/mdcg//346/272/220/347/240/201/347/272/247/346/236/266/346/236/204/345/256/241/350/256/241_GPT/346/211/271/350/257/204/345/257/271/347/205/247_v1.0.md +130 -130
  65. package/docs/mdcg//347/201/265/346/236/24282/345/267/245/345/205/267_/345/212/237/350/203/275/346/225/264/347/220/206/344/270/216/350/277/201/347/247/273/346/230/240/345/260/204_v0.1.md +278 -278
  66. package/docs/mdcg//347/201/265/346/236/242/350/256/260/345/277/206/345/212/250/350/257/215/345/215/217/350/256/256_v1.0-draft.md +172 -172
  67. package/docs/mdcg//347/274/272/345/217/243/345/215/225_P0/346/224/266/345/217/243_v0.1.md +270 -270
  68. package/docs/mdcg//350/256/244/347/237/245/345/233/276_G4-G8/347/274/272/345/217/243/350/243/201/345/256/232/345/215/225_v0.1.md +491 -491
  69. package/docs/mdcg//350/256/244/347/237/245/345/233/276_/346/235/241/344/273/266/347/251/272/351/227/264/345/220/210/346/210/220/344/270/216/347/224/237/346/225/210/346/235/241/344/273/266/345/217/243/345/276/204_v0.1.md +340 -340
  70. package/docs/mdcg//350/256/244/347/237/245/345/233/276_/347/264/242/345/274/225/344/270/216/345/267/245/347/250/213/350/247/204/350/214/203/345/214/226_/350/256/241/345/210/222_v0.1.md +588 -588
  71. package/docs/plans/GridWorld/346/234/200/345/260/217/351/227/255/347/216/257/350/247/204/346/240/274_v0.1.md +176 -176
  72. package/docs/plans//345/221/275/345/220/215/346/262/273/347/220/206_/351/241/271/347/233/256/350/256/241/345/210/222.md +81 -81
  73. package/docs/swarm//350/234/202/347/276/244/344/272/222/350/201/224_v0.1.md +704 -704
  74. package/docs/swarm//350/234/202/347/276/244/345/220/214/351/224/231/346/243/200/346/265/213/345/256/236/351/252/214/345/215/217/350/256/256_v0.1.md +242 -242
  75. package/docs/theory//344/270/215/345/217/257/351/235/240/345/256/232/347/220/206/344/270/216/345/244/261/346/225/210/344/274/230/345/205/210/346/241/206/346/236/266_v0.3.md +365 -0
  76. package/docs/theory//345/215/225/347/272/277/347/250/213/344/270/216/346/263/250/346/204/217/345/212/233/351/233/206/344/270/255_/346/227/240/344/272/211/350/256/256/347/220/206/350/256/272/346/226/207/346/241/243_v1.0.md +129 -129
  77. package/docs/theory//345/271/266/345/217/221/345/277/205/347/204/266/346/200/247/347/220/206/350/256/272_v0.2.md +134 -134
  78. package/docs/theory//346/231/272/350/203/275/350/256/2723.4.md +5260 -5260
  79. package/docs/theory//346/246/202/345/277/265/345/210/206/345/261/202/345/257/271/351/275/220/350/241/250_v0.1.md +145 -145
  80. package/docs/theory//347/220/206/350/256/272_/346/234/272/345/210/266_/344/273/243/347/240/201_/345/256/236/351/252/214_/347/274/272/345/217/243/347/237/251/351/230/265_v0.1.md +144 -144
  81. package/docs/theory//347/220/206/350/256/272/344/273/223/346/213/206/345/210/206/344/270/216/347/231/275/347/256/261/347/237/245/350/257/206/345/272/223/345/206/205/350/277/201_v0.1.md +198 -198
  82. package/docs/theory//350/256/244/347/237/245/344/273/243/347/220/206/344/270/216/346/224/266/346/225/233/347/273/223/346/236/204_/346/235/241/344/273/266/350/256/272/351/207/215/346/236/204_v0.1.md +221 -221
  83. package/docs/world_model//344/270/226/347/225/214/346/250/241/345/236/213_/347/245/236/347/273/217/347/275/221/347/273/234/345/272/225/345/261/202/346/236/266/346/236/204_v1.0.md +237 -237
  84. package/docs//344/270/215/345/217/257/351/235/240/346/200/247/347/220/206/350/256/272_v0.1.md +343 -0
  85. package/docs//345/217/221/345/270/203/344/273/266/345/233/236/346/272/257/350/257/264/346/230/216_v0.1.md +82 -82
  86. package/docs//345/267/245/344/275/234/347/272/252/345/276/213_/350/256/244/347/237/245/345/233/276/346/235/241/347/233/256_v1.1.json +28 -2
  87. package/dsh/README.md +82 -82
  88. package/dsh/cordis.yml.example +139 -139
  89. package/dsh/update-lingshu.bat +11 -11
  90. package/lib/bridge.d.ts +9 -0
  91. package/lib/bridge.js +35 -0
  92. package/lib/hooks.js +36 -2
  93. package/lib/index.js +7 -1
  94. package/lib/lib/roleplay_web.js +116 -29
  95. package/lib/lib/token_store.d.ts +7 -1
  96. package/lib/lib/token_store.js +12 -3
  97. package/md_cg/__init__.py +7 -7
  98. package/md_cg/audit.py +379 -368
  99. package/md_cg/autonomy.py +287 -287
  100. package/md_cg/backfill.py +1328 -1327
  101. package/md_cg/backfill_bigdomain.py +34 -34
  102. package/md_cg/backfill_bucket_zh.py +35 -0
  103. package/md_cg/bench6_arms.py +410 -410
  104. package/md_cg/bench6_common.py +230 -230
  105. package/md_cg/bench6_competitors.py +212 -212
  106. package/md_cg/bench_axis_domain.py +257 -257
  107. package/md_cg/bench_blind_comp.py +308 -308
  108. package/md_cg/bench_e2e_judge.py +532 -0
  109. package/md_cg/bench_e2e_locomo_qa.py +368 -0
  110. package/md_cg/bench_e2e_qa.py +256 -0
  111. package/md_cg/bench_en_atoms_public.py +230 -230
  112. package/md_cg/bench_governance.py +348 -348
  113. package/md_cg/bench_lme_zh.py +410 -410
  114. package/md_cg/bench_locomo.py +121 -121
  115. package/md_cg/bench_locomo_zh.py +450 -450
  116. package/md_cg/bench_locomo_zh_public.py +147 -147
  117. package/md_cg/bench_longmem.py +112 -112
  118. package/md_cg/bench_membench.py +632 -632
  119. package/md_cg/bench_p0.py +149 -149
  120. package/md_cg/bench_progressive.py +287 -287
  121. package/md_cg/bench_role_views.py +238 -238
  122. package/md_cg/bench_task_ab.py +243 -243
  123. package/md_cg/bench_task_ab_llm.py +408 -408
  124. package/md_cg/bench_unified_en.py +204 -204
  125. package/md_cg/bench_zh_mad.py +601 -601
  126. package/md_cg/blindspot_tickets.py +123 -123
  127. package/md_cg/branches.py +301 -285
  128. package/md_cg/build_postings.py +73 -73
  129. package/md_cg/ccgc.py +1006 -948
  130. package/md_cg/census.py +132 -132
  131. package/md_cg/chain.py +315 -300
  132. package/md_cg/codeindex.py +531 -531
  133. package/md_cg/coldverify.py +292 -292
  134. package/md_cg/comment_gate.py +337 -337
  135. package/md_cg/cond_compose.py +190 -190
  136. package/md_cg/cond_facts.py +154 -154
  137. package/md_cg/cond_template.json +106 -106
  138. package/md_cg/condition_anchor.py +142 -142
  139. package/md_cg/conformance.py +726 -726
  140. package/md_cg/consistency.py +717 -717
  141. package/md_cg/consolidate.py +1537 -1439
  142. package/md_cg/corpus.py +110 -110
  143. package/md_cg/crosscheck.py +1098 -1097
  144. package/md_cg/crypto.py +3 -1
  145. package/md_cg/d_meta.py +310 -310
  146. package/md_cg/datapath.py +78 -18
  147. package/md_cg/docindex.py +473 -473
  148. package/md_cg/eval_common.py +575 -575
  149. package/md_cg/evidence.py +4 -2
  150. package/md_cg/evolution.py +477 -477
  151. package/md_cg/export.py +222 -220
  152. package/md_cg/forgetting.py +581 -581
  153. package/md_cg/fsutil.py +377 -329
  154. package/md_cg/hotcache.py +48 -7
  155. package/md_cg/hyperedge.py +251 -251
  156. package/md_cg/identity.py +390 -390
  157. package/md_cg/insight.py +500 -500
  158. package/md_cg/interop.py +338 -0
  159. package/md_cg/judgment_manifest.py +177 -0
  160. package/md_cg/lexicon/build_cedict_en_zh.py +329 -329
  161. package/md_cg/lexicon/build_standard_en.py +171 -171
  162. package/md_cg/lexicon/expand_en_zh.py +211 -211
  163. package/md_cg/lifecycle.py +272 -272
  164. package/md_cg/linkref.py +280 -280
  165. package/md_cg/links.py +140 -107
  166. package/md_cg/mcp_server.py +403 -55
  167. package/md_cg/md_whitebox.py +345 -345
  168. package/md_cg/mdcg.py +783 -233
  169. package/md_cg/mdcos.py +500 -70
  170. package/md_cg/metacognition.py +591 -591
  171. package/md_cg/migrate.py +119 -119
  172. package/md_cg/migrate_aeis.py +221 -221
  173. package/md_cg/migrate_roleplay.py +293 -293
  174. package/md_cg/migrate_wisdom_graph.py +360 -360
  175. package/md_cg/mreview/__init__.py +25 -25
  176. package/md_cg/mreview/__main__.py +110 -110
  177. package/md_cg/mreview/bundle.py +178 -178
  178. package/md_cg/mreview/candidates.py +262 -262
  179. package/md_cg/mreview/govern.py +694 -693
  180. package/md_cg/mreview/locate.py +939 -939
  181. package/md_cg/mreview/pipeline.py +728 -728
  182. package/md_cg/mreview/rules/duplication.json +21 -21
  183. package/md_cg/mreview/rules/field_coverage.json +54 -54
  184. package/md_cg/mreview/rules/source_license.json +21 -21
  185. package/md_cg/mreview/rules/template_flow.json +21 -21
  186. package/md_cg/mreview/ruleset.py +252 -252
  187. package/md_cg/nodefile.py +575 -575
  188. package/md_cg/pooling.py +484 -472
  189. package/md_cg/postings.py +300 -298
  190. package/md_cg/predict.py +1100 -1100
  191. package/md_cg/progressive.py +123 -123
  192. package/md_cg/protect.py +272 -272
  193. package/md_cg/protocol/md_cg_gate.proto +33 -33
  194. package/md_cg/protocol.py +372 -372
  195. package/md_cg/provenance.py +582 -582
  196. package/md_cg/reach.py +453 -453
  197. package/md_cg/readcache.py +143 -0
  198. package/md_cg/reconcile.py +228 -0
  199. package/md_cg/refindex.py +833 -833
  200. package/md_cg/refine.py +604 -604
  201. package/md_cg/review_cli.py +170 -0
  202. package/md_cg/roleviews.py +89 -89
  203. package/md_cg/routing.py +393 -365
  204. package/md_cg/run_tests.py +211 -0
  205. package/md_cg/scrub.py +13 -3
  206. package/md_cg/security.py +128 -18
  207. package/md_cg/self_state.py +1029 -1029
  208. package/md_cg/selfreport.py +152 -151
  209. package/md_cg/semantic/__init__.py +10 -10
  210. package/md_cg/semantic/canonical.py +122 -122
  211. package/md_cg/semantic/en_normalizer.py +364 -364
  212. package/md_cg/semantic/en_zh_map.json +28694 -0
  213. package/md_cg/semantic/export_en_zh_map.py +64 -0
  214. package/md_cg/semantic/unify.py +45 -0
  215. package/md_cg/semantic/zh_en_atoms.py +139 -139
  216. package/md_cg/signer.py +7 -4
  217. package/md_cg/sources.py +816 -582
  218. package/md_cg/statushdr.py +179 -179
  219. package/md_cg/stg.py +54 -37
  220. package/md_cg/subgraph.py +729 -729
  221. package/md_cg/sustain.py +35 -5
  222. package/md_cg/tasks.py +470 -470
  223. package/md_cg/test_access_hints.py +147 -0
  224. package/md_cg/test_action_derive.py +203 -203
  225. package/md_cg/test_audit_rotate.py +270 -270
  226. package/md_cg/test_autonomy.py +143 -143
  227. package/md_cg/test_bench_governance.py +102 -102
  228. package/md_cg/test_blindspot_tickets.py +166 -166
  229. package/md_cg/test_branch_discard_tombstone.py +136 -0
  230. package/md_cg/test_branches.py +13 -3
  231. package/md_cg/test_ccg_perturb.py +184 -184
  232. package/md_cg/test_ccgc.py +433 -433
  233. package/md_cg/test_census_prune.py +81 -81
  234. package/md_cg/test_chain_read_isolate.py +168 -0
  235. package/md_cg/test_cond_compose_anchors.py +76 -76
  236. package/md_cg/test_cond_match.py +165 -165
  237. package/md_cg/test_condition_anchor.py +81 -81
  238. package/md_cg/test_d_meta.py +412 -412
  239. package/md_cg/test_datapath_device_name.py +203 -0
  240. package/md_cg/test_datapath_root.py +199 -199
  241. package/md_cg/test_emit_negtail_cache.py +156 -0
  242. package/md_cg/test_en_pipeline.py +22 -2
  243. package/md_cg/test_gain_gate.py +212 -212
  244. package/md_cg/test_govern_directread.py +421 -0
  245. package/md_cg/test_health_scale.py +173 -173
  246. package/md_cg/test_hive_ingest.py +285 -0
  247. package/md_cg/test_hot_cold.py +215 -215
  248. package/md_cg/test_hyperedge.py +245 -245
  249. package/md_cg/test_i26_empty_first_write.py +116 -0
  250. package/md_cg/test_i27_e041_identity.py +128 -0
  251. package/md_cg/test_i28_hotcache_prodpath.py +122 -0
  252. package/md_cg/test_i32_hotcache_env_key.py +218 -0
  253. package/md_cg/test_identity_attribution.py +96 -15
  254. package/md_cg/test_index_durability.py +17 -3
  255. package/md_cg/test_interop.py +95 -0
  256. package/md_cg/test_interop_judgment.py +228 -0
  257. package/md_cg/test_issue39_utf8_stdio.py +273 -0
  258. package/md_cg/test_lifecycle.py +309 -309
  259. package/md_cg/test_linkref.py +306 -306
  260. package/md_cg/test_links_concurrent_write.py +188 -0
  261. package/md_cg/test_lock.py +43 -43
  262. package/md_cg/test_md_access_parity.py +255 -255
  263. package/md_cg/test_md_writepath.py +345 -345
  264. package/md_cg/test_mdstore_search_parity.py +160 -0
  265. package/md_cg/test_merge_upsert.py +168 -0
  266. package/md_cg/test_mr_m2.py +587 -587
  267. package/md_cg/test_mr_m3.py +710 -710
  268. package/md_cg/test_mr_m4.py +485 -485
  269. package/md_cg/test_n123_derive_expiry_chain.py +205 -0
  270. package/md_cg/test_n130_verify_falsified_protect.py +185 -0
  271. package/md_cg/test_n131_merge_gate.py +205 -0
  272. package/md_cg/test_p0.py +250 -250
  273. package/md_cg/test_p1.py +316 -316
  274. package/md_cg/test_p10_identity.py +173 -173
  275. package/md_cg/test_p11_consistency.py +233 -233
  276. package/md_cg/test_p12_metacognition.py +212 -212
  277. package/md_cg/test_p13_encryption.py +241 -241
  278. package/md_cg/test_p14_sustain.py +249 -249
  279. package/md_cg/test_p15_scrub.py +280 -280
  280. package/md_cg/test_p16_self_state.py +301 -301
  281. package/md_cg/test_p17_predict.py +354 -354
  282. package/md_cg/test_p18_whitebox.py +171 -171
  283. package/md_cg/test_p19_migrate_roleplay.py +149 -149
  284. package/md_cg/test_p1x_ref_root.py +160 -0
  285. package/md_cg/test_p20_evolution.py +315 -315
  286. package/md_cg/test_p21_tokens.py +293 -270
  287. package/md_cg/test_p22_theory.py +175 -175
  288. package/md_cg/test_p23_links.py +311 -311
  289. package/md_cg/test_p24_evidence.py +227 -227
  290. package/md_cg/test_p25_weights.py +156 -156
  291. package/md_cg/test_p26_refindex.py +416 -416
  292. package/md_cg/test_p27_docindex.py +16 -7
  293. package/md_cg/test_p28_refcheck.py +305 -305
  294. package/md_cg/test_p29_session_ingest_export.py +354 -333
  295. package/md_cg/test_p2_mcp.py +3 -0
  296. package/md_cg/test_p3.py +11 -2
  297. package/md_cg/test_p30_maintain.py +330 -330
  298. package/md_cg/test_p31_insight.py +534 -534
  299. package/md_cg/test_p32_backfill.py +7 -1
  300. package/md_cg/test_p33_ccg_wiring.py +293 -293
  301. package/md_cg/test_p34_crosscheck.py +331 -331
  302. package/md_cg/test_p35_conditioned_claim.py +252 -252
  303. package/md_cg/test_p36_kp_align.py +230 -230
  304. package/md_cg/test_p37_condition_space.py +248 -248
  305. package/md_cg/test_p38_concurrent_flush.py +102 -0
  306. package/md_cg/test_p38_contextualize.py +273 -273
  307. package/md_cg/test_p39_verify_flow.py +153 -0
  308. package/md_cg/test_p39_vision_evidence.py +369 -369
  309. package/md_cg/test_p40_refine_worklist.py +241 -241
  310. package/md_cg/test_p41_evolve_patrol.py +224 -224
  311. package/md_cg/test_p42_provenance.py +269 -269
  312. package/md_cg/test_p43_pooling.py +412 -398
  313. package/md_cg/test_p44_md_whitebox.py +231 -231
  314. package/md_cg/test_p45_session_identity.py +219 -219
  315. package/md_cg/test_p46_unit_scope.py +272 -272
  316. package/md_cg/test_p47_session_view.py +316 -0
  317. package/md_cg/test_p4_fuzzy.py +223 -223
  318. package/md_cg/test_p5_semantic.py +226 -226
  319. package/md_cg/test_p6_consolidate.py +440 -387
  320. package/md_cg/test_p7_goals_recent.py +202 -202
  321. package/md_cg/test_p8_subgraph_chain.py +200 -200
  322. package/md_cg/test_p9_forget_protect.py +231 -231
  323. package/md_cg/test_predict_beta.py +135 -135
  324. package/md_cg/test_preflight_failclosed.py +100 -100
  325. package/md_cg/test_progressive.py +146 -146
  326. package/md_cg/test_propose_tail_index.py +157 -0
  327. package/md_cg/test_protocol.py +243 -243
  328. package/md_cg/test_reach.py +378 -378
  329. package/md_cg/test_reach_keys.py +201 -201
  330. package/md_cg/test_read_clip.py +141 -141
  331. package/md_cg/test_read_scope_b27.py +277 -0
  332. package/md_cg/test_readcache_default_on.py +168 -0
  333. package/md_cg/test_readcache_precise_inval.py +270 -0
  334. package/md_cg/test_readcache_prodpath.py +203 -0
  335. package/md_cg/test_reconcile_v0.py +294 -0
  336. package/md_cg/test_retr_gates_prodpath.py +140 -0
  337. package/md_cg/test_retr_s1.py +344 -340
  338. package/md_cg/test_retr_s1b.py +276 -209
  339. package/md_cg/test_retr_s3.py +194 -194
  340. package/md_cg/test_retr_s4.py +163 -163
  341. package/md_cg/test_retr_s5.py +200 -200
  342. package/md_cg/test_retr_s6.py +157 -157
  343. package/md_cg/test_retr_s7.py +392 -384
  344. package/md_cg/test_retr_s8_time.py +369 -316
  345. package/md_cg/test_retr_s9_edges.py +286 -286
  346. package/md_cg/test_retr_s9_entity_ctx.py +9 -3
  347. package/md_cg/test_retr_score_once.py +208 -0
  348. package/md_cg/test_review_conformance.py +367 -367
  349. package/md_cg/test_review_onepass.py +170 -0
  350. package/md_cg/test_role_views.py +354 -354
  351. package/md_cg/test_rrf_graph_seed_cache.py +154 -0
  352. package/md_cg/test_security_audit.py +155 -0
  353. package/md_cg/test_security_audit_b26.py +161 -0
  354. package/md_cg/test_security_audit_v21.py +250 -0
  355. package/md_cg/test_sem_noise.py +242 -242
  356. package/md_cg/test_semantic_canonical.py +16 -2
  357. package/md_cg/test_session_isolation.py +168 -0
  358. package/md_cg/test_snapshot_autoclose.py +187 -0
  359. package/md_cg/test_subproc_encoding.py +192 -192
  360. package/md_cg/test_sustain_mutual.py +153 -153
  361. package/md_cg/test_tail_watermark_race.py +208 -0
  362. package/md_cg/test_tasks.py +409 -409
  363. package/md_cg/test_tenant_env_override_warn.py +139 -0
  364. package/md_cg/test_tenant_registry_corrupt_warn.py +151 -0
  365. package/md_cg/test_tool_face.py +189 -189
  366. package/md_cg/test_transfer.py +180 -180
  367. package/md_cg/test_trust.py +361 -361
  368. package/md_cg/test_twophase.py +286 -286
  369. package/md_cg/test_v14_fixes.py +38 -20
  370. package/md_cg/test_validity_filter.py +280 -280
  371. package/md_cg/test_verify_answer.py +138 -138
  372. package/md_cg/test_verify_dirty_reconcile.py +157 -0
  373. package/md_cg/test_wisdom_md_store.py +292 -292
  374. package/md_cg/test_writelimit.py +197 -197
  375. package/md_cg/test_writepipe.py +214 -214
  376. package/md_cg/theory.py +6 -3
  377. package/md_cg/tokens.py +85 -14
  378. package/md_cg/tool_face.py +260 -260
  379. package/md_cg/trust.py +986 -950
  380. package/md_cg/twophase.py +231 -231
  381. package/md_cg/units.py +668 -667
  382. package/md_cg/vision_evidence.py +667 -666
  383. package/md_cg/weights.py +624 -624
  384. package/md_cg/whitebox.py +527 -527
  385. package/md_cg/whitebox_kb/__init__.py +37 -37
  386. package/md_cg/whitebox_kb/aeis_core/__init__.py +42 -42
  387. package/md_cg/whitebox_kb/aeis_core/semantic.py +280 -280
  388. package/md_cg/whitebox_kb/aeis_core/textutil.py +13 -13
  389. package/md_cg/whitebox_kb/engine.py +310 -310
  390. package/md_cg/whitebox_kb/seed_knowledge//346/231/272/350/203/275/350/256/2723.4.md +5260 -5260
  391. package/md_cg/whitebox_kb/wisdom/browser_units.py +2631 -2631
  392. package/md_cg/whitebox_kb/wisdom/causal_discover.py +432 -432
  393. package/md_cg/whitebox_kb/wisdom/chat_engine.py +1506 -1506
  394. package/md_cg/whitebox_kb/wisdom/compiler_code_units.py +3033 -3033
  395. package/md_cg/whitebox_kb/wisdom/condition_algebra.py +112 -112
  396. package/md_cg/whitebox_kb/wisdom/condition_frame.py +315 -315
  397. package/md_cg/whitebox_kb/wisdom/condition_kb.py +108 -108
  398. package/md_cg/whitebox_kb/wisdom/conflict_map.json +4445 -4445
  399. package/md_cg/whitebox_kb/wisdom/core/lexer.py +512 -512
  400. package/md_cg/whitebox_kb/wisdom/core/name_checker.py +1023 -1023
  401. package/md_cg/whitebox_kb/wisdom/cspmn.py +258 -258
  402. package/md_cg/whitebox_kb/wisdom/csre.py +264 -264
  403. package/md_cg/whitebox_kb/wisdom/danmaku_audit.py +252 -252
  404. package/md_cg/whitebox_kb/wisdom/distilled_condition_units.json +6417 -6417
  405. package/md_cg/whitebox_kb/wisdom/docs/WB-EVAL-20260902b.json +1950 -1950
  406. package/md_cg/whitebox_kb/wisdom/docs/WB-EVAL-20260902c.json +1296 -1296
  407. package/md_cg/whitebox_kb/wisdom/docs/whitebox_capability_graph_demo.json +59 -59
  408. package/md_cg/whitebox_kb/wisdom/graph_db_units.py +3089 -3089
  409. package/md_cg/whitebox_kb/wisdom/knowledge_points.py +318 -318
  410. package/md_cg/whitebox_kb/wisdom/md_access.py +470 -470
  411. package/md_cg/whitebox_kb/wisdom/md_store.py +276 -251
  412. package/md_cg/whitebox_kb/wisdom/migrate_wisdom.py +476 -476
  413. package/md_cg/whitebox_kb/wisdom/multilang_ir.py +128 -124
  414. package/md_cg/whitebox_kb/wisdom/navigate.py +248 -248
  415. package/md_cg/whitebox_kb/wisdom/neural_retrieve.py +224 -224
  416. package/md_cg/whitebox_kb/wisdom/os_units.py +2735 -2735
  417. package/md_cg/whitebox_kb/wisdom/pattern_separation.py +376 -376
  418. package/md_cg/whitebox_kb/wisdom/prereq_map.json +364 -364
  419. package/md_cg/whitebox_kb/wisdom/python_code_units.py +2766 -2766
  420. package/md_cg/whitebox_kb/wisdom/role_solidified.json +7 -7
  421. package/md_cg/whitebox_kb/wisdom/route_memory.py +244 -244
  422. package/md_cg/whitebox_kb/wisdom/scene_reconstruction.py +148 -148
  423. package/md_cg/whitebox_kb/wisdom/snr_report.json +40 -40
  424. package/md_cg/whitebox_kb/wisdom/test_code_compose_domains.py +7541 -7541
  425. package/md_cg/whitebox_kb/wisdom/test_compiler_self_bootstrap.py +354 -354
  426. package/md_cg/whitebox_kb/wisdom/test_ecosystem_assembly.py +158 -158
  427. package/md_cg/whitebox_kb/wisdom/test_ecosystem_demos.py +193 -193
  428. package/md_cg/whitebox_kb/wisdom/test_graph_db.py +292 -292
  429. package/md_cg/whitebox_kb/wisdom/test_python_self_bootstrap.py +160 -160
  430. package/md_cg/whitebox_kb/wisdom/trigger_words_index.json +4366 -4366
  431. package/md_cg/whitebox_kb/wisdom/verifier.py +1297 -1297
  432. package/md_cg/writelimit.py +356 -356
  433. package/md_cg/writepipe.py +20 -8
  434. package/package.json +101 -96
  435. package/skills/plugin.json +54 -54
  436. package/skills/skills/designer-perspective/SKILL.md +158 -158
  437. package/skills/skills/designer-perspective/references/01-observation-position.md +66 -66
  438. package/skills/skills/designer-perspective/references/02-structure-recognition.md +62 -62
  439. package/skills/skills/designer-perspective/references/03-direction-judgment.md +55 -55
  440. package/skills/skills/designer-perspective/references/04-qualification-verdict.md +72 -72
  441. package/skills/skills/designer-perspective/references/05-condition-attribution.md +74 -74
  442. package/skills/skills/designer-perspective/scripts/designer.py +545 -545
  443. package/skills/skills/designer-perspective/tests/cases.jsonl +17 -17
  444. package/skills/skills/designer-perspective/tests/selftest.py +61 -61
  445. package/skills/skills/lingshu-browser/SKILL.md +60 -60
  446. package/skills/skills/lingshu-compiler/SKILL.md +56 -56
  447. package/skills/skills/lingshu-compiler/units/analyze-type-infer/SKILL.md +45 -45
  448. package/skills/skills/lingshu-compiler/units/check-name-real/SKILL.md +45 -45
  449. package/skills/skills/lingshu-compiler/units/compile-assign/SKILL.md +45 -45
  450. package/skills/skills/lingshu-compiler/units/compile-expr-tree/SKILL.md +45 -45
  451. package/skills/skills/lingshu-compiler/units/compile-full-pipeline/SKILL.md +45 -45
  452. package/skills/skills/lingshu-compiler/units/compile-func-def/SKILL.md +45 -45
  453. package/skills/skills/lingshu-compiler/units/compile-if-then/SKILL.md +45 -45
  454. package/skills/skills/lingshu-compiler/units/compile-logic-expr/SKILL.md +45 -45
  455. package/skills/skills/lingshu-compiler/units/compile-recursive/SKILL.md +45 -45
  456. package/skills/skills/lingshu-compiler/units/compile-scope/SKILL.md +45 -45
  457. package/skills/skills/lingshu-compiler/units/compile-type-check/SKILL.md +45 -45
  458. package/skills/skills/lingshu-compiler/units/compile-while/SKILL.md +45 -45
  459. package/skills/skills/lingshu-compiler/units/compiler-0010c4bf/SKILL.md +45 -45
  460. package/skills/skills/lingshu-compiler/units/compiler-0355bffb/SKILL.md +45 -45
  461. package/skills/skills/lingshu-compiler/units/compiler-0361708a/SKILL.md +45 -45
  462. package/skills/skills/lingshu-compiler/units/compiler-054a0414/SKILL.md +45 -45
  463. package/skills/skills/lingshu-compiler/units/compiler-05a1691a/SKILL.md +45 -45
  464. package/skills/skills/lingshu-compiler/units/compiler-05eeed1e/SKILL.md +45 -45
  465. package/skills/skills/lingshu-compiler/units/compiler-0622a1f6/SKILL.md +45 -45
  466. package/skills/skills/lingshu-compiler/units/compiler-08b54217/SKILL.md +45 -45
  467. package/skills/skills/lingshu-compiler/units/compiler-0a62b70c/SKILL.md +45 -45
  468. package/skills/skills/lingshu-compiler/units/compiler-0ab24d00/SKILL.md +45 -45
  469. package/skills/skills/lingshu-compiler/units/compiler-0e093688/SKILL.md +45 -45
  470. package/skills/skills/lingshu-compiler/units/compiler-0e82b966/SKILL.md +45 -45
  471. package/skills/skills/lingshu-compiler/units/compiler-0ee9b9b9/SKILL.md +45 -45
  472. package/skills/skills/lingshu-compiler/units/compiler-0f3787e6/SKILL.md +45 -45
  473. package/skills/skills/lingshu-compiler/units/compiler-1028685f/SKILL.md +45 -45
  474. package/skills/skills/lingshu-compiler/units/compiler-11897630/SKILL.md +45 -45
  475. package/skills/skills/lingshu-compiler/units/compiler-16661b9b/SKILL.md +45 -45
  476. package/skills/skills/lingshu-compiler/units/compiler-1f722303/SKILL.md +45 -45
  477. package/skills/skills/lingshu-compiler/units/compiler-25be1262/SKILL.md +45 -45
  478. package/skills/skills/lingshu-compiler/units/compiler-2a76ba07/SKILL.md +45 -45
  479. package/skills/skills/lingshu-compiler/units/compiler-2dbea54a/SKILL.md +45 -45
  480. package/skills/skills/lingshu-compiler/units/compiler-2df52f16/SKILL.md +45 -45
  481. package/skills/skills/lingshu-compiler/units/compiler-2ec2c9d2/SKILL.md +45 -45
  482. package/skills/skills/lingshu-compiler/units/compiler-2f8c8f39/SKILL.md +45 -45
  483. package/skills/skills/lingshu-compiler/units/compiler-38378ac7/SKILL.md +45 -45
  484. package/skills/skills/lingshu-compiler/units/compiler-39457d2e/SKILL.md +45 -45
  485. package/skills/skills/lingshu-compiler/units/compiler-39fb5926/SKILL.md +45 -45
  486. package/skills/skills/lingshu-compiler/units/compiler-47f4fbfa/SKILL.md +45 -45
  487. package/skills/skills/lingshu-compiler/units/compiler-4a8cd1f1/SKILL.md +45 -45
  488. package/skills/skills/lingshu-compiler/units/compiler-4b230b6b/SKILL.md +45 -45
  489. package/skills/skills/lingshu-compiler/units/compiler-4cbbda95/SKILL.md +45 -45
  490. package/skills/skills/lingshu-compiler/units/compiler-4d5a68ff/SKILL.md +45 -45
  491. package/skills/skills/lingshu-compiler/units/compiler-56dc9bdd/SKILL.md +45 -45
  492. package/skills/skills/lingshu-compiler/units/compiler-57e76ebe/SKILL.md +45 -45
  493. package/skills/skills/lingshu-compiler/units/compiler-61ff016b/SKILL.md +45 -45
  494. package/skills/skills/lingshu-compiler/units/compiler-63eae588/SKILL.md +45 -45
  495. package/skills/skills/lingshu-compiler/units/compiler-64c4224b/SKILL.md +45 -45
  496. package/skills/skills/lingshu-compiler/units/compiler-66377955/SKILL.md +45 -45
  497. package/skills/skills/lingshu-compiler/units/compiler-674ab4f6/SKILL.md +45 -45
  498. package/skills/skills/lingshu-compiler/units/compiler-6af76fd6/SKILL.md +45 -45
  499. package/skills/skills/lingshu-compiler/units/compiler-6d979db2/SKILL.md +45 -45
  500. package/skills/skills/lingshu-compiler/units/compiler-6de326c0/SKILL.md +45 -45
  501. package/skills/skills/lingshu-compiler/units/compiler-6f1c0eea/SKILL.md +45 -45
  502. package/skills/skills/lingshu-compiler/units/compiler-724d6c9b/SKILL.md +45 -45
  503. package/skills/skills/lingshu-compiler/units/compiler-7690177f/SKILL.md +45 -45
  504. package/skills/skills/lingshu-compiler/units/compiler-7b229a7d/SKILL.md +45 -45
  505. package/skills/skills/lingshu-compiler/units/compiler-7f471b3a/SKILL.md +45 -45
  506. package/skills/skills/lingshu-compiler/units/compiler-815cad08/SKILL.md +45 -45
  507. package/skills/skills/lingshu-compiler/units/compiler-83c61634/SKILL.md +45 -45
  508. package/skills/skills/lingshu-compiler/units/compiler-8c798c81/SKILL.md +45 -45
  509. package/skills/skills/lingshu-compiler/units/compiler-8dd747ac/SKILL.md +45 -45
  510. package/skills/skills/lingshu-compiler/units/compiler-90324d0a/SKILL.md +45 -45
  511. package/skills/skills/lingshu-compiler/units/compiler-94b8d72d/SKILL.md +45 -45
  512. package/skills/skills/lingshu-compiler/units/compiler-94f12231/SKILL.md +45 -45
  513. package/skills/skills/lingshu-compiler/units/compiler-95937c16/SKILL.md +45 -45
  514. package/skills/skills/lingshu-compiler/units/compiler-98a5625b/SKILL.md +45 -45
  515. package/skills/skills/lingshu-compiler/units/compiler-98b4c42f/SKILL.md +45 -45
  516. package/skills/skills/lingshu-compiler/units/compiler-98e3894a/SKILL.md +45 -45
  517. package/skills/skills/lingshu-compiler/units/compiler-9bdfe4b8/SKILL.md +45 -45
  518. package/skills/skills/lingshu-compiler/units/compiler-9d9b4e83/SKILL.md +45 -45
  519. package/skills/skills/lingshu-compiler/units/compiler-9f7be5ad/SKILL.md +45 -45
  520. package/skills/skills/lingshu-compiler/units/compiler-a6daf076/SKILL.md +45 -45
  521. package/skills/skills/lingshu-compiler/units/compiler-a7995a0c/SKILL.md +45 -45
  522. package/skills/skills/lingshu-compiler/units/compiler-a8399248/SKILL.md +45 -45
  523. package/skills/skills/lingshu-compiler/units/compiler-aabbd099/SKILL.md +45 -45
  524. package/skills/skills/lingshu-compiler/units/compiler-afe169d8/SKILL.md +45 -45
  525. package/skills/skills/lingshu-compiler/units/compiler-b0678bda/SKILL.md +45 -45
  526. package/skills/skills/lingshu-compiler/units/compiler-b09bd196/SKILL.md +45 -45
  527. package/skills/skills/lingshu-compiler/units/compiler-b1396e23/SKILL.md +45 -45
  528. package/skills/skills/lingshu-compiler/units/compiler-b9b31ce0/SKILL.md +45 -45
  529. package/skills/skills/lingshu-compiler/units/compiler-c10264a7/SKILL.md +45 -45
  530. package/skills/skills/lingshu-compiler/units/compiler-cb1e8e4b/SKILL.md +45 -45
  531. package/skills/skills/lingshu-compiler/units/compiler-ccafd438/SKILL.md +45 -45
  532. package/skills/skills/lingshu-compiler/units/compiler-cda9c262/SKILL.md +45 -45
  533. package/skills/skills/lingshu-compiler/units/compiler-ce648068/SKILL.md +45 -45
  534. package/skills/skills/lingshu-compiler/units/compiler-cf5776a4/SKILL.md +45 -45
  535. package/skills/skills/lingshu-compiler/units/compiler-d974e5d3/SKILL.md +45 -45
  536. package/skills/skills/lingshu-compiler/units/compiler-e3979fd3/SKILL.md +45 -45
  537. package/skills/skills/lingshu-compiler/units/compiler-eb1cf2b5/SKILL.md +45 -45
  538. package/skills/skills/lingshu-compiler/units/compiler-ecb30d5b/SKILL.md +45 -45
  539. package/skills/skills/lingshu-compiler/units/compiler-f8c8b24b/SKILL.md +45 -45
  540. package/skills/skills/lingshu-compiler/units/compiler-f99fedbe/SKILL.md +45 -45
  541. package/skills/skills/lingshu-compiler/units/compiler-fa8ff5f7/SKILL.md +45 -45
  542. package/skills/skills/lingshu-compiler/units/compiler-fe1b058d/SKILL.md +45 -45
  543. package/skills/skills/lingshu-compiler/units/lex-chinese-program/SKILL.md +45 -45
  544. package/skills/skills/lingshu-compiler/units/lex-dao-de-jing/SKILL.md +45 -45
  545. package/skills/skills/lingshu-compiler/units/lex-nine-chapters/SKILL.md +45 -45
  546. package/skills/skills/lingshu-compiler/units/vm-arithmetic/SKILL.md +45 -45
  547. package/skills/skills/lingshu-compiler/units/vm-array-ops/SKILL.md +45 -45
  548. package/skills/skills/lingshu-compiler/units/vm-closure-call/SKILL.md +45 -45
  549. package/skills/skills/lingshu-compiler/units/vm-closure-create/SKILL.md +45 -45
  550. package/skills/skills/lingshu-compiler/units/vm-compare/SKILL.md +45 -45
  551. package/skills/skills/lingshu-compiler/units/vm-cond-jump/SKILL.md +45 -45
  552. package/skills/skills/lingshu-compiler/units/vm-cond-space/SKILL.md +45 -45
  553. package/skills/skills/lingshu-compiler/units/vm-exception/SKILL.md +45 -45
  554. package/skills/skills/lingshu-compiler/units/vm-func-call/SKILL.md +45 -45
  555. package/skills/skills/lingshu-compiler/units/vm-loop-run/SKILL.md +45 -45
  556. package/skills/skills/lingshu-compiler/units/vm-profiling/SKILL.md +45 -45
  557. package/skills/skills/lingshu-compiler/units/vm-refcount/SKILL.md +45 -45
  558. package/skills/skills/lingshu-compiler/units/vm-run-loop/SKILL.md +45 -45
  559. package/skills/skills/lingshu-compiler/units/vm-short-circuit/SKILL.md +45 -45
  560. package/skills/skills/lingshu-compiler/units/vm-stack-guard/SKILL.md +45 -45
  561. package/skills/skills/lingshu-compiler/units/vm-stack-ops/SKILL.md +45 -45
  562. package/skills/skills/lingshu-compiler/units/vm-trust-accum/SKILL.md +45 -45
  563. package/skills/skills/lingshu-graph/SKILL.md +63 -63
  564. package/skills/skills/lingshu-net/SKILL.md +48 -48
  565. package/skills/skills/lingshu-os/SKILL.md +64 -64
  566. package/skills/skills/lingshu-pylang/SKILL.md +71 -71
  567. package/src/bridge.ts +33 -0
  568. package/src/hooks.ts +38 -2
  569. package/src/index.ts +526 -518
  570. package/src/lib/datapath.ts +326 -326
  571. package/src/lib/mdcg_client.ts +413 -413
  572. package/src/lib/mutual.ts +428 -428
  573. package/src/lib/prompt_safety.ts +62 -62
  574. package/src/lib/python_path.ts +71 -71
  575. package/src/lib/roleplay_web.ts +116 -29
  576. package/src/lib/token_store.ts +13 -3
  577. package/src/tools.ts +212 -212
  578. package/zcode/AGENTS.md +11 -3
  579. package/zcode/README.md +41 -41
  580. /package/docs/{mdcg → hive}//344/270/273/344/273/243/347/220/206/345/255/220/344/273/243/347/220/206/350/256/260/345/277/206/346/236/266/346/236/204/350/256/276/350/256/241.md" +0 -0
@@ -1,354 +1,354 @@
1
- # -*- coding: utf-8 -*-
2
- """test_compiler_self_bootstrap.py · 白箱自举写编译器 + 外部校准(第六阶段 C2 白箱化)
3
- 流程:编译器代码条件单元库 → 白箱生成(模板填充)→ 三层自校验
4
- L1 语法(ast.parse)→ L2 样例(args→期望断言运行)→ L3 边界(空/极端)
5
- → 外部校准:语义对照(智能论语义基准)+ 集成(生成代码组装 VM 执行)
6
- """
7
- import sys, os, ast
8
- sys.stdout.reconfigure(encoding='utf-8')
9
- sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
10
- from compiler_code_units import COMPILER_UNITS, route_compiler_unit
11
-
12
- pass_n = fail_n = 0
13
- def check(name, ok, detail=''):
14
- """断言登记:通过/失败计数并打印 ✓✘ 结果行。"""
15
- global pass_n, fail_n
16
- if ok: pass_n += 1
17
- else: fail_n += 1
18
- print(f'[{"✓" if ok else "✘"}] {name}{" — " + detail if detail else ""}')
19
-
20
- # ============ 白箱生成 + 三层自校验 ============
21
- generated = {}
22
- for uid, u in COMPILER_UNITS.items():
23
- code_text = u["pattern"]
24
- # L1 语法自校验(物理基底:ast.parse)
25
- try:
26
- tree = ast.parse(code_text)
27
- l1_ok = True
28
- except SyntaxError as e:
29
- l1_ok = False
30
- check(f'L1 语法[{uid}]', l1_ok, str(e) if not l1_ok else '')
31
- if not l1_ok:
32
- continue
33
- # L2 样例自校验(运行生成函数断言)
34
- ns = {}
35
- exec(compile(tree, "<unit>", "exec"), ns)
36
- fn_names = [n.name for n in ast.walk(tree) if isinstance(n, ast.FunctionDef)]
37
- fn = ns[fn_names[0]] if fn_names else None
38
- l2_ok, detail = True, ""
39
- if fn:
40
- for args, expect in u["cases"]:
41
- try:
42
- if uid == "编译-类型检查":
43
- # 组装:注入「分析-类型推断」白箱生成的 infer_types(类型检查编译)
44
- infer_fn = generated["分析-类型推断"][1]
45
- got = fn(*args, infer_fn)
46
- else:
47
- got = fn(*args) if isinstance(args, tuple) else fn(args)
48
- if isinstance(expect, dict) and isinstance(got, dict):
49
- # dict 期望:子集匹配(VM 执行循环返回状态 dict)
50
- if not all(got.get(k) == v for k, v in expect.items()):
51
- l2_ok, detail = False, f"{args} → {got} ⊉ {expect}"
52
- break
53
- elif got != expect:
54
- l2_ok, detail = False, f"{args} → {got!r} ≠ {expect!r}"
55
- break
56
- except Exception as e:
57
- l2_ok, detail = False, f"{args} → 异常 {e}"
58
- break
59
- check(f'L2 样例[{uid}]', l2_ok, detail)
60
- if l2_ok:
61
- generated[uid] = (code_text, fn)
62
-
63
- # ============ 外部校准 ============
64
- # 校准①:语义对照——生成代码与智能论语义基准一致
65
- cal_ok = all(u["calibration"] for u in COMPILER_UNITS.values())
66
- check('校准① 语义基准声明齐全', cal_ok, f'{len(COMPILER_UNITS)} 单元')
67
-
68
- # 校准②:集成——白箱生成的单元组装成迷你 VM 跑「若则+德」
69
- if "VM-条件跳转" in generated and "VM-信任累积" in generated:
70
- jf, _ = generated["VM-条件跳转"]
71
- at, _ = generated["VM-信任累积"]
72
- # 组装:栈=[False(条件为假)] → 跳转跳过德 → 信任不变
73
- ns = {}
74
- exec(compile(ast.parse(jf), "<jf>", "exec"), ns)
75
- exec(compile(ast.parse(at), "<at>", "exec"), ns)
76
- trust = ns["accumulate_trust"](0.0, 0.5)
77
- new_ip = ns["exec_jump_if_false"]([False], 3, 9)
78
- check('校准② 集成(信任累积)', trust == 0.5, f'trust={trust}')
79
- check('校准②b 集成(条件假跳转)', new_ip == 9, f'ip={new_ip}')
80
-
81
- # 校准③:任务识别
82
- check('校准③ 任务识别', route_compiler_unit("实现条件跳转") == "VM-条件跳转"
83
- and route_compiler_unit("信任累积怎么写") == "VM-信任累积", '')
84
-
85
- # 校准④:端到端组装管线——白箱生成单元组装「中文程序 → 编译 → VM 执行」
86
- def _fn(uid):
87
- """域桥接取函数:从 code_compose 命名空间安全取出目标函数。"""
88
- t = ast.parse(COMPILER_UNITS[uid]["pattern"])
89
- ns = {}
90
- exec(compile(t, "<u>", "exec"), ns)
91
- return ns[[n.name for n in ast.walk(t) if isinstance(n, ast.FunctionDef)][0]]
92
-
93
- vm_run = _fn("VM-执行循环")
94
- compile_instr = _fn("编译-指令")
95
- instr_token = _fn("词法-道德经")
96
- check('校准④a 词法→编译→执行(道/德/止)',
97
- instr_token("道") == "DAO" and compile_instr("DAO", "路径甲") == ("DAO", "路径甲"), '')
98
- prog = [("DAO", "新信任路径"), ("DE", "0.3"), ("DE", "0.5"), ("ZHI", None)]
99
- instrs = [compile_instr(k, v) for k, v in prog if compile_instr(k, v)]
100
- state = vm_run(instrs)
101
- check('校准④b 端到端(信任累积+条件空间+止)',
102
- state["trust"] == 0.8 and state["cond"] == [{"name": "新信任路径"}]
103
- and state["halt"] == "halt",
104
- f'trust={state["trust"]} cond={state["cond"]} halt={state["halt"]}')
105
- # 若则端到端:条件为假跳过 then
106
- compile_condition = _fn("编译-若则")
107
- cond_code = compile_condition([("PUSH", False)], [("DE", 0.5)], [("DE", 0.1)])
108
- state2 = vm_run(cond_code)
109
- check('校准④c 端到端(若则假跳→else)',
110
- state2["trust"] == 0.1 and state2["halt"] is None,
111
- f'trust={state2["trust"]}(假→跳过 then 的 0.5 执行 else 的 0.1)')
112
-
113
- # 校准⑤:完整中文源码端到端(词法→编译→VM 执行)
114
- lex_line = _fn("词法-中文程序")
115
- compile_program = _fn("编译-程序")
116
- instr_token = _fn("词法-道德经")
117
- source = """问曰:如何验证信任?
118
- 答曰:信任值大于0.7。
119
- 术曰:
120
- 1。道 新信任路径;
121
- 2。若 信任值 大于 0.3,则 德 0.5;
122
- 3。德 0.3;
123
- 4。止。
124
- """
125
- stmts = []
126
- for line in source.splitlines():
127
- r = lex_line(line)
128
- if r is None:
129
- continue
130
- kind, payload = r
131
- if kind in ("问曰_STRUCT", "答曰_STRUCT", "术曰_STRUCT"):
132
- stmts.append((kind, payload))
133
- elif kind == "STEP":
134
- words = payload[1].split()
135
- en = instr_token(words[0])
136
- if en:
137
- stmts.append(("INSTR", en, words[1] if len(words) > 1 else None))
138
- elif kind == "COND":
139
- cond_txt, then_txt, else_txt = payload
140
- then_parts = then_txt.split()
141
- en = instr_token(then_parts[0])
142
- stmts.append(("COND", cond_txt,
143
- [(en if en else then_parts[0],
144
- then_parts[1] if len(then_parts) > 1 else None)], []))
145
- elif kind == "INSTR":
146
- en = instr_token(payload[0])
147
- if en:
148
- stmts.append(("INSTR", en, payload[1]))
149
- check('校准⑤a 中文源码词法', any(s[0] == "术曰_STRUCT" for s in stmts)
150
- and any(s[0] == "INSTR" and s[1] == "DAO" for s in stmts)
151
- and any(s[0] == "INSTR" and s[1] == "DE" for s in stmts),
152
- f'{len(stmts)} 条语句')
153
- code5 = compile_program(stmts, compile_instr, compile_condition)
154
- state5 = vm_run(code5)
155
- check('校准⑤b 端到端执行(信任≥0.8+条件空间+halt)',
156
- state5["trust"] >= 0.8 and state5["cond"] == [{"name": "新信任路径"}]
157
- and state5["halt"] == "halt",
158
- f'trust={state5["trust"]} cond={state5["cond"]} halt={state5["halt"]}')
159
-
160
- # 校准⑥:编译期静态检查拦截(条件空间=类型系统/名实=静态检查)
161
- compile_pipeline = _fn("编译-管线静态检查")
162
- check_condition_spaces = _fn("校验-条件空间存在性")
163
- check('校准⑥a 条件空间存在性校验',
164
- check_condition_spaces(["伴侣"], {"伴侣"}) == []
165
- and check_condition_spaces(["未知"], {"伴侣"}) == ["未知"], '')
166
- # 类型错误源码:德 操作数非数值 → 编译期拦截
167
- _, r_bad = compile_pipeline([("INSTR", "DE", "高信任"), ("止", None)],
168
- {"信任值": "数值"}, {"伴侣"})
169
- check('校准⑥b 类型错误编译期拦截', r_bad["ok"] is False
170
- and any("类型错误" in e for e in r_bad["errors"]), str(r_bad["errors"]))
171
- # 未声明条件空间 → 编译期拦截
172
- _, r_bad2 = compile_pipeline([("COND", "条件空间为未知 则 德 0.5", [("DE", "0.5")], [])],
173
- {"信任值": "数值"}, {"伴侣"})
174
- check('校准⑥c 未声明条件空间拦截', r_bad2["ok"] is False
175
- and any("条件空间未声明" in e for e in r_bad2["errors"]), str(r_bad2["errors"]))
176
- # 正确源码 → 通过
177
- code_ok, r_ok = compile_pipeline([("INSTR", "DE", "0.5"), ("止", None)],
178
- {"信任值": "数值"}, {"伴侣"})
179
- check('校准⑥d 正确源码通过', r_ok["ok"] and code_ok == [("COMPILED", 2)], str(r_ok))
180
-
181
- # 校准⑦:单入口完整编译(白箱版 pc compile:词法→静态检查→编译)
182
- compile_full = _fn("编译-完整管线")
183
- src_ok = "道 新信任路径\n德 0.3\n止。\n"
184
- code7, r7 = compile_full(src_ok, {"伴侣"})
185
- check('校准⑦a 单入口编译(道/德/止)',
186
- r7["ok"] and code7 == [("DAO", "新信任路径"), ("DE", 0.3), ("ZHI", None)],
187
- str(code7))
188
- if r7["ok"]:
189
- state7 = vm_run(code7)
190
- check('校准⑦b 单入口执行(信任0.3+条件空间+halt)',
191
- state7["trust"] == 0.3 and state7["cond"] == [{"name": "新信任路径"}]
192
- and state7["halt"] == "halt",
193
- f'trust={state7["trust"]} cond={state7["cond"]} halt={state7["halt"]}')
194
- # 未声明条件空间 → 单入口拦截
195
- _, r7_bad = compile_full("若 条件空间为未知 则 德 0.5\n止。\n", {"伴侣"})
196
- check('校准⑦c 单入口拦截未声明空间', r7_bad["ok"] is False
197
- and any("条件空间未声明" in e for e in r7_bad["errors"]), str(r7_bad["errors"]))
198
- # 未知行 → 拦截
199
- _, r7_bad2 = compile_full("随便文本\n", set())
200
- check('校准⑦d 单入口拦截未知行', r7_bad2["ok"] is False
201
- and any("无法识别" in e for e in r7_bad2["errors"]), str(r7_bad2["errors"]))
202
- # 声明空间后通过(若则)
203
- code7b, r7b = compile_full("若 条件空间为伴侣 则 德 0.5\n止。\n", {"伴侣"})
204
- check('校准⑦e 声明空间后通过', r7b["ok"] and len(code7b) >= 2,
205
- f'{len(code7b)} 条指令')
206
-
207
- # 校准⑧:条件真值计算(若则真实判定)
208
- eval_condition = _fn("求值-条件表达式")
209
- check('校准⑧a 条件表达式求值',
210
- eval_condition("信任值 大于 0.3", {"信任值": 0.5}) is True
211
- and eval_condition("信任值 大于 0.3", {"信任值": 0.2}) is False
212
- and eval_condition("未知量 大于 0.3", {"信任值": 0.5}) is None, '')
213
- # 单入口:信任值 0.5 → 真 → 执行 then
214
- src_t = "若 信任值 大于 0.3,则 德 0.5\n止。\n"
215
- code8, r8 = compile_full(src_t, {"伴侣"})
216
- check('校准⑧b 条件真值编译(LOAD+PUSH+CMP)',
217
- r8["ok"] and any(op == "CMP_GT" for op, _ in code8), str(code8))
218
- if r8["ok"]:
219
- state8 = vm_run(code8, symbols={"信任值": 0.5})
220
- check('校准⑧c 真条件执行then(信任0.5)',
221
- state8["trust"] == 0.5, f'trust={state8["trust"]}')
222
- state8b = vm_run(code8, symbols={"信任值": 0.2})
223
- check('校准⑧d 假条件跳过then(信任0)',
224
- state8b["trust"] == 0.0, f'trust={state8b["trust"]}')
225
-
226
- # 校准⑨:赋值/变量(名实动态绑定)
227
- src9 = "甲 = 3\n若 甲 大于 2,则 德 0.5\n止。\n"
228
- code9, r9 = compile_full(src9, {"伴侣"})
229
- check('校准⑨a 赋值编译(STORE)', r9["ok"]
230
- and any(op == "STORE" and arg == "甲" for op, arg in code9), str(code9))
231
- if r9["ok"]:
232
- state9 = vm_run(code9)
233
- check('校准⑨b 赋值+条件执行(符号甲=3, 3>2真→德0.5)',
234
- state9["symbols"].get("甲") == 3 and state9["trust"] == 0.5
235
- and state9["halt"] == "halt",
236
- f'symbols={state9["symbols"]} trust={state9["trust"]} halt={state9["halt"]}')
237
- # 变量复制:乙 = 甲
238
- code9b, r9b = compile_full("甲 = 3\n乙 = 甲\n止。\n", set())
239
- if r9b["ok"]:
240
- state9b = vm_run(code9b)
241
- check('校准⑨c 变量复制(乙=甲)', state9b["symbols"].get("甲") == 3
242
- and state9b["symbols"].get("乙") == 3,
243
- f'symbols={state9b["symbols"]}')
244
-
245
- # 校准⑩:对接 protocol-compiler 真实 lexer/parser(同一源码 → 白箱编译 → VM 执行)
246
- import sys as _sys
247
- import os as _os
248
- _pc = os.environ.get('AEIS_PROTOCOL_COMPILER') or os.path.join(
249
- _os.path.dirname(_os.path.dirname(_os.path.abspath(__file__))),
250
- _os.pardir, 'protocol-compiler')
251
- if _os.path.isdir(_pc) and _pc not in _sys.path:
252
- _sys.path.insert(0, _pc)
253
- bridge_token = _fn("对接-协议词法")
254
- try:
255
- from core.lexer import tokenize, TokenType
256
- from core.parser import parse_tokens, NodeType
257
- src_pc = """问曰:如何验证信任?
258
- 答曰:信任值大于0.7。
259
- 术曰:
260
- 1。道 新信任路径;
261
- 2。德 0.3;
262
- 3。止。"""
263
- tokens_pc, lex_err = tokenize(src_pc)
264
- ast_pc = parse_tokens(tokens_pc, [])
265
- instrs_pc = []
266
- for stmt in ast_pc.statements:
267
- if getattr(stmt, "type", None) == NodeType.SHUYUE:
268
- for step in stmt.steps:
269
- s = step.statement
270
- if getattr(s, "type", None) == NodeType.INSTRUCTION_STMT:
271
- kind = bridge_token(s.instruction.name)
272
- operand = None
273
- if s.operands:
274
- op0 = s.operands[0]
275
- operand = getattr(op0, "name", None) or getattr(
276
- op0, "literal_value", None)
277
- ci = compile_instr(kind, operand)
278
- if ci:
279
- instrs_pc.append(ci)
280
- check('校准⑩a 真实解析→白箱编译', len(instrs_pc) >= 2
281
- and ("DAO", "新信任路径") in instrs_pc
282
- and ("DE", 0.3) in instrs_pc, str(instrs_pc))
283
- if instrs_pc:
284
- state_pc = vm_run(instrs_pc)
285
- check('校准⑩b VM执行(真实AST→信任0.3+条件空间+halt)',
286
- state_pc["trust"] == 0.3
287
- and state_pc["cond"] == [{"name": "新信任路径"}]
288
- and state_pc["halt"] == "halt",
289
- f'trust={state_pc["trust"]} cond={state_pc["cond"]} halt={state_pc["halt"]}')
290
- except ImportError as e:
291
- check('校准⑩ protocol-compiler 对接', False, f'导入失败: {e}')
292
-
293
- # 校准⑪:知足(信任达标跳转,道德经指令全覆盖验证)
294
- src_z1 = "德 0.3\n知足 0.7\n德 0.5\n止。\n"
295
- code_z1, r_z1 = compile_full(src_z1, set())
296
- check('校准⑪a 知足编译(达标目标末尾回填)', r_z1["ok"]
297
- and any(op == "ZHIZU" and arg == (0.7, 4) for op, arg in code_z1), str(code_z1))
298
- if r_z1["ok"]:
299
- state_z1 = vm_run(code_z1)
300
- check('校准⑪b 知足不达标继续(信任0.8)',
301
- state_z1["trust"] == 0.8, f'trust={state_z1["trust"]}')
302
- src_z2 = "德 0.8\n知足 0.7\n德 0.5\n止。\n"
303
- code_z2, r_z2 = compile_full(src_z2, set())
304
- if r_z2["ok"]:
305
- state_z2 = vm_run(code_z2)
306
- check('校准⑪c 知足达标跳结束(信任0.8,跳过德0.5)',
307
- state_z2["trust"] == 0.8, f'trust={state_z2["trust"]}')
308
-
309
- # 校准⑫:C3 原生编译——字节码序列化/反序列化往返 + .pbc 执行
310
- serialize = _fn("字节码-序列化")
311
- deserialize = _fn("字节码-反序列化")
312
- src_pbc = "德 0.3\n若 信任值 大于 0.2,则 德 0.5\n止。\n"
313
- code_pbc, r_pbc = compile_full(src_pbc, {"伴侣"})
314
- check('校准⑫a 编译成功', r_pbc["ok"] and code_pbc, str(r_pbc.get("errors", []))[:30])
315
- if r_pbc["ok"]:
316
- data = serialize(code_pbc)
317
- check('校准⑫b 序列化字节串', isinstance(data, bytes) and len(data) > 0,
318
- f'{len(data)} 字节')
319
- code_rt = deserialize(data)
320
- check('校准⑫c 反序列化往返一致', code_rt == code_pbc,
321
- f'len={len(code_rt)}')
322
- # .pbc 独立执行(不依赖编译流程,直接 VM 加载执行)
323
- state_pbc = vm_run(code_rt, symbols={"信任值": 0.5})
324
- state_direct = vm_run(code_pbc, symbols={"信任值": 0.5})
325
- check('校准⑫d .pbc 执行结果一致(信任0.8)',
326
- state_pbc["trust"] == state_direct["trust"] == 0.8,
327
- f'trust={state_pbc["trust"]}')
328
-
329
- # 校准⑬:类型推断(目标3 分析器完整化——编译期类型流)
330
- infer_types = _fn("分析-类型推断")
331
- r_t = infer_types([("assign", "甲", 3), ("assign", "乙", "x"), ("assign", "丙", True)])
332
- check('校准⑬a 类型推断(数值/文本/布尔)',
333
- r_t["types"] == {"甲": "数值", "乙": "文本", "丙": "布尔"}, str(r_t["types"]))
334
- r_t2 = infer_types([("assign", "甲", 3), ("assign", "甲", "x")])
335
- check('校准⑬b 类型冲突→混合', r_t2["types"]["甲"] == "混合", str(r_t2["types"]))
336
- r_t3 = infer_types([("COND", "条件空间为伴侣 则 德 0.5", [], [])])
337
- check('校准⑬c 条件空间声明登记', r_t3["spaces"] == {"伴侣": "已声明"}, str(r_t3["spaces"]))
338
-
339
- # 校准⑭:类型检查接入编译管线(未推断/混合类型编译期拦截)
340
- compile_typed = _fn("编译-类型检查")
341
- code_t, r_t4 = compile_typed([("assign", "甲", 3), ("COND", "甲 大于 2 则 德 0.5", [], [])],
342
- infer_types)
343
- check('校准⑭a 类型一致通过', r_t4["ok"] and code_t == [("TYPED_OK", 2)],
344
- str(r_t4.get("errors", []))[:30])
345
- _, r_t5 = compile_typed([("COND", "未知量 大于 2 则 德 0.5", [], [])], infer_types)
346
- check('校准⑭b 未推断类型拦截', r_t5["ok"] is False
347
- and any("未推断类型" in e for e in r_t5["errors"]), str(r_t5["errors"]))
348
- _, r_t6 = compile_typed([("assign", "甲", 3), ("assign", "甲", "x"),
349
- ("COND", "甲 大于 2 则 德 0.5", [], [])], infer_types)
350
- check('校准⑭c 混合类型拦截', r_t6["ok"] is False
351
- and any("类型冲突" in e for e in r_t6["errors"]), str(r_t6["errors"]))
352
-
353
- print(f'\n=== 白箱自举写编译器(C2 白箱化): {pass_n}/{pass_n + fail_n} 通过 ===')
354
- sys.exit(0 if fail_n == 0 else 1)
1
+ # -*- coding: utf-8 -*-
2
+ """test_compiler_self_bootstrap.py · 白箱自举写编译器 + 外部校准(第六阶段 C2 白箱化)
3
+ 流程:编译器代码条件单元库 → 白箱生成(模板填充)→ 三层自校验
4
+ L1 语法(ast.parse)→ L2 样例(args→期望断言运行)→ L3 边界(空/极端)
5
+ → 外部校准:语义对照(智能论语义基准)+ 集成(生成代码组装 VM 执行)
6
+ """
7
+ import sys, os, ast
8
+ sys.stdout.reconfigure(encoding='utf-8')
9
+ sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
10
+ from compiler_code_units import COMPILER_UNITS, route_compiler_unit
11
+
12
+ pass_n = fail_n = 0
13
+ def check(name, ok, detail=''):
14
+ """断言登记:通过/失败计数并打印 ✓✘ 结果行。"""
15
+ global pass_n, fail_n
16
+ if ok: pass_n += 1
17
+ else: fail_n += 1
18
+ print(f'[{"✓" if ok else "✘"}] {name}{" — " + detail if detail else ""}')
19
+
20
+ # ============ 白箱生成 + 三层自校验 ============
21
+ generated = {}
22
+ for uid, u in COMPILER_UNITS.items():
23
+ code_text = u["pattern"]
24
+ # L1 语法自校验(物理基底:ast.parse)
25
+ try:
26
+ tree = ast.parse(code_text)
27
+ l1_ok = True
28
+ except SyntaxError as e:
29
+ l1_ok = False
30
+ check(f'L1 语法[{uid}]', l1_ok, str(e) if not l1_ok else '')
31
+ if not l1_ok:
32
+ continue
33
+ # L2 样例自校验(运行生成函数断言)
34
+ ns = {}
35
+ exec(compile(tree, "<unit>", "exec"), ns)
36
+ fn_names = [n.name for n in ast.walk(tree) if isinstance(n, ast.FunctionDef)]
37
+ fn = ns[fn_names[0]] if fn_names else None
38
+ l2_ok, detail = True, ""
39
+ if fn:
40
+ for args, expect in u["cases"]:
41
+ try:
42
+ if uid == "编译-类型检查":
43
+ # 组装:注入「分析-类型推断」白箱生成的 infer_types(类型检查编译)
44
+ infer_fn = generated["分析-类型推断"][1]
45
+ got = fn(*args, infer_fn)
46
+ else:
47
+ got = fn(*args) if isinstance(args, tuple) else fn(args)
48
+ if isinstance(expect, dict) and isinstance(got, dict):
49
+ # dict 期望:子集匹配(VM 执行循环返回状态 dict)
50
+ if not all(got.get(k) == v for k, v in expect.items()):
51
+ l2_ok, detail = False, f"{args} → {got} ⊉ {expect}"
52
+ break
53
+ elif got != expect:
54
+ l2_ok, detail = False, f"{args} → {got!r} ≠ {expect!r}"
55
+ break
56
+ except Exception as e:
57
+ l2_ok, detail = False, f"{args} → 异常 {e}"
58
+ break
59
+ check(f'L2 样例[{uid}]', l2_ok, detail)
60
+ if l2_ok:
61
+ generated[uid] = (code_text, fn)
62
+
63
+ # ============ 外部校准 ============
64
+ # 校准①:语义对照——生成代码与智能论语义基准一致
65
+ cal_ok = all(u["calibration"] for u in COMPILER_UNITS.values())
66
+ check('校准① 语义基准声明齐全', cal_ok, f'{len(COMPILER_UNITS)} 单元')
67
+
68
+ # 校准②:集成——白箱生成的单元组装成迷你 VM 跑「若则+德」
69
+ if "VM-条件跳转" in generated and "VM-信任累积" in generated:
70
+ jf, _ = generated["VM-条件跳转"]
71
+ at, _ = generated["VM-信任累积"]
72
+ # 组装:栈=[False(条件为假)] → 跳转跳过德 → 信任不变
73
+ ns = {}
74
+ exec(compile(ast.parse(jf), "<jf>", "exec"), ns)
75
+ exec(compile(ast.parse(at), "<at>", "exec"), ns)
76
+ trust = ns["accumulate_trust"](0.0, 0.5)
77
+ new_ip = ns["exec_jump_if_false"]([False], 3, 9)
78
+ check('校准② 集成(信任累积)', trust == 0.5, f'trust={trust}')
79
+ check('校准②b 集成(条件假跳转)', new_ip == 9, f'ip={new_ip}')
80
+
81
+ # 校准③:任务识别
82
+ check('校准③ 任务识别', route_compiler_unit("实现条件跳转") == "VM-条件跳转"
83
+ and route_compiler_unit("信任累积怎么写") == "VM-信任累积", '')
84
+
85
+ # 校准④:端到端组装管线——白箱生成单元组装「中文程序 → 编译 → VM 执行」
86
+ def _fn(uid):
87
+ """域桥接取函数:从 code_compose 命名空间安全取出目标函数。"""
88
+ t = ast.parse(COMPILER_UNITS[uid]["pattern"])
89
+ ns = {}
90
+ exec(compile(t, "<u>", "exec"), ns)
91
+ return ns[[n.name for n in ast.walk(t) if isinstance(n, ast.FunctionDef)][0]]
92
+
93
+ vm_run = _fn("VM-执行循环")
94
+ compile_instr = _fn("编译-指令")
95
+ instr_token = _fn("词法-道德经")
96
+ check('校准④a 词法→编译→执行(道/德/止)',
97
+ instr_token("道") == "DAO" and compile_instr("DAO", "路径甲") == ("DAO", "路径甲"), '')
98
+ prog = [("DAO", "新信任路径"), ("DE", "0.3"), ("DE", "0.5"), ("ZHI", None)]
99
+ instrs = [compile_instr(k, v) for k, v in prog if compile_instr(k, v)]
100
+ state = vm_run(instrs)
101
+ check('校准④b 端到端(信任累积+条件空间+止)',
102
+ state["trust"] == 0.8 and state["cond"] == [{"name": "新信任路径"}]
103
+ and state["halt"] == "halt",
104
+ f'trust={state["trust"]} cond={state["cond"]} halt={state["halt"]}')
105
+ # 若则端到端:条件为假跳过 then
106
+ compile_condition = _fn("编译-若则")
107
+ cond_code = compile_condition([("PUSH", False)], [("DE", 0.5)], [("DE", 0.1)])
108
+ state2 = vm_run(cond_code)
109
+ check('校准④c 端到端(若则假跳→else)',
110
+ state2["trust"] == 0.1 and state2["halt"] is None,
111
+ f'trust={state2["trust"]}(假→跳过 then 的 0.5 执行 else 的 0.1)')
112
+
113
+ # 校准⑤:完整中文源码端到端(词法→编译→VM 执行)
114
+ lex_line = _fn("词法-中文程序")
115
+ compile_program = _fn("编译-程序")
116
+ instr_token = _fn("词法-道德经")
117
+ source = """问曰:如何验证信任?
118
+ 答曰:信任值大于0.7。
119
+ 术曰:
120
+ 1。道 新信任路径;
121
+ 2。若 信任值 大于 0.3,则 德 0.5;
122
+ 3。德 0.3;
123
+ 4。止。
124
+ """
125
+ stmts = []
126
+ for line in source.splitlines():
127
+ r = lex_line(line)
128
+ if r is None:
129
+ continue
130
+ kind, payload = r
131
+ if kind in ("问曰_STRUCT", "答曰_STRUCT", "术曰_STRUCT"):
132
+ stmts.append((kind, payload))
133
+ elif kind == "STEP":
134
+ words = payload[1].split()
135
+ en = instr_token(words[0])
136
+ if en:
137
+ stmts.append(("INSTR", en, words[1] if len(words) > 1 else None))
138
+ elif kind == "COND":
139
+ cond_txt, then_txt, else_txt = payload
140
+ then_parts = then_txt.split()
141
+ en = instr_token(then_parts[0])
142
+ stmts.append(("COND", cond_txt,
143
+ [(en if en else then_parts[0],
144
+ then_parts[1] if len(then_parts) > 1 else None)], []))
145
+ elif kind == "INSTR":
146
+ en = instr_token(payload[0])
147
+ if en:
148
+ stmts.append(("INSTR", en, payload[1]))
149
+ check('校准⑤a 中文源码词法', any(s[0] == "术曰_STRUCT" for s in stmts)
150
+ and any(s[0] == "INSTR" and s[1] == "DAO" for s in stmts)
151
+ and any(s[0] == "INSTR" and s[1] == "DE" for s in stmts),
152
+ f'{len(stmts)} 条语句')
153
+ code5 = compile_program(stmts, compile_instr, compile_condition)
154
+ state5 = vm_run(code5)
155
+ check('校准⑤b 端到端执行(信任≥0.8+条件空间+halt)',
156
+ state5["trust"] >= 0.8 and state5["cond"] == [{"name": "新信任路径"}]
157
+ and state5["halt"] == "halt",
158
+ f'trust={state5["trust"]} cond={state5["cond"]} halt={state5["halt"]}')
159
+
160
+ # 校准⑥:编译期静态检查拦截(条件空间=类型系统/名实=静态检查)
161
+ compile_pipeline = _fn("编译-管线静态检查")
162
+ check_condition_spaces = _fn("校验-条件空间存在性")
163
+ check('校准⑥a 条件空间存在性校验',
164
+ check_condition_spaces(["伴侣"], {"伴侣"}) == []
165
+ and check_condition_spaces(["未知"], {"伴侣"}) == ["未知"], '')
166
+ # 类型错误源码:德 操作数非数值 → 编译期拦截
167
+ _, r_bad = compile_pipeline([("INSTR", "DE", "高信任"), ("止", None)],
168
+ {"信任值": "数值"}, {"伴侣"})
169
+ check('校准⑥b 类型错误编译期拦截', r_bad["ok"] is False
170
+ and any("类型错误" in e for e in r_bad["errors"]), str(r_bad["errors"]))
171
+ # 未声明条件空间 → 编译期拦截
172
+ _, r_bad2 = compile_pipeline([("COND", "条件空间为未知 则 德 0.5", [("DE", "0.5")], [])],
173
+ {"信任值": "数值"}, {"伴侣"})
174
+ check('校准⑥c 未声明条件空间拦截', r_bad2["ok"] is False
175
+ and any("条件空间未声明" in e for e in r_bad2["errors"]), str(r_bad2["errors"]))
176
+ # 正确源码 → 通过
177
+ code_ok, r_ok = compile_pipeline([("INSTR", "DE", "0.5"), ("止", None)],
178
+ {"信任值": "数值"}, {"伴侣"})
179
+ check('校准⑥d 正确源码通过', r_ok["ok"] and code_ok == [("COMPILED", 2)], str(r_ok))
180
+
181
+ # 校准⑦:单入口完整编译(白箱版 pc compile:词法→静态检查→编译)
182
+ compile_full = _fn("编译-完整管线")
183
+ src_ok = "道 新信任路径\n德 0.3\n止。\n"
184
+ code7, r7 = compile_full(src_ok, {"伴侣"})
185
+ check('校准⑦a 单入口编译(道/德/止)',
186
+ r7["ok"] and code7 == [("DAO", "新信任路径"), ("DE", 0.3), ("ZHI", None)],
187
+ str(code7))
188
+ if r7["ok"]:
189
+ state7 = vm_run(code7)
190
+ check('校准⑦b 单入口执行(信任0.3+条件空间+halt)',
191
+ state7["trust"] == 0.3 and state7["cond"] == [{"name": "新信任路径"}]
192
+ and state7["halt"] == "halt",
193
+ f'trust={state7["trust"]} cond={state7["cond"]} halt={state7["halt"]}')
194
+ # 未声明条件空间 → 单入口拦截
195
+ _, r7_bad = compile_full("若 条件空间为未知 则 德 0.5\n止。\n", {"伴侣"})
196
+ check('校准⑦c 单入口拦截未声明空间', r7_bad["ok"] is False
197
+ and any("条件空间未声明" in e for e in r7_bad["errors"]), str(r7_bad["errors"]))
198
+ # 未知行 → 拦截
199
+ _, r7_bad2 = compile_full("随便文本\n", set())
200
+ check('校准⑦d 单入口拦截未知行', r7_bad2["ok"] is False
201
+ and any("无法识别" in e for e in r7_bad2["errors"]), str(r7_bad2["errors"]))
202
+ # 声明空间后通过(若则)
203
+ code7b, r7b = compile_full("若 条件空间为伴侣 则 德 0.5\n止。\n", {"伴侣"})
204
+ check('校准⑦e 声明空间后通过', r7b["ok"] and len(code7b) >= 2,
205
+ f'{len(code7b)} 条指令')
206
+
207
+ # 校准⑧:条件真值计算(若则真实判定)
208
+ eval_condition = _fn("求值-条件表达式")
209
+ check('校准⑧a 条件表达式求值',
210
+ eval_condition("信任值 大于 0.3", {"信任值": 0.5}) is True
211
+ and eval_condition("信任值 大于 0.3", {"信任值": 0.2}) is False
212
+ and eval_condition("未知量 大于 0.3", {"信任值": 0.5}) is None, '')
213
+ # 单入口:信任值 0.5 → 真 → 执行 then
214
+ src_t = "若 信任值 大于 0.3,则 德 0.5\n止。\n"
215
+ code8, r8 = compile_full(src_t, {"伴侣"})
216
+ check('校准⑧b 条件真值编译(LOAD+PUSH+CMP)',
217
+ r8["ok"] and any(op == "CMP_GT" for op, _ in code8), str(code8))
218
+ if r8["ok"]:
219
+ state8 = vm_run(code8, symbols={"信任值": 0.5})
220
+ check('校准⑧c 真条件执行then(信任0.5)',
221
+ state8["trust"] == 0.5, f'trust={state8["trust"]}')
222
+ state8b = vm_run(code8, symbols={"信任值": 0.2})
223
+ check('校准⑧d 假条件跳过then(信任0)',
224
+ state8b["trust"] == 0.0, f'trust={state8b["trust"]}')
225
+
226
+ # 校准⑨:赋值/变量(名实动态绑定)
227
+ src9 = "甲 = 3\n若 甲 大于 2,则 德 0.5\n止。\n"
228
+ code9, r9 = compile_full(src9, {"伴侣"})
229
+ check('校准⑨a 赋值编译(STORE)', r9["ok"]
230
+ and any(op == "STORE" and arg == "甲" for op, arg in code9), str(code9))
231
+ if r9["ok"]:
232
+ state9 = vm_run(code9)
233
+ check('校准⑨b 赋值+条件执行(符号甲=3, 3>2真→德0.5)',
234
+ state9["symbols"].get("甲") == 3 and state9["trust"] == 0.5
235
+ and state9["halt"] == "halt",
236
+ f'symbols={state9["symbols"]} trust={state9["trust"]} halt={state9["halt"]}')
237
+ # 变量复制:乙 = 甲
238
+ code9b, r9b = compile_full("甲 = 3\n乙 = 甲\n止。\n", set())
239
+ if r9b["ok"]:
240
+ state9b = vm_run(code9b)
241
+ check('校准⑨c 变量复制(乙=甲)', state9b["symbols"].get("甲") == 3
242
+ and state9b["symbols"].get("乙") == 3,
243
+ f'symbols={state9b["symbols"]}')
244
+
245
+ # 校准⑩:对接 protocol-compiler 真实 lexer/parser(同一源码 → 白箱编译 → VM 执行)
246
+ import sys as _sys
247
+ import os as _os
248
+ _pc = os.environ.get('AEIS_PROTOCOL_COMPILER') or os.path.join(
249
+ _os.path.dirname(_os.path.dirname(_os.path.abspath(__file__))),
250
+ _os.pardir, 'protocol-compiler')
251
+ if _os.path.isdir(_pc) and _pc not in _sys.path:
252
+ _sys.path.insert(0, _pc)
253
+ bridge_token = _fn("对接-协议词法")
254
+ try:
255
+ from core.lexer import tokenize, TokenType
256
+ from core.parser import parse_tokens, NodeType
257
+ src_pc = """问曰:如何验证信任?
258
+ 答曰:信任值大于0.7。
259
+ 术曰:
260
+ 1。道 新信任路径;
261
+ 2。德 0.3;
262
+ 3。止。"""
263
+ tokens_pc, lex_err = tokenize(src_pc)
264
+ ast_pc = parse_tokens(tokens_pc, [])
265
+ instrs_pc = []
266
+ for stmt in ast_pc.statements:
267
+ if getattr(stmt, "type", None) == NodeType.SHUYUE:
268
+ for step in stmt.steps:
269
+ s = step.statement
270
+ if getattr(s, "type", None) == NodeType.INSTRUCTION_STMT:
271
+ kind = bridge_token(s.instruction.name)
272
+ operand = None
273
+ if s.operands:
274
+ op0 = s.operands[0]
275
+ operand = getattr(op0, "name", None) or getattr(
276
+ op0, "literal_value", None)
277
+ ci = compile_instr(kind, operand)
278
+ if ci:
279
+ instrs_pc.append(ci)
280
+ check('校准⑩a 真实解析→白箱编译', len(instrs_pc) >= 2
281
+ and ("DAO", "新信任路径") in instrs_pc
282
+ and ("DE", 0.3) in instrs_pc, str(instrs_pc))
283
+ if instrs_pc:
284
+ state_pc = vm_run(instrs_pc)
285
+ check('校准⑩b VM执行(真实AST→信任0.3+条件空间+halt)',
286
+ state_pc["trust"] == 0.3
287
+ and state_pc["cond"] == [{"name": "新信任路径"}]
288
+ and state_pc["halt"] == "halt",
289
+ f'trust={state_pc["trust"]} cond={state_pc["cond"]} halt={state_pc["halt"]}')
290
+ except ImportError as e:
291
+ check('校准⑩ protocol-compiler 对接', False, f'导入失败: {e}')
292
+
293
+ # 校准⑪:知足(信任达标跳转,道德经指令全覆盖验证)
294
+ src_z1 = "德 0.3\n知足 0.7\n德 0.5\n止。\n"
295
+ code_z1, r_z1 = compile_full(src_z1, set())
296
+ check('校准⑪a 知足编译(达标目标末尾回填)', r_z1["ok"]
297
+ and any(op == "ZHIZU" and arg == (0.7, 4) for op, arg in code_z1), str(code_z1))
298
+ if r_z1["ok"]:
299
+ state_z1 = vm_run(code_z1)
300
+ check('校准⑪b 知足不达标继续(信任0.8)',
301
+ state_z1["trust"] == 0.8, f'trust={state_z1["trust"]}')
302
+ src_z2 = "德 0.8\n知足 0.7\n德 0.5\n止。\n"
303
+ code_z2, r_z2 = compile_full(src_z2, set())
304
+ if r_z2["ok"]:
305
+ state_z2 = vm_run(code_z2)
306
+ check('校准⑪c 知足达标跳结束(信任0.8,跳过德0.5)',
307
+ state_z2["trust"] == 0.8, f'trust={state_z2["trust"]}')
308
+
309
+ # 校准⑫:C3 原生编译——字节码序列化/反序列化往返 + .pbc 执行
310
+ serialize = _fn("字节码-序列化")
311
+ deserialize = _fn("字节码-反序列化")
312
+ src_pbc = "德 0.3\n若 信任值 大于 0.2,则 德 0.5\n止。\n"
313
+ code_pbc, r_pbc = compile_full(src_pbc, {"伴侣"})
314
+ check('校准⑫a 编译成功', r_pbc["ok"] and code_pbc, str(r_pbc.get("errors", []))[:30])
315
+ if r_pbc["ok"]:
316
+ data = serialize(code_pbc)
317
+ check('校准⑫b 序列化字节串', isinstance(data, bytes) and len(data) > 0,
318
+ f'{len(data)} 字节')
319
+ code_rt = deserialize(data)
320
+ check('校准⑫c 反序列化往返一致', code_rt == code_pbc,
321
+ f'len={len(code_rt)}')
322
+ # .pbc 独立执行(不依赖编译流程,直接 VM 加载执行)
323
+ state_pbc = vm_run(code_rt, symbols={"信任值": 0.5})
324
+ state_direct = vm_run(code_pbc, symbols={"信任值": 0.5})
325
+ check('校准⑫d .pbc 执行结果一致(信任0.8)',
326
+ state_pbc["trust"] == state_direct["trust"] == 0.8,
327
+ f'trust={state_pbc["trust"]}')
328
+
329
+ # 校准⑬:类型推断(目标3 分析器完整化——编译期类型流)
330
+ infer_types = _fn("分析-类型推断")
331
+ r_t = infer_types([("assign", "甲", 3), ("assign", "乙", "x"), ("assign", "丙", True)])
332
+ check('校准⑬a 类型推断(数值/文本/布尔)',
333
+ r_t["types"] == {"甲": "数值", "乙": "文本", "丙": "布尔"}, str(r_t["types"]))
334
+ r_t2 = infer_types([("assign", "甲", 3), ("assign", "甲", "x")])
335
+ check('校准⑬b 类型冲突→混合', r_t2["types"]["甲"] == "混合", str(r_t2["types"]))
336
+ r_t3 = infer_types([("COND", "条件空间为伴侣 则 德 0.5", [], [])])
337
+ check('校准⑬c 条件空间声明登记', r_t3["spaces"] == {"伴侣": "已声明"}, str(r_t3["spaces"]))
338
+
339
+ # 校准⑭:类型检查接入编译管线(未推断/混合类型编译期拦截)
340
+ compile_typed = _fn("编译-类型检查")
341
+ code_t, r_t4 = compile_typed([("assign", "甲", 3), ("COND", "甲 大于 2 则 德 0.5", [], [])],
342
+ infer_types)
343
+ check('校准⑭a 类型一致通过', r_t4["ok"] and code_t == [("TYPED_OK", 2)],
344
+ str(r_t4.get("errors", []))[:30])
345
+ _, r_t5 = compile_typed([("COND", "未知量 大于 2 则 德 0.5", [], [])], infer_types)
346
+ check('校准⑭b 未推断类型拦截', r_t5["ok"] is False
347
+ and any("未推断类型" in e for e in r_t5["errors"]), str(r_t5["errors"]))
348
+ _, r_t6 = compile_typed([("assign", "甲", 3), ("assign", "甲", "x"),
349
+ ("COND", "甲 大于 2 则 德 0.5", [], [])], infer_types)
350
+ check('校准⑭c 混合类型拦截', r_t6["ok"] is False
351
+ and any("类型冲突" in e for e in r_t6["errors"]), str(r_t6["errors"]))
352
+
353
+ print(f'\n=== 白箱自举写编译器(C2 白箱化): {pass_n}/{pass_n + fail_n} 通过 ===')
354
+ sys.exit(0 if fail_n == 0 else 1)