@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
package/src/tools.ts CHANGED
@@ -1,212 +1,212 @@
1
- /**
2
- * 工具桥接:运行时从灵枢拉取工具清单(tools/list),把 JSON Schema
3
- * 转换为 dsh-tools 的 ParameterSchemaSpec,经 defineTool 注册进 ctx.tools。
4
- *
5
- * 动态拉取意味着灵枢库升级新增工具后,DSH 侧零改动即可获得新能力。
6
- */
7
-
8
- import type { Context } from '@deepseek-ai/cordis'
9
- import { defineTool, type ParameterPropertySpec, type ParameterSchemaSpec, type ValueSchemaSpec } from '@deepseek-ai/dsh-tools'
10
- import type { LingshuBridge, McpTool } from './bridge.ts'
11
-
12
- /** 默认暴露的核心工具集合:**记忆面已基元化**,只注册 `cg` / `stg` 两个认知基元。
13
- *
14
- * 三层拆分 S4 收敛后,插件工具面真源是 `md_cg.mcp_server`(不再是 pip aeis);
15
- * 旧的 aeis 工具名(remember/recall/think…)已不存在,写在这里只会被筛成空集
16
- * ——「工具永久缺失」的根因,故一并移除。全部记忆/召回/时间线/落图能力由
17
- * `cg(op=…)` / `stg(op=…)` 覆盖(见 src/lib/mdcg_client.ts 的显式映射)。 */
18
- export const CORE_TOOLS = [
19
- 'cg', // md_cg 认知图统一入口(op 分发:route/read/recent/identity/verify/whitebox…)
20
- 'stg', // md_cg 时空图入口(timeline/relation/anchor/consistency…)
21
- ] as const
22
-
23
- /**
24
- * 大脑模式工具集:`cg`/`stg` 基元 + md_cg 全部细粒度工具(`MDCG_MCP_SURFACE=full`)。
25
- *
26
- * 即「完整认知面」。不再区分身体/视觉——那些工具随 aeis 剥离,主仓无对应物。
27
- * 管理类(forget / restore / review_decide)按映射表裁定「收窄后不留」,不在此列
28
- * (如需显式启用,用 `tools: ['mdcg_forget', …]` 显式数组——显式配置不受 RISK 限制)。
29
- */
30
- export const BRAIN_TOOLS = [
31
- 'cg', 'stg',
32
- // 记忆读写
33
- 'mdcg_remember', 'mdcg_recall', 'mdcg_search', 'mdcg_get',
34
- // 反思 / 验证 / 飞轮 / 负记忆
35
- 'mdcg_reflect', 'mdcg_verify', 'mdcg_flywheel', 'mdcg_mine_fix_pairs',
36
- 'mdcg_rejected', 'mdcg_unresolved',
37
- // 审核队列(入队 / 列队 / 记录审计;裁决 review_decide 属管理类,不在此列)
38
- 'mdcg_propose', 'mdcg_review_list', 'mdcg_review_records',
39
- // 保护 / 遗忘留痕(forget 属管理类,不在此列)
40
- 'mdcg_protect', 'mdcg_forgetting_history',
41
- // 身份 / 一致性 / 元认知 / 自我状态
42
- 'mdcg_identity', 'mdcg_consistency', 'mdcg_metacognition', 'mdcg_self_state',
43
- // 预测 / 因果 / 演化账本
44
- 'mdcg_predict', 'mdcg_causal', 'mdcg_evolution',
45
- // 服务 / 状态
46
- 'mdcg_health', 'mdcg_whoami', 'mdcg_ingest', 'mdcg_watermarks',
47
- 'mdcg_whitebox', 'mdcg_service_info',
48
- ] as const
49
-
50
- /** tools 配置:'core' | 'brain' | 'all' | 显式名称数组。 */
51
- export type ToolSelection = 'core' | 'brain' | 'all' | string[]
52
-
53
- /** P1 修复(GPT 审查):只读/无副作用工具才允许并发——写操作(记忆/关系/
54
- * 生命周期/摄取/学习)标 false,防止 DSH 并行调用导致 SQLite 写入竞争、
55
- * 状态顺序错乱、关系边重复等。 */
56
- const READ_TOOLS = new Set([
57
- // —— md_cg 细粒度只读工具(非多态:无 action 写分支)——
58
- 'mdcg_recall', 'mdcg_search', 'mdcg_get', 'mdcg_review_list', 'mdcg_review_records',
59
- 'mdcg_forgetting_history', 'mdcg_health', 'mdcg_whoami', 'mdcg_watermarks', 'mdcg_service_info',
60
- // 注:cg / stg 是多态基元(op=focus/route 只读,op=write 写),一律按写处理(串行)。
61
- // 多态工具(mdcg_predict/causal/evolution/protect/identity/self_state/whitebox…)
62
- // 含 action=写 分支,同样保守按写处理。
63
- ])
64
-
65
- /** 按工具名判定并发安全(只读查询 true;写操作 false) */
66
- export function isToolConcurrencySafe(name: string): boolean {
67
- return READ_TOOLS.has(name)
68
- }
69
-
70
- /**
71
- * P1 完善(GPT 审查·tools:all 自动扩权):即使 selection='all' 也排除的宿主级
72
- * 风险工具——此前后端新增工具即自动暴露给 Agent(动态扩权无 denylist)。
73
- * 排除原则:宿主命令执行/权限终裁/外部设备/自主生命周期控制/角色卡写入。
74
- * 显式名称数组(显式配置)不受此名单限制(配置者已明确选择)。
75
- */
76
- export const RISK_TOOLS = new Set([
77
- // —— md_cg 管理类(映射表裁定「收窄后不留」,需 can_admin):即使 tools:'all'
78
- // 也不自动暴露;要启用须用显式名称数组 ——
79
- 'mdcg_forget', // 软删除(管理隔离:需 can_admin)
80
- 'mdcg_restore', // 强恢复校验(管理隔离:需 can_admin)
81
- 'mdcg_review_decide', // 审核终裁(管理隔离:需 can_admin,等效设计者裁决)
82
- ])
83
-
84
- /** 按配置筛选工具名('all' 时排除 RISK_TOOLS 宿主级危险工具)。 */
85
- export function selectTools(all: string[], selection: ToolSelection): string[] {
86
- if (selection === 'all') return all.filter((name) => !RISK_TOOLS.has(name))
87
- const allowed = new Set(
88
- selection === 'core' ? CORE_TOOLS
89
- : selection === 'brain' ? BRAIN_TOOLS
90
- : selection,
91
- )
92
- return all.filter((name) => allowed.has(name))
93
- }
94
-
95
- /** 把 MCP JSON Schema 的属性表转换为 ParameterSchemaSpec。 */
96
- export function schemaToParameters(inputSchema: Record<string, unknown> | undefined): ParameterSchemaSpec {
97
- if (!inputSchema || typeof inputSchema !== 'object') return {}
98
- const properties = inputSchema['properties'] as Record<string, unknown> | undefined
99
- if (!properties || typeof properties !== 'object') return {}
100
- const required = new Set(Array.isArray(inputSchema['required']) ? (inputSchema['required'] as string[]) : [])
101
- const spec: Record<string, ParameterPropertySpec> = {}
102
- for (const [key, raw] of Object.entries(properties)) {
103
- const value = toValueSpec(raw)
104
- if (required.has(key)) {
105
- spec[key] = { ...value, required: true as const }
106
- } else {
107
- spec[key] = value
108
- }
109
- }
110
- return spec
111
- }
112
-
113
- /** 递归转换单个 JSON Schema 节点为 ValueSchemaSpec。 */
114
- function toValueSpec(raw: unknown): ValueSchemaSpec {
115
- if (typeof raw !== 'object' || raw === null) return { type: 'json' }
116
- const node = raw as Record<string, unknown>
117
- const annotations: { description?: string } = {}
118
- if (typeof node['description'] === 'string') annotations.description = node['description'] as string
119
- const type = node['type']
120
- const enumValues = Array.isArray(node['enum']) ? (node['enum'] as unknown[]) : undefined
121
- switch (type) {
122
- case 'string':
123
- return { type: 'string', ...annotations, ...(enumValues ? { enum: enumValues as string[] } : {}) }
124
- case 'number':
125
- return { type: 'number', ...annotations }
126
- case 'integer':
127
- return { type: 'integer', ...annotations }
128
- case 'boolean':
129
- return { type: 'boolean', ...annotations }
130
- case 'null':
131
- return { type: 'null', ...annotations }
132
- case 'array': {
133
- const spec: { type: 'array'; items?: ValueSchemaSpec } & typeof annotations = { type: 'array', ...annotations }
134
- if (node['items'] !== undefined) spec.items = toValueSpec(node['items'])
135
- return spec
136
- }
137
- case 'object': {
138
- const props = schemaToParameters(node)
139
- // P1 修复(GPT 审查):尊重后端 additionalProperties 声明(false 保留),
140
- // 不再无条件 true——此前后端写 false 也会被覆盖成 true,DSH 侧认为
141
- // 参数合法但后端拒绝。
142
- const additional = node['additionalProperties'] === false ? false : true
143
- return { type: 'object', properties: props, additionalProperties: additional, ...annotations }
144
- }
145
- default:
146
- return { type: 'json', ...annotations }
147
- }
148
- }
149
-
150
- /** 从灵枢 content 数组中提取文本(MCP text block 拼接)。 */
151
- export function extractText(content: Array<{ type: string; text?: string; [key: string]: unknown }>): string {
152
- return content
153
- .map((block) => (block.type === 'text' && typeof block.text === 'string' ? block.text : ''))
154
- .filter(Boolean)
155
- .join('\n')
156
- }
157
-
158
- /** 注册灵枢工具到 ctx.tools;返回取消注册函数。 */
159
- export async function registerLingshuTools(
160
- ctx: Context,
161
- bridge: LingshuBridge,
162
- opts: { selection: ToolSelection; toolPrefix: string },
163
- ): Promise<() => void> {
164
- const tools = await bridge.listTools()
165
- const wanted = new Set(selectTools(tools.map((t) => t.name), opts.selection))
166
- const disposers: Array<() => void> = []
167
- const registered: string[] = []
168
- try {
169
- for (const tool of tools) {
170
- if (!wanted.has(tool.name)) continue
171
- const publicName = `${opts.toolPrefix}${tool.name}`
172
- const definition = defineTool({
173
- name: publicName,
174
- description: tool.description || `灵枢 ${tool.name}`,
175
- parameters: schemaToParameters(tool.inputSchema),
176
- output: {
177
- schema: { type: 'json' } as never,
178
- render(_args, value) {
179
- return [{ type: 'text', text: extractText((value as McpCallResultLike).content ?? []) }]
180
- },
181
- },
182
- timeoutMs: 120_000,
183
- // P1 修复(GPT 审查):按工具分类——只读查询可并发,写操作串行
184
- isConcurrencySafe: () => isToolConcurrencySafe(tool.name),
185
- // P1 修复(GPT 审查):接收 exec.signal(用户取消/上层超时)——
186
- // 此前完全忽略取消,取消后写操作(remember/relate/ingest 等)仍可能产生副作用
187
- async execute(args: Record<string, unknown>, exec: { signal: AbortSignal }) {
188
- if (exec.signal.aborted) throw new Error(`灵枢 ${tool.name} 已取消`)
189
- const result = await bridge.callTool(tool.name, args as Record<string, unknown>, exec.signal)
190
- if (exec.signal.aborted) throw new Error(`灵枢 ${tool.name} 已取消`)
191
- if (result.isError) {
192
- throw new Error(extractText(result.content) || `灵枢 ${tool.name} 执行失败`)
193
- }
194
- return { content: result.content } as never
195
- },
196
- })
197
- disposers.push(ctx.tools.register(definition))
198
- registered.push(publicName)
199
- }
200
- } catch (err) {
201
- for (const dispose of disposers) dispose()
202
- throw err
203
- }
204
- ctx.logger.info(`dsh-memory: 已注册 ${registered.length} 个灵枢工具(${registered.join(', ')})`)
205
- return () => {
206
- for (const dispose of disposers) dispose()
207
- }
208
- }
209
-
210
- interface McpCallResultLike {
211
- content: Array<{ type: string; text?: string; [key: string]: unknown }>
212
- }
1
+ /**
2
+ * 工具桥接:运行时从灵枢拉取工具清单(tools/list),把 JSON Schema
3
+ * 转换为 dsh-tools 的 ParameterSchemaSpec,经 defineTool 注册进 ctx.tools。
4
+ *
5
+ * 动态拉取意味着灵枢库升级新增工具后,DSH 侧零改动即可获得新能力。
6
+ */
7
+
8
+ import type { Context } from '@deepseek-ai/cordis'
9
+ import { defineTool, type ParameterPropertySpec, type ParameterSchemaSpec, type ValueSchemaSpec } from '@deepseek-ai/dsh-tools'
10
+ import type { LingshuBridge, McpTool } from './bridge.ts'
11
+
12
+ /** 默认暴露的核心工具集合:**记忆面已基元化**,只注册 `cg` / `stg` 两个认知基元。
13
+ *
14
+ * 三层拆分 S4 收敛后,插件工具面真源是 `md_cg.mcp_server`(不再是 pip aeis);
15
+ * 旧的 aeis 工具名(remember/recall/think…)已不存在,写在这里只会被筛成空集
16
+ * ——「工具永久缺失」的根因,故一并移除。全部记忆/召回/时间线/落图能力由
17
+ * `cg(op=…)` / `stg(op=…)` 覆盖(见 src/lib/mdcg_client.ts 的显式映射)。 */
18
+ export const CORE_TOOLS = [
19
+ 'cg', // md_cg 认知图统一入口(op 分发:route/read/recent/identity/verify/whitebox…)
20
+ 'stg', // md_cg 时空图入口(timeline/relation/anchor/consistency…)
21
+ ] as const
22
+
23
+ /**
24
+ * 大脑模式工具集:`cg`/`stg` 基元 + md_cg 全部细粒度工具(`MDCG_MCP_SURFACE=full`)。
25
+ *
26
+ * 即「完整认知面」。不再区分身体/视觉——那些工具随 aeis 剥离,主仓无对应物。
27
+ * 管理类(forget / restore / review_decide)按映射表裁定「收窄后不留」,不在此列
28
+ * (如需显式启用,用 `tools: ['mdcg_forget', …]` 显式数组——显式配置不受 RISK 限制)。
29
+ */
30
+ export const BRAIN_TOOLS = [
31
+ 'cg', 'stg',
32
+ // 记忆读写
33
+ 'mdcg_remember', 'mdcg_recall', 'mdcg_search', 'mdcg_get',
34
+ // 反思 / 验证 / 飞轮 / 负记忆
35
+ 'mdcg_reflect', 'mdcg_verify', 'mdcg_flywheel', 'mdcg_mine_fix_pairs',
36
+ 'mdcg_rejected', 'mdcg_unresolved',
37
+ // 审核队列(入队 / 列队 / 记录审计;裁决 review_decide 属管理类,不在此列)
38
+ 'mdcg_propose', 'mdcg_review_list', 'mdcg_review_records',
39
+ // 保护 / 遗忘留痕(forget 属管理类,不在此列)
40
+ 'mdcg_protect', 'mdcg_forgetting_history',
41
+ // 身份 / 一致性 / 元认知 / 自我状态
42
+ 'mdcg_identity', 'mdcg_consistency', 'mdcg_metacognition', 'mdcg_self_state',
43
+ // 预测 / 因果 / 演化账本
44
+ 'mdcg_predict', 'mdcg_causal', 'mdcg_evolution',
45
+ // 服务 / 状态
46
+ 'mdcg_health', 'mdcg_whoami', 'mdcg_ingest', 'mdcg_watermarks',
47
+ 'mdcg_whitebox', 'mdcg_service_info',
48
+ ] as const
49
+
50
+ /** tools 配置:'core' | 'brain' | 'all' | 显式名称数组。 */
51
+ export type ToolSelection = 'core' | 'brain' | 'all' | string[]
52
+
53
+ /** P1 修复(GPT 审查):只读/无副作用工具才允许并发——写操作(记忆/关系/
54
+ * 生命周期/摄取/学习)标 false,防止 DSH 并行调用导致 SQLite 写入竞争、
55
+ * 状态顺序错乱、关系边重复等。 */
56
+ const READ_TOOLS = new Set([
57
+ // —— md_cg 细粒度只读工具(非多态:无 action 写分支)——
58
+ 'mdcg_recall', 'mdcg_search', 'mdcg_get', 'mdcg_review_list', 'mdcg_review_records',
59
+ 'mdcg_forgetting_history', 'mdcg_health', 'mdcg_whoami', 'mdcg_watermarks', 'mdcg_service_info',
60
+ // 注:cg / stg 是多态基元(op=focus/route 只读,op=write 写),一律按写处理(串行)。
61
+ // 多态工具(mdcg_predict/causal/evolution/protect/identity/self_state/whitebox…)
62
+ // 含 action=写 分支,同样保守按写处理。
63
+ ])
64
+
65
+ /** 按工具名判定并发安全(只读查询 true;写操作 false) */
66
+ export function isToolConcurrencySafe(name: string): boolean {
67
+ return READ_TOOLS.has(name)
68
+ }
69
+
70
+ /**
71
+ * P1 完善(GPT 审查·tools:all 自动扩权):即使 selection='all' 也排除的宿主级
72
+ * 风险工具——此前后端新增工具即自动暴露给 Agent(动态扩权无 denylist)。
73
+ * 排除原则:宿主命令执行/权限终裁/外部设备/自主生命周期控制/角色卡写入。
74
+ * 显式名称数组(显式配置)不受此名单限制(配置者已明确选择)。
75
+ */
76
+ export const RISK_TOOLS = new Set([
77
+ // —— md_cg 管理类(映射表裁定「收窄后不留」,需 can_admin):即使 tools:'all'
78
+ // 也不自动暴露;要启用须用显式名称数组 ——
79
+ 'mdcg_forget', // 软删除(管理隔离:需 can_admin)
80
+ 'mdcg_restore', // 强恢复校验(管理隔离:需 can_admin)
81
+ 'mdcg_review_decide', // 审核终裁(管理隔离:需 can_admin,等效设计者裁决)
82
+ ])
83
+
84
+ /** 按配置筛选工具名('all' 时排除 RISK_TOOLS 宿主级危险工具)。 */
85
+ export function selectTools(all: string[], selection: ToolSelection): string[] {
86
+ if (selection === 'all') return all.filter((name) => !RISK_TOOLS.has(name))
87
+ const allowed = new Set(
88
+ selection === 'core' ? CORE_TOOLS
89
+ : selection === 'brain' ? BRAIN_TOOLS
90
+ : selection,
91
+ )
92
+ return all.filter((name) => allowed.has(name))
93
+ }
94
+
95
+ /** 把 MCP JSON Schema 的属性表转换为 ParameterSchemaSpec。 */
96
+ export function schemaToParameters(inputSchema: Record<string, unknown> | undefined): ParameterSchemaSpec {
97
+ if (!inputSchema || typeof inputSchema !== 'object') return {}
98
+ const properties = inputSchema['properties'] as Record<string, unknown> | undefined
99
+ if (!properties || typeof properties !== 'object') return {}
100
+ const required = new Set(Array.isArray(inputSchema['required']) ? (inputSchema['required'] as string[]) : [])
101
+ const spec: Record<string, ParameterPropertySpec> = {}
102
+ for (const [key, raw] of Object.entries(properties)) {
103
+ const value = toValueSpec(raw)
104
+ if (required.has(key)) {
105
+ spec[key] = { ...value, required: true as const }
106
+ } else {
107
+ spec[key] = value
108
+ }
109
+ }
110
+ return spec
111
+ }
112
+
113
+ /** 递归转换单个 JSON Schema 节点为 ValueSchemaSpec。 */
114
+ function toValueSpec(raw: unknown): ValueSchemaSpec {
115
+ if (typeof raw !== 'object' || raw === null) return { type: 'json' }
116
+ const node = raw as Record<string, unknown>
117
+ const annotations: { description?: string } = {}
118
+ if (typeof node['description'] === 'string') annotations.description = node['description'] as string
119
+ const type = node['type']
120
+ const enumValues = Array.isArray(node['enum']) ? (node['enum'] as unknown[]) : undefined
121
+ switch (type) {
122
+ case 'string':
123
+ return { type: 'string', ...annotations, ...(enumValues ? { enum: enumValues as string[] } : {}) }
124
+ case 'number':
125
+ return { type: 'number', ...annotations }
126
+ case 'integer':
127
+ return { type: 'integer', ...annotations }
128
+ case 'boolean':
129
+ return { type: 'boolean', ...annotations }
130
+ case 'null':
131
+ return { type: 'null', ...annotations }
132
+ case 'array': {
133
+ const spec: { type: 'array'; items?: ValueSchemaSpec } & typeof annotations = { type: 'array', ...annotations }
134
+ if (node['items'] !== undefined) spec.items = toValueSpec(node['items'])
135
+ return spec
136
+ }
137
+ case 'object': {
138
+ const props = schemaToParameters(node)
139
+ // P1 修复(GPT 审查):尊重后端 additionalProperties 声明(false 保留),
140
+ // 不再无条件 true——此前后端写 false 也会被覆盖成 true,DSH 侧认为
141
+ // 参数合法但后端拒绝。
142
+ const additional = node['additionalProperties'] === false ? false : true
143
+ return { type: 'object', properties: props, additionalProperties: additional, ...annotations }
144
+ }
145
+ default:
146
+ return { type: 'json', ...annotations }
147
+ }
148
+ }
149
+
150
+ /** 从灵枢 content 数组中提取文本(MCP text block 拼接)。 */
151
+ export function extractText(content: Array<{ type: string; text?: string; [key: string]: unknown }>): string {
152
+ return content
153
+ .map((block) => (block.type === 'text' && typeof block.text === 'string' ? block.text : ''))
154
+ .filter(Boolean)
155
+ .join('\n')
156
+ }
157
+
158
+ /** 注册灵枢工具到 ctx.tools;返回取消注册函数。 */
159
+ export async function registerLingshuTools(
160
+ ctx: Context,
161
+ bridge: LingshuBridge,
162
+ opts: { selection: ToolSelection; toolPrefix: string },
163
+ ): Promise<() => void> {
164
+ const tools = await bridge.listTools()
165
+ const wanted = new Set(selectTools(tools.map((t) => t.name), opts.selection))
166
+ const disposers: Array<() => void> = []
167
+ const registered: string[] = []
168
+ try {
169
+ for (const tool of tools) {
170
+ if (!wanted.has(tool.name)) continue
171
+ const publicName = `${opts.toolPrefix}${tool.name}`
172
+ const definition = defineTool({
173
+ name: publicName,
174
+ description: tool.description || `灵枢 ${tool.name}`,
175
+ parameters: schemaToParameters(tool.inputSchema),
176
+ output: {
177
+ schema: { type: 'json' } as never,
178
+ render(_args, value) {
179
+ return [{ type: 'text', text: extractText((value as McpCallResultLike).content ?? []) }]
180
+ },
181
+ },
182
+ timeoutMs: 120_000,
183
+ // P1 修复(GPT 审查):按工具分类——只读查询可并发,写操作串行
184
+ isConcurrencySafe: () => isToolConcurrencySafe(tool.name),
185
+ // P1 修复(GPT 审查):接收 exec.signal(用户取消/上层超时)——
186
+ // 此前完全忽略取消,取消后写操作(remember/relate/ingest 等)仍可能产生副作用
187
+ async execute(args: Record<string, unknown>, exec: { signal: AbortSignal }) {
188
+ if (exec.signal.aborted) throw new Error(`灵枢 ${tool.name} 已取消`)
189
+ const result = await bridge.callTool(tool.name, args as Record<string, unknown>, exec.signal)
190
+ if (exec.signal.aborted) throw new Error(`灵枢 ${tool.name} 已取消`)
191
+ if (result.isError) {
192
+ throw new Error(extractText(result.content) || `灵枢 ${tool.name} 执行失败`)
193
+ }
194
+ return { content: result.content } as never
195
+ },
196
+ })
197
+ disposers.push(ctx.tools.register(definition))
198
+ registered.push(publicName)
199
+ }
200
+ } catch (err) {
201
+ for (const dispose of disposers) dispose()
202
+ throw err
203
+ }
204
+ ctx.logger.info(`dsh-memory: 已注册 ${registered.length} 个灵枢工具(${registered.join(', ')})`)
205
+ return () => {
206
+ for (const dispose of disposers) dispose()
207
+ }
208
+ }
209
+
210
+ interface McpCallResultLike {
211
+ content: Array<{ type: string; text?: string; [key: string]: unknown }>
212
+ }
package/zcode/AGENTS.md CHANGED
@@ -1,12 +1,12 @@
1
- # 工作纪律(工作纪律_认知图条目_v1.1)· 17 条
1
+ # 工作纪律(工作纪律_认知图条目_v1.1)· 18 条
2
2
 
