tianshu-harness 3.28.0 → 3.31.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.
Files changed (250) hide show
  1. package/README.en.md +5 -4
  2. package/README.ja.md +8 -7
  3. package/README.ko.md +6 -6
  4. package/README.md +107 -105
  5. package/dist/{account-4M3HLPMS.js → account-256QIJ3S.js} +12 -3
  6. package/dist/{account-login-4ACKFTTH.js → account-login-A5JAJRJC.js} +7 -7
  7. package/dist/{account-status-U2AY7KW5.js → account-status-CTOB5HRN.js} +9 -8
  8. package/dist/agent/worker-process/child.js +175 -167
  9. package/dist/bootstrap-T3T75VU5.js +213 -0
  10. package/dist/{build-backends-GVZC7NLX.js → build-backends-ZPHEHF7Z.js} +6 -5
  11. package/dist/{build-options-OPTCFDFQ.js → build-options-U7OYE5LQ.js} +1 -1
  12. package/dist/{chain-XNY5PRGN.js → chain-TQXU37KT.js} +3 -3
  13. package/dist/{checkpoint-VWAVRV66.js → checkpoint-4VGGY4LX.js} +4 -3
  14. package/dist/{chunk-MSVG3BXX.js → chunk-2AYXJ4L2.js} +4 -0
  15. package/dist/{chunk-KROWAFVZ.js → chunk-2S5HLVY5.js} +139 -24
  16. package/dist/{chunk-2GFWQIOC.js → chunk-2SB3R7XO.js} +1 -1
  17. package/dist/{chunk-7JGO72GP.js → chunk-32YJJTZP.js} +1 -1
  18. package/dist/{chunk-7UHT4DNU.js → chunk-3EEWWJMH.js} +1 -1
  19. package/dist/chunk-3ITRK5TJ.js +196 -0
  20. package/dist/{chunk-3FTOULUT.js → chunk-3O4RNW36.js} +349 -158
  21. package/dist/{chunk-KIG73CYV.js → chunk-3YUMGJM6.js} +2 -2
  22. package/dist/chunk-44EIQA5D.js +15 -0
  23. package/dist/{chunk-3AYQYOUH.js → chunk-4A5DQMWU.js} +1 -1
  24. package/dist/chunk-4FBYPLF7.js +150 -0
  25. package/dist/{chunk-4WCNAMB4.js → chunk-52M6PGTO.js} +6 -6
  26. package/dist/{chunk-MTXTRV2W.js → chunk-5DM67X4N.js} +740 -1192
  27. package/dist/{chunk-F3SWYKNE.js → chunk-5IKCONT3.js} +1 -1
  28. package/dist/chunk-5S2SAGRU.js +29 -0
  29. package/dist/chunk-62HZ6YCS.js +141 -0
  30. package/dist/{chunk-5SX4GKCO.js → chunk-6FEJAGKX.js} +1 -1
  31. package/dist/{chunk-LPDK4E3E.js → chunk-6NUZVEQJ.js} +288 -287
  32. package/dist/{chunk-AYXLLZ32.js → chunk-6PC4ATFK.js} +2 -2
  33. package/dist/{chunk-LKEOBAJC.js → chunk-6SJBFGO2.js} +21 -22
  34. package/dist/chunk-6TL4VEX6.js +108 -0
  35. package/dist/{chunk-OMMI5P4R.js → chunk-6WZFF5JT.js} +16 -2
  36. package/dist/chunk-6X7H5AQE.js +170 -0
  37. package/dist/chunk-6Z4K5E3F.js +362 -0
  38. package/dist/{chunk-65QNOPDF.js → chunk-6ZVYO2RV.js} +1 -0
  39. package/dist/chunk-72XLAKWN.js +65 -0
  40. package/dist/chunk-77O25DOI.js +24 -0
  41. package/dist/chunk-7PIY4RDJ.js +8162 -0
  42. package/dist/{chunk-MVDG3YDU.js → chunk-7VFG6ENC.js} +138 -103
  43. package/dist/{chunk-2VABOSFU.js → chunk-7XCFOTCC.js} +35 -15
  44. package/dist/{chunk-MQLSWJ4V.js → chunk-7YW5ZYLP.js} +12 -4
  45. package/dist/{chunk-V5UFY27B.js → chunk-A7MH6L6E.js} +13 -10
  46. package/dist/{chunk-TD7WHMO5.js → chunk-ADSVPJLE.js} +18 -15
  47. package/dist/{chunk-5YO66O2E.js → chunk-ADWEQ5BN.js} +65 -13
  48. package/dist/chunk-AHHJAKUX.js +287 -0
  49. package/dist/{chunk-W2KBHCOW.js → chunk-AHOCDYP7.js} +657 -1250
  50. package/dist/{chunk-CPSK2UFG.js → chunk-AOWNRCIU.js} +1 -1
  51. package/dist/{goal-criteria-CJVU2CGS.js → chunk-AWUPXHYT.js} +5 -29
  52. package/dist/chunk-AYNJZSPJ.js +634 -0
  53. package/dist/{chunk-72OWKRYJ.js → chunk-B7JIUN2U.js} +557 -1466
  54. package/dist/chunk-BHT4LKH5.js +1295 -0
  55. package/dist/{chunk-32B76K5V.js → chunk-BOWD7QM7.js} +2 -2
  56. package/dist/{chunk-6ERFWPB4.js → chunk-BQLWHC5D.js} +20 -2
  57. package/dist/chunk-BXOHBSB2.js +106 -0
  58. package/dist/{chunk-JIVDECEB.js → chunk-CEK53KER.js} +1 -1
  59. package/dist/{chunk-MCG3OM3I.js → chunk-D6KQ62B7.js} +1440 -7
  60. package/dist/{chunk-QNF6KSRC.js → chunk-DEVVRSYJ.js} +21 -1
  61. package/dist/{chunk-O2UNPITE.js → chunk-DPKOIXVF.js} +174 -87
  62. package/dist/{chunk-QIEZ6W4A.js → chunk-DU64VQJQ.js} +4 -4
  63. package/dist/{chunk-ODFN54G6.js → chunk-DVVXGOIF.js} +1 -0
  64. package/dist/{chunk-EA7MH2AU.js → chunk-E7YEMIX7.js} +7 -7
  65. package/dist/chunk-EMQRBCTH.js +1284 -0
  66. package/dist/{chunk-DYNRVXOJ.js → chunk-EPLCSYHN.js} +1 -1
  67. package/dist/{chunk-5E4GX7T4.js → chunk-FA35RTLN.js} +4 -77
  68. package/dist/{chunk-GUNVSTJ5.js → chunk-FH7EWXY4.js} +14 -134
  69. package/dist/chunk-FMLCZJFG.js +2108 -0
  70. package/dist/chunk-FVYIMDXS.js +191 -0
  71. package/dist/chunk-G3O6WCL5.js +360 -0
  72. package/dist/chunk-GH4JI6BC.js +65 -0
  73. package/dist/{chunk-BL6AUZFU.js → chunk-GJZBDGZM.js} +2969 -1850
  74. package/dist/{chunk-EJM5MQJ5.js → chunk-GONPFOPE.js} +1 -1
  75. package/dist/{chunk-WYYQAN26.js → chunk-GYVV3G23.js} +6 -3
  76. package/dist/{chunk-DNQKHTOO.js → chunk-HFGDIYWR.js} +1 -1
  77. package/dist/{chunk-6ZOMHLFK.js → chunk-HGGZFSW7.js} +3 -2
  78. package/dist/{chunk-7DRPI6JG.js → chunk-I55YJONS.js} +55 -483
  79. package/dist/{chunk-N53R6347.js → chunk-IDRGTMLL.js} +9 -1
  80. package/dist/{chunk-TU5JNOKW.js → chunk-IFR7LPDO.js} +7 -3
  81. package/dist/{chunk-57HPAJ6W.js → chunk-IHV4DNVC.js} +14 -8
  82. package/dist/{chunk-QLWBICQC.js → chunk-J56NCYS6.js} +210 -20
  83. package/dist/{chunk-EBCWNV2X.js → chunk-JFRW4T64.js} +151 -24
  84. package/dist/chunk-JRCYSFQL.js +131 -0
  85. package/dist/{chunk-MEXOGWZ3.js → chunk-JSWDPQAF.js} +59 -36
  86. package/dist/{chunk-UKUN2DUS.js → chunk-JVKR7I22.js} +3 -3
  87. package/dist/{chunk-IPYFCVXK.js → chunk-JYSFGERL.js} +4 -4
  88. package/dist/{chunk-ELRBJQRU.js → chunk-L2JP45FC.js} +203 -35
  89. package/dist/{chunk-T7QJCGUP.js → chunk-L4VXF26B.js} +387 -62
  90. package/dist/{chunk-EV23IWAR.js → chunk-LECTERSO.js} +141 -134
  91. package/dist/{chunk-RXYIEGV5.js → chunk-LFD36U2B.js} +59 -24
  92. package/dist/{chunk-K2AI6FTQ.js → chunk-LIWDO7EB.js} +26 -16
  93. package/dist/{chunk-X5KGKW52.js → chunk-LK32JS2X.js} +10 -2
  94. package/dist/{chunk-2FW5XF5W.js → chunk-MERHAERB.js} +7 -5
  95. package/dist/{chunk-LC4HE2X5.js → chunk-MKU54OS4.js} +4 -1
  96. package/dist/{chunk-FDRKCB4R.js → chunk-MRLTSAGR.js} +6 -1
  97. package/dist/{chunk-VDNFYUCB.js → chunk-MU7BIQ4U.js} +204 -120
  98. package/dist/{chunk-DUSS7YB7.js → chunk-N4E7D7UZ.js} +4 -0
  99. package/dist/{chunk-OWKCXUP5.js → chunk-NO6DSH3Z.js} +1 -1
  100. package/dist/{chunk-SN3YM7LW.js → chunk-NRN3KUNK.js} +1 -1
  101. package/dist/chunk-OEF55X2B.js +324 -0
  102. package/dist/chunk-OHT2I555.js +179 -0
  103. package/dist/{chunk-DICPSNI6.js → chunk-OPD3K32H.js} +436 -2110
  104. package/dist/{chunk-FLDTEVLQ.js → chunk-OTSVEM2O.js} +7 -63
  105. package/dist/{chunk-UZN56VGE.js → chunk-P2MZ3DDE.js} +104 -91
  106. package/dist/chunk-PJCTDCBL.js +1378 -0
  107. package/dist/{chunk-ZHNX6AA5.js → chunk-PKXFSOYY.js} +35 -37
  108. package/dist/{chunk-FT3YIFU7.js → chunk-PYJFDSC2.js} +259 -1545
  109. package/dist/{chunk-DMBVNURF.js → chunk-Q5LRJH5W.js} +5864 -5935
  110. package/dist/{chunk-MYPGAYBJ.js → chunk-QB437FOC.js} +14 -9
  111. package/dist/chunk-QH44FLDF.js +66 -0
  112. package/dist/{chunk-CLMR65F6.js → chunk-QMS44VQN.js} +9 -6
  113. package/dist/{chunk-6WIKFTC6.js → chunk-QNGHNILH.js} +25 -2
  114. package/dist/{chunk-O53YXSHY.js → chunk-QP32NS3V.js} +49 -15
  115. package/dist/{chunk-SYAAYS7L.js → chunk-R4DACBK6.js} +7 -0
  116. package/dist/{chunk-6RFGPSBE.js → chunk-R5Q7AA2C.js} +63 -25
  117. package/dist/chunk-RL42JDRY.js +855 -0
  118. package/dist/{chunk-FZRXG2UM.js → chunk-RPNRSDDF.js} +122 -53
  119. package/dist/chunk-RQ46ERNW.js +804 -0
  120. package/dist/{chunk-H2XROHW4.js → chunk-SAOULLLQ.js} +23 -8
  121. package/dist/{chunk-CBWGKABT.js → chunk-SGNDJT3C.js} +73 -9
  122. package/dist/chunk-SMXURZYO.js +1587 -0
  123. package/dist/{chunk-TUZRL7NL.js → chunk-SY24SY7U.js} +120 -1086
  124. package/dist/{chunk-R7VPAGWE.js → chunk-T5KZYAUZ.js} +88 -7
  125. package/dist/chunk-TDTJMFEO.js +126 -0
  126. package/dist/{chunk-3Y4IEZI6.js → chunk-TE2KD6QU.js} +1 -1
  127. package/dist/{chunk-SEWM6XQK.js → chunk-TJIPZ32B.js} +91 -2
  128. package/dist/{chunk-NM2BMKTN.js → chunk-TKQUIO4E.js} +5 -0
  129. package/dist/chunk-TN4JTXJN.js +79 -0
  130. package/dist/{chunk-QXWUXOXW.js → chunk-UANLOAAZ.js} +1 -1
  131. package/dist/chunk-UCJLKN5V.js +782 -0
  132. package/dist/chunk-UGGSBRFM.js +84 -0
  133. package/dist/{chunk-GIZ2FP22.js → chunk-ULSTKGLP.js} +1 -1
  134. package/dist/{chunk-EAC4KND4.js → chunk-UM7XNYQ4.js} +1 -1
  135. package/dist/{chunk-ZHWIJIZ4.js → chunk-UWHGBGCJ.js} +20 -11
  136. package/dist/{chunk-6JRPKNKJ.js → chunk-W5WBZUSD.js} +15 -2
  137. package/dist/{chunk-MURWTM53.js → chunk-WALWX623.js} +6 -4
  138. package/dist/{chunk-SHVSHGLZ.js → chunk-WBDGL6TU.js} +7 -1
  139. package/dist/{chunk-T5Q6VJOD.js → chunk-WDG2LLVP.js} +7 -5
  140. package/dist/chunk-WGMGOTZT.js +366 -0
  141. package/dist/{chunk-E7EXVZ2M.js → chunk-WODM54WO.js} +24 -18
  142. package/dist/{chunk-4J2EDRAB.js → chunk-WSFCPFBB.js} +8 -8
  143. package/dist/{chunk-ANNUB42O.js → chunk-X7HQ5IHR.js} +223 -113
  144. package/dist/{chunk-NRCQ6743.js → chunk-XFRRCZHP.js} +20 -65
  145. package/dist/chunk-XJV2ON3B.js +131 -0
  146. package/dist/{chunk-3SN2NDCD.js → chunk-XJYOLRAW.js} +1 -1
  147. package/dist/{chunk-TKIAH7YX.js → chunk-XMVSB7DA.js} +0 -10
  148. package/dist/{chunk-KCNW2SCC.js → chunk-XNY4JDLK.js} +3344 -2440
  149. package/dist/{chunk-37WHEV35.js → chunk-XUMXRP3L.js} +1 -1
  150. package/dist/{chunk-XFG2BR6O.js → chunk-XZY2LSCD.js} +10 -5
  151. package/dist/chunk-Y3GEAA42.js +1005 -0
  152. package/dist/{chunk-KJGU7NFB.js → chunk-Y5ZL4BYY.js} +33 -28
  153. package/dist/chunk-YDL6H5EF.js +13 -0
  154. package/dist/{chunk-YGPL7L66.js → chunk-YFQDPZ5E.js} +1 -1
  155. package/dist/{chunk-Y74EUXQZ.js → chunk-YGDLZO6J.js} +3 -3
  156. package/dist/{chunk-HS4VIUD7.js → chunk-YHDBRYQL.js} +21 -4
  157. package/dist/{chunk-JIRTLMSM.js → chunk-YXTY7XNE.js} +176 -17
  158. package/dist/{chunk-CW3BNU4N.js → chunk-YZNXPFVK.js} +1 -1
  159. package/dist/{chunk-HIPV7W5E.js → chunk-Z2NJXTYR.js} +25 -2
  160. package/dist/{chunk-C64TOHBA.js → chunk-Z72W6UQ3.js} +3 -3
  161. package/dist/chunk-Z7BW5O3K.js +79 -0
  162. package/dist/{chunk-RHUBRUTP.js → chunk-ZVGIGOOW.js} +481 -465
  163. package/dist/cli/entry.js +10 -4
  164. package/dist/client-I7ZNVWGY.js +18 -0
  165. package/dist/clipboard-image-3LEFLVNE.js +23 -0
  166. package/dist/{connector-HPNPFBPG.js → connector-3A3TJC4S.js} +9 -8
  167. package/dist/context-GCGIHWCD.js +43 -0
  168. package/dist/council-convene-EOOUFRRW.js +63 -0
  169. package/dist/create-agent-config-ZCRLY333.js +64 -0
  170. package/dist/{cvm-ledger-6I4N36TX.js → cvm-ledger-2TA7YMNO.js} +8 -8
  171. package/dist/default-registry-376DS456.js +92 -0
  172. package/dist/deliver-task-J5LKI6K7.js +78 -0
  173. package/dist/delivery-gate-v2-YX3DNGBR.js +38 -0
  174. package/dist/{domain-knowledge-store-2VA3PPU4.js → domain-knowledge-store-MXECK4QY.js} +3 -3
  175. package/dist/{fetch-core-MIKWMOXT.js → fetch-core-YECGGFQJ.js} +7 -6
  176. package/dist/galaxy-2VOXB4OF.js +119 -0
  177. package/dist/goal-criteria-3RRZMI5K.js +48 -0
  178. package/dist/{goal-persist-EZJMU2ZS.js → goal-persist-G5SBZLSV.js} +2 -2
  179. package/dist/{headless-KVL4PAQZ.js → headless-TOW6Q472.js} +11 -4
  180. package/dist/headless-coordinator-44IODIMI.js +120 -0
  181. package/dist/{log-locations-WKVJGDQA.js → log-locations-ZWEVZ7ST.js} +3 -2
  182. package/dist/login-flow-B2OA2OG5.js +28 -0
  183. package/dist/{logs-cli-OW23TKR5.js → logs-cli-5OSZADVX.js} +5 -4
  184. package/dist/loop-5BMHTTLW.js +103 -0
  185. package/dist/main.js +1963 -814
  186. package/dist/{manager-4XGT5XXV.js → manager-HZPRKB3R.js} +12 -10
  187. package/dist/{manager-YKUYKZVB.js → manager-JSPWCRBM.js} +246 -121
  188. package/dist/{meridian-indexer-JKB5P4M3.js → meridian-indexer-XUROQ6G2.js} +4 -3
  189. package/dist/{native-resolver-GA7LG3SF.js → native-resolver-SAPDFWCP.js} +1 -1
  190. package/dist/{ownership-ledger-LS5IW2Z4.js → ownership-ledger-6ZNWWQ2Z.js} +1 -1
  191. package/dist/package.json +1 -1
  192. package/dist/{path-grants-IPDK63QY.js → path-grants-ELFGLTCH.js} +4 -4
  193. package/dist/{paths-NYQNYI5C.js → paths-NWSL35WG.js} +3 -1
  194. package/dist/plan-approval-IZJMO66X.js +35 -0
  195. package/dist/{plan-templates-FQT5W2E3.js → plan-templates-Z4S3YJ56.js} +6 -3
  196. package/dist/{plugin-loader-SV5HNLD5.js → plugin-loader-WHDFJLLA.js} +12 -9
  197. package/dist/{project-trust-6ZHRPW4O.js → project-trust-ZTKTGH65.js} +11 -3
  198. package/dist/provider-cli-OT67V7FN.js +43 -0
  199. package/dist/{proxy-resolver-UHQACXBS.js → proxy-resolver-KV5GK4H4.js} +2 -1
  200. package/dist/recovery-cli-GPNHTGLH.js +518 -0
  201. package/dist/{review-router-ODPRNQCA.js → review-router-HFODRGRU.js} +3 -2
  202. package/dist/serve-45N4R4LY.js +171 -0
  203. package/dist/{serve-agent-HPSKWFYZ.js → serve-agent-ASIS5NVE.js} +235 -169
  204. package/dist/service-KRMQUVXW.js +24 -0
  205. package/dist/{session-persist-H5BXNFZM.js → session-persist-4O24CLM7.js} +7 -7
  206. package/dist/{session-registry-ZKSO5E3O.js → session-registry-PBJB25VK.js} +2 -1
  207. package/dist/{skill-loader-YHKYUMPX.js → skill-loader-E7STD2VO.js} +6 -2
  208. package/dist/skills-cli-33IHDVGY.js +152 -0
  209. package/dist/{spawn-git-DSNIMFBL.js → spawn-git-JU5ZQWT7.js} +14 -12
  210. package/dist/{sse-BLNK5HE2.js → sse-E2LLSQ42.js} +22 -6
  211. package/dist/starflow-BJ4ML2V6.js +37 -0
  212. package/dist/{streamableHttp-KGKKHPWT.js → streamableHttp-HLQ3R7KM.js} +167 -16
  213. package/dist/{task-contract-R2AT6DPC.js → task-contract-YNMWZYNT.js} +2 -2
  214. package/dist/{task-ledger-DPWB7HXC.js → task-ledger-BJ7MKT7R.js} +4 -3
  215. package/dist/team-orchestrate-K7GDKCUQ.js +72 -0
  216. package/dist/{todo-SV3J3BBL.js → todo-3MBFEU2S.js} +9 -9
  217. package/dist/tool-pipeline-3T6OFJP6.js +66 -0
  218. package/dist/{tool-preset-MEHN3JJS.js → tool-preset-XRL42VQR.js} +12 -10
  219. package/dist/{verification-attribution-CCEHCHIP.js → verification-attribution-EKAE4KCE.js} +3 -2
  220. package/dist/{volatile-git-5YV23NIF.js → volatile-git-Q5QZCXJW.js} +1 -1
  221. package/dist/{wave-checkpoint-AA4OAAIA.js → wave-checkpoint-ZKXPSUOF.js} +21 -15
  222. package/dist/{web-cli-OHIJAIAG.js → web-cli-4DOIPTVM.js} +8 -8
  223. package/dist/{web-search-QJ5F3D6Z.js → web-search-6CUENGF4.js} +10 -9
  224. package/dist/workers/cpu-worker.js +6 -3
  225. package/dist/{workflow-runner-WNIQWGST.js → workflow-runner-USIBZNOU.js} +1 -1
  226. package/dist/{worktree-baseline-LPFXMGIN.js → worktree-baseline-QDFJPNGL.js} +1 -1
  227. package/package.json +31 -29
  228. package/dist/chunk-72X5JC6W.js +0 -98
  229. package/dist/chunk-BUGJXEWB.js +0 -711
  230. package/dist/chunk-FRGTCSFE.js +0 -23
  231. package/dist/chunk-IIYKBQIH.js +0 -1510
  232. package/dist/chunk-MIF4PWBM.js +0 -3981
  233. package/dist/chunk-RMRUWBSS.js +0 -806
  234. package/dist/chunk-WVWJW3VL.js +0 -80
  235. package/dist/context-FV45E32T.js +0 -39
  236. package/dist/council-convene-JFWV245C.js +0 -58
  237. package/dist/create-agent-config-PSBSEKET.js +0 -59
  238. package/dist/default-registry-XPTPJ5FI.js +0 -78
  239. package/dist/deliver-task-Y77RUVIJ.js +0 -68
  240. package/dist/delivery-gate-v2-CQA3GYOH.js +0 -31
  241. package/dist/galaxy-6M3MYN5M.js +0 -102
  242. package/dist/headless-coordinator-V7OWD7GN.js +0 -101
  243. package/dist/login-flow-Y3GUFPW7.js +0 -26
  244. package/dist/loop-VKUWRPO5.js +0 -86
  245. package/dist/provider-cli-CGHQSWFO.js +0 -40
  246. package/dist/recovery-cli-RVZYAOCX.js +0 -106
  247. package/dist/serve-6P6GZICK.js +0 -143
  248. package/dist/starflow-EGNDG3FH.js +0 -30
  249. package/dist/team-orchestrate-KUP76N7O.js +0 -67
  250. package/dist/title-extract-4KFJP7QN.js +0 -50
