feat: add workbench channel templates

This commit is contained in:
2026-07-19 19:18:36 +08:00
parent 95dce81161
commit 3194cbed29
11 changed files with 272 additions and 4 deletions

View File

@@ -0,0 +1,27 @@
<script lang="ts">
import type { AISessionItem, InspectorItem } from '../types';
export let sessions: AISessionItem[];
export let onInspect: (item: InspectorItem) => void;
let selectedSessionID = sessions[0]?.id;
$: selectedSession = sessions.find((session) => session.id === selectedSessionID) ?? sessions[0];
function inspectSession(session: AISessionItem) {
onInspect({ title: session.title, type: 'AI session', description: session.summary, properties: [{ label: 'Updated', value: session.updatedAt }, { label: 'References', value: session.references.join(', ') }] });
}
</script>
<section class="channel-page ai-sessions-channel">
<header class="channel-header"><p>Project intelligence</p><h1>AI Sessions</h1></header>
<div class="session-layout">
<div class="session-list">
{#each sessions as session}
<button class:active={selectedSession?.id === session.id} on:click={() => (selectedSessionID = session.id)}>{session.title}<small>{session.updatedAt}</small></button>
{/each}
</div>
{#if selectedSession}
<article class="conversation-summary"><h2>{selectedSession.title}</h2><p>{selectedSession.summary}</p><p>References: {selectedSession.references.join(', ')}</p><button aria-label={`Inspect ${selectedSession.title}`} on:click={() => inspectSession(selectedSession)}>Inspect</button></article>
{/if}
</div>
</section>