tianshu-harness 3.24.0 → 3.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/README.en.md +53 -2
  2. package/README.ja.md +18 -1
  3. package/README.ko.md +18 -1
  4. package/README.md +53 -4
  5. package/dist/{account-OAEKORZE.js → account-6EQLFSZP.js} +11 -1
  6. package/dist/{account-login-FJYDGZ7D.js → account-login-WJXVFKCA.js} +6 -6
  7. package/dist/{account-status-GQBCUTXB.js → account-status-UHF4OXT7.js} +3 -3
  8. package/dist/agent/worker-process/child.js +61 -59
  9. package/dist/{build-backends-I2WKCCU5.js → build-backends-3U4ZJHWF.js} +3 -3
  10. package/dist/{chain-FYKBOYRC.js → chain-ULQVMWCK.js} +3 -2
  11. package/dist/{checkpoint-MND4DUIX.js → checkpoint-MHV22C3Y.js} +2 -2
  12. package/dist/{chunk-L2RI3QEW.js → chunk-2IRQOJIB.js} +1 -1
  13. package/dist/{chunk-HUBNFDV3.js → chunk-2MG6J2TE.js} +331 -120
  14. package/dist/{chunk-SUJERP5I.js → chunk-2R6T7UUG.js} +16 -8
  15. package/dist/{chunk-5PJ24C3V.js → chunk-337JKKFJ.js} +6 -6
  16. package/dist/{chunk-ZO3I3A7O.js → chunk-35OLL4BN.js} +55 -3
  17. package/dist/{chunk-RS3SD2AD.js → chunk-3G5H52SZ.js} +3 -3
  18. package/dist/{chunk-XZ6BMISO.js → chunk-3HBJSIN6.js} +22 -10
  19. package/dist/{chunk-LH5VCGLB.js → chunk-4S5W77SM.js} +6 -4
  20. package/dist/{chunk-VU3LIY7Y.js → chunk-4U7AHZYW.js} +1 -1
  21. package/dist/{chunk-AEWHC4WM.js → chunk-543PS4CP.js} +161 -1
  22. package/dist/{chunk-3CZLTKD3.js → chunk-54BOYE4J.js} +2 -2
  23. package/dist/{chunk-WBBA3AHA.js → chunk-54NBHF3U.js} +8 -8
  24. package/dist/{chunk-D4XOMBWV.js → chunk-6ZD77TF7.js} +176 -76
  25. package/dist/{chunk-4EUTXGNM.js → chunk-75WLEQMG.js} +40 -15
  26. package/dist/{chunk-2KOY6BE3.js → chunk-7DN2SGTQ.js} +1 -1
  27. package/dist/{chunk-6FQV7XDJ.js → chunk-7JOI4AOR.js} +1 -1
  28. package/dist/chunk-ADK6OD5V.js +104 -0
  29. package/dist/{chunk-GMKAXSYQ.js → chunk-B5WBNTBA.js} +1 -1
  30. package/dist/{chunk-UM5YRM4D.js → chunk-BSXDL2R2.js} +17 -106
  31. package/dist/{chunk-QEWIDRNY.js → chunk-C25SW723.js} +1 -1
  32. package/dist/{chunk-HBVF6BWO.js → chunk-CBUQN32I.js} +4 -0
  33. package/dist/{chunk-YJG5HIX5.js → chunk-DKFH4TDX.js} +1 -1
  34. package/dist/{chunk-FW3QKMFX.js → chunk-DTYYBHDD.js} +6 -5
  35. package/dist/{chunk-PKWVEHA2.js → chunk-EXEJWRDH.js} +9 -7
  36. package/dist/chunk-FAYHO63O.js +2121 -0
  37. package/dist/{chunk-TVJO4SCJ.js → chunk-FUAU2JT6.js} +21 -5
  38. package/dist/{chunk-SS5A5ZOD.js → chunk-G3TX7BJQ.js} +1 -1
  39. package/dist/{chunk-N4KGRYVB.js → chunk-GNR5XP4X.js} +5 -3
  40. package/dist/{chunk-MPX7Z4KQ.js → chunk-GZOQFWMP.js} +24 -1
  41. package/dist/{chunk-4FEPWT5X.js → chunk-IGL6KULT.js} +1 -1
  42. package/dist/{chunk-LLYOUH6U.js → chunk-JCJISUVA.js} +5 -5
  43. package/dist/{chunk-TPI73L57.js → chunk-JMDXQTIY.js} +13 -2
  44. package/dist/{chunk-ETHFACAB.js → chunk-JQL6WFIR.js} +0 -16
  45. package/dist/{chunk-JSS75KCG.js → chunk-JXQ7HTSA.js} +856 -856
  46. package/dist/{chunk-BCQXEZPJ.js → chunk-JXVN7D4K.js} +10 -0
  47. package/dist/{chunk-SINZOIBW.js → chunk-KAKVKCFM.js} +1 -1
  48. package/dist/{chunk-OMMC3KNF.js → chunk-KLNHZCDF.js} +1 -1
  49. package/dist/{chunk-ENDZ5AQB.js → chunk-L4JLW76X.js} +2 -2
  50. package/dist/{chunk-AJPWMSWO.js → chunk-LSZS63ID.js} +130 -41
  51. package/dist/{chunk-TINTPE52.js → chunk-MIFFP6OL.js} +16 -16
  52. package/dist/{chunk-EZT7EFS7.js → chunk-MIMKTISI.js} +8 -6
  53. package/dist/{chunk-K2W6L3EV.js → chunk-MVA6DYSB.js} +66 -2161
  54. package/dist/{chunk-VSUFQQQW.js → chunk-O53IR3O3.js} +1 -1
  55. package/dist/{chunk-3BRZMBTX.js → chunk-OJPWKC7U.js} +1 -1
  56. package/dist/{chunk-HV4YGVMS.js → chunk-P46RYAGV.js} +1 -1
  57. package/dist/{chunk-7RDOV3DF.js → chunk-QEVWRN4C.js} +1 -1
  58. package/dist/{chunk-IBCC4M6B.js → chunk-QPZJ6W7G.js} +53 -51
  59. package/dist/{chunk-NR3LAYJ7.js → chunk-QRJ3MQGD.js} +1 -1
  60. package/dist/{chunk-YRPOGMJW.js → chunk-RGGCAU2W.js} +8 -8
  61. package/dist/{chunk-P6GJOVO6.js → chunk-RMLYK7Q5.js} +1 -1
  62. package/dist/{chunk-QCEY3WDB.js → chunk-T5SIV74T.js} +30 -17
  63. package/dist/{chunk-4RRJIE3M.js → chunk-T6GCGEZS.js} +2 -2
  64. package/dist/{chunk-HO4O3QTA.js → chunk-TLIAWAQL.js} +2 -2
  65. package/dist/{chunk-6QMCBQ52.js → chunk-UHCQCY43.js} +5 -5
  66. package/dist/{chunk-A74OHMQE.js → chunk-VNQ2WUL6.js} +3 -3
  67. package/dist/{chunk-BZPTZYOH.js → chunk-VZSX5WGB.js} +437 -498
  68. package/dist/{chunk-72OR3KCJ.js → chunk-W3JDWYRM.js} +5 -5
  69. package/dist/{chunk-JHVIITGR.js → chunk-WTHXUY5P.js} +2 -2
  70. package/dist/{chunk-DR5VASYC.js → chunk-WUF5IOFK.js} +1 -1
  71. package/dist/{chunk-YQJ2GF2E.js → chunk-X2L4XBEB.js} +2 -2
  72. package/dist/{chunk-X2PGKNNX.js → chunk-X2VRZHNQ.js} +690 -326
  73. package/dist/{chunk-INUPBFOY.js → chunk-XVU7F45F.js} +1 -1
  74. package/dist/{chunk-MI5FRZEQ.js → chunk-XXJNFKOR.js} +16 -66
  75. package/dist/{chunk-NWJFB7ZI.js → chunk-Y3JPYVML.js} +366 -127
  76. package/dist/chunk-Y52MV6TV.js +778 -0
  77. package/dist/{chunk-LJJXY43L.js → chunk-YHUVE2TT.js} +97 -18
  78. package/dist/{chunk-IESISKUX.js → chunk-ZXDKN6SJ.js} +3 -3
  79. package/dist/cli/entry.js +2 -2
  80. package/dist/{connector-ZC33K6GD.js → connector-LHW64OVN.js} +2 -2
  81. package/dist/{context-2YC7D3J3.js → context-3CVR5JWQ.js} +14 -11
  82. package/dist/{council-convene-IAQ4YP64.js → council-convene-7YLO3P5P.js} +23 -23
  83. package/dist/{create-agent-config-R5TBBFH3.js → create-agent-config-NPDRX6KW.js} +21 -20
  84. package/dist/{default-registry-66WZEF7D.js → default-registry-KQJWOA6P.js} +30 -29
  85. package/dist/{deliver-task-3NHRNTXS.js → deliver-task-OEXOCROO.js} +22 -22
  86. package/dist/{delivery-gate-v2-FHGG2CSI.js → delivery-gate-v2-HOUL7I5N.js} +10 -9
  87. package/dist/{fetch-core-RRVZTH75.js → fetch-core-R6XAVA7D.js} +3 -2
  88. package/dist/{galaxy-RTGODYYQ.js → galaxy-PLDTYFRK.js} +38 -38
  89. package/dist/{goal-criteria-TKDOWDN3.js → goal-criteria-ARVREL3C.js} +15 -13
  90. package/dist/{headless-coordinator-TGYOTZTL.js → headless-coordinator-OLWPWAWH.js} +39 -39
  91. package/dist/{login-flow-X6QJ2JZ6.js → login-flow-YU6YFEQM.js} +7 -6
  92. package/dist/{logs-cli-SQVYFMMN.js → logs-cli-CV2U5P5U.js} +3 -3
  93. package/dist/{loop-O5VMCC3D.js → loop-DIGHKKQB.js} +31 -32
  94. package/dist/main.js +89 -87
  95. package/dist/{manager-X6GVRTFN.js → manager-63GGIJ56.js} +8 -7
  96. package/dist/{manager-I2O2QKWC.js → manager-RTAPPV5E.js} +6 -5
  97. package/dist/{path-grants-XRRXHXG7.js → path-grants-YZLFQEHX.js} +6 -4
  98. package/dist/{paths-LVV5IMQN.js → paths-PZCXDIBR.js} +5 -1
  99. package/dist/{plan-templates-5FPFBOL6.js → plan-templates-42MSU325.js} +1 -1
  100. package/dist/{plugin-loader-7VGM6OI4.js → plugin-loader-R2RMNUCI.js} +6 -6
  101. package/dist/{project-trust-XZ2NIDIY.js → project-trust-AWUEO7FF.js} +2 -2
  102. package/dist/{provider-cli-HFQ4U3US.js → provider-cli-QPIOIO3V.js} +17 -15
  103. package/dist/{serve-SJ3ZRCCG.js → serve-7TKTOCXG.js} +66 -64
  104. package/dist/{serve-agent-EVRAOELG.js → serve-agent-PIHODPEW.js} +75 -69
  105. package/dist/{session-persist-HUUC772H.js → session-persist-X3OLC7GR.js} +3 -4
  106. package/dist/{spawn-git-VQGDCYIN.js → spawn-git-UWFSEHK2.js} +8 -7
  107. package/dist/{starflow-MLZKTJJG.js → starflow-QRM2QSR6.js} +11 -11
  108. package/dist/{task-contract-6XHBNJQK.js → task-contract-WNYKYAEE.js} +2 -2
  109. package/dist/{team-orchestrate-AMPI4ST4.js → team-orchestrate-JSJUG2OV.js} +22 -22
  110. package/dist/{todo-QBYIZPPV.js → todo-G5WOYTPJ.js} +4 -3
  111. package/dist/{tool-preset-6HUAFR3V.js → tool-preset-OCX6BWOQ.js} +6 -5
  112. package/dist/{verification-attribution-EKG4CNUV.js → verification-attribution-SEAN6IQT.js} +5 -3
  113. package/dist/{wave-checkpoint-LVNQD4UZ.js → wave-checkpoint-XX4UEBBH.js} +9 -9
  114. package/dist/{web-cli-ALQSU7BW.js → web-cli-JUJ4ACYC.js} +52 -42
  115. package/dist/{web-search-QB64C3F3.js → web-search-ZEQ63NWS.js} +7 -6
  116. package/dist/{workflow-runner-HX7UBAYG.js → workflow-runner-LEK7JG5K.js} +1 -1
  117. package/package.json +2 -1
  118. package/dist/chunk-4H4TVBEJ.js +0 -429
