@furongjun1999/dsh-memory 0.4.11 → 0.5.0
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.
- package/README.md +16 -16
- package/codebuddy/CODEBUDDY.md +11 -3
- package/codebuddy/README.md +92 -90
- package/codebuddy/mcp.json +27 -27
- 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
- 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
- package/docs/README.md +142 -111
- package/docs/discipline/harnesses.yaml +244 -226
- package/docs/discipline/templates/full.md.tmpl +61 -61
- package/docs/discipline/templates/rules.mdc.tmpl +68 -0
- package/docs/discipline/templates/skill.md.tmpl +23 -23
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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 +503 -503
- 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
- 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
- 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
- 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
- package/docs/mdcg/README/350/257/246/347/273/206/347/211/210_v0.4.10.md +646 -646
- package/docs/mdcg/lingshu_tutorial.html +14449 -14449
- package/docs/mdcg/release_v0.4.11.md +49 -0
- package/docs/mdcg/release_v0.4.5.md +55 -55
- package/docs/mdcg/tool_table_v0.3.0.md +117 -117
- 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
- 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
- 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
- package/docs/mdcg//345/217/221/345/270/203/351/227/250/347/246/201/351/223/276_v0.1.md +54 -0
- 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
- 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
- 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
- package/docs/mdcg//347/274/272/345/217/243/345/215/225_P0/346/224/266/345/217/243_v0.1.md +270 -270
- 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
- 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
- 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
- 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
- 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
- package/docs/swarm//350/234/202/347/276/244/344/272/222/350/201/224_v0.1.md +704 -704
- 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
- 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
- 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
- package/docs/theory//346/231/272/350/203/275/350/256/2723.4.md +5260 -5260
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dsh/README.md +82 -82
- package/dsh/cordis.yml.example +139 -139
- package/dsh/update-lingshu.bat +11 -11
- package/lib/hooks.js +36 -2
- package/lib/lib/roleplay_web.js +427 -427
- package/md_cg/__init__.py +7 -7
- package/md_cg/audit.py +368 -368
- package/md_cg/autonomy.py +287 -287
- package/md_cg/backfill.py +1327 -1327
- package/md_cg/backfill_bigdomain.py +34 -34
- package/md_cg/bench6_arms.py +410 -410
- package/md_cg/bench6_common.py +230 -230
- package/md_cg/bench6_competitors.py +212 -212
- package/md_cg/bench_axis_domain.py +257 -257
- package/md_cg/bench_blind_comp.py +308 -308
- package/md_cg/bench_en_atoms_public.py +230 -230
- package/md_cg/bench_governance.py +348 -348
- package/md_cg/bench_lme_zh.py +410 -410
- package/md_cg/bench_locomo.py +121 -121
- package/md_cg/bench_locomo_zh.py +450 -450
- package/md_cg/bench_locomo_zh_public.py +147 -147
- package/md_cg/bench_longmem.py +112 -112
- package/md_cg/bench_membench.py +632 -632
- package/md_cg/bench_p0.py +149 -149
- package/md_cg/bench_progressive.py +287 -287
- package/md_cg/bench_role_views.py +238 -238
- package/md_cg/bench_task_ab.py +243 -243
- package/md_cg/bench_task_ab_llm.py +408 -408
- package/md_cg/bench_unified_en.py +204 -204
- package/md_cg/bench_zh_mad.py +601 -601
- package/md_cg/blindspot_tickets.py +123 -123
- package/md_cg/branches.py +285 -285
- package/md_cg/build_postings.py +73 -73
- package/md_cg/ccgc.py +1005 -948
- package/md_cg/census.py +132 -132
- package/md_cg/chain.py +300 -300
- package/md_cg/codeindex.py +531 -531
- package/md_cg/coldverify.py +292 -292
- package/md_cg/comment_gate.py +337 -337
- package/md_cg/cond_compose.py +190 -190
- package/md_cg/cond_facts.py +154 -154
- package/md_cg/cond_template.json +106 -106
- package/md_cg/condition_anchor.py +142 -142
- package/md_cg/conformance.py +726 -726
- package/md_cg/consistency.py +717 -717
- package/md_cg/consolidate.py +1536 -1439
- package/md_cg/corpus.py +110 -110
- package/md_cg/crosscheck.py +1097 -1097
- package/md_cg/crypto.py +437 -437
- package/md_cg/d_meta.py +310 -310
- package/md_cg/datapath.py +334 -334
- package/md_cg/docindex.py +473 -473
- package/md_cg/eval_common.py +575 -575
- package/md_cg/evidence.py +580 -580
- package/md_cg/evolution.py +477 -477
- package/md_cg/export.py +220 -220
- package/md_cg/forgetting.py +581 -581
- package/md_cg/fsutil.py +329 -329
- package/md_cg/hotcache.py +238 -214
- package/md_cg/hyperedge.py +251 -251
- package/md_cg/identity.py +390 -390
- package/md_cg/insight.py +500 -500
- package/md_cg/interop.py +199 -0
- package/md_cg/lexicon/build_cedict_en_zh.py +329 -329
- package/md_cg/lexicon/build_standard_en.py +171 -171
- package/md_cg/lexicon/expand_en_zh.py +211 -211
- package/md_cg/lifecycle.py +272 -272
- package/md_cg/linkref.py +280 -280
- package/md_cg/links.py +622 -622
- package/md_cg/mcp_server.py +129 -32
- package/md_cg/md_whitebox.py +345 -345
- package/md_cg/mdcg.py +176 -117
- package/md_cg/mdcos.py +79 -13
- package/md_cg/metacognition.py +591 -591
- package/md_cg/migrate.py +119 -119
- package/md_cg/migrate_aeis.py +221 -221
- package/md_cg/migrate_roleplay.py +293 -293
- package/md_cg/migrate_wisdom_graph.py +360 -360
- package/md_cg/mreview/__init__.py +25 -25
- package/md_cg/mreview/__main__.py +110 -110
- package/md_cg/mreview/bundle.py +178 -178
- package/md_cg/mreview/candidates.py +262 -262
- package/md_cg/mreview/govern.py +693 -693
- package/md_cg/mreview/locate.py +939 -939
- package/md_cg/mreview/pipeline.py +728 -728
- package/md_cg/mreview/rules/duplication.json +21 -21
- package/md_cg/mreview/rules/field_coverage.json +54 -54
- package/md_cg/mreview/rules/source_license.json +21 -21
- package/md_cg/mreview/rules/template_flow.json +21 -21
- package/md_cg/mreview/ruleset.py +252 -252
- package/md_cg/nodefile.py +575 -575
- package/md_cg/pooling.py +484 -472
- package/md_cg/postings.py +298 -298
- package/md_cg/predict.py +1100 -1100
- package/md_cg/progressive.py +123 -123
- package/md_cg/protect.py +272 -272
- package/md_cg/protocol/md_cg_gate.proto +33 -33
- package/md_cg/protocol.py +372 -372
- package/md_cg/provenance.py +582 -582
- package/md_cg/reach.py +453 -453
- package/md_cg/readcache.py +85 -0
- package/md_cg/refindex.py +833 -833
- package/md_cg/refine.py +604 -604
- package/md_cg/roleviews.py +89 -89
- package/md_cg/routing.py +365 -365
- package/md_cg/scrub.py +852 -852
- package/md_cg/security.py +274 -274
- package/md_cg/self_state.py +1029 -1029
- package/md_cg/selfreport.py +151 -151
- package/md_cg/semantic/__init__.py +10 -10
- package/md_cg/semantic/canonical.py +122 -122
- package/md_cg/semantic/en_normalizer.py +364 -364
- package/md_cg/semantic/en_zh_map.json +28694 -0
- package/md_cg/semantic/export_en_zh_map.py +64 -0
- package/md_cg/semantic/unify.py +45 -0
- package/md_cg/semantic/zh_en_atoms.py +139 -139
- package/md_cg/signer.py +562 -562
- package/md_cg/sources.py +815 -582
- package/md_cg/statushdr.py +179 -179
- package/md_cg/stg.py +48 -37
- package/md_cg/subgraph.py +729 -729
- package/md_cg/sustain.py +1138 -1138
- package/md_cg/tasks.py +470 -470
- package/md_cg/test_action_derive.py +203 -203
- package/md_cg/test_audit_rotate.py +270 -270
- package/md_cg/test_autonomy.py +143 -143
- package/md_cg/test_bench_governance.py +102 -102
- package/md_cg/test_blindspot_tickets.py +166 -166
- package/md_cg/test_branches.py +249 -249
- package/md_cg/test_ccg_perturb.py +184 -184
- package/md_cg/test_ccgc.py +433 -433
- package/md_cg/test_census_prune.py +81 -81
- package/md_cg/test_cond_compose_anchors.py +76 -76
- package/md_cg/test_cond_match.py +165 -165
- package/md_cg/test_condition_anchor.py +81 -81
- package/md_cg/test_d_meta.py +412 -412
- package/md_cg/test_datapath_root.py +199 -199
- package/md_cg/test_en_pipeline.py +166 -166
- package/md_cg/test_gain_gate.py +212 -212
- package/md_cg/test_health_scale.py +173 -173
- package/md_cg/test_hive_ingest.py +285 -0
- package/md_cg/test_hot_cold.py +215 -215
- package/md_cg/test_hyperedge.py +245 -245
- package/md_cg/test_i26_empty_first_write.py +116 -0
- package/md_cg/test_i27_e041_identity.py +128 -0
- package/md_cg/test_i28_hotcache_prodpath.py +122 -0
- package/md_cg/test_identity_attribution.py +147 -147
- package/md_cg/test_index_durability.py +224 -224
- package/md_cg/test_interop.py +93 -0
- package/md_cg/test_lifecycle.py +309 -309
- package/md_cg/test_linkref.py +306 -306
- package/md_cg/test_lock.py +43 -43
- package/md_cg/test_md_access_parity.py +255 -255
- package/md_cg/test_md_writepath.py +345 -345
- package/md_cg/test_mdstore_search_parity.py +160 -0
- package/md_cg/test_mr_m2.py +587 -587
- package/md_cg/test_mr_m3.py +710 -710
- package/md_cg/test_mr_m4.py +485 -485
- package/md_cg/test_p0.py +250 -250
- package/md_cg/test_p1.py +316 -316
- package/md_cg/test_p10_identity.py +173 -173
- package/md_cg/test_p11_consistency.py +233 -233
- package/md_cg/test_p12_metacognition.py +212 -212
- package/md_cg/test_p13_encryption.py +241 -241
- package/md_cg/test_p14_sustain.py +249 -249
- package/md_cg/test_p15_scrub.py +280 -280
- package/md_cg/test_p16_self_state.py +301 -301
- package/md_cg/test_p17_predict.py +354 -354
- package/md_cg/test_p18_whitebox.py +171 -171
- package/md_cg/test_p19_migrate_roleplay.py +149 -149
- package/md_cg/test_p20_evolution.py +315 -315
- package/md_cg/test_p21_tokens.py +293 -270
- package/md_cg/test_p22_theory.py +175 -175
- package/md_cg/test_p23_links.py +311 -311
- package/md_cg/test_p24_evidence.py +227 -227
- package/md_cg/test_p25_weights.py +156 -156
- package/md_cg/test_p26_refindex.py +416 -416
- package/md_cg/test_p27_docindex.py +765 -765
- package/md_cg/test_p28_refcheck.py +305 -305
- package/md_cg/test_p29_session_ingest_export.py +354 -333
- package/md_cg/test_p3.py +11 -2
- package/md_cg/test_p30_maintain.py +330 -330
- package/md_cg/test_p31_insight.py +534 -534
- package/md_cg/test_p32_backfill.py +298 -298
- package/md_cg/test_p33_ccg_wiring.py +293 -293
- package/md_cg/test_p34_crosscheck.py +331 -331
- package/md_cg/test_p35_conditioned_claim.py +252 -252
- package/md_cg/test_p36_kp_align.py +230 -230
- package/md_cg/test_p37_condition_space.py +248 -248
- package/md_cg/test_p38_concurrent_flush.py +102 -0
- package/md_cg/test_p38_contextualize.py +273 -273
- package/md_cg/test_p39_verify_flow.py +113 -0
- package/md_cg/test_p39_vision_evidence.py +369 -369
- package/md_cg/test_p40_refine_worklist.py +241 -241
- package/md_cg/test_p41_evolve_patrol.py +224 -224
- package/md_cg/test_p42_provenance.py +269 -269
- package/md_cg/test_p43_pooling.py +412 -398
- package/md_cg/test_p44_md_whitebox.py +231 -231
- package/md_cg/test_p45_session_identity.py +219 -219
- package/md_cg/test_p46_unit_scope.py +272 -272
- package/md_cg/test_p47_session_view.py +281 -0
- package/md_cg/test_p4_fuzzy.py +223 -223
- package/md_cg/test_p5_semantic.py +226 -226
- package/md_cg/test_p6_consolidate.py +440 -387
- package/md_cg/test_p7_goals_recent.py +202 -202
- package/md_cg/test_p8_subgraph_chain.py +200 -200
- package/md_cg/test_p9_forget_protect.py +231 -231
- package/md_cg/test_predict_beta.py +135 -135
- package/md_cg/test_preflight_failclosed.py +100 -100
- package/md_cg/test_progressive.py +146 -146
- package/md_cg/test_protocol.py +243 -243
- package/md_cg/test_reach.py +378 -378
- package/md_cg/test_reach_keys.py +201 -201
- package/md_cg/test_read_clip.py +141 -141
- package/md_cg/test_readcache_prodpath.py +155 -0
- package/md_cg/test_retr_gates_prodpath.py +140 -0
- package/md_cg/test_retr_s1.py +340 -340
- package/md_cg/test_retr_s1b.py +209 -209
- package/md_cg/test_retr_s3.py +194 -194
- package/md_cg/test_retr_s4.py +163 -163
- package/md_cg/test_retr_s5.py +200 -200
- package/md_cg/test_retr_s6.py +157 -157
- package/md_cg/test_retr_s7.py +384 -384
- package/md_cg/test_retr_s8_time.py +369 -316
- package/md_cg/test_retr_s9_edges.py +286 -286
- package/md_cg/test_retr_s9_entity_ctx.py +175 -175
- package/md_cg/test_review_conformance.py +367 -367
- package/md_cg/test_role_views.py +354 -354
- package/md_cg/test_sem_noise.py +242 -242
- package/md_cg/test_semantic_canonical.py +241 -241
- package/md_cg/test_subproc_encoding.py +192 -192
- package/md_cg/test_sustain_mutual.py +153 -153
- package/md_cg/test_tasks.py +409 -409
- package/md_cg/test_tool_face.py +189 -189
- package/md_cg/test_transfer.py +180 -180
- package/md_cg/test_trust.py +361 -361
- package/md_cg/test_twophase.py +286 -286
- package/md_cg/test_v14_fixes.py +397 -397
- package/md_cg/test_validity_filter.py +280 -280
- package/md_cg/test_verify_answer.py +138 -138
- package/md_cg/test_wisdom_md_store.py +292 -292
- package/md_cg/test_writelimit.py +197 -197
- package/md_cg/test_writepipe.py +214 -214
- package/md_cg/theory.py +273 -273
- package/md_cg/tokens.py +677 -663
- package/md_cg/tool_face.py +260 -260
- package/md_cg/trust.py +986 -950
- package/md_cg/twophase.py +231 -231
- package/md_cg/units.py +667 -667
- package/md_cg/vision_evidence.py +666 -666
- package/md_cg/weights.py +624 -624
- package/md_cg/whitebox.py +527 -527
- package/md_cg/whitebox_kb/__init__.py +37 -37
- package/md_cg/whitebox_kb/aeis_core/__init__.py +42 -42
- package/md_cg/whitebox_kb/aeis_core/semantic.py +280 -280
- package/md_cg/whitebox_kb/aeis_core/textutil.py +13 -13
- package/md_cg/whitebox_kb/engine.py +310 -310
- package/md_cg/whitebox_kb/seed_knowledge//346/231/272/350/203/275/350/256/2723.4.md +5260 -5260
- package/md_cg/whitebox_kb/wisdom/browser_units.py +2631 -2631
- package/md_cg/whitebox_kb/wisdom/causal_discover.py +432 -432
- package/md_cg/whitebox_kb/wisdom/chat_engine.py +1506 -1506
- package/md_cg/whitebox_kb/wisdom/code_solidified.json +6195 -6195
- package/md_cg/whitebox_kb/wisdom/compiler_code_units.py +3033 -3033
- package/md_cg/whitebox_kb/wisdom/condition_algebra.py +112 -112
- package/md_cg/whitebox_kb/wisdom/condition_frame.py +315 -315
- package/md_cg/whitebox_kb/wisdom/condition_kb.py +108 -108
- package/md_cg/whitebox_kb/wisdom/conflict_map.json +4445 -4445
- package/md_cg/whitebox_kb/wisdom/core/lexer.py +512 -512
- package/md_cg/whitebox_kb/wisdom/core/name_checker.py +1023 -1023
- package/md_cg/whitebox_kb/wisdom/cspmn.py +258 -258
- package/md_cg/whitebox_kb/wisdom/csre.py +264 -264
- package/md_cg/whitebox_kb/wisdom/danmaku_audit.py +252 -252
- package/md_cg/whitebox_kb/wisdom/distilled_condition_units.json +6417 -6417
- package/md_cg/whitebox_kb/wisdom/docs/WB-EVAL-20260902b.json +1950 -1950
- package/md_cg/whitebox_kb/wisdom/docs/WB-EVAL-20260902c.json +1296 -1296
- package/md_cg/whitebox_kb/wisdom/docs/whitebox_capability_graph_demo.json +59 -59
- package/md_cg/whitebox_kb/wisdom/graph_db_units.py +3089 -3089
- package/md_cg/whitebox_kb/wisdom/knowledge_points.py +318 -318
- package/md_cg/whitebox_kb/wisdom/md_access.py +470 -470
- package/md_cg/whitebox_kb/wisdom/md_store.py +276 -251
- package/md_cg/whitebox_kb/wisdom/migrate_wisdom.py +476 -476
- package/md_cg/whitebox_kb/wisdom/navigate.py +248 -248
- package/md_cg/whitebox_kb/wisdom/neural_retrieve.py +224 -224
- package/md_cg/whitebox_kb/wisdom/os_units.py +2735 -2735
- package/md_cg/whitebox_kb/wisdom/pattern_separation.py +376 -376
- package/md_cg/whitebox_kb/wisdom/prereq_map.json +364 -364
- package/md_cg/whitebox_kb/wisdom/python_code_units.py +2766 -2766
- package/md_cg/whitebox_kb/wisdom/role_solidified.json +7 -7
- package/md_cg/whitebox_kb/wisdom/route_memory.py +244 -244
- package/md_cg/whitebox_kb/wisdom/scene_reconstruction.py +148 -148
- package/md_cg/whitebox_kb/wisdom/snr_report.json +40 -40
- package/md_cg/whitebox_kb/wisdom/test_code_compose_domains.py +7541 -7541
- package/md_cg/whitebox_kb/wisdom/test_compiler_self_bootstrap.py +354 -354
- package/md_cg/whitebox_kb/wisdom/test_ecosystem_assembly.py +158 -158
- package/md_cg/whitebox_kb/wisdom/test_ecosystem_demos.py +193 -193
- package/md_cg/whitebox_kb/wisdom/test_graph_db.py +292 -292
- package/md_cg/whitebox_kb/wisdom/test_python_self_bootstrap.py +160 -160
- package/md_cg/whitebox_kb/wisdom/trigger_words_index.json +4366 -4366
- package/md_cg/whitebox_kb/wisdom/verifier.py +1297 -1297
- package/md_cg/writelimit.py +356 -356
- package/md_cg/writepipe.py +550 -542
- package/package.json +97 -96
- package/skills/plugin.json +54 -54
- package/skills/skills/designer-perspective/SKILL.md +158 -158
- package/skills/skills/designer-perspective/references/01-observation-position.md +66 -66
- package/skills/skills/designer-perspective/references/02-structure-recognition.md +62 -62
- package/skills/skills/designer-perspective/references/03-direction-judgment.md +55 -55
- package/skills/skills/designer-perspective/references/04-qualification-verdict.md +72 -72
- package/skills/skills/designer-perspective/references/05-condition-attribution.md +74 -74
- package/skills/skills/designer-perspective/scripts/designer.py +545 -545
- package/skills/skills/designer-perspective/tests/cases.jsonl +17 -17
- package/skills/skills/designer-perspective/tests/selftest.py +61 -61
- package/skills/skills/lingshu-browser/SKILL.md +60 -60
- package/skills/skills/lingshu-compiler/SKILL.md +56 -56
- package/skills/skills/lingshu-compiler/units/analyze-type-infer/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/check-name-real/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-assign/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-expr-tree/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-full-pipeline/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-func-def/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-if-then/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-logic-expr/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-recursive/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-scope/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-type-check/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-while/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0010c4bf/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0355bffb/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0361708a/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-054a0414/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-05a1691a/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-05eeed1e/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0622a1f6/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-08b54217/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0a62b70c/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0ab24d00/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0e093688/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0e82b966/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0ee9b9b9/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0f3787e6/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-1028685f/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-11897630/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-16661b9b/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-1f722303/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-25be1262/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-2a76ba07/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-2dbea54a/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-2df52f16/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-2ec2c9d2/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-2f8c8f39/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-38378ac7/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-39457d2e/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-39fb5926/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-47f4fbfa/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-4a8cd1f1/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-4b230b6b/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-4cbbda95/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-4d5a68ff/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-56dc9bdd/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-57e76ebe/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-61ff016b/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-63eae588/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-64c4224b/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-66377955/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-674ab4f6/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-6af76fd6/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-6d979db2/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-6de326c0/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-6f1c0eea/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-724d6c9b/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-7690177f/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-7b229a7d/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-7f471b3a/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-815cad08/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-83c61634/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-8c798c81/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-8dd747ac/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-90324d0a/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-94b8d72d/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-94f12231/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-95937c16/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-98a5625b/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-98b4c42f/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-98e3894a/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-9bdfe4b8/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-9d9b4e83/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-9f7be5ad/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-a6daf076/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-a7995a0c/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-a8399248/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-aabbd099/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-afe169d8/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-b0678bda/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-b09bd196/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-b1396e23/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-b9b31ce0/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-c10264a7/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-cb1e8e4b/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-ccafd438/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-cda9c262/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-ce648068/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-cf5776a4/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-d974e5d3/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-e3979fd3/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-eb1cf2b5/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-ecb30d5b/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-f8c8b24b/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-f99fedbe/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-fa8ff5f7/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-fe1b058d/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/lex-chinese-program/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/lex-dao-de-jing/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/lex-nine-chapters/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-arithmetic/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-array-ops/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-closure-call/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-closure-create/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-compare/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-cond-jump/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-cond-space/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-exception/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-func-call/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-loop-run/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-profiling/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-refcount/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-run-loop/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-short-circuit/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-stack-guard/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-stack-ops/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-trust-accum/SKILL.md +45 -45
- package/skills/skills/lingshu-graph/SKILL.md +63 -63
- package/skills/skills/lingshu-net/SKILL.md +48 -48
- package/skills/skills/lingshu-os/SKILL.md +64 -64
- package/skills/skills/lingshu-pylang/SKILL.md +71 -71
- package/src/bridge.ts +401 -401
- package/src/hooks.ts +38 -2
- package/src/lib/datapath.ts +326 -326
- package/src/lib/mdcg_client.ts +413 -413
- package/src/lib/mutual.ts +428 -428
- package/src/lib/prompt_safety.ts +62 -62
- package/src/lib/python_path.ts +71 -71
- package/src/lib/roleplay_web.ts +932 -932
- package/src/lib/token_store.ts +192 -192
- package/src/tools.ts +212 -212
- package/zcode/AGENTS.md +11 -3
- package/zcode/README.md +41 -41
- /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)·
|
|
1
|
+
# 工作纪律(工作纪律_认知图条目_v1.1)· 18 条
|
|
2
2
|
|
|
3
3
|
> 本文件由 `scripts/render_discipline.py` 从真源
|
|
4
4
|
> `docs/工作纪律_认知图条目_v1.1.json` 渲染生成,**请勿手改**;改真源后重跑渲染。
|
|
5
|
-
> 真源指纹(SHA256 前16位):
|
|
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` 判为漂移**。
|