引入上下文片段、固定槽与投影排序,并完善机遇裁定与游玩期 UI。

把创作产物收敛为可挂载片段与 play_slots/context_order,同步修订世界模拟器模块与运行时拼装。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-03 01:36:32 +08:00
parent 00dfcb6615
commit 94f67fa744
69 changed files with 7786 additions and 1283 deletions

View File

@@ -4,20 +4,47 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Writing Agent</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@500;600;700&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="/styles.css" />
</head>
<body data-lifecycle="design">
<div class="layout">
<aside class="panel panel-books" id="panel-books">
<header class="panel-head">
<strong>作品</strong>
<div class="panel-head-actions">
<aside class="panel panel-rail" id="panel-books">
<header class="panel-head rail-head">
<button type="button" class="rail-toggle btn-sm" id="btn-rail-toggle" title="展开 / 收起侧栏" aria-label="展开或收起侧栏"></button>
<nav class="rail-tabs" id="rail-tabs" role="tablist" aria-label="侧栏">
<button type="button" class="rail-tab active" data-rail-tab="books" role="tab" aria-selected="true" title="作品">
<span class="rail-tab-icon" aria-hidden="true"></span>
<span class="rail-tab-label">作品</span>
</button>
<button type="button" class="rail-tab" data-rail-tab="log" role="tab" aria-selected="false" title="调度">
<span class="rail-tab-icon" aria-hidden="true"></span>
<span class="rail-tab-label">调度</span>
</button>
</nav>
<div class="panel-head-actions rail-head-actions">
<button type="button" class="btn-sm" id="btn-new-book" title="新建">+</button>
<span class="burst-badge" id="burst-badge" hidden></span>
</div>
</header>
<nav class="path-bar" id="book-path-bar" aria-label="作品路径"></nav>
<div class="book-list" id="book-list"></div>
<div id="book-box-overlay" class="book-box-overlay" hidden aria-hidden="true"></div>
<div class="rail-panels">
<div class="rail-tab-panel active" id="rail-panel-books" role="tabpanel" data-rail-panel="books">
<nav class="path-bar" id="book-path-bar" aria-label="作品路径"></nav>
<div class="book-list" id="book-list"></div>
<div id="book-box-overlay" class="book-box-overlay" hidden aria-hidden="true"></div>
</div>
<div class="rail-tab-panel" id="rail-panel-log" role="tabpanel" data-rail-panel="log" hidden>
<div id="agent-focus" class="agent-focus"></div>
<div id="tool-trace" class="tool-trace" hidden></div>
<div id="agent-timeline" class="agent-timeline"></div>
</div>
</div>
</aside>
<main class="panel panel-main">
@@ -51,34 +78,6 @@
</div>
<div id="questions-card-host" class="questions-card-host" hidden></div>
</section>
<aside class="panel-agent" id="panel-agent">
<header class="panel-head">
<strong>Agent</strong>
<span class="burst-badge" id="burst-badge" hidden></span>
</header>
<div id="agent-focus" class="agent-focus"></div>
<div id="tool-trace" class="tool-trace" hidden></div>
<nav class="agent-tabs" id="agent-tabs" role="tablist">
<button type="button" class="agent-tab active" data-tab="timeline" role="tab">历史</button>
<button type="button" class="agent-tab" data-tab="review" role="tab" id="agent-tab-btn-review" hidden>验收</button>
<button type="button" class="agent-tab" data-tab="progress" role="tab" id="agent-tab-btn-progress" hidden>设计</button>
<button type="button" class="agent-tab" data-tab="board" role="tab" id="agent-tab-btn-board">上下文</button>
</nav>
<div class="agent-tab-panel active" id="agent-panel-timeline" role="tabpanel">
<div id="agent-timeline" class="agent-timeline"></div>
</div>
<div class="agent-tab-panel" id="agent-panel-review" role="tabpanel" hidden>
<div id="review-artifact-panel" class="review-artifact-panel"></div>
</div>
<div class="agent-tab-panel" id="agent-panel-progress" role="tabpanel" hidden>
<div id="worker-set-user-panel" class="worker-set-user-panel"></div>
<div id="skill-guide-list" class="skill-guide-list"></div>
</div>
<div class="agent-tab-panel" id="agent-panel-board" role="tabpanel" hidden>
<div id="board-panel" class="board-panel"></div>
</div>
</aside>
</div>
<footer class="composer" id="composer"></footer>