package/README.en.md CHANGED
@@ -26,6 +26,7 @@
26
26
  <img src="https://img.shields.io/badge/License-Apache%202.0-3B5BDB?style=for-the-badge&logo=apache" alt="License">
27
27
  <img src="https://img.shields.io/badge/TypeScript-Strict-blue?style=for-the-badge&logo=typescript" alt="TypeScript">
28
28
  <img src="https://img.shields.io/badge/Tests-16%2C000%2B%20Passed-green?style=for-the-badge&logo=testinglibrary" alt="Tests">
29
+ <a href="https://discord.gg/XjWTATCHB"><img src="https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Discord"></a>
29
30
  </p>
30
31
 
31
32
  ---
@@ -216,6 +217,37 @@ tianshu # or: npm start / node dist/cli/entry.js
216
217
 
217
218
  You should see the TUI with a `〉` prompt. Type your request and press Enter.
218
219
 
220
+ ### Your first task
221
+
222
+ Start with a **read-only** pass so it can learn your project (nothing gets modified):
223
+
224
+ ```
225
+ Read this project and tell me its structure, where the entry points are, and one thing most worth improving
226
+ ```
227
+
228
+ Once you trust its reading, give it a **multi-step task**:
229
+
230
+ ```
231
+ Fix the first failing test in this project and explain the root cause
232
+ ```
233
+
234
+ From there it greps, reads files, edits code and runs tests on its own — every step shows up as a tool call, nothing is just claimed. The default approval tier is **Auto**: low-risk actions run directly, high-risk ones stop and ask (see [Approval & Permissions](#approval--permissions)).
235
+
236
+ ### What to look at afterwards
237
+
238
+ **① Delivery report** — when the run wraps up, Tianshu calls `deliver_task` and prints a delivery report: gate state (GREEN / YELLOW / RED), which files changed, which verifications ran, and a per-item completion audit. "Done" requires evidence; a finish without evidence gets blocked by the gate.
239
+
240
+ **② Cockpit** — type `/cockpit` to open it (also reachable from the `Ctrl+P` command palette):
241
+
242
+ | Panel | What it shows |
243
+ |-------|---------------|
244
+ | `/cockpit verify` | Delivery verification: verified / unverified / failed / blocked, which commands ran, blast radius |
245
+ | `/cockpit advisory` | Runtime advisory ledger: rendered / adopted / ignored, plus per-key adoption rate and lift |
246
+ | `/cockpit model` | Cache hit rate, input/output tokens, per-turn cost |
247
+ | `/cockpit safety` | Risk level and doom-loop detection |
248
+
249
+ No argument gives the summary view; `/cockpit off` closes it.
250
+
219
251
  ### Headless mode (script integration)
220
252
 
221
253
  ```bash
@@ -1013,13 +1045,27 @@ Write only the fields you want to override; defaults are deep-merged. Full schem
1013
1045
  ## 🤝 Community & Support
1014
1046
 
1015
1047
  - **Usage questions / discussions** → [GitHub Discussions](https://github.com/huiliyi37/Tianshu-harness/discussions)
1048
+ - **Discord community** → [Join the Tianshu Harness Discord](https://discord.gg/XjWTATCHB)
1016
1049
  - **Bug reports / feature requests** → [GitHub Issues](https://github.com/huiliyi37/Tianshu-harness/issues)
1017
1050
  - **Security vulnerabilities** → [Report privately](https://github.com/huiliyi37/Tianshu-harness/security/advisories/new) (do not open a public issue)
1018
1051
  - **Contributing** → See [CONTRIBUTING.md](CONTRIBUTING.md)
1019
- - **Support guide** → See [SUPPORT.md](SUPPORT.md)
1052
+ - **Support guide** → See SUPPORT.md
1053
+ - **WeChat group** → 「天枢 harness 交流群」 — scan the QR code below to join (QR codes expire every 7 days; leave a note in Discussions once expired):
1054
+
1055
+ <img src="docs/brand/assets/wechat-group-qr.png" width="280" alt="Tianshu Harness WeChat group QR code">
1020
1056
 
1021
1057
  > Note: a maintainer needs to enable Discussions in `Settings → General → Discussions` first.
1022
1058
 
1059
+ ## ⭐ Star History
1060
+
1061
+ <a href="https://star-history.com/#huiliyi37/tianshu-harness&Date">
1062
+ <picture>
1063
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=huiliyi37/tianshu-harness&type=Date&theme=dark" />
1064
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=huiliyi37/tianshu-harness&type=Date" />
1065
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=huiliyi37/tianshu-harness&type=Date" width="700" />
1066
+ </picture>
1067
+ </a>
1068
+
1023
1069
  ## ☕ Support
1024
1070
 
1025
1071
  If Tianshu has been useful and you'd like to say thanks, you can. It stays a coffee, not a contract — donations don't buy feature priority or change how issues get triaged.
@@ -1036,7 +1082,7 @@ Thank you to everyone who has contributed to Tianshu (ordered by first contribut
1036
1082
  |-------------|---------------|
1037
1083
  | [@huiliyi37](https://github.com/huiliyi37) | Project creator · Core development |
1038
1084
 
1039
- Full list (20 external contributors / 122 PRs) → CONTRIBUTORS.md.
1085
+ Full list (22 external contributors / 145 PRs) → CONTRIBUTORS.md.
1040
1086
 
1041
1087
  External PRs land via a "port" flow; authorship is credited with `Co-authored-by`
1042
1088
  trailers (auto-recorded by scripts/credit-contributors.sh) — contributor wall (full list in CONTRIBUTORS.md):
@@ -1059,6 +1105,11 @@ trailers (auto-recorded by scripts/credit-contributors.sh) — contributor wall
1059
1105
  <a href="https://github.com/nzz0991999-ai"><img src="https://github.com/nzz0991999-ai.png?size=100" width="50" height="50" alt="nzz0991999-ai" title="nzz0991999-ai" /></a>
1060
1106
  <a href="https://github.com/L4XB"><img src="https://github.com/L4XB.png?size=100" width="50" height="50" alt="L4XB" title="L4XB" /></a>
1061
1107
  <a href="https://github.com/Wanming08"><img src="https://github.com/Wanming08.png?size=100" width="50" height="50" alt="Wanming08" title="Wanming08" /></a>
1108
+ <a href="https://github.com/lei454577-web"><img src="https://github.com/lei454577-web.png?size=100" width="50" height="50" alt="lei454577-web" title="lei454577-web" /></a>
1109
+ <a href="https://github.com/jian-in"><img src="https://github.com/jian-in.png?size=100" width="50" height="50" alt="jian-in" title="jian-in" /></a>
1110
+ <a href="https://github.com/sky-mirrors"><img src="https://github.com/sky-mirrors.png?size=100" width="50" height="50" alt="sky-mirrors" title="sky-mirrors" /></a>
1111
+ <a href="https://github.com/moyan3691"><img src="https://github.com/moyan3691.png?size=100" width="50" height="50" alt="moyan3691" title="moyan3691" /></a>
1112
+ <a href="https://github.com/EarthxxRhythm"><img src="https://github.com/EarthxxRhythm.png?size=100" width="50" height="50" alt="EarthxxRhythm" title="EarthxxRhythm" /></a>
1062
1113
  </p>
1063
1114
 
1064
1115
  > Contributions are welcome — see CONTRIBUTING.md.
package/README.ja.md CHANGED
@@ -30,6 +30,7 @@
30
30
  <img src="https://img.shields.io/badge/License-Apache%202.0-3B5BDB?style=for-the-badge&logo=apache" alt="License">
31
31
  <img src="https://img.shields.io/badge/TypeScript-Strict-blue?style=for-the-badge&logo=typescript" alt="TypeScript">
32
32
  <img src="https://img.shields.io/badge/Tests-16%2C000%2B%20Passed-green?style=for-the-badge&logo=testinglibrary" alt="Tests">
33
+ <a href="https://discord.gg/XjWTATCHB"><img src="https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Discord"></a>
33
34
  </p>
34
35
 
35
36
  ---
@@ -1155,6 +1156,7 @@ tianshu logs open desktop # sidecar ログディレクトリを開く
1155
1156
  ## 🤝 コミュニティとサポート
1156
1157
 
1157
1158
  - **使い方の質問 / ディスカッション** → [GitHub Discussions](https://github.com/huiliyi37/Tianshu-harness/discussions)
1159
+ - **Discord コミュニティ** → [「天枢 tianshu-harness 官方交流群」に参加](https://discord.gg/XjWTATCHB)
1158
1160
  - **バグ報告 / 機能リクエスト** → [GitHub Issues](https://github.com/huiliyi37/Tianshu-harness/issues)
1159
1161
  - **セキュリティ脆弱性** → [プライベート報告](https://github.com/huiliyi37/Tianshu-harness/security/advisories/new)(公開 issue を開かないでください)
1160
1162
  - **コードへのコントリビュート** → [CONTRIBUTING.md](CONTRIBUTING.md) を参照
@@ -1175,7 +1177,7 @@ tianshu logs open desktop # sidecar ログディレクトリを開く
1175
1177
  |--------|----------|
1176
1178
  | [@huiliyi37](https://github.com/huiliyi37) | プロジェクト創設者 · コア開発 |
1177
1179
 
1178
- 完全なリスト(外部コントリビューター 20 名 / 122 PR)→ CONTRIBUTORS.md。
1180
+ 完全なリスト(外部コントリビューター 22 名 / 145 PR)→ CONTRIBUTORS.md。
1179
1181
 
1180
1182
  外部 PR は「取り込み(收编)」フローでマージされ、著者署名は `Co-authored-by` で
1181
1183
  コントリビューターグラフに計上されます(scripts/credit-contributors.sh が自動記録)——
@@ -1199,10 +1201,25 @@ tianshu logs open desktop # sidecar ログディレクトリを開く
1199
1201
  <a href="https://github.com/nzz0991999-ai"><img src="https://github.com/nzz0991999-ai.png?size=100" width="50" height="50" alt="nzz0991999-ai" title="nzz0991999-ai" /></a>
1200
1202
  <a href="https://github.com/L4XB"><img src="https://github.com/L4XB.png?size=100" width="50" height="50" alt="L4XB" title="L4XB" /></a>
1201
1203
  <a href="https://github.com/Wanming08"><img src="https://github.com/Wanming08.png?size=100" width="50" height="50" alt="Wanming08" title="Wanming08" /></a>
1204
+ <a href="https://github.com/lei454577-web"><img src="https://github.com/lei454577-web.png?size=100" width="50" height="50" alt="lei454577-web" title="lei454577-web" /></a>
1205
+ <a href="https://github.com/jian-in"><img src="https://github.com/jian-in.png?size=100" width="50" height="50" alt="jian-in" title="jian-in" /></a>
1206
+ <a href="https://github.com/sky-mirrors"><img src="https://github.com/sky-mirrors.png?size=100" width="50" height="50" alt="sky-mirrors" title="sky-mirrors" /></a>
1207
+ <a href="https://github.com/moyan3691"><img src="https://github.com/moyan3691.png?size=100" width="50" height="50" alt="moyan3691" title="moyan3691" /></a>
1208
+ <a href="https://github.com/EarthxxRhythm"><img src="https://github.com/EarthxxRhythm.png?size=100" width="50" height="50" alt="EarthxxRhythm" title="EarthxxRhythm" /></a>
1202
1209
  </p>
1203
1210
 
1204
1211
  > PR でのコントリビュート歓迎。詳細は CONTRIBUTING.md を参照。
1205
1212
 
1213
+ ## ⭐ スター履歴
1214
+
1215
+ <a href="https://star-history.com/#huiliyi37/tianshu-harness&Date">
1216
+ <picture>
1217
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=huiliyi37/tianshu-harness&type=Date&theme=dark" />
1218
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=huiliyi37/tianshu-harness&type=Date" />
1219
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=huiliyi37/tianshu-harness&type=Date" width="700" />
1220
+ </picture>
1221
+ </a>
1222
+
1206
1223
  ## ☕ スポンサー支援
1207
1224
 
1208
1225
  天枢が役に立ったなら、気軽に投げ銭をどうぞ——これは一杯のコーヒーであり、契約ではありません。スポンサーは issue の優先度を変えず、機能スケジュールにも影響しません。
package/README.ko.md CHANGED
@@ -30,6 +30,7 @@
30
30
  <img src="https://img.shields.io/badge/License-Apache%202.0-3B5BDB?style=for-the-badge&logo=apache" alt="License">
31
31
  <img src="https://img.shields.io/badge/TypeScript-Strict-blue?style=for-the-badge&logo=typescript" alt="TypeScript">
32
32
  <img src="https://img.shields.io/badge/Tests-16%2C000%2B%20Passed-green?style=for-the-badge&logo=testinglibrary" alt="Tests">
33
+ <a href="https://discord.gg/XjWTATCHB"><img src="https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Discord"></a>
33
34
  </p>
34
35
 
35
36
  ---
@@ -1157,6 +1158,7 @@ tianshu logs open desktop # 打开 sidecar 日志目录(GUI 起不
1157
1158
  ## 🤝 커뮤니티와 지원
1158
1159
 
1159
1160
  - **사용 문제 / 토론** → [GitHub Discussions](https://github.com/huiliyi37/Tianshu-harness/discussions)
1161
+ - **Discord 커뮤니티** → [Tianshu Harness Discord 참여](https://discord.gg/XjWTATCHB)
1160
1162
  - **버그 리포트 / 기능 요청** → [GitHub Issues](https://github.com/huiliyi37/Tianshu-harness/issues)
1161
1163
  - **보안 취약점** → [비공개 보고](https://github.com/huiliyi37/Tianshu-harness/security/advisories/new)(공개 issue를 열지 말 것)
1162
1164
  - **코드 기여** → [CONTRIBUTING.md](CONTRIBUTING.md) 참조
@@ -1177,7 +1179,7 @@ tianshu logs open desktop # 打开 sidecar 日志目录(GUI 起不
1177
1179
  |--------|----------|
1178
1180
  | [@huiliyi37](https://github.com/huiliyi37) | 프로젝트 창시자 · 핵심 개발 |
1179
1181
 
1180
- 전체 목록(외부 기여자 20명 / 122 PR)→ CONTRIBUTORS.md
1182
+ 전체 목록(외부 기여자 22명 / 145 PR)→ CONTRIBUTORS.md
1181
1183
 
1182
1184
  외부 PR은「이식(收编)」절차로 병합되며, 저자 서명은 `Co-authored-by`로 기여자 그래프에
1183
1185
  반영됩니다(scripts/credit-contributors.sh 가 자동 기록)——기여자 월(전체 목록은 CONTRIBUTORS.md):
@@ -1200,10 +1202,25 @@ tianshu logs open desktop # 打开 sidecar 日志目录(GUI 起不
1200
1202
  <a href="https://github.com/nzz0991999-ai"><img src="https://github.com/nzz0991999-ai.png?size=100" width="50" height="50" alt="nzz0991999-ai" title="nzz0991999-ai" /></a>
1201
1203
  <a href="https://github.com/L4XB"><img src="https://github.com/L4XB.png?size=100" width="50" height="50" alt="L4XB" title="L4XB" /></a>
1202
1204
  <a href="https://github.com/Wanming08"><img src="https://github.com/Wanming08.png?size=100" width="50" height="50" alt="Wanming08" title="Wanming08" /></a>
1205
+ <a href="https://github.com/lei454577-web"><img src="https://github.com/lei454577-web.png?size=100" width="50" height="50" alt="lei454577-web" title="lei454577-web" /></a>
1206
+ <a href="https://github.com/jian-in"><img src="https://github.com/jian-in.png?size=100" width="50" height="50" alt="jian-in" title="jian-in" /></a>
1207
+ <a href="https://github.com/sky-mirrors"><img src="https://github.com/sky-mirrors.png?size=100" width="50" height="50" alt="sky-mirrors" title="sky-mirrors" /></a>
1208
+ <a href="https://github.com/moyan3691"><img src="https://github.com/moyan3691.png?size=100" width="50" height="50" alt="moyan3691" title="moyan3691" /></a>
1209
+ <a href="https://github.com/EarthxxRhythm"><img src="https://github.com/EarthxxRhythm.png?size=100" width="50" height="50" alt="EarthxxRhythm" title="EarthxxRhythm" /></a>
1203
1210
  </p>
1204
1211
 
1205
1212
  > PR을 통한 코드 기여를 환영합니다. 자세한 내용은 CONTRIBUTING.md를 참조하세요.
1206
1213
 
1214
+ ## ⭐ 스타 히스토리
1215
+
1216
+ <a href="https://star-history.com/#huiliyi37/tianshu-harness&Date">
1217
+ <picture>
1218
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=huiliyi37/tianshu-harness&type=Date&theme=dark" />
1219
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=huiliyi37/tianshu-harness&type=Date" />
1220
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=huiliyi37/tianshu-harness&type=Date" width="700" />
1221
+ </picture>
1222
+ </a>
1223
+
1207
1224
  ## ☕ 후원
1208
1225
 
1209
1226
  天枢가 유용했다면 기분 내키는 대로 후원해 주셔도 좋습니다——이것은 한 잔의 커피일 뿐, 계약이 아닙니다. 후원이 issue 우선순위를 바꾸거나 기능 일정에 영향을 주지는 않습니다.
package/README.md CHANGED
@@ -30,6 +30,7 @@
30
30
  <img src="https://img.shields.io/badge/License-Apache%202.0-3B5BDB?style=for-the-badge&logo=apache" alt="License">
31
31
  <img src="https://img.shields.io/badge/TypeScript-Strict-blue?style=for-the-badge&logo=typescript" alt="TypeScript">
32
32
  <img src="https://img.shields.io/badge/Tests-16%2C000%2B%20Passed-green?style=for-the-badge&logo=testinglibrary" alt="Tests">
33
+ <a href="https://discord.gg/XjWTATCHB"><img src="https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Discord"></a>
33
34
  </p>
34
35
 
35
36
  ---
@@ -162,13 +163,44 @@ npm install -g tianshu-harness
162
163
 
163
164
  > **从旧包 `tianshu-tui` 迁移**:旧包占着 `rivet` 命令链接,直接装新包会报 `EEXIST`——先卸再装:`npm uninstall -g tianshu-tui && npm install -g tianshu-harness`(一键安装脚本已内置该迁移,自动处理)。
164
165
 
165
- 然后:
166
+ **首次运行**会先进入主界面,再自动打开 `/connect` 向导——在那里选择服务商并粘贴 API Key:
166
167
 
167
168
  ```bash
168
- tianshu # 首次运行自动打开 /connect 向导,选择服务商并完成认证
169
+ tianshu # 看到 〉 提示符即就绪
169
170
  ```
170
171
 
171
- 无界面模式(脚本 / CI 集成):
172
+ ### 第一个任务
173
+
174
+ 先让它**只读**地认识你的项目(不改任何东西):
175
+
176
+ ```
177
+ 阅读这个项目,告诉我它的结构、入口在哪、以及一处最值得改进的地方
178
+ ```
179
+
180
+ 确认它读得准之后,再给一个**多步任务**:
181
+
182
+ ```
183
+ 修复这个项目里第一个失败的测试,并说明根因
184
+ ```
185
+
186
+ 接下来它会自己 grep、读文件、改代码、跑测试——每一步都有对应的工具调用,不是"说完就结束"。默认权限档是**自动**:低风险动作直接执行,高风险动作会停下来问你(档位与会话内切换见下方 [权限模式](#权限模式))。
187
+
188
+ ### 做完之后看两处
189
+
190
+ **① 交付报告** —— 收尾时天枢会调用 `deliver_task`,输出一块交付报告:交付门状态(GREEN / YELLOW / RED)、本次改动的文件、跑过的验证、逐条完成度审计。「完成」必须有证据;没有证据的收尾会被门禁拦下。
191
+
192
+ **② Cockpit 驾驶舱** —— 输入 `/cockpit` 打开(`Ctrl+P` 命令面板里也能进):
193
+
194
+ | 面板 | 看什么 |
195
+ |------|--------|
196
+ | `/cockpit verify` | 交付验证:已验证 / 未验证 / 失败 / 受阻,跑过哪些命令、影响面多大 |
197
+ | `/cockpit advisory` | 运行时提醒台账:累计渲染 / 采纳 / 忽略,以及每条提醒的采纳率与效果增益(lift) |
198
+ | `/cockpit model` | 缓存命中率、输入输出 tokens、本轮成本 |
199
+ | `/cockpit safety` | 风险等级与空转检测 |
200
+
201
+ 不带参数是总览,`/cockpit off` 关闭。
202
+
203
+ ### 无界面模式(脚本 / CI 集成)
172
204
 
173
205
  ```bash
174
206
  tianshu -p "解释 src/agent/loop.ts" # 单次提示
@@ -218,6 +250,7 @@ tianshu --goal "修复所有类型错误" --budget 50 # 无头目标自主模
218
250
  | [权限与沙箱指南](docs/user-guide-sandbox-permissions.md) | 权限规则、路径授权、沙箱模型、故障排查 |
219
251
  | [识图能力手册](docs/user-guide-vision.md) | 视觉通道配置与排查 |
220
252
  | [远程访问指南](docs/remote-access.md) | 手机/平板遥控审批的启用与安全边界 |
253
+ | [手机端操作手册](docs/guides/mobile-guide.md) | 手机/平板连接的完整步骤、能力清单、外网(Tailscale)与常见问题 |
221
254
  | [排障与 FAQ](docs/guides/troubleshooting.md) | 高频现场速查:卡住、429、缓存异常 |
222
255
 
223
256
  **理念与架构**
@@ -262,6 +295,7 @@ node dist/cli/entry.js
262
295
  ## 🤝 社区与支持
263
296
 
264
297
  - **使用问题 / 讨论** → [GitHub Discussions](https://github.com/huiliyi37/Tianshu-harness/discussions)
298
+ - **Discord 交流群** → [加入「天枢 tianshu-harness 官方交流群」](https://discord.gg/XjWTATCHB)(邀请链接,不受 7 天限制)
265
299
  - **Bug 报告 / 功能请求** → [GitHub Issues](https://github.com/huiliyi37/Tianshu-harness/issues)(附 `tianshu logs --json` 输出可加速定位)
266
300
  - **贡献代码** → [CONTRIBUTING.md](CONTRIBUTING.md) · **求助指南** → [SUPPORT.md](SUPPORT.md)
267
301
  - **微信交流群** → 「天枢 harness 交流群」,扫码加入(二维码 7 天有效,过期请在 Discussions 留言补码):
@@ -274,7 +308,7 @@ node dist/cli/entry.js
274
308
 
275
309
  ## ✨ 贡献者
276
310
 
277
- 感谢所有贡献者——项目创建者与核心开发 [@huiliyi37](https://github.com/huiliyi37);完整名单(20 位外部贡献者 / 122 个 PR)见 [CONTRIBUTORS.md](CONTRIBUTORS.md)。外部 PR 经「收编」流程合入后,作者署名以 `Co-authored-by` 计入贡献者图谱(`scripts/credit-contributors.sh` 自动落账):
311
+ 感谢所有贡献者——项目创建者与核心开发 [@huiliyi37](https://github.com/huiliyi37);完整名单(22 位外部贡献者 / 145 个 PR)见 [CONTRIBUTORS.md](CONTRIBUTORS.md)。外部 PR 经「收编」流程合入后,作者署名以 `Co-authored-by` 计入贡献者图谱(`scripts/credit-contributors.sh` 自动落账):
278
312
 
279
313
  <p>
280
314
  <a href="https://github.com/HarriethWiKk"><img src="https://github.com/HarriethWiKk.png?size=100" width="50" height="50" alt="HarriethWiKk" title="HarriethWiKk" /></a>
@@ -294,8 +328,23 @@ node dist/cli/entry.js
294
328
  <a href="https://github.com/nzz0991999-ai"><img src="https://github.com/nzz0991999-ai.png?size=100" width="50" height="50" alt="nzz0991999-ai" title="nzz0991999-ai" /></a>
295
329
  <a href="https://github.com/L4XB"><img src="https://github.com/L4XB.png?size=100" width="50" height="50" alt="L4XB" title="L4XB" /></a>
296
330
  <a href="https://github.com/Wanming08"><img src="https://github.com/Wanming08.png?size=100" width="50" height="50" alt="Wanming08" title="Wanming08" /></a>
331
+ <a href="https://github.com/lei454577-web"><img src="https://github.com/lei454577-web.png?size=100" width="50" height="50" alt="lei454577-web" title="lei454577-web" /></a>
332
+ <a href="https://github.com/jian-in"><img src="https://github.com/jian-in.png?size=100" width="50" height="50" alt="jian-in" title="jian-in" /></a>
333
+ <a href="https://github.com/sky-mirrors"><img src="https://github.com/sky-mirrors.png?size=100" width="50" height="50" alt="sky-mirrors" title="sky-mirrors" /></a>
334
+ <a href="https://github.com/moyan3691"><img src="https://github.com/moyan3691.png?size=100" width="50" height="50" alt="moyan3691" title="moyan3691" /></a>
335
+ <a href="https://github.com/EarthxxRhythm"><img src="https://github.com/EarthxxRhythm.png?size=100" width="50" height="50" alt="EarthxxRhythm" title="EarthxxRhythm" /></a>
297
336
  </p>
298
337
 
338
+ ## ⭐ Star History
339
+
340
+ <a href="https://star-history.com/#huiliyi37/tianshu-harness&Date">
341
+ <picture>
342
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=huiliyi37/tianshu-harness&type=Date&theme=dark" />
343
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=huiliyi37/tianshu-harness&type=Date" />
344
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=huiliyi37/tianshu-harness&type=Date" width="700" />
345
+ </picture>
346
+ </a>
347
+
299
348
  ## ☕ 赞助支持
300
349
 
301
350
  如果天枢对你有用,欢迎随缘打赏——这只是一杯咖啡,不是合同。赞助不会改变 issue 优先级,也不会影响功能排期。
@@ -6,9 +6,13 @@ import {
6
6
  accountIdentityUrl,
7
7
  accountStore,
8
8
  cachedAccountIdentity,
9
+ cachedAccountProfile,
9
10
  checkDeviceOnce,
10
11
  deviceAuthorizeUrl,
12
+ fetchAccountAvatar,
11
13
  fetchAccountProfile,
14
+ fetchAccountProfileSnapshot,
15
+ fetchFoundingBadge,
12
16
  fetchStellarIdentity,
13
17
  isAccountIdentityStale,
14
18
  isTerminalPollStatus,
@@ -19,8 +23,9 @@ import {
19
23
  pollForAccountToken,
20
24
  requestDeviceCode,
21
25
  saveAccountIdentity,
26
+ saveAccountProfile,
22
27
  saveAccountToken
23
- } from "./chunk-AEWHC4WM.js";
28
+ } from "./chunk-543PS4CP.js";
24
29
  import "./chunk-2VYRLULP.js";
25
30
  import "./chunk-P5KJURUR.js";
26
31
  import "./chunk-5GGOGLSN.js";
@@ -30,9 +35,13 @@ export {
30
35
  accountIdentityUrl,
31
36
  accountStore,
32
37
  cachedAccountIdentity,
38
+ cachedAccountProfile,
33
39
  checkDeviceOnce,
34
40
  deviceAuthorizeUrl,
41
+ fetchAccountAvatar,
35
42
  fetchAccountProfile,
43
+ fetchAccountProfileSnapshot,
44
+ fetchFoundingBadge,
36
45
  fetchStellarIdentity,
37
46
  isAccountIdentityStale,
38
47
  isTerminalPollStatus,
@@ -43,5 +52,6 @@ export {
43
52
  pollForAccountToken,
44
53
  requestDeviceCode,
45
54
  saveAccountIdentity,
55
+ saveAccountProfile,
46
56
  saveAccountToken
47
57
  };
@@ -14,9 +14,9 @@ async function handleAccountLogin(app) {
14
14
  accountStore,
15
15
  saveAccountToken,
16
16
  isTerminalPollStatus
17
- } = await import("./account-OAEKORZE.js");
18
- const { openInBrowser } = await import("./login-flow-X6QJ2JZ6.js");
19
- const { rivetHome } = await import("./paths-LVV5IMQN.js");
17
+ } = await import("./account-6EQLFSZP.js");
18
+ const { openInBrowser } = await import("./login-flow-YU6YFEQM.js");
19
+ const { rivetHome } = await import("./paths-PZCXDIBR.js");
20
20
  app.commitStatic("\u6B63\u5728\u5411\u5929\u67A2\u7533\u8BF7\u8BBE\u5907\u6388\u6743\u2026");
21
21
  let created;
22
22
  try {
@@ -39,7 +39,7 @@ ${created.verifyUrl}
39
39
  });
40
40
  if (result.status === "approved" && result.accessToken) {
41
41
  const token = saveAccountToken(accountStore(rivetHome()), result);
42
- const { primeStellarIdentity } = await import("./account-status-GQBCUTXB.js");
42
+ const { primeStellarIdentity } = await import("./account-status-UHF4OXT7.js");
43
43
  const identityLine = await primeStellarIdentity(token.accessToken);
44
44
  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");
45
45
  if (identityLine) app.commitStatic(`\u661F\u7C4D\uFF1A${identityLine}`);
@@ -51,8 +51,8 @@ ${created.verifyUrl}
51
51
  return true;
52
52
  }
53
53
  async function handleAccountLogout(app) {
54
- const { accountStore } = await import("./account-OAEKORZE.js");
55
- const { rivetHome } = await import("./paths-LVV5IMQN.js");
54
+ const { accountStore } = await import("./account-6EQLFSZP.js");
55
+ const { rivetHome } = await import("./paths-PZCXDIBR.js");
56
56
  const store = accountStore(rivetHome());
57
57
  const had = store.load() !== null;
58
58
  store.clear();
@@ -5,15 +5,15 @@ import {
5
5
  commitWelcomeStellarIdentityLine,
6
6
  formatStellarIdentityLine,
7
7
  primeStellarIdentity
8
- } from "./chunk-YQJ2GF2E.js";
9
- import "./chunk-AEWHC4WM.js";
8
+ } from "./chunk-X2L4XBEB.js";
9
+ import "./chunk-543PS4CP.js";
10
10
  import "./chunk-AE4JGSIT.js";
11
11
  import "./chunk-ADIVZ2D5.js";
12
12
  import "./chunk-2VYRLULP.js";
13
13
  import "./chunk-G4FU2DI5.js";
14
14
  import "./chunk-TI5PMDHA.js";
15
15
  import "./chunk-P5KJURUR.js";
16
- import "./chunk-BCQXEZPJ.js";
16
+ import "./chunk-JXVN7D4K.js";
17
17
  import "./chunk-5GGOGLSN.js";
18
18
  export {
19
19
  accountIdentityLines,
@@ -2,7 +2,7 @@
2
2
  import { createRequire as __rivetCreateRequire } from 'node:module'; const require = __rivetCreateRequire(import.meta.url);
3
3
  import {
4
4
  buildModelCards
5
- } from "../../chunk-LLYOUH6U.js";
5
+ } from "../../chunk-JCJISUVA.js";
6
6
  import {
7
7
  CHILD_TICK_INTERVAL_MS,
8
8
  buildReviewOverrideState,
@@ -10,62 +10,62 @@ import {
10
10
  createFrameDecoder,
11
11
  createInteractiveToolRegistry,
12
12
  encodeFrame
13
- } from "../../chunk-K2W6L3EV.js";
14
- import "../../chunk-6QMCBQ52.js";
15
- import "../../chunk-IBCC4M6B.js";
16
- import "../../chunk-NR3LAYJ7.js";
13
+ } from "../../chunk-MVA6DYSB.js";
14
+ import "../../chunk-DZ6UOJ5D.js";
15
+ import "../../chunk-UHCQCY43.js";
16
+ import "../../chunk-QPZJ6W7G.js";
17
+ import "../../chunk-QRJ3MQGD.js";
17
18
  import "../../chunk-2XN7PM4N.js";
18
19
  import "../../chunk-SAXK6LVF.js";
19
20
  import "../../chunk-D2TCGRSX.js";
20
- import "../../chunk-3CZLTKD3.js";
21
+ import "../../chunk-54BOYE4J.js";
21
22
  import {
22
23
  DomainKnowledgeStore
23
24
  } from "../../chunk-5TQ3JYBU.js";
24
25
  import "../../chunk-KX22RD6R.js";
25
- import "../../chunk-NWJFB7ZI.js";
26
- import "../../chunk-FW3QKMFX.js";
27
- import "../../chunk-IESISKUX.js";
26
+ import "../../chunk-Y3JPYVML.js";
27
+ import "../../chunk-DTYYBHDD.js";
28
+ import "../../chunk-ZXDKN6SJ.js";
28
29
  import {
29
30
  DelegationCoordinator,
30
31
  runWorkerSession
31
- } from "../../chunk-TINTPE52.js";
32
+ } from "../../chunk-MIFFP6OL.js";
32
33
  import "../../chunk-2X4QWTJ7.js";
33
34
  import {
34
35
  filterToolRegistry
35
36
  } from "../../chunk-VAV6JHGO.js";
36
- import "../../chunk-RS3SD2AD.js";
37
+ import "../../chunk-3G5H52SZ.js";
37
38
  import "../../chunk-ZDIFBJFT.js";
38
- import "../../chunk-72OR3KCJ.js";
39
- import "../../chunk-5PJ24C3V.js";
40
- import "../../chunk-L2RI3QEW.js";
39
+ import "../../chunk-W3JDWYRM.js";
40
+ import "../../chunk-337JKKFJ.js";
41
+ import "../../chunk-2IRQOJIB.js";
41
42
  import "../../chunk-AERM3VGP.js";
42
43
  import "../../chunk-RK3JHWPT.js";
43
44
  import "../../chunk-K2JLA7G6.js";
44
45
  import "../../chunk-S4K4L6IM.js";
45
- import "../../chunk-HO4O3QTA.js";
46
- import "../../chunk-QEWIDRNY.js";
47
- import "../../chunk-EZT7EFS7.js";
46
+ import "../../chunk-TLIAWAQL.js";
47
+ import "../../chunk-C25SW723.js";
48
+ import "../../chunk-MIMKTISI.js";
48
49
  import "../../chunk-JCFWOULR.js";
49
- import "../../chunk-2KOY6BE3.js";
50
+ import "../../chunk-7DN2SGTQ.js";
50
51
  import "../../chunk-BBT73QEI.js";
51
- import "../../chunk-XZ6BMISO.js";
52
- import "../../chunk-4EUTXGNM.js";
53
- import "../../chunk-DR5VASYC.js";
52
+ import "../../chunk-3HBJSIN6.js";
53
+ import "../../chunk-75WLEQMG.js";
54
+ import "../../chunk-WUF5IOFK.js";
54
55
  import "../../chunk-2HDP7RMR.js";
55
- import "../../chunk-BZPTZYOH.js";
56
- import "../../chunk-DZ6UOJ5D.js";
57
- import "../../chunk-JHVIITGR.js";
56
+ import "../../chunk-VZSX5WGB.js";
57
+ import "../../chunk-WTHXUY5P.js";
58
58
  import "../../chunk-RAXBAWRN.js";
59
- import "../../chunk-AJPWMSWO.js";
59
+ import "../../chunk-LSZS63ID.js";
60
60
  import "../../chunk-BUIMGNDD.js";
61
61
  import "../../chunk-ZU7JZCVP.js";
62
- import "../../chunk-JSS75KCG.js";
63
- import "../../chunk-OMMC3KNF.js";
64
- import "../../chunk-N4KGRYVB.js";
65
- import "../../chunk-HBVF6BWO.js";
62
+ import "../../chunk-JXQ7HTSA.js";
63
+ import "../../chunk-KLNHZCDF.js";
64
+ import "../../chunk-GNR5XP4X.js";
65
+ import "../../chunk-CBUQN32I.js";
66
66
  import {
67
67
  deriveWorkerSessionId
68
- } from "../../chunk-VU3LIY7Y.js";
68
+ } from "../../chunk-4U7AHZYW.js";
69
69
  import "../../chunk-AE4JGSIT.js";
70
70
  import "../../chunk-ZGGCEXDC.js";
71
71
  import "../../chunk-ZMZCZNKU.js";
@@ -76,19 +76,20 @@ import "../../chunk-J6ESSM47.js";
76
76
  import "../../chunk-3C3R7JXY.js";
77
77
  import "../../chunk-TI4GSEL5.js";
78
78
  import "../../chunk-OXMIV4WE.js";
79
- import "../../chunk-YRPOGMJW.js";
79
+ import "../../chunk-RGGCAU2W.js";
80
80
  import {
81
81
  PromptEngine
82
- } from "../../chunk-MI5FRZEQ.js";
82
+ } from "../../chunk-XXJNFKOR.js";
83
83
  import "../../chunk-RV4KPWEU.js";
84
84
  import {
85
85
  createProviderClient,
86
86
  resolveApiKey,
87
87
  resolveCapabilities
88
- } from "../../chunk-D4XOMBWV.js";
88
+ } from "../../chunk-6ZD77TF7.js";
89
+ import "../../chunk-ADK6OD5V.js";
89
90
  import "../../chunk-O5VZQKCB.js";
90
- import "../../chunk-PKWVEHA2.js";
91
- import "../../chunk-7RDOV3DF.js";
91
+ import "../../chunk-EXEJWRDH.js";
92
+ import "../../chunk-QEVWRN4C.js";
92
93
  import {
93
94
  profileRegistry
94
95
  } from "../../chunk-C4BAI4KE.js";
@@ -97,58 +98,59 @@ import "../../chunk-4UZYEDDP.js";
97
98
  import "../../chunk-UXNLELW6.js";
98
99
  import "../../chunk-ADIVZ2D5.js";
99
100
  import "../../chunk-7FW3I7WC.js";
100
- import "../../chunk-GD4ZNZ7W.js";
101
- import "../../chunk-QCEY3WDB.js";
101
+ import "../../chunk-T5SIV74T.js";
102
102
  import "../../chunk-7UAZVVUE.js";
103
- import "../../chunk-UM5YRM4D.js";
104
- import "../../chunk-ENDZ5AQB.js";
105
- import "../../chunk-INUPBFOY.js";
103
+ import "../../chunk-BSXDL2R2.js";
104
+ import "../../chunk-L4JLW76X.js";
105
+ import "../../chunk-GD4ZNZ7W.js";
106
+ import "../../chunk-XVU7F45F.js";
106
107
  import {
107
108
  applyDescriptionMode
108
109
  } from "../../chunk-JSXWIWWJ.js";
109
110
  import "../../chunk-BSECIPAQ.js";
110
- import "../../chunk-TVJO4SCJ.js";
111
- import "../../chunk-ZO3I3A7O.js";
112
- import "../../chunk-P6GJOVO6.js";
113
- import "../../chunk-TPI73L57.js";
114
- import "../../chunk-HV4YGVMS.js";
111
+ import "../../chunk-FUAU2JT6.js";
112
+ import "../../chunk-35OLL4BN.js";
113
+ import "../../chunk-RMLYK7Q5.js";
114
+ import "../../chunk-P46RYAGV.js";
115
115
  import "../../chunk-722LQO64.js";
116
116
  import {
117
117
  createAuthProvider
118
- } from "../../chunk-GMKAXSYQ.js";
118
+ } from "../../chunk-B5WBNTBA.js";
119
119
  import "../../chunk-EPKTIOED.js";
120
120
  import "../../chunk-2VYRLULP.js";
121
- import "../../chunk-SUJERP5I.js";
122
- import "../../chunk-CI4R6P2B.js";
121
+ import "../../chunk-2R6T7UUG.js";
123
122
  import "../../chunk-XU2YXCDL.js";
124
- import "../../chunk-ETHFACAB.js";
125
- import "../../chunk-SINZOIBW.js";
126
- import "../../chunk-VSUFQQQW.js";
123
+ import "../../chunk-JQL6WFIR.js";
124
+ import "../../chunk-KAKVKCFM.js";
125
+ import "../../chunk-O53IR3O3.js";
127
126
  import "../../chunk-EXUE5W2F.js";
128
- import "../../chunk-LH5VCGLB.js";
127
+ import "../../chunk-4S5W77SM.js";
129
128
  import "../../chunk-6S5FPUS7.js";
130
129
  import "../../chunk-EXXICUIW.js";
131
130
  import "../../chunk-QARAGUXX.js";
131
+ import "../../chunk-JMDXQTIY.js";
132
132
  import {
133
133
  TodoStore
134
134
  } from "../../chunk-FL4CIO5T.js";
135
- import "../../chunk-YJG5HIX5.js";
135
+ import "../../chunk-DKFH4TDX.js";
136
136
  import {
137
137
  loadConfig,
138
138
  subagentPromptBlocks
139
- } from "../../chunk-LJJXY43L.js";
139
+ } from "../../chunk-YHUVE2TT.js";
140
140
  import "../../chunk-G4FU2DI5.js";