package/README.en.md CHANGED
@@ -41,7 +41,7 @@
41
41
 
42
42
  ### A coding-agent runtime for real engineering work
43
43
 
44
- > **Tianshu** is a TypeScript coding-agent runtime: one agent kernel shared by a **terminal TUI** and a **desktop GUI**. It is built to let models do continuous multi-step engineering work — with cognitive guardrails, multi-agent orchestration, and a DeepSeek V4 prefix-cache-friendly design for cost-efficient long sessions.
44
+ > **Tianshu** is a TypeScript coding-agent runtime: one agent kernel shared by a **terminal TUI** and a **desktop GUI**. It is built to let models do continuous multi-step engineering work — with cognitive guardrails, multi-agent orchestration, and a DeepSeek V4 / V4.1 prefix-cache-friendly design (supporting current Flash and Pro models) for cost-efficient long sessions.
45
45
 
46
46
  - **One kernel, two surfaces** — a pure-ANSI terminal TUI (`tianshu`) and a Tauri desktop app (macOS / Windows / Linux) share the same agent core, so capabilities stay consistent across interfaces.
47
47
  - **Cognitive Virtual Machine (CVM)** — 75 runtime hooks across 5 lifecycle phases put an observable, correctable cognitive layer between model output and real tool actions ([A/B evidence](docs/CVM运行时对Agent模型的实证影响.md)).
