tianshu-harness 3.37.0 → 3.37.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.
- package/README.en.md +24 -8
- package/README.ja.md +3 -2
- package/README.ko.md +3 -2
- package/README.md +25 -9
- package/dist/{account-Q54MGORC.js → account-SIZF2YV5.js} +2 -2
- package/dist/{account-login-7X53AED6.js → account-login-JZHSEBGU.js} +3 -3
- package/dist/{account-status-I4TDW3ZM.js → account-status-I42D2QJQ.js} +3 -3
- package/dist/agent/worker-process/child.js +19 -19
- package/dist/benchmark/recovery-cli.js +2 -2
- package/dist/{bootstrap-LREPLPLO.js → bootstrap-ZDTXBSMQ.js} +18 -18
- package/dist/{chunk-6G4FHROQ.js → chunk-32GXAYAY.js} +1 -1
- package/dist/{chunk-OUTLAAYF.js → chunk-4OVEE5LK.js} +2 -2
- package/dist/{chunk-RB4SJIHS.js → chunk-5NS5VTEG.js} +69 -17
- package/dist/{chunk-ADETW3LK.js → chunk-5UDGLJWY.js} +1 -1
- package/dist/{chunk-TPC63AAU.js → chunk-6T2LP2JY.js} +1 -1
- package/dist/{chunk-OZFPXNC4.js → chunk-7NIRK234.js} +3 -3
- package/dist/{chunk-YQ4HK5BP.js → chunk-CD3J7T6J.js} +1 -1
- package/dist/{chunk-B3RCV4YJ.js → chunk-DF5GCBXI.js} +1 -1
- package/dist/{chunk-IJBBCKR3.js → chunk-DRXRU7JG.js} +2 -2
- package/dist/{chunk-YQGZAYSV.js → chunk-ERJ3IGMT.js} +3 -3
- package/dist/{chunk-YPZQTLII.js → chunk-EZJNFWD6.js} +17 -17
- package/dist/{chunk-G2YHK7QR.js → chunk-FUWCG4K2.js} +5 -5
- package/dist/{chunk-C7TCIN7O.js → chunk-IYC2YV4N.js} +1 -1
- package/dist/{chunk-QVGXSRL7.js → chunk-J77Z2HOY.js} +60 -30
- package/dist/{chunk-R3CQ7UTA.js → chunk-JISDUUGJ.js} +3 -3
- package/dist/{chunk-SUDK4Q5C.js → chunk-P2NJCUEJ.js} +1 -1
- package/dist/{chunk-ODKXIMCN.js → chunk-PG44U7NT.js} +2 -2
- package/dist/{chunk-Q24C4C2R.js → chunk-PZEPU7EQ.js} +1 -1
- package/dist/{chunk-7NHSPDU3.js → chunk-RI5QX3VY.js} +2 -2
- package/dist/{chunk-34U7X6AW.js → chunk-T42AKD3H.js} +2 -2
- package/dist/{chunk-OPVUYCEC.js → chunk-T4CVFZRL.js} +1 -1
- package/dist/{chunk-7I7QVVKE.js → chunk-TWHEV3RK.js} +19 -19
- package/dist/{chunk-D2ZGK7SK.js → chunk-UMCXCMT5.js} +4 -4
- package/dist/{chunk-A7IV2AX3.js → chunk-URPOQ5HS.js} +3 -3
- package/dist/{chunk-YFHN7546.js → chunk-WDO4FTAB.js} +1 -1
- package/dist/{chunk-EXAFVT2W.js → chunk-ZPVAFPIR.js} +11 -11
- package/dist/cli/entry.js +1 -1
- package/dist/{create-agent-config-F44IKYBF.js → create-agent-config-7BLM753I.js} +5 -5
- package/dist/{cvm-ledger-DDC5JQZ2.js → cvm-ledger-UEROJZJN.js} +2 -2
- package/dist/{default-registry-GYHLKCGK.js → default-registry-WTQZHA3S.js} +8 -8
- package/dist/{goal-criteria-VL7QKBMY.js → goal-criteria-7YCFJINP.js} +3 -3
- package/dist/{headless-coordinator-EJIXOU25.js → headless-coordinator-EIK56324.js} +14 -14
- package/dist/{headless-tool-registry-K7O3GSGA.js → headless-tool-registry-NWLZCMNB.js} +18 -18
- package/dist/hook-runtime/manifest.json +3 -3
- package/dist/{loop-UQ6PK42N.js → loop-TQPMB22M.js} +9 -9
- package/dist/main.js +52 -52
- package/dist/package.json +1 -1
- package/dist/{plugin-session-cache-QVAXYF5F.js → plugin-session-cache-USG3SJUQ.js} +1 -1
- package/dist/{provider-cli-NOIL54AY.js → provider-cli-Q6LFOFDL.js} +4 -4
- package/dist/{recovery-cli-ZKTGF6AF.js → recovery-cli-OGPCR37U.js} +1 -1
- package/dist/{serve-C3RJZG5O.js → serve-CC2M7JHP.js} +16 -16
- package/dist/{serve-agent-VDY5M2MN.js → serve-agent-IJ63MMCL.js} +29 -29
- package/dist/{skills-cli-636CD2B3.js → skills-cli-QPFZEQH7.js} +3 -3
- package/dist/{tool-pipeline-6UJXBZRA.js → tool-pipeline-YVS5TZE7.js} +5 -5
- package/package.json +1 -1
- package/dist/{chunk-LQXUGBRV.js → chunk-Q2P2X2T4.js} +3 -3
- package/dist/{chunk-ESJSMCQS.js → chunk-QMNTSDWW.js} +3 -3
package/README.en.md
CHANGED
|
@@ -11,10 +11,24 @@
|
|
|
11
11
|
|
|
12
12
|
<p align="center">
|
|
13
13
|
<a href="https://github.com/huiliyi37/Tianshu-harness/releases/latest"><img src="https://img.shields.io/github/v/release/huiliyi37/Tianshu-harness?color=8B5CF6&label=Release&logo=github" alt="Release"></a>
|
|
14
|
+
<a href="https://github.com/huiliyi37/Tianshu-harness/releases"><img src="https://img.shields.io/github/downloads/huiliyi37/Tianshu-harness/total?color=181717&label=GitHub%20Downloads&logo=github" alt="GitHub Downloads"></a>
|
|
14
15
|
<a href="https://www.npmjs.com/package/tianshu-harness"><img src="https://img.shields.io/npm/v/tianshu-harness?color=CB3837&label=npm&logo=npm" alt="npm"></a>
|
|
16
|
+
<a href="https://www.npmjs.com/package/tianshu-harness"><img src="https://img.shields.io/npm/d18m/tianshu-harness?color=CB3837&label=npm%20Downloads&logo=npm" alt="npm Downloads"></a>
|
|
17
|
+
<a href="https://atomgit.com/huiliyi37/Tianshu-harness"><img src="https://atomgit.com/huiliyi37/Tianshu-harness/star/badge.svg" alt="AtomGit Star"></a>
|
|
18
|
+
<a href="https://atomgit.com/huiliyi37/Tianshu-harness/releases"><img src="https://atomgit.com/huiliyi37/Tianshu-harness/download/badge.svg" alt="AtomGit Downloads"></a>
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
<p align="center">
|
|
22
|
+
<a href="https://trendshift.io/repositories/100440" target="_blank"><img src="https://trendshift.io/api/badge/trendshift/repositories/100440/daily?language=TypeScript" alt="Trendshift: TypeScript repository of the day" width="250" height="55"></a>
|
|
23
|
+
|
|
24
|
+
<a href="https://atomgit.com/huiliyi37/Tianshu-harness"><img src="https://atomgit.com/huiliyi37/Tianshu-harness/star/new_badge.svg" alt="G-Star Selected by AtomGit" width="250" height="55"></a>
|
|
25
|
+
</p>
|
|
26
|
+
|
|
27
|
+
<p align="center">
|
|
15
28
|
<a href="https://tianshuharness.com"><img src="https://img.shields.io/badge/Website-tianshuharness.com-4285F4?logo=googlechrome&logoColor=white" alt="Website"></a>
|
|
29
|
+
<a href="https://tianshu.club/"><img src="https://img.shields.io/badge/Forum-tianshu.club-F59E0B" alt="Starport Forum"></a>
|
|
16
30
|
<a href="docs/user-guide.md"><img src="https://img.shields.io/badge/Docs-User%20Guide-FBBC04" alt="Docs"></a>
|
|
17
|
-
<a href="https://discord.gg/
|
|
31
|
+
<a href="https://discord.gg/aNEPzPuYV"><img src="https://img.shields.io/badge/Discord-5865F2?logo=discord&logoColor=white" alt="Discord"></a>
|
|
18
32
|
<a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-34A853" alt="License"></a>
|
|
19
33
|
<a href="https://github.com/RyanAlberts/best-of-Agent-Harnesses"><img src="https://img.shields.io/badge/%F0%9F%8F%86_Best_of-Agent_Harnesses-5ac4bf" alt="Best of Agent Harnesses"></a>
|
|
20
34
|
</p>
|
|
@@ -39,7 +53,7 @@ A model's **capability ceiling** is not its **runtime behaviour**. Put the same
|
|
|
39
53
|
**Tianshu** is a coding-agent runtime written in TypeScript. The terminal TUI, the desktop app, and the VS Code extension share one agent kernel. Between the model and the real world it places a **Cognitive Virtual Machine (CVM)** that lifts goals, state, evidence, permissions, and termination conditions out of the conversation history and hands them to the runtime:
|
|
40
54
|
|
|
41
55
|
* **Task contracts** — Every task gets a `TaskContract` recording goal, scope, constraints, and success criteria. Long sessions are held by the runtime, not by the model's memory.
|
|
42
|
-
* **
|
|
56
|
+
* **Separated commit, verification and review** — `deliver_task` performs only an ownership-scoped safe commit: it blocks on ownership, cross-session conflicts and version consistency; verification gaps are disclosed honestly, never blocked on and never turned into quality endorsement. Targeted verification uses `run_tests` (explicit scope), independent review uses `review_changes` or `/review`.
|
|
43
57
|
* **A deterministic outer loop** — 75 runtime hook modules across five phases of a turn, together with Sensorium state awareness and stall detection, observe and correct between model output and real action.
|
|
44
58
|
|
|
45
59
|
<table>
|
|
@@ -47,13 +61,13 @@ A model's **capability ceiling** is not its **runtime behaviour**. Put the same
|
|
|
47
61
|
<td align="center" width="25%"><b>99.3–99.6%</b><br><sub>prefix-cache hit rate<br>across 5 real long sessions</sub></td>
|
|
48
62
|
<td align="center" width="25%"><b>¥880 → ¥20</b><br><sub>estimated input cost on the same<br>sessions at list price</sub></td>
|
|
49
63
|
<td align="center" width="25%"><b>25</b><br><sub>built-in provider presets, plus any<br>OpenAI-compatible endpoint</sub></td>
|
|
50
|
-
<td align="center" width="25%"><b>
|
|
64
|
+
<td align="center" width="25%"><b>23,000</b><br><sub>test cases, roughly<br>1:1 with source lines</sub></td>
|
|
51
65
|
</tr>
|
|
52
66
|
</table>
|
|
53
67
|
|
|
54
68
|
<p align="center">
|
|
55
69
|
<img src="docs/brand/assets/tianshu-harness-screenshot.png" alt="Tianshu terminal TUI: welcome screen and GlanceBar status line" width="49%">
|
|
56
|
-
<img src="docs/brand/assets/tianshu-gui-screenshot.jpg" alt="Tianshu desktop app:
|
|
70
|
+
<img src="docs/brand/assets/tianshu-gui-screenshot.jpg" alt="Tianshu desktop app: home and new-task panel" width="49%">
|
|
57
71
|
</p>
|
|
58
72
|
<p align="center"><sub>Left: terminal TUI · Right: desktop app · one agent kernel</sub></p>
|
|
59
73
|
|
|
@@ -251,7 +265,7 @@ This is a small pilot: 5 tasks, a single model, LLM review. It also measured the
|
|
|
251
265
|
|
|
252
266
|
### Engineering
|
|
253
267
|
|
|
254
|
-
As of 2026-10: `src/` holds roughly 1,
|
|
268
|
+
As of 2026-10 (v3.37): `src/` holds roughly 1,700 source files and 350K lines; tests are about 2,100 files and 23,000 cases. TypeScript strict with `noUncheckedIndexedAccess`, and every incident fix ships with a regression test. Definitions and milestones: [Engineering Metrics](docs/engineering-metrics.md).
|
|
255
269
|
|
|
256
270
|
<a id="star-domains"></a>
|
|
257
271
|
## Star Domains
|
|
@@ -288,15 +302,16 @@ New sessions default to **Qiming**. Switch with `/domain <name>`, auto-match fro
|
|
|
288
302
|
| | |
|
|
289
303
|
|---|---|
|
|
290
304
|
| **Multi-agent orchestration** | `/scout` read-only parallel reconnaissance, `/team` wave-based parallel execution, `/council` multi-domain review that only produces a plan, `/galaxy` dimension-split attack with a global review. [Details](docs/user-guide.md#子代理编排) |
|
|
305
|
+
| **Separated review & verification** | Commits never auto-verify or auto-review: targeted verification via `run_tests` (empty input previews the scope), independent review via `review_changes` (pinned snapshot, read-only reviewer, persisted findings); delivery receipts carry no quality endorsement |
|
|
291
306
|
| **Prefix cache engine** | Frozen prefix, delta appendix, read deduplication, resume cache inheritance; `/debug cache` diagnoses hit rate and fragmentation. [Details](docs/user-guide.md#前缀缓存引擎) |
|
|
292
307
|
| **Plan Mode & Goal** | Plan, approve, then execute; `/goal` holds a goal across many turns until it is met or the budget runs out. [Details](docs/user-guide.md#plan-mode计划模式) |
|
|
293
308
|
| **Handoff & rewind** | `/handoff` writes a structured handoff document; double-tap `Esc` rewinds to any earlier point. [Details](docs/user-guide.md#会话交接与恢复handoff--resume) |
|
|
294
|
-
| **Project memory** | Knowledge is written to `.rivet/knowledge/memory.jsonl`; auto-injection carries constraint memories only, older findings need explicit recall and never hijack a new task. [Details](docs/user-guide.md#跨会话记忆) |
|
|
309
|
+
| **Project memory** | Knowledge is written to `.rivet/knowledge/memory.jsonl`; auto-injection carries constraint memories only, older findings need explicit recall and never hijack a new task; automatic memory formation is opt-in (off by default). [Details](docs/user-guide.md#跨会话记忆) |
|
|
295
310
|
| **LSP integration** | 20+ language servers; go-to-definition and find-references become agent tools, and post-edit diagnostics flow back into the turn. Enabled only when installed locally |
|
|
296
311
|
| **MCP & Skills** | External tool servers; reusable workflow playbooks with progressive disclosure, managed by `tianshu skills`. [Details](docs/user-guide.md#mcpmodel-context-protocol) |
|
|
297
312
|
| **Cost control** | Automatic reasoning-effort downgrade, flash-model compaction, peak/off-peak pricing badge, `/usage` for the local token ledger. [Details](docs/user-guide.md#api-成本控制) |
|
|
298
313
|
| **Pure-ANSI TUI** | Zero dependencies: GlanceBar status line, `/steer` mid-stream interrupt, command palette, inline images, plain-text mode for restricted terminals. [Details](docs/user-guide.md#终端-uitui) |
|
|
299
|
-
| **Desktop app** | Integrated terminal, theme studio, offline local voice input, phone remote approval, concurrent sessions, WSL runtime on Windows. [Desktop Guide](docs/desktop-guide.md) |
|
|
314
|
+
| **Desktop app** | Integrated terminal, theme studio, offline local voice input, phone remote approval, concurrent sessions, WSL runtime on Windows; auto-update with resumable downloads, verified sources and self-recovery. [Desktop Guide](docs/desktop-guide.md) |
|
|
300
315
|
|
|
301
316
|
<a id="supported-models"></a>
|
|
302
317
|
## Supported Models
|
|
@@ -432,7 +447,8 @@ This repository is the sync projection of the development repo; the desktop app
|
|
|
432
447
|
|
|
433
448
|
- **Discussion** — [GitHub Discussions](https://github.com/huiliyi37/Tianshu-harness/discussions)
|
|
434
449
|
- **Bugs and feature requests** — [GitHub Issues](https://github.com/huiliyi37/Tianshu-harness/issues); attaching `tianshu logs --json` speeds up triage
|
|
435
|
-
- **
|
|
450
|
+
- **Starport forum** — [tianshu.club](https://tianshu.club/): our self-hosted community for release discussion, tips and long-lived topics
|
|
451
|
+
- **Discord** — [Tianshu Harness community](https://discord.gg/aNEPzPuYV) [](https://discord.gg/aNEPzPuYV)
|
|
436
452
|
- **QQ group** — "TUI", group ID `1017892942`
|
|
437
453
|
- **WeChat group** — scan the QR code; valid for 7 days, ask in Discussions if expired
|
|
438
454
|
|
package/README.ja.md
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
<img src="https://img.shields.io/badge/License-Apache%202.0-3B5BDB?style=for-the-badge&logo=apache" alt="License">
|
|
32
32
|
<img src="https://img.shields.io/badge/TypeScript-Strict-blue?style=for-the-badge&logo=typescript" alt="TypeScript">
|
|
33
33
|
<img src="https://img.shields.io/badge/Tests-19%2C000%2B%20Passed-green?style=for-the-badge&logo=testinglibrary" alt="Tests">
|
|
34
|
-
<a href="https://discord.gg/
|
|
34
|
+
<a href="https://discord.gg/aNEPzPuYV"><img src="https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Discord"></a>
|
|
35
35
|
<a href="https://atomgit.com/huiliyi37/Tianshu-harness"><img src="https://atomgit.com/huiliyi37/Tianshu-harness/star/badge.svg" alt="AtomGit Star"></a>
|
|
36
36
|
<a href="https://github.com/huiliyi37/Tianshu-harness/releases"><img src="https://img.shields.io/github/downloads/huiliyi37/Tianshu-harness/total?logo=github&label=downloads" alt="GitHub downloads"></a>
|
|
37
37
|
<a href="https://www.npmjs.com/package/tianshu-tui"><img src="https://img.shields.io/npm/dm/tianshu-tui?label=npm%20tianshu-tui" alt="npm tianshu-tui downloads"></a>
|
|
@@ -1166,7 +1166,8 @@ tianshu logs open desktop # sidecar ログディレクトリを開く
|
|
|
1166
1166
|
## 🤝 コミュニティとサポート
|
|
1167
1167
|
|
|
1168
1168
|
- **使い方の質問 / ディスカッション** → [GitHub Discussions](https://github.com/huiliyi37/Tianshu-harness/discussions)
|
|
1169
|
-
- **
|
|
1169
|
+
- **Starport フォーラム** → [tianshu.club](https://tianshu.club/)(自建コミュニティ「天枢星港」)
|
|
1170
|
+
- **Discord コミュニティ** → [「天枢 tianshu-harness 官方交流群」に参加](https://discord.gg/aNEPzPuYV)
|
|
1170
1171
|
- **バグ報告 / 機能リクエスト** → [GitHub Issues](https://github.com/huiliyi37/Tianshu-harness/issues)
|
|
1171
1172
|
- **セキュリティ脆弱性** → [プライベート報告](https://github.com/huiliyi37/Tianshu-harness/security/advisories/new)(公開 issue を開かないでください)
|
|
1172
1173
|
- **コードへのコントリビュート** → [CONTRIBUTING.md](CONTRIBUTING.md) を参照
|
package/README.ko.md
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
<img src="https://img.shields.io/badge/License-Apache%202.0-3B5BDB?style=for-the-badge&logo=apache" alt="License">
|
|
32
32
|
<img src="https://img.shields.io/badge/TypeScript-Strict-blue?style=for-the-badge&logo=typescript" alt="TypeScript">
|
|
33
33
|
<img src="https://img.shields.io/badge/Tests-19%2C000%2B%20Passed-green?style=for-the-badge&logo=testinglibrary" alt="Tests">
|
|
34
|
-
<a href="https://discord.gg/
|
|
34
|
+
<a href="https://discord.gg/aNEPzPuYV"><img src="https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Discord"></a>
|
|
35
35
|
<a href="https://atomgit.com/huiliyi37/Tianshu-harness"><img src="https://atomgit.com/huiliyi37/Tianshu-harness/star/badge.svg" alt="AtomGit Star"></a>
|
|
36
36
|
<a href="https://github.com/huiliyi37/Tianshu-harness/releases"><img src="https://img.shields.io/github/downloads/huiliyi37/Tianshu-harness/total?logo=github&label=downloads" alt="GitHub downloads"></a>
|
|
37
37
|
<a href="https://www.npmjs.com/package/tianshu-tui"><img src="https://img.shields.io/npm/dm/tianshu-tui?label=npm%20tianshu-tui" alt="npm tianshu-tui downloads"></a>
|
|
@@ -1171,7 +1171,8 @@ tianshu logs open desktop # sidecar 로그 디렉터리 열기(GUI
|
|
|
1171
1171
|
## 🤝 커뮤니티와 지원
|
|
1172
1172
|
|
|
1173
1173
|
- **사용 문제 / 토론** → [GitHub Discussions](https://github.com/huiliyi37/Tianshu-harness/discussions)
|
|
1174
|
-
- **
|
|
1174
|
+
- **Starport 포럼** → [tianshu.club](https://tianshu.club/)(자체 커뮤니티 「天枢星港」)
|
|
1175
|
+
- **Discord 커뮤니티** → [Tianshu Harness Discord 참여](https://discord.gg/aNEPzPuYV)
|
|
1175
1176
|
- **버그 리포트 / 기능 요청** → [GitHub Issues](https://github.com/huiliyi37/Tianshu-harness/issues)
|
|
1176
1177
|
- **보안 취약점** → [비공개 보고](https://github.com/huiliyi37/Tianshu-harness/security/advisories/new)(공개 issue를 열지 말 것)
|
|
1177
1178
|
- **코드 기여** → [CONTRIBUTING.md](CONTRIBUTING.md) 참조
|
package/README.md
CHANGED
|
@@ -5,16 +5,30 @@
|
|
|
5
5
|
<h1 align="center">天枢 Tianshu Harness</h1>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<b
|
|
8
|
+
<b>面向编程智能体的终端运行时,把东方的星辰带给世界的每一个开发者。</b><br>
|
|
9
9
|
<sub>目标不漂移 · 完成有证据 · 验证有闭环</sub>
|
|
10
10
|
</p>
|
|
11
11
|
|
|
12
12
|
<p align="center">
|
|
13
13
|
<a href="https://github.com/huiliyi37/Tianshu-harness/releases/latest"><img src="https://img.shields.io/github/v/release/huiliyi37/Tianshu-harness?color=8B5CF6&label=Release&logo=github" alt="Release"></a>
|
|
14
|
+
<a href="https://github.com/huiliyi37/Tianshu-harness/releases"><img src="https://img.shields.io/github/downloads/huiliyi37/Tianshu-harness/total?color=181717&label=GitHub%20%E4%B8%8B%E8%BD%BD&logo=github" alt="GitHub Downloads"></a>
|
|
14
15
|
<a href="https://www.npmjs.com/package/tianshu-harness"><img src="https://img.shields.io/npm/v/tianshu-harness?color=CB3837&label=npm&logo=npm" alt="npm"></a>
|
|
16
|
+
<a href="https://www.npmjs.com/package/tianshu-harness"><img src="https://img.shields.io/npm/d18m/tianshu-harness?color=CB3837&label=npm%20%E4%B8%8B%E8%BD%BD&logo=npm" alt="npm Downloads"></a>
|
|
17
|
+
<a href="https://atomgit.com/huiliyi37/Tianshu-harness"><img src="https://atomgit.com/huiliyi37/Tianshu-harness/star/badge.svg" alt="AtomGit Star"></a>
|
|
18
|
+
<a href="https://atomgit.com/huiliyi37/Tianshu-harness/releases"><img src="https://atomgit.com/huiliyi37/Tianshu-harness/download/badge.svg" alt="AtomGit Downloads"></a>
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
<p align="center">
|
|
22
|
+
<a href="https://trendshift.io/repositories/100440" target="_blank"><img src="https://trendshift.io/api/badge/trendshift/repositories/100440/daily?language=TypeScript" alt="Trendshift: TypeScript repository of the day" width="250" height="55"></a>
|
|
23
|
+
|
|
24
|
+
<a href="https://atomgit.com/huiliyi37/Tianshu-harness"><img src="https://atomgit.com/huiliyi37/Tianshu-harness/star/new_badge.svg" alt="G-Star Selected by AtomGit" width="250" height="55"></a>
|
|
25
|
+
</p>
|
|
26
|
+
|
|
27
|
+
<p align="center">
|
|
15
28
|
<a href="https://tianshuharness.com"><img src="https://img.shields.io/badge/Website-tianshuharness.com-4285F4?logo=googlechrome&logoColor=white" alt="Website"></a>
|
|
29
|
+
<a href="https://tianshu.club/"><img src="https://img.shields.io/badge/%E6%98%9F%E6%B8%AF%E8%AE%BA%E5%9D%9B-tianshu.club-F59E0B" alt="星港论坛"></a>
|
|
16
30
|
<a href="docs/user-guide.md"><img src="https://img.shields.io/badge/Docs-%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C-FBBC04" alt="Docs"></a>
|
|
17
|
-
<a href="https://discord.gg/
|
|
31
|
+
<a href="https://discord.gg/aNEPzPuYV"><img src="https://img.shields.io/badge/Discord-%E4%BA%A4%E6%B5%81%E7%BE%A4-5865F2?logo=discord&logoColor=white" alt="Discord"></a>
|
|
18
32
|
<a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-34A853" alt="License"></a>
|
|
19
33
|
<a href="https://github.com/RyanAlberts/best-of-Agent-Harnesses"><img src="https://img.shields.io/badge/%F0%9F%8F%86_Best_of-Agent_Harnesses-5ac4bf" alt="Best of Agent Harnesses"></a>
|
|
20
34
|
</p>
|
|
@@ -38,7 +52,7 @@
|
|
|
38
52
|
**天枢**是一个 TypeScript 编写的编程 agent 运行时,终端 TUI、桌面端和 VS Code 插件共用同一个内核。它在模型和真实世界之间加了一层**认知执行环境 CVM**(Cognitive Virtual Machine),把目标、状态、证据、权限和终止条件从对话历史里拿出来,交给运行时持续管理:
|
|
39
53
|
|
|
40
54
|
* **任务契约**:每个任务有独立的 `TaskContract`,记录目标、范围、约束和成功标准。长会话里的目标由运行时持有,不依赖模型「记得」。
|
|
41
|
-
*
|
|
55
|
+
* **提交、验证、审查分离的交付**:`deliver_task` 只做归属限定的安全提交——所有权、跨会话冲突、版本一致性不合格就拦下;验证缺口如实披露但不阻断、也不冒充质量背书。定向验证用 `run_tests`(显式范围),独立审查用 `review_changes` 或 `/review`。
|
|
42
56
|
* **确定性监督外环**:75 个运行时 hook 模块分布在一个回合的五个阶段,配合 Sensorium 状态感知与收敛、空转检测,在模型输出与真实动作之间做观测和纠偏。
|
|
43
57
|
|
|
44
58
|
<table>
|
|
@@ -46,13 +60,13 @@
|
|
|
46
60
|
<td align="center" width="25%"><b>99.3–99.6%</b><br><sub>5 个真实长会话的<br>前缀缓存命中率</sub></td>
|
|
47
61
|
<td align="center" width="25%"><b>¥880 → ¥20</b><br><sub>同一批会话按刊例价<br>估算的 input 成本</sub></td>
|
|
48
62
|
<td align="center" width="25%"><b>25 项</b><br><sub>模型服务商预设<br>另支持 OpenAI 兼容端点</sub></td>
|
|
49
|
-
<td align="center" width="25%"><b>2.
|
|
63
|
+
<td align="center" width="25%"><b>2.3 万条</b><br><sub>测试用例<br>与源码规模约 1:1</sub></td>
|
|
50
64
|
</tr>
|
|
51
65
|
</table>
|
|
52
66
|
|
|
53
67
|
<p align="center">
|
|
54
68
|
<img src="docs/brand/assets/tianshu-harness-screenshot.png" alt="天枢终端 TUI:欢迎页与 GlanceBar 状态栏" width="49%">
|
|
55
|
-
<img src="docs/brand/assets/tianshu-gui-screenshot.jpg" alt="
|
|
69
|
+
<img src="docs/brand/assets/tianshu-gui-screenshot.jpg" alt="天枢桌面端:首页与新任务面板" width="49%">
|
|
56
70
|
</p>
|
|
57
71
|
<p align="center"><sub>左:终端 TUI · 右:桌面端 · 同一个 agent 内核</sub></p>
|
|
58
72
|
|
|
@@ -239,7 +253,7 @@ CVM 不改权重,也不把模型变成确定性程序,而是在概率认知
|
|
|
239
253
|
|
|
240
254
|
### 工程
|
|
241
255
|
|
|
242
|
-
截至 2026-10
|
|
256
|
+
截至 2026-10(v3.37):`src/` 约 1,700 个源码文件、35 万行,测试约 2,100 个文件、2.3 万条用例。TypeScript strict,开启 `noUncheckedIndexedAccess`,事故修复必须附回归测试。口径与里程碑见 [工程质量指标](docs/engineering-metrics.md)。
|
|
243
257
|
|
|
244
258
|
## 星域
|
|
245
259
|
|
|
@@ -256,15 +270,16 @@ CVM 不改权重,也不把模型变成确定性程序,而是在概率认知
|
|
|
256
270
|
| | |
|
|
257
271
|
|---|---|
|
|
258
272
|
| **多代理编排** | `/scout` 只读并行侦察,`/team` 按文件分波并行施工,`/council` 多星域会诊只出计划,`/galaxy` 按维度拆分并做全局审查。[详情](docs/user-guide.md#子代理编排) |
|
|
273
|
+
| **审查与验证分离** | 提交不自动验证也不自动派审查:定向验证 `run_tests`(空参数只给范围预览),独立审查 `review_changes`(固定快照、只读 reviewer、发现持久化),交付回执不作质量背书 |
|
|
259
274
|
| **前缀缓存引擎** | 冻结前缀、增量附录、Read 去重、resume 缓存继承,`/debug cache` 诊断命中率与碎裂原因。[详情](docs/user-guide.md#前缀缓存引擎) |
|
|
260
275
|
| **Plan Mode 与 Goal** | 先计划、审批、再执行;`/goal` 设定跨多轮目标,持续迭代到达成或预算耗尽。[详情](docs/user-guide.md#plan-mode计划模式) |
|
|
261
276
|
| **交接与倒带** | `/handoff` 生成结构化交接文档;双击 `Esc` 倒带到任一历史点。[详情](docs/user-guide.md#会话交接与恢复handoff--resume) |
|
|
262
|
-
| **项目记忆** | 知识写入 `.rivet/knowledge/memory.jsonl`;自动注入只带约束类记忆,旧问题显式 recall
|
|
277
|
+
| **项目记忆** | 知识写入 `.rivet/knowledge/memory.jsonl`;自动注入只带约束类记忆,旧问题显式 recall,不劫持新任务;自动记忆形成为 opt-in(默认关闭)。[详情](docs/user-guide.md#跨会话记忆) |
|
|
263
278
|
| **LSP 集成** | 20+ 种语言服务器,跳转定义与查找引用作为 agent 工具,编辑后的诊断自动回注。本机装了才启用 |
|
|
264
279
|
| **MCP 与 Skills** | 接入外部工具服务器;可复用的工作流剧本,渐进披露,`tianshu skills` 统一管理。[详情](docs/user-guide.md#mcpmodel-context-protocol) |
|
|
265
280
|
| **成本控制** | 推理强度自动降档、压缩走轻量模型、峰谷计价提醒,`/usage` 查看本地 Token 账本。[详情](docs/user-guide.md#api-成本控制) |
|
|
266
281
|
| **自研 TUI** | 纯 ANSI 零依赖:GlanceBar 状态栏、流式中 `/steer` 打断、命令面板、内联图片、受限终端纯文本模式。[详情](docs/user-guide.md#终端-uitui) |
|
|
267
|
-
| **桌面端** | 集成终端、主题工作室、本地离线语音输入、手机遥控审批、多会话并发、Windows 下连接 WSL
|
|
282
|
+
| **桌面端** | 集成终端、主题工作室、本地离线语音输入、手机遥控审批、多会话并发、Windows 下连接 WSL 运行时;自动更新断点续传、来源校验、损坏自恢复。[桌面端指南](docs/desktop-guide.md) |
|
|
268
283
|
|
|
269
284
|
## 支持的模型
|
|
270
285
|
|
|
@@ -375,7 +390,8 @@ node dist/cli/entry.js
|
|
|
375
390
|
|
|
376
391
|
- **讨论与提问**:[GitHub Discussions](https://github.com/huiliyi37/Tianshu-harness/discussions)
|
|
377
392
|
- **Bug 与功能请求**:[GitHub Issues](https://github.com/huiliyi37/Tianshu-harness/issues),附上 `tianshu logs --json` 的输出能更快定位
|
|
378
|
-
-
|
|
393
|
+
- **星港论坛**:[tianshu.club](https://tianshu.club/) — 自建社区「天枢星港」,版本讨论、经验分享与长期话题的存档地(Token 台账可选同步展示)
|
|
394
|
+
- **Discord**:[天枢 tianshu-harness 官方交流群](https://discord.gg/aNEPzPuYV) [](https://discord.gg/aNEPzPuYV)
|
|
379
395
|
- **QQ 群**:「TUI」,群号 `1017892942`
|
|
380
396
|
- **微信群**:扫码加入,二维码 7 天有效,过期请在 Discussions 留言补码
|
|
381
397
|
|
|
@@ -33,9 +33,9 @@ import {
|
|
|
33
33
|
saveAccountIdentity,
|
|
34
34
|
saveAccountProfile,
|
|
35
35
|
saveAccountToken
|
|
36
|
-
} from "./chunk-
|
|
37
|
-
import "./chunk-XUMXRP3L.js";
|
|
36
|
+
} from "./chunk-QMNTSDWW.js";
|
|
38
37
|
import "./chunk-GH4JI6BC.js";
|
|
38
|
+
import "./chunk-XUMXRP3L.js";
|
|
39
39
|
import "./chunk-R5Q7AA2C.js";
|
|
40
40
|
import "./chunk-4I2HDYJG.js";
|
|
41
41
|
export {
|
|
@@ -17,7 +17,7 @@ async function handleAccountLogin(app) {
|
|
|
17
17
|
accountStore,
|
|
18
18
|
saveAccountToken,
|
|
19
19
|
isTerminalPollStatus
|
|
20
|
-
} = await import("./account-
|
|
20
|
+
} = await import("./account-SIZF2YV5.js");
|
|
21
21
|
const { openInBrowser } = await import("./login-flow-WBIW4TPG.js");
|
|
22
22
|
const { rivetHome } = await import("./paths-PE56RINB.js");
|
|
23
23
|
app.commitStatic("\u6B63\u5728\u5411\u5929\u67A2\u7533\u8BF7\u8BBE\u5907\u6388\u6743\u2026");
|
|
@@ -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-
|
|
45
|
+
const { primeStellarIdentity } = await import("./account-status-I42D2QJQ.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,7 +54,7 @@ ${created.verifyUrl}
|
|
|
54
54
|
return true;
|
|
55
55
|
}
|
|
56
56
|
async function handleAccountLogout(app) {
|
|
57
|
-
const { accountStore, revokeAccountSession } = await import("./account-
|
|
57
|
+
const { accountStore, revokeAccountSession } = await import("./account-SIZF2YV5.js");
|
|
58
58
|
const { rivetHome } = await import("./paths-PE56RINB.js");
|
|
59
59
|
const store = accountStore(rivetHome());
|
|
60
60
|
const credential = store.load()?.accessToken;
|
|
@@ -5,12 +5,12 @@ import {
|
|
|
5
5
|
commitWelcomeStellarIdentityLine,
|
|
6
6
|
formatStellarIdentityLine,
|
|
7
7
|
primeStellarIdentity
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-32GXAYAY.js";
|
|
9
|
+
import "./chunk-QMNTSDWW.js";
|
|
10
|
+
import "./chunk-GH4JI6BC.js";
|
|
10
11
|
import "./chunk-6I2YCDUJ.js";
|
|
11
12
|
import "./chunk-XUMXRP3L.js";
|
|
12
13
|
import "./chunk-MUIODEN6.js";
|
|
13
|
-
import "./chunk-GH4JI6BC.js";
|
|
14
14
|
import "./chunk-3DZ5UT3I.js";
|
|
15
15
|
import "./chunk-GP37UWT4.js";
|
|
16
16
|
import "./chunk-R5Q7AA2C.js";
|
|
@@ -2,28 +2,28 @@
|
|
|
2
2
|
import { createRequire as __rivetCreateRequire } from 'node:module'; const require = __rivetCreateRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
buildModelCards
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-ERJ3IGMT.js";
|
|
6
6
|
import {
|
|
7
7
|
CHILD_TICK_INTERVAL_MS,
|
|
8
8
|
DomainKnowledgeStore,
|
|
9
9
|
createFrameDecoder,
|
|
10
10
|
createInteractiveToolRegistry,
|
|
11
11
|
encodeFrame
|
|
12
|
-
} from "../../chunk-
|
|
12
|
+
} from "../../chunk-ZPVAFPIR.js";
|
|
13
13
|
import {
|
|
14
14
|
DelegationCoordinator,
|
|
15
15
|
createWorkerRuntimeFactory,
|
|
16
16
|
runWorkerSession,
|
|
17
17
|
workerFailureResult
|
|
18
|
-
} from "../../chunk-
|
|
18
|
+
} from "../../chunk-FUWCG4K2.js";
|
|
19
19
|
import "../../chunk-QH44FLDF.js";
|
|
20
|
-
import "../../chunk-
|
|
20
|
+
import "../../chunk-UMCXCMT5.js";
|
|
21
21
|
import "../../chunk-NBCW3AJZ.js";
|
|
22
|
-
import "../../chunk-
|
|
22
|
+
import "../../chunk-EZJNFWD6.js";
|
|
23
23
|
import {
|
|
24
24
|
filterToolRegistry
|
|
25
25
|
} from "../../chunk-ZGYMTR24.js";
|
|
26
|
-
import "../../chunk-
|
|
26
|
+
import "../../chunk-6T2LP2JY.js";
|
|
27
27
|
import "../../chunk-6FEJAGKX.js";
|
|
28
28
|
import "../../chunk-VPJJ55WU.js";
|
|
29
29
|
import "../../chunk-XMSZJCNB.js";
|
|
@@ -33,27 +33,27 @@ import "../../chunk-UYR23YAR.js";
|
|
|
33
33
|
import "../../chunk-5VZWXY7D.js";
|
|
34
34
|
import "../../chunk-MHWHJU5B.js";
|
|
35
35
|
import "../../chunk-6ZVYO2RV.js";
|
|
36
|
-
import "../../chunk-
|
|
36
|
+
import "../../chunk-5NS5VTEG.js";
|
|
37
37
|
import "../../chunk-YDL6H5EF.js";
|
|
38
38
|
import "../../chunk-BUPAWHNU.js";
|
|
39
|
-
import "../../chunk-
|
|
39
|
+
import "../../chunk-CD3J7T6J.js";
|
|
40
40
|
import "../../chunk-HVO25CQO.js";
|
|
41
41
|
import "../../chunk-TKSE3QAY.js";
|
|
42
|
-
import "../../chunk-
|
|
42
|
+
import "../../chunk-TWHEV3RK.js";
|
|
43
43
|
import "../../chunk-SMMWTH2X.js";
|
|
44
44
|
import {
|
|
45
45
|
deriveWorkerSessionId
|
|
46
46
|
} from "../../chunk-Q56A5NIH.js";
|
|
47
47
|
import "../../chunk-6I2YCDUJ.js";
|
|
48
48
|
import "../../chunk-4RCVGE32.js";
|
|
49
|
-
import "../../chunk-
|
|
49
|
+
import "../../chunk-JISDUUGJ.js";
|
|
50
50
|
import {
|
|
51
51
|
PromptEngine
|
|
52
|
-
} from "../../chunk-
|
|
52
|
+
} from "../../chunk-5UDGLJWY.js";
|
|
53
53
|
import {
|
|
54
54
|
ModelBindingUnavailable,
|
|
55
55
|
resolveModelBinding
|
|
56
|
-
} from "../../chunk-
|
|
56
|
+
} from "../../chunk-IYC2YV4N.js";
|
|
57
57
|
import {
|
|
58
58
|
applyDescriptionMode
|
|
59
59
|
} from "../../chunk-ULTZP5EM.js";
|
|
@@ -73,9 +73,9 @@ import "../../chunk-GLNSIQCG.js";
|
|
|
73
73
|
import "../../chunk-S3JLCMYK.js";
|
|
74
74
|
import "../../chunk-IHS675GQ.js";
|
|
75
75
|
import "../../chunk-J4BX3L5F.js";
|
|
76
|
-
import "../../chunk-
|
|
76
|
+
import "../../chunk-RI5QX3VY.js";
|
|
77
77
|
import "../../chunk-F4YO6TH6.js";
|
|
78
|
-
import "../../chunk-
|
|
78
|
+
import "../../chunk-Q2P2X2T4.js";
|
|
79
79
|
import "../../chunk-CABETIHP.js";
|
|
80
80
|
import "../../chunk-YFQDPZ5E.js";
|
|
81
81
|
import "../../chunk-LCRH7DHL.js";
|
|
@@ -143,18 +143,15 @@ import {
|
|
|
143
143
|
} from "../../chunk-WZWOG6SI.js";
|
|
144
144
|
import "../../chunk-6PBIFODH.js";
|
|
145
145
|
import "../../chunk-C2G4F4QA.js";
|
|
146
|
-
import "../../chunk-ODFVU622.js";
|
|
147
|
-
import "../../chunk-DLVSLSMB.js";
|
|
148
|
-
import "../../chunk-T2B6Z67Y.js";
|
|
149
146
|
import {
|
|
150
147
|
createProviderClient
|
|
151
|
-
} from "../../chunk-
|
|
148
|
+
} from "../../chunk-DRXRU7JG.js";
|
|
152
149
|
import {
|
|
153
150
|
resolveCapabilities
|
|
154
151
|
} from "../../chunk-USRIG5QU.js";
|
|
155
152
|
import "../../chunk-LPYOO7VH.js";
|
|
156
153
|
import "../../chunk-EAU4YQUW.js";
|
|
157
|
-
import "../../chunk-
|
|
154
|
+
import "../../chunk-PZEPU7EQ.js";
|
|
158
155
|
import "../../chunk-KJ7QRUYA.js";
|
|
159
156
|
import "../../chunk-ZBCFV6QX.js";
|
|
160
157
|
import "../../chunk-DW2ZQATG.js";
|
|
@@ -173,6 +170,9 @@ import "../../chunk-LJJVWXWY.js";
|
|
|
173
170
|
import "../../chunk-UCMP5W4Q.js";
|
|
174
171
|
import "../../chunk-V3ZSAVGZ.js";
|
|
175
172
|
import "../../chunk-R4DACBK6.js";
|
|
173
|
+
import "../../chunk-ODFVU622.js";
|
|
174
|
+
import "../../chunk-DLVSLSMB.js";
|
|
175
|
+
import "../../chunk-T2B6Z67Y.js";
|
|
176
176
|
import "../../chunk-4TBV3NBW.js";
|
|
177
177
|
import "../../chunk-2LDUB2HU.js";
|
|
178
178
|
import "../../chunk-7LVPOOJY.js";
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
createProviderClient,
|
|
5
5
|
readCallAudit,
|
|
6
6
|
resolveApiKey
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-DRXRU7JG.js";
|
|
8
8
|
import {
|
|
9
9
|
resolveCapabilities
|
|
10
10
|
} from "../chunk-USRIG5QU.js";
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
RUNTIME_PROVENANCE,
|
|
15
15
|
runtimeObservation,
|
|
16
16
|
withRuntimeRun
|
|
17
|
-
} from "../chunk-
|
|
17
|
+
} from "../chunk-PZEPU7EQ.js";
|
|
18
18
|
import "../chunk-KJ7QRUYA.js";
|
|
19
19
|
import "../chunk-ZBCFV6QX.js";
|
|
20
20
|
import "../chunk-DW2ZQATG.js";
|
|
@@ -26,16 +26,16 @@ import {
|
|
|
26
26
|
switchAgentSession,
|
|
27
27
|
wasSessionResumed,
|
|
28
28
|
wireFrozenSnapshotPersist
|
|
29
|
-
} from "./chunk-
|
|
30
|
-
import "./chunk-
|
|
29
|
+
} from "./chunk-ZPVAFPIR.js";
|
|
30
|
+
import "./chunk-FUWCG4K2.js";
|
|
31
31
|
import {
|
|
32
32
|
restorePlanModeFromMeta
|
|
33
33
|
} from "./chunk-QH44FLDF.js";
|
|
34
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-UMCXCMT5.js";
|
|
35
35
|
import "./chunk-NBCW3AJZ.js";
|
|
36
|
-
import "./chunk-
|
|
36
|
+
import "./chunk-EZJNFWD6.js";
|
|
37
37
|
import "./chunk-ZGYMTR24.js";
|
|
38
|
-
import "./chunk-
|
|
38
|
+
import "./chunk-6T2LP2JY.js";
|
|
39
39
|
import "./chunk-6FEJAGKX.js";
|
|
40
40
|
import "./chunk-VPJJ55WU.js";
|
|
41
41
|
import "./chunk-XMSZJCNB.js";
|
|
@@ -45,20 +45,20 @@ import "./chunk-UYR23YAR.js";
|
|
|
45
45
|
import "./chunk-5VZWXY7D.js";
|
|
46
46
|
import "./chunk-MHWHJU5B.js";
|
|
47
47
|
import "./chunk-6ZVYO2RV.js";
|
|
48
|
-
import "./chunk-
|
|
48
|
+
import "./chunk-5NS5VTEG.js";
|
|
49
49
|
import "./chunk-YDL6H5EF.js";
|
|
50
50
|
import "./chunk-BUPAWHNU.js";
|
|
51
|
-
import "./chunk-
|
|
51
|
+
import "./chunk-CD3J7T6J.js";
|
|
52
52
|
import "./chunk-HVO25CQO.js";
|
|
53
53
|
import "./chunk-TKSE3QAY.js";
|
|
54
|
-
import "./chunk-
|
|
54
|
+
import "./chunk-TWHEV3RK.js";
|
|
55
55
|
import "./chunk-SMMWTH2X.js";
|
|
56
56
|
import "./chunk-Q56A5NIH.js";
|
|
57
57
|
import "./chunk-6I2YCDUJ.js";
|
|
58
58
|
import "./chunk-4RCVGE32.js";
|
|
59
|
-
import "./chunk-
|
|
60
|
-
import "./chunk-
|
|
61
|
-
import "./chunk-
|
|
59
|
+
import "./chunk-JISDUUGJ.js";
|
|
60
|
+
import "./chunk-5UDGLJWY.js";
|
|
61
|
+
import "./chunk-IYC2YV4N.js";
|
|
62
62
|
import "./chunk-ULTZP5EM.js";
|
|
63
63
|
import "./chunk-Z5KHHDKO.js";
|
|
64
64
|
import "./chunk-2QHQMGCI.js";
|
|
@@ -76,9 +76,9 @@ import "./chunk-GLNSIQCG.js";
|
|
|
76
76
|
import "./chunk-S3JLCMYK.js";
|
|
77
77
|
import "./chunk-IHS675GQ.js";
|
|
78
78
|
import "./chunk-J4BX3L5F.js";
|
|
79
|
-
import "./chunk-
|
|
79
|
+
import "./chunk-RI5QX3VY.js";
|
|
80
80
|
import "./chunk-F4YO6TH6.js";
|
|
81
|
-
import "./chunk-
|
|
81
|
+
import "./chunk-Q2P2X2T4.js";
|
|
82
82
|
import "./chunk-CABETIHP.js";
|
|
83
83
|
import "./chunk-YFQDPZ5E.js";
|
|
84
84
|
import "./chunk-LCRH7DHL.js";
|
|
@@ -136,14 +136,11 @@ import "./chunk-JIVTST33.js";
|
|
|
136
136
|
import "./chunk-WZWOG6SI.js";
|
|
137
137
|
import "./chunk-6PBIFODH.js";
|
|
138
138
|
import "./chunk-C2G4F4QA.js";
|
|
139
|
-
import "./chunk-
|
|
140
|
-
import "./chunk-DLVSLSMB.js";
|
|
141
|
-
import "./chunk-T2B6Z67Y.js";
|
|
142
|
-
import "./chunk-IJBBCKR3.js";
|
|
139
|
+
import "./chunk-DRXRU7JG.js";
|
|
143
140
|
import "./chunk-USRIG5QU.js";
|
|
144
141
|
import "./chunk-LPYOO7VH.js";
|
|
145
142
|
import "./chunk-EAU4YQUW.js";
|
|
146
|
-
import "./chunk-
|
|
143
|
+
import "./chunk-PZEPU7EQ.js";
|
|
147
144
|
import "./chunk-KJ7QRUYA.js";
|
|
148
145
|
import "./chunk-ZBCFV6QX.js";
|
|
149
146
|
import "./chunk-DW2ZQATG.js";
|
|
@@ -162,6 +159,9 @@ import "./chunk-LJJVWXWY.js";
|
|
|
162
159
|
import "./chunk-UCMP5W4Q.js";
|
|
163
160
|
import "./chunk-V3ZSAVGZ.js";
|
|
164
161
|
import "./chunk-R4DACBK6.js";
|
|
162
|
+
import "./chunk-ODFVU622.js";
|
|
163
|
+
import "./chunk-DLVSLSMB.js";
|
|
164
|
+
import "./chunk-T2B6Z67Y.js";
|
|
165
165
|
import "./chunk-4TBV3NBW.js";
|
|
166
166
|
import "./chunk-2LDUB2HU.js";
|
|
167
167
|
import "./chunk-7LVPOOJY.js";
|
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
matchModelIds,
|
|
7
7
|
probeProvider,
|
|
8
8
|
savedEndpointPolicy
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-DF5GCBXI.js";
|
|
10
10
|
import {
|
|
11
11
|
tryResolveCredentialKey
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-DRXRU7JG.js";
|
|
13
13
|
import {
|
|
14
14
|
resolveCapabilities
|
|
15
15
|
} from "./chunk-USRIG5QU.js";
|