3
3
  > 本文件由 `scripts/render_discipline.py` 从真源
4
4
  > `docs/工作纪律_认知图条目_v1.1.json` 渲染生成,**请勿手改**;改真源后重跑渲染。
5
- > 真源指纹(SHA256 前16位):37aed1b5423c00af
5
+ > 真源指纹(SHA256 前16位):26bff32d73644699
6
6
 
7
7
  ## 概述
8
8
 
9
- 工作纪律集: 4条方法论(理论先行/全面处理/白箱方法/根因) + 3条执行(验证/双副本/兜底) + 1条思考(中文思考/协作模式分级) + 1条保密(敏感信息隔离) + 3条图像线(选源护栏/历史查询优先/算法权威唯一) + 1条协作(访谈澄清:先问清再动手) + 1条合规(内容政策合规:公开产物过内容政策+隐私双清单) + 2条执行调度与运行环境(命令执行统一走python/UTF-8: 显式encoding+PYTHONUTF8=1, 规避GBK; 任务派发统一走蜂巢: 任何执行性任务经蜂巢spawn/submit执行并留痕, agent本体只做编排, L1出口=产物落点为只读判定(不改仓库/外部状态)可直跑须留痕) + 1条记忆闭环(任务收尾归档:每次任务执行完只将核心修改(内容/原因/位置/验证结论)按CCG六要素(功能名/生效条件/子功能/执行/验证方式/不适用条件)成文存入灵枢记忆, 不写中间过程)
9
+ 工作纪律集: 4条方法论(理论先行/全面处理/白箱方法/根因) + 3条执行(验证/双副本/兜底) + 1条思考(中文思考/协作模式分级) + 1条保密(敏感信息隔离) + 3条图像线(选源护栏/历史查询优先/算法权威唯一) + 1条协作(访谈澄清:先问清再动手) + 1条合规(内容政策合规:公开产物过内容政策+隐私双清单) + 2条执行调度与运行环境(命令执行统一走python/UTF-8: 显式encoding+PYTHONUTF8=1, 规避GBK; 任务派发统一走蜂巢: 任何执行性任务经蜂巢spawn/submit执行并留痕, agent本体只做编排, L1出口=产物落点为只读判定(不改仓库/外部状态)可直跑须留痕) + 1条记忆闭环(任务收尾归档:每次任务执行完只将核心修改(内容/原因/位置/验证结论)按CCG六要素(功能名/生效条件/子功能/执行/验证方式/不适用条件)成文存入灵枢记忆, 不写中间过程) + 1条信息获取(工作区索引优先: 查工作区文件先读 WORKSPACE_INDEX.md(仓根, 由 scripts/workspace_index.py 从 git 追踪面管线生成), 尚无则先跑 --write 生成再读, 不以重复全盘浏览代替; 索引是会陈化的手工件, 故须管线生成+机械守卫, 否则退化为误导源)
10
10
 
