agent-trellis 0.8.0 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -207
- package/dist/adapters/zcode.d.ts +21 -0
- package/dist/adapters/zcode.js +234 -0
- package/dist/cli.js +25 -9
- package/dist/commands/doctor.js +2 -0
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.js +4 -1
- package/dist/commands/mcp.d.ts +56 -14
- package/dist/commands/mcp.js +105 -28
- package/dist/commands/mcpGateway.js +2 -1
- package/dist/commands/mcpImport.d.ts +21 -2
- package/dist/commands/mcpImport.js +30 -7
- package/dist/commands/memory.d.ts +13 -1
- package/dist/commands/memory.js +15 -0
- package/dist/commands/migrate.js +4 -1
- package/dist/commands/onboard.js +15 -4
- package/dist/commands/rollback.js +24 -1
- package/dist/commands/secretsAudit.js +4 -1
- package/dist/commands/skill.d.ts +35 -6
- package/dist/commands/skill.js +67 -13
- package/dist/commands/sync.js +3 -1
- package/dist/core/adapter.d.ts +11 -1
- package/dist/core/types.d.ts +1 -1
- package/dist/core/types.js +1 -0
- package/dist/lib/agentBridge.d.ts +169 -0
- package/dist/lib/agentBridge.js +367 -0
- package/dist/lib/agentBridgeProvider.d.ts +14 -0
- package/dist/lib/agentBridgeProvider.js +95 -0
- package/dist/lib/backup.d.ts +30 -0
- package/dist/lib/backup.js +16 -1
- package/dist/lib/chatAgents.d.ts +42 -0
- package/dist/lib/chatAgents.js +59 -0
- package/dist/lib/envVarNames.d.ts +3 -0
- package/dist/lib/envVarNames.js +19 -0
- package/dist/lib/installAgent.d.ts +1 -1
- package/dist/lib/installAgent.js +1 -1
- package/dist/lib/mcpMigrateRead.d.ts +1 -0
- package/dist/lib/mcpMigrateRead.js +19 -1
- package/dist/lib/realHomeSnapshot.js +5 -0
- package/dist/lib/runtimeControlProvider.js +2 -0
- package/dist/lib/taskStore.js +1 -1
- package/dist/lib/terminalPicker.js +33 -6
- package/dist/lib/zcodeOwnership.d.ts +17 -0
- package/dist/lib/zcodeOwnership.js +37 -0
- package/dist/pi-bridge/bundle.js +2 -1
- package/dist/probes/codex.d.ts +7 -0
- package/dist/probes/codex.js +37 -5
- package/dist/probes/zcode.d.ts +32 -0
- package/dist/probes/zcode.js +140 -0
- package/docs/architecture.md +9 -5
- package/docs/assets/brand-v3/trellis-mark-v3-a.png +0 -0
- package/docs/assets/brand-v3/trellis-mark-v3-a.svg +10 -0
- package/docs/assets/poster-series-v3/README.md +60 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-horizontal-en.png +0 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-horizontal-en.svg +51 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-horizontal-zh.png +0 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-horizontal-zh.svg +51 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-memory-en.png +0 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-memory-en.svg +48 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-memory-zh.png +0 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-memory-zh.svg +48 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-migrate-en.png +0 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-migrate-en.svg +56 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-migrate-zh.png +0 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-migrate-zh.svg +56 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-switch-en.png +0 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-switch-en.svg +47 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-switch-zh.png +0 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-switch-zh.svg +47 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-unified-en.png +0 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-unified-en.svg +51 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-unified-zh.png +0 -0
- package/docs/assets/poster-series-v3/agent-trellis-poster-v3-unified-zh.svg +51 -0
- package/docs/getting-started.md +173 -12
- package/docs/overview.md +6 -3
- package/docs/overview.zh-CN.md +5 -3
- package/docs/roadmap.md +2 -1
- package/docs/video/README.md +76 -0
- package/docs/video/build/audio/01-opening.aiff +0 -0
- package/docs/video/build/audio/01-opening.mp3 +0 -0
- package/docs/video/build/audio/02-pain.aiff +0 -0
- package/docs/video/build/audio/02-pain.mp3 +0 -0
- package/docs/video/build/audio/03-solution.aiff +0 -0
- package/docs/video/build/audio/03-solution.mp3 +0 -0
- package/docs/video/build/audio/04-install.aiff +0 -0
- package/docs/video/build/audio/04-install.mp3 +0 -0
- package/docs/video/build/audio/04-setup.mp3 +0 -0
- package/docs/video/build/audio/05-dryrun.mp3 +0 -0
- package/docs/video/build/audio/05-init.aiff +0 -0
- package/docs/video/build/audio/05-init.mp3 +0 -0
- package/docs/video/build/audio/05-interactive.mp3 +0 -0
- package/docs/video/build/audio/06-dryrun.aiff +0 -0
- package/docs/video/build/audio/06-dryrun.mp3 +0 -0
- package/docs/video/build/audio/06-onboard.mp3 +0 -0
- package/docs/video/build/audio/06-run.mp3 +0 -0
- package/docs/video/build/audio/07-onboard.aiff +0 -0
- package/docs/video/build/audio/07-onboard.mp3 +0 -0
- package/docs/video/build/audio/07-verify.mp3 +0 -0
- package/docs/video/build/audio/08-closing.mp3 +0 -0
- package/docs/video/build/audio/08-doctor.aiff +0 -0
- package/docs/video/build/audio/08-doctor.mp3 +0 -0
- package/docs/video/build/audio/09-rollback.aiff +0 -0
- package/docs/video/build/audio/09-rollback.mp3 +0 -0
- package/docs/video/build/audio/10-principles.aiff +0 -0
- package/docs/video/build/audio/10-principles.mp3 +0 -0
- package/docs/video/build/audio/11-closing.aiff +0 -0
- package/docs/video/build/audio/11-closing.mp3 +0 -0
- package/docs/video/build/frames/01-opening-0.png +0 -0
- package/docs/video/build/frames/02-pain-1.png +0 -0
- package/docs/video/build/frames/02-pain-2.png +0 -0
- package/docs/video/build/frames/03-solution-3.png +0 -0
- package/docs/video/build/frames/04-install-4.png +0 -0
- package/docs/video/build/frames/04-setup-4.png +0 -0
- package/docs/video/build/frames/04-setup-5.png +0 -0
- package/docs/video/build/frames/05-dryrun-6.png +0 -0
- package/docs/video/build/frames/05-init-5.png +0 -0
- package/docs/video/build/frames/05-interactive-5.png +0 -0
- package/docs/video/build/frames/05-interactive-6.png +0 -0
- package/docs/video/build/frames/06-dryrun-6.png +0 -0
- package/docs/video/build/frames/06-dryrun-7.png +0 -0
- package/docs/video/build/frames/06-onboard-7.png +0 -0
- package/docs/video/build/frames/06-onboard-8.png +0 -0
- package/docs/video/build/frames/06-run-7.png +0 -0
- package/docs/video/build/frames/06-run-8.png +0 -0
- package/docs/video/build/frames/07-onboard-10.png +0 -0
- package/docs/video/build/frames/07-onboard-7.png +0 -0
- package/docs/video/build/frames/07-onboard-8.png +0 -0
- package/docs/video/build/frames/07-onboard-9.png +0 -0
- package/docs/video/build/frames/07-verify-10.png +0 -0
- package/docs/video/build/frames/07-verify-8.png +0 -0
- package/docs/video/build/frames/07-verify-9.png +0 -0
- package/docs/video/build/frames/08-closing-10.png +0 -0
- package/docs/video/build/frames/08-closing-11.png +0 -0
- package/docs/video/build/frames/08-doctor-11.png +0 -0
- package/docs/video/build/frames/08-doctor-9.png +0 -0
- package/docs/video/build/frames/09-rollback-10.png +0 -0
- package/docs/video/build/frames/09-rollback-12.png +0 -0
- package/docs/video/build/frames/10-principles-11.png +0 -0
- package/docs/video/build/frames/10-principles-13.png +0 -0
- package/docs/video/build/frames/11-closing-12.png +0 -0
- package/docs/video/build/frames/11-closing-14.png +0 -0
- package/docs/video/build/segments/01-opening.mp4 +0 -0
- package/docs/video/build/segments/01-opening.txt +3 -0
- package/docs/video/build/segments/02-pain.mp4 +0 -0
- package/docs/video/build/segments/02-pain.txt +5 -0
- package/docs/video/build/segments/03-solution.mp4 +0 -0
- package/docs/video/build/segments/03-solution.txt +3 -0
- package/docs/video/build/segments/04-install.mp4 +0 -0
- package/docs/video/build/segments/04-install.txt +3 -0
- package/docs/video/build/segments/04-setup.mp4 +0 -0
- package/docs/video/build/segments/04-setup.txt +3 -0
- package/docs/video/build/segments/05-dryrun.mp4 +0 -0
- package/docs/video/build/segments/05-dryrun.txt +3 -0
- package/docs/video/build/segments/05-init.mp4 +0 -0
- package/docs/video/build/segments/05-init.txt +3 -0
- package/docs/video/build/segments/05-interactive.mp4 +0 -0
- package/docs/video/build/segments/05-interactive.txt +5 -0
- package/docs/video/build/segments/06-dryrun.mp4 +0 -0
- package/docs/video/build/segments/06-dryrun.txt +3 -0
- package/docs/video/build/segments/06-onboard.mp4 +0 -0
- package/docs/video/build/segments/06-onboard.txt +5 -0
- package/docs/video/build/segments/06-run.mp4 +0 -0
- package/docs/video/build/segments/06-run.txt +3 -0
- package/docs/video/build/segments/07-onboard.mp4 +0 -0
- package/docs/video/build/segments/07-onboard.txt +5 -0
- package/docs/video/build/segments/07-verify.mp4 +0 -0
- package/docs/video/build/segments/07-verify.txt +5 -0
- package/docs/video/build/segments/08-closing.mp4 +0 -0
- package/docs/video/build/segments/08-closing.txt +3 -0
- package/docs/video/build/segments/08-doctor.mp4 +0 -0
- package/docs/video/build/segments/08-doctor.txt +3 -0
- package/docs/video/build/segments/09-rollback.mp4 +0 -0
- package/docs/video/build/segments/09-rollback.txt +3 -0
- package/docs/video/build/segments/10-principles.mp4 +0 -0
- package/docs/video/build/segments/10-principles.txt +3 -0
- package/docs/video/build/segments/11-closing.mp4 +0 -0
- package/docs/video/build/segments/11-closing.txt +3 -0
- package/docs/video/build/segments/final.txt +8 -0
- package/docs/video/build-ai/audio/01-hook.mp3 +0 -0
- package/docs/video/build-ai/audio/02-pain.mp3 +0 -0
- package/docs/video/build-ai/audio/03-solution.mp3 +0 -0
- package/docs/video/build-ai/audio/04-how.mp3 +0 -0
- package/docs/video/build-ai/audio/05-safe.mp3 +0 -0
- package/docs/video/build-ai/audio/06-closing.mp3 +0 -0
- package/docs/video/build-ai/clips/01-hook.mp4 +0 -0
- package/docs/video/build-ai/clips/02-pain.mp4 +0 -0
- package/docs/video/build-ai/clips/03-solution.mp4 +0 -0
- package/docs/video/build-ai/clips/04-how.mp4 +0 -0
- package/docs/video/build-ai/clips/05-safe.mp4 +0 -0
- package/docs/video/build-ai/clips/06-closing.mp4 +0 -0
- package/docs/video/build-ai/first-frame-02-pain.png +0 -0
- package/docs/video/build-ai/first-frame-03-solution.png +0 -0
- package/docs/video/build-ai/first-frame-04-how.png +0 -0
- package/docs/video/build-ai/first-frame-05-safe.png +0 -0
- package/docs/video/build-ai/segments/01-hook.caption.txt +2 -0
- package/docs/video/build-ai/segments/01-hook.mp4 +0 -0
- package/docs/video/build-ai/segments/02-pain.mp4 +0 -0
- package/docs/video/build-ai/segments/03-solution.mp4 +0 -0
- package/docs/video/build-ai/segments/04-how.mp4 +0 -0
- package/docs/video/build-ai/segments/05-safe.mp4 +0 -0
- package/docs/video/build-ai/segments/06-closing.mp4 +0 -0
- package/docs/video/build-ai/segments/cap-01-hook.png +0 -0
- package/docs/video/build-ai/segments/cap-02-pain.png +0 -0
- package/docs/video/build-ai/segments/cap-03-solution.png +0 -0
- package/docs/video/build-ai/segments/cap-04-how.png +0 -0
- package/docs/video/build-ai/segments/cap-05-safe.png +0 -0
- package/docs/video/build-ai/segments/cap-06-closing.png +0 -0
- package/docs/video/build-ai/segments/final.txt +6 -0
- package/docs/video/build-posters/audio/01-hook.mp3 +0 -0
- package/docs/video/build-posters/audio/02-pain.mp3 +0 -0
- package/docs/video/build-posters/audio/03-solution.mp3 +0 -0
- package/docs/video/build-posters/audio/04-how.mp3 +0 -0
- package/docs/video/build-posters/audio/05-safe.mp3 +0 -0
- package/docs/video/build-posters/audio/06-closing.mp3 +0 -0
- package/docs/video/build-posters/cap-01-hook.png +0 -0
- package/docs/video/build-posters/cap-02-pain.png +0 -0
- package/docs/video/build-posters/cap-03-solution.png +0 -0
- package/docs/video/build-posters/cap-04-how.png +0 -0
- package/docs/video/build-posters/cap-05-safe.png +0 -0
- package/docs/video/build-posters/cap-06-closing.png +0 -0
- package/docs/video/build-posters/card-01-hook.png +0 -0
- package/docs/video/build-posters/card-06-closing.png +0 -0
- package/docs/video/build-posters/segments/01-hook.mp4 +0 -0
- package/docs/video/build-posters/segments/02-pain.mp4 +0 -0
- package/docs/video/build-posters/segments/03-solution.mp4 +0 -0
- package/docs/video/build-posters/segments/04-how.mp4 +0 -0
- package/docs/video/build-posters/segments/05-safe.mp4 +0 -0
- package/docs/video/build-posters/segments/06-closing.mp4 +0 -0
- package/docs/video/build-posters/segments/final.txt +6 -0
- package/docs/video/generate-video-ai.mjs +334 -0
- package/docs/video/generate-video-posters.mjs +204 -0
- package/docs/video/generate-video.mjs +426 -0
- package/docs/video/outline.zh-CN.md +102 -0
- package/docs/video/trellis-demo-video-ai.mp4 +0 -0
- package/docs/video/trellis-demo-video.mp4 +0 -0
- package/docs/video/voiceover.zh-CN.md +49 -0
- package/package.json +5 -2
- package/schema/servers.example.yaml +1 -1
- package/docs/assets/agent-trellis-architecture-horizontal.svg +0 -80
- package/docs/assets/agent-trellis-architecture-vertical.svg +0 -82
- package/docs/assets/trellis-mark.svg +0 -12
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1440" height="1440" viewBox="0 0 1440 1440">
|
|
2
|
+
<rect width="1440" height="1440" fill="#fafaf8"/>
|
|
3
|
+
<g transform="translate(180 0)">
|
|
4
|
+
<g transform="translate(64 48) scale(0.56)" fill="none" stroke="#161c24" stroke-linecap="round">
|
|
5
|
+
<defs><clipPath id="v3-beam-64-48"><rect x="21" y="23" width="54" height="9" rx="4.5"/></clipPath></defs>
|
|
6
|
+
<rect x="16" y="18" width="64" height="18" rx="9" stroke-width="5.5"/>
|
|
7
|
+
<g stroke-width="2.6" clip-path="url(#v3-beam-64-48)"><path d="M-64.5 32 L-55.5 23"/><path d="M-64.5 23 L-55.5 32"/><path d="M-46.5 32 L-37.5 23"/><path d="M-46.5 23 L-37.5 32"/><path d="M-28.5 32 L-19.5 23"/><path d="M-28.5 23 L-19.5 32"/><path d="M-10.5 32 L-1.5 23"/><path d="M-10.5 23 L-1.5 32"/><path d="M7.5 32 L16.5 23"/><path d="M7.5 23 L16.5 32"/><path d="M25.5 32 L34.5 23"/><path d="M25.5 23 L34.5 32"/><path d="M43.5 32 L52.5 23"/><path d="M43.5 23 L52.5 32"/><path d="M61.5 32 L70.5 23"/><path d="M61.5 23 L70.5 32"/><path d="M79.5 32 L88.5 23"/><path d="M79.5 23 L88.5 32"/><path d="M97.5 32 L106.5 23"/><path d="M97.5 23 L106.5 32"/><path d="M115.5 32 L124.5 23"/><path d="M115.5 23 L124.5 32"/></g>
|
|
8
|
+
<path d="M48 36 V78" stroke-width="8"/>
|
|
9
|
+
</g>
|
|
10
|
+
<text x="132" y="87" text-anchor="start" font-family="Helvetica Neue, PingFang SC, Arial, sans-serif" font-size="30" font-weight="700" letter-spacing="2.2" fill="#161c24">AGENT TRELLIS</text>
|
|
11
|
+
<text x="1016" y="87" text-anchor="end" font-family="Menlo, SFMono-Regular, monospace" font-size="19" font-weight="400" letter-spacing="1.7" fill="#69727d">ADAPT / 04</text>
|
|
12
|
+
<path d="M64 142 H1016" stroke="#dfe4ea" stroke-width="1.5"/>
|
|
13
|
+
<rect x="64" y="138.5" width="52" height="3.5" fill="#c2410c"/>
|
|
14
|
+
|
|
15
|
+
<text x="96" y="232" text-anchor="start" font-family="Menlo, SFMono-Regular, monospace" font-size="22" font-weight="400" letter-spacing="2.2" fill="#c2410c">UNIFIED CODE AGENT RUNTIME</text>
|
|
16
|
+
<rect x="64" y="298" width="7" height="178" fill="#c2410c"/>
|
|
17
|
+
<text x="96" y="360" text-anchor="start" font-family="Helvetica Neue, PingFang SC, Arial, sans-serif" font-size="80" font-weight="800" letter-spacing="-1" fill="#161c24">切换 Agent,</text><text x="96" y="458" text-anchor="start" font-family="Helvetica Neue, PingFang SC, Arial, sans-serif" font-size="80" font-weight="800" letter-spacing="-1" fill="#161c24">不丢上下文。</text>
|
|
18
|
+
<text x="96" y="524" text-anchor="start" font-family="Helvetica Neue, PingFang SC, Arial, sans-serif" font-size="35" font-weight="450" letter-spacing="0" fill="#69727d">保留指令、工具和工作状态,继续</text><text x="96" y="570" text-anchor="start" font-family="Helvetica Neue, PingFang SC, Arial, sans-serif" font-size="35" font-weight="450" letter-spacing="0" fill="#69727d">完成当前任务。</text>
|
|
19
|
+
|
|
20
|
+
<g>
|
|
21
|
+
<rect x="64" y="650" width="952" height="480" fill="none" stroke="#dfe4ea" stroke-width="1.5"/>
|
|
22
|
+
<path d="M55 650 H73 M64 641 V659" fill="none" stroke="#dfe4ea" stroke-width="2"/><path d="M1007 650 H1025 M1016 641 V659" fill="none" stroke="#dfe4ea" stroke-width="2"/><path d="M55 1130 H73 M64 1121 V1139" fill="none" stroke="#dfe4ea" stroke-width="2"/><path d="M1007 1130 H1025 M1016 1121 V1139" fill="none" stroke="#dfe4ea" stroke-width="2"/>
|
|
23
|
+
<rect x="82" y="628" width="346" height="44" fill="#fafaf8"/>
|
|
24
|
+
<text x="99" y="658" text-anchor="start" font-family="Menlo, SFMono-Regular, monospace" font-size="20" font-weight="400" letter-spacing="1.8" fill="#c2410c">FIG.04 — CONTEXT HANDOFF</text>
|
|
25
|
+
</g>
|
|
26
|
+
<g transform="translate(0 50)"><g>
|
|
27
|
+
<path d="M180 720 H460" fill="none" stroke="#69727d" stroke-width="3.5"/>
|
|
28
|
+
<path d="M478 720 H920" fill="none" stroke="#69727d" stroke-width="3.5" stroke-dasharray="8 8"/>
|
|
29
|
+
<path d="M180 920 H920" fill="none" stroke="#69727d" stroke-width="3.5"/>
|
|
30
|
+
<path d="M180 712 V728 M920 712 V728 M180 912 V928 M920 912 V928" fill="none" stroke="#69727d" stroke-width="3"/>
|
|
31
|
+
<text x="180" y="692" text-anchor="start" font-family="Menlo, SFMono-Regular, monospace" font-size="16" font-weight="400" letter-spacing="1" fill="#69727d">AGENT A</text>
|
|
32
|
+
<text x="920" y="960" text-anchor="end" font-family="Menlo, SFMono-Regular, monospace" font-size="16" font-weight="400" letter-spacing="1" fill="#69727d">AGENT B</text>
|
|
33
|
+
<path d="M180 720 H420 C 540 720 520 920 640 920 H920" fill="none" stroke="#161c24" stroke-width="5" stroke-linecap="round"/>
|
|
34
|
+
<circle cx="180" cy="720" r="7.5" fill="#161c24"/>
|
|
35
|
+
<circle cx="920" cy="920" r="16" fill="none" stroke="#c2410c" stroke-width="3"/>
|
|
36
|
+
<circle cx="920" cy="920" r="8.5" fill="#c2410c"/>
|
|
37
|
+
</g></g>
|
|
38
|
+
<text x="540" y="1088" text-anchor="middle" font-family="Menlo, SFMono-Regular, monospace" font-size="22" font-weight="400" letter-spacing="2" fill="#c2410c">CONTEXT CARRIES OVER</text>
|
|
39
|
+
|
|
40
|
+
<text x="64" y="1198" text-anchor="start" font-family="Menlo, SFMono-Regular, monospace" font-size="19" font-weight="400" letter-spacing="1.6" fill="#69727d">CLAUDE · CODEX · KIRO · PI / KIMI</text>
|
|
41
|
+
<text x="1016" y="1198" text-anchor="end" font-family="Menlo, SFMono-Regular, monospace" font-size="19" font-weight="400" letter-spacing="1.6" fill="#69727d">agent-trellis.dev</text>
|
|
42
|
+
<path d="M64 1232 H1016" stroke="#161c24" stroke-width="3.5"/>
|
|
43
|
+
<circle cx="77" cy="1294" r="7" fill="#c2410c"/>
|
|
44
|
+
<text x="108" y="1304" text-anchor="start" font-family="Menlo, SFMono-Regular, monospace" font-size="32" font-weight="500" letter-spacing="0.2" fill="#161c24">$ npm i -g agent-trellis</text>
|
|
45
|
+
<text x="1016" y="1304" text-anchor="end" font-family="Menlo, SFMono-Regular, monospace" font-size="18" font-weight="400" letter-spacing="1.5" fill="#69727d">OPEN SOURCE / LOCAL FIRST</text>
|
|
46
|
+
</g>
|
|
47
|
+
</svg>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1440" height="1440" viewBox="0 0 1440 1440">
|
|
2
|
+
<rect width="1440" height="1440" fill="#fafaf8"/>
|
|
3
|
+
<g transform="translate(180 0)">
|
|
4
|
+
<g transform="translate(64 48) scale(0.56)" fill="none" stroke="#161c24" stroke-linecap="round">
|
|
5
|
+
<defs><clipPath id="v3-beam-64-48"><rect x="21" y="23" width="54" height="9" rx="4.5"/></clipPath></defs>
|
|
6
|
+
<rect x="16" y="18" width="64" height="18" rx="9" stroke-width="5.5"/>
|
|
7
|
+
<g stroke-width="2.6" clip-path="url(#v3-beam-64-48)"><path d="M-64.5 32 L-55.5 23"/><path d="M-64.5 23 L-55.5 32"/><path d="M-46.5 32 L-37.5 23"/><path d="M-46.5 23 L-37.5 32"/><path d="M-28.5 32 L-19.5 23"/><path d="M-28.5 23 L-19.5 32"/><path d="M-10.5 32 L-1.5 23"/><path d="M-10.5 23 L-1.5 32"/><path d="M7.5 32 L16.5 23"/><path d="M7.5 23 L16.5 32"/><path d="M25.5 32 L34.5 23"/><path d="M25.5 23 L34.5 32"/><path d="M43.5 32 L52.5 23"/><path d="M43.5 23 L52.5 32"/><path d="M61.5 32 L70.5 23"/><path d="M61.5 23 L70.5 32"/><path d="M79.5 32 L88.5 23"/><path d="M79.5 23 L88.5 32"/><path d="M97.5 32 L106.5 23"/><path d="M97.5 23 L106.5 32"/><path d="M115.5 32 L124.5 23"/><path d="M115.5 23 L124.5 32"/></g>
|
|
8
|
+
<path d="M48 36 V78" stroke-width="8"/>
|
|
9
|
+
</g>
|
|
10
|
+
<text x="132" y="87" text-anchor="start" font-family="Helvetica Neue, PingFang SC, Arial, sans-serif" font-size="30" font-weight="700" letter-spacing="2.2" fill="#161c24">AGENT TRELLIS</text>
|
|
11
|
+
<text x="1016" y="87" text-anchor="end" font-family="Menlo, SFMono-Regular, monospace" font-size="19" font-weight="400" letter-spacing="1.7" fill="#69727d">RUNTIME / 01</text>
|
|
12
|
+
<path d="M64 142 H1016" stroke="#dfe4ea" stroke-width="1.5"/>
|
|
13
|
+
<rect x="64" y="138.5" width="52" height="3.5" fill="#3457d5"/>
|
|
14
|
+
|
|
15
|
+
<text x="96" y="232" text-anchor="start" font-family="Menlo, SFMono-Regular, monospace" font-size="22" font-weight="400" letter-spacing="2.2" fill="#3457d5">UNIFIED CODE AGENT RUNTIME</text>
|
|
16
|
+
<rect x="64" y="287" width="7" height="200" fill="#3457d5"/>
|
|
17
|
+
<text x="96" y="360" text-anchor="start" font-family="Helvetica Neue, PingFang SC, Arial, sans-serif" font-size="94" font-weight="800" letter-spacing="-2.2" fill="#161c24">One Runtime.</text><text x="96" y="466" text-anchor="start" font-family="Helvetica Neue, PingFang SC, Arial, sans-serif" font-size="94" font-weight="800" letter-spacing="-2.2" fill="#161c24">Every Code Agent.</text>
|
|
18
|
+
<text x="96" y="532" text-anchor="start" font-family="Helvetica Neue, PingFang SC, Arial, sans-serif" font-size="34" font-weight="450" letter-spacing="0" fill="#69727d">Skills, MCP, Memory and Instructions</text><text x="96" y="578" text-anchor="start" font-family="Helvetica Neue, PingFang SC, Arial, sans-serif" font-size="34" font-weight="450" letter-spacing="0" fill="#69727d">stay aligned from one canonical source.</text>
|
|
19
|
+
|
|
20
|
+
<g>
|
|
21
|
+
<rect x="64" y="650" width="952" height="480" fill="none" stroke="#dfe4ea" stroke-width="1.5"/>
|
|
22
|
+
<path d="M55 650 H73 M64 641 V659" fill="none" stroke="#dfe4ea" stroke-width="2"/><path d="M1007 650 H1025 M1016 641 V659" fill="none" stroke="#dfe4ea" stroke-width="2"/><path d="M55 1130 H73 M64 1121 V1139" fill="none" stroke="#dfe4ea" stroke-width="2"/><path d="M1007 1130 H1025 M1016 1121 V1139" fill="none" stroke="#dfe4ea" stroke-width="2"/>
|
|
23
|
+
<rect x="82" y="628" width="294" height="44" fill="#fafaf8"/>
|
|
24
|
+
<text x="99" y="658" text-anchor="start" font-family="Menlo, SFMono-Regular, monospace" font-size="20" font-weight="400" letter-spacing="1.8" fill="#3457d5">FIG.01 — AGENT PATHS</text>
|
|
25
|
+
</g>
|
|
26
|
+
<g transform="translate(0 50)"><g>
|
|
27
|
+
<rect x="148" y="689" width="22" height="22" rx="6" fill="none" stroke="#161c24" stroke-width="3.5"/><rect x="148" y="799" width="22" height="22" rx="6" fill="none" stroke="#161c24" stroke-width="3.5"/><rect x="148" y="909" width="22" height="22" rx="6" fill="none" stroke="#161c24" stroke-width="3.5"/>
|
|
28
|
+
<text x="159" y="742" text-anchor="middle" font-family="Menlo, SFMono-Regular, monospace" font-size="17" font-weight="400" letter-spacing="1" fill="#69727d">CLAUDE</text><text x="159" y="852" text-anchor="middle" font-family="Menlo, SFMono-Regular, monospace" font-size="17" font-weight="400" letter-spacing="1" fill="#69727d">CODEX</text><text x="159" y="962" text-anchor="middle" font-family="Menlo, SFMono-Regular, monospace" font-size="17" font-weight="400" letter-spacing="1" fill="#69727d">KIMI</text>
|
|
29
|
+
<g fill="none">
|
|
30
|
+
<defs><clipPath id="d-unified"><rect x="447" y="707" width="186" height="206" rx="14"/></clipPath></defs>
|
|
31
|
+
<rect x="440" y="700" width="200" height="220" rx="20" stroke="#161c24" stroke-width="4"/>
|
|
32
|
+
<g clip-path="url(#d-unified)" stroke="#69727d" stroke-width="2" opacity="0.85"><path d="M27 913 L233 707"/><path d="M27 707 L233 913"/><path d="M48 913 L254 707"/><path d="M48 707 L254 913"/><path d="M69 913 L275 707"/><path d="M69 707 L275 913"/><path d="M90 913 L296 707"/><path d="M90 707 L296 913"/><path d="M111 913 L317 707"/><path d="M111 707 L317 913"/><path d="M132 913 L338 707"/><path d="M132 707 L338 913"/><path d="M153 913 L359 707"/><path d="M153 707 L359 913"/><path d="M174 913 L380 707"/><path d="M174 707 L380 913"/><path d="M195 913 L401 707"/><path d="M195 707 L401 913"/><path d="M216 913 L422 707"/><path d="M216 707 L422 913"/><path d="M237 913 L443 707"/><path d="M237 707 L443 913"/><path d="M258 913 L464 707"/><path d="M258 707 L464 913"/><path d="M279 913 L485 707"/><path d="M279 707 L485 913"/><path d="M300 913 L506 707"/><path d="M300 707 L506 913"/><path d="M321 913 L527 707"/><path d="M321 707 L527 913"/><path d="M342 913 L548 707"/><path d="M342 707 L548 913"/><path d="M363 913 L569 707"/><path d="M363 707 L569 913"/><path d="M384 913 L590 707"/><path d="M384 707 L590 913"/><path d="M405 913 L611 707"/><path d="M405 707 L611 913"/><path d="M426 913 L632 707"/><path d="M426 707 L632 913"/><path d="M447 913 L653 707"/><path d="M447 707 L653 913"/><path d="M468 913 L674 707"/><path d="M468 707 L674 913"/><path d="M489 913 L695 707"/><path d="M489 707 L695 913"/><path d="M510 913 L716 707"/><path d="M510 707 L716 913"/><path d="M531 913 L737 707"/><path d="M531 707 L737 913"/><path d="M552 913 L758 707"/><path d="M552 707 L758 913"/><path d="M573 913 L779 707"/><path d="M573 707 L779 913"/><path d="M594 913 L800 707"/><path d="M594 707 L800 913"/><path d="M615 913 L821 707"/><path d="M615 707 L821 913"/><path d="M636 913 L842 707"/><path d="M636 707 L842 913"/><path d="M657 913 L863 707"/><path d="M657 707 L863 913"/><path d="M678 913 L884 707"/><path d="M678 707 L884 913"/><path d="M699 913 L905 707"/><path d="M699 707 L905 913"/><path d="M720 913 L926 707"/><path d="M720 707 L926 913"/><path d="M741 913 L947 707"/><path d="M741 707 L947 913"/><path d="M762 913 L968 707"/><path d="M762 707 L968 913"/><path d="M783 913 L989 707"/><path d="M783 707 L989 913"/><path d="M804 913 L1010 707"/><path d="M804 707 L1010 913"/><path d="M825 913 L1031 707"/><path d="M825 707 L1031 913"/><path d="M846 913 L1052 707"/><path d="M846 707 L1052 913"/><path d="M867 913 L1073 707"/><path d="M867 707 L1073 913"/></g>
|
|
33
|
+
</g>
|
|
34
|
+
<g fill="none" stroke="#161c24" stroke-width="3.5">
|
|
35
|
+
<path d="M171 700 C 290 700 320 762 440 762"/>
|
|
36
|
+
<path d="M171 810 H440"/>
|
|
37
|
+
<path d="M171 920 C 290 920 320 858 440 858"/>
|
|
38
|
+
<path d="M640 762 H920 M640 810 H920 M640 858 H920"/>
|
|
39
|
+
</g>
|
|
40
|
+
<g fill="#3457d5"><circle cx="926" cy="762" r="8"/><circle cx="926" cy="810" r="8"/><circle cx="926" cy="858" r="8"/></g>
|
|
41
|
+
</g></g>
|
|
42
|
+
<text x="540" y="1088" text-anchor="middle" font-family="Menlo, SFMono-Regular, monospace" font-size="22" font-weight="400" letter-spacing="2" fill="#3457d5">ONE RUNTIME · MANY AGENTS</text>
|
|
43
|
+
|
|
44
|
+
<text x="64" y="1198" text-anchor="start" font-family="Menlo, SFMono-Regular, monospace" font-size="19" font-weight="400" letter-spacing="1.6" fill="#69727d">SKILLS · MCP · MEMORY · INSTRUCTIONS</text>
|
|
45
|
+
<text x="1016" y="1198" text-anchor="end" font-family="Menlo, SFMono-Regular, monospace" font-size="19" font-weight="400" letter-spacing="1.6" fill="#69727d">agent-trellis.dev</text>
|
|
46
|
+
<path d="M64 1232 H1016" stroke="#161c24" stroke-width="3.5"/>
|
|
47
|
+
<circle cx="77" cy="1294" r="7" fill="#3457d5"/>
|
|
48
|
+
<text x="108" y="1304" text-anchor="start" font-family="Menlo, SFMono-Regular, monospace" font-size="32" font-weight="500" letter-spacing="0.2" fill="#161c24">$ npm i -g agent-trellis</text>
|
|
49
|
+
<text x="1016" y="1304" text-anchor="end" font-family="Menlo, SFMono-Regular, monospace" font-size="18" font-weight="400" letter-spacing="1.5" fill="#69727d">OPEN SOURCE / LOCAL FIRST</text>
|
|
50
|
+
</g>
|
|
51
|
+
</svg>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1440" height="1440" viewBox="0 0 1440 1440">
|
|
2
|
+
<rect width="1440" height="1440" fill="#fafaf8"/>
|
|
3
|
+
<g transform="translate(180 0)">
|
|
4
|
+
<g transform="translate(64 48) scale(0.56)" fill="none" stroke="#161c24" stroke-linecap="round">
|
|
5
|
+
<defs><clipPath id="v3-beam-64-48"><rect x="21" y="23" width="54" height="9" rx="4.5"/></clipPath></defs>
|
|
6
|
+
<rect x="16" y="18" width="64" height="18" rx="9" stroke-width="5.5"/>
|
|
7
|
+
<g stroke-width="2.6" clip-path="url(#v3-beam-64-48)"><path d="M-64.5 32 L-55.5 23"/><path d="M-64.5 23 L-55.5 32"/><path d="M-46.5 32 L-37.5 23"/><path d="M-46.5 23 L-37.5 32"/><path d="M-28.5 32 L-19.5 23"/><path d="M-28.5 23 L-19.5 32"/><path d="M-10.5 32 L-1.5 23"/><path d="M-10.5 23 L-1.5 32"/><path d="M7.5 32 L16.5 23"/><path d="M7.5 23 L16.5 32"/><path d="M25.5 32 L34.5 23"/><path d="M25.5 23 L34.5 32"/><path d="M43.5 32 L52.5 23"/><path d="M43.5 23 L52.5 32"/><path d="M61.5 32 L70.5 23"/><path d="M61.5 23 L70.5 32"/><path d="M79.5 32 L88.5 23"/><path d="M79.5 23 L88.5 32"/><path d="M97.5 32 L106.5 23"/><path d="M97.5 23 L106.5 32"/><path d="M115.5 32 L124.5 23"/><path d="M115.5 23 L124.5 32"/></g>
|
|
8
|
+
<path d="M48 36 V78" stroke-width="8"/>
|
|
9
|
+
</g>
|
|
10
|
+
<text x="132" y="87" text-anchor="start" font-family="Helvetica Neue, PingFang SC, Arial, sans-serif" font-size="30" font-weight="700" letter-spacing="2.2" fill="#161c24">AGENT TRELLIS</text>
|
|
11
|
+
<text x="1016" y="87" text-anchor="end" font-family="Menlo, SFMono-Regular, monospace" font-size="19" font-weight="400" letter-spacing="1.7" fill="#69727d">RUNTIME / 01</text>
|
|
12
|
+
<path d="M64 142 H1016" stroke="#dfe4ea" stroke-width="1.5"/>
|
|
13
|
+
<rect x="64" y="138.5" width="52" height="3.5" fill="#3457d5"/>
|
|
14
|
+
|
|
15
|
+
<text x="96" y="232" text-anchor="start" font-family="Menlo, SFMono-Regular, monospace" font-size="22" font-weight="400" letter-spacing="2.2" fill="#3457d5">UNIFIED CODE AGENT RUNTIME</text>
|
|
16
|
+
<rect x="64" y="298" width="7" height="178" fill="#3457d5"/>
|
|
17
|
+
<text x="96" y="360" text-anchor="start" font-family="Helvetica Neue, PingFang SC, Arial, sans-serif" font-size="80" font-weight="800" letter-spacing="-1" fill="#161c24">一个 Runtime,</text><text x="96" y="458" text-anchor="start" font-family="Helvetica Neue, PingFang SC, Arial, sans-serif" font-size="80" font-weight="800" letter-spacing="-1" fill="#161c24">统一所有 Code Agent。</text>
|
|
18
|
+
<text x="96" y="524" text-anchor="start" font-family="Helvetica Neue, PingFang SC, Arial, sans-serif" font-size="35" font-weight="450" letter-spacing="0" fill="#69727d">从一个 canonical source 统一管理</text><text x="96" y="570" text-anchor="start" font-family="Helvetica Neue, PingFang SC, Arial, sans-serif" font-size="35" font-weight="450" letter-spacing="0" fill="#69727d">Skill、MCP、Memory 与共享指令。</text>
|
|
19
|
+
|
|
20
|
+
<g>
|
|
21
|
+
<rect x="64" y="650" width="952" height="480" fill="none" stroke="#dfe4ea" stroke-width="1.5"/>
|
|
22
|
+
<path d="M55 650 H73 M64 641 V659" fill="none" stroke="#dfe4ea" stroke-width="2"/><path d="M1007 650 H1025 M1016 641 V659" fill="none" stroke="#dfe4ea" stroke-width="2"/><path d="M55 1130 H73 M64 1121 V1139" fill="none" stroke="#dfe4ea" stroke-width="2"/><path d="M1007 1130 H1025 M1016 1121 V1139" fill="none" stroke="#dfe4ea" stroke-width="2"/>
|
|
23
|
+
<rect x="82" y="628" width="294" height="44" fill="#fafaf8"/>
|
|
24
|
+
<text x="99" y="658" text-anchor="start" font-family="Menlo, SFMono-Regular, monospace" font-size="20" font-weight="400" letter-spacing="1.8" fill="#3457d5">FIG.01 — AGENT PATHS</text>
|
|
25
|
+
</g>
|
|
26
|
+
<g transform="translate(0 50)"><g>
|
|
27
|
+
<rect x="148" y="689" width="22" height="22" rx="6" fill="none" stroke="#161c24" stroke-width="3.5"/><rect x="148" y="799" width="22" height="22" rx="6" fill="none" stroke="#161c24" stroke-width="3.5"/><rect x="148" y="909" width="22" height="22" rx="6" fill="none" stroke="#161c24" stroke-width="3.5"/>
|
|
28
|
+
<text x="159" y="742" text-anchor="middle" font-family="Menlo, SFMono-Regular, monospace" font-size="17" font-weight="400" letter-spacing="1" fill="#69727d">CLAUDE</text><text x="159" y="852" text-anchor="middle" font-family="Menlo, SFMono-Regular, monospace" font-size="17" font-weight="400" letter-spacing="1" fill="#69727d">CODEX</text><text x="159" y="962" text-anchor="middle" font-family="Menlo, SFMono-Regular, monospace" font-size="17" font-weight="400" letter-spacing="1" fill="#69727d">KIMI</text>
|
|
29
|
+
<g fill="none">
|
|
30
|
+
<defs><clipPath id="d-unified"><rect x="447" y="707" width="186" height="206" rx="14"/></clipPath></defs>
|
|
31
|
+
<rect x="440" y="700" width="200" height="220" rx="20" stroke="#161c24" stroke-width="4"/>
|
|
32
|
+
<g clip-path="url(#d-unified)" stroke="#69727d" stroke-width="2" opacity="0.85"><path d="M27 913 L233 707"/><path d="M27 707 L233 913"/><path d="M48 913 L254 707"/><path d="M48 707 L254 913"/><path d="M69 913 L275 707"/><path d="M69 707 L275 913"/><path d="M90 913 L296 707"/><path d="M90 707 L296 913"/><path d="M111 913 L317 707"/><path d="M111 707 L317 913"/><path d="M132 913 L338 707"/><path d="M132 707 L338 913"/><path d="M153 913 L359 707"/><path d="M153 707 L359 913"/><path d="M174 913 L380 707"/><path d="M174 707 L380 913"/><path d="M195 913 L401 707"/><path d="M195 707 L401 913"/><path d="M216 913 L422 707"/><path d="M216 707 L422 913"/><path d="M237 913 L443 707"/><path d="M237 707 L443 913"/><path d="M258 913 L464 707"/><path d="M258 707 L464 913"/><path d="M279 913 L485 707"/><path d="M279 707 L485 913"/><path d="M300 913 L506 707"/><path d="M300 707 L506 913"/><path d="M321 913 L527 707"/><path d="M321 707 L527 913"/><path d="M342 913 L548 707"/><path d="M342 707 L548 913"/><path d="M363 913 L569 707"/><path d="M363 707 L569 913"/><path d="M384 913 L590 707"/><path d="M384 707 L590 913"/><path d="M405 913 L611 707"/><path d="M405 707 L611 913"/><path d="M426 913 L632 707"/><path d="M426 707 L632 913"/><path d="M447 913 L653 707"/><path d="M447 707 L653 913"/><path d="M468 913 L674 707"/><path d="M468 707 L674 913"/><path d="M489 913 L695 707"/><path d="M489 707 L695 913"/><path d="M510 913 L716 707"/><path d="M510 707 L716 913"/><path d="M531 913 L737 707"/><path d="M531 707 L737 913"/><path d="M552 913 L758 707"/><path d="M552 707 L758 913"/><path d="M573 913 L779 707"/><path d="M573 707 L779 913"/><path d="M594 913 L800 707"/><path d="M594 707 L800 913"/><path d="M615 913 L821 707"/><path d="M615 707 L821 913"/><path d="M636 913 L842 707"/><path d="M636 707 L842 913"/><path d="M657 913 L863 707"/><path d="M657 707 L863 913"/><path d="M678 913 L884 707"/><path d="M678 707 L884 913"/><path d="M699 913 L905 707"/><path d="M699 707 L905 913"/><path d="M720 913 L926 707"/><path d="M720 707 L926 913"/><path d="M741 913 L947 707"/><path d="M741 707 L947 913"/><path d="M762 913 L968 707"/><path d="M762 707 L968 913"/><path d="M783 913 L989 707"/><path d="M783 707 L989 913"/><path d="M804 913 L1010 707"/><path d="M804 707 L1010 913"/><path d="M825 913 L1031 707"/><path d="M825 707 L1031 913"/><path d="M846 913 L1052 707"/><path d="M846 707 L1052 913"/><path d="M867 913 L1073 707"/><path d="M867 707 L1073 913"/></g>
|
|
33
|
+
</g>
|
|
34
|
+
<g fill="none" stroke="#161c24" stroke-width="3.5">
|
|
35
|
+
<path d="M171 700 C 290 700 320 762 440 762"/>
|
|
36
|
+
<path d="M171 810 H440"/>
|
|
37
|
+
<path d="M171 920 C 290 920 320 858 440 858"/>
|
|
38
|
+
<path d="M640 762 H920 M640 810 H920 M640 858 H920"/>
|
|
39
|
+
</g>
|
|
40
|
+
<g fill="#3457d5"><circle cx="926" cy="762" r="8"/><circle cx="926" cy="810" r="8"/><circle cx="926" cy="858" r="8"/></g>
|
|
41
|
+
</g></g>
|
|
42
|
+
<text x="540" y="1088" text-anchor="middle" font-family="Menlo, SFMono-Regular, monospace" font-size="22" font-weight="400" letter-spacing="2" fill="#3457d5">ONE RUNTIME · MANY AGENTS</text>
|
|
43
|
+
|
|
44
|
+
<text x="64" y="1198" text-anchor="start" font-family="Menlo, SFMono-Regular, monospace" font-size="19" font-weight="400" letter-spacing="1.6" fill="#69727d">SKILLS · MCP · MEMORY · INSTRUCTIONS</text>
|
|
45
|
+
<text x="1016" y="1198" text-anchor="end" font-family="Menlo, SFMono-Regular, monospace" font-size="19" font-weight="400" letter-spacing="1.6" fill="#69727d">agent-trellis.dev</text>
|
|
46
|
+
<path d="M64 1232 H1016" stroke="#161c24" stroke-width="3.5"/>
|
|
47
|
+
<circle cx="77" cy="1294" r="7" fill="#3457d5"/>
|
|
48
|
+
<text x="108" y="1304" text-anchor="start" font-family="Menlo, SFMono-Regular, monospace" font-size="32" font-weight="500" letter-spacing="0.2" fill="#161c24">$ npm i -g agent-trellis</text>
|
|
49
|
+
<text x="1016" y="1304" text-anchor="end" font-family="Menlo, SFMono-Regular, monospace" font-size="18" font-weight="400" letter-spacing="1.5" fill="#69727d">OPEN SOURCE / LOCAL FIRST</text>
|
|
50
|
+
</g>
|
|
51
|
+
</svg>
|
package/docs/getting-started.md
CHANGED
|
@@ -15,7 +15,7 @@ npm install -g agent-trellis
|
|
|
15
15
|
$ trellis onboard
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
Runs `init`, detects which of Claude Code/Codex/Kiro/pi/Kimi Code are on this machine,
|
|
18
|
+
Runs `init`, detects which of Claude Code/Codex/Kiro/pi/Kimi Code/ZCode are on this machine,
|
|
19
19
|
then resolves two styled interactive choices and two flag-only ones before running
|
|
20
20
|
`migrate`, `sync`, `mcp sync`, `memory sync`, `secrets audit`, and a final
|
|
21
21
|
health scan — the whole onboarding path, no follow-up commands to type by
|
|
@@ -266,6 +266,31 @@ enabled. Runtime correctness does not depend on that optimization. Native
|
|
|
266
266
|
Kimi delivery remains available with `native` or `both`; those modes do not
|
|
267
267
|
use the empty Skill-root launcher.
|
|
268
268
|
|
|
269
|
+
## ZCode Runtime-first
|
|
270
|
+
|
|
271
|
+
ZCode is supported as `zcode`. Trellis selects one native profile before it
|
|
272
|
+
writes anything: the official CLI/Desktop profile uses
|
|
273
|
+
`~/.zcode/cli/config.json`; the locally installed `zcode-app-cli` profile
|
|
274
|
+
uses `~/.zcode/cli/setting.json`. Both store servers under `mcp.servers`.
|
|
275
|
+
|
|
276
|
+
Selecting ZCode during `trellis onboard` defaults it to Runtime delivery.
|
|
277
|
+
`trellis sync` links shared instructions at `~/.zcode/AGENTS.md` and disables
|
|
278
|
+
native ZCode Skill discovery while Runtime-only delivery is active. This keeps
|
|
279
|
+
ZCode's automatic `~/.agents/skills` scan from bypassing canonical Skill
|
|
280
|
+
scope. `trellis mcp sync` writes the single owned `trellis` stdio entry;
|
|
281
|
+
Skill, Memory, and eligible upstream MCP servers are then served through
|
|
282
|
+
`trellis mcp-runtime --agent zcode`.
|
|
283
|
+
|
|
284
|
+
Native or `both` delivery remains available through a capability-selection
|
|
285
|
+
file. When leaving Runtime-only mode, Trellis restores ZCode's previous native
|
|
286
|
+
Skill settings only when they still equal the values it wrote. User edits and
|
|
287
|
+
unrelated ZCode MCP entries remain untouched.
|
|
288
|
+
|
|
289
|
+
For chat or Agent delegation, Trellis uses only a public `zcode` executable
|
|
290
|
+
that advertises `--prompt`, `--resume`, and `--output-format`. A desktop-only
|
|
291
|
+
profile can still receive managed configuration; Trellis never launches the
|
|
292
|
+
desktop application's private helper or bundled runtime path.
|
|
293
|
+
|
|
269
294
|
## Trellis Runtime Skill
|
|
270
295
|
|
|
271
296
|
`trellis-runtime` is the built-in operating guide that Trellis installs into
|
|
@@ -325,7 +350,7 @@ content back into canonical Markdown remains an explicit
|
|
|
325
350
|
|
|
326
351
|
## Two starting points
|
|
327
352
|
|
|
328
|
-
**You already use one or more of Claude Code, Codex, Kiro, pi,
|
|
353
|
+
**You already use one or more of Claude Code, Codex, Kiro, pi, Kimi Code, or ZCode** and have
|
|
329
354
|
real skills/instructions in them today. Go to
|
|
330
355
|
[Migrating from an existing agent](#migrating-from-an-existing-agent).
|
|
331
356
|
|
|
@@ -353,7 +378,7 @@ Creates `~/.trellis/` with:
|
|
|
353
378
|
`~/.trellis/` that already exists just fills in whatever's still missing —
|
|
354
379
|
safe to run again any time, including after you've hand-edited things.
|
|
355
380
|
|
|
356
|
-
It then prints which of the
|
|
381
|
+
It then prints which of the six supported agents it found on this machine.
|
|
357
382
|
For each one **not** found, it prints that agent's real install command or
|
|
358
383
|
download link — `trellis init` never runs an installer itself; a global
|
|
359
384
|
package install or an IDE download is your call to make, not a silent side
|
|
@@ -374,7 +399,7 @@ migrate --from claude-code
|
|
|
374
399
|
[conflict] instructions — canonical agents.md already has different real content — resolve by hand
|
|
375
400
|
```
|
|
376
401
|
|
|
377
|
-
`--from` accepts `claude-code`, `codex`, `kiro`, `pi`,
|
|
402
|
+
`--from` accepts `claude-code`, `codex`, `kiro`, `pi`, `kimi-code`, or `zcode`. Run it once per
|
|
378
403
|
agent you actually use — it's independent per agent, order doesn't matter.
|
|
379
404
|
|
|
380
405
|
Add `--dry-run` to see the plan without writing anything:
|
|
@@ -547,15 +572,18 @@ to set up before moving on to `sync`.
|
|
|
547
572
|
The same applies to MCP servers — `~/.trellis/mcp/servers.yaml` can be
|
|
548
573
|
hand-authored the same way (see
|
|
549
574
|
[`schema/servers.example.yaml`](../schema/servers.example.yaml) for the
|
|
550
|
-
full shape), or use `trellis mcp add` (below)
|
|
551
|
-
|
|
575
|
+
full shape), or use `trellis mcp add` (below) — the CLI command syncs
|
|
576
|
+
for you; hand-authored edits still need a following
|
|
577
|
+
[`trellis mcp sync`](#trellis-mcp-sync) of their own.
|
|
552
578
|
|
|
553
579
|
## `trellis skill` / `trellis mcp` — canonical CRUD via the CLI
|
|
554
580
|
|
|
555
581
|
An alternative to hand-editing canonical files directly — useful for
|
|
556
582
|
scripting, or when you'd rather not open a text editor for a one-line
|
|
557
|
-
change.
|
|
558
|
-
|
|
583
|
+
change. `add`/`remove`/`import` mutate the canonical source and then run the
|
|
584
|
+
same sync `sync`/`mcp sync` performs, so one command both edits the list and
|
|
585
|
+
maps it onto the managed agents; `--dry-run` previews the whole thing,
|
|
586
|
+
including the sync plan, with zero writes. `list` is read-only.
|
|
559
587
|
|
|
560
588
|
```
|
|
561
589
|
$ trellis skill list
|
|
@@ -939,7 +967,7 @@ periodically regardless.
|
|
|
939
967
|
$ trellis doctor
|
|
940
968
|
```
|
|
941
969
|
|
|
942
|
-
Read-only. Scans all
|
|
970
|
+
Read-only. Scans all six agents' current state and reports drift —
|
|
943
971
|
mismatched skill content across agents, wrong-case skill files, and (with
|
|
944
972
|
`--probe-mcp`) whether each configured MCP server actually handshakes.
|
|
945
973
|
Safe to run any time; nothing here writes anything.
|
|
@@ -1028,6 +1056,127 @@ created file under `~/.trellis/skills/`.
|
|
|
1028
1056
|
`~/.trellis/backups/` has no automatic pruning — delete old run
|
|
1029
1057
|
directories by hand once you're done with them.
|
|
1030
1058
|
|
|
1059
|
+
## GUI: chat with a managed/CLI Agent (`@trellis/gui`)
|
|
1060
|
+
|
|
1061
|
+
The desktop app (`packages/gui/`) has a "Chat" tab for a real multi-turn
|
|
1062
|
+
conversation with any CLI Agent you configure, streamed live with a
|
|
1063
|
+
typewriter effect and tool-call/tool-result bubbles when the target
|
|
1064
|
+
supports it. This is separate from `agent-bridge.yaml` (used for one-shot
|
|
1065
|
+
cross-Agent delegation via MCP tools): a chat target is identified by an
|
|
1066
|
+
arbitrary string, not one of the five fully-managed Agents, so you can
|
|
1067
|
+
point it at any non-interactive CLI without onboarding it as a full
|
|
1068
|
+
managed Agent.
|
|
1069
|
+
|
|
1070
|
+
Configure targets in `~/.trellis/mcp/chat-agents.yaml` (absent by
|
|
1071
|
+
default — nothing is spawned until you write one):
|
|
1072
|
+
|
|
1073
|
+
```yaml
|
|
1074
|
+
targets:
|
|
1075
|
+
claude-code:
|
|
1076
|
+
label: "Claude Code"
|
|
1077
|
+
command: claude
|
|
1078
|
+
args: ["-p", "{prompt}", "--output-format", "stream-json"]
|
|
1079
|
+
outputFormat: stream-json
|
|
1080
|
+
qoder:
|
|
1081
|
+
label: "Qoder"
|
|
1082
|
+
command: qoder
|
|
1083
|
+
args: ["-p", "{prompt}", "--output-format", "stream-json"]
|
|
1084
|
+
resumeArgs: ["-p", "{prompt}", "--output-format", "stream-json", "--session-id", "{sessionId}"]
|
|
1085
|
+
outputFormat: stream-json
|
|
1086
|
+
tags: ["domestic"]
|
|
1087
|
+
kimi-code:
|
|
1088
|
+
label: "Kimi Code"
|
|
1089
|
+
command: kimi
|
|
1090
|
+
args: ["-p", "{prompt}", "--output-format", "stream-json"]
|
|
1091
|
+
resumeArgs: ["-p", "{prompt}", "--output-format", "stream-json", "-S", "{sessionId}"]
|
|
1092
|
+
outputFormat: stream-json
|
|
1093
|
+
tags: ["domestic"]
|
|
1094
|
+
minimax-code:
|
|
1095
|
+
label: "MiniMax Code"
|
|
1096
|
+
command: mcode
|
|
1097
|
+
args: ["exec", "{prompt}", "--output-format", "stream-json"]
|
|
1098
|
+
resumeArgs: ["exec", "{prompt}", "--output-format", "stream-json", "--session", "{sessionId}"]
|
|
1099
|
+
outputFormat: stream-json
|
|
1100
|
+
tags: ["domestic"]
|
|
1101
|
+
zcode:
|
|
1102
|
+
label: "ZCode"
|
|
1103
|
+
command: zcode
|
|
1104
|
+
args: ["--prompt", "{prompt}", "--output-format", "stream-json"]
|
|
1105
|
+
resumeArgs: ["--resume", "{sessionId}", "--prompt", "{prompt}", "--output-format", "stream-json"]
|
|
1106
|
+
outputFormat: stream-json
|
|
1107
|
+
streamProtocol: zcode
|
|
1108
|
+
tags: ["z-ai"]
|
|
1109
|
+
```
|
|
1110
|
+
|
|
1111
|
+
- `outputFormat: stream-json` gets structured tool-call/tool-result
|
|
1112
|
+
bubbles, but only for Claude Code's documented shape (there's no
|
|
1113
|
+
official schema for it — see upstream issue #24612 — so this is a
|
|
1114
|
+
best-effort parse of the community-documented format; other CLIs using
|
|
1115
|
+
the same flag name show their raw output instead of guessing at a
|
|
1116
|
+
format that hasn't been verified against a real install).
|
|
1117
|
+
- Every message requires confirming a one-time-per-session banner showing
|
|
1118
|
+
the exact command that will run — it spawns a real subprocess, possibly
|
|
1119
|
+
a real billed API call.
|
|
1120
|
+
- Chat history is **never written to disk** — it may contain real code or
|
|
1121
|
+
secrets. Closing the app loses it, on purpose.
|
|
1122
|
+
|
|
1123
|
+
### Domestic CLI status (what's real, what isn't)
|
|
1124
|
+
|
|
1125
|
+
- **Qoder**: installed for real (`npm install -g @qoder-ai/qodercli`) and
|
|
1126
|
+
checked directly against `qoder --help` — `-p`/`--print`, `-o`/
|
|
1127
|
+
`--output-format text|json|stream-json`, and `--session-id <id>` (resume)
|
|
1128
|
+
all confirmed as real flags. Ran `qoder -p "test" -o stream-json` for
|
|
1129
|
+
real, unauthenticated (`qoder status` → "Not logged in"), which failed
|
|
1130
|
+
cleanly and immediately on the auth check (`total_cost_usd: 0`, zero
|
|
1131
|
+
real spend) — and its `stream-json` output turned out to already match
|
|
1132
|
+
Claude Code's documented shape line-for-line (`{"type":"system",
|
|
1133
|
+
"subtype":"init",...}` → `{"type":"assistant","message":{"content":
|
|
1134
|
+
[{"type":"text",...}]}}` → `{"type":"result","subtype":"success",...}`),
|
|
1135
|
+
so this app's existing `tryParseClaudeStreamJsonLine` parser produces
|
|
1136
|
+
real tool-call/tool-result bubbles for Qoder too, not just raw text —
|
|
1137
|
+
confirmed for the `init`/text/`result` shapes; the `tool_use`/
|
|
1138
|
+
`tool_result` shapes specifically weren't independently observed (the
|
|
1139
|
+
call never got far enough to use a tool before failing on auth). The
|
|
1140
|
+
`--session-id` resume combination itself (an actual resumed call) was
|
|
1141
|
+
not exercised — that needs a real logged-in account.
|
|
1142
|
+
- **Kimi Code**: `-p`/`--prompt`, `--output-format text|stream-json`, and
|
|
1143
|
+
`-S`/`--session [id]` are confirmed directly from a real, installed
|
|
1144
|
+
`kimi --help` on the machine this was built on. The `-p` + `-S`
|
|
1145
|
+
combination for resuming a session non-interactively is documented as
|
|
1146
|
+
separate top-level flags but wasn't exercised against a real resumed
|
|
1147
|
+
call (that would be a real, billed API call, and this install has a
|
|
1148
|
+
live authenticated session — `kimi provider list` shows a real
|
|
1149
|
+
`managed:kimi-code` OAuth provider) — verify once before relying on it
|
|
1150
|
+
for anything important.
|
|
1151
|
+
- **MiniMax Code** (`mcode`): installed for real (`npm install -g
|
|
1152
|
+
@minimax-ai/code`) and checked directly against `mcode exec --help`,
|
|
1153
|
+
which — unlike what first-party prose docs implied — does document
|
|
1154
|
+
both `--output-format text|json|stream-json` and a `--session <id>`
|
|
1155
|
+
resume flag (distinct spelling from Qoder's `--session-id`) as real
|
|
1156
|
+
`exec` options. Ran `mcode exec "test" --output-format stream-json` for
|
|
1157
|
+
real, unauthenticated (no `~/.minimax-code` config exists on this
|
|
1158
|
+
machine), which failed cleanly with a plain-text "Sign in to MiniMax…"
|
|
1159
|
+
message before entering the agent loop — so unlike Qoder, no real
|
|
1160
|
+
`stream-json` line was ever actually observed for MiniMax Code; if its
|
|
1161
|
+
JSON shape turns out to differ from Claude Code's, lines simply
|
|
1162
|
+
degrade to the raw-chunk fallback rather than breaking anything, but
|
|
1163
|
+
treat the *existence* of the flags as confirmed and their *exact wire
|
|
1164
|
+
shape* as still unconfirmed. The `--session` resume combination was
|
|
1165
|
+
not exercised for the same reason as Qoder's.
|
|
1166
|
+
- **ZCode** (Z.ai / 智谱, `zcode`) is supported when its public CLI probe
|
|
1167
|
+
confirms `--prompt`, `--resume`, and `--output-format`. Its stream result
|
|
1168
|
+
uses `response` and `sessionId`, so configure `streamProtocol: zcode` as
|
|
1169
|
+
shown above. The installed `zcode-app-cli` is a community distribution over
|
|
1170
|
+
the ZCode runtime; it uses `~/.zcode/cli/setting.json`. The official
|
|
1171
|
+
open-source CLI/Desktop profile uses `~/.zcode/cli/config.json`. A
|
|
1172
|
+
desktop-only profile is configuration-manageable but is not offered as a
|
|
1173
|
+
chat or delegation executor.
|
|
1174
|
+
- **Trae is not supported yet.** The commercial Trae IDE (trae.ai) has no
|
|
1175
|
+
documented non-interactive CLI mode; the separate open-source
|
|
1176
|
+
`bytedance/trae-agent` project's `trae-cli run` streaming output format
|
|
1177
|
+
has not been verified against a real install. Neither is configured —
|
|
1178
|
+
don't add a `trae` target expecting it to work.
|
|
1179
|
+
|
|
1031
1180
|
## Troubleshooting
|
|
1032
1181
|
|
|
1033
1182
|
- **A `conflict` I don't understand**: `migrate` and `sync` both name the
|
|
@@ -1038,6 +1187,18 @@ directories by hand once you're done with them.
|
|
|
1038
1187
|
the same real config files/directories `init`/`migrate`/`sync` do; if an
|
|
1039
1188
|
agent's config lives somewhere non-standard on your machine, that's worth
|
|
1040
1189
|
filing an issue with the exact path.
|
|
1041
|
-
- Other known limitations
|
|
1042
|
-
|
|
1043
|
-
|
|
1190
|
+
- Other known limitations, named honestly rather than discovered the hard way:
|
|
1191
|
+
- `mcp sync`/`sync` never spawn or handshake-test MCP servers — they only
|
|
1192
|
+
guarantee the *config* is written correctly. `trellis doctor --probe-mcp`
|
|
1193
|
+
is the one command that actually connects, and it's opt-in.
|
|
1194
|
+
- The pi bridge extension (`trellis-pi-mcp-bridge`) is verified to load and
|
|
1195
|
+
register tools without erroring, not against a real LLM tool call in
|
|
1196
|
+
production.
|
|
1197
|
+
- Verification runs in isolated Docker containers with real agent installs,
|
|
1198
|
+
not against a developer's daily-use dotfiles — if you hit something a
|
|
1199
|
+
clean-room sandbox wouldn't catch, please open an issue.
|
|
1200
|
+
- `onboard` picks one agent as the migration base when several are present;
|
|
1201
|
+
merging differing content across multiple agents into one result is
|
|
1202
|
+
future work, not built yet.
|
|
1203
|
+
- `~/.trellis/backups/` has no automatic pruning — every write adds a run
|
|
1204
|
+
directory; delete old ones by hand.
|
package/docs/overview.md
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
## One-line description
|
|
6
6
|
|
|
7
|
-
> Trellis is a unified Code Agent Runtime for managing Skills, MCP, Memory, and shared instructions across Claude Code, Codex, Kiro, pi,
|
|
7
|
+
> Trellis is a unified Code Agent Runtime for managing Skills, MCP, Memory, and shared instructions across Claude Code, Codex, Kiro, pi, Kimi Code, and ZCode.
|
|
8
8
|
|
|
9
9
|
中文定位:
|
|
10
10
|
|
|
11
|
-
> Trellis 是统一的 Code Agent Runtime,为 Claude Code、Codex、Kiro、pi 和
|
|
11
|
+
> Trellis 是统一的 Code Agent Runtime,为 Claude Code、Codex、Kiro、pi、Kimi Code 和 ZCode 统一管理 Skill、MCP、Memory 与共享指令。
|
|
12
12
|
|
|
13
13
|
## Quick start
|
|
14
14
|
|
|
@@ -52,10 +52,12 @@ The importer de-duplicates existing servers, extracts environment credentials in
|
|
|
52
52
|
|
|
53
53
|
## Architecture
|
|
54
54
|
|
|
55
|
-

|
|
56
56
|
|
|
57
57
|
The overview shows the product boundary: Trellis is the control plane in the center; Skills, MCP, Memory, and Instructions are managed capability sources; Agents consume the resulting native or Runtime views.
|
|
58
58
|
|
|
59
|
+
Brand and social assets, including the poster series, live in [`docs/assets/poster-series-v3/`](assets/poster-series-v3/README.md).
|
|
60
|
+
|
|
59
61
|
```mermaid
|
|
60
62
|
flowchart LR
|
|
61
63
|
Sources["Trellis Canonical Source\n~/.trellis"]
|
|
@@ -77,6 +79,7 @@ flowchart LR
|
|
|
77
79
|
Native --> Kiro["Kiro"]
|
|
78
80
|
Native --> Pi["pi"]
|
|
79
81
|
Edge --> Kimi["Kimi Code"]
|
|
82
|
+
Edge --> ZCode["ZCode"]
|
|
80
83
|
Edge --> Claude
|
|
81
84
|
Edge --> Pi
|
|
82
85
|
```
|
package/docs/overview.zh-CN.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## 一句话介绍
|
|
6
6
|
|
|
7
|
-
> Trellis 是统一的 Code Agent Runtime,为 Claude Code、Codex、Kiro、pi 和
|
|
7
|
+
> Trellis 是统一的 Code Agent Runtime,为 Claude Code、Codex、Kiro、pi、Kimi Code 和 ZCode 统一管理 Skill、MCP、Memory 与共享指令。
|
|
8
8
|
|
|
9
9
|
## 快速开始
|
|
10
10
|
|
|
@@ -48,7 +48,7 @@ trellis mcp import ~/Desktop/mcp-servers.json
|
|
|
48
48
|
|
|
49
49
|
## 架构
|
|
50
50
|
|
|
51
|
-

|
|
52
52
|
|
|
53
53
|
Trellis 以 `~/.trellis/` 为 canonical source,在中心统一管理四类能力:
|
|
54
54
|
|
|
@@ -59,6 +59,8 @@ Trellis 以 `~/.trellis/` 为 canonical source,在中心统一管理四类能
|
|
|
59
59
|
|
|
60
60
|
这些能力通过 native adapter 或 Runtime/Gateway 投递给不同的 Code Agent。
|
|
61
61
|
|
|
62
|
+
品牌与社媒海报资源见 [`docs/assets/poster-series-v3/`](assets/poster-series-v3/README.md),包含竖版(手机端)与横版(桌面端)海报的中英文版本。
|
|
63
|
+
|
|
62
64
|
```text
|
|
63
65
|
~/.trellis/ canonical source
|
|
64
66
|
│
|
|
@@ -66,7 +68,7 @@ Trellis 以 `~/.trellis/` 为 canonical source,在中心统一管理四类能
|
|
|
66
68
|
Trellis Runtime / Gateway
|
|
67
69
|
│
|
|
68
70
|
├── Native adapters ── Claude Code / Codex / Kiro / pi
|
|
69
|
-
└── MCP Runtime ────── Kimi Code / 其他 Runtime-first Agent
|
|
71
|
+
└── MCP Runtime ────── Kimi Code / ZCode / 其他 Runtime-first Agent
|
|
70
72
|
```
|
|
71
73
|
|
|
72
74
|
## 与相似产品的关系
|
package/docs/roadmap.md
CHANGED
|
@@ -939,7 +939,7 @@ tests passing.
|
|
|
939
939
|
| P7 | ✅ Secrets/env management: shared `resolveSecretEnv` + `secrets.policy.yaml`'s `env_file`, pi bridge stops reading raw ambient env, `secrets audit` gains a `missing-env-value` check | P3, P4 |
|
|
940
940
|
| P8 | ✅ Kiro `${VAR}` fix: adapter also manages `kiroAgent.mcpApprovedEnvVars`, without which Kiro silently never substitutes any env reference Trellis writes | P2 |
|
|
941
941
|
| P9 | ✅ MCP transport/auth expansion: `headers` field for static bearer/API-key remote auth (Claude Code/Codex/Kiro/pi bridge, each via its own real schema), `sse` transport; real OAuth flows explicitly delegated to each agent's own native support, not reimplemented | P2, P4, P8 |
|
|
942
|
-
| P10 | GUI:
|
|
942
|
+
| P10 | ✅ GUI: decided against embedding into an existing dashboard — `@trellis/gui` (Tauri v2 + React, `openspec/changes/trellis-gui/`) is an independent read-write desktop app whose Node sidecar imports `agent-trellis`'s internal command modules directly (workspace-relative, not the read-only `@trellis/sdk` barrel) and reuses the exact same plan/confirm/backup mechanics the CLI already has. Sidecar core, all read/write endpoints (including the `mcp add`/`mcp remove`/`skill add`/`skill remove` backup-tracking gap this work found and fixed — see P5's own SDK note below, a `agent-trellis`-wide fix, not GUI-only), live file-watch + WebSocket updates, macOS binary packaging, Tauri `externalBin` spawning, the React read/write views, MCP import, the real brand mark, and a real ad-hoc-signed `.dmg` (`npx tauri build`, release) are all built and verified (real HTTP/WS integration tests throughout, plus real headless-DOM tests of the write-confirmation and import flows). Also added: a "Chat" tab for real multi-turn streaming conversation with any configured CLI Agent (typewriter effect, tool-call/tool-result bubbles for Claude Code's `stream-json` shape, one-time-per-session confirmation, in-memory-only history — never persisted, since it may carry secrets), built on `trellis-agent-bridge`'s delegated-call primitive upgraded to stream (`runDelegatedCallStreaming`). Domestic-CLI coverage researched and documented per-CLI rather than assumed uniform, then upgraded from doc-only to `--help`-confirmed once Qoder and MiniMax Code were actually installed (`npm install -g @qoder-ai/qodercli @minimax-ai/code`, both verified as the real official packages first): Qoder, Kimi Code, and MiniMax Code all ship verified starter configs with `stream-json` output and session-resume flags — Qoder's `stream-json` shape was confirmed byte-identical to Claude Code's by actually running it (zero cost: it failed cleanly on an unauthenticated status check before reaching a model), while MiniMax Code's flags are confirmed real but its exact `stream-json` line shapes are not (same zero-cost auth-failure situation, but the call never got as far as producing one). ZCode (Z.ai/智谱) and Trae are both explicitly **not** shipped — real products, but no documented non-interactive CLI mode was found for either's official binary after checking their own docs/`--help` (don't confuse ZCode with the similarly-named but unofficial and different `zcode-cli` forks, which do document prompt flags but aren't the product being asked about). Also added: a real demo sandbox (`/tmp/trellis-gui-sandbox`) populated with real MCP servers/Skills/Memory files, and English/Chinese UI support (hand-rolled `I18nProvider`/`useI18n()`, no new runtime dependency — every view's UI chrome is translated, real backend data like agent ids/paths/commands never is, language persisted to `localStorage`). Ships as an ad-hoc-signed `.dmg`, accepted as the final distribution state — full Apple Developer ID signature + notarization was assessed and explicitly deprioritized (not a code gap, and not worth the credential/process overhead for this release) | P3–P9 |
|
|
943
943
|
| P11 | ✅ Migrate category selection: `--only skills\|instructions` on `migrate`, same interactive picker `onboard` already uses | P1 |
|
|
944
944
|
| P12 | ✅ Canonical CRUD via CLI: `trellis skill add/remove/list`, `trellis mcp add/remove/list` | P1, P2 |
|
|
945
945
|
| P13 | ✅ Sandbox verification against this machine's real, structurally-relevant state (not just fixtures); every agent verified as both migrate source and sync/mcp-sync target | P0–P2 |
|
|
@@ -959,6 +959,7 @@ tests passing.
|
|
|
959
959
|
| P26 | ✅ Fine-grained capability selection: item-level skill/MCP/memory selection from a serializable selection file or searchable TUI, per-agent MCP route overrides with direct/gateway/hub precedence, selected-memory sync without implicit native-memory import, and explicit unsupported-reader diagnostics | P17, P21, P22, P25 |
|
|
960
960
|
| P27 | 🚧 Trellis MCP Runtime phase 1 ✅: one provider registry and agent-facing MCP edge; SkillProvider and the read-only CanonicalMemoryProvider expose scoped progressive-disclosure tools/resources, runtime delivery supports native/mcp/both per agent, selected upstream tools mount through the existing GatewayBackend, and doctor checks runtime drift. Remaining: upstream resource/prompt backend, real pi/Kiro model smoke, and real Claude model smoke (Claude remains intentionally deferred) | P21, P25, P26 |
|
|
961
961
|
| P28 | 🚧 Kimi Code Runtime-first adapter: Kimi is recognized as a managed Agent, receives one deferred `trellis` Runtime entry in `~/.kimi-code/mcp.json`, and `trellis kimi` isolates native Skill discovery for Runtime-only delivery. The Runtime Skill is available through SkillProvider; remaining: real Kimi model-session smoke and upstream resource/prompt consumption | P27 |
|
|
962
|
+
| P29 | ✅ ZCode Runtime-first adapter: `zcode` is a managed Agent with profile-aware static configuration (`~/.zcode/cli/config.json` for official profiles and `setting.json` for the local community CLI), a single owned Runtime MCP entry, scoped-Skill isolation, safe instruction/MCP migration, doctor/onboarding coverage, and public-CLI chat/delegation parsing for ZCode's `response`/`sessionId` stream envelope. Desktop-private runtime paths are never process-host entry points. | P27, P28 |
|
|
962
963
|
|
|
963
964
|
**Cross-machine / cloud sharing — confirmed future direction, not yet
|
|
964
965
|
scoped as a phase.** Surveyed 2026-09-15 (`docs/research.md`'s "Cross-
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Trellis 分享视频 · 素材与录制清单
|
|
2
|
+
|
|
3
|
+
> 本目录(`docs/video/`)在 `.gitignore` 中,所有内容只存在于本地,
|
|
4
|
+
> 不会进入开源仓库。
|
|
5
|
+
|
|
6
|
+
## 自动生成视频
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
node docs/video/generate-video.mjs # 输出 docs/video/trellis-demo-video.mp4
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
一条命令完成:重置沙盒 → 真实跑一遍 CLI 并捕获输出 → 渲染终端帧与卡片
|
|
13
|
+
(qlmanage)→ 系统 TTS 生成中文口播(Ting-Ting Enhanced)→ ffmpeg 合成
|
|
14
|
+
1920×1080 mp4。改口播文案直接编辑脚本里的 `blocks[].narration`;终端帧
|
|
15
|
+
内容来自真实命令输出,无需手改。依赖:ffmpeg(`brew install ffmpeg`)、
|
|
16
|
+
macOS 自带的 qlmanage/sips/say/afinfo。
|
|
17
|
+
|
|
18
|
+
## 演示沙盒(不碰真实配置)
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
bash scripts/video-demo-setup.sh # 生成/重置演示环境到 /tmp/trellis-demo-home
|
|
22
|
+
export HOME=/tmp/trellis-demo-home # 之后所有 trellis 命令都在沙盒里运行
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
沙盒内容:Claude Code(1 份指令 + 2 个 Skill + 2 个 MCP 服务器)、
|
|
26
|
+
Codex(config.toml + 1 个 MCP 服务器)。每次重录前重跑 setup 脚本即可
|
|
27
|
+
回到初始状态。已验证全流程可跑通:`init → onboard --dry-run → onboard →
|
|
28
|
+
doctor → rollback`。
|
|
29
|
+
|
|
30
|
+
录制用命令(已跳过交互选择,流程不打断):
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
trellis init
|
|
34
|
+
trellis onboard --dry-run --agent claude-code --manage codex
|
|
35
|
+
trellis onboard --agent claude-code --manage codex
|
|
36
|
+
trellis doctor
|
|
37
|
+
trellis rollback
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## 终端与录屏设置
|
|
41
|
+
|
|
42
|
+
| 项 | 建议 |
|
|
43
|
+
|---|---|
|
|
44
|
+
| 终端主题 | 浅色(手机端观看对比度更好) |
|
|
45
|
+
| 字号 | 20–24pt,观众多用手机看 |
|
|
46
|
+
| 提示符 | `export PS1='$ '`,干净无干扰 |
|
|
47
|
+
| 窗口 | 1280×720 或 1440×810 逻辑分辨率 |
|
|
48
|
+
| 录屏 | Kap / QuickTime;每条 take 前 `clear` |
|
|
49
|
+
| 导出 | 横屏 1920×1080(B 站/YouTube);竖屏 1080×1920(视频号/小红书)则后期裁切,注意命令别超出安全区 |
|
|
50
|
+
|
|
51
|
+
## 分镜与素材对照
|
|
52
|
+
|
|
53
|
+
| 场景 | 画面 | 素材 |
|
|
54
|
+
|---|---|---|
|
|
55
|
+
| 1 开场 | 终端/编辑器随意状态 | 现场录 |
|
|
56
|
+
| 2 痛点 | `ls ~/.claude` `ls ~/.codex`(真实目录,只读) | 现场录 |
|
|
57
|
+
| 3 方案 | 海报全屏 | [`../assets/poster-series-v3/agent-trellis-poster-v3-unified-zh.png`](../assets/poster-series-v3/agent-trellis-poster-v3-unified-zh.png) |
|
|
58
|
+
| 4 演示 | 终端实录 | 沙盒命令(见上) |
|
|
59
|
+
| 5 设计点 | README Design principles 滚动 | github.com/paul-leo/Trellis |
|
|
60
|
+
| 6 收尾 | GitHub 仓库首页 + Star 按钮停留 2 秒 | 同上 |
|
|
61
|
+
|
|
62
|
+
## 其他可用素材
|
|
63
|
+
|
|
64
|
+
- 封面图/片尾卡:[`../assets/poster-series-v3/agent-trellis-poster-v3-horizontal-zh.png`](../assets/poster-series-v3/agent-trellis-poster-v3-horizontal-zh.png)
|
|
65
|
+
- Logo 叠层(角标):[`../assets/brand-v3/trellis-mark-v3-a.svg`](../assets/brand-v3/trellis-mark-v3-a.svg)
|
|
66
|
+
- 口播逐字稿:[voiceover.zh-CN.md](voiceover.zh-CN.md)
|
|
67
|
+
- 场景大纲:[outline.zh-CN.md](outline.zh-CN.md)
|
|
68
|
+
- 60 秒极简版:见 [outline.zh-CN.md](outline.zh-CN.md) 末尾
|
|
69
|
+
|
|
70
|
+
## 录制前 Checklist
|
|
71
|
+
|
|
72
|
+
- [ ] 重跑 `bash scripts/video-demo-setup.sh` 重置沙盒
|
|
73
|
+
- [ ] `export HOME=/tmp/trellis-demo-home && export PS1='$ ' && clear`
|
|
74
|
+
- [ ] 终端字号调大,关闭通知(勿扰模式)
|
|
75
|
+
- [ ] 预演一遍场景 4,确认输出与口播一致
|
|
76
|
+
- [ ] 麦克风电平测试 5 秒
|