141
141
  import "../../chunk-TI5PMDHA.js";
142
- import "../../chunk-4H4TVBEJ.js";
143
- import "../../chunk-SS5A5ZOD.js";
142
+ import "../../chunk-Y52MV6TV.js";
143
+ import "../../chunk-G3TX7BJQ.js";
144
144
  import "../../chunk-P5KJURUR.js";
145
+ import "../../chunk-CI4R6P2B.js";
145
146
  import "../../chunk-NYDTN5W4.js";
146
147
  import "../../chunk-EGEI2RQA.js";
147
- import "../../chunk-MPX7Z4KQ.js";
148
+ import "../../chunk-FAYHO63O.js";
149
+ import "../../chunk-GZOQFWMP.js";
148
150
  import "../../chunk-ZNC5T65N.js";
149
- import "../../chunk-6FQV7XDJ.js";
151
+ import "../../chunk-7JOI4AOR.js";
150
152
  import "../../chunk-A5MNH4ER.js";
151
- import "../../chunk-BCQXEZPJ.js";
153
+ import "../../chunk-JXVN7D4K.js";
152
154
  import {
153
155
  init_esm_shims
154
156
  } from "../../chunk-5GGOGLSN.js";
@@ -3,12 +3,12 @@ import { createRequire as __rivetCreateRequire } from 'node:module'; const requi
3
3
  import {
4
4
  buildSearchBackends,
5
5
  resolveSearchKey
6
- } from "./chunk-DR5VASYC.js";
6
+ } from "./chunk-WUF5IOFK.js";
7
7
  import "./chunk-2HDP7RMR.js";
8
8
  import "./chunk-O5VZQKCB.js";
9
- import "./chunk-SS5A5ZOD.js";
9
+ import "./chunk-G3TX7BJQ.js";
10
10
  import "./chunk-P5KJURUR.js";
11
- import "./chunk-BCQXEZPJ.js";
11
+ import "./chunk-JXVN7D4K.js";
12
12
  import "./chunk-5GGOGLSN.js";
13
13
  export {
14
14
  buildSearchBackends,