11
11
  ## 执行公约
12
12
 
@@ -139,6 +139,13 @@
139
139
  - **不适用**:纯会话内对话/问答(无执行动作)|蜂巢不可用且任务必须立即执行(兜底须声明)|L1只读判定(产物落点=不改仓库/不改外部状态的本地只读命令, 秒级·可逆·高频, 如跑门禁/测试/回归/lint看结论; 判据是产物落点而非「任务简单」的主观感受, 直跑须输出一行「L1 直跑:<命令> — 风险/频次/可逆性」留痕, 留痕粒度按任务(同一任务的多条只读命令合并为一条留痕, 不逐命令逐行); 层级归属的复核者=使用者+GitHub使用者)|情感交互|闲聊
140
140
  - **声明**:按工作纪律第17条: 任务派发统一走蜂巢——任何执行性任务经蜂巢 spawn/submit 执行并留痕(spec/status/result), agent本体只做编排; 宿主自带subagent/team不是等价通道, 兜底须声明。L1只读判定(产物落点=不改仓库/外部状态)可直跑, 须输出「L1 直跑:<命令> — 风险/频次/可逆性」留痕。
141
141
 
142
+ ### 18. 工作区索引优先
143
+
144
+ - **触发**:查找工作区文件|需要了解工作区结构|跨目录检索定位|长会话续接/上下文压缩后查找工作区文件
145
+ - **动作**:定位工作区文件→先读 WORKSPACE_INDEX.md(仓根)→有则按表中职责/关键入口直接定位→无则先 python scripts/workspace_index.py --write 生成再读→守卫报陈化先重生成→不以重复全盘浏览代替; 新增顶层目录/根级文件须在脚本 DIR_ROLES/ROOT_FILES 登记后重生成; 上下文压缩/长会话续接后, 先 cg route『工作区索引』重建纪律视野(压缩会丢弃未留下执行痕迹的纪律, 只剩被声明过的条目——须主动召回)
146
+ - **不适用**:已明确路径的单文件操作|纯会话内对话/问答(无文件查找)|仓外路径/系统路径(git 追踪面之外)
147
+ - **声明**:按工作纪律第18条: 工作区索引优先——查工作区文件先读 WORKSPACE_INDEX.md(仓根, 管线生成); 无则先跑 scripts/workspace_index.py --write 生成再读, 不以重复全盘浏览代替。
148
+
142
149
  ## 声明出口(`response.direct` 原文 · 未输出即未执行)
