// 共有タスクページで公開するタブの選別（純ロジック）。
// 設計付録: 公開タブは Overview / Files / Output / Subtasks のみ。
// Trace / Browser / Console はリアルタイム前提かつ内部露出のため出さない。
// このページでは Subtasks は Overview 内、Output は Files（/output ルート）に内包される
// ため、表示タブは overview と files の 2 つに集約される。

export type SharedTabId = 'overview' | 'files';

/** 公開タブの表示順。内部タブ（trace/browser/ssh/activity）は含めない。 */
export const PUBLIC_SHARED_TABS: readonly SharedTabId[] = ['overview', 'files'] as const;

/** 内部専用タブ（共有ページでは絶対に出さない）。 */
const INTERNAL_TABS = new Set(['trace', 'browser', 'ssh', 'activity', 'console']);

/** 共有ページで当該タブを公開してよいか。内部タブは false。 */
export function isPublicSharedTab(tab: string): boolean {
  return !INTERNAL_TABS.has(tab) && (PUBLIC_SHARED_TABS as readonly string[]).includes(tab);
}