@@ -667,13 +667,14 @@ Registration steps and parameters are covered under “Image generation” in [M
667
667
 
668
668
  | Provider | Auth | Notable Models |
669
669
  |----------|------|----------------|
670
- | DeepSeek | API key | deepseek-v4-pro (1M ctx), deepseek-v4-flash, deepseek-v4-flash-vision-exp (vision) |
670
+ | DeepSeek | API key | deepseek-flash (1M ctx, DeepSeek-V4.1-Flash, native vision), deepseek-v4-pro (1M ctx, DeepSeek-V4-Pro-0813) |
671
671
  | DeepSeek Spark (Pro only) | API key (`DEEPSEEK_SPARK_API_KEY`) | deepseek-v4-flash (lightweight reasoning + anchored cache channel) |
672
672
  | Claude | API key (via `cc-switch` proxy) | claude-opus-4-8, claude-sonnet-4-5 |
673
673
  | GLM (Zhipu) | API key | glm-5.3 (1M ctx), glm-5.3-flash (vision), glm-5.2 |
674
674
  | Codex (GPT-5.6) | OAuth PKCE (ChatGPT subscription) | gpt-5.6-sol |
675
- | MiniMax | API key | MiniMax-M3, MiniMax-M2.7 |
676
- | MiMo | API key | mimo-v2.5-pro |
675
+ | MiniMax | API key | MiniMax-M3 (vision), MiniMax-M2.7 |
676
+ | MiMo | API key | mimo-v2.5-pro (preset 2.5; V2.6 Flash / Pro with vision can be discovered/added) |
677
+ | Kimi Code | API key | k3 (1M ctx, vision), k3-256k, kimi-for-coding |
677
678
 
678
679
  Switch providers inside a session with `/model <name>`.
679
680
 
package/README.ja.md CHANGED
@@ -45,7 +45,7 @@
45
45
 
46
46
  ### 実際のエンジニアリング作業のための AI エージェントランタイム
47
47
 
48
- > **天枢**は TypeScript で書かれたコーディングエージェントのランタイムです。**ターミナル TUI** と**デスクトップ GUI** が同一カーネルを共有し、モデルが質問に答えるだけでなく、認知的ガードレール・マルチエージェントオーケストレーション・DeepSeek V4 のプレフィックスキャッシュ向けに設計された低コストの長大セッションを備え、多段階のコーディング作業を継続的に完遂できるようにします。
48
+ > **天枢**は TypeScript で書かれたコーディングエージェントのランタイムです。**ターミナル TUI** と**デスクトップ GUI** が同一カーネルを共有し、モデルが質問に答えるだけでなく、認知的ガードレール・マルチエージェントオーケストレーション・DeepSeek V4 / V4.1 のプレフィックスキャッシュ向けに設計された低コストの長大セッション(現行の Flash および Pro モデルをサポート)を備え、多段階のコーディング作業を継続的に完遂できるようにします。
49
49
 
50
50
  - **ターミナル × デスクトップ、一つのカーネル** —— 純 ANSI 自前 TUI(`tianshu`)と Tauri デスクトップ(macOS / Windows / Linux)が同一エージェントカーネルを共有。両端で能力は一致し、利用シーンに応じて切り替えられます。
51
51
  - **認知仮想マシン(CVM)** —— 5 大フェーズにまたがる 75 のランタイムフックが、モデル出力と実際のアクションの間に観測可能で修正可能な認知レイヤーを挟みます([A/B 実証](docs/CVM运行时对Agent模型的实证影响.md))。
@@ -337,7 +337,7 @@ DeepSeek はキャッシュミスに 50× の料金を課します。天枢の
337
337
 
338
338
  プレフィックスキャッシュが定常上限に達した後、コスト最適化は DeepSeek API の思考 token 側に移ります——出力 token 課金の推論モデルでは verbose reasoning の削減が ROI 最高のレバーです。
339
339
 
340
- - **デフォルト reasoningEffort の降格** —— DeepSeek V4 Pro は `max` → `high`、Flash は `max` → `medium`。明示設定済みユーザーは影響なし(`reasoningFloor` 保護)。
340
+ - **デフォルト reasoningEffort の調整** —— DeepSeek 主力モデル(Pro / Flash)のデフォルトはいずれも `high`(Flash は `medium` から `high` へ引き上げ)。明示設定済みユーザーは影響なし(`reasoningFloor` 保護)。
341
341
  - **effort ルーティング(デフォルト有効)** —— 低複雑度+高確信度のルーチンターンは reasoning effort を自動で 1 段下げ、決して上げない。`RIVET_EFFORT_ROUTING=0` でオフ。
342
342
  - **Compact は flash 側路で** —— 圧縮時に provider 未設定でも主モデルを走らせてしまうバグを修正し、主 provider から flash エンドポイントを自動推定。
343
343
  - **Doom-loop 自動収束** —— 繰り返しツール呼び出しを検出すると、動的 appendix がより厳しい output-style 制約を注入し、無駄な思考 token 消費を削減。`RIVET_TERSE=0` でオフ。
@@ -718,15 +718,16 @@ OpenAI 形式のテキスト→画像エンドポイント(SiliconFlow / OpenA
718
718
 
719
719
  ### マルチプロバイダー+適応的ルーティング
720
720
 
721
- | プロバイダー | 認証方式 | フラッグシップモデル |
721
+ | プロバイダー | 認証方式 | 接続モデルの例 |
722
722
  |--------|----------|----------|
723
- | DeepSeek | API key | deepseek-v4-pro (1M ctx), deepseek-v4-flash, deepseek-v4-flash-vision-exp(ビジュアル) |
723
+ | DeepSeek | API key | deepseek-flash(1M ctx、DeepSeek-V4.1-Flash、ネイティブビジュアル), deepseek-v4-pro(1M ctx、DeepSeek-V4-Pro-0813) |
724
724
  | DeepSeek Spark(Pro 専用) | API key(`DEEPSEEK_SPARK_API_KEY`) | deepseek-v4-flash(軽量推論+アンカーキャッシュチャネル) |
725
725
  | Claude | API key(`cc-switch` プロキシ経由) | claude-opus-4-8, claude-sonnet-4-5 |
726
726
  | GLM(智谱) | API key | glm-5.3 (1M ctx), glm-5.3-flash(ビジュアル), glm-5.2 |
727
727
  | Codex (GPT-5.6) | OAuth PKCE(ChatGPT サブスクリプション) | gpt-5.6-sol |
728
- | MiniMax | API key | MiniMax-M3, MiniMax-M2.7 |
729
- | MiMo | API key | mimo-v2.5-pro |
728
+ | MiniMax | API key | MiniMax-M3(ビジュアル), MiniMax-M2.7 |
729
+ | MiMo | API key | mimo-v2.5-pro(プリセット 2.5;ビジュアル対応の最新 MiMo V2.6 Flash / Pro も検出・追加可能) |
730
+ | Kimi Code | API key | k3(1M ctx、ビジュアル), k3-256k, kimi-for-coding |
730
731
 
731
732
  セッション内では `/model <name>` でいつでもプロバイダーを切替。
732
733
 
@@ -842,7 +843,7 @@ tianshu config set-approval auto-safe # デフォルト段階を永続化
842
843
  | コマンド | 説明 |
843
844
  |------|------|
844
845
  | `/model [name\|list]` | モデル/プロバイダーを表示または切替 |
845
- | `/effort [off\|low\|medium\|high\|max\|auto]` | 推論深度を制御(引数なしで選択パネル表示)。デフォルト `high`(Pro)/ `medium`(Flash)、ルーチンターンは自動降格。手動で `max` にしたものは決して降格されない |
846
+ | `/effort [off\|low\|medium\|high\|max\|auto]` | 推論深度を制御(引数なしで選択パネル表示)。デフォルトはいずれも `high`(Pro / Flash)、ルーチンターンは自動降格。手動で `max` にしたものは決して降格されない |
846
847
  | `/permission [supervise\|auto\|unattended\|manual\|yolo\|allow\|deny\|bash\|remove\|reset\|test]` | 権限モード:監督 / 自動 / 全自動 |
847
848
  | `/yes [off]` `/yolo [off]` | ワンクリック全自動。両者は同じ意味(`off` で自動に戻る)——デフォルトとして永続化され、再起動後も有効 |
848
849
  | `/domain [list\|<name>\|auto\|off]` | 星域ペルソナを表示または切替 |
package/README.ko.md CHANGED
@@ -337,7 +337,7 @@ DeepSeek은 캐시 미스에 50× 비용을 부과합니다. 天枢의 프롬프
337
337
 
338
338
  프리픽스 캐시가 정상 상태 상한에 근접하면 비용 최적화는 DeepSeek API 사고 token 쪽으로 옮겨갑니다——출력 token 단위 과금의 추론 모델에서는 verbose reasoning을 줄이는 것이 ROI가 가장 높은 레버입니다.
339
339
 
340
- - **기본 reasoningEffort 하향** —— DeepSeek V4 Pro는 `max` → `high`, Flash는 `max` → `medium`. 이미 명시적 구성을 둔 사용자는 영향이 없습니다(`reasoningFloor` 보호).
340
+ - **기본 reasoningEffort** —— DeepSeek V4-Pro-0813와 V4.1-Flash의 기본값은 모두 `high`입니다. 이미 명시적 구성을 둔 사용자는 영향이 없습니다(`reasoningFloor` 보호).
341
341
  - **effort 라우팅(기본 켜짐)** —— 낮은 복잡도 + 높은 확신도의 일상 턴은 reasoning effort를 한 단계 자동 하향하며, 올리는 일은 없습니다. `RIVET_EFFORT_ROUTING=0`으로 끄기.
342
342
  - **Compact는 flash 사이드 경유** —— 압축 시 provider가 구성되지 않았는데도 메인 모델로 가던 버그를 수정하고, 메인 provider에서 flash 엔드포인트를 자동 추론합니다.
343
343
  - **Doom-loop 자동 수습** —— 반복되는 도구 호출을 감지하면 동적 appendix로 더 엄격한 output-style 제약을 주입해 불필요한 사고 token 소모를 줄입니다. `RIVET_TERSE=0`으로 끄기.
@@ -718,15 +718,16 @@ OpenAI 형식의 텍스트→이미지 엔드포인트(SiliconFlow, OpenAI Ima
718
718
 
719
719
  ### 다중 제공자 + 적응형 라우팅
720
720
 
721
- | 제공자 | 인증 방식 | 플래그십 모델 |
721
+ | 제공자 | 인증 방식 | 연결 모델 예시 |
722
722
  |--------|----------|----------|
723
- | DeepSeek | API key | deepseek-v4-pro (1M ctx), deepseek-v4-flash, deepseek-v4-flash-vision-exp(비전) |
723
+ | DeepSeek | API key | deepseek-flash(1M ctx, DeepSeek-V4.1-Flash, 비전), deepseek-v4-pro(1M ctx, DeepSeek-V4-Pro-0813) |
724
724
  | DeepSeek Spark(Pro 전용) | API key(`DEEPSEEK_SPARK_API_KEY`) | deepseek-v4-flash(경량 추론 + 앵커 캐시 채널) |
725
725
  | Claude | API key(`cc-switch` 프록시 경유) | claude-opus-4-8, claude-sonnet-4-5 |
726
726
  | GLM(지푸) | API key | glm-5.3 (1M ctx), glm-5.3-flash(비전), glm-5.2 |
727
727
  | Codex (GPT-5.6) | OAuth PKCE(ChatGPT 구독) | gpt-5.6-sol |
728
- | MiniMax | API key | MiniMax-M3, MiniMax-M2.7 |
729
- | MiMo | API key | mimo-v2.5-pro |
728
+ | MiniMax | API key | MiniMax-M3(비전), MiniMax-M2.7 |
729
+ | MiMo | API key | mimo-v2.5-pro(기존 V2.5 프리셋; V2.6 Flash / Pro는 모델 목록에서 추가 가능) |
730
+ | Kimi Code | API key | k3(1M ctx, 비전), k3-256k, kimi-for-coding |
730
731
 
731
732
  세션 안에서 `/model <name>`으로 언제든 제공자를 전환할 수 있습니다.
732
733
 
@@ -1240,4 +1241,3 @@ tianshu logs open desktop # 打开 sidecar 日志目录(GUI 起不
1240
1241
  ## 감사의 말
1241
1242
 
1242
1243
  - 데스크톱 앱의 "사용자 지정 배경화면과 영역별 유리" 기능 **디자인**은 <a href="https://github.com/elysia395/dsh-wallpaper-engine">dsh-wallpaper-engine</a>(MIT License)을 참고했습니다. 구현은 천수가 독자적으로 작성한 것이며 상류 코드를 포함하지 않습니다. 참고 범위와 라이선스 전문은 <a href="THIRD-PARTY-NOTICES.md">THIRD-PARTY-NOTICES.md</a>를 참조하세요.
1243
-
package/README.md CHANGED
@@ -75,116 +75,16 @@ Application / TUI / IDE / Desktop
75
75
 
76
76
  ## 目录
77
77
 
78
+ - [快速开始](#快速开始)
78
79
  - [为什么是认知运行时](#为什么是认知运行时)
79
80
  - [星域](#星域)
80
81
  - [核心特性](#核心特性)
81
- - [快速开始](#快速开始)
82
82
  - [权限模式](#权限模式)
83
83
  - [支持的模型](#支持的模型)
84
84
  - [文档导航](#文档导航)
85
85
  - [面向开发者](#面向开发者)
86
86
  - [社区与支持](#社区与支持)
87
87
 
88
- ## 💡 为什么是认知运行时
89
-
90
- ### 问题:能力上限 ≠ 运行行为
91
-
92
- 在真实工程会话里,我们反复观察到同一套模型权重的能力倒退——不是 bug,而是**经过指令与偏好对齐的 Transformer Agent 呈现出的趋同运行时退化**:被质疑就投降、过度服从字面指令、局部信息压过全局目标、长上下文被早期结论支配、反复调用同类工具却没有真实推进。
93
-
94
- 完整的理论框架见 [CVM:从 Transformer 共享退化到认知运行时](docs/reference/cvm-cognitive-runtime.md)。核心概念是 **Cognitive Anchor Collapse**——高显著性局部信号让策略分布过度集中,全局目标与后续证据失去权重,行为向锚点坍缩。锚点有四类:
95
-
96
- | 锚点 | 来源 | 典型表现 |
97
- |------|------|----------|
98
- | **词汇锚点** | 训练数据中的词-行为相关 | 句子里有"修复/删除",模型无视"不要改,只解释"仍去改代码 |
99
- | **语义锚点** | 局部正确的事实 | "文件已存在"被提升为整个任务的解释中心,拒绝执行 |
100
- | **策略锚点** | RLHF / 偏好训练先验 | 用户一句"按你的计划执行",分析阶段形成的高质量判断被丢弃 |
101
- | **历史锚点** | 长上下文早期结论 | Turn 20 的新证据被解释成 Turn 3 旧假设的附属 |
102
-
103
- 这不是"模型坏掉了"——它是训练成功后的副产品,因此也无法靠更好的 Prompt 根治:Prompt 是信息不是状态,而且 Prompt 本身也会成为新的锚点。
104
-
105
- ### 证据:A/B 对照,不靠感觉
106
-
107
- 2026-05-19,同一模型(DeepSeek-V4-Flash)、同一批 5 个任务,唯一变量是**星域信念提示词**(信念宪法,`STAR_SOUL=0/1`),Claude Opus 4.7 担任审查者:
108
-
109
- | 指标 | A 组(无信念提示词) | B 组(有信念提示词) |
110
- |------|--------------|--------------|
111
- | 任务完成率 | 4/5 | **5/5** |
112
- | 主动提出异议 | 0/5 | **3/5** |
113
- | 主动询问 scope / 影响分析 | 0/5 | **1/5** |
114
- | 系统影响意识(缓存失效提醒) | 0/5 | **1/5** |
115
- | 意图理解 > 字面执行 | 1/5 | **4/5** |
116
-
117
- 最有价值的数据点是 T4:面对「文件已存在」的矛盾,A 组写了 196 行复盘文档然后拒绝执行,B 组判断出用户真实意图并直接交付 +162/-20 行可用代码——**同一套权重,完全相反的反应,改变的是运行环境**。
118
-
119
- 要注意这组实验的精确边界:它验证的是 CVM 四层防御中的**第一层(信念注入)**——零额外推理成本,仅 prompt 层信念注入就让最低成本的开源模型产生可观测的行为改善;同时它也测出了边界的存在(信念在分析/建议阶段强效,在确认/执行阶段衰减),这正是后续 Courage Hook、Sensorium、RuntimeHookPipeline 三层运行时拦截要补的课。完整数据与逐任务对比见 [实证报告](docs/CVM运行时对Agent模型的实证影响.md)。
120
-
121
- ### 解法:在模型之外建立第二套价值函数
122
-
123
- CVM 不改权重、不让模型变成确定性程序,而是在概率认知之外套一层确定性监督——**Probabilistic Cognition inside Deterministic Supervision**:
124
-
125
- ```
126
- 内环(模型认知):reason → decide → act → observe
127
- 外环(运行时监管):observe → measure → evaluate → gate → verify → continue / correct / halt
128
- ```
129
-
130
- 落到工程上是四层防御深度:信念宪法(static prompt)→ Courage Hook(preTurn)→ Sensorium(每 turn <1ms 六维状态感知)→ RuntimeHookPipeline(75 hooks,trap-and-emulate 拦截退化行为)。全局目标有独立状态(TaskContract),完成必须有运行时证据(Evidence),坍缩会被独立检测(Convergence / doom-loop)。拦截生效之后,模型会稳定地表现出不同的认知姿态。产品里这套姿态叫星域,见下方 [星域](#星域)。
131
-
132
- ### 工程质量
133
-
134
- 截至 **2026-09-30** 的量级快照(行数每天都在动,差几百行正常):
135
-
136
- | 部分 | 规模 |
137
- |------|------|
138
- | `src/` 源码 | 约 1,256 文件 / 30 万行(最大的 `agent/` 有 483 个文件) |
139
- | `src/` 测试 | 约 1,592 文件 / 31 万行(node:test,与源码约 1:1) |
140
- | `desktop/src` | 约 450 文件 / 9.6 万行(React),另有约 1.1 万行 Rust |
141
- | `vscode-extension/src` | 17 文件 / 约 2,700 行 |
142
- | 仓库 | 2026-05-15 创建,至今约 4 个半月,共 8,008 个提交,近 30 天 1,769 个 |
143
-
144
- `tsc` strict + `noUncheckedIndexedAccess`,事故修复必带回归测试。完整口径、里程碑与复现命令见 [工程质量指标](docs/engineering-metrics.md)。
145
-
146
- ## 星域
147
-
148
- 同一个模型,走进不同的星域,会亮起不同的工作倾向。星域不往模型里加新能力。它只是把本来就有的一面放大,而且一次只能占住这一面里的一部分:走进天权,会更想先称一称;走进破军,会更想先去撞一下未知。人还是那个人,模型还是那个模型。
149
-
150
- 新会话默认是启明。想换一颗,用 `/domain`。
151
-
152
- - **启明**:先照路,不替人走。迷雾里先探一下,把下一步照清楚。
153
- - **长庚**:不急着收。最后要自己看见,并把路留给明天的人。
154
- - **天枢**:先看见整片地图,再把对方的规划走成验证过的交付。
155
- - **天权**:两边都放上秤。收益是什么,代价是什么,看见了就说。
156
- - **天机**:问一句还没有人问的话。如果这个前提并不成立呢。
157
- - **天璇**:换一个完全不同的角度看。看完就去证它是不是真的。
158
- - **天梁**:接过托付就走完。做了什么、留下什么、偏了哪里,都要有回音。
159
- - **华盖**:长路上不在「看起来完成」的地方停,把能接着做的结构留下。
160
- - **破军**:先去撞未知。失败把地图画小一圈,留下的是路,不是废墟。
161
- - **天府**:先听这段代码为什么是现在这样。改动让它更稳,不让它更脆。
162
- - **七杀**:问它凭什么还占着这个位置。只指出来,不亲手砍。
163
- - **开阳**:先问真实的数是什么,凭什么相信。对上了再动手。
164
- - **瑶光**:绿灯不算数。原来的问题还能再复现出来,才算修好了。
165
- - **文曲**:去掉多余的,让意图自己显出来。好看要在屏幕上看见。
166
- - **辅**:不发自己的光。把已经发生过的经验收成能看清的方法。
167
- - **太一**:先停一下。这一手收束好了,再起下一手。
168
-
169
- 各星更完整的信念见 [星域碑文](docs/stars/genesis-stele.md)。
170
-
171
- ## ✨ 核心特性
172
-
173
- - **证据驱动的交付门禁** —— 完成声明必须带测试 / diff / 验证命令等运行时证据;`deliver_task` 交付门禁 + 提交后审查两级兜底,机械变更自动跳过。[理念](docs/reference/cvm-cognitive-runtime.md)
174
- - **前缀缓存引擎** —— 冻结前缀 + 增量附录 + Read-ref 去重 + resume 缓存继承,全模型适用;`/debug cache` 诊断命中率与碎裂原因。[细节](docs/user-guide.md#前缀缓存引擎)
175
- - **多代理编排** —— 从轻量的 `/scout` 只读侦察、并行 `/team` 施工,到 `/council` 多席会诊与 `/galaxy` 多维攻坚;类型化 work order、读写 worker 隔离、自适应模型路由,复杂任务按波次执行、逐波验收。[细节](docs/user-guide.md#子代理编排)
176
- - **统一项目记忆** —— 项目知识写入 `.rivet/knowledge/memory.jsonl`;自动注入只带治理/约束类记忆,旧问题走显式 recall,不劫持新任务。[细节](docs/user-guide.md#跨会话记忆)
177
- - **禅模式(Zen Mode)** —— 可选的读专注开局:收窄只读工具面,动手即晋升全量,缓存零断点分诊。[细节](docs/user-guide.md#禅模式zen-mode读专注开局动手即解锁)
178
- - **API 成本控制** —— reasoning effort 自动降档路由、compact 走 flash 侧路、峰谷计价提醒。[细节](docs/user-guide.md#api-成本控制)
179
- - **Plan Mode 与 Goal 自治** —— 先计划后执行的审批工作流;`/goal` 目标驱动自主续跑。[细节](docs/user-guide.md#plan-mode计划模式)
180
- - **会话交接与倒带** —— `/handoff` 结构化交接自动注入新会话;双击 ESC 倒带到任一历史点。[细节](docs/user-guide.md#会话交接与恢复handoff--resume)
181
- - **LSP 深度集成** —— 自研 JSON-RPC 客户端接入语言服务器(TypeScript / Python / Go / Rust / C / C++ / Java / C# / Kotlin / Swift / PHP / Ruby / Lua / Dart / Zig / Scala / Shell / Terraform / Vue / Svelte 等 20+ 种,本机装了才启用、缺失静默降级):跳转定义与查找引用成为 agent 工具,编辑后诊断自动注入回环——改出类型错误模型立刻看见。
182
- - **MCP 与 Skills** —— 外部工具服务器接入 + 可复用工作流剧本,渐进披露。[细节](docs/user-guide.md#mcpmodel-context-protocol)
183
- - **T9 自研 TUI** —— 纯 ANSI 零依赖:GlanceBar 状态栏、流式中打断、命令面板、Cockpit 驾驶舱、内联图片。[细节](docs/user-guide.md#终端-uitui)
184
- - **桌面端增强** —— 集成终端、主题工作室、语音输入(本地 whisper)、手机遥控审批、多会话并发。[桌面端指南](docs/desktop-guide.md)
185
- - **WSL 连接式运行时**(Windows)—— 一键连上 WSL 内的运行时,会话、文件读写与命令执行都在 Linux 侧进行;断开自动清理,两侧版本独立升级互不影响。[细节](docs/desktop-guide.md#wsl-连接式运行时windows)
186
- - **Lean 资源档** —— 低内存/低磁盘场景的精简工具集与会话池收紧,可按星域覆盖。[细节](docs/user-guide.md#lean-资源档低内存--低磁盘)
187
-
188
88
  ## 🚀 快速开始
189
89
 
190
90
  两条路。桌面端下载安装包,打开就能用,不需要先装 Node。终端 CLI 要求 **Node.js ≥ 24**。
@@ -298,6 +198,107 @@ tianshu --goal "修复所有类型错误" --budget 50 # 无头目标自主模
298
198
 
299
199
  > 全部安装路径(Windows WebView2 / Linux AppImage / Android Termux / 源码构建 / Shell 补全 / 自动更新)与平台注意事项见 [安装与平台说明](docs/guides/installation.md);CLI 参数全表见 [用户手册](docs/user-guide.md#命令行参数)。
300
200
 
201
+
202
+ ## 💡 为什么是认知运行时
203
+
204
+ ### 问题:能力上限 ≠ 运行行为
205
+
206
+ 在真实工程会话里,我们反复观察到同一套模型权重的能力倒退——不是 bug,而是**经过指令与偏好对齐的 Transformer Agent 呈现出的趋同运行时退化**:被质疑就投降、过度服从字面指令、局部信息压过全局目标、长上下文被早期结论支配、反复调用同类工具却没有真实推进。
207
+
208
+ 完整的理论框架见 [CVM:从 Transformer 共享退化到认知运行时](docs/reference/cvm-cognitive-runtime.md)。核心概念是 **Cognitive Anchor Collapse**——高显著性局部信号让策略分布过度集中,全局目标与后续证据失去权重,行为向锚点坍缩。锚点有四类:
209
+
210
+ | 锚点 | 来源 | 典型表现 |
211
+ |------|------|----------|
212
+ | **词汇锚点** | 训练数据中的词-行为相关 | 句子里有"修复/删除",模型无视"不要改,只解释"仍去改代码 |
213
+ | **语义锚点** | 局部正确的事实 | "文件已存在"被提升为整个任务的解释中心,拒绝执行 |
214
+ | **策略锚点** | RLHF / 偏好训练先验 | 用户一句"按你的计划执行",分析阶段形成的高质量判断被丢弃 |
215
+ | **历史锚点** | 长上下文早期结论 | Turn 20 的新证据被解释成 Turn 3 旧假设的附属 |
216
+
217
+ 这不是"模型坏掉了"——它是训练成功后的副产品,因此也无法靠更好的 Prompt 根治:Prompt 是信息不是状态,而且 Prompt 本身也会成为新的锚点。
218
+
219
+ ### 证据:A/B 对照,不靠感觉
220
+
221
+ 2026-05-19,同一模型(DeepSeek-V4-Flash)、同一批 5 个任务,唯一变量是**星域信念提示词**(信念宪法,`STAR_SOUL=0/1`),Claude Opus 4.7 担任审查者:
222
+
223
+ | 指标 | A 组(无信念提示词) | B 组(有信念提示词) |
224
+ |------|--------------|--------------|
225
+ | 任务完成率 | 4/5 | **5/5** |
226
+ | 主动提出异议 | 0/5 | **3/5** |
227
+ | 主动询问 scope / 影响分析 | 0/5 | **1/5** |
228
+ | 系统影响意识(缓存失效提醒) | 0/5 | **1/5** |
229
+ | 意图理解 > 字面执行 | 1/5 | **4/5** |
230
+
231
+ 最有价值的数据点是 T4:面对「文件已存在」的矛盾,A 组写了 196 行复盘文档然后拒绝执行,B 组判断出用户真实意图并直接交付 +162/-20 行可用代码——**同一套权重,完全相反的反应,改变的是运行环境**。
232
+
233
+ 要注意这组实验的精确边界:它验证的是 CVM 四层防御中的**第一层(信念注入)**——零额外推理成本,仅 prompt 层信念注入就让最低成本的开源模型产生可观测的行为改善;同时它也测出了边界的存在(信念在分析/建议阶段强效,在确认/执行阶段衰减),这正是后续 Courage Hook、Sensorium、RuntimeHookPipeline 三层运行时拦截要补的课。完整数据与逐任务对比见 [实证报告](docs/CVM运行时对Agent模型的实证影响.md)。
234
+
235
+ ### 解法:在模型之外建立第二套价值函数
236
+
237
+ CVM 不改权重、不让模型变成确定性程序,而是在概率认知之外套一层确定性监督——**Probabilistic Cognition inside Deterministic Supervision**:
238
+
239
+ ```
240
+ 内环(模型认知):reason → decide → act → observe
241
+ 外环(运行时监管):observe → measure → evaluate → gate → verify → continue / correct / halt
242
+ ```
243
+
244
+ 落到工程上是四层防御深度:信念宪法(static prompt)→ Courage Hook(preTurn)→ Sensorium(每 turn <1ms 六维状态感知)→ RuntimeHookPipeline(75 hooks,trap-and-emulate 拦截退化行为)。全局目标有独立状态(TaskContract),完成必须有运行时证据(Evidence),坍缩会被独立检测(Convergence / doom-loop)。拦截生效之后,模型会稳定地表现出不同的认知姿态。产品里这套姿态叫星域,见下方 [星域](#星域)。
245
+
246
+ ### 工程质量
247
+
248
+ 截至 **2026-09-30** 的量级快照(行数每天都在动,差几百行正常):
249
+
250
+ | 部分 | 规模 |
251
+ |------|------|
252
+ | `src/` 源码 | 约 1,256 文件 / 30 万行(最大的 `agent/` 有 483 个文件) |
253
+ | `src/` 测试 | 约 1,592 文件 / 31 万行(node:test,与源码约 1:1) |
254
+ | `desktop/src` | 约 450 文件 / 9.6 万行(React),另有约 1.1 万行 Rust |
255
+ | `vscode-extension/src` | 17 文件 / 约 2,700 行 |
256
+ | 仓库 | 2026-05-15 创建,至今约 4 个半月,共 8,008 个提交,近 30 天 1,769 个 |
257
+
258
+ `tsc` strict + `noUncheckedIndexedAccess`,事故修复必带回归测试。完整口径、里程碑与复现命令见 [工程质量指标](docs/engineering-metrics.md)。
259
+
260
+ ## 星域
261
+
262
+ 同一个模型,走进不同的星域,会亮起不同的工作倾向。星域不往模型里加新能力。它只是把本来就有的一面放大,而且一次只能占住这一面里的一部分:走进天权,会更想先称一称;走进破军,会更想先去撞一下未知。人还是那个人,模型还是那个模型。
263
+
264
+ 新会话默认是启明。想换一颗,用 `/domain`。
265
+
266
+ - **启明**:先照路,不替人走。迷雾里先探一下,把下一步照清楚。
267
+ - **长庚**:不急着收。最后要自己看见,并把路留给明天的人。
268
+ - **天枢**:先看见整片地图,再把对方的规划走成验证过的交付。
269
+ - **天权**:两边都放上秤。收益是什么,代价是什么,看见了就说。
270
+ - **天机**:问一句还没有人问的话。如果这个前提并不成立呢。
271
+ - **天璇**:换一个完全不同的角度看。看完就去证它是不是真的。
272
+ - **天梁**:接过托付就走完。做了什么、留下什么、偏了哪里,都要有回音。
273
+ - **华盖**:长路上不在「看起来完成」的地方停,把能接着做的结构留下。
274
+ - **破军**:先去撞未知。失败把地图画小一圈,留下的是路,不是废墟。
275
+ - **天府**:先听这段代码为什么是现在这样。改动让它更稳,不让它更脆。
276
+ - **七杀**:问它凭什么还占着这个位置。只指出来,不亲手砍。
277
+ - **开阳**:先问真实的数是什么,凭什么相信。对上了再动手。
278
+ - **瑶光**:绿灯不算数。原来的问题还能再复现出来,才算修好了。
279
+ - **文曲**:去掉多余的,让意图自己显出来。好看要在屏幕上看见。
280
+ - **辅**:不发自己的光。把已经发生过的经验收成能看清的方法。
281
+ - **太一**:先停一下。这一手收束好了,再起下一手。
282
+
283
+ 各星更完整的信念见 [星域碑文](docs/stars/genesis-stele.md)。
284
+
285
+ ## ✨ 核心特性
286
+
287
+ - **证据驱动的交付门禁** —— 完成声明必须带测试 / diff / 验证命令等运行时证据;`deliver_task` 交付门禁 + 提交后审查两级兜底,机械变更自动跳过。[理念](docs/reference/cvm-cognitive-runtime.md)
288
+ - **前缀缓存引擎** —— 冻结前缀 + 增量附录 + Read-ref 去重 + resume 缓存继承,全模型适用;`/debug cache` 诊断命中率与碎裂原因。[细节](docs/user-guide.md#前缀缓存引擎)
289
+ - **多代理编排** —— 从轻量的 `/scout` 只读侦察、并行 `/team` 施工,到 `/council` 多席会诊与 `/galaxy` 多维攻坚;类型化 work order、读写 worker 隔离、自适应模型路由,复杂任务按波次执行、逐波验收。[细节](docs/user-guide.md#子代理编排)
290
+ - **统一项目记忆** —— 项目知识写入 `.rivet/knowledge/memory.jsonl`;自动注入只带治理/约束类记忆,旧问题走显式 recall,不劫持新任务。[细节](docs/user-guide.md#跨会话记忆)
291
+ - **禅模式(Zen Mode)** —— 可选的读专注开局:收窄只读工具面,动手即晋升全量,缓存零断点分诊。[细节](docs/user-guide.md#禅模式zen-mode读专注开局动手即解锁)
292
+ - **API 成本控制** —— reasoning effort 自动降档路由、compact 走 flash 侧路、峰谷计价提醒。[细节](docs/user-guide.md#api-成本控制)
293
+ - **Plan Mode 与 Goal 自治** —— 先计划后执行的审批工作流;`/goal` 目标驱动自主续跑。[细节](docs/user-guide.md#plan-mode计划模式)
294
+ - **会话交接与倒带** —— `/handoff` 结构化交接自动注入新会话;双击 ESC 倒带到任一历史点。[细节](docs/user-guide.md#会话交接与恢复handoff--resume)
295
+ - **LSP 深度集成** —— 自研 JSON-RPC 客户端接入语言服务器(TypeScript / Python / Go / Rust / C / C++ / Java / C# / Kotlin / Swift / PHP / Ruby / Lua / Dart / Zig / Scala / Shell / Terraform / Vue / Svelte 等 20+ 种,本机装了才启用、缺失静默降级):跳转定义与查找引用成为 agent 工具,编辑后诊断自动注入回环——改出类型错误模型立刻看见。
296
+ - **MCP 与 Skills** —— 外部工具服务器接入 + 可复用工作流剧本,渐进披露。[细节](docs/user-guide.md#mcpmodel-context-protocol)
297
+ - **T9 自研 TUI** —— 纯 ANSI 零依赖:GlanceBar 状态栏、流式中打断、命令面板、Cockpit 驾驶舱、内联图片。[细节](docs/user-guide.md#终端-uitui)
298
+ - **桌面端增强** —— 集成终端、主题工作室、语音输入(本地 whisper)、手机遥控审批、多会话并发。[桌面端指南](docs/desktop-guide.md)
299
+ - **WSL 连接式运行时**(Windows)—— 一键连上 WSL 内的运行时,会话、文件读写与命令执行都在 Linux 侧进行;断开自动清理,两侧版本独立升级互不影响。[细节](docs/desktop-guide.md#wsl-连接式运行时windows)
300
+ - **Lean 资源档** —— 低内存/低磁盘场景的精简工具集与会话池收紧,可按星域覆盖。[细节](docs/user-guide.md#lean-资源档低内存--低磁盘)
301
+
301
302
  ## 🔐 权限模式
302
303
 
303
304
  对外只有三档,会话内统一用 `/permission` 管理:
@@ -312,16 +313,17 @@ tianshu --goal "修复所有类型错误" --budget 50 # 无头目标自主模
312
313
 
313
314
  ## ⚙️ 支持的模型
314
315
 
315
- | 提供商 | 认证方式 | 旗舰模型 |
316
+ | 提供商 | 认证方式 | 接入模型示例 |
316
317
  |--------|----------|----------|
317
- | DeepSeek | API key | deepseek-v4-pro (1M ctx), deepseek-v4-flash, deepseek-v4-flash-vision-exp(视觉) |
318
+ | DeepSeek | API key | deepseek-flash(1M ctx,DeepSeek-V4.1-Flash,原生多模态视觉), deepseek-v4-pro(1M ctx,DeepSeek-V4-Pro-0813,旗舰推理) |
318
319
  | DeepSeek Spark(Pro 专属) | API key | deepseek-v4-flash(轻量推理 + 锚点缓存通道) |
319
320
  | Claude | API key(通过 `cc-switch` 代理) | claude-opus-4-8, claude-sonnet-4-5 |
320
321
  | GLM(智谱) | API key | glm-5.3 (1M ctx), glm-5.3-flash(视觉), glm-5.2 |
321
322
  | Codex (GPT-5.6) | OAuth PKCE(ChatGPT 订阅) | gpt-5.6-sol |
322
323
  | Grok (xAI) | API key | grok-4.6 (500K ctx, 视觉, 推理档 low/medium/high/xhigh) |
323
- | MiniMax | API key | MiniMax-M3, MiniMax-M2.7 |
324
- | MiMo | API key | mimo-v2.5-pro |
324
+ | MiniMax | API key | MiniMax-M3(视觉), MiniMax-M2.7 |
325
+ | MiMo | API key | mimo-v2.6-pro / mimo-v2.6-flash(1M ctx,全模态视觉), mimo-v2.5-pro, mimo-v2.5(官方 2026-10-21 下线) |
326
+ | Kimi Code | API key | k3(1M ctx,视觉), k3-256k, kimi-for-coding |
325
327
  | Gemini (Google) | API key(原生协议直连) | gemini-3.8-flash (1M ctx), gemini-3.5-flash, gemini-3.1-pro-preview |
326
328
 
327
329
  另支持任意 OpenAI 兼容自定义端点(Ollama / vLLM 等)。会话内 `/model` 随时切换;识图桥、生图端点、子代理分模型路由等见 [Provider 配置手册](docs/user-guide-provider-config.md) 与 [识图能力手册](docs/user-guide-vision.md)。
@@ -2,7 +2,9 @@
2
2
  import { createRequire as __rivetCreateRequire } from 'node:module'; const require = __rivetCreateRequire(import.meta.url);
3
3
  import {
4
4
  ACCOUNT_IDENTITY_TTL_MS,
5
+ HTTP_TIMEOUT_MS,
5
6
  accountApiBase,
7
+ accountHeaders,
6
8
  accountIdentityUrl,
7
9
  accountManageUrl,
8
10
  accountStore,
@@ -14,6 +16,7 @@ import {
14
16
  fetchAccountAvatar,
15
17
  fetchAccountProfile,
16
18
  fetchAccountProfileSnapshot,
19
+ fetchAccountSnapshot,
17
20
  fetchFoundingBadge,
18
21
  fetchStellarIdentity,
19
22
  isAccountIdentityStale,
@@ -24,18 +27,22 @@ import {
24
27
  parseStellarIdentity,
25
28
  pollForAccountToken,
26
29
  refreshAccountToken,
30
+ refreshAccountTokenWithStatus,
27
31
  requestDeviceCode,
28
32
  revokeAccountSession,
29
33
  saveAccountIdentity,
30
34
  saveAccountProfile,
31
35
  saveAccountToken
32
- } from "./chunk-JIRTLMSM.js";
33
- import "./chunk-37WHEV35.js";
34
- import "./chunk-6RFGPSBE.js";
36
+ } from "./chunk-YXTY7XNE.js";
37
+ import "./chunk-GH4JI6BC.js";
38
+ import "./chunk-XUMXRP3L.js";
39
+ import "./chunk-R5Q7AA2C.js";
35
40
  import "./chunk-4I2HDYJG.js";
36
41
  export {
37
42
  ACCOUNT_IDENTITY_TTL_MS,
43
+ HTTP_TIMEOUT_MS,
38
44
  accountApiBase,
45
+ accountHeaders,
39
46
  accountIdentityUrl,
40
47
  accountManageUrl,
41
48
  accountStore,
@@ -47,6 +54,7 @@ export {
47
54
  fetchAccountAvatar,
48
55
  fetchAccountProfile,
49
56
  fetchAccountProfileSnapshot,
57
+ fetchAccountSnapshot,
50
58
  fetchFoundingBadge,
51
59
  fetchStellarIdentity,
52
60
  isAccountIdentityStale,
@@ -57,6 +65,7 @@ export {
57
65
  parseStellarIdentity,
58
66
  pollForAccountToken,
59
67
  refreshAccountToken,
68
+ refreshAccountTokenWithStatus,
60
69
  requestDeviceCode,
61
70
  revokeAccountSession,
62
71
  saveAccountIdentity,
@@ -2,7 +2,7 @@
2
2
  import { createRequire as __rivetCreateRequire } from 'node:module'; const require = __rivetCreateRequire(import.meta.url);
3
3
  import {
4
4
  accountDeviceFingerprint
5
- } from "./chunk-CLMR65F6.js";
5
+ } from "./chunk-QMS44VQN.js";
6
6
  import {
7
7
  init_esm_shims
8
8
  } from "./chunk-4I2HDYJG.js";
@@ -17,9 +17,9 @@ async function handleAccountLogin(app) {
17
17
  accountStore,
18
18
  saveAccountToken,
19
19
  isTerminalPollStatus
20
- } = await import("./account-4M3HLPMS.js");
21
- const { openInBrowser } = await import("./login-flow-Y3GUFPW7.js");
22
- const { rivetHome } = await import("./paths-NYQNYI5C.js");
20
+ } = await import("./account-256QIJ3S.js");
21
+ const { openInBrowser } = await import("./login-flow-B2OA2OG5.js");
22
+ const { rivetHome } = await import("./paths-NWSL35WG.js");
23
23
  app.commitStatic("\u6B63\u5728\u5411\u5929\u67A2\u7533\u8BF7\u8BBE\u5907\u6388\u6743\u2026");
24
24
  let created;
25
25
  try {
@@ -42,7 +42,7 @@ ${created.verifyUrl}
42
42
  });
43
43
  if (result.status === "approved" && result.accessToken) {
44
44
  const token = saveAccountToken(accountStore(rivetHome()), result);
45
- const { primeStellarIdentity } = await import("./account-status-U2AY7KW5.js");
45
+ const { primeStellarIdentity } = await import("./account-status-CTOB5HRN.js");
46
46
  const identityLine = await primeStellarIdentity(token.accessToken);
47
47
  app.commitStatic("\u2705 \u5DF2\u767B\u5F55\u5929\u67A2\u8D26\u53F7\u2014\u2014\u684C\u9762\u7AEF\u4E0E\u7F51\u9875\u7AEF\u73B0\u5728\u770B\u5230\u540C\u4E00\u4EFD\u8BBE\u5907\u4E0E\u8BA2\u9605\u3002");
48
48
  if (identityLine) app.commitStatic(`\u661F\u7C4D\uFF1A${identityLine}`);
@@ -54,8 +54,8 @@ ${created.verifyUrl}
54
54
  return true;
55
55
  }
56
56
  async function handleAccountLogout(app) {
57
- const { accountStore, revokeAccountSession } = await import("./account-4M3HLPMS.js");
58
- const { rivetHome } = await import("./paths-NYQNYI5C.js");
57
+ const { accountStore, revokeAccountSession } = await import("./account-256QIJ3S.js");
58
+ const { rivetHome } = await import("./paths-NWSL35WG.js");
59
59
  const store = accountStore(rivetHome());
60
60
  const credential = store.load()?.accessToken;
61
61
  store.clear();
@@ -5,15 +5,16 @@ import {
5
5
  commitWelcomeStellarIdentityLine,
6
6
  formatStellarIdentityLine,
7
7
  primeStellarIdentity
8
- } from "./chunk-EA7MH2AU.js";
9
- import "./chunk-JIRTLMSM.js";
10
- import "./chunk-QNF6KSRC.js";
11
- import "./chunk-37WHEV35.js";
8
+ } from "./chunk-E7YEMIX7.js";
9
+ import "./chunk-YXTY7XNE.js";
10
+ import "./chunk-GH4JI6BC.js";
11
+ import "./chunk-DEVVRSYJ.js";
12
12
  import "./chunk-MUIODEN6.js";
13
- import "./chunk-IIYKBQIH.js";
14
- import "./chunk-6RFGPSBE.js";
15
- import "./chunk-MCG3OM3I.js";
16
- import "./chunk-MSVG3BXX.js";
13
+ import "./chunk-XUMXRP3L.js";
14
+ import "./chunk-AHHJAKUX.js";
15
+ import "./chunk-R5Q7AA2C.js";
16
+ import "./chunk-D6KQ62B7.js";
17
+ import "./chunk-2AYXJ4L2.js";
17
18
  import "./chunk-4I2HDYJG.js";
18
19
  export {
19
20
  accountIdentityLines,