143
150
 
144
151
  | # | 声明(response.direct 原文) |
@@ -160,6 +167,7 @@
160
167
  | 15 | 按工作纪律第15条: 命令执行统一走python——argv列表+显式UTF-8+PYTHONUTF8=1, 不经Windows shell, 规避GBK解码异常。 |
161
168
  | 16 | 按工作纪律第16条: 任务收尾归档——每次任务执行完只提炼核心修改(内容/原因/位置/验证结论)并按 CCG 六要素(功能名/生效条件/子功能/执行/验证方式/不适用条件)成文存入灵枢记忆, 写入后发起一次读取查询确认写入成功且可检索, 禁写中间过程/试错/调试等无效信息, 与第2条形成「查记忆→执行→写记忆→读回确认」闭环。 |
162
169
  | 17 | 按工作纪律第17条: 任务派发统一走蜂巢——任何执行性任务经蜂巢 spawn/submit 执行并留痕(spec/status/result), agent本体只做编排; 宿主自带subagent/team不是等价通道, 兜底须声明。L1只读判定(产物落点=不改仓库/外部状态)可直跑, 须输出「L1 直跑:<命令> — 风险/频次/可逆性」留痕。 |
170
+ | 18 | 按工作纪律第18条: 工作区索引优先——查工作区文件先读 WORKSPACE_INDEX.md(仓根, 管线生成); 无则先跑 scripts/workspace_index.py --write 生成再读, 不以重复全盘浏览代替。 |
163
171
 
164
172
  ## 记忆接口速查(`cg` / `stg`)
165
173
 
package/zcode/README.md CHANGED
@@ -1,41 +1,41 @@
1
- # ZCode 端 · 灵枢接入配置
2
-
3
- 本目录 = **ZCode harness 专属配置**。ZCode 与 CodeBuddy 同构:在**会话起始读取项目根的 `AGENTS.md`**
4
- 全文注入,因此本端产物同样采用 `full` 变体。
5
-
6
- ## 目录内容
7
-
8
- | 文件 | 作用 | 性质 |
9
- |---|---|---|
10
- | `AGENTS.md` | 16 条工作纪律全文(会话起始注入) | **渲染产物**,勿手改 |
11
- | `README.md` | 本文件(接入说明) | 手写 |
12
-
13
- ## 接入
14
-
15
- 把 `zcode/AGENTS.md` 复制到**你项目的根目录**,新建会话即生效。
16
-
17
- ZCode 侧的记忆访问复用同一套 MCP 大脑,配置方式与 CodeBuddy 一致
18
- (见 [`../codebuddy/mcp.json`](../codebuddy/mcp.json) 与 [`../codebuddy/README.md`](../codebuddy/README.md)),
19
- 只需把 `MDCG_ACTOR` 改为 `zcode`。
20
-
21
- 该模板同源含第二条 MCP server `hive`(蜂巢:多智能体并发 + 任务上下文管理),一并合并即可;
22
- ZCode 与 CodeBuddy 指向同一仓库时**共享同一并发池**。语义与边界见
23
- [`../hive/README.md`](../hive/README.md) 的「各 harness 注册」。
24
-
25
- ## 与 CodeBuddy 并存
26
-
27
- 两者互不干扰——CodeBuddy 读根目录 `CODEBUDDY.md`,ZCode 读根目录 `AGENTS.md`;
28
- 若项目同时使用两端,各自放入对应文件即可(内容同源,均为真源渲染产物)。
29
-
30
- ## 记忆策略
31
-
32
- 同 CodeBuddy 端:**只记重要内容(核心修改:内容/原因/位置/验证结论)+ 对话记录**,
33
- 其余一律经写入闸门过滤。详见 [`../codebuddy/README.md`](../codebuddy/README.md) 的「记忆策略」一节。
34
-
35
- ## 维护(面向灵枢维护者)
36
-
37
- - `AGENTS.md` 由 `scripts/render_discipline.py` 从**唯一真源** `docs/工作纪律_认知图条目_v1.1.json`
38
- 渲染生成,矩阵见 `docs/discipline/harnesses.yaml`(`zcode` 槽位)。
39
- - 改纪律 → 改真源 → `python scripts/render_discipline.py --target zcode --write`
40
- → `python scripts/verify_discipline.py --target zcode` 通过 → 提交。
41
- - **手改本目录的 `AGENTS.md` 会被 `verify_discipline.py` 判为漂移**。
1
+ # ZCode 端 · 灵枢接入配置
2
+
3
+ 本目录 = **ZCode harness 专属配置**。ZCode 与 CodeBuddy 同构:在**会话起始读取项目根的 `AGENTS.md`**
4
+ 全文注入,因此本端产物同样采用 `full` 变体。
5
+
6
+ ## 目录内容
7
+
8
+ | 文件 | 作用 | 性质 |
9
+ |---|---|---|
10
+ | `AGENTS.md` | 16 条工作纪律全文(会话起始注入) | **渲染产物**,勿手改 |
11
+ | `README.md` | 本文件(接入说明) | 手写 |
12
+
13
+ ## 接入
14
+
15
+ 把 `zcode/AGENTS.md` 复制到**你项目的根目录**,新建会话即生效。
16
+
17
+ ZCode 侧的记忆访问复用同一套 MCP 大脑,配置方式与 CodeBuddy 一致
18
+ (见 [`../codebuddy/mcp.json`](../codebuddy/mcp.json) 与 [`../codebuddy/README.md`](../codebuddy/README.md)),
19
+ 只需把 `MDCG_ACTOR` 改为 `zcode`。
20
+
21
+ 该模板同源含第二条 MCP server `hive`(蜂巢:多智能体并发 + 任务上下文管理),一并合并即可;
22
+ ZCode 与 CodeBuddy 指向同一仓库时**共享同一并发池**。语义与边界见
23
+ [`../hive/README.md`](../hive/README.md) 的「各 harness 注册」。
24
+
25
+ ## 与 CodeBuddy 并存
26
+
27
+ 两者互不干扰——CodeBuddy 读根目录 `CODEBUDDY.md`,ZCode 读根目录 `AGENTS.md`;
28
+ 若项目同时使用两端,各自放入对应文件即可(内容同源,均为真源渲染产物)。
29
+
30
+ ## 记忆策略
31
+
32
+ 同 CodeBuddy 端:**只记重要内容(核心修改:内容/原因/位置/验证结论)+ 对话记录**,
33
+ 其余一律经写入闸门过滤。详见 [`../codebuddy/README.md`](../codebuddy/README.md) 的「记忆策略」一节。
34
+
35
+ ## 维护(面向灵枢维护者)
36
+
37
+ - `AGENTS.md` 由 `scripts/render_discipline.py` 从**唯一真源** `docs/工作纪律_认知图条目_v1.1.json`
38
+ 渲染生成,矩阵见 `docs/discipline/harnesses.yaml`(`zcode` 槽位)。
39
+ - 改纪律 → 改真源 → `python scripts/render_discipline.py --target zcode --write`
40
+ → `python scripts/verify_discipline.py --target zcode` 通过 → 提交。
41
+ - **手改本目录的 `AGENTS.md` 会被 `verify_discipline.py` 判为漂移**。