@overdeck/contracts 0.68.0 → 0.70.0
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/dist/index.cjs +704 -68
- package/dist/index.d.ts +1946 -198
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +674 -69
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../src/backend-pane.ts","../src/derived-issue-state.ts","../src/github-quota.ts","../src/types.ts","../src/pull-request-links.ts","../src/memory.ts","../src/system-health.ts","../src/events.ts","../src/editor.ts","../src/effort.ts","../src/rpc.ts","../src/agent-runtime-merge.ts","../src/issue-delta.ts","../src/event-reducers.ts","../src/project-ci.ts","../src/flywheel.ts","../src/flywheel-stats.ts","../src/flywheel-derived.ts","../src/orders.ts","../src/context-layers.ts","../src/artifacts.ts","../src/feature-registry.ts","../src/harness-behavior.ts","../src/hygiene.ts","../src/update.ts","../src/deploy.ts","../src/issue-sort.ts","../src/telemetry.ts","../src/composer-commands.generated.ts","../src/hook-inventory.ts","../src/terminal-backend.ts","../src/agent-directory.ts","../src/companion-terminal.ts","../src/pull-request-ref.ts","../src/conversation-rows.ts","../src/environment.ts"],"sourcesContent":["// Backend pane (PAN-3917 FR-5, FR-12).\n//\n// One live agent pane as the terminal backend reports it, folded into the\n// dashboard read model. This replaces every persisted agent mirror: the\n// inventory is read live from Herdr or tmux and matched to issues by the\n// pane's metadata tokens.\n\nimport { Schema } from \"effect\"\n\n\nexport const BackendPane = Schema.Struct({\n /** Stable pane identity: the backend-native pane handle. */\n id: Schema.String,\n /** Overdeck agent id: Herdr `agentId` token or live agent name; tmux session name (PAN-3920). */\n agentId: Schema.optional(Schema.String),\n /** Issue the pane belongs to; absent for operator conversations. */\n issue: Schema.optional(Schema.String),\n role: Schema.Literals([\"work\", \"worker\", \"review\", \"test\", \"uat\", \"strike\", \"plan\", \"conversation\"]),\n harness: Schema.String,\n model: Schema.String,\n state: Schema.Literals([\"idle\", \"working\", \"blocked\", \"done\", \"exited\", \"unknown\"]),\n /** Epoch millis the pane entered `state`; drives the `stuck` attention. */\n stateSince: Schema.optional(Schema.Number),\n /** Handle the terminal WebSocket attaches to. */\n terminalId: Schema.optional(Schema.String),\n /** Working directory of the pane (the issue workspace path). */\n workspace: Schema.optional(Schema.String),\n})\nexport type BackendPane = typeof BackendPane.Type\n\n/**\n * The agent id a pane answers for (PAN-4320). On Herdr `id` (`w1:p1`) and\n * `terminalId` (`term_…`) are backend handles, never agent ids, so the\n * `agentId` token decides; tmux panes carry `agentId` = session name.\n */\nexport function paneAgentKey(pane: BackendPane): string {\n return pane.agentId ?? pane.terminalId ?? pane.id\n}\n\n/**\n * Panes by agent key. When two panes answer for one agent (a restarted Herdr\n * agent beside its exited pane), a non-exited pane wins, never the reverse.\n */\nexport function indexPanesByAgentKey(panes: Iterable<BackendPane>): Map<string, BackendPane> {\n const byKey = new Map<string, BackendPane>()\n for (const pane of panes) {\n const key = paneAgentKey(pane)\n const prior = byKey.get(key)\n if (!prior || (prior.state === \"exited\" && pane.state !== \"exited\")) byKey.set(key, pane)\n }\n return byKey\n}\n","// Derived issue state (PAN-3917 FR-6).\n//\n// Overdeck stores no status it can derive. An issue's pipeline state is\n// computed at read time from the tracker, the plan home, the PR, checks, git,\n// and the terminal backend. This module holds the vocabulary the server\n// derives and the dashboard renders; the derivation itself lives in\n// `src/lib/overdeck/derived-issue-state.ts`, shared by the CLI and the server.\n\nimport { Schema } from \"effect\"\n\n/**\n * The nine pipeline states of the FR-6 table. They are mutually exclusive and\n * resolved in this precedence (highest first), because the underlying facts\n * overlap:\n *\n * closed > merged > ready > changes-requested > in-review > working >\n * parked > planned > backlog\n */\nexport const IssueState = Schema.Literals([\n \"backlog\",\n \"parked\",\n \"planned\",\n \"working\",\n \"in-review\",\n \"changes-requested\",\n \"ready\",\n \"merged\",\n \"closed\",\n])\nexport type IssueState = typeof IssueState.Type\n\n/** Something the operator has to look at. Orthogonal to `IssueState`. */\nexport const IssueAttention = Schema.Literals([\n /** An unanswered AskUserQuestion or a permission prompt (a `blocked` pane). */ \"needs-you\",\n /** Idle for N minutes with unpushed commits. */ \"stuck\",\n /** 429 or provider-failure text in a pane. */ \"api-error\",\n /** Auto-start was attempted but no work agent came up. */ \"work-not-started\",\n])\nexport type IssueAttention = typeof IssueAttention.Type\n\n/** Latest review decision on the PR, as the forge reports it. */\nexport const PrReviewState = Schema.Literals([\n \"approved\",\n \"changes-requested\",\n \"review-requested\",\n \"commented\",\n \"none\",\n])\nexport type PrReviewState = typeof PrReviewState.Type\n\n/** Aggregate check-run conclusion for the PR head. */\nexport const PrChecksState = Schema.Literals([\"green\", \"red\", \"pending\"])\nexport type PrChecksState = typeof PrChecksState.Type\n\n/** The pull request (or merge request) backing an issue. */\nexport const DerivedPrState = Schema.Struct({\n url: Schema.String,\n number: Schema.Number,\n reviewState: PrReviewState,\n checks: PrChecksState,\n /** Forge mergeability. `null` when the forge has not computed it yet. */\n mergeable: Schema.NullOr(Schema.Boolean),\n /** Present only when true; survives state: closed (PAN-4290). */\n merged: Schema.optional(Schema.Boolean),\n})\nexport type DerivedPrState = typeof DerivedPrState.Type\n\n/** The issue's feature branch as git reports it. */\nexport const DerivedBranchState = Schema.Struct({\n name: Schema.String,\n aheadOfMain: Schema.Number,\n pushed: Schema.Boolean,\n})\nexport type DerivedBranchState = typeof DerivedBranchState.Type\n\n/** The workspace journal's read on a post-planning auto-start (PAN-4399). */\nexport const DerivedWorkStart = Schema.Struct({\n status: Schema.Literals([\"retrying\", \"not-started\"]),\n /** ISO time of the journal entry the status was read from. */\n at: Schema.String,\n error: Schema.optional(Schema.String),\n nextRetryAt: Schema.optional(Schema.String),\n /** The retry is journaled but not actually running because the Deacon is frozen (PAN-4210). Present only when true. */\n held: Schema.optional(Schema.Literal(true)),\n})\nexport type DerivedWorkStart = typeof DerivedWorkStart.Type\n\n/** Everything the dashboard needs to render an issue's pipeline position. */\nexport const DerivedIssueState = Schema.Struct({\n issueId: Schema.String,\n state: IssueState,\n attention: Schema.optional(IssueAttention),\n pr: Schema.optional(DerivedPrState),\n branch: Schema.optional(DerivedBranchState),\n /**\n * No tracker answered for this issue, so `closed` — the top of the\n * precedence — could not be ruled in or out. Present only in that case; an\n * unresolved tracker read is never reported as an open issue.\n */\n trackerUnknown: Schema.optional(Schema.Literal(true)),\n /** A deferred or gave-up post-planning auto-start read from the workspace journal (PAN-4399). */\n workStart: Schema.optional(DerivedWorkStart),\n})\nexport type DerivedIssueState = typeof DerivedIssueState.Type\n\nexport const ISSUE_STATES: readonly IssueState[] = [\n \"backlog\",\n \"parked\",\n \"planned\",\n \"working\",\n \"in-review\",\n \"changes-requested\",\n \"ready\",\n \"merged\",\n \"closed\",\n]\n\n/** Highest precedence first — the order `deriveIssueState` resolves in. */\nexport const ISSUE_STATE_PRECEDENCE: readonly IssueState[] = [\n \"closed\",\n \"merged\",\n \"ready\",\n \"changes-requested\",\n \"in-review\",\n \"working\",\n \"parked\",\n \"planned\",\n \"backlog\",\n]\n\nexport const ISSUE_ATTENTIONS: readonly IssueAttention[] = [\"needs-you\", \"stuck\", \"api-error\", \"work-not-started\"]\n\nexport function isIssueState(value: unknown): value is IssueState {\n return typeof value === \"string\" && (ISSUE_STATES as readonly string[]).includes(value)\n}\n\nexport function isIssueAttention(value: unknown): value is IssueAttention {\n return typeof value === \"string\" && (ISSUE_ATTENTIONS as readonly string[]).includes(value)\n}\n","import { Schema } from \"effect\"\n\n// ─── GitHub API quota (PAN-4264) ─────────────────────────────────────────────\n//\n// Shared vocabulary for the GitHub quota ledger (`src/lib/github-quota/`), the\n// dashboard snapshot, and `pan doctor github-quota`. The ledger records which\n// named Overdeck subsystem (\"caller\") spent which GitHub limit (\"pool\" +\n// \"bucket\"), so a rate-limit refusal can be explained instead of guessed at.\n\n/**\n * The closed list of logical GitHub callers. A call made outside any\n * `withGitHubCaller` context is recorded as `other` (or `app-rest` when it\n * goes through the GitHub App REST door).\n */\nexport const GITHUB_QUOTA_CALLERS = [\n \"pipeline-membership\",\n \"pr-cache\",\n \"pr-sync\",\n \"ci-repair\",\n \"issue-poller\",\n \"close-out\",\n \"tracker-client\",\n \"app-rest\",\n \"quota-sampler\",\n \"agent\",\n \"other\",\n] as const\nexport const GitHubQuotaCaller = Schema.Literals(GITHUB_QUOTA_CALLERS)\nexport type GitHubQuotaCaller = typeof GitHubQuotaCaller.Type\n\n/**\n * Read-model pollers whose data can be stale for minutes without harm. Only\n * these callers are skipped while a pause is active; every other caller\n * (merge, verdict recording, tracker writes, agents) is essential and never\n * paused.\n */\nexport const NON_ESSENTIAL_GITHUB_CALLERS: ReadonlySet<GitHubQuotaCaller> = new Set<GitHubQuotaCaller>([\n \"pipeline-membership\",\n \"pr-cache\",\n \"pr-sync\",\n \"ci-repair\",\n \"issue-poller\",\n \"close-out\",\n])\n\n/**\n * The GitHub identity whose limit a call spends: `user` is the `gh` CLI token,\n * `pat` is the `GITHUB_TOKEN` personal access token, `app` is a GitHub App\n * installation token.\n */\nexport const GITHUB_QUOTA_POOLS = [\"user\", \"pat\", \"app\"] as const\nexport const GitHubQuotaPool = Schema.Literals(GITHUB_QUOTA_POOLS)\nexport type GitHubQuotaPool = typeof GitHubQuotaPool.Type\n\n/** The limit counter inside a pool. `rest` is what GitHub calls `core`. */\nexport const GITHUB_QUOTA_BUCKETS = [\"graphql\", \"rest\"] as const\nexport const GitHubQuotaBucket = Schema.Literals(GITHUB_QUOTA_BUCKETS)\nexport type GitHubQuotaBucket = typeof GitHubQuotaBucket.Type\n\n/** Primary = the hourly budget; secondary = GitHub's burst/abuse limit. */\nexport const GitHubRateLimitKind = Schema.Literals([\"primary\", \"secondary\"])\nexport type GitHubRateLimitKind = typeof GitHubRateLimitKind.Type\n\n/** Points spent and calls made in one bucket. */\nexport const GitHubQuotaUsage = Schema.Struct({\n points: Schema.Number,\n calls: Schema.Number,\n})\nexport type GitHubQuotaUsage = typeof GitHubQuotaUsage.Type\n\n/** One caller's metered usage over the last hour. */\nexport const GitHubQuotaCallerUsage = Schema.Struct({\n caller: GitHubQuotaCaller,\n graphql: GitHubQuotaUsage,\n rest: GitHubQuotaUsage,\n /** True when any counted call had an estimated (not GitHub-reported) cost. */\n estimated: Schema.Boolean,\n})\nexport type GitHubQuotaCallerUsage = typeof GitHubQuotaCallerUsage.Type\n\n/** The latest `/rate_limit` (or header) reading for one pool and bucket. */\nexport const GitHubQuotaSample = Schema.Struct({\n pool: GitHubQuotaPool,\n bucket: GitHubQuotaBucket,\n /** ISO time the sample was taken. */\n ts: Schema.String,\n remaining: Schema.Number,\n limit: Schema.Number,\n /** ISO time the bucket's hourly window resets. */\n resetAt: Schema.optional(Schema.String),\n})\nexport type GitHubQuotaSample = typeof GitHubQuotaSample.Type\n\n/** An active pause on one pool and bucket (`~/.overdeck/github-quota/pause.json`). */\nexport const GitHubQuotaPause = Schema.Struct({\n pool: GitHubQuotaPool,\n bucket: GitHubQuotaBucket,\n kind: GitHubRateLimitKind,\n /** The caller whose refused call started the pause. */\n caller: GitHubQuotaCaller,\n /** ISO time the pause started. */\n since: Schema.String,\n /** ISO time the pause ends. */\n until: Schema.String,\n})\nexport type GitHubQuotaPause = typeof GitHubQuotaPause.Type\n\n/**\n * The operator-facing quota view — identical to the body of\n * `GET /api/github-quota`, so the pill, the banner and the CLI read one shape.\n * Derived runtime state: published with `emitOnly`, never persisted.\n */\nexport const GitHubQuotaSnapshot = Schema.Struct({\n /** ISO time the snapshot was built. */\n generatedAt: Schema.String,\n /** The `gh` account login. Local display only; never sent to telemetry. */\n login: Schema.NullOr(Schema.String),\n /** Per-caller usage in the last hour, highest total points first. */\n callers: Schema.Array(GitHubQuotaCallerUsage),\n /** The latest sample per pool and bucket. */\n samples: Schema.Array(GitHubQuotaSample),\n /** Active pauses; empty when GitHub calls are not paused. */\n pauses: Schema.Array(GitHubQuotaPause),\n /** True when this machine's own metered usage cannot explain a primary limit. */\n ownUsageLow: Schema.Boolean,\n /** User-pool GraphQL points the latest sample shows spent but no metered caller claims. */\n unattributed: Schema.Number,\n /** Refusals observed in the last hour. */\n refusals: Schema.Struct({ primary: Schema.Number, secondary: Schema.Number }),\n})\nexport type GitHubQuotaSnapshot = typeof GitHubQuotaSnapshot.Type\n","import { Schema } from \"effect\"\nimport { BackendPane } from \"./backend-pane\"\nimport { DerivedIssueState } from \"./derived-issue-state\"\nimport { GitHubQuotaSnapshot } from \"./github-quota\"\n\n// ─── Primitives ───────────────────────────────────────────────────────────────\n\nexport const IssueId = Schema.String\nexport type IssueId = typeof IssueId.Type\n\nexport type PipelineBucket =\n | \"in_flight\"\n | \"zombie_pr\"\n | \"post_merge_limbo\"\n | \"planned_backlog\"\n | \"clean_terminal\"\n\nexport const MEMBERSHIP_UNAVAILABLE_REASONS = [\n \"missing_issue_prefix\",\n \"repo_unavailable\",\n \"default_branch_unresolved\",\n \"forge_unavailable\",\n // PAN-3527: the forge did not answer (rate limit, 5xx, timeout, network),\n // as opposed to `forge_unavailable`, where it answered \"no\". Ask again later.\n \"forge_transient\",\n \"tracker_unconfigured\",\n \"gather_failed\",\n] as const\nexport type MembershipUnavailableReason = typeof MEMBERSHIP_UNAVAILABLE_REASONS[number]\n\nexport interface PipelineMembershipUnavailableBody {\n status: \"unavailable\"\n reason: MembershipUnavailableReason\n message: string\n projectKey: string\n}\n\n/**\n * PAN-3527 — the membership snapshot has not been gathered yet (a freshly\n * restarted server warming its cache). Sent with HTTP 503 and a `Retry-After`\n * header. Unlike `PipelineMembershipUnavailableBody` (a settled answer about\n * the project), this is a temporary state: callers retry it.\n */\nexport const PIPELINE_MEMBERSHIP_LOADING_CODE = \"snapshot_loading\" as const\n\nexport interface PipelineMembershipLoadingBody {\n status: \"loading\"\n code: typeof PIPELINE_MEMBERSHIP_LOADING_CODE\n error: string\n projectKey: string\n}\n\n/** Server-computed pipeline membership attached to dashboard issue DTOs. */\nexport interface IssuePipelineMembership {\n available?: boolean\n inPipeline: boolean\n bucket: PipelineBucket\n labelDrift: \"stale_present\" | \"stale_absent\" | null\n}\n\nexport const AgentId = Schema.String\nexport type AgentId = typeof AgentId.Type\n\nexport const SequenceNumber = Schema.Number\nexport type SequenceNumber = typeof SequenceNumber.Type\n\n// ─── Strict literal types (PAN-433) ──────────────────────────────────────────\n// Safe because the read model only contains values from typed events or\n// explicitly cleaned bootstrap data.\n\nexport const AgentStatus = Schema.Literals([\"starting\", \"running\", \"stopped\", \"error\", \"unknown\"])\nexport type AgentStatus = typeof AgentStatus.Type\n\nexport const Role = Schema.Literals([\"plan\", \"work\", \"review\", \"test\", \"ship\", \"flywheel\", \"strike\", \"sequencer\", \"knowledge\", \"worker\"])\nexport type Role = typeof Role.Type\n\nexport const AgentResolution = Schema.Literals([\"working\", \"done\", \"needs_input\", \"stuck\", \"completed\", \"unclear\", \"abandoned\", \"api_error\"])\nexport type AgentResolution = typeof AgentResolution.Type\n\n// ─── Harness (PAN-636, PAN-1989) ─────────────────────────────────────────────\n// Identifies which coding-agent harness an agent is running under.\n// AgentSnapshot.runtime is left as Schema.optional(Schema.String) for forward\n// compatibility (events from older readers may carry unknown values), but every\n// consumer that branches on harness MUST go through getHarness() so unknown or\n// legacy values normalize to 'claude-code'.\n//\n// PAN-1989 retired 'pi'; legacy DB rows read as 'ohmypi' via getHarness().\n// All new write sites use canonical harness literals.\n\nexport type Harness = 'claude-code' | 'ohmypi' | 'codex' | 'acp' | 'kimi-code' | 'opencode' | 'muse' | 'prime-agent'\n\nexport const KNOWN_HARNESSES: ReadonlySet<string> = new Set<Harness>(['claude-code', 'ohmypi', 'codex', 'acp', 'kimi-code', 'opencode', 'muse', 'prime-agent'])\n\n/**\n * Normalize a snapshot's runtime field to a known Harness value.\n * Unknown or missing values fall back to 'claude-code' (the default harness).\n * Legacy 'pi' values are normalized to 'ohmypi' on read (PAN-1989).\n */\nexport function getHarness(snapshot: { runtime?: string | undefined } | null | undefined): Harness {\n const raw = snapshot?.runtime\n if (raw === 'pi') return 'ohmypi'\n if (raw && KNOWN_HARNESSES.has(raw)) {\n return raw as Harness\n }\n return 'claude-code'\n}\n\n// ─── Agent Runtime (PAN-800) ─────────────────────────────────────────────────\n// High-frequency per-tool-call surface. Kept separate from AgentSnapshot because\n// AgentSnapshot is the low-frequency lifecycle projection (config, status, cost)\n// and merging them means every tool call re-diffs a giant object on the frontend.\n\nexport const Activity = Schema.Literals([\n \"working\", // tool in flight, or tool completed <30s ago\n \"thinking\", // no tool in flight, waiting for model\n \"waiting\", // needs human (permission, answer, disambiguation)\n \"idle\", // Stop hook fired, waiting for next turn\n \"stopped\", // session ended\n])\nexport type Activity = typeof Activity.Type\n\nexport const WaitingReason = Schema.Literals([\n \"tool_permission\",\n \"user_question\",\n \"disambiguation\",\n \"other\",\n])\nexport type WaitingReason = typeof WaitingReason.Type\n\nexport const ClaudeChannelPermissionBehavior = Schema.Literals([\n \"allow\",\n \"deny\",\n])\nexport type ClaudeChannelPermissionBehavior = typeof ClaudeChannelPermissionBehavior.Type\n\nexport const ThinkingState = Schema.Struct({\n since: Schema.String, // ISO timestamp\n lastToolAt: Schema.String, // timestamp of the tool that preceded this thinking state\n})\nexport type ThinkingState = typeof ThinkingState.Type\n\nexport const WaitingState = Schema.Struct({\n reason: WaitingReason,\n startedAt: Schema.String,\n message: Schema.optional(Schema.String),\n notificationSent: Schema.optional(Schema.Boolean),\n})\nexport type WaitingState = typeof WaitingState.Type\n\nexport const CHANNEL_REPLY_KIND_VALUES = [\"status\", \"done\", \"needs_input\"] as const\nexport const MAX_CHANNEL_REPLY_SUMMARY_LENGTH = 4 * 1024\nexport const MAX_CHANNEL_REPLY_ARTIFACT_REFS = 20\nexport const MAX_CHANNEL_REPLY_ARTIFACT_URI_LENGTH = 512\nexport const MAX_CHANNEL_REPLY_ARTIFACT_LABEL_LENGTH = 512\nconst CHANNEL_REPLY_ARTIFACT_URI_PATTERN = /^(?:file:\\/\\/|https:\\/\\/|\\/)/\n\nexport const ChannelReplyKind = Schema.Literals(CHANNEL_REPLY_KIND_VALUES)\nexport type ChannelReplyKind = typeof ChannelReplyKind.Type\n\nexport function isChannelReplyKind(value: unknown): value is ChannelReplyKind {\n return typeof value === 'string' && CHANNEL_REPLY_KIND_VALUES.includes(value as ChannelReplyKind)\n}\n\nexport const ChannelReplyArtifactRef = Schema.Struct({\n uri: Schema.String,\n label: Schema.optional(Schema.String),\n})\nexport type ChannelReplyArtifactRef = typeof ChannelReplyArtifactRef.Type\n\nexport const AgentChannelReply = Schema.Struct({\n kind: ChannelReplyKind,\n summary: Schema.String,\n artifactRefs: Schema.Array(ChannelReplyArtifactRef),\n reportedAt: Schema.String,\n})\nexport type AgentChannelReply = typeof AgentChannelReply.Type\n\nexport function normalizeChannelReplyPayload(\n payload: unknown,\n fieldPrefix = 'channel_reply',\n): {\n kind: ChannelReplyKind\n summary: string\n artifactRefs: ChannelReplyArtifactRef[]\n} {\n if (payload === null || typeof payload !== 'object') {\n throw new Error(`${fieldPrefix} payload must be an object`)\n }\n\n const source = payload as {\n kind?: unknown\n summary?: unknown\n artifactRefs?: unknown\n }\n\n if (!isChannelReplyKind(source.kind)) {\n throw new Error(`${fieldPrefix}.kind must be one of: ${CHANNEL_REPLY_KIND_VALUES.join(', ')}`)\n }\n\n if (typeof source.summary !== 'string') {\n throw new Error(`${fieldPrefix}.summary must be a non-empty string`)\n }\n const summary = source.summary.trim()\n if (summary.length === 0) {\n throw new Error(`${fieldPrefix}.summary must be a non-empty string`)\n }\n if (summary.length > MAX_CHANNEL_REPLY_SUMMARY_LENGTH) {\n throw new Error(\n `${fieldPrefix}.summary must be at most ${MAX_CHANNEL_REPLY_SUMMARY_LENGTH} characters`,\n )\n }\n\n if (source.artifactRefs !== undefined && !Array.isArray(source.artifactRefs)) {\n throw new Error(`${fieldPrefix}.artifactRefs must be an array when provided`)\n }\n const rawArtifactRefs = source.artifactRefs ?? []\n if (rawArtifactRefs.length > MAX_CHANNEL_REPLY_ARTIFACT_REFS) {\n throw new Error(\n `${fieldPrefix}.artifactRefs must contain at most ${MAX_CHANNEL_REPLY_ARTIFACT_REFS} entries`,\n )\n }\n\n const artifactRefs = rawArtifactRefs.map((item, index) => {\n if (item === null || typeof item !== 'object') {\n throw new Error(`${fieldPrefix}.artifactRefs[${index}] must be an object`)\n }\n const ref = item as { uri?: unknown; label?: unknown }\n if (typeof ref.uri !== 'string') {\n throw new Error(`${fieldPrefix}.artifactRefs[${index}].uri must be a non-empty string`)\n }\n const uri = ref.uri.trim()\n if (uri.length === 0) {\n throw new Error(`${fieldPrefix}.artifactRefs[${index}].uri must be a non-empty string`)\n }\n if (uri.length > MAX_CHANNEL_REPLY_ARTIFACT_URI_LENGTH) {\n throw new Error(\n `${fieldPrefix}.artifactRefs[${index}].uri must be at most ${MAX_CHANNEL_REPLY_ARTIFACT_URI_LENGTH} characters`,\n )\n }\n if (!CHANNEL_REPLY_ARTIFACT_URI_PATTERN.test(uri)) {\n throw new Error(\n `${fieldPrefix}.artifactRefs[${index}].uri must start with file://, https://, or /`,\n )\n }\n\n if (ref.label !== undefined && typeof ref.label !== 'string') {\n throw new Error(`${fieldPrefix}.artifactRefs[${index}].label must be a string when provided`)\n }\n const label = typeof ref.label === 'string' ? ref.label.trim() : undefined\n if (label !== undefined && label.length > MAX_CHANNEL_REPLY_ARTIFACT_LABEL_LENGTH) {\n throw new Error(\n `${fieldPrefix}.artifactRefs[${index}].label must be at most ${MAX_CHANNEL_REPLY_ARTIFACT_LABEL_LENGTH} characters`,\n )\n }\n\n return {\n uri,\n ...(label ? { label } : {}),\n }\n })\n\n return {\n kind: source.kind,\n summary,\n artifactRefs,\n }\n}\n\nexport const AgentRuntimeSnapshot = Schema.Struct({\n id: AgentId,\n activity: Activity,\n lastActivity: Schema.String, // ISO timestamp of last event for this agent\n currentTool: Schema.optional(Schema.String), // set when activity === \"working\"\n currentToolDescription: Schema.optional(Schema.String), // set alongside currentTool when activity === \"working\"\n thinking: Schema.optional(ThinkingState), // set when activity === \"thinking\"\n waiting: Schema.optional(WaitingState), // set when activity === \"waiting\"\n claudeSessionId: Schema.optional(Schema.String),\n sessionModel: Schema.optional(Schema.String),\n sessionHarness: Schema.optional(Schema.String),\n model: Schema.optional(Schema.String),\n lastMessageAt: Schema.optional(Schema.String), // last user→agent message delivered\n // Last structured Claude Code Channels reply emitted by the work agent.\n channelReply: Schema.optional(AgentChannelReply),\n // Lifecycle resolution signal emitted by work-agent-stop-hook. Values mirror\n // AgentResolution so the enrichment poller can consume this as input.\n resolution: Schema.optional(AgentResolution),\n resolutionCount: Schema.optional(Schema.Number),\n resolutionUpdatedAt: Schema.optional(Schema.String),\n // For specialists: the issue currently being processed.\n currentIssue: Schema.optional(IssueId),\n // Set while the agent's recent terminal tail shows a hard context-window overflow.\n contextSaturatedAt: Schema.optional(Schema.String),\n updatedAtSequence: SequenceNumber, // event sequence that produced this snapshot\n})\nexport type AgentRuntimeSnapshot = typeof AgentRuntimeSnapshot.Type\n\nexport const ChannelPermissionRequestSnapshot = Schema.Struct({\n requestId: Schema.String,\n agentId: AgentId,\n issueId: Schema.optional(IssueId),\n toolName: Schema.String,\n description: Schema.String,\n inputPreview: Schema.String,\n createdAt: Schema.String,\n})\nexport type ChannelPermissionRequestSnapshot = typeof ChannelPermissionRequestSnapshot.Type\n\n// ─── Agent ────────────────────────────────────────────────────────────────────\n\n/** PAN-4371 — advisory Jev reading of why an idle agent ended its turn. kind is a string (append-only store). */\nexport const TurnEndAssessment = Schema.Struct({\n kind: Schema.String,\n confidence: Schema.Number,\n needsAnswer: Schema.Boolean,\n model: Schema.String,\n})\nexport type TurnEndAssessment = typeof TurnEndAssessment.Type\n\nexport const AgentSnapshot = Schema.Struct({\n id: AgentId,\n issueId: IssueId,\n workspace: Schema.optional(Schema.String),\n runtime: Schema.optional(Schema.String),\n model: Schema.optional(Schema.String),\n status: AgentStatus,\n startedAt: Schema.optional(Schema.String),\n lastActivity: Schema.optional(Schema.String),\n branch: Schema.optional(Schema.String),\n costSoFar: Schema.optional(Schema.Number),\n sessionId: Schema.optional(Schema.String),\n startedBy: Schema.optional(Schema.String),\n role: Schema.optional(Role),\n phase: Schema.optional(Schema.String),\n workType: Schema.optional(Schema.String),\n roleRunHead: Schema.optional(Schema.String),\n /** The agent has a live pane on its terminal backend (Herdr or tmux). */\n hasLivePane: Schema.optional(Schema.Boolean),\n /**\n * @deprecated Misnamed alias of `hasLivePane`: true for a live pane on either\n * backend, not only a tmux session. Still populated for compatibility (#4105).\n */\n hasLiveTmuxSession: Schema.optional(Schema.Boolean),\n stoppedByUser: Schema.optional(Schema.Boolean),\n paused: Schema.optional(Schema.Boolean),\n pausedReason: Schema.optional(Schema.String),\n pausedAt: Schema.optional(Schema.String),\n troubled: Schema.optional(Schema.Boolean),\n troubledAt: Schema.optional(Schema.String),\n consecutiveFailures: Schema.optional(Schema.Number),\n firstFailureInRunAt: Schema.optional(Schema.String),\n lastFailureAt: Schema.optional(Schema.String),\n lastFailureReason: Schema.optional(Schema.String),\n lastFailureNextRetryAt: Schema.optional(Schema.String),\n runtimeState: Schema.optional(Schema.String),\n // Enrichment fields (PAN-440)\n hasPendingQuestion: Schema.optional(Schema.Boolean),\n pendingQuestionCount: Schema.optional(Schema.Number),\n pendingQuestionPrompt: Schema.optional(Schema.String),\n pendingQuestionReason: Schema.optional(Schema.String),\n // PAN-1520 — unified pending-input surfaces. `pendingInputKinds` lists every\n // active blocking surface (askUserQuestion, permissionRequest, exitPlanMode,\n // enterPlanMode, sessionResume). `pendingInputCount` is the count.\n pendingInputCount: Schema.optional(Schema.Number),\n pendingInputKinds: Schema.optional(Schema.Array(Schema.String)),\n // PAN-1520 — payload for an active AskUserQuestion the operator can answer\n // by clicking an option button in the conversation panel.\n pendingAskUserQuestion: Schema.optional(Schema.Struct({\n toolUseId: Schema.String,\n askedAt: Schema.String,\n questions: Schema.Array(Schema.Struct({\n question: Schema.String,\n header: Schema.optional(Schema.String),\n multiSelect: Schema.optional(Schema.Boolean),\n options: Schema.Array(Schema.Struct({\n label: Schema.String,\n description: Schema.optional(Schema.String),\n })),\n })),\n })),\n // PAN-1520 (FR-1) — plan markdown for a pending ExitPlanMode so the operator\n // can approve/reject from a dashboard modal instead of only the terminal.\n pendingProposedPlan: Schema.optional(Schema.Struct({\n toolUseId: Schema.String,\n askedAt: Schema.String,\n plan: Schema.String,\n })),\n resolution: Schema.optional(AgentResolution),\n resolutionCount: Schema.optional(Schema.Number),\n turnEndAssessment: Schema.optional(TurnEndAssessment),\n // PAN-800 — bumped on every runtime event so subscribers can cheaply detect\n // a change without diffing the full AgentRuntimeSnapshot.\n runtimeSnapshotSequence: Schema.optional(SequenceNumber),\n})\nexport type AgentSnapshot = typeof AgentSnapshot.Type\n\n// ─── Review / Pipeline ────────────────────────────────────────────────────────\n\n/** PAN-3151: A recorded cycle in the review convergence tracking series */\n\n\n\n\n// ─── Turn Diff ───────────────────────────────────────────────────────────────\n\nexport const TurnDiffFileChange = Schema.Struct({\n path: Schema.String,\n kind: Schema.optional(Schema.String),\n additions: Schema.optional(Schema.Number),\n deletions: Schema.optional(Schema.Number),\n})\nexport type TurnDiffFileChange = typeof TurnDiffFileChange.Type\n\nexport const TurnDiffSummary = Schema.Struct({\n turnId: Schema.String,\n completedAt: Schema.String,\n status: Schema.optional(Schema.String),\n files: Schema.Array(TurnDiffFileChange),\n checkpointRef: Schema.optional(Schema.String),\n assistantMessageId: Schema.optional(Schema.String),\n checkpointTurnCount: Schema.optional(Schema.Number),\n})\nexport type TurnDiffSummary = typeof TurnDiffSummary.Type\n\n// ─── Dashboard Snapshot ──────────────────────────────────────────────────────\n\nexport const ScanProgressSnapshot = Schema.Struct({\n active: Schema.Boolean,\n mode: Schema.Literals(['targeted', 'watched', 'system']),\n dirs: Schema.Array(Schema.String),\n dirsProcessed: Schema.Number,\n dirsTotal: Schema.Number,\n sessionsFound: Schema.Number,\n elapsedMs: Schema.Number,\n inserted: Schema.Number,\n updated: Schema.Number,\n skipped: Schema.Number,\n errors: Schema.Number,\n durationMs: Schema.Number,\n})\nexport type ScanProgressSnapshot = typeof ScanProgressSnapshot.Type\n\nexport const EnrichStatsSnapshot = Schema.Struct({\n processed: Schema.Number,\n totalCost: Schema.Number,\n failures: Schema.Number,\n durationMs: Schema.Number,\n})\nexport type EnrichStatsSnapshot = typeof EnrichStatsSnapshot.Type\n\nexport const EnrichProgressSnapshot = Schema.Struct({\n sessionId: Schema.Number,\n level: Schema.Number,\n model: Schema.String,\n cost: Schema.Number,\n success: Schema.Boolean,\n error: Schema.optional(Schema.String),\n timestamp: Schema.String,\n})\nexport type EnrichProgressSnapshot = typeof EnrichProgressSnapshot.Type\n\nexport const EmbedProgressSnapshot = Schema.Struct({\n sessionId: Schema.Number,\n model: Schema.String,\n success: Schema.Boolean,\n error: Schema.optional(Schema.String),\n timestamp: Schema.String,\n})\nexport type EmbedProgressSnapshot = typeof EmbedProgressSnapshot.Type\n\nexport const ProjectCiSuite = Schema.Struct({\n status: Schema.String,\n conclusion: Schema.NullOr(Schema.String),\n htmlUrl: Schema.optional(Schema.String),\n /** GitHub's suite/run update time, used to reject delayed same-SHA events. */\n observedAt: Schema.optional(Schema.String),\n})\nexport type ProjectCiSuite = typeof ProjectCiSuite.Type\n\nexport const ProjectCiSnapshot = Schema.Struct({\n projectKey: Schema.String,\n repo: Schema.String,\n branch: Schema.String,\n headSha: Schema.String,\n /** suiteId → suite. Only GitHub Actions suites ever appear here. */\n suites: Schema.Record(Schema.String, ProjectCiSuite),\n /** Newest `observedAt` folded into this record. */\n updatedAt: Schema.String,\n})\nexport type ProjectCiSnapshot = typeof ProjectCiSnapshot.Type\n\n// ─── Project Deploy (PAN-3751) ───────────────────────────────────────────────\n\n/**\n * Where an in-flight dashboard self-deploy (`pan reload`) stands.\n *\n * `building` the reload holds the restart lock and is building from origin/main;\n * `awaiting-approval` the build is ready and the reload waits on the restart gate;\n * `restarting` the operator approved and the old dashboard is being replaced;\n * `failed` the last reload recorded a failure (visible for a short window).\n */\nexport const ProjectDeployPhase = Schema.Literals([\"building\", \"awaiting-approval\", \"restarting\", \"failed\"])\nexport type ProjectDeployPhase = typeof ProjectDeployPhase.Type\n\n/**\n * One project's deploy, derived on the server from live runtime files: the\n * restart lock, the restart gate, the restart-status journal and the reload\n * process's own stdout. Nothing here is stored; a server restart re-derives it.\n */\nexport const ProjectDeploySnapshot = Schema.Struct({\n projectKey: Schema.String,\n trigger: Schema.String,\n phase: ProjectDeployPhase,\n /** The deploying process, while it is alive. */\n pid: Schema.optional(Schema.Number),\n /** When the server first observed this deploy (for `failed`, when it failed). */\n startedAt: Schema.String,\n error: Schema.optional(Schema.String),\n /** The reload's output file, when its stdout is a regular file. */\n logPath: Schema.optional(Schema.String),\n /** Last lines of `logPath`. */\n logTail: Schema.optional(Schema.Array(Schema.String)),\n})\nexport type ProjectDeploySnapshot = typeof ProjectDeploySnapshot.Type\n\n// ─── Restart Gate (PAN-3729) ─────────────────────────────────────────────────\n\n/** What kind of process asked for the voluntary dashboard restart. */\nexport const RestartGateKind = Schema.Literals([\"deploy\", \"reload\", \"restart\"])\nexport type RestartGateKind = typeof RestartGateKind.Type\n\n/**\n * One live restart request. `requesterId` is stable for a single requester\n * invocation (e.g. `deploy:PAN-3724:<pid>`), so a re-poll refreshes the same\n * row instead of adding another.\n */\nexport const RestartGateRequest = Schema.Struct({\n requesterId: Schema.String,\n kind: RestartGateKind,\n reason: Schema.String,\n builtSha: Schema.optional(Schema.String),\n requestedAt: Schema.String,\n})\nexport type RestartGateRequest = typeof RestartGateRequest.Type\n\n/**\n * How the last approval cycle ended, when the ending is worth telling the\n * operator about (PAN-3731). Present only inside the brief window after it\n * happened, so the banner can explain a click that restarted nothing.\n *\n * `pruned-unclaimed` — an approved epoch expired with nobody left to perform\n * the restart: every requester died before claiming, or a claimant lapsed and\n * the rest gave up. Either way nothing was restarted.\n */\nexport const RestartGateOutcome = Schema.Struct({\n type: Schema.Literals([\"pruned-unclaimed\"]),\n at: Schema.String,\n})\nexport type RestartGateOutcome = typeof RestartGateOutcome.Type\n\n/**\n * The operator-facing view of the restart gate — identical to the body of\n * `GET /api/restart-gate`, so the banner and the CLI read the same shape.\n *\n * `idle` no live requests; `pending` requests are waiting for approval;\n * `approved` the operator approved an epoch that nobody has claimed yet;\n * `claimed` one requester holds the exclusive right to perform the restart.\n */\nexport const RestartGateSnapshot = Schema.Struct({\n status: Schema.Literals([\"idle\", \"pending\", \"approved\", \"claimed\"]),\n pending: Schema.Array(RestartGateRequest),\n lastOutcome: Schema.optional(RestartGateOutcome),\n})\nexport type RestartGateSnapshot = typeof RestartGateSnapshot.Type\n\n// ─── Dashboard Snapshot ──────────────────────────────────────────────────────\n\nexport const DashboardSnapshot = Schema.Struct({\n sequence: SequenceNumber,\n agents: Schema.Array(AgentSnapshot),\n specialists: Schema.Array(Schema.Unknown),\n /** PAN-3917 FR-6: the derived pipeline state of every known issue. */\n derivedIssueStates: Schema.Array(DerivedIssueState),\n /** PAN-3917 FR-12: every live agent pane the terminal backend reports. */\n backendPanes: Schema.Array(BackendPane),\n issues: Schema.Array(Schema.Unknown), // Issues are complex — pass through unvalidated\n recentActivity: Schema.optional(Schema.Array(Schema.Unknown)),\n resources: Schema.optional(Schema.Unknown),\n memory: Schema.optional(Schema.Unknown),\n agentRuntimeById: Schema.optional(Schema.Record(Schema.String, AgentRuntimeSnapshot)),\n channelPermissionRequests: Schema.optional(Schema.Array(ChannelPermissionRequestSnapshot)),\n scanProgress: Schema.optional(Schema.NullOr(ScanProgressSnapshot)),\n enrichStats: Schema.optional(Schema.NullOr(EnrichStatsSnapshot)),\n enrichProgressBySessionId: Schema.optional(Schema.Record(Schema.String, EnrichProgressSnapshot)),\n embedProgressBySessionId: Schema.optional(Schema.Record(Schema.String, EmbedProgressSnapshot)),\n ciByProjectKey: Schema.optional(Schema.Record(Schema.String, ProjectCiSnapshot)),\n restartGate: Schema.optional(RestartGateSnapshot),\n /** PAN-4264 — GitHub API quota use, samples and pauses; derived, never stored. */\n githubQuota: Schema.optional(GitHubQuotaSnapshot),\n /** PAN-3751 — in-flight deploys keyed by project key. */\n deployByProjectKey: Schema.optional(Schema.Record(Schema.String, ProjectDeploySnapshot)),\n timestamp: Schema.String,\n})\nexport type DashboardSnapshot = typeof DashboardSnapshot.Type\n\n// ─── Resource Stats ──────────────────────────────────────────────────────────\n\nexport const ResourceStats = Schema.Struct({\n containers: Schema.Array(Schema.Struct({\n name: Schema.String,\n cpu: Schema.optional(Schema.String),\n mem: Schema.optional(Schema.String),\n status: Schema.optional(Schema.String),\n })),\n})\nexport type ResourceStats = typeof ResourceStats.Type\n\n// ─── Session Tree (PAN-821) ──────────────────────────────────────────────────\n\nexport const SessionNodePresence = Schema.Literals([\"active\", \"idle\", \"suspended\", \"ended\"])\nexport type SessionNodePresence = typeof SessionNodePresence.Type\n\nexport const SessionNodeType = Schema.Literals([\n \"planning\",\n \"work\",\n \"knowledge\",\n \"strike\",\n \"lint\",\n \"review\",\n \"reviewer\",\n \"test\",\n \"ship\",\n \"merge\",\n \"legacy\",\n])\nexport type SessionNodeType = typeof SessionNodeType.Type\n\nexport const ReviewerRoundSummary = Schema.Struct({\n round: Schema.Number,\n status: Schema.optional(Schema.String),\n reviewResult: Schema.optional(Schema.String),\n startedAt: Schema.optional(Schema.String),\n endedAt: Schema.optional(Schema.String),\n durationSec: Schema.optional(Schema.Number),\n cost: Schema.optional(Schema.Number),\n findings: Schema.optional(Schema.Number),\n summary: Schema.optional(Schema.String),\n})\nexport type ReviewerRoundSummary = typeof ReviewerRoundSummary.Type\n\nexport const ReviewerRoundMetadata = Schema.Struct({\n roundCount: Schema.Number,\n latestRound: Schema.Number,\n latestStatus: Schema.optional(Schema.String),\n latestReviewResult: Schema.optional(Schema.String),\n history: Schema.Array(ReviewerRoundSummary),\n})\nexport type ReviewerRoundMetadata = typeof ReviewerRoundMetadata.Type\n\n// One row of a percentage-distribution model origin (PAN-2053). `lo`/`hi` are the\n// half-open bucket band [lo, hi) the entry owns; `chosen` marks the selected one.\nexport const ModelOriginEntry = Schema.Struct({\n model: Schema.String,\n weight: Schema.Number,\n lo: Schema.Number,\n hi: Schema.Number,\n chosen: Schema.Boolean,\n})\nexport type ModelOriginEntry = typeof ModelOriginEntry.Type\n\n// Read-only \"which model & why\" derivation shown in the agent right-click MODEL\n// inspector (PAN-2053). Present only when the agent's role uses a percentage\n// distribution; absent for scalar/single-model roles.\nexport const ModelOrigin = Schema.Struct({\n // The exact spawn key whose bucket selected the model (`${role}:${issueId}`).\n spawnKey: Schema.String,\n // The chosen model id.\n resolved: Schema.String,\n // Deterministic bucket for this key, in [0, total).\n bucket: Schema.Number,\n // Number of buckets = sum of weights (100 when the distribution is percentages).\n total: Schema.Number,\n distribution: Schema.Array(ModelOriginEntry),\n})\nexport type ModelOrigin = typeof ModelOrigin.Type\n\nexport const SessionNode = Schema.Struct({\n type: SessionNodeType,\n role: Schema.optional(Schema.String),\n sessionId: Schema.String,\n tmuxSession: Schema.optional(Schema.String),\n model: Schema.String,\n // Harness that spawned the session (claude-code | pi | codex). Pi/codex run\n // `--mode rpc` with no TUI, so their terminal pane streams raw RPC protocol —\n // the SessionPanel uses this to show a notice instead, and to gate live\n // message streaming. Optional for backward compatibility with older payloads.\n harness: Schema.optional(Schema.String),\n startedAt: Schema.String,\n endedAt: Schema.optional(Schema.String),\n planningComplete: Schema.optional(Schema.Boolean),\n duration: Schema.NullOr(Schema.Number),\n status: AgentStatus,\n hasJsonl: Schema.optional(Schema.Boolean),\n transcript: Schema.optional(Schema.String),\n presence: SessionNodePresence,\n awaitingInput: Schema.optional(Schema.Boolean),\n awaitingInputPrompt: Schema.optional(Schema.String),\n awaitingInputReason: Schema.optional(Schema.String),\n /** Which blocking surfaces are open — names the wait in the node's indicator. */\n pendingInputKinds: Schema.optional(Schema.Array(Schema.String)),\n roundMetadata: Schema.optional(ReviewerRoundMetadata),\n deliveryMethod: Schema.optional(Schema.Literals(['auto', 'channels', 'tmux', 'supervisor'])),\n // PAN-3917: the pause and troubled gates are gone with the agent mirror, and\n // so is the mail queue they fed. A node's state is the backend pane's.\n // PAN-2053: read-only model-origin for the right-click MODEL inspector. Set\n // only when the agent's role uses a weighted model distribution.\n modelOrigin: Schema.optional(ModelOrigin),\n})\nexport type SessionNode = typeof SessionNode.Type\n\nexport const FeatureNode = Schema.Struct({\n issueId: IssueId,\n title: Schema.String,\n sessions: Schema.Array(SessionNode),\n})\nexport type FeatureNode = typeof FeatureNode.Type\n\nexport const ProjectSessionTree = Schema.Struct({\n projectKey: Schema.String,\n features: Schema.Array(FeatureNode),\n})\nexport type ProjectSessionTree = typeof ProjectSessionTree.Type\n\n// ─── Discovered Sessions (PAN-457) ───────────────────────────────────────────\n\n/** Snapshot of a discovered session for RPC responses and frontend display */\nexport const DiscoveredSessionSnapshot = Schema.Struct({\n id: Schema.Number,\n jsonlPath: Schema.String,\n harness: Schema.optional(Schema.String),\n sessionId: Schema.optional(Schema.String),\n workspacePath: Schema.optional(Schema.String),\n workspaceHash: Schema.optional(Schema.String),\n messageCount: Schema.Number,\n firstTs: Schema.optional(Schema.String),\n lastTs: Schema.optional(Schema.String),\n modelsUsed: Schema.Array(Schema.String),\n primaryModel: Schema.optional(Schema.String),\n tokenInput: Schema.Number,\n tokenOutput: Schema.Number,\n estimatedCost: Schema.Number,\n toolsUsed: Schema.Array(Schema.String),\n filesTouched: Schema.Array(Schema.String),\n tags: Schema.Array(Schema.String),\n summary: Schema.optional(Schema.String),\n summaryDetailed: Schema.optional(Schema.String),\n // Tracked conversation this session belongs to, when the session id matches a\n // conversation in the DB (joined via conversation_files).\n conversationId: Schema.optional(Schema.String),\n conversationName: Schema.optional(Schema.String),\n conversationTitle: Schema.optional(Schema.String),\n enrichmentLevel: Schema.Number,\n enrichmentModel: Schema.optional(Schema.String),\n enrichedAt: Schema.optional(Schema.String),\n enrichmentFailed: Schema.Boolean,\n overdeckManaged: Schema.Boolean,\n panIssueId: Schema.optional(Schema.String),\n panAgentId: Schema.optional(Schema.String),\n scannedAt: Schema.String,\n})\nexport type DiscoveredSessionSnapshot = typeof DiscoveredSessionSnapshot.Type\n\n// ─── Unified Sessions Feed (PAN-1917) ────────────────────────────────────────\n\nexport const SessionsFeedSource = Schema.Literals(['discovered', 'managed-archived'])\nexport type SessionsFeedSource = typeof SessionsFeedSource.Type\n\nexport const SessionsFeedRowSnapshot = Schema.Struct({\n id: Schema.Number,\n source: SessionsFeedSource,\n discoveredId: Schema.optional(Schema.Number),\n jsonlPath: Schema.optional(Schema.String),\n sessionId: Schema.optional(Schema.String),\n workspacePath: Schema.optional(Schema.String),\n messageCount: Schema.Number,\n firstTs: Schema.optional(Schema.String),\n lastTs: Schema.optional(Schema.String),\n primaryModel: Schema.optional(Schema.String),\n tokenInput: Schema.Number,\n tokenOutput: Schema.Number,\n estimatedCost: Schema.Number,\n tags: Schema.Array(Schema.String),\n summary: Schema.optional(Schema.String),\n enrichmentLevel: Schema.Number,\n enrichmentFailed: Schema.Boolean,\n overdeckManaged: Schema.Boolean,\n panIssueId: Schema.optional(Schema.String),\n archivedAt: Schema.optional(Schema.String),\n conversationId: Schema.optional(Schema.String),\n conversationName: Schema.optional(Schema.String),\n conversationTitle: Schema.optional(Schema.String),\n harness: Schema.optional(Schema.String),\n})\nexport type SessionsFeedRowSnapshot = typeof SessionsFeedRowSnapshot.Type\n\nconst SessionsFeedFacetBucketString = Schema.Struct({\n value: Schema.String,\n count: Schema.Number,\n})\n\nconst SessionsFeedFacetBucketNumber = Schema.Struct({\n value: Schema.Number,\n count: Schema.Number,\n})\n\nexport const SessionsFeedFacetsSnapshot = Schema.Struct({\n primaryModels: Schema.Array(SessionsFeedFacetBucketString),\n tags: Schema.Array(SessionsFeedFacetBucketString),\n tools: Schema.Array(SessionsFeedFacetBucketString),\n files: Schema.Array(SessionsFeedFacetBucketString),\n enrichmentLevels: Schema.Array(SessionsFeedFacetBucketNumber),\n timeBuckets: Schema.Array(Schema.Struct({\n value: Schema.Literals(['24h', '7d', '30d', 'older']),\n count: Schema.Number,\n })),\n costBuckets: Schema.Array(Schema.Struct({\n value: Schema.Literals(['<$0.10', '$0.10-1', '$1-10', '>$10']),\n count: Schema.Number,\n })),\n sources: Schema.Array(Schema.Struct({\n value: SessionsFeedSource,\n count: Schema.Number,\n })),\n})\nexport type SessionsFeedFacetsSnapshot = typeof SessionsFeedFacetsSnapshot.Type\n\n/** Filter parameters for conversation search */\nexport const ConversationFilter = Schema.Struct({\n harness: Schema.optional(Schema.String),\n workspacePath: Schema.optional(Schema.String),\n primaryModel: Schema.optional(Schema.String),\n managed: Schema.optional(Schema.Boolean),\n unmanaged: Schema.optional(Schema.Boolean),\n since: Schema.optional(Schema.String),\n before: Schema.optional(Schema.String),\n after: Schema.optional(Schema.String),\n minCost: Schema.optional(Schema.Number),\n maxCost: Schema.optional(Schema.Number),\n minMessages: Schema.optional(Schema.Number),\n tags: Schema.optional(Schema.Array(Schema.String)),\n tools: Schema.optional(Schema.Array(Schema.String)),\n files: Schema.optional(Schema.Array(Schema.String)),\n issueId: Schema.optional(Schema.String),\n enrichmentLevel: Schema.optional(Schema.Number),\n enriched: Schema.optional(Schema.Boolean),\n notEnriched: Schema.optional(Schema.Boolean),\n query: Schema.optional(Schema.String),\n semantic: Schema.optional(Schema.Boolean),\n similarTo: Schema.optional(Schema.Number),\n limit: Schema.optional(Schema.Number),\n offset: Schema.optional(Schema.Number),\n format: Schema.optional(Schema.Literals(['table', 'json', 'brief', 'ids'])),\n})\nexport type ConversationFilter = typeof ConversationFilter.Type\n\n/** Aggregate cost breakdown for conversations */\nexport const ConversationCostSummary = Schema.Struct({\n groupBy: Schema.Literals(['workspace', 'model', 'day', 'month']),\n entries: Schema.Array(Schema.Struct({\n key: Schema.String,\n totalCost: Schema.Number,\n sessionCount: Schema.Number,\n totalTokensIn: Schema.Number,\n totalTokensOut: Schema.Number,\n })),\n grandTotal: Schema.Number,\n totalTokensIn: Schema.Number,\n totalTokensOut: Schema.Number,\n})\nexport type ConversationCostSummary = typeof ConversationCostSummary.Type\n\n/** Scan result summary */\nexport const ScanResult = Schema.Struct({\n inserted: Schema.Number,\n updated: Schema.Number,\n skipped: Schema.Number,\n errors: Schema.Number,\n durationMs: Schema.Number,\n})\nexport type ScanResult = typeof ScanResult.Type\n","// Pull requests linked to conversations (PAN-3822).\n//\n// A conversation holds zero or more PR links keyed by host/repository/number.\n// Each link records why it exists (`source`) and the last known forge state\n// (`snapshot`). The server's pull-request sync sweep writes `branch` links by\n// matching a PR's head branch to the conversation's branch; explicit sources\n// (`manual`, `agent`, `created`) override them. The row and header badge render\n// the one effective link chosen by `resolveEffectivePullRequest`.\n\nimport { Schema } from \"effect\"\n\nimport { PrChecksState, PrReviewState } from \"./derived-issue-state\"\n\nexport const PullRequestLinkSource = Schema.Literals([\"manual\", \"agent\", \"created\", \"branch\"])\nexport type PullRequestLinkSource = typeof PullRequestLinkSource.Type\n\nexport const PullRequestKey = Schema.Struct({\n host: Schema.String,\n repository: Schema.String,\n number: Schema.Number,\n})\nexport type PullRequestKey = typeof PullRequestKey.Type\n\nexport const PullRequestState = Schema.Literals([\"open\", \"merged\", \"closed\"])\nexport type PullRequestState = typeof PullRequestState.Type\n\nexport const PullRequestSnapshot = Schema.Struct({\n state: PullRequestState,\n isDraft: Schema.Boolean,\n title: Schema.String,\n headBranch: Schema.NullOr(Schema.String),\n baseBranch: Schema.NullOr(Schema.String),\n reviewState: PrReviewState,\n checks: PrChecksState,\n mergeable: Schema.NullOr(Schema.Boolean),\n additions: Schema.NullOr(Schema.Number),\n deletions: Schema.NullOr(Schema.Number),\n changedFiles: Schema.NullOr(Schema.Number),\n author: Schema.NullOr(Schema.String),\n /** Forge timestamp, ISO. */\n updatedAt: Schema.NullOr(Schema.String),\n mergedAt: Schema.NullOr(Schema.String),\n closedAt: Schema.NullOr(Schema.String),\n /** When Overdeck last read the PR, ISO. */\n syncedAt: Schema.String,\n})\nexport type PullRequestSnapshot = typeof PullRequestSnapshot.Type\n\nexport const PullRequestLink = Schema.Struct({\n ...PullRequestKey.fields,\n url: Schema.String,\n source: PullRequestLinkSource,\n linkedAt: Schema.String,\n dismissedAt: Schema.NullOr(Schema.String),\n snapshot: Schema.NullOr(PullRequestSnapshot),\n})\nexport type PullRequestLink = typeof PullRequestLink.Type\n\nexport const ConversationPullRequests = Schema.Struct({\n links: Schema.Array(PullRequestLink),\n effective: Schema.NullOr(PullRequestLink),\n})\nexport type ConversationPullRequests = typeof ConversationPullRequests.Type\n\n/** One conversation linked to a PR — the reverse index (PR → conversations). */\nexport const PullRequestLinkedConversation = Schema.Struct({\n /** The /conv/<id> number. */\n id: Schema.Number,\n name: Schema.String,\n title: Schema.NullOr(Schema.String),\n source: PullRequestLinkSource,\n linkedAt: Schema.String,\n})\nexport type PullRequestLinkedConversation = typeof PullRequestLinkedConversation.Type\n\n/** One live link across all conversations, for the Pull requests list. */\nexport const PullRequestLinkListing = Schema.Struct({\n ...PullRequestLink.fields,\n conversationId: Schema.Number,\n conversationName: Schema.String,\n conversationTitle: Schema.NullOr(Schema.String),\n /** The conversation's effective project, or null when none resolves. */\n projectKey: Schema.NullOr(Schema.String),\n})\nexport type PullRequestLinkListing = typeof PullRequestLinkListing.Type\n\nfunction stateRank(link: PullRequestLink): number {\n if (link.snapshot === null) return 1\n if (link.snapshot.state === \"open\") return 0\n if (link.snapshot.state === \"merged\") return 2\n return 3\n}\n\nfunction recency(link: PullRequestLink): number {\n return Date.parse(link.snapshot?.updatedAt ?? link.linkedAt) || 0\n}\n\n/**\n * The one PR shown on a conversation: explicit links before branch links,\n * open before merged before closed, most recently updated among equals.\n * Dismissed links never count.\n */\nexport function resolveEffectivePullRequest(links: readonly PullRequestLink[]): PullRequestLink | null {\n const live = links.filter((link) => link.dismissedAt === null)\n const explicit = live.filter((link) => link.source !== \"branch\")\n const pool = explicit.length > 0 ? explicit : live\n if (pool.length === 0) return null\n return [...pool].sort((a, b) => stateRank(a) - stateRank(b) || recency(b) - recency(a))[0] ?? null\n}\n","import { Schema } from \"effect\"\nimport { IssueId, Role } from \"./types\"\n\n// Memory turns can come from a conversation, not just a spawned agent\n// (PAN-1990 D-6: a main/scratch workspace turn has no agent Role). Scoped to\n// memory identity only — AgentSnapshot/AgentState.role stay agent-only.\nexport const MemoryAgentRole = Schema.Union([Role, Schema.Literal(\"conversation\")])\nexport type MemoryAgentRole = typeof MemoryAgentRole.Type\n\nexport const MemoryIdentity = Schema.Struct({\n projectId: Schema.String,\n workspaceId: Schema.String,\n issueId: Schema.NullOr(IssueId),\n runId: Schema.String,\n sessionId: Schema.String,\n agentRole: MemoryAgentRole,\n agentHarness: Schema.String,\n})\nexport type MemoryIdentity = typeof MemoryIdentity.Type\n\nexport const MemoryTokenUsage = Schema.Struct({\n prompt: Schema.Number,\n completion: Schema.Number,\n total: Schema.Number,\n})\nexport type MemoryTokenUsage = typeof MemoryTokenUsage.Type\n\nexport const MemoryObservation = Schema.Struct({\n id: Schema.String,\n timestamp: Schema.String,\n projectId: Schema.String,\n workspaceId: Schema.String,\n issueId: Schema.NullOr(IssueId),\n runId: Schema.String,\n sessionId: Schema.String,\n agentRole: MemoryAgentRole,\n agentHarness: Schema.String,\n gitBranch: Schema.String,\n sourceTranscriptOffset: Schema.Number,\n actionStatus: Schema.NullOr(Schema.String),\n narrative: Schema.String,\n summary: Schema.String,\n files: Schema.Array(Schema.String),\n tags: Schema.Array(Schema.String),\n tokens: MemoryTokenUsage,\n model: Schema.String,\n})\nexport type MemoryObservation = typeof MemoryObservation.Type\n\nexport const MemoryStatusPhase = Schema.Literals([\n \"exploring\",\n \"planning\",\n \"building\",\n \"verifying\",\n \"cleaning\",\n \"shipping\",\n])\nexport type MemoryStatusPhase = typeof MemoryStatusPhase.Type\n\nexport const MemoryStatus = Schema.Struct({\n name: Schema.String,\n headline: Schema.String,\n summary: Schema.String,\n goal: Schema.NullOr(Schema.String),\n phase: MemoryStatusPhase,\n accomplished: Schema.Array(Schema.String),\n decided: Schema.Array(Schema.String),\n open: Schema.Array(Schema.String),\n nextSteps: Schema.Array(Schema.String),\n confidence: Schema.Number,\n workingSet: Schema.Array(Schema.String),\n tags: Schema.Array(Schema.String),\n})\nexport type MemoryStatus = typeof MemoryStatus.Type\n\nexport const PendingTurn = Schema.Struct({\n id: Schema.String,\n createdAt: Schema.String,\n identity: MemoryIdentity,\n trigger: Schema.Literals([\"stop-hook\", \"poller\", \"reconciliation\", \"manual\"]),\n transcriptPath: Schema.String,\n fromOffset: Schema.Number,\n toOffset: Schema.Number,\n lastFullLineOffset: Schema.Number,\n eventsConsumed: Schema.Number,\n compressedText: Schema.String,\n})\nexport type PendingTurn = typeof PendingTurn.Type\n\nexport const ResetMarkerScope = Schema.Literals([\"project\", \"workspace\", \"issue\", \"session\"])\nexport type ResetMarkerScope = typeof ResetMarkerScope.Type\n\nexport const ResetMarker = Schema.Struct({\n id: Schema.String,\n scope: ResetMarkerScope,\n scopeId: Schema.String,\n fromTimestamp: Schema.String,\n reason: Schema.String,\n createdAt: Schema.String,\n})\nexport type ResetMarker = typeof ResetMarker.Type\n\nexport const RagDecisionSource = Schema.Struct({\n id: Schema.String,\n docType: Schema.Literals([\"observation\", \"summary\", \"status\", \"sibling\", \"knowledge\"]),\n scope: Schema.String,\n score: Schema.Number,\n tokens: Schema.Number,\n})\nexport type RagDecisionSource = typeof RagDecisionSource.Type\n\nexport const RagDecision = Schema.Struct({\n id: Schema.String,\n timestamp: Schema.String,\n identity: MemoryIdentity,\n surface: Schema.Literals([\"spawn\", \"user-prompt\"]),\n outcome: Schema.Literals([\n \"injected\",\n \"skipped\",\n \"no-hits\",\n \"expansion-failed\",\n \"context-too-large\",\n \"budget-truncated\",\n ]),\n query: Schema.String,\n expandedTerms: Schema.Array(Schema.String),\n allocations: Schema.Struct({\n status: Schema.Number,\n observations: Schema.Number,\n summaries: Schema.Number,\n sibling: Schema.Number,\n knowledgeIndex: Schema.Number,\n }),\n sources: Schema.Array(RagDecisionSource),\n reason: Schema.NullOr(Schema.String),\n})\nexport type RagDecision = typeof RagDecision.Type\n\nexport const ExtractionProviderTarget = Schema.Struct({\n provider: Schema.String,\n model: Schema.String,\n})\nexport type ExtractionProviderTarget = typeof ExtractionProviderTarget.Type\n\nexport const ExtractionProviderConfig = Schema.Struct({\n provider: Schema.String,\n model: Schema.String,\n providerEnvVar: Schema.optional(Schema.String),\n modelEnvVar: Schema.optional(Schema.String),\n perDayCostCapUsd: Schema.Number,\n fallbackChain: Schema.Array(ExtractionProviderTarget),\n})\nexport type ExtractionProviderConfig = typeof ExtractionProviderConfig.Type\n","/**\n * Shared V2 system-health contract. Domain measurements use null for unavailable\n * evidence, unknown enum values decode to safe unavailable/unknown states, and\n * the legacy summary is a compatibility projection from the accepted V2 snapshot.\n */\nimport { Schema, SchemaGetter } from \"effect\"\n\nconst HealthStateValue = Schema.Literals([\n \"measuring\",\n \"healthy\",\n \"warning\",\n \"critical\",\n \"unavailable\",\n])\n\nexport const HealthState = Schema.String.pipe(\n Schema.decodeTo(HealthStateValue, {\n decode: SchemaGetter.transform((value) =>\n HealthStateValue.literals.includes(value as HealthState) ? value as HealthState : \"unavailable\"\n ),\n encode: SchemaGetter.transform((value) => value),\n }),\n)\nexport type HealthState = typeof HealthStateValue.Type\n\nexport const HealthReason = Schema.Struct({\n code: Schema.String,\n domain: Schema.Literals([\"host\", \"admission\", \"agent\", \"service\"]),\n severity: Schema.Literals([\"info\", \"warning\", \"critical\"]),\n message: Schema.String,\n metric: Schema.optional(Schema.String),\n observed: Schema.optional(Schema.Number),\n threshold: Schema.optional(Schema.Number),\n})\nexport type HealthReason = typeof HealthReason.Type\n\nexport const HostPlatform = Schema.String.pipe(\n Schema.decodeTo(Schema.Literals([\"linux\", \"darwin\", \"unsupported\"]), {\n decode: SchemaGetter.transform((value) =>\n value === \"linux\" || value === \"darwin\" || value === \"unsupported\" ? value : \"unsupported\"\n ),\n encode: SchemaGetter.transform((value) => value),\n }),\n)\nexport type HostPlatform = typeof HostPlatform.Type\n\n/**\n * Accepted host metrics. Null means that the platform collector could not\n * produce that signal; it must never be interpreted as a measured zero.\n */\nexport const HostHealthMetrics = Schema.Struct({\n cpuPercent: Schema.NullOr(Schema.Number),\n loadAverage1m: Schema.NullOr(Schema.Number),\n loadPerCore1m: Schema.NullOr(Schema.Number),\n totalMemoryBytes: Schema.NullOr(Schema.Number),\n usedMemoryBytes: Schema.NullOr(Schema.Number),\n availableMemoryBytes: Schema.NullOr(Schema.Number),\n memoryUsedPercent: Schema.NullOr(Schema.Number),\n memoryPressureSomeAvg10: Schema.NullOr(Schema.Number),\n memoryPressureFullAvg10: Schema.NullOr(Schema.Number),\n memoryPressureFreePercent: Schema.NullOr(Schema.Number),\n swapTotalBytes: Schema.NullOr(Schema.Number),\n swapUsedBytes: Schema.NullOr(Schema.Number),\n swapUsedPercent: Schema.NullOr(Schema.Number),\n swapActivityBytesPerMinute: Schema.NullOr(Schema.Number),\n committedMemoryBytes: Schema.NullOr(Schema.Number),\n commitLimitBytes: Schema.NullOr(Schema.Number),\n virtualCommitmentPercent: Schema.NullOr(Schema.Number),\n // Optional so pre-PAN-3063 payloads and fixtures still decode.\n inotifyWatchesUsed: Schema.optional(Schema.NullOr(Schema.Number)),\n inotifyWatchesMax: Schema.optional(Schema.NullOr(Schema.Number)),\n inotifyWatchesUsedPercent: Schema.optional(Schema.NullOr(Schema.Number)),\n})\nexport type HostHealthMetrics = typeof HostHealthMetrics.Type\n\nexport const AdmissionState = Schema.String.pipe(\n Schema.decodeTo(Schema.Literals([\"open\", \"soft\", \"blocked\", \"unavailable\"]), {\n decode: SchemaGetter.transform((value) =>\n value === \"open\" || value === \"soft\" || value === \"blocked\" || value === \"unavailable\"\n ? value\n : \"unavailable\"\n ),\n encode: SchemaGetter.transform((value) => value),\n }),\n)\nexport type AdmissionState = typeof AdmissionState.Type\n\nexport const AgentHealthStatus = Schema.String.pipe(\n Schema.decodeTo(\n Schema.Literals([\n \"healthy\",\n \"idle\",\n \"waiting\",\n \"warning\",\n \"stalled\",\n \"wedged\",\n \"dead\",\n \"unavailable\",\n ]),\n {\n decode: SchemaGetter.transform((value) =>\n value === \"healthy\" ||\n value === \"idle\" ||\n value === \"waiting\" ||\n value === \"warning\" ||\n value === \"stalled\" ||\n value === \"wedged\" ||\n value === \"dead\" ||\n value === \"unavailable\"\n ? value\n : \"unavailable\"\n ),\n encode: SchemaGetter.transform((value) => value),\n },\n ),\n)\nexport type AgentHealthStatus = typeof AgentHealthStatus.Type\n\nexport const AgentHealthKind = Schema.String.pipe(\n Schema.decodeTo(Schema.Literals([\"work\", \"planning\", \"specialist\", \"conversation\", \"other\"]), {\n decode: SchemaGetter.transform((value) =>\n value === \"work\" ||\n value === \"planning\" ||\n value === \"specialist\" ||\n value === \"conversation\" ||\n value === \"other\"\n ? value\n : \"other\"\n ),\n encode: SchemaGetter.transform((value) => value),\n }),\n)\nexport type AgentHealthKind = typeof AgentHealthKind.Type\n\nexport const SpecialistLifecycle = Schema.String.pipe(\n Schema.decodeTo(Schema.Literals([\"active\", \"warm\", \"orphaned\", \"unknown\"]), {\n decode: SchemaGetter.transform((value) =>\n value === \"active\" || value === \"warm\" || value === \"orphaned\" || value === \"unknown\"\n ? value\n : \"unknown\"\n ),\n encode: SchemaGetter.transform((value) => value),\n }),\n)\nexport type SpecialistLifecycle = typeof SpecialistLifecycle.Type\n\nexport const AgentHealthSnapshot = Schema.Struct({\n id: Schema.String,\n issueId: Schema.optional(Schema.String),\n role: Schema.optional(Schema.String),\n kind: Schema.optional(AgentHealthKind),\n status: AgentHealthStatus,\n lifecycle: Schema.optional(SpecialistLifecycle),\n /** The agent has a live pane on the selected terminal backend (Herdr or tmux). */\n hasLivePane: Schema.optional(Schema.Boolean),\n /** @deprecated Alias of `hasLivePane` kept for existing readers; true on either backend, not only tmux. */\n tmuxActive: Schema.optional(Schema.Boolean),\n memoryBytes: Schema.optional(Schema.Number),\n memoryGb: Schema.optional(Schema.Number),\n cpuPercent: Schema.optional(Schema.Number),\n currentIssue: Schema.optional(Schema.String),\n lastActivityAt: Schema.optional(Schema.String),\n consecutiveFailures: Schema.optional(Schema.Number),\n killCount: Schema.optional(Schema.Number),\n contextPercent: Schema.optional(Schema.NullOr(Schema.Number)),\n reasons: Schema.Array(HealthReason),\n})\nexport type AgentHealthSnapshot = typeof AgentHealthSnapshot.Type\n\nexport const ServiceHealthStatus = Schema.String.pipe(\n Schema.decodeTo(\n Schema.Literals([\"running\", \"not_configured\", \"degraded\", \"stopped\", \"unavailable\"]),\n {\n decode: SchemaGetter.transform((value) =>\n value === \"running\" ||\n value === \"not_configured\" ||\n value === \"degraded\" ||\n value === \"stopped\" ||\n value === \"unavailable\"\n ? value\n : \"unavailable\"\n ),\n encode: SchemaGetter.transform((value) => value),\n },\n ),\n)\nexport type ServiceHealthStatus = typeof ServiceHealthStatus.Type\n\nexport const ServiceHealthSnapshot = Schema.Struct({\n id: Schema.String,\n label: Schema.optional(Schema.String),\n required: Schema.optional(Schema.Boolean),\n status: ServiceHealthStatus,\n message: Schema.String,\n reasons: Schema.Array(HealthReason),\n})\nexport type ServiceHealthSnapshot = typeof ServiceHealthSnapshot.Type\n\nexport const SystemHealthConsumer = Schema.Struct({\n id: Schema.String,\n label: Schema.String,\n type: Schema.Literals([\"agent\", \"specialist\", \"container\"]),\n memoryBytes: Schema.Number,\n memoryGb: Schema.Number,\n cpuPercent: Schema.optional(Schema.Number),\n issueId: Schema.optional(Schema.String),\n currentIssue: Schema.optional(Schema.String),\n leaked: Schema.optional(Schema.Boolean),\n killTarget: Schema.optional(Schema.Struct({\n kind: Schema.Literals([\"agent\", \"specialist\", \"container\"]),\n agentId: Schema.optional(Schema.String),\n containerId: Schema.optional(Schema.String),\n projectKey: Schema.optional(Schema.String),\n issueId: Schema.optional(Schema.String),\n specialistType: Schema.optional(Schema.String),\n })),\n})\nexport type SystemHealthConsumer = typeof SystemHealthConsumer.Type\n\nexport const LegacyWebhookRelaySummary = Schema.Struct({\n configured: Schema.Boolean,\n running: Schema.Boolean,\n status: Schema.Literals([\"not_configured\", \"running\", \"stopped\", \"unknown\"]),\n message: Schema.String,\n})\nexport type LegacyWebhookRelaySummary = typeof LegacyWebhookRelaySummary.Type\n\n/** Compatibility fields retained for one release cycle. */\nexport const LegacySystemHealthSummary = Schema.Struct({\n cpuPercent: Schema.Number,\n loadAverage1m: Schema.Number,\n loadPerCore1m: Schema.Number,\n totalMemoryBytes: Schema.Number,\n usedMemoryBytes: Schema.Number,\n availableMemoryBytes: Schema.Number,\n memoryUsedPercent: Schema.Number,\n swapTotalBytes: Schema.Number,\n swapUsedBytes: Schema.Number,\n swapUsedPercent: Schema.Number,\n committedMemoryBytes: Schema.Number,\n commitLimitBytes: Schema.Number,\n overcommitPercent: Schema.Number,\n agentCount: Schema.Number,\n workAgentCount: Schema.Number,\n planningAgentCount: Schema.Number,\n specialistSessionCount: Schema.Number,\n leakedSpecialistCount: Schema.Number,\n containerCount: Schema.Number,\n containerMemoryBytes: Schema.Number,\n overdeckMemoryBytes: Schema.Number,\n overdeckMemoryPercent: Schema.Number,\n smeeRelay: LegacyWebhookRelaySummary,\n})\nexport type LegacySystemHealthSummary = typeof LegacySystemHealthSummary.Type\n\nexport const SystemHealthSnapshot = Schema.Struct({\n version: Schema.Literal(2),\n state: HealthState,\n updatedAt: Schema.String,\n nextPollMs: Schema.Number,\n host: Schema.Struct({\n state: HealthState,\n platform: HostPlatform,\n reasons: Schema.Array(HealthReason),\n metrics: HostHealthMetrics,\n }),\n admission: Schema.Struct({\n state: AdmissionState,\n availableMemoryBytes: Schema.NullOr(Schema.Number),\n admittedWorkAgentCount: Schema.Number,\n reasons: Schema.Array(HealthReason),\n }),\n agents: Schema.Array(AgentHealthSnapshot),\n services: Schema.Array(ServiceHealthSnapshot),\n // The producer supplies every memory-bearing consumer in descending order.\n // Presentation clients may slice this array; the compatibility projector\n // needs the exhaustive source to preserve aggregate container totals.\n topConsumers: Schema.Array(SystemHealthConsumer),\n summary: LegacySystemHealthSummary,\n})\nexport type SystemHealthSnapshot = typeof SystemHealthSnapshot.Type\n\nfunction isWorkAgent(agent: AgentHealthSnapshot): boolean {\n return agent.kind === \"work\" || agent.role === \"work\"\n}\n\nfunction isPlanningAgent(agent: AgentHealthSnapshot): boolean {\n return agent.kind === \"planning\" || agent.role === \"plan\" || agent.role === \"planning\"\n}\n\nfunction isSpecialistAgent(agent: AgentHealthSnapshot): boolean {\n return agent.kind === \"specialist\" ||\n agent.role === \"review\" ||\n agent.role?.startsWith(\"review-\") === true ||\n agent.role === \"test\" ||\n agent.role === \"ship\"\n}\n\nfunction projectWebhookRelay(services: ReadonlyArray<ServiceHealthSnapshot>): LegacyWebhookRelaySummary {\n const relay = services.find((service) => service.id === \"smee-relay\" || service.id === \"webhook-relay\")\n if (!relay) {\n return {\n configured: false,\n running: false,\n status: \"unknown\",\n message: \"Webhook relay health is unavailable.\",\n }\n }\n\n const status = relay.status === \"running\" || relay.status === \"not_configured\" || relay.status === \"stopped\"\n ? relay.status\n : \"unknown\"\n\n return {\n configured: relay.status !== \"not_configured\",\n running: relay.status === \"running\",\n status,\n message: relay.message,\n }\n}\n\n/**\n * Projects the V2 domains into the legacy summary without recollecting state.\n * Diagnostic-only swap and virtual-commitment values remain visible here but\n * do not participate in V2 health-state evaluation.\n */\nexport function projectLegacySystemHealthSummary(\n snapshot: Omit<SystemHealthSnapshot, \"summary\">,\n): LegacySystemHealthSummary {\n const metrics = snapshot.host.metrics\n const agentMemoryBytes = snapshot.agents.reduce((total, agent) => total + (agent.memoryBytes ?? 0), 0)\n const containers = snapshot.topConsumers.filter((consumer) => consumer.type === \"container\")\n const containerMemoryBytes = containers.reduce((total, consumer) => total + consumer.memoryBytes, 0)\n const overdeckMemoryBytes = agentMemoryBytes + containerMemoryBytes\n const totalMemoryBytes = metrics.totalMemoryBytes ?? 0\n\n return {\n cpuPercent: metrics.cpuPercent ?? 0,\n loadAverage1m: metrics.loadAverage1m ?? 0,\n loadPerCore1m: metrics.loadPerCore1m ?? 0,\n totalMemoryBytes,\n usedMemoryBytes: metrics.usedMemoryBytes ?? 0,\n availableMemoryBytes: metrics.availableMemoryBytes ?? 0,\n memoryUsedPercent: metrics.memoryUsedPercent ?? 0,\n swapTotalBytes: metrics.swapTotalBytes ?? 0,\n swapUsedBytes: metrics.swapUsedBytes ?? 0,\n swapUsedPercent: metrics.swapUsedPercent ?? 0,\n committedMemoryBytes: metrics.committedMemoryBytes ?? 0,\n commitLimitBytes: metrics.commitLimitBytes ?? 0,\n overcommitPercent: metrics.virtualCommitmentPercent ?? 0,\n agentCount: snapshot.agents.length,\n workAgentCount: snapshot.agents.filter(isWorkAgent).length,\n planningAgentCount: snapshot.agents.filter(isPlanningAgent).length,\n specialistSessionCount: snapshot.agents.filter(isSpecialistAgent).length,\n leakedSpecialistCount: snapshot.agents.filter((agent) =>\n isSpecialistAgent(agent) && agent.lifecycle === \"orphaned\"\n ).length,\n containerCount: containers.length,\n containerMemoryBytes,\n overdeckMemoryBytes,\n overdeckMemoryPercent: totalMemoryBytes > 0 ? Math.round((overdeckMemoryBytes / totalMemoryBytes) * 1000) / 10 : 0,\n smeeRelay: projectWebhookRelay(snapshot.services),\n }\n}\n","import { Schema } from \"effect\"\nimport {\n Activity,\n AgentChannelReply,\n AgentId,\n AgentResolution,\n AgentRuntimeSnapshot,\n AgentSnapshot,\n AgentStatus,\n ChannelPermissionRequestSnapshot,\n ClaudeChannelPermissionBehavior,\n IssueId,\n ProjectCiSuite,\n ResourceStats,\n RestartGateSnapshot,\n ProjectDeploySnapshot,\n Role,\n SequenceNumber,\n TurnEndAssessment,\n WaitingReason,\n} from \"./types\"\nimport { DerivedIssueState } from \"./derived-issue-state\"\nimport { GitHubQuotaSnapshot } from \"./github-quota\"\nimport { PullRequestLink } from \"./pull-request-links\"\nimport { BackendPane } from \"./backend-pane\"\nimport {\n MemoryObservation,\n MemoryStatus,\n RagDecision,\n ResetMarker,\n} from \"./memory\"\nimport { HealthState } from \"./system-health\"\n\n// ─── System Events ────────────────────────────────────────────────────────────\n\n/** App-level liveness frame for the /ws/rpc domain-events stream. */\nexport const SystemHeartbeatEvent = Schema.Struct({\n type: Schema.Literal(\"system.heartbeat\"),\n timestamp: Schema.String,\n payload: Schema.Struct({ ts: Schema.Number }),\n})\nexport type SystemHeartbeatEvent = typeof SystemHeartbeatEvent.Type\n\n/** The canonical local Dolt head advanced after a background remote pull. */\nexport const BeadsFreshnessChangedEvent = Schema.Struct({\n type: Schema.Literal(\"beads.freshness_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n projectKey: Schema.String,\n localHead: Schema.String,\n lastSyncedAt: Schema.String,\n }),\n})\nexport type BeadsFreshnessChangedEvent = typeof BeadsFreshnessChangedEvent.Type\n\n/**\n * One GitHub Actions check suite observed on a project's default branch\n * (PAN-3537).\n *\n * Emitted by the `check_suite` webhook handler for live updates, only after an\n * independent branch-head lookup verifies the payload SHA is still current.\n * `suiteId` is the check suite id — for GitHub Actions that is one suite per\n * workflow run. The webhook payload does not carry `htmlUrl`.\n *\n * Boot and periodic repair use `project.ci_head_observed`, which replaces the\n * complete projection after pagination. Both events feed\n * `ReadModelState.ciByProjectKey`, a disposable cache rebuilt from REST on every\n * boot — there is no durable CI store.\n */\nexport const ProjectCiSuiteObservedEvent = Schema.Struct({\n type: Schema.Literal(\"project.ci_suite_observed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n projectKey: Schema.String,\n repo: Schema.String,\n branch: Schema.String,\n headSha: Schema.String,\n suiteId: Schema.String,\n status: Schema.String,\n conclusion: Schema.NullOr(Schema.String),\n htmlUrl: Schema.optional(Schema.String),\n observedAt: Schema.String,\n /** True only after the emitter verified headSha against the branch head. */\n authoritativeHead: Schema.optional(Schema.Boolean),\n }),\n})\nexport type ProjectCiSuiteObservedEvent = typeof ProjectCiSuiteObservedEvent.Type\n\n/**\n * Complete GitHub Actions projection for the verified default-branch head.\n * The REST seed/repair emits one event after paginating every run and verifying\n * the branch head a second time. An empty suites record explicitly clears stale\n * CI when the current commit has no Actions runs.\n */\nexport const ProjectCiHeadObservedEvent = Schema.Struct({\n type: Schema.Literal(\"project.ci_head_observed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n projectKey: Schema.String,\n repo: Schema.String,\n branch: Schema.String,\n headSha: Schema.String,\n suites: Schema.Record(Schema.String, ProjectCiSuite),\n observedAt: Schema.String,\n }),\n})\nexport type ProjectCiHeadObservedEvent = typeof ProjectCiHeadObservedEvent.Type\n\n/**\n * The restart gate changed (PAN-3729).\n *\n * The payload is the COMPLETE gate projection, not a delta, so the reducer is a\n * plain replace and no ordering logic is needed. Emitted by the gate writer\n * (`src/dashboard/server/services/restart-gate.ts`) on every mutation and on\n * every sweep tick that drops an expired request, so the approval banner clears\n * itself when a requester dies without polling again.\n *\n * The gate is runtime-plane state (like `~/.overdeck/dashboard-restarting.json`),\n * so this event is emitted in-memory only — it is never persisted to the event\n * log and never replayed at boot.\n */\nexport const RestartGateChangedEvent = Schema.Struct({\n type: Schema.Literal(\"restart_gate.changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: RestartGateSnapshot,\n})\nexport type RestartGateChangedEvent = typeof RestartGateChangedEvent.Type\n\n/**\n * The GitHub API quota view changed (PAN-4264).\n *\n * The payload is the complete snapshot, so the reducer is a plain replace.\n * The server derives it from the quota ledger and pause file under\n * `~/.overdeck/github-quota/` and emits it in-memory only, like\n * `restart_gate.changed`: it is never persisted and never replayed at boot.\n */\nexport const GitHubQuotaChangedEvent = Schema.Struct({\n type: Schema.Literal(\"github_quota.changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: GitHubQuotaSnapshot,\n})\nexport type GitHubQuotaChangedEvent = typeof GitHubQuotaChangedEvent.Type\n\n/**\n * The set of in-flight project deploys changed (PAN-3751).\n *\n * The payload is the COMPLETE projection keyed by project key, so the reducer\n * is a plain replace. The server derives it from runtime files (restart lock,\n * restart gate, restart-status journal) and emits it in-memory only, like\n * `restart_gate.changed`: it is never persisted and never replayed at boot.\n */\nexport const ProjectDeployChangedEvent = Schema.Struct({\n type: Schema.Literal(\"project.deploy_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n deploys: Schema.Record(Schema.String, ProjectDeploySnapshot),\n }),\n})\nexport type ProjectDeployChangedEvent = typeof ProjectDeployChangedEvent.Type\n\n// ─── Agent Events ─────────────────────────────────────────────────────────────\n\n/** Replaces socket.io `agents:changed` (event: 'started') */\nexport const AgentStartedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ agentId: AgentId, issueId: IssueId, workspaceId: Schema.optional(Schema.String), agent: AgentSnapshot }),\n})\nexport type AgentStartedEvent = typeof AgentStartedEvent.Type\n\n/** Replaces socket.io `agents:changed` (event: 'stopped') */\nexport const AgentStoppedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.stopped\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ agentId: AgentId, issueId: IssueId, workspaceId: Schema.optional(Schema.String), sessionId: Schema.optional(Schema.String) }),\n})\nexport type AgentStoppedEvent = typeof AgentStoppedEvent.Type\n\nexport const AgentHeartbeatDeadEvent = Schema.Struct({\n type: Schema.Literal(\"agent.heartbeat_dead\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ agentId: AgentId, issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String), sessionId: Schema.optional(Schema.String) }),\n})\nexport type AgentHeartbeatDeadEvent = typeof AgentHeartbeatDeadEvent.Type\n\n/** Role lifecycle — work agent completed implementation and is ready for review. */\nexport const WorkCompletedEvent = Schema.Struct({\n type: Schema.Literal(\"work.completed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), agentId: Schema.optional(AgentId) }),\n})\nexport type WorkCompletedEvent = typeof WorkCompletedEvent.Type\n\n/** Role lifecycle — generic agent completion signal, normalized by Cloister by role. */\nexport const AgentCompletedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.completed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), agentId: Schema.optional(AgentId), role: Schema.optional(Role) }),\n})\nexport type AgentCompletedEvent = typeof AgentCompletedEvent.Type\n\n/** Role lifecycle — review approved the branch and testing should start. */\nexport const ReviewApprovedEvent = Schema.Struct({\n type: Schema.Literal(\"review.approved\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String) }),\n})\nexport type ReviewApprovedEvent = typeof ReviewApprovedEvent.Type\n\n/** Role lifecycle — tests passed and shipping should prepare the branch. */\nexport const TestPassedEvent = Schema.Struct({\n type: Schema.Literal(\"test.passed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String) }),\n})\nexport type TestPassedEvent = typeof TestPassedEvent.Type\n\n/** Replaces socket.io `godview:status-change` */\nexport const AgentStatusChangedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.status_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n status: AgentStatus,\n previousStatus: Schema.optional(AgentStatus),\n /** The agent has a live pane on its terminal backend (Herdr or tmux). */\n hasLivePane: Schema.optional(Schema.Boolean),\n /** @deprecated Alias of `hasLivePane`, kept for events written before it existed (#4105). */\n hasLiveTmuxSession: Schema.optional(Schema.Boolean),\n stoppedByUser: Schema.optional(Schema.Boolean),\n stoppedByPause: Schema.optional(Schema.Boolean),\n paused: Schema.optional(Schema.Boolean),\n pausedReason: Schema.optional(Schema.NullOr(Schema.String)),\n pausedAt: Schema.optional(Schema.NullOr(Schema.String)),\n troubled: Schema.optional(Schema.Boolean),\n troubledAt: Schema.optional(Schema.NullOr(Schema.String)),\n consecutiveFailures: Schema.optional(Schema.Number),\n firstFailureInRunAt: Schema.optional(Schema.NullOr(Schema.String)),\n lastFailureAt: Schema.optional(Schema.NullOr(Schema.String)),\n lastFailureReason: Schema.optional(Schema.NullOr(Schema.String)),\n lastFailureNextRetryAt: Schema.optional(Schema.NullOr(Schema.String)),\n kickoffDelivered: Schema.optional(Schema.Boolean),\n hostOverride: Schema.optional(Schema.Boolean),\n role: Schema.optional(Role),\n model: Schema.optional(Schema.String),\n workspace: Schema.optional(Schema.String),\n sessionId: Schema.optional(Schema.String),\n lastActivity: Schema.optional(Schema.String),\n lastResumeAt: Schema.optional(Schema.String),\n stoppedAt: Schema.optional(Schema.String),\n branch: Schema.optional(Schema.String),\n costSoFar: Schema.optional(Schema.Number),\n phase: Schema.optional(Schema.String),\n workType: Schema.optional(Schema.String),\n roleRunHead: Schema.optional(Schema.String),\n flywheelRunId: Schema.optional(Schema.String),\n reviewSubRole: Schema.optional(Schema.String),\n reviewRunId: Schema.optional(Schema.String),\n reviewOutputPath: Schema.optional(Schema.String),\n reviewSynthesisAgentId: Schema.optional(Schema.String),\n reviewDeadlineAt: Schema.optional(Schema.String),\n reviewMonitorSignaled: Schema.optional(Schema.String),\n reviewRetryAttempt: Schema.optional(Schema.Number),\n inspectSubRole: Schema.optional(Schema.String),\n deliveryMethod: Schema.optional(Schema.String),\n supervisorEnabled: Schema.optional(Schema.Boolean),\n channelsEnabled: Schema.optional(Schema.Boolean),\n }),\n})\nexport type AgentStatusChangedEvent = typeof AgentStatusChangedEvent.Type\n\n/** Replaces socket.io `godview:agent-output` */\nexport const AgentOutputReceivedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.output_received\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ agentId: AgentId, lines: Schema.Array(Schema.String) }),\n})\nexport type AgentOutputReceivedEvent = typeof AgentOutputReceivedEvent.Type\n\n/** New — agent enrichment fields updated (PAN-440) */\nexport const AgentEnrichmentChangedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.enrichment_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n role: Schema.optional(Role),\n // Optional because this event type predates these fields (PAN-440). The event\n // store is append-only, so older persisted events lack them — a required schema\n // makes those events fail replay decode (\"Missing key\").\n hasPendingQuestion: Schema.optional(Schema.Boolean),\n pendingQuestionCount: Schema.optional(Schema.Number),\n pendingQuestionPrompt: Schema.optional(Schema.String),\n pendingQuestionReason: Schema.optional(Schema.String),\n // PAN-1520 — unified pending-input surfaces\n pendingInputCount: Schema.optional(Schema.Number),\n pendingInputKinds: Schema.optional(Schema.Array(Schema.String)),\n pendingAskUserQuestion: Schema.optional(Schema.Struct({\n toolUseId: Schema.String,\n askedAt: Schema.String,\n questions: Schema.Array(Schema.Struct({\n question: Schema.String,\n header: Schema.optional(Schema.String),\n multiSelect: Schema.optional(Schema.Boolean),\n options: Schema.Array(Schema.Struct({\n label: Schema.String,\n description: Schema.optional(Schema.String),\n })),\n })),\n })),\n // PAN-1520 (FR-1) — pending ExitPlanMode plan payload for the approval modal.\n pendingProposedPlan: Schema.optional(Schema.Struct({\n toolUseId: Schema.String,\n askedAt: Schema.String,\n plan: Schema.String,\n })),\n resolution: Schema.optional(AgentResolution),\n resolutionCount: Schema.optional(Schema.Number),\n turnEndAssessment: Schema.optional(TurnEndAssessment),\n }),\n})\nexport type AgentEnrichmentChangedEvent = typeof AgentEnrichmentChangedEvent.Type\n\n/** New — agent created in database */\nexport const AgentCreatedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.created\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ agentId: AgentId, issueId: IssueId, workspaceId: Schema.optional(Schema.String), agent: AgentSnapshot }),\n})\nexport type AgentCreatedEvent = typeof AgentCreatedEvent.Type\n\n// ─── Agent Runtime Events (PAN-800) ───────────────────────────────────────────\n// Canonical per-tool-call runtime signals. Fold into ReadModelState.agentRuntimeById\n// via the shared reducer. Server AgentStateService ref is derived from the same fold.\n\nexport const AgentActivityChangedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.activity_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n activity: Activity,\n currentTool: Schema.optional(Schema.String),\n toolDescription: Schema.optional(Schema.String),\n hookName: Schema.optional(Schema.String),\n }),\n})\nexport type AgentActivityChangedEvent = typeof AgentActivityChangedEvent.Type\n\n/** A registered harness hook fired without implying an agent activity transition. */\nexport const AgentHookFiredEvent = Schema.Struct({\n type: Schema.Literal(\"agent.hook_fired\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n hookName: Schema.String,\n tool: Schema.optional(Schema.String),\n }),\n})\nexport type AgentHookFiredEvent = typeof AgentHookFiredEvent.Type\n\nexport const AgentThinkingStartedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.thinking_started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n lastToolAt: Schema.String,\n }),\n})\nexport type AgentThinkingStartedEvent = typeof AgentThinkingStartedEvent.Type\n\nexport const AgentThinkingStoppedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.thinking_stopped\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n resolvedBy: Schema.Literals([\"tool\", \"waiting\", \"idle\", \"stopped\"]),\n }),\n})\nexport type AgentThinkingStoppedEvent = typeof AgentThinkingStoppedEvent.Type\n\nexport const AgentWaitingStartedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.waiting_started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n reason: WaitingReason,\n message: Schema.optional(Schema.String),\n }),\n})\nexport type AgentWaitingStartedEvent = typeof AgentWaitingStartedEvent.Type\n\nexport const AgentWaitingClearedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.waiting_cleared\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n clearedBy: Schema.Literals([\"user_response\", \"timeout\", \"stopped\", \"tool_resumed\"]),\n }),\n})\nexport type AgentWaitingClearedEvent = typeof AgentWaitingClearedEvent.Type\n\nexport const AgentPermissionRequestedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.permission_requested\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: ChannelPermissionRequestSnapshot,\n})\nexport type AgentPermissionRequestedEvent = typeof AgentPermissionRequestedEvent.Type\n\nexport const AgentPermissionResolvedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.permission_resolved\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n requestId: Schema.String,\n agentId: AgentId,\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n behavior: ClaudeChannelPermissionBehavior,\n }),\n})\nexport type AgentPermissionResolvedEvent = typeof AgentPermissionResolvedEvent.Type\n\nexport const AgentMessageReceivedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.message_received\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n direction: Schema.Literals([\"to_agent\", \"from_agent\"]),\n source: Schema.Literals([\"user\", \"cloister\", \"specialist\", \"automated\"]),\n }),\n})\nexport type AgentMessageReceivedEvent = typeof AgentMessageReceivedEvent.Type\n\nexport const AgentChannelReplyEvent = Schema.Struct({\n type: Schema.Literal(\"agent.channel_reply\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n reply: AgentChannelReply,\n }),\n})\nexport type AgentChannelReplyEvent = typeof AgentChannelReplyEvent.Type\n\nexport const AgentModelSetEvent = Schema.Struct({\n type: Schema.Literal(\"agent.model_set\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n model: Schema.String,\n claudeSessionId: Schema.optional(Schema.NullOr(Schema.String)),\n sessionModel: Schema.optional(Schema.String),\n sessionHarness: Schema.optional(Schema.String),\n }),\n})\nexport type AgentModelSetEvent = typeof AgentModelSetEvent.Type\n\nexport const AgentCurrentIssueSetEvent = Schema.Struct({\n type: Schema.Literal(\"agent.current_issue_set\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n currentIssue: Schema.optional(IssueId),\n }),\n})\nexport type AgentCurrentIssueSetEvent = typeof AgentCurrentIssueSetEvent.Type\n\nexport const AgentContextSaturationChangedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.context_saturation_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n contextSaturatedAt: Schema.optional(Schema.String),\n }),\n})\nexport type AgentContextSaturationChangedEvent = typeof AgentContextSaturationChangedEvent.Type\n\nexport const AgentResolutionChangedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.resolution_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n resolution: AgentResolution,\n resolutionCount: Schema.Number,\n }),\n})\nexport type AgentResolutionChangedEvent = typeof AgentResolutionChangedEvent.Type\n\n/**\n * Bootstrap-only event emitted by AgentStateService when it seeds a runtime\n * snapshot during bootstrap (reconstruction from sources, PAN-1920). Not\n * emitted by hooks.\n */\nexport const AgentStateRestoredEvent = Schema.Struct({\n type: Schema.Literal(\"agent.state_restored\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n snapshot: AgentRuntimeSnapshot,\n }),\n})\nexport type AgentStateRestoredEvent = typeof AgentStateRestoredEvent.Type\n\n/** Emitted when a turn diff checkpoint is captured and diff computed */\nexport const AgentTurnDiffCompletedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.turn_diff_completed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n turnId: Schema.String,\n completedAt: Schema.String,\n files: Schema.Array(Schema.Struct({\n path: Schema.String,\n kind: Schema.optional(Schema.String),\n additions: Schema.optional(Schema.Number),\n deletions: Schema.optional(Schema.Number),\n })),\n checkpointRef: Schema.optional(Schema.String),\n assistantMessageId: Schema.optional(Schema.String),\n checkpointTurnCount: Schema.optional(Schema.Number),\n }),\n})\nexport type AgentTurnDiffCompletedEvent = typeof AgentTurnDiffCompletedEvent.Type\n\n// ─── Planning Events ──────────────────────────────────────────────────────────\n\n/** Replaces socket.io `planning:started` */\nexport const PlanningStartedEvent = Schema.Struct({\n type: Schema.Literal(\"planning.started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), sessionName: Schema.String, harness: Schema.optional(Schema.String) }),\n})\nexport type PlanningStartedEvent = typeof PlanningStartedEvent.Type\n\n/** Replaces socket.io `planning:failed` */\nexport const PlanningFailedEvent = Schema.Struct({\n type: Schema.Literal(\"planning.failed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), error: Schema.String }),\n})\nexport type PlanningFailedEvent = typeof PlanningFailedEvent.Type\n\n/** Replaces socket.io `planning:sync` */\nexport const PlanningSyncEvent = Schema.Struct({\n type: Schema.Literal(\"planning.sync\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n status: Schema.String,\n progress: Schema.optional(Schema.Number),\n message: Schema.optional(Schema.String),\n }),\n})\nexport type PlanningSyncEvent = typeof PlanningSyncEvent.Type\n\n// ─── Plan Item Events ─────────────────────────────────────────────────────────\n\n/** Replaces socket.io `plan:item-status-changed` */\nexport const PlanItemStatusChangedEvent = Schema.Struct({\n type: Schema.Literal(\"plan.item_status_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), itemId: Schema.String, status: Schema.String }),\n})\nexport type PlanItemStatusChangedEvent = typeof PlanItemStatusChangedEvent.Type\n\n/** Replaces socket.io `plan:subitem-status-changed` */\nexport const PlanSubitemStatusChangedEvent = Schema.Struct({\n type: Schema.Literal(\"plan.subitem_status_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n itemId: Schema.String,\n subItemId: Schema.String,\n status: Schema.String,\n }),\n})\nexport type PlanSubitemStatusChangedEvent = typeof PlanSubitemStatusChangedEvent.Type\n\n/** Replaces socket.io `plan:items-unblocked` */\nexport const PlanItemsUnblockedEvent = Schema.Struct({\n type: Schema.Literal(\"plan.items_unblocked\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), items: Schema.Array(Schema.String) }),\n})\nexport type PlanItemsUnblockedEvent = typeof PlanItemsUnblockedEvent.Type\n\n// ─── Pipeline / Merge Events ──────────────────────────────────────────────────\n\n/**\n * PAN-3917 FR-6 — an issue's derived pipeline state changed.\n *\n * Emitted with `emitOnly`: derived state is recomputed from the tracker, the\n * forge and the terminal backend on every boot, so persisting it would be\n * storing a status Overdeck can derive.\n */\nexport const IssueStateChangedEvent = Schema.Struct({\n type: Schema.Literal(\"issue_state.changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueState: DerivedIssueState }),\n})\nexport type IssueStateChangedEvent = typeof IssueStateChangedEvent.Type\n\n/** PAN-3917 FR-12 — a live agent pane appeared or changed. `emitOnly`. */\nexport const BackendPaneChangedEvent = Schema.Struct({\n type: Schema.Literal(\"backend_pane.changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ pane: BackendPane }),\n})\nexport type BackendPaneChangedEvent = typeof BackendPaneChangedEvent.Type\n\n/** PAN-3917 FR-12 — a pane left the backend inventory. `emitOnly`. */\nexport const BackendPaneRemovedEvent = Schema.Struct({\n type: Schema.Literal(\"backend_pane.removed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ paneId: Schema.String }),\n})\nexport type BackendPaneRemovedEvent = typeof BackendPaneRemovedEvent.Type\n\n/** Replaces socket.io `merge:ready` */\nexport const MergeReadyEvent = Schema.Struct({\n type: Schema.Literal(\"merge.ready\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String) }),\n})\nexport type MergeReadyEvent = typeof MergeReadyEvent.Type\n\n/** New — review specialist dispatched */\nexport const PipelineReviewStartedEvent = Schema.Struct({\n type: Schema.Literal(\"pipeline.review-started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String) }),\n})\nexport type PipelineReviewStartedEvent = typeof PipelineReviewStartedEvent.Type\n\n/** New — review specialist finished (passed or failed) */\nexport const PipelineReviewCompletedEvent = Schema.Struct({\n type: Schema.Literal(\"pipeline.review-completed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), passed: Schema.Boolean }),\n})\nexport type PipelineReviewCompletedEvent = typeof PipelineReviewCompletedEvent.Type\n\n/** New — test specialist dispatched */\nexport const PipelineTestStartedEvent = Schema.Struct({\n type: Schema.Literal(\"pipeline.test-started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String) }),\n})\nexport type PipelineTestStartedEvent = typeof PipelineTestStartedEvent.Type\n\n/** New — test specialist finished (passed or failed) */\nexport const PipelineTestCompletedEvent = Schema.Struct({\n type: Schema.Literal(\"pipeline.test-completed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), passed: Schema.Boolean }),\n})\nexport type PipelineTestCompletedEvent = typeof PipelineTestCompletedEvent.Type\n\n/** New — verification gate dispatched (review-pipeline verify step) */\nexport const PipelineVerificationStartedEvent = Schema.Struct({\n type: Schema.Literal(\"pipeline.verification-started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String) }),\n})\nexport type PipelineVerificationStartedEvent = typeof PipelineVerificationStartedEvent.Type\n\n/** New — verification gate failed (carries failedCheck for gate failures, message for infra errors) */\nexport const PipelineVerificationFailedEvent = Schema.Struct({\n type: Schema.Literal(\"pipeline.verification-failed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n failedCheck: Schema.optional(Schema.String),\n message: Schema.optional(Schema.String),\n }),\n})\nexport type PipelineVerificationFailedEvent = typeof PipelineVerificationFailedEvent.Type\n\n/** New — issue lifecycle transition (single source: IssueLifecycle.transitionTo).\n * `state` stays an open string so new server-side lifecycle states can never\n * poison the domain-event stream (the failure mode behind this event's addition). */\nexport const IssueTransitionedEvent = Schema.Struct({\n type: Schema.Literal(\"issue.transitioned\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), state: Schema.String }),\n})\nexport type IssueTransitionedEvent = typeof IssueTransitionedEvent.Type\n\nexport const OperatorInterventionEvent = Schema.Struct({\n type: Schema.Literal(\"operator.intervention\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n kind: Schema.Literals([\"tell\", \"pause\", \"restart\", \"manual_edit\", \"deep_wipe\", \"unpause\", \"untroubled\"]),\n source: Schema.String,\n }),\n})\nexport type OperatorInterventionEvent = typeof OperatorInterventionEvent.Type\n\nexport const LinearMcpAuthRequiredEvent = Schema.Struct({\n type: Schema.Literal(\"linear_mcp_auth.required\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: Schema.String,\n issueId: Schema.NullOr(Schema.String),\n authUrl: Schema.NullOr(Schema.String),\n expiresAt: Schema.NullOr(Schema.String),\n }),\n})\nexport type LinearMcpAuthRequiredEvent = typeof LinearMcpAuthRequiredEvent.Type\n\nexport const LinearMcpAuthHealthyEvent = Schema.Struct({\n type: Schema.Literal(\"linear_mcp_auth.healthy\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: Schema.String,\n issueId: Schema.NullOr(Schema.String),\n source: Schema.Literals([\"hook\", \"operator\"]),\n }),\n})\nexport type LinearMcpAuthHealthyEvent = typeof LinearMcpAuthHealthyEvent.Type\n\nexport const LinearMcpAuthNotifiedEvent = Schema.Struct({\n type: Schema.Literal(\"linear_mcp_auth.notified\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: Schema.String,\n issueId: Schema.NullOr(Schema.String),\n // 'delivering' is the durable pre-delivery claim (PAN-2997 review cycle\n // 3): it makes the wake crash-idempotent — a crash after the claim never\n // replays the delivery at boot recovery. lifecycleId correlates this\n // record to the lifecycle whose wake pass produced it; absent only in\n // events written before PAN-2997 review cycle 2.\n outcome: Schema.Literals([\"delivering\", \"delivered\", \"queued\", \"failed\"]),\n lifecycleId: Schema.optional(Schema.String),\n }),\n})\nexport type LinearMcpAuthNotifiedEvent = typeof LinearMcpAuthNotifiedEvent.Type\n\nexport const LinearMcpAuthCallbackRelayedEvent = Schema.Struct({\n type: Schema.Literal(\"linear_mcp_auth.callback_relayed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: Schema.String,\n issueId: Schema.NullOr(Schema.String),\n }),\n})\nexport type LinearMcpAuthCallbackRelayedEvent = typeof LinearMcpAuthCallbackRelayedEvent.Type\n\nexport const SubstrateBugFiledEvent = Schema.Struct({\n type: Schema.Literal(\"substrate.bug_filed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n runId: Schema.optional(Schema.String),\n filedBy: Schema.Literals([\"agent\", \"operator\"]),\n discoveredIn: Schema.optional(IssueId),\n severity: Schema.Literals([\"P0\", \"P1\", \"P2\"]),\n }),\n})\nexport type SubstrateBugFiledEvent = typeof SubstrateBugFiledEvent.Type\n\n/**\n * PAN-915 — reviewer session received a new prompt (spawn or resume of a\n * canonical PAN-830 session). Drives event-driven `reviewSubStatuses[role] =\n * 'running'` and tracking of `reviewSessionNames` without polling tmux.\n */\nexport const ReviewReviewerStartedEvent = Schema.Struct({\n type: Schema.Literal(\"review.reviewer_started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n role: Schema.String,\n sessionName: Schema.String,\n }),\n})\nexport type ReviewReviewerStartedEvent = typeof ReviewReviewerStartedEvent.Type\n\n/**\n * PAN-915 — reviewer wrote its output file (round complete for that role).\n * Updates `reviewSubStatuses[role] = 'done'` event-driven.\n */\nexport const ReviewReviewerCompletedEvent = Schema.Struct({\n type: Schema.Literal(\"review.reviewer_completed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n role: Schema.String,\n }),\n})\nexport type ReviewReviewerCompletedEvent = typeof ReviewReviewerCompletedEvent.Type\n\n/**\n * Review specialist timeout telemetry. Emitted once per timed-out reviewer wait\n * attempt so operators can distinguish transient auto-retries from terminal\n * review failures.\n */\nexport const ReviewSpecialistTimedOutEvent = Schema.Struct({\n type: Schema.Literal(\"review.specialist.timed_out\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n role: Schema.String,\n sessionName: Schema.String,\n attempt: Schema.Number,\n maxRetries: Schema.Number,\n willRetry: Schema.Boolean,\n }),\n})\nexport type ReviewSpecialistTimedOutEvent = typeof ReviewSpecialistTimedOutEvent.Type\n\n/**\n * PAN-915 — review coordinator session spawned. Surfaces in the dashboard so\n * the kanban card can show \"review in progress\" the instant the coordinator\n * starts, not after the first reviewer finishes.\n */\nexport const ReviewCoordinatorStartedEvent = Schema.Struct({\n type: Schema.Literal(\"review.coordinator_started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n sessionName: Schema.String,\n }),\n})\nexport type ReviewCoordinatorStartedEvent = typeof ReviewCoordinatorStartedEvent.Type\n\n/** Review coordinator died before writing a terminal exit marker. */\nexport const ReviewCoordinatorDiedEvent = Schema.Struct({\n type: Schema.Literal(\"review.coordinator.died\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n sessionName: Schema.String,\n reason: Schema.String,\n }),\n})\nexport type ReviewCoordinatorDiedEvent = typeof ReviewCoordinatorDiedEvent.Type\n\n/** A terminal review verdict was rejected due to stale evidence. */\nexport const ReviewVerdictRejectedEvent = Schema.Struct({\n type: Schema.Literal(\"review.verdict_rejected\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId,\n workspaceId: Schema.optional(Schema.String),\n writer: Schema.String,\n verdict: Schema.String,\n evidenceHead: Schema.String,\n rowHead: Schema.String,\n reason: Schema.String,\n }),\n})\nexport type ReviewVerdictRejectedEvent = typeof ReviewVerdictRejectedEvent.Type\n\n/** A terminal review verdict was landed and dispatched with a fresh evidence head. */\nexport const ReviewVerdictDispatchedEvent = Schema.Struct({\n type: Schema.Literal(\"review.verdict_dispatched\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId,\n workspaceId: Schema.optional(Schema.String),\n writer: Schema.String,\n verdict: Schema.String,\n evidenceHead: Schema.String,\n rowHead: Schema.String,\n classification: Schema.String,\n testGateReset: Schema.Boolean,\n }),\n})\nexport type ReviewVerdictDispatchedEvent = typeof ReviewVerdictDispatchedEvent.Type\n\n/**\n * A recovery path found a fresh verdict artifact but declined to restore it,\n * because the artifact's head evidence disagrees with the row's anchor. The\n * verdict is NOT lost silently — it is reported here so the operator can see a\n * finished review that recovery refused to write (PAN-3511).\n */\nexport const ReviewVerdictRestoreBlockedEvent = Schema.Struct({\n type: Schema.Literal(\"review.verdict_restore_blocked\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId,\n /** Recovery path that attempted the restore (orphan-reset, sweeper, …). */\n caller: Schema.String,\n verdict: Schema.String,\n artifactHead: Schema.String,\n rowHead: Schema.String,\n reason: Schema.String,\n }),\n})\nexport type ReviewVerdictRestoreBlockedEvent = typeof ReviewVerdictRestoreBlockedEvent.Type\n\n// ─── Specialist Events ────────────────────────────────────────────────────────\n\nconst SpecialistLifecycleState = Schema.Literals([\"active\", \"sleeping\", \"uninitialized\"])\n\n/** New — role-backed specialist became active */\nexport const SpecialistStartedEvent = Schema.Struct({\n type: Schema.Literal(\"specialist.started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n name: Role,\n state: SpecialistLifecycleState,\n isRunning: Schema.Boolean,\n currentIssue: Schema.optional(Schema.String),\n lastWake: Schema.optional(Schema.String),\n }),\n})\nexport type SpecialistStartedEvent = typeof SpecialistStartedEvent.Type\n\n/** New — role-backed specialist completed work */\nexport const SpecialistCompletedEvent = Schema.Struct({\n type: Schema.Literal(\"specialist.completed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ name: Role, issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String) }),\n})\nexport type SpecialistCompletedEvent = typeof SpecialistCompletedEvent.Type\n\n/** New — role-backed specialist failed */\nexport const SpecialistFailedEvent = Schema.Struct({\n type: Schema.Literal(\"specialist.failed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n name: Role,\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n error: Schema.String,\n }),\n})\nexport type SpecialistFailedEvent = typeof SpecialistFailedEvent.Type\n\n// ─── Resource Events ──────────────────────────────────────────────────────────\n\n/** Replaces socket.io `resources:updated` */\nexport const ResourcesUpdatedEvent = Schema.Struct({\n type: Schema.Literal(\"resources.updated\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ resources: ResourceStats }),\n})\nexport type ResourcesUpdatedEvent = typeof ResourcesUpdatedEvent.Type\n\nexport const SystemHealthSeverityChangedEvent = Schema.Struct({\n type: Schema.Literal(\"system.health_severity_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n previousSeverity: Schema.String,\n severity: Schema.String,\n reasons: Schema.Array(Schema.String),\n leakedSpecialistCount: Schema.Number,\n version: Schema.optional(Schema.Literal(2)),\n transitionVersion: Schema.optional(Schema.Number),\n previousState: Schema.optional(HealthState),\n state: Schema.optional(HealthState),\n reasonCodes: Schema.optional(Schema.Array(Schema.String)),\n acceptedAt: Schema.optional(Schema.String),\n }),\n})\nexport type SystemHealthSeverityChangedEvent = typeof SystemHealthSeverityChangedEvent.Type\n\n// ─── Issue Events ─────────────────────────────────────────────────────────────\n\n/** Replaces socket.io `issues:snapshot` */\nexport const IssuesSnapshotEvent = Schema.Struct({\n type: Schema.Literal(\"issues.snapshot\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issues: Schema.Array(Schema.Unknown) }),\n})\nexport type IssuesSnapshotEvent = typeof IssuesSnapshotEvent.Type\n\n/** Complete changed rows since the initial snapshot; preserves tracker ordering. */\nexport const IssuesDeltaEvent = Schema.Struct({\n type: Schema.Literal(\"issues.delta\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n length: Schema.Number,\n changes: Schema.Array(Schema.Struct({ index: Schema.Number, issue: Schema.Unknown })),\n }),\n})\nexport type IssuesDeltaEvent = typeof IssuesDeltaEvent.Type\n\n/** Replaces socket.io `issues:updated` */\nexport const IssuesUpdatedEvent = Schema.Struct({\n type: Schema.Literal(\"issues.updated\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String) }),\n})\nexport type IssuesUpdatedEvent = typeof IssuesUpdatedEvent.Type\n\n/** Patch a single issue's status in the read model without a full snapshot refresh. */\nexport const IssueStatusChangedEvent = Schema.Struct({\n type: Schema.Literal(\"issue.statusChanged\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n status: Schema.String,\n canonicalStatus: Schema.String,\n labels: Schema.optional(Schema.Array(Schema.String)),\n }),\n})\nexport type IssueStatusChangedEvent = typeof IssueStatusChangedEvent.Type\n\n// ─── Activity Events ──────────────────────────────────────────────────────────\n\n/** Replaces socket.io `godview:activity` */\nexport const ActivityUpdatedEvent = Schema.Struct({\n type: Schema.Literal(\"activity.updated\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ events: Schema.Array(Schema.Unknown) }),\n})\nexport type ActivityUpdatedEvent = typeof ActivityUpdatedEvent.Type\n\n/** Individual activity log entry — emitted by merge-agent, cloister, specialists (PAN-520) */\nexport const ActivityEntryEvent = Schema.Struct({\n type: Schema.Literal(\"activity.entry\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n id: Schema.String,\n source: Schema.String,\n level: Schema.String,\n status: Schema.optional(Schema.Literals([\"accepted\", \"running\", \"completed\", \"failed\"])),\n command: Schema.optional(Schema.String),\n message: Schema.String,\n details: Schema.optional(Schema.String),\n output: Schema.optional(Schema.String),\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n /** Dashboard route the feed navigates to on click (e.g. /conv/<name>, /flywheel). */\n link: Schema.optional(Schema.String),\n /** PAN-1862 (FR-12): fire a desktop notification for this entry (operator-facing warnings). */\n desktop: Schema.optional(Schema.Boolean),\n }),\n})\nexport type ActivityEntryEvent = typeof ActivityEntryEvent.Type\n\n/** Detailed activity log — auto-generated from domain state changes */\nexport const ActivityDetailedEvent = Schema.Struct({\n type: Schema.Literal(\"activity.detailed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n id: Schema.String,\n source: Schema.String,\n level: Schema.String,\n message: Schema.String,\n details: Schema.optional(Schema.String),\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n triggeringEvent: Schema.optional(Schema.String),\n }),\n})\nexport type ActivityDetailedEvent = typeof ActivityDetailedEvent.Type\n\n/** TTS activity log — upleveled utterances for text-to-speech */\nexport const ActivityTtsEvent = Schema.Struct({\n type: Schema.Literal(\"activity.tts\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n id: Schema.String,\n utterance: Schema.String,\n priority: Schema.optional(Schema.Number),\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n source: Schema.optional(Schema.String),\n eventType: Schema.optional(Schema.String),\n }),\n})\nexport type ActivityTtsEvent = typeof ActivityTtsEvent.Type\n\n// ─── Dashboard Lifecycle Events ─────────────────────────────────────────────────\n\n/** Dashboard is restarting (post-merge deploy, pan restart, etc.) (PAN-520) */\nexport const DashboardLifecycleStartedEvent = Schema.Struct({\n type: Schema.Literal(\"dashboard.lifecycle_started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n reason: Schema.String,\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n trigger: Schema.String,\n }),\n})\nexport type DashboardLifecycleStartedEvent = typeof DashboardLifecycleStartedEvent.Type\n\n/** Dashboard restarted successfully after a lifecycle event (PAN-520) */\nexport const DashboardLifecycleCompletedEvent = Schema.Struct({\n type: Schema.Literal(\"dashboard.lifecycle_completed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n reason: Schema.String,\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n durationMs: Schema.Number,\n }),\n})\nexport type DashboardLifecycleCompletedEvent = typeof DashboardLifecycleCompletedEvent.Type\n\n/** Dashboard restart failed (PAN-520) */\nexport const DashboardLifecycleFailedEvent = Schema.Struct({\n type: Schema.Literal(\"dashboard.lifecycle_failed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n reason: Schema.String,\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n error: Schema.String,\n }),\n})\nexport type DashboardLifecycleFailedEvent = typeof DashboardLifecycleFailedEvent.Type\n\n/** Replaces socket.io `shadow:inference-update` */\nexport const ShadowInferenceUpdateEvent = Schema.Struct({\n type: Schema.Literal(\"shadow.inference_update\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), content: Schema.String }),\n})\nexport type ShadowInferenceUpdateEvent = typeof ShadowInferenceUpdateEvent.Type\n\n// ─── Workspace Lifecycle Events ───────────────────────────────────────────────\n\n/** New — workspace worktree created (before planning.started) */\nexport const WorkspaceCreatedEvent = Schema.Struct({\n type: Schema.Literal(\"workspace.created\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), workspacePath: Schema.String }),\n})\nexport type WorkspaceCreatedEvent = typeof WorkspaceCreatedEvent.Type\n\n/** New — deep-wipe started (transitional state for UI spinner) */\nexport const WorkspaceWipeStartedEvent = Schema.Struct({\n type: Schema.Literal(\"workspace.wipe_started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String) }),\n})\nexport type WorkspaceWipeStartedEvent = typeof WorkspaceWipeStartedEvent.Type\n\n/** New — deep-wipe completed, workspace fully destroyed */\nexport const WorkspaceDestroyedEvent = Schema.Struct({\n type: Schema.Literal(\"workspace.destroyed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String) }),\n})\nexport type WorkspaceDestroyedEvent = typeof WorkspaceDestroyedEvent.Type\n\n/** New — cleanup-workspace completed, workspace directory removed */\nexport const WorkspaceDeletedEvent = Schema.Struct({\n type: Schema.Literal(\"workspace.deleted\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String) }),\n})\nexport type WorkspaceDeletedEvent = typeof WorkspaceDeletedEvent.Type\n\n/** New — planning aborted, workspace returned to idle state */\nexport const WorkspaceAbortedEvent = Schema.Struct({\n type: Schema.Literal(\"workspace.aborted\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), sessionName: Schema.optional(Schema.String) }),\n})\nexport type WorkspaceAbortedEvent = typeof WorkspaceAbortedEvent.Type\n\n// ─── Memory Events ────────────────────────────────────────────────────────────\n\nexport const MemoryObservationCreatedEvent = Schema.Struct({\n type: Schema.Literal(\"memory.observation_created\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ observation: MemoryObservation }),\n})\nexport type MemoryObservationCreatedEvent = typeof MemoryObservationCreatedEvent.Type\n\nexport const MemoryStatusUpdatedEvent = Schema.Struct({\n type: Schema.Literal(\"memory.status_updated\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n identity: Schema.Struct({ projectId: Schema.String, workspaceId: Schema.String, issueId: IssueId }),\n status: MemoryStatus,\n previousStatus: Schema.optional(MemoryStatus),\n }),\n})\nexport type MemoryStatusUpdatedEvent = typeof MemoryStatusUpdatedEvent.Type\n\nexport const MemoryRollupTriggeredEvent = Schema.Struct({\n type: Schema.Literal(\"memory.rollup_triggered\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n projectId: Schema.String,\n workspaceId: Schema.String,\n issueId: IssueId,\n pendingCount: Schema.Number,\n turnIds: Schema.Array(Schema.String),\n threshold: Schema.Number,\n }),\n})\nexport type MemoryRollupTriggeredEvent = typeof MemoryRollupTriggeredEvent.Type\n\nexport const MemoryResetMarkerCreatedEvent = Schema.Struct({\n type: Schema.Literal(\"memory.reset_marker_created\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ marker: ResetMarker }),\n})\nexport type MemoryResetMarkerCreatedEvent = typeof MemoryResetMarkerCreatedEvent.Type\n\nexport const MemoryHealthChangedEvent = Schema.Struct({\n type: Schema.Literal(\"memory.health_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n projectId: Schema.String,\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n status: Schema.Literals([\"healthy\", \"degraded\", \"failing\"]),\n reason: Schema.NullOr(Schema.String),\n // Human-readable cause of the most recent failure (e.g. the provider error\n // message). Distinct from `reason`, which is a coarse machine code like\n // \"extraction-failed\". Surfaced verbatim in the UI so the operator can see\n // *why* memory extraction is failing without reading server logs.\n detail: Schema.optional(Schema.String),\n ragDecision: Schema.optional(RagDecision),\n }),\n})\nexport type MemoryHealthChangedEvent = typeof MemoryHealthChangedEvent.Type\n\n// ─── Cost Events ──────────────────────────────────────────────────────────────\n\n/** New — cost event recorded in the store */\nexport const CostEventRecordedEvent = Schema.Struct({\n type: Schema.Literal(\"cost.event_recorded\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n cost: Schema.Number,\n inputTokens: Schema.Number,\n outputTokens: Schema.Number,\n }),\n})\nexport type CostEventRecordedEvent = typeof CostEventRecordedEvent.Type\n\n// ─── Conversation Events ──────────────────────────────────────────────────────\n\n/** Emitted (in-memory only, not persisted) when a Overdeck-native compaction starts or completes. */\nexport const ConversationCompactingChangedEvent = Schema.Struct({\n type: Schema.Literal(\"conversation.compacting_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n conversationName: Schema.String,\n compacting: Schema.Boolean,\n }),\n})\nexport type ConversationCompactingChangedEvent = typeof ConversationCompactingChangedEvent.Type\n\n/** Emitted (in-memory only) when a new conversation row is created, so the\n * sidebar list can refresh immediately instead of waiting for its poll tick. */\nexport const ConversationCreatedEvent = Schema.Struct({\n type: Schema.Literal(\"conversation.created\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n conversationName: Schema.String,\n }),\n})\nexport type ConversationCreatedEvent = typeof ConversationCreatedEvent.Type\n\n/** Emitted (in-memory only, not persisted) when a conversation's project\n * assignment override changes, so the sidebar can re-group it live instead of\n * waiting for its poll tick. */\nexport const ConversationMovedEvent = Schema.Struct({\n type: Schema.Literal(\"conversation.moved\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n conversationName: Schema.String,\n projectKey: Schema.String,\n }),\n})\nexport type ConversationMovedEvent = typeof ConversationMovedEvent.Type\n\n/** Emitted (in-memory only) when a conversation title changes, so the sidebar\n * list can refresh immediately instead of waiting for its poll tick. */\nexport const ConversationTitleChangedEvent = Schema.Struct({\n type: Schema.Literal(\"conversation.title_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n conversationName: Schema.String,\n title: Schema.String,\n titleSource: Schema.String,\n }),\n})\nexport type ConversationTitleChangedEvent = typeof ConversationTitleChangedEvent.Type\n\n/** Emitted (in-memory only) when a conversation's pull-request links or their\n * snapshots change (PAN-3822), so the list and open panel refresh the badge. */\nexport const ConversationPullRequestsChangedEvent = Schema.Struct({\n type: Schema.Literal(\"conversation.pull_requests_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n conversationName: Schema.String,\n effective: Schema.NullOr(PullRequestLink),\n }),\n})\nexport type ConversationPullRequestsChangedEvent = typeof ConversationPullRequestsChangedEvent.Type\n\n/** Emitted (in-memory only) when a PermissionRequest hook fires or resolves for a conversation. */\nexport const ConversationPermissionChangedEvent = Schema.Struct({\n type: Schema.Literal(\"conversation.permission_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n conversationName: Schema.String,\n waiting: Schema.Boolean,\n toolName: Schema.optional(Schema.String),\n }),\n})\nexport type ConversationPermissionChangedEvent = typeof ConversationPermissionChangedEvent.Type\n\n// ─── Conversation Discovery Events (PAN-457) ──────────────────────────────────\n\n/** Scan started */\nexport const ScanStartedEvent = Schema.Struct({\n type: Schema.Literal(\"scan.started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n mode: Schema.Literals(['targeted', 'watched', 'system']),\n dirs: Schema.Array(Schema.String),\n }),\n})\nexport type ScanStartedEvent = typeof ScanStartedEvent.Type\n\n/** Scan progress tick */\nexport const ScanProgressEvent = Schema.Struct({\n type: Schema.Literal(\"scan.progress\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n dirsProcessed: Schema.Number,\n dirsTotal: Schema.Number,\n sessionsFound: Schema.Number,\n elapsedMs: Schema.Number,\n }),\n})\nexport type ScanProgressEvent = typeof ScanProgressEvent.Type\n\n/** Scan completed */\nexport const ScanCompleteEvent = Schema.Struct({\n type: Schema.Literal(\"scan.complete\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n inserted: Schema.Number,\n updated: Schema.Number,\n skipped: Schema.Number,\n errors: Schema.Number,\n durationMs: Schema.Number,\n }),\n})\nexport type ScanCompleteEvent = typeof ScanCompleteEvent.Type\n\n/** Per-session enrichment progress */\nexport const EnrichProgressEvent = Schema.Struct({\n type: Schema.Literal(\"enrich.progress\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n sessionId: Schema.Number,\n level: Schema.Number,\n model: Schema.String,\n cost: Schema.Number,\n success: Schema.Boolean,\n error: Schema.optional(Schema.String),\n }),\n})\nexport type EnrichProgressEvent = typeof EnrichProgressEvent.Type\n\n/** Enrichment batch completed */\nexport const EnrichCompleteEvent = Schema.Struct({\n type: Schema.Literal(\"enrich.complete\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n processed: Schema.Number,\n totalCost: Schema.Number,\n failures: Schema.Number,\n durationMs: Schema.Number,\n }),\n})\nexport type EnrichCompleteEvent = typeof EnrichCompleteEvent.Type\n\n/** Per-session embedding progress */\nexport const EmbedProgressEvent = Schema.Struct({\n type: Schema.Literal(\"embed.progress\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n sessionId: Schema.Number,\n model: Schema.String,\n success: Schema.Boolean,\n error: Schema.optional(Schema.String),\n }),\n})\nexport type EmbedProgressEvent = typeof EmbedProgressEvent.Type\n\n// ─── Stall Sweeper Events (PAN-3485) ──────────────────────────────────────────\n\n/** The parked population changed — carries the full new population (compact rows). */\nexport const SweepScanEvent = Schema.Struct({\n type: Schema.Literal(\"sweep.scan\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueCount: Schema.Number,\n rowCount: Schema.Number,\n rows: Schema.Array(Schema.Struct({\n issueId: Schema.String,\n orbit: Schema.String,\n parkedAt: Schema.String,\n })),\n }),\n})\nexport type SweepScanEvent = typeof SweepScanEvent.Type\n\n/** A parked row was (re-)surfaced to the operator — gates respected, TTL re-surface, or exhaustion. */\nexport const SweepEscalatedEvent = Schema.Struct({\n type: Schema.Literal(\"sweep.escalated\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: Schema.String,\n orbit: Schema.String,\n reason: Schema.String,\n }),\n})\nexport type SweepEscalatedEvent = typeof SweepEscalatedEvent.Type\n\n/** The sweeper recommended a remedy for a parked row (observability-only — never an action, PAN-3551). */\nexport const SweepRecommendationEvent = Schema.Struct({\n type: Schema.Literal(\"sweep.recommendation\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: Schema.String,\n orbit: Schema.String,\n recommendation: Schema.String,\n recurring: Schema.optional(Schema.Boolean),\n agentId: Schema.optional(Schema.String),\n }),\n})\nexport type SweepRecommendationEvent = typeof SweepRecommendationEvent.Type\n\n// ─── Union ────────────────────────────────────────────────────────────────────\n\n/** All domain events — the shape streamed via subscribeDomainEvents RPC */\nexport const DomainEvent = Schema.Union([\n SystemHeartbeatEvent,\n BeadsFreshnessChangedEvent,\n ProjectCiSuiteObservedEvent,\n ProjectCiHeadObservedEvent,\n RestartGateChangedEvent,\n GitHubQuotaChangedEvent,\n ProjectDeployChangedEvent,\n AgentCreatedEvent,\n AgentEnrichmentChangedEvent,\n AgentStartedEvent,\n AgentStoppedEvent,\n AgentHeartbeatDeadEvent,\n WorkCompletedEvent,\n AgentCompletedEvent,\n ReviewApprovedEvent,\n TestPassedEvent,\n AgentStatusChangedEvent,\n AgentOutputReceivedEvent,\n // PAN-800 runtime events\n AgentActivityChangedEvent,\n AgentHookFiredEvent,\n AgentThinkingStartedEvent,\n AgentThinkingStoppedEvent,\n AgentWaitingStartedEvent,\n AgentWaitingClearedEvent,\n AgentPermissionRequestedEvent,\n AgentPermissionResolvedEvent,\n AgentMessageReceivedEvent,\n AgentChannelReplyEvent,\n AgentModelSetEvent,\n AgentCurrentIssueSetEvent,\n AgentContextSaturationChangedEvent,\n AgentResolutionChangedEvent,\n AgentStateRestoredEvent,\n AgentTurnDiffCompletedEvent,\n PlanningStartedEvent,\n PlanningFailedEvent,\n PlanningSyncEvent,\n PlanItemStatusChangedEvent,\n PlanSubitemStatusChangedEvent,\n PlanItemsUnblockedEvent,\n IssueStateChangedEvent,\n BackendPaneChangedEvent,\n BackendPaneRemovedEvent,\n MergeReadyEvent,\n PipelineReviewStartedEvent,\n PipelineReviewCompletedEvent,\n PipelineTestStartedEvent,\n PipelineTestCompletedEvent,\n PipelineVerificationStartedEvent,\n PipelineVerificationFailedEvent,\n IssueTransitionedEvent,\n OperatorInterventionEvent,\n LinearMcpAuthRequiredEvent,\n LinearMcpAuthHealthyEvent,\n LinearMcpAuthNotifiedEvent,\n LinearMcpAuthCallbackRelayedEvent,\n SubstrateBugFiledEvent,\n ReviewReviewerStartedEvent,\n ReviewReviewerCompletedEvent,\n ReviewSpecialistTimedOutEvent,\n ReviewCoordinatorStartedEvent,\n ReviewCoordinatorDiedEvent,\n ReviewVerdictRejectedEvent,\n ReviewVerdictDispatchedEvent,\n ReviewVerdictRestoreBlockedEvent,\n SpecialistStartedEvent,\n SpecialistCompletedEvent,\n SpecialistFailedEvent,\n ResourcesUpdatedEvent,\n SystemHealthSeverityChangedEvent,\n IssuesSnapshotEvent,\n IssuesDeltaEvent,\n IssuesUpdatedEvent,\n IssueStatusChangedEvent,\n ActivityUpdatedEvent,\n ActivityEntryEvent,\n ActivityDetailedEvent,\n ActivityTtsEvent,\n ShadowInferenceUpdateEvent,\n MemoryObservationCreatedEvent,\n MemoryStatusUpdatedEvent,\n MemoryRollupTriggeredEvent,\n MemoryResetMarkerCreatedEvent,\n MemoryHealthChangedEvent,\n CostEventRecordedEvent,\n WorkspaceCreatedEvent,\n WorkspaceWipeStartedEvent,\n WorkspaceDestroyedEvent,\n WorkspaceDeletedEvent,\n WorkspaceAbortedEvent,\n DashboardLifecycleStartedEvent,\n DashboardLifecycleCompletedEvent,\n DashboardLifecycleFailedEvent,\n ConversationCompactingChangedEvent,\n ConversationCreatedEvent,\n ConversationMovedEvent,\n ConversationTitleChangedEvent,\n ConversationPullRequestsChangedEvent,\n ConversationPermissionChangedEvent,\n ScanStartedEvent,\n ScanProgressEvent,\n ScanCompleteEvent,\n EnrichProgressEvent,\n EnrichCompleteEvent,\n EmbedProgressEvent,\n SweepScanEvent,\n SweepEscalatedEvent,\n SweepRecommendationEvent,\n])\nexport type DomainEvent = typeof DomainEvent.Type\n","import { Schema } from \"effect\"\n\nexport const EDITORS = [\n { id: \"cursor\", label: \"Cursor\", command: \"cursor\", supportsGoto: true },\n { id: \"windsurf\", label: \"Windsurf\", command: \"windsurf\", supportsGoto: true },\n { id: \"trae\", label: \"Trae\", command: \"trae\", supportsGoto: true },\n { id: \"kiro\", label: \"Kiro\", command: \"kiro\", supportsGoto: true },\n { id: \"vscode\", label: \"VS Code\", command: \"code\", supportsGoto: true },\n { id: \"vscode-insiders\", label: \"VS Code Insiders\", command: \"code-insiders\", supportsGoto: true },\n { id: \"vscodium\", label: \"VSCodium\", command: \"codium\", supportsGoto: true },\n { id: \"zed\", label: \"Zed\", command: \"zed\", supportsGoto: false },\n { id: \"antigravity\", label: \"Antigravity\", command: \"agy\", supportsGoto: false },\n { id: \"idea\", label: \"IntelliJ IDEA\", command: \"idea\", supportsGoto: true },\n { id: \"aqua\", label: \"Aqua\", command: \"aqua\", supportsGoto: true },\n { id: \"clion\", label: \"CLion\", command: \"clion\", supportsGoto: true },\n { id: \"datagrip\", label: \"DataGrip\", command: \"datagrip\", supportsGoto: true },\n { id: \"dataspell\", label: \"DataSpell\", command: \"dataspell\", supportsGoto: true },\n { id: \"goland\", label: \"GoLand\", command: \"goland\", supportsGoto: true },\n { id: \"phpstorm\", label: \"PhpStorm\", command: \"phpstorm\", supportsGoto: true },\n { id: \"pycharm\", label: \"PyCharm\", command: \"pycharm\", supportsGoto: true },\n { id: \"rider\", label: \"Rider\", command: \"rider\", supportsGoto: true },\n { id: \"rubymine\", label: \"RubyMine\", command: \"rubymine\", supportsGoto: true },\n { id: \"rustrover\", label: \"RustRover\", command: \"rustrover\", supportsGoto: true },\n { id: \"webstorm\", label: \"WebStorm\", command: \"webstorm\", supportsGoto: true },\n { id: \"file-manager\", label: \"File Manager\", command: null, supportsGoto: false },\n] as const\n\nexport type EditorEntry = (typeof EDITORS)[number]\nexport type EditorId = EditorEntry[\"id\"]\n\nconst EDITOR_IDS: [EditorId, ...EditorId[]] = [\n \"cursor\",\n \"windsurf\",\n \"trae\",\n \"kiro\",\n \"vscode\",\n \"vscode-insiders\",\n \"vscodium\",\n \"zed\",\n \"antigravity\",\n \"idea\",\n \"aqua\",\n \"clion\",\n \"datagrip\",\n \"dataspell\",\n \"goland\",\n \"phpstorm\",\n \"pycharm\",\n \"rider\",\n \"rubymine\",\n \"rustrover\",\n \"webstorm\",\n \"file-manager\",\n]\nexport const EditorIdSchema = Schema.Literals(EDITOR_IDS)\n\nexport const OpenInEditorInput = Schema.Struct({\n cwd: Schema.String,\n editor: EditorIdSchema,\n})\nexport type OpenInEditorInput = typeof OpenInEditorInput.Type\n","import { Schema } from \"effect\"\n\n/**\n * Canonical reasoning-effort levels, end to end. `xhigh` was added in Opus 4.7\n * (between `high` and `max`); `max` predates it (Opus 4.6+/Sonnet 4.6). This is\n * the single source of truth for the enum — every other copy in the codebase\n * derives from it.\n */\nexport const EFFORT_LEVELS = [\"low\", \"medium\", \"high\", \"xhigh\", \"max\"] as const\nexport type EffortLevel = (typeof EFFORT_LEVELS)[number]\n\nexport const DEFAULT_EFFORT: EffortLevel = \"high\"\n\n/**\n * Where a resolved effort value came from, in resolution-precedence order\n * (most to least specific).\n */\nexport type EffortSource =\n | \"explicit\"\n | \"item\"\n | \"plan\"\n | \"tier\"\n | \"sub-role\"\n | \"role\"\n | \"project\"\n | \"default\"\n\nexport const EffortLevelSchema = Schema.Literals(EFFORT_LEVELS)\n\nexport function isEffortLevel(value: unknown): value is EffortLevel {\n return typeof value === \"string\" && (EFFORT_LEVELS as readonly string[]).includes(value)\n}\n\n/** Compares two effort levels by rank; negative when `a` is lower than `b`. */\nexport function compareEffort(a: EffortLevel, b: EffortLevel): number {\n return EFFORT_LEVELS.indexOf(a) - EFFORT_LEVELS.indexOf(b)\n}\n","import { Schema } from \"effect\"\nimport * as Rpc from \"effect/unstable/rpc/Rpc\"\nimport * as RpcGroup from \"effect/unstable/rpc/RpcGroup\"\nimport { DomainEvent } from \"./events\"\nimport {\n AgentStatus,\n ConversationCostSummary,\n ConversationFilter,\n DashboardSnapshot,\n DiscoveredSessionSnapshot,\n IssueId,\n ScanResult,\n SequenceNumber,\n SessionNodePresence,\n SessionsFeedFacetsSnapshot,\n SessionsFeedRowSnapshot,\n} from \"./types\"\nimport { EditorIdSchema, OpenInEditorInput } from \"./editor\"\nimport { EffortLevelSchema } from \"./effort\"\n\n// ─── RPC method names ─────────────────────────────────────────────────────────\n\nexport const WS_METHODS = {\n // Conversations (PAN-457)\n scanConversations: \"pan.scanConversations\",\n searchConversations: \"pan.searchConversations\",\n listDiscoveredSessions: \"pan.listDiscoveredSessions\",\n listSessionsFeed: \"pan.listSessionsFeed\",\n getSessionsFeedFacets: \"pan.getSessionsFeedFacets\",\n getDiscoveredSession: \"pan.getDiscoveredSession\",\n enrichSessions: \"pan.enrichSessions\",\n embedSessions: \"pan.embedSessions\",\n getConversationCost: \"pan.getConversationCost\",\n getConversationCostByWorkspace: \"pan.getConversationCostByWorkspace\",\n getConversationStats: \"pan.getConversationStats\",\n\n // Streaming subscriptions\n subscribeDomainEvents: \"pan.subscribeDomainEvents\",\n subscribeIssueEvents: \"pan.subscribeIssueEvents\",\n subscribeTerminal: \"pan.subscribeTerminal\",\n subscribeAgentOutput: \"pan.subscribeAgentOutput\",\n subscribeConversationMessages: \"pan.subscribeConversationMessages\",\n subscribeProjectSessionTree: \"pan.subscribeProjectSessionTree\",\n\n // Snapshot / replay\n getSnapshot: \"pan.getSnapshot\",\n replayEvents: \"pan.replayEvents\",\n\n // Workspace detail (batched)\n readWorkspaceFile: \"pan.readWorkspaceFile\",\n\n // Absolute-path markdown file door (PAN-3260) — read/write a single\n // allowlisted markdown file by absolute path, independent of issueId.\n readFileAtPath: \"pan.readFileAtPath\",\n writeFileAtPath: \"pan.writeFileAtPath\",\n\n // File-path existence (PAN-1457) — used by MarkdownFileLink to decide\n // whether a path candidate in chat markdown should render as a chip.\n resolveFilePathExists: \"pan.resolveFilePathExists\",\n\n // Terminal control\n terminalOpen: \"pan.terminalOpen\",\n terminalWrite: \"pan.terminalWrite\",\n terminalResize: \"pan.terminalResize\",\n terminalClose: \"pan.terminalClose\",\n\n // Commands (trigger mutations via RPC)\n startPlanning: \"pan.startPlanning\",\n startAgent: \"pan.startAgent\",\n deepWipe: \"pan.deepWipe\",\n sendTerminalInput: \"pan.sendTerminalInput\",\n resizeTerminal: \"pan.resizeTerminal\",\n\n // Editor integration (PAN-966)\n shellOpenInEditor: \"pan.shellOpenInEditor\",\n getAvailableEditors: \"pan.getAvailableEditors\",\n} as const\n\n// ─── Error types ──────────────────────────────────────────────────────────────\n\nexport class PanRpcError extends Schema.TaggedErrorClass<PanRpcError>()(\"PanRpcError\", {\n message: Schema.String,\n code: Schema.optional(Schema.String),\n}) {}\n\n// ─── Terminal types ───────────────────────────────────────────────────────────\n\nexport const TerminalOutput = Schema.Struct({\n sessionName: Schema.String,\n data: Schema.String,\n})\nexport type TerminalOutput = typeof TerminalOutput.Type\n\nexport const AgentOutput = Schema.Struct({\n agentId: Schema.String,\n line: Schema.String,\n})\nexport type AgentOutput = typeof AgentOutput.Type\n\n// ─── Plan mode types ─────────────────────────────────────────────────────────\n\nexport const ProposedPlan = Schema.Struct({\n id: Schema.String,\n plan: Schema.String,\n planFilePath: Schema.optional(Schema.String),\n status: Schema.Literals(['pending', 'approved', 'rejected']),\n createdAt: Schema.String,\n resolvedAt: Schema.optional(Schema.String),\n})\nexport type ProposedPlan = typeof ProposedPlan.Type\n\n// ─── Compact boundary types ──────────────────────────────────────────────────\n\nexport const CompactBoundary = Schema.Struct({\n id: Schema.String,\n timestamp: Schema.String,\n trigger: Schema.optional(Schema.String),\n preTokens: Schema.optional(Schema.Number),\n model: Schema.optional(Schema.String),\n})\nexport type CompactBoundary = typeof CompactBoundary.Type\n\nexport const ContextUsage = Schema.Struct({\n activeBytes: Schema.Number,\n estimatedTokens: Schema.Number,\n contextWindow: Schema.Number,\n percentUsed: Schema.Number,\n /**\n * Optional breakdown of the last assistant turn — surfaced by the click\n * popover on the ContextWindowMeter so users can see WHY the meter says\n * what it does. Computed by `computeContextUsage()` from JSONL `usage`.\n */\n lastInputTokens: Schema.optional(Schema.Number),\n lastCacheReadTokens: Schema.optional(Schema.Number),\n lastCacheCreationTokens: Schema.optional(Schema.Number),\n /** Highest input_tokens ever observed in this window — triggers 1M detection. */\n maxObservedInputTokens: Schema.optional(Schema.Number),\n /** Model the most recent assistant turn ran under (from JSONL). */\n lastModel: Schema.optional(Schema.NullOr(Schema.String)),\n /** PAN-4255: effort observed in the transcript (assistant `effort` or an /effort confirmation). Claude Code only. */\n lastEffort: Schema.optional(Schema.NullOr(Schema.String)),\n /** ISO timestamp of the most recent assistant turn. */\n lastTurnAt: Schema.optional(Schema.NullOr(Schema.String)),\n})\nexport type ContextUsage = typeof ContextUsage.Type\n\n// ─── Chat / conversation message types (PAN-451) ──────────────────────────────\n\nexport const ChatMessage = Schema.Struct({\n id: Schema.String,\n role: Schema.Literals(['user', 'assistant', 'system']),\n text: Schema.String,\n turnId: Schema.optional(Schema.String),\n createdAt: Schema.String,\n completedAt: Schema.optional(Schema.String),\n streaming: Schema.optional(Schema.Boolean),\n sequence: Schema.optional(Schema.Number),\n})\nexport type ChatMessage = typeof ChatMessage.Type\n\nexport const WorkLogEntry = Schema.Struct({\n id: Schema.String,\n createdAt: Schema.String,\n label: Schema.String,\n detail: Schema.optional(Schema.String),\n /** Tool result output (populated when tool_result is received). */\n result: Schema.optional(Schema.String),\n command: Schema.optional(Schema.String),\n changedFiles: Schema.optional(Schema.Array(Schema.String)),\n tone: Schema.Literals(['thinking', 'tool', 'info', 'error']),\n toolTitle: Schema.optional(Schema.String),\n /** Raw tool_use input dict — drives per-tool expanded rendering (PAN-1459). */\n toolInput: Schema.optional(Schema.Record(Schema.String, Schema.Unknown)),\n sequence: Schema.optional(Schema.Number),\n})\nexport type WorkLogEntry = typeof WorkLogEntry.Type\n\n/** A human-origin message read from a subagent's own sidechain transcript (PAN-4247). */\nexport const SubagentHumanInput = Schema.Struct({\n id: Schema.String,\n text: Schema.String,\n createdAt: Schema.String,\n})\nexport type SubagentHumanInput = typeof SubagentHumanInput.Type\n\nexport const SubagentSummary = Schema.Struct({\n agentId: Schema.String,\n agentType: Schema.String,\n description: Schema.String,\n toolUseId: Schema.String,\n spawnDepth: Schema.Number,\n status: Schema.Literals(['running', 'done']),\n /** True for a background subagent, launched with `requestShape: \"background\"` (PAN-4247). */\n background: Schema.optional(Schema.Boolean),\n /** Recent human-origin sidechain inputs, most useful when a message routed into this subagent instead of the main conversation (PAN-4247). */\n humanInputs: Schema.optional(Schema.Array(SubagentHumanInput)),\n})\nexport type SubagentSummary = typeof SubagentSummary.Type\n\n/**\n * Response shape for GET /api/agents/:id/conversation.\n * Shared between the dashboard server route and the frontend TerminalPanel.\n */\nexport const ConversationResponse = Schema.Struct({\n messages: Schema.Array(ChatMessage),\n workLog: Schema.Array(WorkLogEntry),\n streaming: Schema.Boolean,\n totalCost: Schema.Number,\n /** Total token throughput (input + output + cache read + cache write). */\n totalTokens: Schema.optional(Schema.Number),\n byteOffset: Schema.Number,\n proposedPlan: Schema.optional(ProposedPlan),\n compactBoundaries: Schema.optional(Schema.Array(CompactBoundary)),\n contextUsage: Schema.optional(Schema.NullOr(ContextUsage)),\n subagents: Schema.optional(Schema.Array(SubagentSummary)),\n /** PAN-4255: effort read from the agent's transcript (claude-code only). */\n observedEffort: Schema.optional(Schema.NullOr(EffortLevelSchema)),\n /** PAN-4255: the effort the agent was launched/pinned with and its EffortSource layer. */\n effortResolution: Schema.optional(Schema.NullOr(Schema.Struct({ effort: EffortLevelSchema, source: Schema.String }))),\n})\nexport type ConversationResponse = typeof ConversationResponse.Type\n\nexport const ConversationEvent = Schema.Union([\n Schema.Struct({\n kind: Schema.Literal('messages'),\n messages: Schema.Array(ChatMessage),\n workLog: Schema.Array(WorkLogEntry),\n streaming: Schema.Boolean,\n snapshot: Schema.optional(Schema.Boolean),\n /** Confirmed transcript replacement/truncation; replace even a shorter cached history. */\n reset: Schema.optional(Schema.Boolean),\n /** Metadata represents the whole parsed state, including absent plans/boundaries. */\n metadataSnapshot: Schema.optional(Schema.Boolean),\n totalCost: Schema.optional(Schema.Number),\n proposedPlan: Schema.optional(ProposedPlan),\n compactBoundaries: Schema.optional(Schema.Array(CompactBoundary)),\n contextUsage: Schema.optional(Schema.NullOr(ContextUsage)),\n }),\n Schema.Struct({\n kind: Schema.Literal('discovering'),\n }),\n Schema.Struct({\n kind: Schema.Literal('subagents'),\n subagents: Schema.Array(SubagentSummary),\n }),\n])\nexport type ConversationEvent = typeof ConversationEvent.Type\n\n// ─── Session Tree Delta (PAN-821) ─────────────────────────────────────────────\n\nexport const SessionTreeDelta = Schema.Struct({\n kind: Schema.Literals(['session_added', 'session_removed', 'presence_changed', 'status_changed', 'pending_input_changed']),\n issueId: Schema.String,\n sessionId: Schema.String,\n presence: Schema.optional(SessionNodePresence),\n status: Schema.optional(AgentStatus),\n awaitingInput: Schema.optional(Schema.Boolean),\n awaitingInputPrompt: Schema.optional(Schema.String),\n awaitingInputReason: Schema.optional(Schema.String),\n pendingInputKinds: Schema.optional(Schema.Array(Schema.String)),\n timestamp: Schema.String,\n})\nexport type SessionTreeDelta = typeof SessionTreeDelta.Type\n\n// ─── RPC definitions ──────────────────────────────────────────────────────────\n\n/** 1. Subscribe to the live domain event stream (stream) */\nexport const SubscribeDomainEventsRpc = Rpc.make(WS_METHODS.subscribeDomainEvents, {\n payload: Schema.Struct({}),\n success: DomainEvent,\n stream: true,\n})\n\n/** 1b. Subscribe to the live domain event stream for one issue (stream) */\nexport const SubscribeIssueEventsRpc = Rpc.make(WS_METHODS.subscribeIssueEvents, {\n payload: Schema.Struct({ issueId: IssueId }),\n success: DomainEvent,\n stream: true,\n})\n\n/** 2. Subscribe to raw terminal output for a tmux session (stream) */\nexport const SubscribeTerminalRpc = Rpc.make(WS_METHODS.subscribeTerminal, {\n payload: Schema.Struct({ sessionName: Schema.String, cols: Schema.Number, rows: Schema.Number }),\n success: TerminalOutput,\n error: PanRpcError,\n stream: true,\n})\n\n/** 3. Subscribe to buffered agent stdout (stream) */\nexport const SubscribeAgentOutputRpc = Rpc.make(WS_METHODS.subscribeAgentOutput, {\n payload: Schema.Struct({ agentId: Schema.String }),\n success: AgentOutput,\n error: PanRpcError,\n stream: true,\n})\n\n/** 4. Get current dashboard snapshot (unary) */\nexport const GetSnapshotRpc = Rpc.make(WS_METHODS.getSnapshot, {\n payload: Schema.Struct({}),\n success: DashboardSnapshot,\n error: PanRpcError,\n})\n\n/** 5. Replay events since a given sequence number (unary) */\nexport const ReplayEventsRpc = Rpc.make(WS_METHODS.replayEvents, {\n payload: Schema.Struct({ fromSequence: SequenceNumber }),\n success: Schema.Array(DomainEvent),\n error: PanRpcError,\n})\n\n/** 6. Open a terminal session / attach PTY (unary) */\nexport const TerminalOpenRpc = Rpc.make(WS_METHODS.terminalOpen, {\n payload: Schema.Struct({ sessionName: Schema.String, cols: Schema.Number, rows: Schema.Number }),\n success: Schema.Struct({ sessionName: Schema.String }),\n error: PanRpcError,\n})\n\n/** 7. Write data to a terminal session (unary) */\nexport const TerminalWriteRpc = Rpc.make(WS_METHODS.terminalWrite, {\n payload: Schema.Struct({ sessionName: Schema.String, data: Schema.String }),\n error: PanRpcError,\n})\n\n/** 8. Resize a terminal session (unary) */\nexport const TerminalResizeRpc = Rpc.make(WS_METHODS.terminalResize, {\n payload: Schema.Struct({ sessionName: Schema.String, cols: Schema.Number, rows: Schema.Number }),\n error: PanRpcError,\n})\n\n/** 9. Close a terminal session (unary) */\nexport const TerminalCloseRpc = Rpc.make(WS_METHODS.terminalClose, {\n payload: Schema.Struct({ sessionName: Schema.String }),\n error: PanRpcError,\n})\n\nexport const ReadWorkspaceFileInput = Schema.Struct({\n issueId: IssueId,\n relativePath: Schema.String,\n line: Schema.optional(Schema.Number),\n contextLines: Schema.optional(Schema.Number),\n})\nexport type ReadWorkspaceFileInput = typeof ReadWorkspaceFileInput.Type\n\nexport const ReadWorkspaceFileResult = Schema.Struct({\n text: Schema.String,\n lang: Schema.String,\n truncated: Schema.Boolean,\n totalLines: Schema.Number,\n})\nexport type ReadWorkspaceFileResult = typeof ReadWorkspaceFileResult.Type\n\n/** 10b. Read a workspace file for inline previews (unary) */\nexport const ReadWorkspaceFileRpc = Rpc.make(WS_METHODS.readWorkspaceFile, {\n payload: ReadWorkspaceFileInput,\n success: ReadWorkspaceFileResult,\n error: PanRpcError,\n})\n\nexport const ReadFileAtPathInput = Schema.Struct({\n path: Schema.String,\n})\nexport type ReadFileAtPathInput = typeof ReadFileAtPathInput.Type\n\nexport const ReadFileAtPathResult = Schema.Struct({\n text: Schema.String,\n lang: Schema.String,\n mtimeMs: Schema.Number,\n totalLines: Schema.Number,\n})\nexport type ReadFileAtPathResult = typeof ReadFileAtPathResult.Type\n\n/**\n * 10b-2. Read an allowlisted markdown file by absolute path (PAN-3260).\n *\n * Unlike ReadWorkspaceFileRpc this takes no issueId — the internal markdown\n * editor pane opens files reached from surfaces with no workspace context\n * (e.g. a repo-root file chip inside a conversation). The server validates\n * `path` against registered project roots + OVERDECK_HOME before reading.\n */\nexport const ReadFileAtPathRpc = Rpc.make(WS_METHODS.readFileAtPath, {\n payload: ReadFileAtPathInput,\n success: ReadFileAtPathResult,\n error: PanRpcError,\n})\n\nexport const WriteFileAtPathInput = Schema.Struct({\n path: Schema.String,\n content: Schema.String,\n expectedMtimeMs: Schema.optional(Schema.Number),\n})\nexport type WriteFileAtPathInput = typeof WriteFileAtPathInput.Type\n\nexport const WriteFileAtPathResult = Schema.Struct({\n mtimeMs: Schema.Number,\n})\nexport type WriteFileAtPathResult = typeof WriteFileAtPathResult.Type\n\n/**\n * 10b-3. Write an allowlisted markdown file by absolute path (PAN-3260).\n *\n * `expectedMtimeMs` enables optimistic concurrency: a stale value is\n * rejected with a PanRpcError code of WRITE_CONFLICT and nothing is\n * written. Omitting it (e.g. an explicit Overwrite action) skips the check.\n */\nexport const WriteFileAtPathRpc = Rpc.make(WS_METHODS.writeFileAtPath, {\n payload: WriteFileAtPathInput,\n success: WriteFileAtPathResult,\n error: PanRpcError,\n})\n\n/**\n * 10c. Resolve whether a file path candidate exists on disk (PAN-1457).\n *\n * Used by MarkdownFileLink to decide whether a path-like token in chat\n * markdown should render as a clickable chip. Returns exists=false for\n * phantom paths (`conv/2209`, `users/foo`) and exists=true with kind for\n * real files and directories (including bare directory references like\n * `src/components/Foo` that the regex heuristic alone cannot validate).\n *\n * Security:\n * - Pure stat — never reads file contents, never enumerates directories.\n * - Relative paths resolve under cwd; absolute paths are statted directly.\n * - Caller is responsible for sending only paths surfaced from their own\n * conversation context; the resolver does not gate by issueId because\n * chat happens outside any single workspace.\n */\nexport const ResolveFilePathExistsInput = Schema.Struct({\n cwd: Schema.optional(Schema.String),\n path: Schema.String,\n})\nexport type ResolveFilePathExistsInput = typeof ResolveFilePathExistsInput.Type\n\nexport const ResolveFilePathExistsResult = Schema.Struct({\n exists: Schema.Boolean,\n kind: Schema.NullOr(Schema.Literals(['file', 'dir'])),\n})\nexport type ResolveFilePathExistsResult = typeof ResolveFilePathExistsResult.Type\n\nexport const ResolveFilePathExistsRpc = Rpc.make(WS_METHODS.resolveFilePathExists, {\n payload: ResolveFilePathExistsInput,\n success: ResolveFilePathExistsResult,\n error: PanRpcError,\n})\n\n/** 11. Start planning for an issue (command) */\nexport const StartPlanningRpc = Rpc.make(WS_METHODS.startPlanning, {\n payload: Schema.Struct({ issueId: IssueId, options: Schema.optional(Schema.Unknown) }),\n success: Schema.Struct({ queued: Schema.Boolean }),\n error: PanRpcError,\n})\n\n/** 12. Start a work agent for an issue (command) */\nexport const StartAgentRpc = Rpc.make(WS_METHODS.startAgent, {\n payload: Schema.Struct({ issueId: IssueId, options: Schema.optional(Schema.Unknown) }),\n success: Schema.Struct({ agentId: Schema.String }),\n error: PanRpcError,\n})\n\n/** 13. Deep-wipe a workspace (destructive command — requires explicit confirmation) */\nexport const DeepWipeRpc = Rpc.make(WS_METHODS.deepWipe, {\n payload: Schema.Struct({ issueId: IssueId, deleteWorkspace: Schema.optional(Schema.Boolean) }),\n success: Schema.Struct({ wiped: Schema.Boolean }),\n error: PanRpcError,\n})\n\n/** 14. Send input to a terminal session (command) */\nexport const SendTerminalInputRpc = Rpc.make(WS_METHODS.sendTerminalInput, {\n payload: Schema.Struct({ sessionName: Schema.String, data: Schema.String }),\n error: PanRpcError,\n})\n\n/** 15. Resize a terminal session (command) */\nexport const ResizeTerminalRpc = Rpc.make(WS_METHODS.resizeTerminal, {\n payload: Schema.Struct({ sessionName: Schema.String, cols: Schema.Number, rows: Schema.Number }),\n error: PanRpcError,\n})\n\n/** 16. Subscribe to structured conversation messages from a JSONL session file (stream, PAN-451) */\nexport const SubscribeConversationMessagesRpc = Rpc.make(WS_METHODS.subscribeConversationMessages, {\n payload: Schema.Struct({\n conversationName: Schema.String,\n agentId: Schema.optional(Schema.String),\n }),\n success: ConversationEvent,\n error: PanRpcError,\n stream: true,\n})\n\n/** 17. Subscribe to live session tree deltas for a project (stream, PAN-821) */\nexport const SubscribeProjectSessionTreeRpc = Rpc.make(WS_METHODS.subscribeProjectSessionTree, {\n payload: Schema.Struct({ projectKey: Schema.String }),\n success: SessionTreeDelta,\n error: PanRpcError,\n stream: true,\n})\n\n/** 19. Open a workspace in an editor (PAN-966) */\nexport const ShellOpenInEditorRpc = Rpc.make(WS_METHODS.shellOpenInEditor, {\n payload: OpenInEditorInput,\n error: PanRpcError,\n})\n\n/** 19. Get available (installed) editors (PAN-966) */\nexport const GetAvailableEditorsRpc = Rpc.make(WS_METHODS.getAvailableEditors, {\n success: Schema.Struct({\n editors: Schema.Array(EditorIdSchema),\n /**\n * Default cwd to open when no project/workspace is selected — the\n * \"devroot\" fallback. `~/Projects` if it exists, else `$HOME`.\n */\n defaultCwd: Schema.String,\n }),\n error: PanRpcError,\n})\n\n// ─── Conversation Discovery RPC procs (PAN-457) ───────────────────────────────\n\nconst DiscoveredSessionListResult = Schema.Struct({\n sessions: Schema.Array(DiscoveredSessionSnapshot),\n count: Schema.Number,\n total: Schema.Number,\n})\n\nconst SessionsFeedPayload = Schema.Struct({\n harness: Schema.optional(Schema.String),\n workspacePath: Schema.optional(Schema.String),\n primaryModel: Schema.optional(Schema.String),\n managed: Schema.optional(Schema.Boolean),\n unmanaged: Schema.optional(Schema.Boolean),\n since: Schema.optional(Schema.String),\n before: Schema.optional(Schema.String),\n after: Schema.optional(Schema.String),\n minCost: Schema.optional(Schema.Number),\n maxCost: Schema.optional(Schema.Number),\n minMessages: Schema.optional(Schema.Number),\n tags: Schema.optional(Schema.Array(Schema.String)),\n tools: Schema.optional(Schema.Array(Schema.String)),\n files: Schema.optional(Schema.Array(Schema.String)),\n issueId: Schema.optional(Schema.String),\n enrichmentLevel: Schema.optional(Schema.Number),\n enriched: Schema.optional(Schema.Boolean),\n notEnriched: Schema.optional(Schema.Boolean),\n query: Schema.optional(Schema.String),\n semantic: Schema.optional(Schema.Boolean),\n similarTo: Schema.optional(Schema.Number),\n limit: Schema.optional(Schema.Number),\n offset: Schema.optional(Schema.Number),\n cursor: Schema.optional(Schema.String),\n source: Schema.optional(Schema.Literals(['discovered', 'managed-archived'])),\n})\n\nconst SessionsFeedListResult = Schema.Struct({\n rows: Schema.Array(SessionsFeedRowSnapshot),\n nextCursor: Schema.NullOr(Schema.String),\n})\n\nconst DiscoveredSessionSearchResult = Schema.Struct({\n sessions: Schema.Array(DiscoveredSessionSnapshot),\n total: Schema.Number,\n mode: Schema.String,\n durationMs: Schema.Number,\n error: Schema.optional(Schema.String),\n})\n\nconst DiscoveredSessionStatsResult = Schema.Struct({\n total: Schema.Number,\n enriched: Schema.Number,\n embedded: Schema.Number,\n managedCount: Schema.Number,\n embeddingModels: Schema.optional(Schema.Array(Schema.Struct({\n model: Schema.String,\n embedded: Schema.Number,\n }))),\n})\n\nconst ConversationCostTotals = Schema.Struct({\n sessionCount: Schema.Number,\n totalCost: Schema.Number,\n totalTokensIn: Schema.Number,\n totalTokensOut: Schema.Number,\n})\n\n/** Scan conversations (trigger discovery) */\nexport const ScanConversationsRpc = Rpc.make(WS_METHODS.scanConversations, {\n payload: Schema.Struct({\n mode: Schema.Literals(['targeted', 'watched', 'system']),\n dirs: Schema.optional(Schema.Array(Schema.String)),\n dryRun: Schema.optional(Schema.Boolean),\n }),\n success: ScanResult,\n error: PanRpcError,\n})\n\n/** Search discovered sessions with filters + optional FTS query */\nexport const SearchConversationsRpc = Rpc.make(WS_METHODS.searchConversations, {\n payload: ConversationFilter,\n success: DiscoveredSessionSearchResult,\n error: PanRpcError,\n})\n\n/** List discovered sessions (recent, with optional managed/unmanaged filter) */\nexport const ListDiscoveredSessionsRpc = Rpc.make(WS_METHODS.listDiscoveredSessions, {\n payload: ConversationFilter,\n success: DiscoveredSessionListResult,\n error: PanRpcError,\n})\n\n/** List the unified discovered + managed archived sessions feed */\nexport const ListSessionsFeedRpc = Rpc.make(WS_METHODS.listSessionsFeed, {\n payload: SessionsFeedPayload,\n success: SessionsFeedListResult,\n error: PanRpcError,\n})\n\n/** Get facet buckets for the unified sessions feed */\nexport const GetSessionsFeedFacetsRpc = Rpc.make(WS_METHODS.getSessionsFeedFacets, {\n payload: SessionsFeedPayload,\n success: SessionsFeedFacetsSnapshot,\n error: PanRpcError,\n})\n\n/** Get a single discovered session by ID */\nexport const GetDiscoveredSessionRpc = Rpc.make(WS_METHODS.getDiscoveredSession, {\n payload: Schema.Struct({ id: Schema.Number }),\n success: DiscoveredSessionSnapshot,\n error: PanRpcError,\n})\n\n/** Enrich sessions by ID or filter */\nexport const EnrichSessionsRpc = Rpc.make(WS_METHODS.enrichSessions, {\n payload: Schema.Struct({\n ids: Schema.optional(Schema.Array(Schema.Number)),\n filter: Schema.optional(ConversationFilter),\n level: Schema.Literals([1, 2, 3]),\n model: Schema.optional(Schema.String),\n fullTranscript: Schema.optional(Schema.Boolean),\n customPrompt: Schema.optional(Schema.String),\n upgrade: Schema.optional(Schema.Boolean),\n limit: Schema.optional(Schema.Number),\n confirmed: Schema.optional(Schema.Boolean),\n force: Schema.optional(Schema.Boolean),\n }),\n success: Schema.Struct({\n processed: Schema.Number,\n totalCost: Schema.Number,\n failures: Schema.Number,\n }),\n error: PanRpcError,\n})\n\n/** Generate or update embeddings for enriched sessions */\nexport const EmbedSessionsRpc = Rpc.make(WS_METHODS.embedSessions, {\n payload: Schema.Struct({\n ids: Schema.optional(Schema.Array(Schema.Number)),\n regenerate: Schema.optional(Schema.Boolean),\n }),\n success: Schema.Struct({\n total: Schema.Number,\n embedded: Schema.Number,\n model: Schema.String,\n }),\n error: PanRpcError,\n})\n\n/** Aggregate cost totals for discovered sessions */\nexport const GetConversationCostRpc = Rpc.make(WS_METHODS.getConversationCost, {\n payload: ConversationFilter,\n success: ConversationCostTotals,\n error: PanRpcError,\n})\n\n/** Aggregate workspace cost totals for the full filtered corpus */\nexport const GetConversationCostByWorkspaceRpc = Rpc.make(WS_METHODS.getConversationCostByWorkspace, {\n payload: ConversationFilter,\n success: ConversationCostSummary,\n error: PanRpcError,\n})\n\n/** Discovery index statistics */\nexport const GetConversationStatsRpc = Rpc.make(WS_METHODS.getConversationStats, {\n payload: Schema.Struct({}),\n success: DiscoveredSessionStatsResult,\n error: PanRpcError,\n})\n\n// ─── RPC Group ────────────────────────────────────────────────────────────────\n\n/** All Overdeck WebSocket RPC methods */\nexport const PanRpcGroup = RpcGroup.make(\n SubscribeDomainEventsRpc,\n SubscribeIssueEventsRpc,\n SubscribeTerminalRpc,\n SubscribeAgentOutputRpc,\n GetSnapshotRpc,\n ReplayEventsRpc,\n ReadWorkspaceFileRpc,\n ReadFileAtPathRpc,\n WriteFileAtPathRpc,\n ResolveFilePathExistsRpc,\n TerminalOpenRpc,\n TerminalWriteRpc,\n TerminalResizeRpc,\n TerminalCloseRpc,\n StartPlanningRpc,\n StartAgentRpc,\n DeepWipeRpc,\n SendTerminalInputRpc,\n ResizeTerminalRpc,\n SubscribeConversationMessagesRpc,\n SubscribeProjectSessionTreeRpc,\n ShellOpenInEditorRpc,\n GetAvailableEditorsRpc,\n ScanConversationsRpc,\n SearchConversationsRpc,\n ListDiscoveredSessionsRpc,\n ListSessionsFeedRpc,\n GetSessionsFeedFacetsRpc,\n GetDiscoveredSessionRpc,\n EnrichSessionsRpc,\n EmbedSessionsRpc,\n GetConversationCostRpc,\n GetConversationCostByWorkspaceRpc,\n GetConversationStatsRpc,\n)\nexport type PanRpcGroup = typeof PanRpcGroup\n","/**\n * Runtime-map helpers shared by the reducers (PAN-4522).\n */\nimport type { AgentRuntimeSnapshot } from './types'\n\nexport function defaultRuntimeSnapshot(agentId: string, timestamp: string, sequence: number): AgentRuntimeSnapshot {\n return { id: agentId, activity: 'idle', lastActivity: timestamp, updatedAtSequence: sequence }\n}\n\n/**\n * Merge a snapshot's runtime map into the client's, per agent. A freshly booted\n * server may serve an older or missing entry; a client entry with a strictly\n * newer `lastActivity` (or an equal stamp with a higher `updatedAtSequence`)\n * survives, and an agent the snapshot omits keeps its entry.\n */\nexport function mergeSnapshotRuntimeById(\n current: Readonly<Record<string, AgentRuntimeSnapshot>>,\n incoming: Readonly<Record<string, AgentRuntimeSnapshot>> | undefined,\n): Record<string, AgentRuntimeSnapshot> {\n if (!incoming) return { ...current }\n const merged: Record<string, AgentRuntimeSnapshot> = { ...current }\n for (const [agentId, next] of Object.entries(incoming)) {\n const held = current[agentId]\n merged[agentId] = held && heldIsNewer(held, next) ? held : next\n }\n return merged\n}\n\n/** Newer `lastActivity` wins; equal stamps fall to the higher `updatedAtSequence`. */\nfunction heldIsNewer(held: AgentRuntimeSnapshot, next: AgentRuntimeSnapshot): boolean {\n const heldAt = Date.parse(held.lastActivity)\n const nextAt = Date.parse(next.lastActivity)\n if (heldAt > nextAt) return true\n if (heldAt !== nextAt) return false\n return Number.isFinite(held.updatedAtSequence) && Number.isFinite(next.updatedAtSequence)\n && held.updatedAtSequence > next.updatedAtSequence\n}\n","/** Index patches preserve the complete tracker rows and their exact ordering. */\nexport interface IssueDelta {\n readonly length: number\n readonly changes: ReadonlyArray<{ readonly index: number; readonly issue: unknown }>\n}\n\nexport function createIssueDelta(previous: readonly unknown[], next: readonly unknown[]): IssueDelta | null {\n const changes: Array<{ index: number; issue: unknown }> = []\n for (let index = 0; index < next.length; index++) {\n if (index >= previous.length || JSON.stringify(previous[index]) !== JSON.stringify(next[index])) {\n changes.push({ index, issue: next[index] })\n }\n }\n return changes.length || previous.length !== next.length ? { length: next.length, changes } : null\n}\n\nexport function applyIssueDelta(previous: readonly unknown[], delta: IssueDelta): unknown[] {\n const next = previous.slice(0, delta.length)\n for (const { index, issue } of delta.changes) next[index] = issue\n return next\n}\n","/**\n * Shared event reducers — pure functions for applying domain events to state (PAN-433)\n *\n * Used by:\n * - Server read model (src/dashboard/server/read-model.ts)\n * - Frontend Zustand store (src/dashboard/frontend/src/lib/store.ts)\n *\n * Both produce identical results for the same event, keeping server and client\n * eventually consistent (the T3Code pattern).\n */\n\nimport type {\n AgentRuntimeSnapshot,\n AgentSnapshot,\n ChannelPermissionRequestSnapshot,\n DashboardSnapshot,\n EmbedProgressSnapshot,\n EnrichProgressSnapshot,\n EnrichStatsSnapshot,\n ProjectCiSnapshot,\n ResourceStats,\n RestartGateSnapshot,\n ProjectDeploySnapshot,\n ScanProgressSnapshot,\n TurnDiffSummary,\n} from './types'\nimport { defaultRuntimeSnapshot, mergeSnapshotRuntimeById } from './agent-runtime-merge'\nimport type { DerivedIssueState } from './derived-issue-state'\nimport type { GitHubQuotaSnapshot } from './github-quota'\nimport type { BackendPane } from './backend-pane'\nimport type {\n MemoryObservation,\n MemoryStatus,\n PendingTurn,\n RagDecision,\n ResetMarker,\n} from './memory'\nimport type { DomainEvent } from './events'\nimport { applyIssueDelta } from './issue-delta'\n\n// ─── Read model state shape ──────────────────────────────────────────────────\n\nexport interface ResolvedChannelPermissionDecision {\n requestId: string\n agentId: string\n issueId?: string\n behavior: 'allow' | 'deny'\n}\n\nexport interface MemoryHealthSnapshot {\n projectId: string\n issueId: string\n status: 'healthy' | 'degraded' | 'failing'\n reason: string | null\n /** Human-readable cause of the most recent failure (provider error text). */\n detail?: string\n ragDecision?: RagDecision\n updatedAt: string\n}\n\nexport interface MemoryRollupTriggerSnapshot {\n projectId: string\n workspaceId: string\n issueId: string\n pendingTurns: PendingTurn[]\n pendingCount: number\n threshold: number\n triggeredAt: string\n}\n\nexport interface MemoryReadModelState {\n observationsByIssueId: Record<string, MemoryObservation[]>\n statusByIssueId: Record<string, MemoryStatus>\n rollupsByIssueId: Record<string, MemoryRollupTriggerSnapshot[]>\n resetMarkersByScopeId: Record<string, ResetMarker[]>\n healthByIssueId: Record<string, MemoryHealthSnapshot>\n}\n\nexport interface ReadModelState {\n sequence: number\n agentsById: Record<string, AgentSnapshot>\n /**\n * PAN-800 — per-agent runtime state derived from agent.* runtime events.\n * Kept separate from agentsById because it updates on every tool call; merging\n * would cause the whole AgentSnapshot to re-diff on the frontend.\n */\n agentRuntimeById: Record<string, AgentRuntimeSnapshot>\n /** PAN-3917 FR-6 — derived pipeline state, keyed by issue id. Never persisted. */\n derivedIssueStateByIssueId: Record<string, DerivedIssueState>\n /** PAN-3917 FR-12 — live agent panes the terminal backend reports, by pane id. */\n backendPanesById: Record<string, BackendPane>\n resources: ResourceStats | null\n agentOutputById: Record<string, string[]>\n issuesRaw: unknown[]\n recentActivity: unknown[]\n detailedActivity: unknown[]\n ttsActivity: unknown[]\n shadowInferenceByIssueId: Record<string, string>\n turnDiffSummariesByAgentId: Record<string, TurnDiffSummary[]>\n channelPermissionRequestsById: Record<string, ChannelPermissionRequestSnapshot>\n channelPermissionRequestIdsByAgentId: Record<string, string[]>\n resolvedChannelPermissionDecisionsById: Record<string, ResolvedChannelPermissionDecision>\n resolvedChannelPermissionDecisionIdsByAgentId: Record<string, string[]>\n dashboardLifecycle: DashboardLifecycleState\n /** Conversation names currently undergoing Overdeck-native compaction. */\n conversationsCompactingByName: Record<string, boolean>\n /** Conversation names currently waiting for user permission (PermissionRequest hook). */\n conversationsAwaitingPermissionByName: Record<string, boolean>\n /** Bumped whenever a conversation is created, so the sidebar list can refresh\n * immediately instead of waiting for its poll tick. */\n conversationsListRevision: number\n observationsByIssueId: Record<string, MemoryObservation[]>\n statusByIssueId: Record<string, MemoryStatus>\n rollupsByIssueId: Record<string, MemoryRollupTriggerSnapshot[]>\n resetMarkersByScopeId: Record<string, ResetMarker[]>\n healthByIssueId: Record<string, MemoryHealthSnapshot>\n /** PAN-457 — active scan progress snapshot */\n scanProgress: ScanProgressSnapshot | null\n /** PAN-457 — latest enrichment stats */\n enrichStats: EnrichStatsSnapshot | null\n /** PAN-457 — latest per-session enrichment progress */\n enrichProgressBySessionId: Record<number, EnrichProgressSnapshot>\n /** PAN-457 — latest per-session embedding progress */\n embedProgressBySessionId: Record<number, EmbedProgressSnapshot>\n /** PAN-3537 — per-project default-branch CI record, keyed by project key. */\n ciByProjectKey: Record<string, ProjectCiSnapshot>\n /** PAN-3729 — voluntary-restart approval gate; null until the gate first reports. */\n restartGate: RestartGateSnapshot | null\n /** PAN-4264 — GitHub API quota view; null until the publisher first reports. */\n githubQuota: GitHubQuotaSnapshot | null\n /** PAN-3751 — in-flight deploys keyed by project key; derived, never stored. */\n deployByProjectKey: Record<string, ProjectDeploySnapshot>\n /** sessionId (from agent snapshot or runtime claudeSessionId) → agentId index */\n agentIdBySessionId: Record<string, string>\n}\n\nexport interface DashboardLifecycleState {\n active: boolean\n reason: string | null\n issueId: string | null\n trigger: string | null\n startedAt: string | null\n completedAt: string | null\n failedAt: string | null\n error: string | null\n}\n\nexport const INITIAL_READ_MODEL_STATE: ReadModelState = {\n sequence: 0,\n agentsById: {},\n agentRuntimeById: {},\n derivedIssueStateByIssueId: {},\n backendPanesById: {},\n resources: null,\n agentOutputById: {},\n issuesRaw: [],\n recentActivity: [],\n detailedActivity: [],\n ttsActivity: [],\n shadowInferenceByIssueId: {},\n turnDiffSummariesByAgentId: {},\n channelPermissionRequestsById: {},\n channelPermissionRequestIdsByAgentId: {},\n resolvedChannelPermissionDecisionsById: {},\n resolvedChannelPermissionDecisionIdsByAgentId: {},\n conversationsCompactingByName: {},\n conversationsAwaitingPermissionByName: {},\n conversationsListRevision: 0,\n observationsByIssueId: {},\n statusByIssueId: {},\n rollupsByIssueId: {},\n resetMarkersByScopeId: {},\n healthByIssueId: {},\n scanProgress: null,\n enrichStats: null,\n enrichProgressBySessionId: {},\n embedProgressBySessionId: {},\n ciByProjectKey: {},\n restartGate: null,\n githubQuota: null,\n deployByProjectKey: {},\n agentIdBySessionId: {},\n dashboardLifecycle: {\n active: false,\n reason: null,\n issueId: null,\n trigger: null,\n startedAt: null,\n completedAt: null,\n failedAt: null,\n error: null,\n },\n}\n\n// ─── Constants ───────────────────────────────────────────────────────────────\n\nconst MAX_AGENT_OUTPUT_LINES = 200\nconst MAX_ACTIVITY_ENTRIES = 50\nconst MAX_DETAILED_ENTRIES = 200\nconst MAX_TTS_ENTRIES = 50\nconst MAX_SESSION_PROGRESS_ENTRIES = 100\nexport const DEFAULT_MAX_TURN_DIFF_SUMMARIES_PER_AGENT = 200\nexport const DEFAULT_MAX_MEMORY_OBSERVATIONS_PER_ISSUE = 50\n\nexport function getMaxMemoryObservationsPerIssue(): number {\n const raw = (globalThis as { process?: { env?: Record<string, string | undefined> } }).process?.env?.OVERDECK_MEMORY_OBSERVATION_LIMIT\n const parsed = raw ? Number.parseInt(raw, 10) : Number.NaN\n return Number.isInteger(parsed) && parsed > 0 ? parsed : DEFAULT_MAX_MEMORY_OBSERVATIONS_PER_ISSUE\n}\n\nexport function trimMemoryObservations(observations: MemoryObservation[]): MemoryObservation[] {\n const max = getMaxMemoryObservationsPerIssue()\n return observations.length > max ? observations.slice(-max) : observations\n}\n\nexport function getMaxTurnDiffSummariesPerAgent(): number {\n const raw = (globalThis as { process?: { env?: Record<string, string | undefined> } }).process?.env?.OVERDECK_TURN_DIFF_SUMMARY_LIMIT\n const parsed = raw ? Number.parseInt(raw, 10) : Number.NaN\n return Number.isInteger(parsed) && parsed > 0 ? parsed : DEFAULT_MAX_TURN_DIFF_SUMMARIES_PER_AGENT\n}\n\nexport function isTerminalTurnDiffSummaryStatus(status: unknown): boolean {\n return status === 'stopped' || status === 'done' || status === 'archived' || status === 'closed'\n}\n\nexport function trimTurnDiffSummaries(summaries: TurnDiffSummary[]): TurnDiffSummary[] {\n const max = getMaxTurnDiffSummariesPerAgent()\n return summaries.length > max ? summaries.slice(-max) : summaries\n}\n\nfunction upsertBoundedSessionProgress<T extends { sessionId: number; timestamp: string }>(\n bySessionId: Record<number, T>,\n progress: T,\n): Record<number, T> {\n const existing = bySessionId[progress.sessionId]\n const entries = Object.values(bySessionId)\n if (existing || entries.length < MAX_SESSION_PROGRESS_ENTRIES) {\n return { ...bySessionId, [progress.sessionId]: progress }\n }\n const keep = entries\n .sort((a, b) => a.timestamp.localeCompare(b.timestamp))\n .slice(-(MAX_SESSION_PROGRESS_ENTRIES - 1))\n const next: Record<number, T> = {}\n for (const entry of [...keep, progress]) next[entry.sessionId] = entry\n return next\n}\n\nexport function omitTurnDiffSummariesForAgent(\n turnDiffSummariesByAgentId: ReadModelState['turnDiffSummariesByAgentId'] | undefined,\n agentId: string,\n): ReadModelState['turnDiffSummariesByAgentId'] {\n const { [agentId]: _removed, ...rest } = turnDiffSummariesByAgentId ?? {}\n return rest\n}\n\n/** Remove all entries in agentIdBySessionId that point to the given agentId. */\nfunction removeAgentFromSessionIndex(\n agentIdBySessionId: ReadModelState['agentIdBySessionId'] | undefined,\n agentId: string,\n): ReadModelState['agentIdBySessionId'] {\n const next: Record<string, string> = {}\n for (const [sessionId, id] of Object.entries(agentIdBySessionId ?? {})) {\n if (id !== agentId) next[sessionId] = id\n }\n return next\n}\n\n// ─── PAN-800 runtime helpers ─────────────────────────────────────────────────\n\n/**\n * Bump runtimeSnapshotSequence on the corresponding AgentSnapshot (if present)\n * so low-frequency subscribers can cheaply detect a runtime change. No-op if\n * the agent has no lifecycle snapshot yet (a runtime event arrived before\n * agent.created — unusual but defensive).\n */\nfunction bumpRuntimeSnapshotSequence(\n agentsById: Record<string, AgentSnapshot>,\n agentId: string,\n sequence: number,\n): Record<string, AgentSnapshot> {\n const agent = agentsById[agentId]\n if (!agent) return agentsById\n return { ...agentsById, [agentId]: { ...agent, runtimeSnapshotSequence: sequence } }\n}\n\n// ─── syncSnapshot — bootstrap from a full DashboardSnapshot ──────────────────\n\nexport function syncSnapshot(state: ReadModelState, snapshot: DashboardSnapshot): ReadModelState {\n const agentsById: Record<string, AgentSnapshot> = {}\n for (const agent of snapshot.agents) {\n agentsById[agent.id] = agent\n }\n\n const derivedIssueStateByIssueId: Record<string, DerivedIssueState> = {}\n for (const derived of snapshot.derivedIssueStates ?? []) {\n derivedIssueStateByIssueId[derived.issueId] = derived\n }\n\n const backendPanesById: Record<string, BackendPane> = {}\n for (const pane of snapshot.backendPanes ?? []) {\n backendPanesById[pane.id] = pane\n }\n\n const channelPermissionRequestsById: Record<string, ChannelPermissionRequestSnapshot> = {}\n const channelPermissionRequestIdsByAgentId: Record<string, string[]> = {}\n for (const request of snapshot.channelPermissionRequests ?? []) {\n channelPermissionRequestsById[request.requestId] = request\n const existing = channelPermissionRequestIdsByAgentId[request.agentId] ?? []\n channelPermissionRequestIdsByAgentId[request.agentId] = [...existing, request.requestId]\n }\n\n const memory = snapshot.memory as Partial<MemoryReadModelState> | undefined\n\n // PAN-4522: keep a client runtime stamp that is newer than what a freshly\n // booted server served (FR-4).\n const agentRuntimeById = mergeSnapshotRuntimeById(state.agentRuntimeById, snapshot.agentRuntimeById)\n\n // Rebuild sessionId → agentId index from the merged runtime map (FR-5).\n const agentIdBySessionId: Record<string, string> = {}\n for (const agent of snapshot.agents) {\n if (agent.sessionId) agentIdBySessionId[agent.sessionId] = agent.id\n }\n for (const [agentId, runtime] of Object.entries(agentRuntimeById)) {\n if (runtime.claudeSessionId) agentIdBySessionId[runtime.claudeSessionId] = agentId\n }\n\n return {\n ...state,\n sequence: snapshot.sequence,\n agentsById,\n derivedIssueStateByIssueId,\n backendPanesById,\n agentRuntimeById,\n channelPermissionRequestsById,\n channelPermissionRequestIdsByAgentId,\n resolvedChannelPermissionDecisionsById: {},\n resolvedChannelPermissionDecisionIdsByAgentId: {},\n resources: (snapshot.resources as ResourceStats | undefined) ?? null,\n issuesRaw: (snapshot as any).issues ?? state.issuesRaw,\n recentActivity: snapshot.recentActivity ? [...snapshot.recentActivity] : state.recentActivity,\n observationsByIssueId: memory?.observationsByIssueId ?? state.observationsByIssueId,\n statusByIssueId: memory?.statusByIssueId ?? state.statusByIssueId,\n rollupsByIssueId: memory?.rollupsByIssueId ?? state.rollupsByIssueId,\n resetMarkersByScopeId: memory?.resetMarkersByScopeId ?? state.resetMarkersByScopeId,\n healthByIssueId: memory?.healthByIssueId ?? state.healthByIssueId,\n scanProgress: snapshot.scanProgress ?? null,\n enrichStats: snapshot.enrichStats ?? null,\n enrichProgressBySessionId: snapshot.enrichProgressBySessionId ?? {},\n embedProgressBySessionId: snapshot.embedProgressBySessionId ?? {},\n ciByProjectKey: snapshot.ciByProjectKey ?? state.ciByProjectKey,\n restartGate: snapshot.restartGate ?? state.restartGate,\n githubQuota: snapshot.githubQuota ?? state.githubQuota,\n deployByProjectKey: snapshot.deployByProjectKey ?? state.deployByProjectKey,\n agentIdBySessionId,\n }\n}\n\n/**\n * #4105 — `hasLivePane` and its deprecated alias `hasLiveTmuxSession` carry one\n * fact. An agent snapshot from a stored event may carry only the old name; fill\n * whichever one is missing so readers of either name agree.\n */\nexport function withPaneLivenessAlias(agent: AgentSnapshot): AgentSnapshot {\n const pane = agent.hasLivePane ?? agent.hasLiveTmuxSession\n if (pane === undefined || (agent.hasLivePane === pane && agent.hasLiveTmuxSession === pane)) return agent\n return { ...agent, hasLivePane: pane, hasLiveTmuxSession: pane }\n}\n\n// ─── applyEvent — apply a single domain event ───────────────────────────────\n\nexport function applyEvent(state: ReadModelState, event: DomainEvent): ReadModelState {\n switch (event.type) {\n case 'agent.created': {\n const existing = state.agentsById[event.payload.agentId]\n const agent = withPaneLivenessAlias(event.payload.agent)\n const nextAgentIdBySessionId = agent.sessionId\n ? { ...state.agentIdBySessionId, [agent.sessionId]: agent.id }\n : state.agentIdBySessionId\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentsById: {\n ...state.agentsById,\n [event.payload.agentId]: existing\n ? { ...existing, ...agent }\n : agent,\n },\n agentIdBySessionId: nextAgentIdBySessionId,\n }\n }\n\n case 'agent.started': {\n const agent = withPaneLivenessAlias(event.payload.agent)\n const nextAgentIdBySessionId = agent.sessionId\n ? { ...state.agentIdBySessionId, [agent.sessionId]: agent.id }\n : state.agentIdBySessionId\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentsById: {\n ...state.agentsById,\n [event.payload.agentId]: agent,\n },\n agentIdBySessionId: nextAgentIdBySessionId,\n }\n }\n\n case 'agent.enrichment_changed': {\n const agent = state.agentsById[event.payload.agentId]\n if (!agent) return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentsById: {\n ...state.agentsById,\n [event.payload.agentId]: {\n ...agent,\n role: event.payload.role ?? agent.role,\n hasPendingQuestion: event.payload.hasPendingQuestion ?? false,\n pendingQuestionCount: event.payload.pendingQuestionCount ?? 0,\n pendingQuestionPrompt: event.payload.pendingQuestionPrompt,\n pendingQuestionReason: event.payload.pendingQuestionReason,\n pendingInputCount: event.payload.pendingInputCount,\n pendingInputKinds: event.payload.pendingInputKinds,\n pendingAskUserQuestion: event.payload.pendingAskUserQuestion,\n pendingProposedPlan: event.payload.pendingProposedPlan,\n resolution: event.payload.resolution,\n resolutionCount: event.payload.resolutionCount,\n turnEndAssessment: event.payload.turnEndAssessment,\n },\n },\n }\n }\n\n case 'agent.stopped': {\n const stoppedAgent = state.agentsById[event.payload.agentId]\n const nextAgentsById = stoppedAgent\n ? {\n ...state.agentsById,\n [event.payload.agentId]: {\n ...stoppedAgent,\n status: 'stopped' as const,\n hasLivePane: false,\n hasLiveTmuxSession: false,\n lastActivity: event.timestamp,\n },\n }\n : state.agentsById\n // PAN-800 — mark the runtime snapshot stopped too. pan kill bypasses the\n // Stop hook, so without this fold a killed agent shows activity: \"idle\"\n // forever. Retain the row (don't delete) so the projection cache has the\n // last-known snapshot for forensics.\n const runtimeById = state.agentRuntimeById ?? {}\n const prevRuntime = runtimeById[event.payload.agentId]\n const nextRuntimeById = prevRuntime\n ? {\n ...runtimeById,\n [event.payload.agentId]: {\n ...prevRuntime,\n activity: 'stopped' as const,\n currentTool: undefined,\n currentToolDescription: undefined,\n thinking: undefined,\n waiting: undefined,\n channelReply: undefined,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n },\n }\n : runtimeById\n const permissionRequestIdsByAgentId = state.channelPermissionRequestIdsByAgentId ?? {}\n const pendingIds = permissionRequestIdsByAgentId[event.payload.agentId] ?? []\n const nextPermissionRequestsById = { ...state.channelPermissionRequestsById }\n for (const requestId of pendingIds) {\n delete nextPermissionRequestsById[requestId]\n }\n const { [event.payload.agentId]: _removedPendingIds, ...restPendingIds } =\n permissionRequestIdsByAgentId\n\n const resolvedDecisionIdsByAgentId = state.resolvedChannelPermissionDecisionIdsByAgentId ?? {}\n const resolvedIds = resolvedDecisionIdsByAgentId[event.payload.agentId] ?? []\n const nextResolvedDecisionsById = { ...(state.resolvedChannelPermissionDecisionsById ?? {}) }\n for (const requestId of resolvedIds) {\n delete nextResolvedDecisionsById[requestId]\n }\n const { [event.payload.agentId]: _removedResolvedIds, ...restResolvedIds } =\n resolvedDecisionIdsByAgentId\n\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentsById: nextAgentsById,\n agentRuntimeById: nextRuntimeById,\n channelPermissionRequestsById: nextPermissionRequestsById,\n channelPermissionRequestIdsByAgentId: restPendingIds,\n resolvedChannelPermissionDecisionsById: nextResolvedDecisionsById,\n resolvedChannelPermissionDecisionIdsByAgentId: restResolvedIds,\n turnDiffSummariesByAgentId: omitTurnDiffSummariesForAgent(state.turnDiffSummariesByAgentId, event.payload.agentId),\n agentIdBySessionId: removeAgentFromSessionIndex(state.agentIdBySessionId, event.payload.agentId),\n }\n }\n\n case 'agent.status_changed': {\n const agent = state.agentsById[event.payload.agentId] ?? (\n event.payload.role === 'strike' && event.payload.issueId\n ? {\n id: event.payload.agentId,\n issueId: event.payload.issueId,\n status: event.payload.status,\n role: 'strike' as const,\n startedAt: event.timestamp,\n }\n : undefined\n )\n if (!agent) return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n const nextTurnDiffSummariesByAgentId = isTerminalTurnDiffSummaryStatus(event.payload.status)\n ? omitTurnDiffSummariesForAgent(state.turnDiffSummariesByAgentId, event.payload.agentId)\n : state.turnDiffSummariesByAgentId\n const nextAgent: AgentSnapshot = (() => {\n const base: Record<string, unknown> = { ...agent, status: event.payload.status }\n const optionalFields = [\n 'hasLivePane', 'hasLiveTmuxSession', 'stoppedByUser', 'stoppedByPause', 'paused', 'pausedReason', 'pausedAt',\n 'troubled', 'troubledAt', 'consecutiveFailures',\n 'firstFailureInRunAt', 'lastFailureAt', 'lastFailureReason', 'lastFailureNextRetryAt',\n 'kickoffDelivered', 'hostOverride', 'role', 'model', 'workspace', 'sessionId',\n 'lastActivity', 'lastResumeAt', 'stoppedAt', 'branch', 'costSoFar',\n 'phase', 'workType', 'roleRunHead',\n 'flywheelRunId', 'reviewSubRole', 'reviewRunId', 'reviewOutputPath',\n 'reviewSynthesisAgentId', 'reviewDeadlineAt', 'reviewMonitorSignaled', 'reviewRetryAttempt',\n 'inspectSubRole', 'deliveryMethod', 'supervisorEnabled', 'channelsEnabled',\n ] as const\n for (const field of optionalFields) {\n if (field in event.payload) {\n const value = (event.payload as Record<string, unknown>)[field]\n if (value === null || value === undefined) {\n delete base[field]\n } else {\n base[field] = value\n }\n }\n }\n // #4105 — `hasLivePane` and its deprecated alias `hasLiveTmuxSession`\n // carry one fact. A producer (or a stored event) may send either name;\n // the snapshot always carries both, so readers of either agree.\n const payloadPane = event.payload.hasLivePane ?? event.payload.hasLiveTmuxSession\n if ('hasLivePane' in event.payload || 'hasLiveTmuxSession' in event.payload) {\n if (payloadPane === null || payloadPane === undefined) {\n delete base['hasLivePane']\n delete base['hasLiveTmuxSession']\n } else {\n base['hasLivePane'] = payloadPane\n base['hasLiveTmuxSession'] = payloadPane\n }\n }\n // PAN-1520 (fixes #339) — clear stale pending-input fields whenever the\n // agent transitions out of an actively-running state. The enrichment\n // poller stops emitting events for non-running agents, so without this\n // a paused or stopped agent would keep showing INPUT/AskUserQuestion\n // forever from the operator's perspective.\n // PAN-2633 — an idle-alive agent (stopped-shaped status, live tmux pane)\n // is the archetypal awaiting-operator state and must keep its pending-input\n // payload; gate the wipe on the liveness flag carried in the event.\n const sessionAlive = payloadPane === true\n if (event.payload.status !== 'running' && event.payload.status !== 'starting' && !sessionAlive) {\n delete base['hasPendingQuestion']\n delete base['pendingQuestionCount']\n delete base['pendingQuestionPrompt']\n delete base['pendingQuestionReason']\n delete base['pendingInputCount']\n delete base['pendingInputKinds']\n delete base['pendingAskUserQuestion']\n delete base['pendingProposedPlan']\n delete base['turnEndAssessment']\n }\n return base as AgentSnapshot\n })()\n\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentsById: {\n ...state.agentsById,\n [event.payload.agentId]: nextAgent,\n },\n turnDiffSummariesByAgentId: nextTurnDiffSummariesByAgentId,\n agentIdBySessionId: event.payload.sessionId\n ? { ...state.agentIdBySessionId, [event.payload.sessionId]: event.payload.agentId }\n : state.agentIdBySessionId,\n }\n }\n\n case 'agent.heartbeat_dead': {\n const agent = state.agentsById[event.payload.agentId]\n if (!agent) return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n const runtimeById = state.agentRuntimeById ?? {}\n const prevRuntime = runtimeById[event.payload.agentId]\n const nextRuntimeById = prevRuntime\n ? {\n ...runtimeById,\n [event.payload.agentId]: {\n ...prevRuntime,\n activity: 'stopped' as const,\n currentTool: undefined,\n currentToolDescription: undefined,\n thinking: undefined,\n waiting: undefined,\n channelReply: undefined,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n },\n }\n : runtimeById\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentsById: {\n ...state.agentsById,\n [event.payload.agentId]: { ...agent, status: 'error' as const },\n },\n agentRuntimeById: nextRuntimeById,\n }\n }\n\n case 'agent.output_received': {\n const existing = state.agentOutputById[event.payload.agentId] ?? []\n const updated = [...existing, ...event.payload.lines].slice(-MAX_AGENT_OUTPUT_LINES)\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentOutputById: {\n ...state.agentOutputById,\n [event.payload.agentId]: updated,\n },\n }\n }\n\n // PAN-3917 FR-6 — the derived pipeline state of one issue. The server\n // recomputes it from the tracker, the forge, git and the terminal backend\n // and fans it out with `emitOnly`; nothing is stored.\n case 'issue_state.changed':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n derivedIssueStateByIssueId: {\n ...state.derivedIssueStateByIssueId,\n [event.payload.issueState.issueId]: event.payload.issueState,\n },\n }\n\n // PAN-3917 FR-12 — live pane inventory. Also `emitOnly`.\n case 'backend_pane.changed':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n backendPanesById: {\n ...state.backendPanesById,\n [event.payload.pane.id]: event.payload.pane,\n },\n }\n\n case 'backend_pane.removed': {\n const { [event.payload.paneId]: _removed, ...rest } = state.backendPanesById\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n backendPanesById: rest,\n }\n }\n\n // Review lifecycle telemetry. The reviewer roster and its verdict are read\n // from the backend pane inventory and the PR, so these are sequence-only.\n case 'review.reviewer_started':\n case 'review.reviewer_completed':\n case 'review.specialist.timed_out':\n case 'review.coordinator_started':\n case 'review.coordinator.died':\n case 'pipeline.review-started':\n case 'pipeline.review-completed':\n case 'pipeline.test-started':\n case 'pipeline.test-completed':\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n\n case 'merge.ready':\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n\n // PAN-1048 — specialist.* events still flow but no longer feed a separate\n // projection. The same lifecycle is now visible via agent.started /\n // agent.stopped + role-filtered agentsById. Sequence-only update keeps\n // clients in lockstep.\n case 'specialist.started':\n case 'specialist.completed':\n case 'specialist.failed':\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n\n case 'project.ci_suite_observed': {\n const p = event.payload\n const existing = state.ciByProjectKey[p.projectKey]\n const suite = {\n status: p.status,\n conclusion: p.conclusion,\n htmlUrl: p.htmlUrl,\n observedAt: p.observedAt,\n }\n\n let next: ProjectCiSnapshot\n if (!existing) {\n if (p.authoritativeHead !== true) {\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n }\n next = {\n projectKey: p.projectKey, repo: p.repo, branch: p.branch, headSha: p.headSha,\n suites: { [p.suiteId]: suite }, updatedAt: p.observedAt,\n }\n } else if (existing.headSha === p.headSha) {\n const existingSuite = existing.suites[p.suiteId]\n const existingSuiteObservedAt = existingSuite?.observedAt ?? existing.updatedAt\n if (existingSuite && p.observedAt < existingSuiteObservedAt) {\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n }\n next = {\n ...existing,\n suites: { ...existing.suites, [p.suiteId]: suite },\n updatedAt: p.observedAt > existing.updatedAt ? p.observedAt : existing.updatedAt,\n }\n } else if (p.authoritativeHead === true && p.observedAt >= existing.updatedAt) {\n next = {\n projectKey: p.projectKey, repo: p.repo, branch: p.branch, headSha: p.headSha,\n suites: { [p.suiteId]: suite }, updatedAt: p.observedAt,\n }\n } else {\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n }\n\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n ciByProjectKey: { ...state.ciByProjectKey, [p.projectKey]: next },\n }\n }\n\n case 'project.ci_head_observed': {\n const p = event.payload\n const existing = state.ciByProjectKey[p.projectKey]\n if (existing && p.observedAt < existing.updatedAt) {\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n }\n\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n ciByProjectKey: {\n ...state.ciByProjectKey,\n [p.projectKey]: {\n projectKey: p.projectKey,\n repo: p.repo,\n branch: p.branch,\n headSha: p.headSha,\n suites: p.suites,\n updatedAt: p.observedAt,\n },\n },\n }\n }\n\n // PAN-3729: the payload is the complete gate projection, so this is a\n // plain replace — no merge, no ordering guard. The gate has exactly one\n // writer, and it emits after every state transition.\n case 'restart_gate.changed':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n restartGate: {\n status: event.payload.status,\n pending: event.payload.pending,\n // PAN-3731: carries the \"requesters went away without restarting\"\n // notice. Dropping it here would silently starve the banner.\n ...(event.payload.lastOutcome === undefined ? {} : { lastOutcome: event.payload.lastOutcome }),\n },\n }\n\n // PAN-4264: the complete quota snapshot, plain replace — like the restart gate.\n case 'github_quota.changed':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n githubQuota: event.payload,\n }\n\n // PAN-3751: complete projection, plain replace — like the restart gate.\n case 'project.deploy_changed':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n deployByProjectKey: event.payload.deploys,\n }\n\n case 'resources.updated':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n resources: event.payload.resources,\n }\n\n case 'issues.snapshot':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n issuesRaw: event.payload.issues as unknown[],\n }\n\n case 'issues.updated':\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n\n case 'issues.delta':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n issuesRaw: applyIssueDelta(state.issuesRaw, event.payload),\n }\n\n case 'issue.statusChanged': {\n const { issueId, status, canonicalStatus, labels } = event.payload\n const updatedIssues = (state.issuesRaw as Array<Record<string, unknown>>).map(issue => {\n if (issue['identifier'] === issueId || issue['id'] === issueId) {\n const patch: Record<string, unknown> = { ...issue, status, canonicalStatus, state: canonicalStatus }\n if (labels) patch.labels = labels\n return patch\n }\n return issue\n })\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n issuesRaw: updatedIssues,\n }\n }\n\n case 'activity.updated':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n recentActivity: (event.payload.events as unknown[]).slice(0, MAX_ACTIVITY_ENTRIES),\n }\n\n case 'shadow.inference_update':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n shadowInferenceByIssueId: {\n ...state.shadowInferenceByIssueId,\n [event.payload.issueId]: event.payload.content,\n },\n }\n\n case 'planning.started': {\n const sessionName = event.payload.sessionName as string\n const issueId = event.payload.issueId as string\n if (sessionName) {\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentsById: {\n ...state.agentsById,\n [sessionName]: {\n ...state.agentsById[sessionName],\n id: sessionName,\n issueId,\n status: 'running',\n startedAt: event.timestamp,\n runtime: (event.payload.harness as 'claude-code' | 'pi' | 'codex') ?? 'claude-code',\n role: 'plan' as const,\n },\n },\n }\n }\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n }\n case 'workspace.created':\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n\n case 'workspace.wipe_started': {\n const { issueId } = event.payload\n const updatedIssues = (state.issuesRaw as Array<Record<string, unknown>>).map(issue => {\n if (issue['identifier'] === issueId || issue['id'] === issueId) {\n return { ...issue, canonicalStatus: 'wiping', state: 'wiping' }\n }\n return issue\n })\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n issuesRaw: updatedIssues,\n }\n }\n\n case 'workspace.destroyed':\n case 'workspace.deleted': {\n const { issueId } = event.payload\n const removedAgentIds = Object.entries(state.agentsById)\n .filter(([, agent]) => agent.issueId === issueId)\n .map(([agentId]) => agentId)\n const updatedAgents = Object.fromEntries(\n Object.entries(state.agentsById).filter(([, agent]) => agent.issueId !== issueId)\n )\n let nextTurnDiffSummariesByAgentId = state.turnDiffSummariesByAgentId\n let nextAgentIdBySessionId = state.agentIdBySessionId\n for (const agentId of removedAgentIds) {\n nextTurnDiffSummariesByAgentId = omitTurnDiffSummariesForAgent(nextTurnDiffSummariesByAgentId, agentId)\n nextAgentIdBySessionId = removeAgentFromSessionIndex(nextAgentIdBySessionId, agentId)\n }\n const updatedIssues = (state.issuesRaw as Array<Record<string, unknown>>).map(issue => {\n if (issue['identifier'] === issueId || issue['id'] === issueId) {\n return { ...issue, status: 'Todo', canonicalStatus: 'todo', state: 'todo' }\n }\n return issue\n })\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentsById: updatedAgents,\n turnDiffSummariesByAgentId: nextTurnDiffSummariesByAgentId,\n agentIdBySessionId: nextAgentIdBySessionId,\n issuesRaw: updatedIssues,\n }\n }\n\n case 'workspace.aborted': {\n const { issueId, sessionName } = event.payload\n let updatedAgents: typeof state.agentsById\n let nextTurnDiffSummariesByAgentId = state.turnDiffSummariesByAgentId\n let nextAgentIdBySessionId = state.agentIdBySessionId\n if (sessionName) {\n const { [sessionName]: _removed, ...rest } = state.agentsById\n updatedAgents = rest\n nextTurnDiffSummariesByAgentId = omitTurnDiffSummariesForAgent(nextTurnDiffSummariesByAgentId, sessionName)\n nextAgentIdBySessionId = removeAgentFromSessionIndex(nextAgentIdBySessionId, sessionName)\n } else {\n const removedAgentIds = Object.entries(state.agentsById)\n .filter(([, agent]) => agent.issueId === issueId)\n .map(([agentId]) => agentId)\n updatedAgents = Object.fromEntries(\n Object.entries(state.agentsById).filter(([, agent]) => agent.issueId !== issueId)\n )\n for (const agentId of removedAgentIds) {\n nextTurnDiffSummariesByAgentId = omitTurnDiffSummariesForAgent(nextTurnDiffSummariesByAgentId, agentId)\n nextAgentIdBySessionId = removeAgentFromSessionIndex(nextAgentIdBySessionId, agentId)\n }\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentsById: updatedAgents,\n turnDiffSummariesByAgentId: nextTurnDiffSummariesByAgentId,\n agentIdBySessionId: nextAgentIdBySessionId,\n }\n }\n\n case 'planning.failed':\n case 'planning.sync':\n case 'plan.item_status_changed':\n case 'plan.subitem_status_changed':\n case 'plan.items_unblocked':\n case 'operator.intervention':\n case 'substrate.bug_filed':\n case 'cost.event_recorded':\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n\n case 'memory.observation_created': {\n const observation = event.payload.observation\n // A null issueId (main/scratch workspace turn, PRD D-6) falls back to\n // workspaceId as the read-model key until events-workspaceid widens this.\n const observationKey = observation.issueId ?? observation.workspaceId\n const existing = state.observationsByIssueId[observationKey] ?? []\n const index = existing.findIndex(entry => entry.id === observation.id)\n const updated = trimMemoryObservations(index === -1\n ? [...existing, observation]\n : existing.map((entry, entryIndex) => entryIndex === index ? observation : entry))\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n observationsByIssueId: {\n ...state.observationsByIssueId,\n [observationKey]: updated,\n },\n }\n }\n\n case 'memory.status_updated': {\n const { identity, status } = event.payload\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n statusByIssueId: {\n ...state.statusByIssueId,\n [identity.issueId]: status,\n },\n }\n }\n\n case 'memory.rollup_triggered': {\n const trigger: MemoryRollupTriggerSnapshot = {\n projectId: event.payload.projectId,\n workspaceId: event.payload.workspaceId,\n issueId: event.payload.issueId,\n pendingTurns: [],\n pendingCount: event.payload.pendingCount,\n threshold: event.payload.threshold,\n triggeredAt: event.timestamp,\n }\n const existing = state.rollupsByIssueId[event.payload.issueId] ?? []\n const updated = [...existing, trigger].slice(-10)\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n rollupsByIssueId: {\n ...state.rollupsByIssueId,\n [event.payload.issueId]: updated,\n },\n }\n }\n\n case 'memory.reset_marker_created': {\n const { marker } = event.payload\n const key = `${marker.scope}:${marker.scopeId}`\n const existing = state.resetMarkersByScopeId[key] ?? []\n const index = existing.findIndex(entry => entry.id === marker.id)\n const updated = index === -1\n ? [...existing, marker]\n : existing.map((entry, entryIndex) => entryIndex === index ? marker : entry)\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n resetMarkersByScopeId: {\n ...state.resetMarkersByScopeId,\n [key]: updated,\n },\n }\n }\n\n case 'memory.health_changed': {\n const health: MemoryHealthSnapshot = {\n projectId: event.payload.projectId,\n issueId: event.payload.issueId,\n status: event.payload.status,\n reason: event.payload.reason,\n // Omit absent optionals entirely — an explicit `key: undefined` is not a\n // valid JSON value and makes the whole DashboardSnapshot fail the\n // Schema.Json codec used for the `memory` field, breaking the RPC bootstrap.\n ...(event.payload.detail !== undefined ? { detail: event.payload.detail } : {}),\n ...(event.payload.ragDecision !== undefined ? { ragDecision: event.payload.ragDecision } : {}),\n updatedAt: event.timestamp,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n healthByIssueId: {\n ...state.healthByIssueId,\n [event.payload.issueId]: health,\n },\n }\n }\n\n // ─── PAN-800 Agent Runtime Events ──────────────────────────────────────\n case 'agent.hook_fired':\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n\n case 'agent.activity_changed': {\n const { agentId, activity, currentTool, toolDescription } = event.payload\n const prev = state.agentRuntimeById[agentId]\n ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence)\n const next: AgentRuntimeSnapshot = {\n ...prev,\n activity,\n currentTool: activity === 'working' ? currentTool : undefined,\n currentToolDescription: activity === 'working' ? toolDescription : undefined,\n // Clear thinking/waiting on transitions away from those activities.\n thinking: activity === 'thinking' ? prev.thinking : undefined,\n waiting: activity === 'waiting' ? prev.waiting : undefined,\n channelReply: activity === 'working' ? undefined : prev.channelReply,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence),\n }\n }\n\n case 'agent.thinking_started': {\n const { agentId, lastToolAt } = event.payload\n const prev = state.agentRuntimeById[agentId]\n ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence)\n const next: AgentRuntimeSnapshot = {\n ...prev,\n activity: 'thinking',\n currentTool: undefined,\n currentToolDescription: undefined,\n thinking: { since: event.timestamp, lastToolAt },\n waiting: undefined,\n channelReply: undefined,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence),\n }\n }\n\n case 'agent.thinking_stopped': {\n const { agentId } = event.payload\n const prev = state.agentRuntimeById[agentId]\n if (!prev) return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n // Clear the thinking state but leave activity for the follow-up event\n // (agent.activity_changed / waiting_started / stopped) to set.\n const next: AgentRuntimeSnapshot = {\n ...prev,\n thinking: undefined,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence),\n }\n }\n\n case 'agent.waiting_started': {\n const { agentId, reason, message } = event.payload\n const prev = state.agentRuntimeById[agentId]\n ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence)\n const next: AgentRuntimeSnapshot = {\n ...prev,\n activity: 'waiting',\n currentTool: undefined,\n currentToolDescription: undefined,\n thinking: undefined,\n waiting: {\n reason,\n startedAt: event.timestamp,\n message,\n },\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence),\n }\n }\n\n case 'agent.waiting_cleared': {\n const { agentId } = event.payload\n const prev = state.agentRuntimeById[agentId]\n if (!prev) return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n const next: AgentRuntimeSnapshot = {\n ...prev,\n waiting: undefined,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence),\n }\n }\n\n case 'agent.permission_requested': {\n const request = event.payload\n const permissionRequestIdsByAgentId = state.channelPermissionRequestIdsByAgentId ?? {}\n const resolvedDecisionsById = state.resolvedChannelPermissionDecisionsById ?? {}\n const resolvedDecisionIdsByAgentId = state.resolvedChannelPermissionDecisionIdsByAgentId ?? {}\n const nextPendingIds = permissionRequestIdsByAgentId[request.agentId] ?? []\n const resolvedDecision = resolvedDecisionsById[request.requestId]\n const nextResolvedDecisionsById = { ...resolvedDecisionsById }\n const nextResolvedIdsByAgentId = { ...resolvedDecisionIdsByAgentId }\n if (resolvedDecision) {\n delete nextResolvedDecisionsById[request.requestId]\n const prevResolvedIds = nextResolvedIdsByAgentId[resolvedDecision.agentId] ?? []\n const filteredResolvedIds = prevResolvedIds.filter((id) => id !== request.requestId)\n if (filteredResolvedIds.length > 0) {\n nextResolvedIdsByAgentId[resolvedDecision.agentId] = filteredResolvedIds\n } else {\n delete nextResolvedIdsByAgentId[resolvedDecision.agentId]\n }\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n channelPermissionRequestsById: {\n ...state.channelPermissionRequestsById,\n [request.requestId]: request,\n },\n channelPermissionRequestIdsByAgentId: {\n ...permissionRequestIdsByAgentId,\n [request.agentId]: nextPendingIds.includes(request.requestId)\n ? nextPendingIds\n : [...nextPendingIds, request.requestId],\n },\n resolvedChannelPermissionDecisionsById: nextResolvedDecisionsById,\n resolvedChannelPermissionDecisionIdsByAgentId: nextResolvedIdsByAgentId,\n }\n }\n\n case 'agent.permission_resolved': {\n const { [event.payload.requestId]: _removed, ...rest } = state.channelPermissionRequestsById\n const nextPendingIdsByAgentId = { ...(state.channelPermissionRequestIdsByAgentId ?? {}) }\n const prevPendingIds = nextPendingIdsByAgentId[event.payload.agentId] ?? []\n const filteredPendingIds = prevPendingIds.filter((id) => id !== event.payload.requestId)\n if (filteredPendingIds.length > 0) {\n nextPendingIdsByAgentId[event.payload.agentId] = filteredPendingIds\n } else {\n delete nextPendingIdsByAgentId[event.payload.agentId]\n }\n\n const resolvedDecisionIdsByAgentId = state.resolvedChannelPermissionDecisionIdsByAgentId ?? {}\n const nextResolvedIds = resolvedDecisionIdsByAgentId[event.payload.agentId] ?? []\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n channelPermissionRequestsById: rest,\n channelPermissionRequestIdsByAgentId: nextPendingIdsByAgentId,\n resolvedChannelPermissionDecisionsById: {\n ...(state.resolvedChannelPermissionDecisionsById ?? {}),\n [event.payload.requestId]: {\n requestId: event.payload.requestId,\n agentId: event.payload.agentId,\n issueId: event.payload.issueId,\n behavior: event.payload.behavior,\n },\n },\n resolvedChannelPermissionDecisionIdsByAgentId: {\n ...resolvedDecisionIdsByAgentId,\n [event.payload.agentId]: nextResolvedIds.includes(event.payload.requestId)\n ? nextResolvedIds\n : [...nextResolvedIds, event.payload.requestId],\n },\n }\n }\n\n case 'agent.message_received': {\n const { agentId, direction } = event.payload\n const prev = state.agentRuntimeById[agentId]\n ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence)\n const next: AgentRuntimeSnapshot = {\n ...prev,\n lastMessageAt: event.timestamp,\n channelReply: direction === 'to_agent' ? undefined : prev.channelReply,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence),\n }\n }\n\n case 'agent.channel_reply': {\n const { agentId, reply } = event.payload\n const prev = state.agentRuntimeById[agentId]\n ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence)\n const next: AgentRuntimeSnapshot = {\n ...prev,\n channelReply: {\n ...reply,\n reportedAt: event.timestamp,\n },\n resolution:\n reply.kind === 'done'\n ? 'done'\n : reply.kind === 'needs_input'\n ? 'needs_input'\n : prev.resolution,\n resolutionUpdatedAt:\n reply.kind === 'done' || reply.kind === 'needs_input'\n ? event.timestamp\n : prev.resolutionUpdatedAt,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence),\n }\n }\n\n case 'agent.model_set': {\n const { agentId, model, claudeSessionId, sessionModel, sessionHarness } = event.payload\n const prev = state.agentRuntimeById[agentId]\n ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence)\n const nextSessionId = claudeSessionId === null\n ? undefined\n : claudeSessionId ?? prev.claudeSessionId\n const next: AgentRuntimeSnapshot = {\n ...prev,\n model,\n claudeSessionId: nextSessionId,\n sessionModel: sessionModel ?? prev.sessionModel,\n sessionHarness: sessionHarness ?? prev.sessionHarness,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n let nextAgentIdBySessionId = state.agentIdBySessionId\n if (claudeSessionId !== undefined && nextSessionId !== prev.claudeSessionId) {\n if (prev.claudeSessionId && state.agentIdBySessionId[prev.claudeSessionId] === agentId) {\n const { [prev.claudeSessionId]: _removed, ...rest } = nextAgentIdBySessionId\n nextAgentIdBySessionId = rest\n }\n if (nextSessionId) {\n nextAgentIdBySessionId = { ...nextAgentIdBySessionId, [nextSessionId]: agentId }\n }\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence),\n agentIdBySessionId: nextAgentIdBySessionId,\n }\n }\n\n case 'agent.current_issue_set': {\n const { agentId, currentIssue } = event.payload\n const prev = state.agentRuntimeById[agentId]\n ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence)\n const next: AgentRuntimeSnapshot = {\n ...prev,\n currentIssue,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence),\n }\n }\n\n case 'agent.context_saturation_changed': {\n const { agentId, contextSaturatedAt } = event.payload\n const prev = state.agentRuntimeById[agentId]\n ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence)\n const next: AgentRuntimeSnapshot = {\n ...prev,\n contextSaturatedAt,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence),\n }\n }\n\n case 'agent.resolution_changed': {\n const { agentId, resolution, resolutionCount } = event.payload\n const prev = state.agentRuntimeById[agentId]\n ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence)\n const next: AgentRuntimeSnapshot = {\n ...prev,\n resolution,\n resolutionCount,\n resolutionUpdatedAt: event.timestamp,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence),\n }\n }\n\n case 'agent.state_restored': {\n const { agentId, snapshot } = event.payload\n // Seed directly from the restored snapshot but use the new event's sequence\n // so downstream consumers key off a monotonic value.\n const next: AgentRuntimeSnapshot = {\n ...snapshot,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence),\n }\n }\n\n case 'activity.entry': {\n const entry = event.payload as Record<string, unknown>;\n const previousEntries = state.recentActivity as Array<Record<string, unknown>>;\n const previous = previousEntries.find(candidate => candidate.id === entry.id);\n const newEntry = { ...previous, id: entry.id, timestamp: event.timestamp, ...entry };\n const updated = [\n newEntry,\n ...previousEntries.filter(candidate => candidate.id !== entry.id),\n ].slice(0, MAX_ACTIVITY_ENTRIES);\n return { ...state, sequence: Math.max(state.sequence, event.sequence), recentActivity: updated };\n }\n\n case 'activity.detailed': {\n const entry = event.payload as Record<string, unknown>;\n const newEntry = { id: entry.id, timestamp: event.timestamp, ...entry };\n const updated = [newEntry, ...(state.detailedActivity as Array<Record<string, unknown>>)].slice(0, MAX_DETAILED_ENTRIES);\n return { ...state, sequence: Math.max(state.sequence, event.sequence), detailedActivity: updated };\n }\n\n case 'activity.tts': {\n const entry = event.payload as Record<string, unknown>;\n const newEntry = { id: entry.id, timestamp: event.timestamp, ...entry };\n const updated = [newEntry, ...(state.ttsActivity as Array<Record<string, unknown>>)].slice(0, MAX_TTS_ENTRIES);\n return { ...state, sequence: Math.max(state.sequence, event.sequence), ttsActivity: updated };\n }\n\n case 'dashboard.lifecycle_started': {\n const { reason, issueId, trigger } = event.payload as { reason: string; issueId: string | null; trigger: string };\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n dashboardLifecycle: {\n active: true,\n reason,\n issueId,\n trigger,\n startedAt: event.timestamp,\n completedAt: null,\n failedAt: null,\n error: null,\n },\n };\n }\n\n case 'dashboard.lifecycle_completed': {\n const { reason, issueId } = event.payload as { reason: string; issueId: string | null; durationMs: number };\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n dashboardLifecycle: {\n ...state.dashboardLifecycle,\n active: false,\n reason: reason ?? state.dashboardLifecycle.reason,\n issueId: issueId ?? state.dashboardLifecycle.issueId,\n completedAt: event.timestamp,\n },\n };\n }\n\n case 'dashboard.lifecycle_failed': {\n const { reason, issueId, error } = event.payload as { reason: string; issueId: string | null; error: string };\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n dashboardLifecycle: {\n ...state.dashboardLifecycle,\n active: false,\n reason: reason ?? state.dashboardLifecycle.reason,\n issueId: issueId ?? state.dashboardLifecycle.issueId,\n failedAt: event.timestamp,\n error,\n },\n };\n }\n\n case 'agent.turn_diff_completed': {\n const p = event.payload as {\n agentId: string\n turnId: string\n completedAt: string\n files: Array<{ path: string; kind?: string; additions?: number; deletions?: number }>\n checkpointRef?: string\n assistantMessageId?: string\n checkpointTurnCount?: number\n }\n const existing = state.turnDiffSummariesByAgentId[p.agentId] ?? []\n const summary: TurnDiffSummary = {\n turnId: p.turnId,\n completedAt: p.completedAt,\n files: p.files,\n checkpointRef: p.checkpointRef,\n assistantMessageId: p.assistantMessageId ?? undefined,\n checkpointTurnCount: p.checkpointTurnCount,\n }\n // Deduplicate by turnId — replace if exists, append otherwise\n const idx = existing.findIndex(s => s.turnId === p.turnId)\n const updated = trimTurnDiffSummaries(\n idx >= 0\n ? existing.map((s, i) => i === idx ? summary : s)\n : [...existing, summary]\n )\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n turnDiffSummariesByAgentId: {\n ...state.turnDiffSummariesByAgentId,\n [p.agentId]: updated,\n },\n }\n }\n\n case 'conversation.compacting_changed': {\n const { conversationName, compacting } = event.payload\n if (!compacting) {\n const { [conversationName]: _removed, ...rest } = state.conversationsCompactingByName\n return { ...state, conversationsCompactingByName: rest }\n }\n return {\n ...state,\n conversationsCompactingByName: { ...state.conversationsCompactingByName, [conversationName]: true },\n }\n }\n\n case 'conversation.created': {\n return { ...state, conversationsListRevision: state.conversationsListRevision + 1 }\n }\n\n case 'conversation.moved': {\n return { ...state, conversationsListRevision: state.conversationsListRevision + 1 }\n }\n\n case 'conversation.title_changed': {\n return { ...state, conversationsListRevision: state.conversationsListRevision + 1 }\n }\n\n case 'conversation.pull_requests_changed': {\n return { ...state, conversationsListRevision: state.conversationsListRevision + 1 }\n }\n\n case 'conversation.permission_changed': {\n const { conversationName, waiting } = event.payload\n if (!waiting) {\n const { [conversationName]: _removed, ...rest } = state.conversationsAwaitingPermissionByName\n return { ...state, conversationsAwaitingPermissionByName: rest }\n }\n return {\n ...state,\n conversationsAwaitingPermissionByName: { ...state.conversationsAwaitingPermissionByName, [conversationName]: true },\n }\n }\n\n // ─── Scan events (PAN-457) ───────────────────────────────────────────────\n\n case 'scan.started': {\n const { mode, dirs } = event.payload\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n scanProgress: {\n active: true,\n mode,\n dirs,\n dirsProcessed: 0,\n dirsTotal: 0,\n sessionsFound: 0,\n elapsedMs: 0,\n inserted: 0,\n updated: 0,\n skipped: 0,\n errors: 0,\n durationMs: 0,\n },\n }\n }\n\n case 'scan.progress': {\n if (!state.scanProgress) return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n const { dirsProcessed, dirsTotal, sessionsFound, elapsedMs } = event.payload\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n scanProgress: {\n ...state.scanProgress,\n dirsProcessed,\n dirsTotal,\n sessionsFound,\n elapsedMs,\n },\n }\n }\n\n case 'scan.complete': {\n if (!state.scanProgress) return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n const { inserted, updated, skipped, errors, durationMs } = event.payload\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n scanProgress: {\n ...state.scanProgress,\n active: false,\n inserted,\n updated,\n skipped,\n errors,\n durationMs,\n },\n }\n }\n\n // ─── Enrich events (PAN-457) ─────────────────────────────────────────────\n\n case 'enrich.progress': {\n const { sessionId, level, model, cost, success, error } = event.payload\n const prev = state.enrichStats ?? { processed: 0, totalCost: 0, failures: 0, durationMs: 0 }\n const progress = { sessionId, level, model, cost, success, error, timestamp: event.timestamp }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n enrichStats: {\n processed: prev.processed + 1,\n totalCost: prev.totalCost + (success ? cost : 0),\n failures: prev.failures + (success ? 0 : 1),\n durationMs: 0,\n },\n enrichProgressBySessionId: upsertBoundedSessionProgress(state.enrichProgressBySessionId, progress),\n }\n }\n\n case 'enrich.complete': {\n const { processed, totalCost, failures, durationMs } = event.payload\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n enrichStats: { processed, totalCost, failures, durationMs },\n enrichProgressBySessionId: {},\n }\n }\n\n case 'embed.progress': {\n const { sessionId, model, success, error } = event.payload\n const progress = { sessionId, model, success, error, timestamp: event.timestamp }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n embedProgressBySessionId: upsertBoundedSessionProgress(state.embedProgressBySessionId, progress),\n }\n }\n\n default: {\n void (event as never)\n return state\n }\n }\n}\n\n// ─── applyEvents — batch apply ───────────────────────────────────────────────\n\nexport function applyEvents(state: ReadModelState, events: DomainEvent[]): ReadModelState {\n return events.reduce(applyEvent, state)\n}\n","import type { ProjectCiSnapshot } from './types'\n\nexport type ProjectCiState = 'queued' | 'in_progress' | 'success' | 'failure'\n\nexport interface DerivedProjectCi {\n state: ProjectCiState\n completed: number\n total: number\n /** Where the chip navigates. Always an absolute github.com URL. */\n href: string\n}\n\n/** Conclusions that mean the suite failed. Mirrors FAILING_CHECK_CONCLUSIONS\n * in src/lib/webhook-handlers.ts:196. */\nconst FAILED = new Set(['failure', 'timed_out', 'cancelled', 'action_required', 'startup_failure', 'stale'])\n\nexport function deriveProjectCi(record: ProjectCiSnapshot): DerivedProjectCi {\n const suites = Object.values(record.suites)\n const total = suites.length\n const completed = suites.filter((s) => s.status === 'completed').length\n\n const state: ProjectCiState =\n suites.some((s) => s.conclusion != null && FAILED.has(s.conclusion.toLowerCase())) ? 'failure'\n : suites.some((s) => s.status === 'in_progress') ? 'in_progress'\n : completed < total || total === 0 ? 'queued'\n : 'success'\n\n const only = total === 1 ? suites[0] : undefined\n const href = only?.htmlUrl\n ?? `https://github.com/${record.repo}/commit/${record.headSha}/checks`\n\n return { state, completed, total, href }\n}\n","import { Effect, Schema } from \"effect\"\nimport type { EffortLevel } from \"./effort\"\nimport { EffortLevelSchema } from \"./effort\"\n\nexport const FlywheelRunId = Schema.String.check(Schema.isPattern(/^RUN-\\d+$/))\nexport type FlywheelRunId = typeof FlywheelRunId.Type\n\nexport const FlywheelHttpUrl = Schema.String.check(Schema.isPattern(/^https?:\\/\\/\\S+$/i))\nexport type FlywheelHttpUrl = typeof FlywheelHttpUrl.Type\n\nexport const FlywheelHarness = Schema.Literals([\"claude-code\", \"pi\", \"ohmypi\", \"codex\", \"acp\", \"kimi-code\", \"opencode\", \"muse\", \"prime-agent\"])\nexport interface FlywheelOrchestrator {\n harness: typeof FlywheelHarness.Type\n model: string\n effort: EffortLevel\n ctxPercent: number\n}\n\nexport const FlywheelEffort = EffortLevelSchema\nexport const FlywheelOrchestrator = Schema.Struct({\n harness: FlywheelHarness,\n model: Schema.String,\n effort: FlywheelEffort,\n ctxPercent: Schema.Number,\n})\n\n/**\n * Which projects the Flywheel orchestrator inventories. PAN-1696: this is the\n * ORCHESTRATOR's scope, not the merge/UAT trains' — those assemble per project\n * independent of it. Mirrors FlywheelScope in src/lib/config-yaml/schema.ts.\n */\nexport type FlywheelScopeValue = 'pan-only' | 'all-tracked-projects'\n\nexport const FlywheelScope = Schema.Literals(['pan-only', 'all-tracked-projects'])\n\nexport interface FlywheelHeadline {\n bugsFixed: number\n swarmItemsMerged: number\n swarmItemsTotal: number\n prsMerged: number\n awaitingUat: number\n}\n\nexport const FlywheelHeadline = Schema.Struct({\n bugsFixed: Schema.Number,\n swarmItemsMerged: Schema.Number,\n swarmItemsTotal: Schema.Number,\n prsMerged: Schema.Number,\n awaitingUat: Schema.Number,\n})\n\n/**\n * Pipeline verbs — display state only. They no longer gate the merge queue.\n *\n * History worth keeping (PAN-1736 / PAN-1759): the merge queue used to be\n * derived by filtering these verbs, treating only \"shipping\" or \"merging\" as\n * \"at the merge gate\". Any other verb on an issue that was ready_for_merge in\n * the review DB silently dropped it from the queue and from UAT batch\n * assembly — RUN-18 shipped an empty queue with five ready issues exactly that\n * way — and the queue existed only while a run was emitting a pipeline at all.\n *\n * PAN-1696 removed that coupling. The ready set is now sourced from the\n * review-status records per project (`listEligibleCandidatesByProject` +\n * `computeMergeQueueFromCandidates` in src/lib/flywheel-merge-order.ts), which\n * needs no flywheel run and cannot be affected by which verb an orchestrator\n * chose to report. Adding a verb here therefore has no merge-queue consequence;\n * it only changes what the dashboard displays.\n */\nexport const FlywheelPipelineVerb = Schema.Literals([\n \"planning\",\n \"working\",\n \"reviewing\",\n \"testing\",\n \"shipping\",\n \"merging\",\n \"blocked\",\n \"parked\",\n])\n\nexport const FlywheelPipelineStatus = Schema.Literals([\n \"queued\",\n \"running\",\n \"blocked\",\n \"passed\",\n \"failed\",\n \"merged\",\n \"parked\",\n])\n\nexport interface FlywheelPipelineItem {\n issueId: string\n title: string\n verb: typeof FlywheelPipelineVerb.Type\n status: typeof FlywheelPipelineStatus.Type\n progressPercent?: number | undefined\n agentId?: string | undefined\n pr?: number | undefined\n mergeOrder?: number | undefined\n conflictsWith?: readonly string[] | undefined\n}\n\nexport const FlywheelPipelineItem = Schema.Struct({\n issueId: Schema.String,\n title: Schema.String,\n verb: FlywheelPipelineVerb,\n status: FlywheelPipelineStatus,\n progressPercent: Schema.optional(Schema.Number),\n agentId: Schema.optional(Schema.String),\n pr: Schema.optional(Schema.Number),\n mergeOrder: Schema.optional(Schema.Number),\n conflictsWith: Schema.optional(Schema.Array(Schema.String)),\n})\n\nexport const FlywheelSubstrateBugStatus = Schema.Literals([\"filed\", \"fixed\", \"workaround\"])\n\nexport interface FlywheelSubstrateBug {\n issueId: string\n title: string\n status: typeof FlywheelSubstrateBugStatus.Type\n commitSha?: string | undefined\n url?: FlywheelHttpUrl | undefined\n}\n\nexport const FlywheelSubstrateBug = Schema.Struct({\n issueId: Schema.String,\n title: Schema.String,\n status: FlywheelSubstrateBugStatus,\n commitSha: Schema.optional(Schema.String),\n url: Schema.optional(FlywheelHttpUrl),\n})\n\nexport const FlywheelAgentStatus = Schema.Literals([\n \"starting\",\n \"running\",\n \"waiting\",\n \"idle\",\n \"stopped\",\n \"error\",\n])\n\nexport interface FlywheelAgent {\n id: string\n label: string\n status: typeof FlywheelAgentStatus.Type\n issueId?: string | undefined\n role?: string | undefined\n model?: string | undefined\n ctxPercent?: number | undefined\n currentAction?: string | undefined\n}\n\nexport const FlywheelAgent = Schema.Struct({\n id: Schema.String,\n label: Schema.String,\n status: FlywheelAgentStatus,\n issueId: Schema.optional(Schema.String),\n role: Schema.optional(Schema.String),\n model: Schema.optional(Schema.String),\n ctxPercent: Schema.optional(Schema.Number),\n currentAction: Schema.optional(Schema.String),\n})\n\nexport interface FlywheelParkedItem {\n issueId: string\n title: string\n reason: string\n parkedAt?: string | undefined\n}\n\nexport const FlywheelParkedItem = Schema.Struct({\n issueId: Schema.String,\n title: Schema.String,\n reason: Schema.String,\n parkedAt: Schema.optional(Schema.String),\n})\n\nexport const FlywheelSuggestionAction = Schema.Literals([\n \"start\",\n \"resume\",\n \"plan\",\n \"review\",\n \"merge\",\n \"unblock\",\n \"park\",\n \"investigate\",\n \"wait\",\n])\nexport type FlywheelSuggestionAction = typeof FlywheelSuggestionAction.Type\n\nexport const FlywheelSuggestionPriority = Schema.Literals([\"urgent\", \"high\", \"medium\", \"low\"])\nexport type FlywheelSuggestionPriority = typeof FlywheelSuggestionPriority.Type\n\nexport interface FlywheelSuggestion {\n action: FlywheelSuggestionAction\n issueId?: string | undefined\n rationale: string\n priority: FlywheelSuggestionPriority\n filedBy?: \"agent\" | \"operator\" | undefined\n weight?: number | undefined\n weightReason?: string | undefined\n}\n\nexport const FlywheelSuggestion = Schema.Struct({\n action: FlywheelSuggestionAction,\n issueId: Schema.optional(Schema.String),\n rationale: Schema.String,\n priority: FlywheelSuggestionPriority,\n filedBy: Schema.optional(Schema.Literals([\"agent\", \"operator\"])),\n weight: Schema.optional(Schema.Number),\n weightReason: Schema.optional(Schema.String),\n})\n\nexport interface FlywheelSystemStatus {\n mainHead: string\n ramUsedMb: number\n ramTotalMb: number\n swapUsedMb: number\n swapTotalMb: number\n agentsActive: number\n agentsCap: number\n}\n\nexport const FlywheelSystemStatus = Schema.Struct({\n mainHead: Schema.String,\n ramUsedMb: Schema.Number,\n ramTotalMb: Schema.Number,\n swapUsedMb: Schema.Number,\n swapTotalMb: Schema.Number,\n agentsActive: Schema.Number,\n agentsCap: Schema.Number,\n})\n\nexport interface FlywheelOrders {\n bookId: string\n bookName: string\n landed: number\n total: number\n laneAInFlight: ReadonlyArray<string>\n laneBInFlight?: string | undefined\n drained: boolean\n}\n\nexport const FlywheelOrders = Schema.Struct({\n bookId: Schema.String,\n bookName: Schema.String,\n landed: Schema.Number,\n total: Schema.Number,\n laneAInFlight: Schema.Array(Schema.String),\n laneBInFlight: Schema.optional(Schema.String),\n drained: Schema.Boolean,\n})\n\nexport interface FlywheelStatus {\n runId: FlywheelRunId\n startedAt: string\n elapsedMs: number\n orchestrator: FlywheelOrchestrator\n headline: FlywheelHeadline\n activePipeline: ReadonlyArray<FlywheelPipelineItem>\n substrateBugs: ReadonlyArray<FlywheelSubstrateBug>\n agents: ReadonlyArray<FlywheelAgent>\n parked: ReadonlyArray<FlywheelParkedItem>\n suggestions: ReadonlyArray<FlywheelSuggestion>\n system: FlywheelSystemStatus\n openQuestions: ReadonlyArray<string>\n orders?: FlywheelOrders | undefined\n /**\n * PAN-1696: the orchestrator scope this run was actually STARTED or RESUMED\n * with, stamped server-side from the run's launch metadata. It is deliberately\n * not the live settings value: scope is baked into the run prompt at spawn, so\n * a settings change does not reach a running orchestrator until the next start\n * or resume. Optional because runs recorded before PAN-1696 have none.\n */\n scope?: FlywheelScopeValue | undefined\n ticks: number\n lastTickAt: string\n}\n\nexport const FlywheelStatus = Schema.Struct({\n runId: FlywheelRunId,\n startedAt: Schema.String,\n elapsedMs: Schema.Number,\n orchestrator: FlywheelOrchestrator,\n headline: FlywheelHeadline,\n activePipeline: Schema.Array(FlywheelPipelineItem),\n substrateBugs: Schema.Array(FlywheelSubstrateBug),\n agents: Schema.Array(FlywheelAgent),\n parked: Schema.Array(FlywheelParkedItem),\n suggestions: Schema.Array(FlywheelSuggestion).pipe(\n Schema.withDecodingDefaultKey(Effect.succeed([])),\n ),\n system: FlywheelSystemStatus,\n openQuestions: Schema.Array(Schema.String),\n orders: Schema.optional(FlywheelOrders),\n scope: Schema.optional(FlywheelScope),\n ticks: Schema.Number,\n lastTickAt: Schema.String,\n})\n","// Flywheel substrate stats (PAN-3964 FR-4, D2).\n//\n// Computed on read from the tracker (issues labelled `substrate-improvement`)\n// and the forge (merged PRs in the window). Nothing is stored. Only criteria\n// c1 (discovery rate) and c2 (P0 count) exist: the v1 c3–c7 criteria read the\n// run-record telemetry that PAN-3917 deleted, so they are non-goals.\n\nimport { Schema } from \"effect\"\n\nexport const FlywheelStatsCriterionStatus = Schema.Literals([\n \"green\",\n \"yellow\",\n \"red\",\n \"insufficient_data\",\n])\nexport type FlywheelStatsCriterionStatus = typeof FlywheelStatsCriterionStatus.Type\n\nexport const FlywheelStatsTrend = Schema.Literals([\"up\", \"down\", \"flat\"])\nexport type FlywheelStatsTrend = typeof FlywheelStatsTrend.Type\n\nexport const FlywheelSubstrateSeverity = Schema.Literals([\"P0\", \"P1\", \"P2\", \"unknown\"])\nexport type FlywheelSubstrateSeverity = typeof FlywheelSubstrateSeverity.Type\n\nexport const FlywheelStatsWindow = Schema.Struct({\n days: Schema.Number,\n since: Schema.String,\n until: Schema.String,\n})\nexport type FlywheelStatsWindow = typeof FlywheelStatsWindow.Type\n\n/** c1: substrate bugs filed per merged PR in the window. */\nexport const FlywheelBugRateCriterion = Schema.Struct({\n /** `null` when no PR merged in the window (the rate is undefined). */\n value: Schema.NullOr(Schema.Number),\n count: Schema.Number,\n denominator: Schema.Number,\n status: FlywheelStatsCriterionStatus,\n trend: FlywheelStatsTrend,\n dataSufficient: Schema.Boolean,\n})\nexport type FlywheelBugRateCriterion = typeof FlywheelBugRateCriterion.Type\n\n/** c2: P0 substrate bugs filed in the window. */\nexport const FlywheelP0Criterion = Schema.Struct({\n value: Schema.Number,\n status: FlywheelStatsCriterionStatus,\n trend: FlywheelStatsTrend,\n dataSufficient: Schema.Boolean,\n})\nexport type FlywheelP0Criterion = typeof FlywheelP0Criterion.Type\n\nexport const FlywheelSubstrateBugRow = Schema.Struct({\n number: Schema.Number,\n title: Schema.String,\n createdAt: Schema.String,\n closedAt: Schema.NullOr(Schema.String),\n severity: FlywheelSubstrateSeverity,\n})\nexport type FlywheelSubstrateBugRow = typeof FlywheelSubstrateBugRow.Type\n\nexport const FlywheelStats = Schema.Struct({\n window: FlywheelStatsWindow,\n generatedAt: Schema.String,\n criteria: Schema.Struct({\n c1_bugRate: FlywheelBugRateCriterion,\n c2_p0Bugs: FlywheelP0Criterion,\n }),\n bugs: Schema.Array(FlywheelSubstrateBugRow),\n})\nexport type FlywheelStats = typeof FlywheelStats.Type\n\nexport const decodeFlywheelStats = Schema.decodeUnknownSync(FlywheelStats)\nexport const encodeFlywheelStats = Schema.encodeSync(FlywheelStats)\n","// Derived flywheel status (PAN-3964 FR-1, FR-2).\n//\n// The flywheel is a conversation running the `pan-flywheel` loop skill. It has\n// no run record: every field here is computed on read from the flywheel\n// conversation's row and transcript, the pipeline journals of the project's\n// feature workspaces, the control settings, and the running order book. The\n// derivation lives in `src/lib/flywheel/derive-status.ts`; `pan flywheel\n// status`, `GET /api/flywheel/status`, and the Flywheel page all consume it.\n\nimport { Schema } from \"effect\"\n\nimport { DerivedPrState, IssueAttention, IssueState } from \"./derived-issue-state\"\n\n/** The loop's phases, as the skill reports them in its tick marker. */\nexport const TickMarkerPhase = Schema.Literals([\n \"orient\",\n \"pick\",\n \"launch\",\n \"watch\",\n \"park\",\n \"idle\",\n \"stopping\",\n])\nexport type TickMarkerPhase = typeof TickMarkerPhase.Type\n\n/**\n * One parsed tick marker line:\n * `flywheel-tick: tick=<n> pick=<ID|none> phase=<phase> in-flight=<ID,…|none> needs-you=<text|none>`.\n */\nexport const TickMarker = Schema.Struct({\n tick: Schema.Number,\n pick: Schema.NullOr(Schema.String),\n phase: TickMarkerPhase,\n inFlight: Schema.Array(Schema.String),\n needsYou: Schema.NullOr(Schema.String),\n})\nexport type TickMarker = typeof TickMarker.Type\n\n/** `running` = row + live session; `paused` = row, no live session; `idle` = no row. */\nexport const FlywheelRunState = Schema.Literals([\"running\", \"paused\", \"idle\"])\nexport type FlywheelRunState = typeof FlywheelRunState.Type\n\n/** Age of the last tick: ≤ 60 s live, ≤ 20 min breathing, older stalled. */\nexport const FlywheelFreshness = Schema.Literals([\"live\", \"breathing\", \"stalled\"])\nexport type FlywheelFreshness = typeof FlywheelFreshness.Type\n\nexport const FlywheelConversationSummary = Schema.Struct({\n name: Schema.String,\n id: Schema.Number,\n title: Schema.NullOr(Schema.String),\n model: Schema.NullOr(Schema.String),\n harness: Schema.NullOr(Schema.String),\n cwd: Schema.String,\n /** When the conversation row was created — the page's elapsed run time. */\n createdAt: Schema.String,\n sessionAlive: Schema.Boolean,\n})\nexport type FlywheelConversationSummary = typeof FlywheelConversationSummary.Type\n\nexport const FlywheelLastTick = Schema.Struct({\n tick: Schema.Number,\n pick: Schema.NullOr(Schema.String),\n phase: TickMarkerPhase,\n inFlight: Schema.Array(Schema.String),\n needsYou: Schema.NullOr(Schema.String),\n /** The assistant message's `createdAt`. */\n at: Schema.String,\n})\nexport type FlywheelLastTick = typeof FlywheelLastTick.Type\n\nexport const FlywheelPolicies = Schema.Struct({\n auto_pickup_backlog: Schema.Boolean,\n require_uat_before_merge: Schema.Boolean,\n merge_train_enabled: Schema.Boolean,\n})\nexport type FlywheelPolicies = typeof FlywheelPolicies.Type\n\nexport const FlywheelJournalSummary = Schema.Struct({\n at: Schema.String,\n type: Schema.String,\n source: Schema.optional(Schema.String),\n})\nexport type FlywheelJournalSummary = typeof FlywheelJournalSummary.Type\n\n/** One live agent pane in the flywheel's project, as the backend inventory reports it. */\nexport const FlywheelAgentSummary = Schema.Struct({\n issueId: Schema.String,\n role: Schema.String,\n harness: Schema.String,\n model: Schema.String,\n state: Schema.String,\n agentId: Schema.optional(Schema.String),\n})\nexport type FlywheelAgentSummary = typeof FlywheelAgentSummary.Type\n\nexport const FlywheelInFlightRow = Schema.Struct({\n issueId: Schema.String,\n /** The tracker's title, or `null` when no tracker answered for this issue. */\n title: Schema.NullOr(Schema.String),\n state: IssueState,\n attention: Schema.optional(IssueAttention),\n pr: Schema.optional(DerivedPrState),\n /** Set when no configured tracker answered: the state is a guess, not a fact. */\n trackerUnknown: Schema.optional(Schema.Literal(true)),\n /** Live agent panes on this issue. `working` with 0 means nobody is driving it. */\n liveAgents: Schema.Number,\n /** The loop named this id in its newest tick marker's in-flight list. */\n inTick: Schema.Boolean,\n lastJournal: Schema.NullOr(FlywheelJournalSummary),\n})\nexport type FlywheelInFlightRow = typeof FlywheelInFlightRow.Type\n\nexport const FlywheelOrderBookSummary = Schema.Struct({\n id: Schema.String,\n name: Schema.String,\n status: Schema.String,\n landed: Schema.Number,\n total: Schema.Number,\n})\nexport type FlywheelOrderBookSummary = typeof FlywheelOrderBookSummary.Type\n\nexport const FlywheelDerivedStatus = Schema.Struct({\n run: FlywheelRunState,\n conversation: Schema.NullOr(FlywheelConversationSummary),\n lastTick: Schema.NullOr(FlywheelLastTick),\n freshness: Schema.NullOr(FlywheelFreshness),\n policies: FlywheelPolicies,\n inFlight: Schema.Array(FlywheelInFlightRow),\n /** Every live agent on an in-flight issue, by issue then role. */\n agents: Schema.Array(FlywheelAgentSummary),\n /**\n * Which list the header counts: `tick` when a running loop named its own\n * in-flight ids, `census` when the rows are just the feature workspaces.\n */\n inFlightSource: Schema.Literals([\"tick\", \"census\"]),\n orderBook: Schema.NullOr(FlywheelOrderBookSummary),\n projectRoot: Schema.String,\n generatedAt: Schema.String,\n})\nexport type FlywheelDerivedStatus = typeof FlywheelDerivedStatus.Type\n\nexport const decodeFlywheelDerivedStatus = Schema.decodeUnknownSync(FlywheelDerivedStatus)\n","import { Schema } from \"effect\"\n\nexport const OrderBookLane = Schema.Literals([\"A\", \"B\"])\nexport type OrderBookLane = typeof OrderBookLane.Type\n\nexport const OrderBookStatus = Schema.Literals([\n \"draft\",\n \"ready\",\n \"running\",\n \"drained\",\n \"complete\",\n])\nexport type OrderBookStatus = typeof OrderBookStatus.Type\n\nexport const OrderBookPosture = Schema.Literals([\"open\", \"drain\"])\nexport type OrderBookPosture = typeof OrderBookPosture.Type\n\nexport interface OrderBookItem {\n issue: string\n lane: OrderBookLane\n order: number\n prereqs: ReadonlyArray<string>\n reVerify: boolean\n planAtPickup?: boolean | undefined\n addedAt: string\n addedBy: string\n}\n\nexport const OrderBookItem = Schema.Struct({\n issue: Schema.String,\n lane: OrderBookLane,\n order: Schema.Number,\n prereqs: Schema.Array(Schema.String),\n reVerify: Schema.Boolean,\n planAtPickup: Schema.optional(Schema.Boolean),\n addedAt: Schema.String,\n addedBy: Schema.String,\n})\n\nexport interface OrderBookSettings {\n laneAConcurrency: number\n briefOverlay?: string | undefined\n posture: OrderBookPosture\n postureSetAt?: string | undefined\n postureSetBy?: string | undefined\n postureReason?: string | undefined\n}\n\nexport const OrderBookSettings = Schema.Struct({\n laneAConcurrency: Schema.Number,\n briefOverlay: Schema.optional(Schema.String),\n posture: OrderBookPosture,\n postureSetAt: Schema.optional(Schema.String),\n postureSetBy: Schema.optional(Schema.String),\n postureReason: Schema.optional(Schema.String),\n})\n\nexport interface OrderBook {\n id: string\n name: string\n status: OrderBookStatus\n settings: OrderBookSettings\n items: ReadonlyArray<OrderBookItem>\n runId?: string | undefined\n createdAt: string\n updatedAt: string\n}\n\nexport const OrderBook = Schema.Struct({\n id: Schema.String,\n name: Schema.String,\n status: OrderBookStatus,\n settings: OrderBookSettings,\n items: Schema.Array(OrderBookItem),\n runId: Schema.optional(Schema.String),\n createdAt: Schema.String,\n updatedAt: Schema.String,\n})\n\nexport interface OrderBookIndexEntry {\n id: string\n name: string\n status: OrderBookStatus\n runId?: string | undefined\n updatedAt: string\n}\n\nexport const OrderBookIndexEntry = Schema.Struct({\n id: Schema.String,\n name: Schema.String,\n status: OrderBookStatus,\n runId: Schema.optional(Schema.String),\n updatedAt: Schema.String,\n})\n","import { Schema } from \"effect\"\nimport type { Harness } from \"./types\"\n\nexport const CONTEXT_LAYER_KINDS = [\"global\", \"project\", \"workspace\"] as const\nexport const CONTEXT_PREVIEW_HARNESSES = [\"claude-code\", \"ohmypi\", \"codex\", \"acp\", \"kimi-code\", \"opencode\", \"muse\", \"prime-agent\"] as const satisfies readonly Harness[]\n\nexport const ContextLayerKind = Schema.Literals(CONTEXT_LAYER_KINDS)\nexport type ContextLayerKind = typeof ContextLayerKind.Type\n\nexport const ContextPreviewHarness = Schema.Literals(CONTEXT_PREVIEW_HARNESSES)\nexport type ContextPreviewHarness = typeof ContextPreviewHarness.Type\n\nexport const ContextProjectSummary = Schema.Struct({\n projectKey: Schema.String,\n name: Schema.String,\n path: Schema.String,\n issuePrefix: Schema.optional(Schema.String),\n tracker: Schema.optional(Schema.Literals([\"linear\", \"github\", \"gitlab\", \"rally\"])),\n workspaceRoot: Schema.optional(Schema.String),\n})\nexport type ContextProjectSummary = typeof ContextProjectSummary.Type\n\nexport const ContextWorkspaceSummary = Schema.Struct({\n projectKey: Schema.String,\n path: Schema.String,\n name: Schema.String,\n issueId: Schema.optional(Schema.String),\n branch: Schema.optional(Schema.String),\n})\nexport type ContextWorkspaceSummary = typeof ContextWorkspaceSummary.Type\n\nconst ContextLayerBase = {\n file: Schema.String,\n exists: Schema.Boolean,\n content: Schema.String,\n editable: Schema.Boolean,\n}\n\nexport const GlobalContextLayerRecord = Schema.Struct({\n kind: Schema.Literal(\"global\"),\n ...ContextLayerBase,\n})\nexport type GlobalContextLayerRecord = typeof GlobalContextLayerRecord.Type\n\nexport const ProjectContextLayerRecord = Schema.Struct({\n kind: Schema.Literal(\"project\"),\n projectKey: Schema.String,\n ...ContextLayerBase,\n})\nexport type ProjectContextLayerRecord = typeof ProjectContextLayerRecord.Type\n\nexport const WorkspaceContextLayerRecord = Schema.Struct({\n kind: Schema.Literal(\"workspace\"),\n projectKey: Schema.String,\n workspacePath: Schema.String,\n ...ContextLayerBase,\n})\nexport type WorkspaceContextLayerRecord = typeof WorkspaceContextLayerRecord.Type\n\nexport const ContextEditableLayerRecord = Schema.Union([\n GlobalContextLayerRecord,\n ProjectContextLayerRecord,\n WorkspaceContextLayerRecord,\n])\nexport type ContextEditableLayerRecord = typeof ContextEditableLayerRecord.Type\n\nexport const GlobalContextLayerTarget = Schema.Struct({\n kind: Schema.Literal(\"global\"),\n})\nexport type GlobalContextLayerTarget = typeof GlobalContextLayerTarget.Type\n\nexport const ProjectContextLayerTarget = Schema.Struct({\n kind: Schema.Literal(\"project\"),\n projectKey: Schema.String,\n})\nexport type ProjectContextLayerTarget = typeof ProjectContextLayerTarget.Type\n\nexport const WorkspaceContextLayerTarget = Schema.Struct({\n kind: Schema.Literal(\"workspace\"),\n projectKey: Schema.String,\n workspacePath: Schema.String,\n})\nexport type WorkspaceContextLayerTarget = typeof WorkspaceContextLayerTarget.Type\n\nexport const ContextLayerTarget = Schema.Union([\n GlobalContextLayerTarget,\n ProjectContextLayerTarget,\n WorkspaceContextLayerTarget,\n])\nexport type ContextLayerTarget = typeof ContextLayerTarget.Type\n\nexport const ContextLayerDraft = Schema.Struct({\n target: ContextLayerTarget,\n content: Schema.String,\n})\nexport type ContextLayerDraft = typeof ContextLayerDraft.Type\n\n/**\n * An Overdeck-owned rendered artifact delivered only to managed sessions.\n */\nexport const ContextSyncTarget = Schema.Struct({\n harness: ContextPreviewHarness,\n layerKind: Schema.Literals([\"global\", \"project\"]),\n projectKey: Schema.optional(Schema.String),\n /** Short human label, e.g. \"Claude Code · global\". */\n label: Schema.String,\n /** Resolved absolute path of the target file. */\n path: Schema.String,\n exists: Schema.Boolean,\n deliveryChannel: Schema.Literals([\"claude-append-system-prompt\", \"pi-append-system-prompt\", \"codex-developer-instructions\"]),\n byteCount: Schema.Number,\n sha256: Schema.optional(Schema.String),\n})\nexport type ContextSyncTarget = typeof ContextSyncTarget.Type\n\nexport const ContextLayersResponse = Schema.Struct({\n operation: Schema.Literal(\"load\"),\n projects: Schema.Array(ContextProjectSummary),\n workspaces: Schema.Array(ContextWorkspaceSummary),\n layers: Schema.Array(ContextEditableLayerRecord),\n /** Overdeck-owned artifacts delivered at managed-session launch. */\n targets: Schema.Array(ContextSyncTarget),\n})\nexport type ContextLayersResponse = typeof ContextLayersResponse.Type\n\nexport const ContextPreviewRequest = Schema.Struct({\n operation: Schema.Literal(\"preview\"),\n selectedLayer: ContextLayerTarget,\n drafts: Schema.Array(ContextLayerDraft),\n})\nexport type ContextPreviewRequest = typeof ContextPreviewRequest.Type\n\nexport const ContextHarnessPreviews = Schema.Struct({\n \"claude-code\": Schema.String,\n ohmypi: Schema.String,\n codex: Schema.String,\n acp: Schema.String,\n \"kimi-code\": Schema.String,\n opencode: Schema.optional(Schema.String),\n muse: Schema.String,\n \"prime-agent\": Schema.String,\n fullPrompt: Schema.String,\n})\nexport type ContextHarnessPreviews = typeof ContextHarnessPreviews.Type\n\nexport const ContextPreviewDiagnostic = Schema.Struct({\n level: Schema.Literals([\"info\", \"warning\", \"error\"]),\n message: Schema.String,\n layer: Schema.optional(ContextLayerTarget),\n})\nexport type ContextPreviewDiagnostic = typeof ContextPreviewDiagnostic.Type\n\nexport const ContextPreviewResponse = Schema.Struct({\n operation: Schema.Literal(\"preview\"),\n previews: ContextHarnessPreviews,\n diagnostics: Schema.Array(ContextPreviewDiagnostic),\n})\nexport type ContextPreviewResponse = typeof ContextPreviewResponse.Type\n\nexport const ContextLayerSaveRequest = Schema.Struct({\n operation: Schema.Literal(\"save\"),\n target: ContextLayerTarget,\n content: Schema.String,\n})\nexport type ContextLayerSaveRequest = typeof ContextLayerSaveRequest.Type\n\nexport const ContextLayerSaveResponse = Schema.Struct({\n operation: Schema.Literal(\"save\"),\n layer: ContextEditableLayerRecord,\n savedAt: Schema.String,\n})\nexport type ContextLayerSaveResponse = typeof ContextLayerSaveResponse.Type\n\nexport const ContextSyncRequest = Schema.Struct({\n operation: Schema.Literal(\"sync\"),\n})\nexport type ContextSyncRequest = typeof ContextSyncRequest.Type\n\nexport const ContextSyncResponse = Schema.Struct({\n operation: Schema.Literal(\"sync\"),\n success: Schema.Boolean,\n exitCode: Schema.optional(Schema.Number),\n stdout: Schema.String,\n stderr: Schema.String,\n syncedAt: Schema.String,\n})\nexport type ContextSyncResponse = typeof ContextSyncResponse.Type\n","import { Schema } from \"effect\"\n\nexport const ArtifactId = Schema.String\nexport type ArtifactId = typeof ArtifactId.Type\n\nexport const ArtifactSlug = Schema.String\nexport type ArtifactSlug = typeof ArtifactSlug.Type\n\nexport const ArtifactHash = Schema.String\nexport type ArtifactHash = typeof ArtifactHash.Type\n\nexport const ArtifactAgentRole = Schema.Literals([\"plan\", \"work\", \"review\", \"test\", \"ship\", \"flywheel\", \"user\"])\nexport type ArtifactAgentRole = typeof ArtifactAgentRole.Type\n\nexport const ArtifactAgentHarness = Schema.Literals([\"claude-code\", \"pi\", \"ohmypi\", \"codex\", \"acp\", \"kimi-code\", \"opencode\", \"muse\", \"prime-agent\", \"user\"])\nexport type ArtifactAgentHarness = typeof ArtifactAgentHarness.Type\n\nexport const ArtifactLifecycleState = Schema.Literals([\n \"published\",\n \"pending_changes\",\n \"unshared\",\n])\nexport type ArtifactLifecycleState = typeof ArtifactLifecycleState.Type\n\nexport const ArtifactValidationCode = Schema.Literals([\n \"invalid_file_type\",\n \"not_a_file\",\n \"size_limit_exceeded\",\n \"forbidden_asset_url\",\n \"secret_detected\",\n \"secret_allowed\",\n \"high_entropy_string\",\n \"inline_event_handler\",\n \"missing_image_alt\",\n])\nexport type ArtifactValidationCode = typeof ArtifactValidationCode.Type\n\nexport const ArtifactValidationFinding = Schema.Struct({\n code: ArtifactValidationCode,\n message: Schema.String,\n line: Schema.optional(Schema.Number),\n column: Schema.optional(Schema.Number),\n rule: Schema.optional(Schema.String),\n strict: Schema.optional(Schema.Boolean),\n})\nexport type ArtifactValidationFinding = typeof ArtifactValidationFinding.Type\n\nexport const ArtifactValidationResult = Schema.Struct({\n ok: Schema.Boolean,\n filePath: Schema.optional(Schema.String),\n size: Schema.Number,\n hash: ArtifactHash,\n strict: Schema.Boolean,\n errors: Schema.Array(ArtifactValidationFinding),\n warnings: Schema.Array(ArtifactValidationFinding),\n})\nexport type ArtifactValidationResult = typeof ArtifactValidationResult.Type\n\nexport const ArtifactMetadata = Schema.Struct({\n artifactId: ArtifactId,\n slug: ArtifactSlug,\n issueId: Schema.optional(Schema.NullOr(Schema.String)),\n workspaceId: Schema.optional(Schema.NullOr(Schema.String)),\n agentRole: Schema.optional(Schema.NullOr(ArtifactAgentRole)),\n agentHarness: Schema.optional(Schema.NullOr(ArtifactAgentHarness)),\n runId: Schema.optional(Schema.NullOr(Schema.String)),\n sessionId: Schema.optional(Schema.NullOr(Schema.String)),\n filePath: Schema.String,\n currentHash: ArtifactHash,\n lastPublishedHash: Schema.optional(Schema.NullOr(ArtifactHash)),\n supersedes: Schema.optional(Schema.NullOr(ArtifactId)),\n title: Schema.optional(Schema.NullOr(Schema.String)),\n description: Schema.optional(Schema.NullOr(Schema.String)),\n createdAt: Schema.String,\n publishedAt: Schema.optional(Schema.NullOr(Schema.String)),\n unsharedAt: Schema.optional(Schema.NullOr(Schema.String)),\n})\nexport type ArtifactMetadata = typeof ArtifactMetadata.Type\n\nexport const ArtifactUrls = Schema.Struct({\n wrapperUrl: Schema.String,\n rawUrl: Schema.String,\n})\nexport type ArtifactUrls = typeof ArtifactUrls.Type\n\nexport const ArtifactStatusResponse = Schema.Struct({\n artifact: Schema.optional(ArtifactMetadata),\n filePath: Schema.String,\n currentHash: ArtifactHash,\n lastPublishedHash: Schema.optional(Schema.NullOr(ArtifactHash)),\n pendingChanges: Schema.Boolean,\n validation: Schema.optional(ArtifactValidationResult),\n})\nexport type ArtifactStatusResponse = typeof ArtifactStatusResponse.Type\n\nexport const ArtifactCreateResponse = Schema.Struct({\n artifact: ArtifactMetadata,\n urls: ArtifactUrls,\n validation: ArtifactValidationResult,\n published: Schema.Boolean,\n})\nexport type ArtifactCreateResponse = typeof ArtifactCreateResponse.Type\n\nexport const ArtifactPublishResponse = Schema.Struct({\n artifact: ArtifactMetadata,\n urls: ArtifactUrls,\n validation: ArtifactValidationResult,\n published: Schema.Boolean,\n pendingChanges: Schema.Boolean,\n})\nexport type ArtifactPublishResponse = typeof ArtifactPublishResponse.Type\n\nexport const ArtifactUnshareResponse = Schema.Struct({\n artifact: ArtifactMetadata,\n unshared: Schema.Boolean,\n})\nexport type ArtifactUnshareResponse = typeof ArtifactUnshareResponse.Type\n\nexport const ArtifactListEntry = Schema.Struct({\n artifact: ArtifactMetadata,\n urls: ArtifactUrls,\n status: ArtifactLifecycleState,\n pendingChanges: Schema.Boolean,\n thumbnailUrl: Schema.optional(Schema.String),\n})\nexport type ArtifactListEntry = typeof ArtifactListEntry.Type\n\nexport const ArtifactListResponse = Schema.Struct({\n artifacts: Schema.Array(ArtifactListEntry),\n})\nexport type ArtifactListResponse = typeof ArtifactListResponse.Type\n\nexport const ArtifactDetailResponse = Schema.Struct({\n artifact: ArtifactMetadata,\n urls: ArtifactUrls,\n status: ArtifactLifecycleState,\n pendingChanges: Schema.Boolean,\n})\nexport type ArtifactDetailResponse = typeof ArtifactDetailResponse.Type\n\nexport const WorkspaceArtifactsResponse = Schema.Struct({\n issueId: Schema.optional(Schema.String),\n workspaceId: Schema.optional(Schema.String),\n artifacts: Schema.Array(ArtifactListEntry),\n})\nexport type WorkspaceArtifactsResponse = typeof WorkspaceArtifactsResponse.Type\n","import { Schema } from \"effect\"\n\nexport const FeatureRegistryStatus = Schema.Literals([\n \"active\",\n \"archived\",\n \"merged\",\n \"deferred\",\n])\nexport type FeatureRegistryStatus = typeof FeatureRegistryStatus.Type\n\nexport const FeatureRegistryEntry = Schema.Struct({\n featureId: Schema.String,\n featureName: Schema.String,\n description: Schema.NullOr(Schema.String),\n owningWorkspaceId: Schema.NullOr(Schema.String),\n owningIssueId: Schema.NullOr(Schema.String),\n owningAgentId: Schema.NullOr(Schema.String),\n status: FeatureRegistryStatus,\n createdAt: Schema.String,\n updatedAt: Schema.String,\n tags: Schema.Array(Schema.String),\n})\nexport type FeatureRegistryEntry = typeof FeatureRegistryEntry.Type\n\nexport interface FeatureRegistryListFilter {\n featureName?: string\n issueId?: string\n workspaceId?: string\n agentId?: string\n status?: FeatureRegistryStatus\n tags?: string[]\n limit?: number\n}\n\nexport interface FeatureRegistryTagInput {\n issueId: string\n featureName: string\n description?: string\n workspaceId?: string | null\n agentId?: string | null\n status?: FeatureRegistryStatus\n tags?: string[]\n now?: string\n}\n\nexport interface FeatureRegistryUntagInput {\n issueId: string\n featureName: string\n}\n\nexport interface FeatureRegistryOwnershipUpdate {\n featureName?: string\n issueId?: string | null\n workspaceId?: string | null\n agentId?: string | null\n status?: FeatureRegistryStatus\n tags?: string[]\n now?: string\n}\n","import type { Harness } from \"./types\"\nimport type { EffortLevel } from \"./effort\"\n\nexport type RuntimeName = Harness\nexport type HarnessName = RuntimeName | \"pi\"\n\nexport type HarnessLaunchCommandKind = \"claude-code\" | \"ohmypi-rpc\" | \"codex-work-tui\" | \"codex-app-server\" | \"acp-host\" | \"kimi-code-tui\" | \"muse-tui\" | \"prime-agent-host\"\nexport type HarnessDeliveryKind =\n | \"pty-supervisor\"\n | \"rpc-fifo\"\n | \"codex-exec-resume\"\n | \"codex-app-server-rpc\"\n | \"acp-host-rpc\"\n | \"prime-agent-host-rpc\"\n | \"tmux-paste\"\nexport type HarnessReadinessKind =\n | \"claude-session-signal\"\n | \"ohmypi-ready-file\"\n | \"codex-tui-prompt\"\n | \"codex-app-server-ready\"\n | \"acp-host-ready\"\n | \"kimi-session-signal\"\n | \"muse-tui-prompt\"\n | \"prime-agent-host-ready\"\nexport type HarnessTranscriptKind = \"claude-jsonl\" | \"ohmypi-jsonl\" | \"codex-rollout-jsonl\" | \"acp-jsonl\" | \"kimi-wire-jsonl\" | \"muse-jsonl\" | \"prime-agent-jsonl\"\nexport type HarnessSessionIdSource = \"launcher-session-id\" | \"transcript-jsonl\" | \"codex-thread-id\" | \"acp-session-id\" | \"kimi-session-newest\" | \"muse-session-log\" | \"prime-agent-session-id\"\nexport type HarnessContextLayerKind = \"claude\" | \"pi\" | \"codex\" | \"acp\" | \"kimi-code\" | \"opencode\" | \"muse\" | \"prime-agent\"\n/** How Overdeck can steer a running turn (PAN-4292): Claude Code send-now keys, the Pi control channel, or null = no steer. */\nexport type HarnessSteerKind = \"send-now-keys\" | \"control-channel\" | null\nexport type HarnessFeedKind = \"claude_code\" | \"pi\" | \"codex\" | \"acp\" | \"kimi_code\" | \"muse\" | \"prime_agent\"\n\nconst AGENT_SESSION_PREFIXES = [\"agent-\", \"planning-\", \"specialist-\", \"strike-\", \"inspect-\"] as const\nconst AGENT_SESSION_SINGLETONS = new Set([\"flywheel-orchestrator\", \"conv-flywheel-orchestrator\"])\n\n/** Canonical synthetic agent-session identity shared by dashboard client/server. */\nexport function isAgentSessionName(name: string): boolean {\n return AGENT_SESSION_SINGLETONS.has(name) || AGENT_SESSION_PREFIXES.some((prefix) => name.startsWith(prefix))\n}\n\nexport interface HarnessNativeCommand {\n readonly name: string\n readonly description: string\n readonly insert: string\n}\n\nexport interface HarnessBehavior {\n readonly displayName: string\n readonly nativeCommands?: readonly HarnessNativeCommand[]\n readonly executableName: string\n readonly processNames: readonly string[]\n readonly launchCommandKind: HarnessLaunchCommandKind\n readonly deliveryKind: HarnessDeliveryKind\n readonly readinessKind: HarnessReadinessKind\n readonly transcriptKind: HarnessTranscriptKind\n readonly sessionIdSource: HarnessSessionIdSource\n readonly contextLayerKind: HarnessContextLayerKind\n readonly feedKind: HarnessFeedKind\n readonly supportsPtySupervisor: boolean\n readonly supportsChannelsBridge: boolean\n readonly supportsConversationStreaming: boolean\n readonly supportsPatchProjection: boolean\n readonly usesRpcFifo: boolean\n readonly usesCodexHome: boolean\n readonly injectsPromptTimeMemory: boolean\n readonly workAgentMode: \"claude-code\" | \"ohmypi-rpc\" | \"codex-work-tui\" | \"codex-app-server\" | \"acp-host\" | \"kimi-code-tui\" | \"muse-tui\" | \"prime-agent-host\"\n readonly readyTimeoutSeconds: number\n /** How a running turn can be steered from Overdeck (PAN-4292). null = no steer. */\n readonly steerKind: HarnessSteerKind\n /** Effort levels this harness accepts, when narrower than the full {@link EFFORT_LEVELS} set. Undefined = no known restriction. */\n readonly effortLevels?: readonly EffortLevel[]\n}\n\nexport const CLAUDE_CODE_BEHAVIOR: HarnessBehavior = {\n displayName: \"Claude Code\",\n // Verified from the installed Claude Code 2.1.209 binary on 2026-07-24.\n nativeCommands: [\n { name: \"/model\", description: \"Switch the AI model for this conversation\", insert: \"/model \" },\n { name: \"/context\", description: \"Inspect or expand the current context window\", insert: \"/context \" },\n { name: \"/effort\", description: \"Set the reasoning effort level\", insert: \"/effort \" },\n { name: \"/cancel\", description: \"Cancel the current operation\", insert: \"/cancel\" },\n ],\n executableName: \"claude\",\n processNames: [\"claude\"],\n launchCommandKind: \"claude-code\",\n deliveryKind: \"pty-supervisor\",\n readinessKind: \"claude-session-signal\",\n transcriptKind: \"claude-jsonl\",\n sessionIdSource: \"launcher-session-id\",\n contextLayerKind: \"claude\",\n feedKind: \"claude_code\",\n supportsPtySupervisor: true,\n supportsChannelsBridge: true,\n supportsConversationStreaming: false,\n supportsPatchProjection: true,\n usesRpcFifo: false,\n usesCodexHome: false,\n injectsPromptTimeMemory: false,\n workAgentMode: \"claude-code\",\n readyTimeoutSeconds: 30,\n steerKind: \"send-now-keys\",\n}\n\nexport const OHMYPI_BEHAVIOR: HarnessBehavior = {\n displayName: \"Pi\",\n // omp 16.3.11 does not expose a machine-readable native slash-command inventory (checked 2026-07-24).\n nativeCommands: [],\n executableName: \"omp\",\n processNames: [\"omp\"],\n launchCommandKind: \"ohmypi-rpc\",\n deliveryKind: \"rpc-fifo\",\n readinessKind: \"ohmypi-ready-file\",\n transcriptKind: \"ohmypi-jsonl\",\n sessionIdSource: \"transcript-jsonl\",\n contextLayerKind: \"pi\",\n feedKind: \"pi\",\n supportsPtySupervisor: false,\n supportsChannelsBridge: false,\n supportsConversationStreaming: true,\n supportsPatchProjection: false,\n usesRpcFifo: true,\n usesCodexHome: false,\n injectsPromptTimeMemory: true,\n workAgentMode: \"ohmypi-rpc\",\n readyTimeoutSeconds: 120,\n steerKind: \"control-channel\",\n effortLevels: [\"low\", \"medium\", \"high\", \"xhigh\"],\n}\n\nexport const CODEX_BEHAVIOR: HarnessBehavior = {\n displayName: \"Codex\",\n // Codex CLI 0.144.4 does not expose a machine-readable native slash-command inventory (checked 2026-07-24).\n nativeCommands: [],\n executableName: \"codex\",\n processNames: [\"codex\"],\n launchCommandKind: \"codex-work-tui\",\n deliveryKind: \"codex-exec-resume\",\n readinessKind: \"codex-tui-prompt\",\n transcriptKind: \"codex-rollout-jsonl\",\n sessionIdSource: \"codex-thread-id\",\n contextLayerKind: \"codex\",\n feedKind: \"codex\",\n supportsPtySupervisor: true,\n supportsChannelsBridge: false,\n supportsConversationStreaming: true,\n supportsPatchProjection: true,\n usesRpcFifo: false,\n usesCodexHome: true,\n injectsPromptTimeMemory: false,\n workAgentMode: \"codex-work-tui\",\n readyTimeoutSeconds: 30,\n steerKind: null,\n}\n\nexport const ACP_BEHAVIOR: HarnessBehavior = {\n displayName: \"ACP\",\n // Kimi Code CLI 0.28.1 via ACP does not expose a machine-readable native slash-command inventory (checked 2026-07-24).\n nativeCommands: [],\n executableName: \"acp-host\",\n processNames: [\"acp-host\", \"kimi\"],\n launchCommandKind: \"acp-host\",\n deliveryKind: \"acp-host-rpc\",\n readinessKind: \"acp-host-ready\",\n transcriptKind: \"acp-jsonl\",\n sessionIdSource: \"acp-session-id\",\n contextLayerKind: \"acp\",\n feedKind: \"acp\",\n supportsPtySupervisor: false,\n supportsChannelsBridge: false,\n supportsConversationStreaming: true,\n supportsPatchProjection: false,\n usesRpcFifo: false,\n usesCodexHome: false,\n injectsPromptTimeMemory: false,\n workAgentMode: \"acp-host\",\n readyTimeoutSeconds: 30,\n steerKind: null,\n}\n\nexport const KIMI_CODE_BEHAVIOR: HarnessBehavior = {\n displayName: \"Kimi Code\",\n nativeCommands: [], // no machine-readable inventory verified yet\n executableName: \"kimi\",\n processNames: [\"kimi\"],\n launchCommandKind: \"kimi-code-tui\",\n deliveryKind: \"pty-supervisor\",\n readinessKind: \"kimi-session-signal\",\n transcriptKind: \"kimi-wire-jsonl\",\n sessionIdSource: \"kimi-session-newest\",\n contextLayerKind: \"kimi-code\",\n feedKind: \"kimi_code\",\n supportsPtySupervisor: true,\n supportsChannelsBridge: false,\n supportsConversationStreaming: true,\n supportsPatchProjection: false,\n usesRpcFifo: false,\n usesCodexHome: false,\n injectsPromptTimeMemory: false,\n workAgentMode: \"kimi-code-tui\",\n readyTimeoutSeconds: 60,\n steerKind: null,\n}\n\nexport const OPENCODE_BEHAVIOR: HarnessBehavior = {\n ...ACP_BEHAVIOR,\n displayName: \"OpenCode\",\n contextLayerKind: \"opencode\",\n executableName: \"opencode\",\n processNames: [\"acp-host\", \"opencode\"],\n}\n\nexport const MUSE_BEHAVIOR: HarnessBehavior = {\n displayName: \"Muse Code\",\n nativeCommands: [],\n executableName: \"muse\",\n processNames: [\"muse\", \"muse-bin\"],\n launchCommandKind: \"muse-tui\",\n deliveryKind: \"pty-supervisor\",\n readinessKind: \"muse-tui-prompt\",\n transcriptKind: \"muse-jsonl\",\n sessionIdSource: \"muse-session-log\",\n contextLayerKind: \"muse\",\n feedKind: \"muse\",\n supportsPtySupervisor: true,\n supportsChannelsBridge: false,\n supportsConversationStreaming: true,\n supportsPatchProjection: false,\n usesRpcFifo: false,\n usesCodexHome: false,\n injectsPromptTimeMemory: false,\n workAgentMode: \"muse-tui\",\n readyTimeoutSeconds: 60,\n steerKind: null,\n effortLevels: [\"low\", \"medium\", \"high\", \"xhigh\"],\n}\n\nexport const PRIME_AGENT_BEHAVIOR: HarnessBehavior = {\n displayName: \"Prime Agent\",\n nativeCommands: [], // 0.8.0 exposes get_commands only for extension/skill commands; none are Overdeck-relevant\n executableName: \"prime-agent\",\n processNames: [\"prime-agent\"],\n launchCommandKind: \"prime-agent-host\",\n deliveryKind: \"prime-agent-host-rpc\",\n readinessKind: \"prime-agent-host-ready\",\n transcriptKind: \"prime-agent-jsonl\",\n sessionIdSource: \"prime-agent-session-id\",\n contextLayerKind: \"prime-agent\",\n feedKind: \"prime_agent\",\n supportsPtySupervisor: false,\n supportsChannelsBridge: false,\n supportsConversationStreaming: true,\n supportsPatchProjection: false,\n usesRpcFifo: false,\n usesCodexHome: false,\n injectsPromptTimeMemory: false,\n workAgentMode: \"prime-agent-host\",\n readyTimeoutSeconds: 60,\n steerKind: null,\n}\n\nconst BEHAVIORS: Record<RuntimeName, HarnessBehavior> = {\n \"opencode\": OPENCODE_BEHAVIOR,\n \"claude-code\": CLAUDE_CODE_BEHAVIOR,\n ohmypi: OHMYPI_BEHAVIOR,\n codex: CODEX_BEHAVIOR,\n acp: ACP_BEHAVIOR,\n \"kimi-code\": KIMI_CODE_BEHAVIOR,\n muse: MUSE_BEHAVIOR,\n \"prime-agent\": PRIME_AGENT_BEHAVIOR,\n}\n\nexport function getHarnessBehavior(harness: HarnessName | undefined | null): HarnessBehavior {\n if (harness === \"ohmypi\" || harness === \"pi\") return OHMYPI_BEHAVIOR\n if (harness === \"codex\") return CODEX_BEHAVIOR\n if (harness === \"opencode\") return OPENCODE_BEHAVIOR\n if (harness === \"acp\") return ACP_BEHAVIOR\n if (harness === \"kimi-code\") return KIMI_CODE_BEHAVIOR\n if (harness === \"muse\") return MUSE_BEHAVIOR\n if (harness === \"prime-agent\") return PRIME_AGENT_BEHAVIOR\n return CLAUDE_CODE_BEHAVIOR\n}\n\nexport function getRuntimeBehavior(runtime: RuntimeName): HarnessBehavior {\n return BEHAVIORS[runtime]\n}\n","import { Schema } from \"effect\"\n\nexport const HygieneFinding = Schema.Struct({\n id: Schema.String,\n summary: Schema.String,\n detail: Schema.optional(Schema.String),\n urgent: Schema.optional(Schema.Boolean),\n})\nexport type HygieneFinding = typeof HygieneFinding.Type\n\nexport const HygienePullRequest = Schema.Struct({\n number: Schema.Number,\n branch: Schema.String,\n url: Schema.String,\n blocking: Schema.Literals([\"review-pending\", \"test-pending\", \"failing-checks\", \"awaiting-UAT\", \"clean\"]),\n})\n\nexport const HygieneReport = Schema.Struct({\n generatedAt: Schema.String,\n root: Schema.String,\n needsAttention: Schema.Boolean,\n skipped: Schema.Array(Schema.String),\n push: Schema.Struct({ ahead: Schema.Number, commits: Schema.Array(Schema.String) }),\n tree: Schema.Struct({ files: Schema.Array(Schema.String), backups: Schema.Array(Schema.String) }),\n prs: Schema.Array(HygienePullRequest),\n agents: Schema.Struct({\n counts: Schema.Record(Schema.String, Schema.Number),\n problems: Schema.Array(HygieneFinding),\n }),\n sessions: Schema.Struct({ total: Schema.Number, zombies: Schema.Array(Schema.String) }),\n branches: Schema.Struct({ stale: Schema.Array(Schema.String) }),\n workspaces: Schema.Struct({ stale: Schema.Array(Schema.String) }),\n disk: Schema.Struct({ availableGb: Schema.Number, thresholdGb: Schema.Number, urgent: Schema.Boolean }),\n fixes: Schema.Struct({\n branchesDeleted: Schema.Array(Schema.String),\n workspacesRemoved: Schema.Array(Schema.Struct({ path: Schema.String, freedBytes: Schema.Number })),\n errors: Schema.Array(Schema.String),\n }),\n})\nexport type HygieneReport = typeof HygieneReport.Type\n","export const OVERDECK_DASHBOARD_PROTOCOL_VERSION = 1;\nexport const OVERDECK_AGENT_PROTOCOL_VERSION = 1;\n\nexport type UpdateChannel = 'stable' | 'canary';\nexport type UpdatePhase =\n | 'idle'\n | 'checking'\n | 'current'\n | 'available'\n | 'downloading'\n | 'installing'\n | 'ready'\n | 'error';\nexport type UpdateInstallMode = 'desktop' | 'npm-global' | 'development';\nexport type UpdateCompatibility = 'compatible' | 'active-agents-block' | 'unknown';\n\nexport interface UpdateSnapshot {\n phase: UpdatePhase;\n installMode: UpdateInstallMode;\n channel: UpdateChannel;\n currentVersion: string;\n targetVersion: string | null;\n releaseName: string | null;\n releaseNotes: string | null;\n releaseUrl: string | null;\n publishedAt: string | null;\n progressPercent: number | null;\n error: string | null;\n lastCheckedAt: string | null;\n compatibility: UpdateCompatibility;\n currentDashboardProtocol: number;\n currentAgentProtocol: number;\n targetDashboardProtocol: number | null;\n targetAgentProtocol: number | null;\n}\n","import { Schema } from \"effect\"\n\nexport const DeployStalenessSnapshot = Schema.Struct({\n status: Schema.Literals([\"fresh\", \"stale\", \"unknown\"]),\n buildCommit: Schema.NullOr(Schema.String),\n originMainSha: Schema.NullOr(Schema.String),\n behindTotal: Schema.NullOr(Schema.Number),\n behindBuildInputs: Schema.NullOr(Schema.Number),\n originMainLastCommitAt: Schema.NullOr(Schema.Number),\n originMainLastBuildInputCommitAt: Schema.NullOr(Schema.Number),\n computedAt: Schema.Number,\n reason: Schema.optional(Schema.String),\n})\nexport type DeployStalenessSnapshot = typeof DeployStalenessSnapshot.Type\n","const collator = new Intl.Collator(\"en\", { numeric: true, sensitivity: \"base\" })\n\n/**\n * Compares issue identifiers numerically within their prefix, so PAN-532 sorts\n * before PAN-2822. Every issue-id sort should use this comparator (PAN-2831).\n */\nexport function compareIssueIds(a: string, b: string): number {\n return collator.compare(a, b)\n}\n","import type { Harness } from \"./types\"\n\nexport const TELEMETRY_EVENT_NAMES = [\n \"dashboard_tab_viewed\",\n \"agent_spawned\",\n \"project_created\",\n \"issue_merged\",\n \"force_merge_triggered\",\n \"issue_closed_out\",\n \"bulk_close_out_initiated\",\n \"auto_merge_toggled\",\n \"conversation_forked\",\n \"plan_approved\",\n \"plan_changes_requested\",\n \"agent_question_answered\",\n \"server_boot\",\n \"cli_command_run\",\n \"pipeline_stage_changed\",\n \"github_quota_sample\",\n \"github_rate_limited\",\n \"instance_heartbeat\",\n] as const\n\nexport type TelemetryEventName = typeof TELEMETRY_EVENT_NAMES[number]\n\nexport const TELEMETRY_CLI_VERBS = [\n \"abort\",\n \"approve\",\n \"backlog\",\n \"backup\",\n \"clean\",\n \"context\",\n \"destroy\",\n \"dev\",\n \"diff\",\n \"doctor\",\n \"done\",\n \"down\",\n \"edit\",\n \"finalize\",\n \"fork\",\n \"handoff\",\n \"health\",\n \"init\",\n \"issues\",\n \"kill\",\n \"list\",\n \"migrate\",\n \"mode\",\n \"open\",\n \"pause\",\n \"pending\",\n \"plan\",\n \"project\",\n \"projects\",\n \"recover\",\n \"reload\",\n \"reopen\",\n \"request\",\n \"reset\",\n \"restart\",\n \"restore\",\n \"resume\",\n \"review\",\n \"scope\",\n \"serve\",\n \"show\",\n \"skills\",\n \"spawn-reviewer\",\n \"staffing\",\n \"start\",\n \"status\",\n \"strike\",\n \"sync\",\n \"sync-main\",\n \"tell\",\n \"unarchive-conversation\",\n \"unpause\",\n \"untroubled\",\n \"up\",\n \"update\",\n \"validate\",\n \"wipe\",\n \"write-sequence\",\n \"other\",\n] as const\n\nconst TELEMETRY_HARNESSES = [\"claude-code\", \"ohmypi\", \"codex\", \"acp\", \"kimi-code\", \"opencode\", \"muse\", \"prime-agent\"] as const satisfies readonly Harness[]\n\n/**\n * PAN-4264: GitHub quota callers as telemetry values (`-` → `_`). Mirrors\n * `GITHUB_QUOTA_CALLERS` in ./github-quota; a unit test keeps them in step.\n */\nconst TELEMETRY_GITHUB_CALLERS = [\n \"pipeline_membership\",\n \"pr_cache\",\n \"pr_sync\",\n \"ci_repair\",\n \"issue_poller\",\n \"close_out\",\n \"tracker_client\",\n \"app_rest\",\n \"quota_sampler\",\n \"agent\",\n \"other\",\n] as const\n\nexport const TELEMETRY_PROPERTY_DOMAINS = {\n agent_spawn_mode: [\"spawn-and-send\", \"spawn-work-and-send\"],\n answer_type: [\"custom\", \"selection\"],\n auto_merge_variant: [\"segmented\", \"badge\"],\n boolean: [false, true],\n cli_verb: TELEMETRY_CLI_VERBS,\n close_out_variant: [\"card\", \"inspector\"],\n count_bucket: [\"0\", \"1-2\", \"3-5\", \"6-10\", \"11+\"],\n dashboard_tab: [\n \"home\",\n \"pipeline\",\n \"kanban\",\n \"command-deck\",\n \"agents\",\n \"flywheel\",\n \"orders\",\n \"backlog\",\n \"resources\",\n \"knowledge\",\n \"skills\",\n \"context\",\n \"health\",\n \"activity\",\n \"metrics\",\n \"costs\",\n \"autopreso\",\n \"settings\",\n \"god-view\",\n \"deacon\",\n \"sessions\",\n \"awaiting-merge\",\n \"workspace-new\",\n \"project-new\",\n \"workspace\",\n ],\n decision_subject: [\"agent\", \"conversation\"],\n duration_bucket: [\"under_100ms\", \"100ms-999ms\", \"1s-9s\", \"10s+\"],\n forge: [\"github\", \"gitlab\"],\n fork_kind: [\"summary\", \"handoff\", \"plain\"],\n github_caller: TELEMETRY_GITHUB_CALLERS,\n harness: TELEMETRY_HARNESSES,\n merge_kind: [\"pipeline\"],\n model_family: [\"claude\", \"gpt\", \"gemini\", \"kimi\", \"minimax\", \"glm\", \"mimo\", \"other\"],\n pipeline_stage: [\"work_done\", \"review_passed\", \"verification_passed\", \"merged\", \"closed_out\"],\n // \"clone\" ships with PAN-3836; without it the dimension cannot show whether\n // cloning is actually used, which is the reason the event carries a mode.\n project_mode: [\"clone\", \"existing\", \"new\"],\n quota_points_bucket: [\"0\", \"1-49\", \"50-199\", \"200-499\", \"500-999\", \"1000-2499\", \"2500+\"],\n quota_remaining_bucket: [\"0\", \"1-99\", \"100-499\", \"500-999\", \"1000-2499\", \"2500+\", \"unknown\"],\n rate_limit_kind: [\"primary\", \"secondary\"],\n} as const\n\nexport type TelemetryPropertyDomainName = keyof typeof TELEMETRY_PROPERTY_DOMAINS\n\nexport const TELEMETRY_EVENT_CATALOG = {\n dashboard_tab_viewed: { tab: \"dashboard_tab\" },\n agent_spawned: { spawn_mode: \"agent_spawn_mode\", has_message: \"boolean\" },\n project_created: { mode: \"project_mode\" },\n issue_merged: { merge_kind: \"merge_kind\" },\n force_merge_triggered: { forge: \"forge\" },\n issue_closed_out: { variant: \"close_out_variant\" },\n bulk_close_out_initiated: { issue_count: \"count_bucket\" },\n auto_merge_toggled: { auto_merge: \"boolean\", variant: \"auto_merge_variant\" },\n conversation_forked: {\n fork_intent: \"fork_kind\",\n fork_mode: \"fork_kind\",\n fast_summary: \"boolean\",\n launch_harness: \"harness\",\n },\n plan_approved: { subject_kind: \"decision_subject\" },\n plan_changes_requested: { subject_kind: \"decision_subject\" },\n agent_question_answered: {\n subject_kind: \"decision_subject\",\n answer_type: \"answer_type\",\n question_count: \"count_bucket\",\n },\n server_boot: { project_count: \"count_bucket\", active_agent_count: \"count_bucket\" },\n cli_command_run: { verb: \"cli_verb\", ok: \"boolean\", duration_ms: \"duration_bucket\" },\n pipeline_stage_changed: { stage: \"pipeline_stage\", harness: \"harness\", model: \"model_family\" },\n github_quota_sample: {\n graphql_pipeline_membership: \"quota_points_bucket\",\n rest_pipeline_membership: \"quota_points_bucket\",\n graphql_pr_cache: \"quota_points_bucket\",\n rest_pr_cache: \"quota_points_bucket\",\n graphql_pr_sync: \"quota_points_bucket\",\n rest_pr_sync: \"quota_points_bucket\",\n graphql_ci_repair: \"quota_points_bucket\",\n rest_ci_repair: \"quota_points_bucket\",\n graphql_issue_poller: \"quota_points_bucket\",\n rest_issue_poller: \"quota_points_bucket\",\n graphql_close_out: \"quota_points_bucket\",\n rest_close_out: \"quota_points_bucket\",\n graphql_tracker_client: \"quota_points_bucket\",\n rest_tracker_client: \"quota_points_bucket\",\n graphql_app_rest: \"quota_points_bucket\",\n rest_app_rest: \"quota_points_bucket\",\n graphql_agent: \"quota_points_bucket\",\n rest_agent: \"quota_points_bucket\",\n graphql_other: \"quota_points_bucket\",\n rest_other: \"quota_points_bucket\",\n graphql_unattributed: \"quota_points_bucket\",\n min_remaining_graphql: \"quota_remaining_bucket\",\n min_remaining_rest: \"quota_remaining_bucket\",\n primary_limit_errors: \"count_bucket\",\n secondary_limit_errors: \"count_bucket\",\n },\n github_rate_limited: { caller: \"github_caller\", kind: \"rate_limit_kind\", own_usage_low: \"boolean\" },\n instance_heartbeat: { project_count: \"count_bucket\", active_agent_count: \"count_bucket\", dashboard_running: \"boolean\" },\n} as const satisfies Record<TelemetryEventName, Record<string, TelemetryPropertyDomainName>>\n\ntype TelemetryPropertyValue<Domain extends TelemetryPropertyDomainName> =\n (typeof TELEMETRY_PROPERTY_DOMAINS)[Domain][number]\n\ntype EventProperties<Event extends TelemetryEventName> = {\n readonly [Property in keyof (typeof TELEMETRY_EVENT_CATALOG)[Event]]:\n TelemetryPropertyValue<(typeof TELEMETRY_EVENT_CATALOG)[Event][Property] & TelemetryPropertyDomainName>\n}\n\nexport type TelemetryCountBucket = TelemetryPropertyValue<\"count_bucket\">\nexport type TelemetryDurationBucket = TelemetryPropertyValue<\"duration_bucket\">\nexport type TelemetryDecisionSubjectKind = TelemetryPropertyValue<\"decision_subject\">\nexport type TelemetryModelFamily = TelemetryPropertyValue<\"model_family\">\nexport type TelemetryCliVerb = TelemetryPropertyValue<\"cli_verb\">\nexport type TelemetryDashboardTab = TelemetryPropertyValue<\"dashboard_tab\">\n\nexport type DashboardTabViewedProperties = EventProperties<\"dashboard_tab_viewed\">\nexport type AgentSpawnedProperties = EventProperties<\"agent_spawned\">\nexport type ProjectCreatedProperties = EventProperties<\"project_created\">\nexport type IssueMergedProperties = EventProperties<\"issue_merged\">\nexport type ForceMergeTriggeredProperties = EventProperties<\"force_merge_triggered\">\nexport type IssueClosedOutProperties = EventProperties<\"issue_closed_out\">\nexport type BulkCloseOutInitiatedProperties = EventProperties<\"bulk_close_out_initiated\">\nexport type AutoMergeToggledProperties = EventProperties<\"auto_merge_toggled\">\nexport type ConversationForkedProperties = EventProperties<\"conversation_forked\">\nexport type PlanApprovedProperties = EventProperties<\"plan_approved\">\nexport type PlanChangesRequestedProperties = EventProperties<\"plan_changes_requested\">\nexport type AgentQuestionAnsweredProperties = EventProperties<\"agent_question_answered\">\nexport type ServerBootProperties = EventProperties<\"server_boot\">\nexport type CliCommandRunProperties = EventProperties<\"cli_command_run\">\nexport type PipelineStageChangedProperties = EventProperties<\"pipeline_stage_changed\">\nexport type GitHubQuotaSampleProperties = EventProperties<\"github_quota_sample\">\nexport type GitHubRateLimitedProperties = EventProperties<\"github_rate_limited\">\nexport type InstanceHeartbeatProperties = EventProperties<\"instance_heartbeat\">\nexport type TelemetryQuotaPointsBucket = TelemetryPropertyValue<\"quota_points_bucket\">\nexport type TelemetryQuotaRemainingBucket = TelemetryPropertyValue<\"quota_remaining_bucket\">\nexport type TelemetryGitHubCaller = TelemetryPropertyValue<\"github_caller\">\n\n/** PAN-4264: GitHub quota points as a coarse bucket (raw counts are never sent). */\nexport function bucketQuotaPoints(points: number): TelemetryQuotaPointsBucket {\n if (!(points > 0)) return \"0\"\n if (points < 50) return \"1-49\"\n if (points < 200) return \"50-199\"\n if (points < 500) return \"200-499\"\n if (points < 1000) return \"500-999\"\n if (points < 2500) return \"1000-2499\"\n return \"2500+\"\n}\n\n/** PAN-4264: GitHub quota remaining as a coarse bucket; `unknown` without a sample. */\nexport function bucketQuotaRemaining(remaining: number | undefined): TelemetryQuotaRemainingBucket {\n if (remaining === undefined || !Number.isFinite(remaining)) return \"unknown\"\n if (remaining <= 0) return \"0\"\n if (remaining < 100) return \"1-99\"\n if (remaining < 500) return \"100-499\"\n if (remaining < 1000) return \"500-999\"\n if (remaining < 2500) return \"1000-2499\"\n return \"2500+\"\n}\n\nexport type TelemetryEventProperties = {\n readonly [Event in TelemetryEventName]: EventProperties<Event>\n}\n\nexport type TelemetryPropertiesFor<Event extends TelemetryEventName> = TelemetryEventProperties[Event]\n","// GENERATED FILE — do not edit by hand.\n// Source: the pan CLI command registry via `pan admin commands --json`.\n// Regenerate: npm run generate:slash-commands (drift-gated by scripts/lint-slash-commands.sh)\nimport type { ComposerCommandManifestEntry } from \"./composer-commands\"\n\nexport const COMPOSER_COMMAND_MANIFEST: ComposerCommandManifestEntry[] = [\n {\"id\":\"pan-init\",\"path\":[\"init\"],\"display\":\"/pan init\",\"description\":\"Initialize Overdeck (~/.overdeck/)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-sync\",\"path\":[\"sync\"],\"display\":\"/pan sync\",\"description\":\"Sync skills and render managed launch context\",\"args\":[],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Show what would be synced\",\"required\":false,\"valueHint\":null},{\"flags\":\"--force\",\"description\":\"Overwrite files modified since Overdeck installed them\",\"required\":false,\"valueHint\":null},{\"flags\":\"--diff\",\"description\":\"Show diff for modified files\",\"required\":false,\"valueHint\":null},{\"flags\":\"--backup-only\",\"description\":\"Only create backup\",\"required\":false,\"valueHint\":null},{\"flags\":\"--if-changed\",\"description\":\"Skip the sync when inputs are unchanged (used by startup)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-context\",\"path\":[\"context\"],\"display\":\"/pan context\",\"description\":\"Manage the layered context model (global / project / workspace)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-context-list\",\"path\":[\"context\",\"list\"],\"display\":\"/pan context list\",\"description\":\"Show all three layers' files\",\"args\":[],\"options\":[{\"flags\":\"--layer <layer>\",\"description\":\"Limit to one layer: global, project, or workspace\",\"required\":true,\"valueHint\":\"layer\"},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-context-edit\",\"path\":[\"context\",\"edit\"],\"display\":\"/pan context edit\",\"description\":\"Open a context layer in $EDITOR\",\"args\":[],\"options\":[{\"flags\":\"--layer <layer>\",\"description\":\"Layer to edit: global (default), project, or workspace\",\"required\":true,\"valueHint\":\"layer\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-context-sync\",\"path\":[\"context\",\"sync\"],\"display\":\"/pan context sync\",\"description\":\"Refresh Overdeck-managed session context artifacts\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-context-diff\",\"path\":[\"context\",\"diff\"],\"display\":\"/pan context diff\",\"description\":\"Show what each harness would receive after templating\",\"args\":[],\"options\":[{\"flags\":\"--harness <harness>\",\"description\":\"Limit to one harness: claude or pi\",\"required\":true,\"valueHint\":\"harness\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-context-validate\",\"path\":[\"context\",\"validate\"],\"display\":\"/pan context validate\",\"description\":\"Lint layer templates for unclosed or unknown harness blocks\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-context-migrate\",\"path\":[\"context\",\"migrate\"],\"display\":\"/pan context migrate\",\"description\":\"One-shot migration from the deprecated sync.devroot model\",\"args\":[],\"options\":[{\"flags\":\"--yes\",\"description\":\"Register every discovered project without prompting\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-context-detach\",\"path\":[\"context\",\"detach\"],\"display\":\"/pan context detach\",\"description\":\"Explicitly remove historical Overdeck managed regions from native instruction files\",\"args\":[],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Preview exact files and managed blocks without changing anything\",\"required\":false,\"valueHint\":null},{\"flags\":\"--apply\",\"description\":\"Back up each file and remove only an unambiguous managed block\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-restore\",\"path\":[\"restore\"],\"display\":\"/pan restore\",\"description\":\"Restore from backup\",\"args\":[{\"name\":\"timestamp\",\"required\":false,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-backup\",\"path\":[\"backup\"],\"display\":\"/pan backup\",\"description\":\"Manage backups\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-backup-list\",\"path\":[\"backup\",\"list\"],\"display\":\"/pan backup list\",\"description\":\"List all backups\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-backup-clean\",\"path\":[\"backup\",\"clean\"],\"display\":\"/pan backup clean\",\"description\":\"Remove old backups\",\"args\":[],\"options\":[{\"flags\":\"--keep <count>\",\"description\":\"Number of backups to keep\",\"required\":true,\"valueHint\":\"count\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-skills\",\"path\":[\"skills\"],\"display\":\"/pan skills\",\"description\":\"List skills and set per-level on/off overrides\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-list\",\"path\":[\"skills\",\"list\"],\"display\":\"/pan skills list\",\"description\":\"List skills with effective on/off state and its source\",\"args\":[],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Resolve for a project\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--issue <id>\",\"description\":\"Resolve for an issue\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-set\",\"path\":[\"skills\",\"set\"],\"display\":\"/pan skills set\",\"description\":\"Set a skill (<skill> <state>) or a pack (--pack <id> <state>) on, off, or inherit\",\"args\":[{\"name\":\"args\",\"required\":true,\"variadic\":true}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Project override\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--issue <id>\",\"description\":\"Issue override\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--pack <id>\",\"description\":\"Set a whole skill pack instead of one skill\",\"required\":true,\"valueHint\":\"id\"}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack\",\"path\":[\"skills\",\"pack\"],\"display\":\"/pan skills pack\",\"description\":\"Register, update, and cache external skill packs pinned to a commit\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack-add\",\"path\":[\"skills\",\"pack\",\"add\"],\"display\":\"/pan skills pack add\",\"description\":\"Register a git skill pack at the commit a ref resolves to (enables nothing)\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"url\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--ref <ref>\",\"description\":\"Tag or branch to pin\",\"required\":true,\"valueHint\":\"ref\"},{\"flags\":\"--adapter <adapter>\",\"description\":\"plain, claude-plugin, or deft-readonly\",\"required\":true,\"valueHint\":\"adapter\"},{\"flags\":\"--yes\",\"description\":\"Trust the resolved commit without asking\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack-update\",\"path\":[\"skills\",\"pack\",\"update\"],\"display\":\"/pan skills pack update\",\"description\":\"Move a pack to the commit its ref (or --ref) now resolves to\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--ref <ref>\",\"description\":\"Switch to a different tag or branch\",\"required\":true,\"valueHint\":\"ref\"},{\"flags\":\"--yes\",\"description\":\"Trust the new commit without asking\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack-list\",\"path\":[\"skills\",\"pack\",\"list\"],\"display\":\"/pan skills pack list\",\"description\":\"List registered skill packs\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--offline\",\"description\":\"Skip the update check (no network)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack-remove\",\"path\":[\"skills\",\"pack\",\"remove\"],\"display\":\"/pan skills pack remove\",\"description\":\"Unregister a pack, clear its global toggles, and delete its cache\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack-sync\",\"path\":[\"skills\",\"pack\",\"sync\"],\"display\":\"/pan skills pack sync\",\"description\":\"Re-fetch packs and extract their trusted commits (all packs when omitted)\",\"args\":[{\"name\":\"id\",\"required\":false,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack-gc\",\"path\":[\"skills\",\"pack\",\"gc\"],\"display\":\"/pan skills pack gc\",\"description\":\"Remove unused skill pack mounts and dangling launch links\",\"args\":[],\"options\":[{\"flags\":\"--max-age-days <n>\",\"description\":\"Keep unused mounts younger than this\",\"required\":true,\"valueHint\":\"n\"}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack-sageox\",\"path\":[\"skills\",\"pack\",\"sageox\"],\"display\":\"/pan skills pack sageox\",\"description\":\"SageOx pack state and per-project upload opt-in (PAN-2444)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack-sageox-status\",\"path\":[\"skills\",\"pack\",\"sageox\",\"status\"],\"display\":\"/pan skills pack sageox status\",\"description\":\"Show, per project, the sageox pack state and the upload state\",\"args\":[],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Only this project\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack-sageox-upload\",\"path\":[\"skills\",\"pack\",\"sageox\",\"upload\"],\"display\":\"/pan skills pack sageox upload\",\"description\":\"Turn SageOx uploads on or off for a project (off by default)\",\"args\":[{\"name\":\"state\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Project key\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-deft\",\"path\":[\"skills\",\"deft\"],\"display\":\"/pan skills deft\",\"description\":\"Deft Directive detection, ownership report, and managed mode\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-deft-status\",\"path\":[\"skills\",\"deft\",\"status\"],\"display\":\"/pan skills deft status\",\"description\":\"Show Directive detection, the deft pack, the skill map, managed mode, and the ownership report\",\"args\":[],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Registered project (default: the current repo)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-deft-enable\",\"path\":[\"skills\",\"deft\",\"enable\"],\"display\":\"/pan skills deft enable\",\"description\":\"Enable Deft managed mode for a Directive project after showing the ownership plan\",\"args\":[],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Registered project\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--yes\",\"description\":\"Accept the printed plan without asking\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-deft-disable\",\"path\":[\"skills\",\"deft\",\"disable\"],\"display\":\"/pan skills deft disable\",\"description\":\"Disable Deft managed mode; project files are untouched\",\"args\":[],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Registered project\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-pair\",\"path\":[\"pair\"],\"display\":\"/pan pair\",\"description\":\"Print a one-time URL that pairs another device with this dashboard (see configuration/remote-access.mdx)\",\"args\":[],\"options\":[{\"flags\":\"--label <name>\",\"description\":\"Name to record for the pairing in the activity log\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--url <base>\",\"description\":\"Base URL the other device can reach (default: this dashboard's API URL)\",\"required\":true,\"valueHint\":\"base\"},{\"flags\":\"--json\",\"description\":\"Print { url, credential, expiresAt } as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-devices\",\"path\":[\"devices\"],\"display\":\"/pan devices\",\"description\":\"List or revoke paired devices (see configuration/remote-access.mdx)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-devices-list\",\"path\":[\"devices\",\"list\"],\"display\":\"/pan devices list\",\"description\":\"List paired devices with created, last-used and revoked times\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Print the devices as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-devices-revoke\",\"path\":[\"devices\",\"revoke\"],\"display\":\"/pan devices revoke\",\"description\":\"Revoke a paired device and close its live connections\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-token\",\"path\":[\"token\"],\"display\":\"/pan token\",\"description\":\"Create, list or revoke scoped access tokens (see configuration/remote-access.mdx)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-token-create\",\"path\":[\"token\",\"create\"],\"display\":\"/pan token create\",\"description\":\"Create a scoped access token and print it once\",\"args\":[{\"name\":\"name\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--scopes <list>\",\"description\":\"Comma-separated scopes: read:events, read:state, read:conversations, tell, operate, admin\",\"required\":true,\"valueHint\":\"list\"},{\"flags\":\"--json\",\"description\":\"Print { id, name, scopes, token } as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-token-list\",\"path\":[\"token\",\"list\"],\"display\":\"/pan token list\",\"description\":\"List access tokens with scopes and created, last-used and revoked times\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Print the tokens as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-token-revoke\",\"path\":[\"token\",\"revoke\"],\"display\":\"/pan token revoke\",\"description\":\"Revoke an access token and close its live connections\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-issues\",\"path\":[\"issues\"],\"display\":\"/pan issues\",\"description\":\"List and triage work across configured trackers\",\"args\":[],\"options\":[{\"flags\":\"--all\",\"description\":\"Include closed issues\",\"required\":false,\"valueHint\":null},{\"flags\":\"--mine\",\"description\":\"Show only my assigned issues\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--tracker <type>\",\"description\":\"Query specific tracker (linear/github/gitlab)\",\"required\":true,\"valueHint\":\"type\"},{\"flags\":\"--all-trackers\",\"description\":\"Query all configured trackers\",\"required\":false,\"valueHint\":null},{\"flags\":\"--triage\",\"description\":\"Show triage queue\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-show\",\"path\":[\"show\"],\"display\":\"/pan show\",\"description\":\"Unified lens: derived issue state, CV, context, health for one issue\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--cv\",\"description\":\"Agent work history only\",\"required\":false,\"valueHint\":null},{\"flags\":\"--context\",\"description\":\"Context engineering state only\",\"required\":false,\"valueHint\":null},{\"flags\":\"--health\",\"description\":\"Health + heartbeat only\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-open\",\"path\":[\"open\"],\"display\":\"/pan open\",\"description\":\"Open an issue workspace in your preferred editor\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"-e, --editor <editor>\",\"description\":\"Editor to use (cursor, windsurf, vscode, zed, etc.)\",\"required\":true,\"valueHint\":\"editor\"}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-review\",\"path\":[\"review\"],\"display\":\"/pan review\",\"description\":\"Review-loop management: request re-review, abort reviewers, restart a round\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Review\"},\n {\"id\":\"pan-review-request\",\"path\":[\"review\",\"request\"],\"display\":\"/pan review request\",\"description\":\"Request re-review after fixing feedback\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"-m, --message <text>\",\"description\":\"Message describing the fixes applied\",\"required\":true,\"valueHint\":\"text\"}],\"aliases\":[],\"category\":\"Review\"},\n {\"id\":\"pan-review-waive-test-removal\",\"path\":[\"review\",\"waive-test-removal\"],\"display\":\"/pan review waive-test-removal\",\"description\":\"Operator-only: let a net test removal past the test-skip gate at the current head\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--reason <text>\",\"description\":\"Why the removed tests are gone and nothing replaces them\",\"required\":true,\"valueHint\":\"text\"}],\"aliases\":[],\"category\":\"Review\"},\n {\"id\":\"pan-review-abort\",\"path\":[\"review\",\"abort\"],\"display\":\"/pan review abort\",\"description\":\"Kill all running reviewer sessions and leave the worker idle\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Review\"},\n {\"id\":\"pan-review-restart\",\"path\":[\"review\",\"restart\"],\"display\":\"/pan review restart\",\"description\":\"Resume review and re-dispatch reviewers missing a report\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--model <model>\",\"description\":\"Override model for all reviewers (e.g. gpt-5.4, claude-sonnet-5)\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--role <role>\",\"description\":\"Restart only a specific reviewer role (correctness/security/performance/requirements)\",\"required\":true,\"valueHint\":\"role\"}],\"aliases\":[],\"category\":\"Review\"},\n {\"id\":\"pan-staffing\",\"path\":[\"staffing\"],\"display\":\"/pan staffing\",\"description\":\"Show the work model and swarm policy in effect for an issue\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-backlog\",\"path\":[\"backlog\"],\"display\":\"/pan backlog\",\"description\":\"Backlog sequencer management\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-backlog-write-sequence\",\"path\":[\"backlog\",\"write-sequence\"],\"display\":\"/pan backlog write-sequence\",\"description\":\"Validate a SequenceDoc JSON file, write it to .pan/backlog/sequence.md, and commit it\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project-root <path>\",\"description\":\"Project root (default: cwd)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-plan\",\"path\":[\"plan\"],\"display\":\"/pan plan\",\"description\":\"Planning lifecycle commands\",\"args\":[{\"name\":\"id\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--auto\",\"description\":\"Run non-interactive planning; inferred choices are recorded in plan.autoDecisions[]\",\"required\":false,\"valueHint\":null},{\"flags\":\"--auto-start\",\"description\":\"[deprecated: use pan start <id>] After planning completes, automatically start the work agent — used by autonomous orchestrators\",\"required\":false,\"valueHint\":null},{\"flags\":\"--probe\",\"description\":\"Add an adversarial pre-finalize probe pass to the planning prompt\",\"required\":false,\"valueHint\":null},{\"flags\":\"--model <model>\",\"description\":\"Model to use for the planning role\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--harness <harness>\",\"description\":\"Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse | prime-agent (defaults to role/provider settings)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--effort <level>\",\"description\":\"Planning effort: low | medium | high | xhigh | max\",\"required\":true,\"valueHint\":\"level\"},{\"flags\":\"--remote\",\"description\":\"Use remote planning workspace (Fly.io)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--local\",\"description\":\"Use local planning workspace\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-plan-finalize\",\"path\":[\"plan\",\"finalize\"],\"display\":\"/pan plan finalize\",\"description\":\"Mark the workspace plan as proposed and promote it to canonical state\",\"args\":[],\"options\":[{\"flags\":\"-w, --workspace <path>\",\"description\":\"Workspace path (defaults to cwd, walks up to find .pan/)\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--json\",\"description\":\"Emit JSON result\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-promote\",\"description\":\"Skip auto-promotion to main; leave spec at status=proposed for manual Done\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-quality-lint\",\"description\":\"Emergency bypass for xBRIEF quality lint during finalize\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-prd\",\"description\":\"Bypass the PRD-first gate for a genuinely trivial issue (loud; prefer writing the PRD)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--critic\",\"description\":\"Require an independent different-family plan critique before promotion (automatic for architecture, substrate-improvement and security labels)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-plan-done\",\"path\":[\"plan\",\"done\"],\"display\":\"/pan plan done\",\"description\":\"Complete planning — promote the xBRIEF and transition the issue to Planned\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--no-prd\",\"description\":\"Bypass the PRD-first gate for a genuinely trivial issue (loud; prefer writing the PRD)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-tell\",\"path\":[\"tell\"],\"display\":\"/pan tell\",\"description\":\"Send message to running agent\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"message\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Deliver even to a critic or verifier lane that already filed its verdict\",\"required\":false,\"valueHint\":null},{\"flags\":\"--steer\",\"description\":\"Interrupt the running turn and send now (Claude Code send-now; Ctrl+X Ctrl+S)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-ask\",\"path\":[\"ask\"],\"display\":\"/pan ask\",\"description\":\"Ask the operator a blocking decision; it appears in the dashboard Needs-you\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"question\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--option <label>\",\"description\":\"A choice the operator can pick (repeat 2-4 times)\",\"required\":true,\"valueHint\":\"label\"},{\"flags\":\"--context <text>\",\"description\":\"What you already tried or know, shown with the question\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--withdraw\",\"description\":\"Close your open decision request (answered another way, or no longer needed)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-answer\",\"path\":[\"answer\"],\"display\":\"/pan answer\",\"description\":\"Show a pending pane choice, or answer its numbered option\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"option\",\"required\":false,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-monitor\",\"path\":[\"monitor\"],\"display\":\"/pan monitor\",\"description\":\"Long-running background inbox: drain agent mail to stdout (run inside the agent session; PAN-3015)\",\"args\":[{\"name\":\"id\",\"required\":false,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-inbox\",\"path\":[\"inbox\"],\"display\":\"/pan inbox\",\"description\":\"Print full bodies of recent agent mail (unread + read archive); moves nothing\",\"args\":[{\"name\":\"id\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--limit <n>\",\"description\":\"Max messages to print (default 10)\",\"required\":true,\"valueHint\":\"n\"}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-kill\",\"path\":[\"kill\"],\"display\":\"/pan kill\",\"description\":\"Stop one qualified agent, or all agents when given an issue ID (workspace preserved)\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Force kill without confirmation\",\"required\":false,\"valueHint\":null}],\"aliases\":[\"stop\"],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-reset-session\",\"path\":[\"reset-session\"],\"display\":\"/pan reset-session\",\"description\":\"Clear saved session pointers so the next start creates a fresh session\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-pause\",\"path\":[\"pause\"],\"display\":\"/pan pause\",\"description\":\"Persistently pause an agent and stop it if running\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--reason <reason>\",\"description\":\"Reason to store with the pause gate\",\"required\":true,\"valueHint\":\"reason\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-unpause\",\"path\":[\"unpause\"],\"display\":\"/pan unpause\",\"description\":\"Clear an agent pause gate without spawning it\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-untroubled\",\"path\":[\"untroubled\"],\"display\":\"/pan untroubled\",\"description\":\"Clear an agent troubled gate without spawning it\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-fork\",\"path\":[\"fork\"],\"display\":\"/pan fork\",\"description\":\"Summary Fork a conversation — creates new session from a summary of previous work; omit <conv> to fork the conversation you are in\",\"args\":[{\"name\":\"conv\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--model <model>\",\"description\":\"Model for the summary-forked session\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--effort <level>\",\"description\":\"Reasoning effort for the new conversation: low, medium, high, xhigh or max; defaults to the source conversation's effort\",\"required\":true,\"valueHint\":\"level\"},{\"flags\":\"--cwd <path>\",\"description\":\"Working directory for the summary-forked session\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--allow-primary\",\"description\":\"Operator only: allow --cwd to be a project's primary checkout (refused for agent sessions)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--project <key>\",\"description\":\"Project (yaml key or display name) for the new conversation; defaults to inheriting the source conversation's project\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--plain\",\"description\":\"Skip summary generation and copy raw conversation history\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-handoff\",\"path\":[\"handoff\"],\"display\":\"/pan handoff\",\"description\":\"Conversation handoff that spawns a new conversation; omit <conv> (or pass \\\"self\\\") to hand off the conversation you are in; trailing text becomes the focus — MAX 10000 characters (keep it short; long briefs belong in a file the focus points at). Very large source conversations are auto-degraded (truncated smart summary → heuristic → focus-only) and still hand off without aborting.\",\"args\":[{\"name\":\"conv\",\"required\":false,\"variadic\":false},{\"name\":\"focus\",\"required\":false,\"variadic\":true}],\"options\":[{\"flags\":\"--model <model>\",\"description\":\"Model for the handoff-forked (new) conversation\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--effort <level>\",\"description\":\"Reasoning effort for the new conversation: low, medium, high, xhigh or max; defaults to the source conversation's effort\",\"required\":true,\"valueHint\":\"level\"},{\"flags\":\"--harness <harness>\",\"description\":\"Ignored: harness is provider-default-only (PAN-1984)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--cwd <path>\",\"description\":\"Working directory for the new conversation\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--allow-primary\",\"description\":\"Operator only: allow --cwd to be a project's primary checkout (refused for agent sessions)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--project <key>\",\"description\":\"Project (yaml key or display name) for the new conversation; defaults to inheriting the source conversation's project\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--issue <id>\",\"description\":\"Issue ID to associate with the new conversation; without --cwd the new conversation starts in the issue workspace when it exists\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--role <role>\",\"description\":\"Pane role for the new conversation: conversation (default), work, review, test, plan. With --issue, review makes the handoff the issue's Review row\",\"required\":true,\"valueHint\":\"role\"},{\"flags\":\"--title <title>\",\"description\":\"Title for the new conversation; defaults to \\\"Handoff: <focus>\\\" (first ~70 chars) or \\\"Handoff: <source title>\\\" without focus\",\"required\":true,\"valueHint\":\"title\"},{\"flags\":\"--author <author>\",\"description\":\"Who authors the handoff doc: external (default) or source\",\"required\":true,\"valueHint\":\"author\"},{\"flags\":\"--author-model <model>\",\"description\":\"Model for the external authoring session (only when --author=external)\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--author-harness <harness>\",\"description\":\"Ignored: author harness is provider-default-only (PAN-1984)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--skill <name>\",\"description\":\"Turn this skill on for the new conversation only (repeatable); a pack skill is <pack>/<skill>\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--pack <id>\",\"description\":\"Turn every skill of this cached skill pack on for the new conversation only (repeatable)\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--hold\",\"description\":\"Create and launch the new conversation without sending the kickoff; start it with Send in the dashboard or pan handoff start <conv>\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-unarchive-conversation\",\"path\":[\"unarchive-conversation\"],\"display\":\"/pan unarchive-conversation\",\"description\":\"Restore an archived conversation by exact name or matching title\",\"args\":[{\"name\":\"query\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-resume\",\"path\":[\"resume\"],\"display\":\"/pan resume\",\"description\":\"Resume from saved Claude session\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--host\",\"description\":\"Bypass workspace docker stack-health gate and resume on the host\",\"required\":false,\"valueHint\":null},{\"flags\":\"--yes\",\"description\":\"Confirm --host in non-interactive contexts\",\"required\":false,\"valueHint\":null},{\"flags\":\"--compact\",\"description\":\"Summarize the saved session out-of-band and respawn a fresh session seeded with the summary (recovers a context-wedged agent without the harness /compact deadlock)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-recover\",\"path\":[\"recover\"],\"display\":\"/pan recover\",\"description\":\"Recover crashed or stopped agent\",\"args\":[{\"name\":\"id\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--all\",\"description\":\"Auto-recover all crashed agents\",\"required\":false,\"valueHint\":null},{\"flags\":\"--compact\",\"description\":\"Compact-respawn a context-wedged agent, including troubled/user-stopped work agents that automatic recovery will not resume\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--model <model>\",\"description\":\"Override model on recovery (e.g. switch off Kimi when quota is exhausted)\",\"required\":true,\"valueHint\":\"model\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-sync-main\",\"path\":[\"sync-main\"],\"display\":\"/pan sync-main\",\"description\":\"Merge latest main into workspace feature branch\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-done\",\"path\":[\"done\"],\"display\":\"/pan done\",\"description\":\"Mark work complete, move to review\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"-c, --comment <message>\",\"description\":\"Comment for the tracker\",\"required\":true,\"valueHint\":\"message\"},{\"flags\":\"--force\",\"description\":\"Skip pre-flight completion checks\",\"required\":false,\"valueHint\":null},{\"flags\":\"--test-waived <reason>\",\"description\":\"Skip the test-requirement gate; reason must include rationale and SHA of an existing test that covers the requirement\",\"required\":true,\"valueHint\":\"reason\"},{\"flags\":\"--strike\",\"description\":\"Strike shape: verify the strike branch is contained in origin/main; no PR is opened\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-reopen\",\"path\":[\"reopen\"],\"display\":\"/pan reopen\",\"description\":\"Re-enter the pipeline for a closed/completed/cancelled issue (resets specialist state). For issues already in progress, use `pan review restart`.\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--reason <reason>\",\"description\":\"Reason for reopening\",\"required\":true,\"valueHint\":\"reason\"},{\"flags\":\"--force\",\"description\":\"Skip the in-progress guard and confirmation prompt\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-wipe\",\"path\":[\"wipe\"],\"display\":\"/pan wipe\",\"description\":\"Destructive: removes workspace files, kills processes, deletes branches, clears review state, and resets tracker status\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Skip confirmation\",\"required\":false,\"valueHint\":null},{\"flags\":\"-y, --yes\",\"description\":\"Skip confirmation\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-destroy\",\"path\":[\"destroy\"],\"display\":\"/pan destroy\",\"description\":\"Alias for workspace destroy: remove the issue workspace worktree and branch\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Force removal even with uncommitted changes\",\"required\":false,\"valueHint\":null},{\"flags\":\"--project <path>\",\"description\":\"Explicit project path (overrides registry)\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--shape <shape>\",\"description\":\"Limit to one shape: base|strike|slot|all (default: all)\",\"required\":true,\"valueHint\":\"shape\"}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-close\",\"path\":[\"close\"],\"display\":\"/pan close\",\"description\":\"Verify, clean up, and close issue on tracker\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Skip confirmation prompt\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--accept-review\",\"description\":\"Accept a missed DoD row 1 (Review passed) — recorded as an explicit override in the close-out record\",\"required\":false,\"valueHint\":null},{\"flags\":\"--accept-tests\",\"description\":\"Accept a missed DoD row 2 (Tests passed) — recorded as an explicit override in the close-out record\",\"required\":false,\"valueHint\":null},{\"flags\":\"--accept-verification\",\"description\":\"Accept a missed DoD row 3 (Verification green on the branch) — recorded as an explicit override in the close-out record\",\"required\":false,\"valueHint\":null},{\"flags\":\"--accept-merged\",\"description\":\"Accept a missed DoD row 4 (Merged to main) — recorded as an explicit override in the close-out record\",\"required\":false,\"valueHint\":null},{\"flags\":\"--accept-post-merge\",\"description\":\"Accept a missed DoD row 5 (Post-merge lifecycle ran) — recorded as an explicit override in the close-out record\",\"required\":false,\"valueHint\":null},{\"flags\":\"--accept-main-verify\",\"description\":\"Accept a missed DoD row 6 (Verified on main) — recorded as an explicit override in the close-out record\",\"required\":false,\"valueHint\":null},{\"flags\":\"--accept-ship\",\"description\":\"Accept a missed DoD row 7 (Version strings propagated) — recorded as an explicit override in the close-out record\",\"required\":false,\"valueHint\":null},{\"flags\":\"--accept-deploy\",\"description\":\"Accept a missed DoD row 8 (Deployed) — recorded as an explicit override in the close-out record\",\"required\":false,\"valueHint\":null},{\"flags\":\"--abandon <reason>\",\"description\":\"Record an abandoned disposition (PAN-3211): skip the DoD gate and close without landing evidence. Operator-conversation only; cannot be combined with --accept-* flags\",\"required\":true,\"valueHint\":\"reason\"},{\"flags\":\"--residue <reason>\",\"description\":\"Record a residue disposition (PAN-3396): close stale convention PRs/MRs, skip the DoD gate with verified evidence, and mark terminal without merge claim. Operator-conversation only; cannot be combined with --abandon or --accept-* flags\",\"required\":true,\"valueHint\":\"reason\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-start\",\"path\":[\"start\"],\"display\":\"/pan start\",\"description\":\"Create workspace and spawn agent for an issue\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--model <model>\",\"description\":\"Work model for this session (defaults to Cloister config)\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--harness <harness>\",\"description\":\"Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse | prime-agent (defaults to role/provider settings)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--effort <level>\",\"description\":\"Claude Code effort: low | medium | high | xhigh | max (defaults to roles.work.effort)\",\"required\":true,\"valueHint\":\"level\"},{\"flags\":\"--tier <tier>\",\"description\":\"Remote workspace resiliency tier: ephemeral | durable (defaults to remote.resiliency_tier)\",\"required\":true,\"valueHint\":\"tier\"},{\"flags\":\"--dry-run\",\"description\":\"Show what would be created\",\"required\":false,\"valueHint\":null},{\"flags\":\"--remote\",\"description\":\"Use remote workspace (Fly.io)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--local\",\"description\":\"Use local workspace (explicit override)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--plan <mode>\",\"description\":\"Planning depth when no plan exists yet: interactive | auto | skip (default: config planning.default_mode, shipped default auto)\",\"required\":true,\"valueHint\":\"mode\"},{\"flags\":\"--plan-model <model>\",\"description\":\"Planning model override when this start auto-plans (defaults to roles.plan.model); the work model stays --model\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--auto\",\"description\":\"[deprecated: use --plan skip] Skip planning agent by synthesizing a minimal xBRIEF from the issue title/body\",\"required\":false,\"valueHint\":null},{\"flags\":\"--force\",\"description\":\"Clear paused, troubled, and pending-operator-decision gates and start anyway\",\"required\":false,\"valueHint\":null},{\"flags\":\"--fresh\",\"description\":\"Drop the saved Claude session (non-destructive) and start a new one — replaces a live session too, so it recovers an inert agent without a separate pan kill\",\"required\":false,\"valueHint\":null},{\"flags\":\"--host\",\"description\":\"Bypass workspace docker stack-health gate and spawn on the host\",\"required\":false,\"valueHint\":null},{\"flags\":\"--yes\",\"description\":\"Confirm --host in non-interactive contexts\",\"required\":false,\"valueHint\":null},{\"flags\":\"--skip-freshness\",\"description\":\"Bypass the plan-freshness preflight and spawn even if the plan names files deleted since it was written\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-strike\",\"path\":[\"strike\"],\"display\":\"/pan strike\",\"description\":\"Spawn strike agent(s) — implement a fix on a strike branch and open a PR against main for the operator to merge. Bypasses plan/review/test/ship.\",\"args\":[{\"name\":\"ids\",\"required\":true,\"variadic\":true}],\"options\":[{\"flags\":\"--model <model>\",\"description\":\"Model override (defaults to roles.strike.model from config)\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--harness <harness>\",\"description\":\"Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse | prime-agent (defaults to role/provider settings)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--effort <level>\",\"description\":\"Strike effort: low | medium | high | xhigh | max (default high)\",\"required\":true,\"valueHint\":\"level\"},{\"flags\":\"--dry-run\",\"description\":\"Print what would happen without spawning\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-knowledge\",\"path\":[\"knowledge\"],\"display\":\"/pan knowledge\",\"description\":\"Maintain or open the project OKF bundle\",\"args\":[{\"name\":\"id\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--focus <topic>\",\"description\":\"Run /okf study for a focused topic before syncing\",\"required\":true,\"valueHint\":\"topic\"},{\"flags\":\"--retro\",\"description\":\"Run /okf retro before syncing\",\"required\":false,\"valueHint\":null},{\"flags\":\"--model <model>\",\"description\":\"Model override (defaults to roles.knowledge.model from config)\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--effort <level>\",\"description\":\"Knowledge effort: low | medium | high | xhigh | max\",\"required\":true,\"valueHint\":\"level\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-knowledge-open\",\"path\":[\"knowledge\",\"open\"],\"display\":\"/pan knowledge open\",\"description\":\"Open the project OKF bundle in the local knowledge viewer\",\"args\":[],\"options\":[{\"flags\":\"--no-install\",\"description\":\"Do not install @inkeep/open-knowledge when the ok binary is missing\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-browser\",\"description\":\"Start or reuse the viewer without opening a browser\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-swarm\",\"path\":[\"swarm\"],\"display\":\"/pan swarm\",\"description\":\"Start or recover parallel swarm slots for a planned issue\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-swarm-dispatch\",\"path\":[\"swarm\",\"dispatch\"],\"display\":\"/pan swarm dispatch\",\"description\":\"Run one gated swarm dispatch pass\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print structured dispatch results\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-swarm-merge\",\"path\":[\"swarm\",\"merge\"],\"display\":\"/pan swarm merge\",\"description\":\"Verify and merge one completed swarm slot\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"slotIndex\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print structured merge results\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-swarm-recover\",\"path\":[\"swarm\",\"recover\"],\"display\":\"/pan swarm recover\",\"description\":\"Recover a failed swarm slot\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"slotIndex\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--action <action>\",\"description\":\"Recovery action: retry, drop, handoff, or reclaim\",\"required\":true,\"valueHint\":\"action\"},{\"flags\":\"--operator\",\"description\":\"Override the three-intervention limit for this failure class\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-swarm-freeze\",\"path\":[\"swarm\",\"freeze\"],\"display\":\"/pan swarm freeze\",\"description\":\"Freeze swarm coordination for an issue: the Deacon skips it until resume\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--reason <text>\",\"description\":\"Reason recorded on the hold\",\"required\":true,\"valueHint\":\"text\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-swarm-resume\",\"path\":[\"swarm\",\"resume\"],\"display\":\"/pan swarm resume\",\"description\":\"Resume swarm coordination for a frozen issue on the next Deacon patrol\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-swarm-status\",\"path\":[\"swarm\",\"status\"],\"display\":\"/pan swarm status\",\"description\":\"Read-only reconciled swarm state: per-slot rows, hold state, and capacity\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print structured status including foreman, hold, and interventions\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-swarm-wait\",\"path\":[\"swarm\",\"wait\"],\"display\":\"/pan swarm wait\",\"description\":\"Wait for a swarm slot, foreman, or hold state transition\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--timeout <seconds>\",\"description\":\"Maximum wait in seconds\",\"required\":true,\"valueHint\":\"seconds\"},{\"flags\":\"--json\",\"description\":\"Print the structured status delta\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-swarm-stop\",\"path\":[\"swarm\",\"stop\"],\"display\":\"/pan swarm stop\",\"description\":\"Freeze swarm coordination, then stop all live slot agents (branches and worktrees preserved)\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--reason <text>\",\"description\":\"Reason recorded on the hold\",\"required\":true,\"valueHint\":\"text\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-swarm-reset\",\"path\":[\"swarm\",\"reset\"],\"display\":\"/pan swarm reset\",\"description\":\"Work-preserving reset: stop slots, push unmerged slot branches to origin, remove slot worktrees/branches, retire dead slot records, clear recorded slot state (hold stays set)\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Continue deleting even when pushing an unmerged branch to origin fails\",\"required\":false,\"valueHint\":null},{\"flags\":\"--reason <text>\",\"description\":\"Reason recorded on the hold\",\"required\":true,\"valueHint\":\"text\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task\",\"path\":[\"task\"],\"display\":\"/pan task\",\"description\":\"Read and update xBRIEF item state for one issue\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task-next\",\"path\":[\"task\",\"next\"],\"display\":\"/pan task next\",\"description\":\"\",\"args\":[{\"name\":\"issue\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task-show\",\"path\":[\"task\",\"show\"],\"display\":\"/pan task show\",\"description\":\"\",\"args\":[{\"name\":\"issue\",\"required\":true,\"variadic\":false},{\"name\":\"item\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task-claim\",\"path\":[\"task\",\"claim\"],\"display\":\"/pan task claim\",\"description\":\"\",\"args\":[{\"name\":\"issue\",\"required\":true,\"variadic\":false},{\"name\":\"item\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--steal\",\"description\":\"Claim even when a running agent holds this item or an overlapping one (foreman/operator override)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task-done\",\"path\":[\"task\",\"done\"],\"display\":\"/pan task done\",\"description\":\"Record an item as done. Requires a commit carrying \\\"Item: <item>\\\" on a pushed branch.\",\"args\":[{\"name\":\"issue\",\"required\":true,\"variadic\":false},{\"name\":\"item\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task-block\",\"path\":[\"task\",\"block\"],\"display\":\"/pan task block\",\"description\":\"\",\"args\":[{\"name\":\"issue\",\"required\":true,\"variadic\":false},{\"name\":\"item\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--on <refs...>\",\"description\":\"Issues or PRs this item waits on (PAN-123, #45, owner/repo#45, PR URL); Overdeck wakes the agent when all have merged\",\"required\":true,\"valueHint\":\"refs...\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task-unblock\",\"path\":[\"task\",\"unblock\"],\"display\":\"/pan task unblock\",\"description\":\"\",\"args\":[{\"name\":\"issue\",\"required\":true,\"variadic\":false},{\"name\":\"item\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task-reopen\",\"path\":[\"task\",\"reopen\"],\"display\":\"/pan task reopen\",\"description\":\"\",\"args\":[{\"name\":\"issue\",\"required\":true,\"variadic\":false},{\"name\":\"item\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task-cancel\",\"path\":[\"task\",\"cancel\"],\"display\":\"/pan task cancel\",\"description\":\"\",\"args\":[{\"name\":\"issue\",\"required\":true,\"variadic\":false},{\"name\":\"item\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-workspace\",\"path\":[\"workspace\"],\"display\":\"/pan workspace\",\"description\":\"Workspace management\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-create\",\"path\":[\"workspace\",\"create\"],\"display\":\"/pan workspace create\",\"description\":\"Create workspace for issue\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Show what would be created\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-skills\",\"description\":\"Skip skills/agents installation\",\"required\":false,\"valueHint\":null},{\"flags\":\"--labels <labels>\",\"description\":\"Comma-separated labels for routing (e.g., docs,marketing)\",\"required\":true,\"valueHint\":\"labels\"},{\"flags\":\"--project <path>\",\"description\":\"Explicit project path (overrides registry)\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--docker\",\"description\":\"Start Docker containers after workspace creation\",\"required\":false,\"valueHint\":null},{\"flags\":\"--remote\",\"description\":\"Create workspace on remote VM (Fly.io)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--local\",\"description\":\"Create workspace locally (explicit override)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-migrate\",\"path\":[\"workspace\",\"migrate\"],\"display\":\"/pan workspace migrate\",\"description\":\"Migrate workspace between local and remote (stops+pauses the local agent, commits and pushes all work first)\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--to <location>\",\"description\":\"Target location: \\\"remote\\\" or \\\"local\\\" (default: auto-detect from current location)\",\"required\":true,\"valueHint\":\"location\"},{\"flags\":\"--keep\",\"description\":\"Keep the source workspace after migration\",\"required\":false,\"valueHint\":null},{\"flags\":\"--force\",\"description\":\"Overwrite an existing destination workspace / ignore branch-drift guard\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-ssh\",\"path\":[\"workspace\",\"ssh\"],\"display\":\"/pan workspace ssh\",\"description\":\"SSH into remote workspace VM\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-sync-auth\",\"path\":[\"workspace\",\"sync-auth\"],\"display\":\"/pan workspace sync-auth\",\"description\":\"Sync Claude Code credentials to remote workspace\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-start\",\"path\":[\"workspace\",\"start\"],\"display\":\"/pan workspace start\",\"description\":\"Start a stopped remote workspace\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-stop\",\"path\":[\"workspace\",\"stop\"],\"display\":\"/pan workspace stop\",\"description\":\"Stop (hibernate) a remote workspace\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-list\",\"path\":[\"workspace\",\"list\"],\"display\":\"/pan workspace list\",\"description\":\"List all workspaces\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--all\",\"description\":\"List workspaces across all registered projects\",\"required\":false,\"valueHint\":null},{\"flags\":\"--kind <kind>\",\"description\":\"Filter by workspace kind (main|issue|scratch), reading through the resolver\",\"required\":true,\"valueHint\":\"kind\"},{\"flags\":\"--archived\",\"description\":\"Include archived workspaces (only applies with --kind)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--stale\",\"description\":\"Show reclaim candidates: merged branches still on disk, with sizes\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-destroy\",\"path\":[\"workspace\",\"destroy\"],\"display\":\"/pan workspace destroy\",\"description\":\"Destroy workspace (all shapes by default: base, strike, and slot worktrees)\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Force removal even with uncommitted changes\",\"required\":false,\"valueHint\":null},{\"flags\":\"--project <path>\",\"description\":\"Explicit project path (overrides registry)\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--shape <shape>\",\"description\":\"Limit to one shape: base|strike|slot|all (default: all)\",\"required\":true,\"valueHint\":\"shape\"},{\"flags\":\"--purge-memory\",\"description\":\"Also permanently delete the workspace's memory home (irreversible)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-new\",\"path\":[\"workspace\",\"new\"],\"display\":\"/pan workspace new\",\"description\":\"Create a scratch workspace (shared dir by default; --isolated for a git worktree)\",\"args\":[{\"name\":\"name\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Registered project key (defaults to the sole project, or the one resolved from cwd)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--isolated\",\"description\":\"Create an isolated git worktree instead of sharing the project directory\",\"required\":false,\"valueHint\":null},{\"flags\":\"--parent-branch <branch>\",\"description\":\"Parent branch for the isolated worktree (default: inferred from the project's current branch)\",\"required\":true,\"valueHint\":\"branch\"},{\"flags\":\"--target-path <dir>\",\"description\":\"Target an existing directory as the workspace path (rejects --isolated)\",\"required\":true,\"valueHint\":\"dir\"},{\"flags\":\"--dry-run\",\"description\":\"Print the resolved intent as JSON and create nothing\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-main\",\"path\":[\"workspace\",\"main\"],\"display\":\"/pan workspace main\",\"description\":\"Resolve or create the project's singleton main workspace\",\"args\":[],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Registered project key (defaults to the sole project, or the one resolved from cwd)\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-get\",\"path\":[\"workspace\",\"get\"],\"display\":\"/pan workspace get\",\"description\":\"Show a workspace row by id\",\"args\":[{\"name\":\"ws\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-activate\",\"path\":[\"workspace\",\"activate\"],\"display\":\"/pan workspace activate\",\"description\":\"Touch a workspace's last-accessed time and print its layout hint\",\"args\":[{\"name\":\"ws\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-archive\",\"path\":[\"workspace\",\"archive\"],\"display\":\"/pan workspace archive\",\"description\":\"Archive a workspace (reversible; refuses kind=main)\",\"args\":[{\"name\":\"ws\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-relocate\",\"path\":[\"workspace\",\"relocate\"],\"display\":\"/pan workspace relocate\",\"description\":\"Point a workspace at a new path (refuses kind=issue; kind=main requires --force)\",\"args\":[{\"name\":\"ws\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--path <dir>\",\"description\":\"New path (must be an existing directory)\",\"required\":true,\"valueHint\":\"dir\"},{\"flags\":\"--force\",\"description\":\"Allow relocating the main workspace, diverging it from projects.yaml\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-render-devcontainer\",\"path\":[\"workspace\",\"render-devcontainer\"],\"display\":\"/pan workspace render-devcontainer\",\"description\":\"Re-render <workspace>/.devcontainer/ from the project compose template\",\"args\":[{\"name\":\"featureName\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Project key in projects.yaml (e.g. mind-your-now)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--workspace <path>\",\"description\":\"Override the inferred workspace path\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--json\",\"description\":\"Emit JSON instead of human-readable output\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-deep-clean\",\"path\":[\"workspace\",\"deep-clean\"],\"display\":\"/pan workspace deep-clean\",\"description\":\"Interactive: git clean -fd against a workspace (preserves protected paths)\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--yes\",\"description\":\"Skip confirmation prompt (still requires a TTY)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-rebuild\",\"path\":[\"workspace\",\"rebuild\"],\"display\":\"/pan workspace rebuild\",\"description\":\"Tear down, re-render, and restart a single workspace Docker stack\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-reap\",\"path\":[\"workspace\",\"reap\"],\"display\":\"/pan workspace reap\",\"description\":\"List or remove orphaned unhealthy workspace Docker stacks and orphaned workspace networks\",\"args\":[],\"options\":[{\"flags\":\"--days <days>\",\"description\":\"Minimum age in days\",\"required\":true,\"valueHint\":\"days\"},{\"flags\":\"--apply\",\"description\":\"Run docker compose down -v --remove-orphans for stack candidates and remove orphaned workspace networks\",\"required\":false,\"valueHint\":null},{\"flags\":\"--yes\",\"description\":\"Skip confirmation when using --apply\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-update\",\"path\":[\"workspace\",\"update\"],\"display\":\"/pan workspace update\",\"description\":\"Update skills/agents/rules in an existing workspace\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Overwrite user-modified files\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-use-config\",\"path\":[\"workspace\",\"use-config\"],\"display\":\"/pan workspace use-config\",\"description\":\"Copy installed Overdeck config into workspace (makes it user settings)\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <path>\",\"description\":\"Explicit project path (overrides registry)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-add-repo\",\"path\":[\"workspace\",\"add-repo\"],\"display\":\"/pan workspace add-repo\",\"description\":\"Add configured repositories or register a new repository in a polyrepo workspace\",\"args\":[{\"name\":\"workspaceId\",\"required\":true,\"variadic\":false},{\"name\":\"repoNames\",\"required\":false,\"variadic\":true}],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Show what would be added\",\"required\":false,\"valueHint\":null},{\"flags\":\"--group <groupName>\",\"description\":\"Add all repos from a named group (from groups_file)\",\"required\":true,\"valueHint\":\"groupName\"},{\"flags\":\"--new <gitUrl>\",\"description\":\"Register a repository that was created during this issue\",\"required\":true,\"valueHint\":\"gitUrl\"},{\"flags\":\"--project <key>\",\"description\":\"Explicit project key from projects.yaml (overrides registry)\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-vault\",\"path\":[\"vault\"],\"display\":\"/pan vault\",\"description\":\"Session Vault: encrypted off-machine storage and cross-machine resume for agent conversations\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-setup\",\"path\":[\"vault\",\"setup\"],\"display\":\"/pan vault setup\",\"description\":\"Enable the vault against your own git remote and print the recovery phrase once\",\"args\":[{\"name\":\"git-url\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--hooks\",\"description\":\"Also register the Claude Code Stop hook that saves after each turn\",\"required\":false,\"valueHint\":null},{\"flags\":\"--passphrase-file <path>\",\"description\":\"Also enable passphrase unlock with the passphrase in this file\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--generate-passphrase\",\"description\":\"Also enable passphrase unlock with a generated 6-word passphrase, printed once\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-passphrase\",\"description\":\"Do not offer passphrase unlock\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-join\",\"path\":[\"vault\",\"join\"],\"display\":\"/pan vault join\",\"description\":\"Join an existing vault from another machine with the vault passphrase or the recovery phrase\",\"args\":[{\"name\":\"git-url\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--phrase-file <path>\",\"description\":\"Read the 24-word recovery phrase from a file instead of prompting\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--passphrase-file <path>\",\"description\":\"Read the vault passphrase from a file instead of prompting\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-passphrase\",\"path\":[\"vault\",\"passphrase\"],\"display\":\"/pan vault passphrase\",\"description\":\"Turn passphrase unlock for new machines on (set) or off (remove); the vault key stays the same\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-passphrase-set\",\"path\":[\"vault\",\"passphrase\",\"set\"],\"display\":\"/pan vault passphrase set\",\"description\":\"Wrap the vault key under a passphrase so a new machine can join without the recovery phrase\",\"args\":[],\"options\":[{\"flags\":\"--passphrase-file <path>\",\"description\":\"Read the passphrase from a file instead of prompting\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--generate\",\"description\":\"Generate a 6-word passphrase and print it once\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-passphrase-remove\",\"path\":[\"vault\",\"passphrase\",\"remove\"],\"display\":\"/pan vault passphrase remove\",\"description\":\"Delete the passphrase unlock object; joining then needs the recovery phrase\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-rotate-key\",\"path\":[\"vault\",\"rotate-key\"],\"display\":\"/pan vault rotate-key\",\"description\":\"Replace the vault key after losing a device: re-encrypt refs under a new key, keep old chunks readable, print a new recovery phrase\",\"args\":[],\"options\":[{\"flags\":\"--yes\",\"description\":\"Rotate without the confirmation prompt\",\"required\":false,\"valueHint\":null},{\"flags\":\"--passphrase-file <path>\",\"description\":\"Re-wrap passphrase unlock under the new key with the passphrase in this file\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--generate-passphrase\",\"description\":\"Re-wrap passphrase unlock under the new key with a generated 6-word passphrase, printed once\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-passphrase\",\"description\":\"Turn passphrase unlock off\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-status\",\"path\":[\"vault\",\"status\"],\"display\":\"/pan vault status\",\"description\":\"Show backend, this machine, owned records, last sync and the machine list\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output in JSON format\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-save\",\"path\":[\"vault\",\"save\"],\"display\":\"/pan vault save\",\"description\":\"Settle one transcript (by session id or path) or many into the vault\",\"args\":[{\"name\":\"session-id-or-path\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--all\",\"description\":\"Settle every discovered transcript\",\"required\":false,\"valueHint\":null},{\"flags\":\"--since <date>\",\"description\":\"With --all: only transcripts modified on or after this date\",\"required\":true,\"valueHint\":\"date\"},{\"flags\":\"--harness <harness>\",\"description\":\"With --all: only this harness (claude-code, codex, ...)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--hook\",\"description\":\"Claude Code Stop-hook mode: read {session_id, transcript_path} JSON from stdin, print nothing, exit 0\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-sync\",\"path\":[\"vault\",\"sync\"],\"display\":\"/pan vault sync\",\"description\":\"Settle owned transcripts that grew, register this machine and refresh the list\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-list\",\"path\":[\"vault\",\"list\"],\"display\":\"/pan vault list\",\"description\":\"List saved conversations from the local cache (never contacts the backend)\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output in JSON format\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-show\",\"path\":[\"vault\",\"show\"],\"display\":\"/pan vault show\",\"description\":\"Print a saved conversation read-only with its versions\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output in JSON format\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-resume\",\"path\":[\"vault\",\"resume\"],\"display\":\"/pan vault resume\",\"description\":\"Continue a saved conversation here: <id> or <id>@<version>; adopts it and launches the harness\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--cwd <dir>\",\"description\":\"Working directory to resume in (default: the saved cwd)\",\"required\":true,\"valueHint\":\"dir\"},{\"flags\":\"--no-launch\",\"description\":\"Print the launch command instead of running it\",\"required\":false,\"valueHint\":null},{\"flags\":\"--on-drift <choice>\",\"description\":\"When the cwd state differs from the saved state: continue | note | cancel\",\"required\":true,\"valueHint\":\"choice\"},{\"flags\":\"--no-code\",\"description\":\"Do not apply the saved code snapshot; only continue the conversation\",\"required\":false,\"valueHint\":null},{\"flags\":\"--worktree <dir>\",\"description\":\"Apply the code snapshot into a new git worktree at <dir> instead of the target checkout\",\"required\":true,\"valueHint\":\"dir\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-exclude\",\"path\":[\"vault\",\"exclude\"],\"display\":\"/pan vault exclude\",\"description\":\"Exclude conversations by cwd path, git origin or session id; an excluded saved record becomes a tombstone\",\"args\":[{\"name\":\"path\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--origin <url>\",\"description\":\"Exclude conversations whose git origin is this URL\",\"required\":true,\"valueHint\":\"url\"},{\"flags\":\"--session <id>\",\"description\":\"Exclude one session by native session id or vault id\",\"required\":true,\"valueHint\":\"id\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-include\",\"path\":[\"vault\",\"include\"],\"display\":\"/pan vault include\",\"description\":\"Remove an exclusion added with pan vault exclude\",\"args\":[{\"name\":\"path\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--origin <url>\",\"description\":\"Include conversations whose git origin is this URL again\",\"required\":true,\"valueHint\":\"url\"},{\"flags\":\"--session <id>\",\"description\":\"Include one session again\",\"required\":true,\"valueHint\":\"id\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-allow-secret\",\"path\":[\"vault\",\"allow-secret\"],\"display\":\"/pan vault allow-secret\",\"description\":\"Allow one blocked transcript line, or the blocked code lines of one file, for that record only\",\"args\":[{\"name\":\"id-or-path\",\"required\":true,\"variadic\":false},{\"name\":\"line\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--file <path>\",\"description\":\"Allow the blocked lines of this file in the code snapshot (path relative to the repository root)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-evict\",\"path\":[\"vault\",\"evict\"],\"display\":\"/pan vault evict\",\"description\":\"Review the pending-deletion batch (default) or act on it; nothing is deleted without --confirm\",\"args\":[],\"options\":[{\"flags\":\"--review\",\"description\":\"Scan and print the batch with its fingerprint (default)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--confirm <fingerprint>\",\"description\":\"Delete the reviewed files if the batch still matches this fingerprint\",\"required\":true,\"valueHint\":\"fingerprint\"},{\"flags\":\"--decline <vaultId>\",\"description\":\"Remove an entry from the batch and do not offer it again\",\"required\":true,\"valueHint\":\"vaultId\"},{\"flags\":\"--reoffer <vaultId>\",\"description\":\"Allow a declined entry to be offered again\",\"required\":true,\"valueHint\":\"vaultId\"},{\"flags\":\"--clear\",\"description\":\"Empty the batch without deleting or declining anything\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-restore\",\"path\":[\"vault\",\"restore\"],\"display\":\"/pan vault restore\",\"description\":\"Rebuild an evicted transcript byte for byte at its original path\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--to <path>\",\"description\":\"Write the rebuilt file here instead of the recorded path\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-test\",\"path\":[\"test\"],\"display\":\"/pan test\",\"description\":\"Test running and management\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-test-run\",\"path\":[\"test\",\"run\"],\"display\":\"/pan test run\",\"description\":\"Run tests for a project or workspace\",\"args\":[{\"name\":\"target\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--project <name>\",\"description\":\"Project name from registry\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--tests <names>\",\"description\":\"Comma-separated test names to run\",\"required\":true,\"valueHint\":\"names\"},{\"flags\":\"--no-notify\",\"description\":\"Skip desktop notification\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-test-list\",\"path\":[\"test\",\"list\"],\"display\":\"/pan test list\",\"description\":\"List configured tests for a project\",\"args\":[{\"name\":\"project\",\"required\":false,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts\",\"path\":[\"tts\"],\"display\":\"/pan tts\",\"description\":\"Local TTS daemon helpers\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-voices\",\"path\":[\"tts\",\"voices\"],\"display\":\"/pan tts voices\",\"description\":\"List and inspect saved TTS voices\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-voices-list\",\"path\":[\"tts\",\"voices\",\"list\"],\"display\":\"/pan tts voices list\",\"description\":\"List saved TTS voices\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-voices-show\",\"path\":[\"tts\",\"voices\",\"show\"],\"display\":\"/pan tts voices show\",\"description\":\"Show saved TTS voice details\",\"args\":[{\"name\":\"name\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-voices-play\",\"path\":[\"tts\",\"voices\",\"play\"],\"display\":\"/pan tts voices play\",\"description\":\"Speak with a saved TTS voice\",\"args\":[{\"name\":\"name\",\"required\":true,\"variadic\":false},{\"name\":\"text\",\"required\":false,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-voices-delete\",\"path\":[\"tts\",\"voices\",\"delete\"],\"display\":\"/pan tts voices delete\",\"description\":\"Delete a saved TTS voice\",\"args\":[{\"name\":\"name\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-voices-set-default\",\"path\":[\"tts\",\"voices\",\"set-default\"],\"display\":\"/pan tts voices set-default\",\"description\":\"Set the system TTS voice\",\"args\":[{\"name\":\"name\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-voices-map\",\"path\":[\"tts\",\"voices\",\"map\"],\"display\":\"/pan tts voices map\",\"description\":\"Map a TTS event key to a saved voice\",\"args\":[{\"name\":\"event\",\"required\":true,\"variadic\":false},{\"name\":\"name\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-start\",\"path\":[\"tts\",\"start\"],\"display\":\"/pan tts start\",\"description\":\"Start the local Qwen TTS daemon\",\"args\":[],\"options\":[{\"flags\":\"--detach\",\"description\":\"Run the daemon detached in the background\",\"required\":false,\"valueHint\":null},{\"flags\":\"--foreground\",\"description\":\"Run the daemon in the foreground\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-wait-for-health\",\"description\":\"Return without waiting for /health\",\"required\":false,\"valueHint\":null},{\"flags\":\"--timeout-ms <ms>\",\"description\":\"Health wait timeout in milliseconds\",\"required\":true,\"valueHint\":\"ms\"}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-stop\",\"path\":[\"tts\",\"stop\"],\"display\":\"/pan tts stop\",\"description\":\"Stop the local Qwen TTS daemon\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-status\",\"path\":[\"tts\",\"status\"],\"display\":\"/pan tts status\",\"description\":\"Show local Qwen TTS daemon status\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-restart\",\"path\":[\"tts\",\"restart\"],\"display\":\"/pan tts restart\",\"description\":\"Restart the local Qwen TTS daemon\",\"args\":[],\"options\":[{\"flags\":\"--no-wait-for-health\",\"description\":\"Return without waiting for /health\",\"required\":false,\"valueHint\":null},{\"flags\":\"--timeout-ms <ms>\",\"description\":\"Health wait timeout in milliseconds\",\"required\":true,\"valueHint\":\"ms\"}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-install-systemd\",\"path\":[\"tts\",\"install-systemd\"],\"display\":\"/pan tts install-systemd\",\"description\":\"Install a user systemd unit for the local Qwen TTS daemon\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-test\",\"path\":[\"tts\",\"test\"],\"display\":\"/pan tts test\",\"description\":\"Speak a test phrase using the configured system (priority) voice\",\"args\":[{\"name\":\"text\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--status\",\"description\":\"Use the status voice instead of the system (priority) voice\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-release\",\"path\":[\"release\"],\"display\":\"/pan release\",\"description\":\"Intentional release flow for stable and canary publishes\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-release-check\",\"path\":[\"release\",\"check\"],\"display\":\"/pan release check\",\"description\":\"Run release preflight checks\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-release-stable\",\"path\":[\"release\",\"stable\"],\"display\":\"/pan release stable\",\"description\":\"Create a stable release commit and tag\",\"args\":[],\"options\":[{\"flags\":\"--version <version>\",\"description\":\"Stable semver version (x.y.z)\",\"required\":true,\"valueHint\":\"version\"},{\"flags\":\"--skip-tests\",\"description\":\"Skip the test suite in preflight (build + guards still run)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-release-canary\",\"path\":[\"release\",\"canary\"],\"display\":\"/pan release canary\",\"description\":\"Create a canary release commit and tag\",\"args\":[],\"options\":[{\"flags\":\"--version <version>\",\"description\":\"Canary semver version (x.y.z-canary.n)\",\"required\":true,\"valueHint\":\"version\"},{\"flags\":\"--skip-tests\",\"description\":\"Skip the test suite in preflight (build + guards still run)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-release-sourcemaps\",\"path\":[\"release\",\"sourcemaps\"],\"display\":\"/pan release sourcemaps\",\"description\":\"Upload the built dashboard sourcemaps to PostHog\",\"args\":[],\"options\":[{\"flags\":\"--version <version>\",\"description\":\"Release version associated with the built dashboard\",\"required\":true,\"valueHint\":\"version\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-release-notes\",\"path\":[\"release\",\"notes\"],\"display\":\"/pan release notes\",\"description\":\"Draft release notes from git history\",\"args\":[{\"name\":\"from\",\"required\":false,\"variadic\":false},{\"name\":\"to\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--write <path>\",\"description\":\"Write the generated notes to a file\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-rollout\",\"path\":[\"rollout\"],\"display\":\"/pan rollout\",\"description\":\"Post-merge release status and retry\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-rollout-status\",\"path\":[\"rollout\",\"status\"],\"display\":\"/pan rollout status\",\"description\":\"Print the release set for an issue (overall + per-component status)\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-rollout-retry\",\"path\":[\"rollout\",\"retry\"],\"display\":\"/pan rollout retry\",\"description\":\"Re-run the release engine for an issue and print the resulting status\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-memory\",\"path\":[\"memory\"],\"display\":\"/pan memory\",\"description\":\"Search and inspect Overdeck memory\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-search\",\"path\":[\"memory\",\"search\"],\"display\":\"/pan memory search\",\"description\":\"Search memory observations\",\"args\":[{\"name\":\"query\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <id>\",\"description\":\"Project ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--workspace <id|name>\",\"description\":\"Workspace id or name\",\"required\":true,\"valueHint\":\"id|name\"},{\"flags\":\"--issue <id>\",\"description\":\"Issue ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--tag <tag>\",\"description\":\"Filter by tag\",\"required\":true,\"valueHint\":\"tag\"},{\"flags\":\"--sibling\",\"description\":\"Search same-project sibling issues instead of the selected issue\",\"required\":false,\"valueHint\":null},{\"flags\":\"--global\",\"description\":\"Search across all registered projects instead of just one\",\"required\":false,\"valueHint\":null},{\"flags\":\"--target [path]\",\"description\":\"Search all workspaces whose path targets a directory (bare flag = cwd); mutually exclusive with --workspace/--issue/--global\",\"required\":false,\"valueHint\":\"path\"},{\"flags\":\"--include-archived\",\"description\":\"Include observations hidden by reset markers\",\"required\":false,\"valueHint\":null},{\"flags\":\"--limit <n>\",\"description\":\"Maximum results\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-status\",\"path\":[\"memory\",\"status\"],\"display\":\"/pan memory status\",\"description\":\"Show current memory status for an issue, a workspace, or the current directory\",\"args\":[{\"name\":\"issue\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--project <id>\",\"description\":\"Project ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--workspace <id|name>\",\"description\":\"Workspace id or name instead of an issue positional\",\"required\":true,\"valueHint\":\"id|name\"},{\"flags\":\"--history <n>\",\"description\":\"Also print up to N archived statuses, newest first (max 50)\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-timeline\",\"path\":[\"memory\",\"timeline\"],\"display\":\"/pan memory timeline\",\"description\":\"Print chronological observations for a workspace or the current directory\",\"args\":[],\"options\":[{\"flags\":\"--workspace <id|name>\",\"description\":\"Workspace id or name (defaults to the workspace owning the cwd)\",\"required\":true,\"valueHint\":\"id|name\"},{\"flags\":\"--days <n>\",\"description\":\"Most recent N days, today counting as day 1 (default 7)\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--limit <n>\",\"description\":\"Maximum observation rows\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-read\",\"path\":[\"memory\",\"read\"],\"display\":\"/pan memory read\",\"description\":\"Print a file from a workspace's memory home (path is relative to that home)\",\"args\":[{\"name\":\"path\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--workspace <id|name>\",\"description\":\"Workspace id or name (defaults to the workspace owning the cwd)\",\"required\":true,\"valueHint\":\"id|name\"},{\"flags\":\"--from <n>\",\"description\":\"First line to print, 1-based\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--lines <n>\",\"description\":\"Maximum number of lines to print\",\"required\":true,\"valueHint\":\"n\"}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-reset\",\"path\":[\"memory\",\"reset\"],\"display\":\"/pan memory reset\",\"description\":\"Create a memory reset marker\",\"args\":[{\"name\":\"scope\",\"required\":true,\"variadic\":false},{\"name\":\"scopeId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <id>\",\"description\":\"Project ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--reason <text>\",\"description\":\"Reason for the reset marker\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--from <iso>\",\"description\":\"Reset from timestamp\",\"required\":true,\"valueHint\":\"iso\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-summary\",\"path\":[\"memory\",\"summary\"],\"display\":\"/pan memory summary\",\"description\":\"Generate a daily markdown memory summary for an issue, a workspace, or the current directory\",\"args\":[{\"name\":\"issue\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--project <id>\",\"description\":\"Project ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--workspace <id|name>\",\"description\":\"Workspace id or name instead of an issue positional\",\"required\":true,\"valueHint\":\"id|name\"},{\"flags\":\"--date <yyyy-mm-dd>\",\"description\":\"Summary date\",\"required\":true,\"valueHint\":\"yyyy-mm-dd\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-doctor\",\"path\":[\"memory\",\"doctor\"],\"display\":\"/pan memory doctor\",\"description\":\"Print memory health, pending counts, and provider configuration\",\"args\":[],\"options\":[{\"flags\":\"--project <id>\",\"description\":\"Project ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-backfill\",\"path\":[\"memory\",\"backfill\"],\"display\":\"/pan memory backfill\",\"description\":\"Backfill memory observations from historical Claude Code JSONL transcripts\",\"args\":[],\"options\":[{\"flags\":\"--workspace <id>\",\"description\":\"Only backfill sessions resolved to this workspace id\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--project <id>\",\"description\":\"Only backfill sessions resolved to this project id\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--dry-run\",\"description\":\"Report matched sessions without extracting or writing anything\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-pin\",\"path\":[\"memory\",\"pin\"],\"display\":\"/pan memory pin\",\"description\":\"Pin a doc for prompt-time memory injection (path is stored project-relative)\",\"args\":[{\"name\":\"doc-path\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <id>\",\"description\":\"Project key to pin at project scope\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--workspace <id>\",\"description\":\"Workspace id to pin at workspace scope (overrides --project)\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-unpin\",\"path\":[\"memory\",\"unpin\"],\"display\":\"/pan memory unpin\",\"description\":\"Remove a pinned doc\",\"args\":[{\"name\":\"doc-path\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <id>\",\"description\":\"Project key the pin was made at project scope\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--workspace <id>\",\"description\":\"Workspace id the pin was made at workspace scope (overrides --project)\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-pins\",\"path\":[\"memory\",\"pins\"],\"display\":\"/pan memory pins\",\"description\":\"List pinned docs for a project or workspace\",\"args\":[],\"options\":[{\"flags\":\"--project <id>\",\"description\":\"Project key to list project-scoped pins for\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--workspace <id>\",\"description\":\"Workspace id to list workspace-scoped pins for (overrides --project)\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-config\",\"path\":[\"memory\",\"config\"],\"display\":\"/pan memory config\",\"description\":\"Show memory provider and rollup configuration\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-briefing\",\"path\":[\"briefing\"],\"display\":\"/pan briefing\",\"description\":\"Print the live Overdeck session briefing markdown\",\"args\":[],\"options\":[{\"flags\":\"--cwd <path>\",\"description\":\"Resolve workspace context from this directory\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-compliance\",\"path\":[\"compliance\"],\"display\":\"/pan compliance\",\"description\":\"Inspect memory-first compliance state\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-compliance-status\",\"path\":[\"compliance\",\"status\"],\"display\":\"/pan compliance status\",\"description\":\"Show compliance mode and recent compliance misses\",\"args\":[],\"options\":[{\"flags\":\"--project <id>\",\"description\":\"Project ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--workspace <id>\",\"description\":\"Workspace ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--issue <id>\",\"description\":\"Issue ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--session <id>\",\"description\":\"Session ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--since-hours <n>\",\"description\":\"Hours to count recent misses\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-registry\",\"path\":[\"registry\"],\"display\":\"/pan registry\",\"description\":\"Manage and inspect feature ownership records\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-registry-tag\",\"path\":[\"registry\",\"tag\"],\"display\":\"/pan registry tag\",\"description\":\"Create or update a feature ownership record for an issue\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false},{\"name\":\"feature\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--description <text>\",\"description\":\"Feature description\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--workspace <id>\",\"description\":\"Owning workspace ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--agent <id>\",\"description\":\"Owning agent ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--status <status>\",\"description\":\"Feature status: active, archived, merged, deferred\",\"required\":true,\"valueHint\":\"status\"},{\"flags\":\"--tag <tag...>\",\"description\":\"Feature tags\",\"required\":true,\"valueHint\":\"tag...\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-registry-list\",\"path\":[\"registry\",\"list\"],\"display\":\"/pan registry list\",\"description\":\"List feature ownership records\",\"args\":[],\"options\":[{\"flags\":\"--issue <id>\",\"description\":\"Owning issue ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--workspace <id>\",\"description\":\"Owning workspace ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--agent <id>\",\"description\":\"Owning agent ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--status <status>\",\"description\":\"Feature status: active, archived, merged, deferred\",\"required\":true,\"valueHint\":\"status\"},{\"flags\":\"--tag <tag...>\",\"description\":\"Require tag(s)\",\"required\":true,\"valueHint\":\"tag...\"},{\"flags\":\"--limit <n>\",\"description\":\"Maximum rows\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-registry-show\",\"path\":[\"registry\",\"show\"],\"display\":\"/pan registry show\",\"description\":\"Show one feature ownership record\",\"args\":[{\"name\":\"feature\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-orders\",\"path\":[\"orders\"],\"display\":\"/pan orders\",\"description\":\"Create and manage Flywheel order books\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-orders-create\",\"path\":[\"orders\",\"create\"],\"display\":\"/pan orders create\",\"description\":\"Create a draft order book\",\"args\":[{\"name\":\"name\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Resolve the order book in another registered project\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-orders-list\",\"path\":[\"orders\",\"list\"],\"display\":\"/pan orders list\",\"description\":\"List order books\",\"args\":[],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Resolve the order book in another registered project\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-orders-show\",\"path\":[\"orders\",\"show\"],\"display\":\"/pan orders show\",\"description\":\"Show an order book\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Resolve the order book in another registered project\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-orders-add\",\"path\":[\"orders\",\"add\"],\"display\":\"/pan orders add\",\"description\":\"Add issues to an order book\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"issues\",\"required\":true,\"variadic\":true}],\"options\":[{\"flags\":\"--lane <lane>\",\"description\":\"Target lane: A or B\",\"required\":true,\"valueHint\":\"lane\"},{\"flags\":\"--after <issue>\",\"description\":\"Insert after an issue in the target lane\",\"required\":true,\"valueHint\":\"issue\"},{\"flags\":\"--reverify\",\"description\":\"Require PRD re-verification before pickup\",\"required\":false,\"valueHint\":null},{\"flags\":\"--project <key>\",\"description\":\"Resolve the order book in another registered project\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-orders-remove\",\"path\":[\"orders\",\"remove\"],\"display\":\"/pan orders remove\",\"description\":\"Remove an issue from an order book\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"issue\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Resolve the order book in another registered project\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-orders-move\",\"path\":[\"orders\",\"move\"],\"display\":\"/pan orders move\",\"description\":\"Move an issue within or between lanes\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"issue\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--lane <lane>\",\"description\":\"Target lane: A or B\",\"required\":true,\"valueHint\":\"lane\"},{\"flags\":\"--order <n>\",\"description\":\"One-based position in the target lane\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--project <key>\",\"description\":\"Resolve the order book in another registered project\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-orders-queue\",\"path\":[\"orders\",\"queue\"],\"display\":\"/pan orders queue\",\"description\":\"Mark a draft order book ready for dispatch\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Resolve the order book in another registered project\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-orders-start\",\"path\":[\"orders\",\"start\"],\"display\":\"/pan orders start\",\"description\":\"Start a Flywheel run bound to an order book\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Resolve the order book in another registered project\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-models\",\"path\":[\"models\"],\"display\":\"/pan models\",\"description\":\"Model settings: provider presets\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-models-preset\",\"path\":[\"models\",\"preset\"],\"display\":\"/pan models preset\",\"description\":\"Apply eval-backed provider model presets (writes explicit values once; never auto-applies)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-models-preset-list\",\"path\":[\"models\",\"preset\",\"list\"],\"display\":\"/pan models preset list\",\"description\":\"List presets, their versions and what was last applied\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-models-preset-show\",\"path\":[\"models\",\"preset\",\"show\"],\"display\":\"/pan models preset show\",\"description\":\"Show the per-setting diff a preset would make to config.yaml\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print the plan JSON (same body as GET /api/model-presets/:id/plan)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-models-preset-apply\",\"path\":[\"models\",\"preset\",\"apply\"],\"display\":\"/pan models preset apply\",\"description\":\"Apply a preset: print the diff, confirm, then write only the changed settings\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Print the diff and write nothing\",\"required\":false,\"valueHint\":null},{\"flags\":\"--yes\",\"description\":\"Apply without the confirmation prompt\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-models-preset-undo\",\"path\":[\"models\",\"preset\",\"undo\"],\"display\":\"/pan models preset undo\",\"description\":\"Restore the values the last preset apply replaced\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-parked\",\"path\":[\"parked\"],\"display\":\"/pan parked\",\"description\":\"List every issue parked in a stall orbit (operator gates, zombie sessions, idle-running agents), oldest first, with why + release condition\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Print the raw parked rows as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-docs\",\"path\":[\"docs\"],\"display\":\"/pan docs\",\"description\":\"Overdeck documentation RAG (PAN-1203)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-docs-query\",\"path\":[\"docs\",\"query\"],\"display\":\"/pan docs query\",\"description\":\"Query the docs index for relevant snippets\",\"args\":[{\"name\":\"text\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--top <n>\",\"description\":\"Maximum number of snippets to return\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--format <fmt>\",\"description\":\"Output format: markdown | json | text\",\"required\":true,\"valueHint\":\"fmt\"},{\"flags\":\"--index-path <path>\",\"description\":\"Override the docs index path\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--kind <kind>\",\"description\":\"Filter by doc kind (docs|skill|rule|claude-md|prd)\",\"required\":true,\"valueHint\":\"kind\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-docs-reindex\",\"path\":[\"docs\",\"reindex\"],\"display\":\"/pan docs reindex\",\"description\":\"Regenerate the docs index from current docs/, skills/, etc.\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-docs-disable\",\"path\":[\"docs\",\"disable\"],\"display\":\"/pan docs disable\",\"description\":\"Disable docs RAG injection\",\"args\":[],\"options\":[{\"flags\":\"--scope <scope>\",\"description\":\"Scope: session | project | global\",\"required\":true,\"valueHint\":\"scope\"},{\"flags\":\"--reason <text>\",\"description\":\"Reason recorded in disable state\",\"required\":true,\"valueHint\":\"text\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-docs-enable\",\"path\":[\"docs\",\"enable\"],\"display\":\"/pan docs enable\",\"description\":\"Re-enable docs RAG injection\",\"args\":[],\"options\":[{\"flags\":\"--scope <scope>\",\"description\":\"Scope: session | project | global\",\"required\":true,\"valueHint\":\"scope\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-admin\",\"path\":[\"admin\"],\"display\":\"/pan admin\",\"description\":\"Plumbing commands: watchdog, specialists, infra, db, config, and more\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-commands\",\"path\":[\"admin\",\"commands\"],\"display\":\"/pan admin commands\",\"description\":\"List every visible pan command (plumbing; feeds composer autocomplete codegen)\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Emit machine-readable JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-seed-uat-fixtures\",\"path\":[\"admin\",\"seed-uat-fixtures\"],\"display\":\"/pan admin seed-uat-fixtures\",\"description\":\"Seed the obviously-fake FIX-1 issue fixture into a workspace container for UI UAT. Host mode: `pan admin seed-uat-fixtures <issue-id>` seeds and restarts that issue's workspace container from the host. `--local` runs the seed itself against the current OVERDECK_HOME — used by the host wrapper, or manually inside a container.\",\"args\":[{\"name\":\"issue-id\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--local\",\"description\":\"Seed the current (container-local) OVERDECK_HOME directly, without a host wrapper step\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-migrate-plan-home\",\"path\":[\"admin\",\"migrate-plan-home\"],\"display\":\"/pan admin migrate-plan-home\",\"description\":\"One-time bridge: copy open-issue planning artifacts and item progress from ~/.overdeck/state/<project>/ into <planHome>/.pan/ (PAN-3917 D8)\",\"args\":[{\"name\":\"project-key\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--commit\",\"description\":\"Commit the copied artifacts in the plan home\",\"required\":false,\"valueHint\":null},{\"flags\":\"--dry-run\",\"description\":\"Preview what would be copied without writing anything\",\"required\":false,\"valueHint\":null},{\"flags\":\"--repair-ignore\",\"description\":\"Only remove Overdeck's legacy .pan/ line from .gitignore and commit that file (no copy)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--state-root <dir>\",\"description\":\"Override the state worktree root (tests / odd setups)\",\"required\":true,\"valueHint\":\"dir\"},{\"flags\":\"--plan-home <dir>\",\"description\":\"Override the plan home (tests / odd setups)\",\"required\":true,\"valueHint\":\"dir\"},{\"flags\":\"--open-issues <file>\",\"description\":\"Read open issue ids from a file instead of calling the tracker\",\"required\":true,\"valueHint\":\"file\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-agents\",\"path\":[\"admin\",\"agents\"],\"display\":\"/pan admin agents\",\"description\":\"Agent state plumbing\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-agents-exited\",\"path\":[\"admin\",\"agents\",\"exited\"],\"display\":\"/pan admin agents exited\",\"description\":\"Record that an agent process exited (reported by its launcher; PAN-3848)\",\"args\":[{\"name\":\"agentId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--code <n>\",\"description\":\"Process exit code\",\"required\":true,\"valueHint\":\"n\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-cloister\",\"path\":[\"admin\",\"cloister\"],\"display\":\"/pan admin cloister\",\"description\":\"Cloister agent watchdog commands\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-cloister-status\",\"path\":[\"admin\",\"cloister\",\"status\"],\"display\":\"/pan admin cloister status\",\"description\":\"Show Cloister service status and agent health\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output in JSON format\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-cloister-start\",\"path\":[\"admin\",\"cloister\",\"start\"],\"display\":\"/pan admin cloister start\",\"description\":\"Start Cloister monitoring service\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-cloister-stop\",\"path\":[\"admin\",\"cloister\",\"stop\"],\"display\":\"/pan admin cloister stop\",\"description\":\"Stop Cloister monitoring (agents continue running)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-cloister-emergency-stop\",\"path\":[\"admin\",\"cloister\",\"emergency-stop\"],\"display\":\"/pan admin cloister emergency-stop\",\"description\":\"Emergency stop - kill ALL agents immediately\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-specialists\",\"path\":[\"admin\",\"specialists\"],\"display\":\"/pan admin specialists\",\"description\":\"Manage specialist agents (review-agent, test-agent, merge-agent)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-specialists-list\",\"path\":[\"admin\",\"specialists\",\"list\"],\"display\":\"/pan admin specialists list\",\"description\":\"Show all specialists with their status\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output in JSON format\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-specialists-wake\",\"path\":[\"admin\",\"specialists\",\"wake\"],\"display\":\"/pan admin specialists wake\",\"description\":\"Wake up a specialist agent (for testing/debugging)\",\"args\":[{\"name\":\"name\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--task <description>\",\"description\":\"Optional task description to wake with\",\"required\":true,\"valueHint\":\"description\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-specialists-reset\",\"path\":[\"admin\",\"specialists\",\"reset\"],\"display\":\"/pan admin specialists reset\",\"description\":\"Reset a specialist (clear session, start fresh)\",\"args\":[{\"name\":\"name\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Skip confirmation prompt\",\"required\":false,\"valueHint\":null},{\"flags\":\"--all\",\"description\":\"Reset ALL specialists (wipe all context)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-specialists-done\",\"path\":[\"admin\",\"specialists\",\"done\"],\"display\":\"/pan admin specialists done\",\"description\":\"Post a specialist verdict to the issue's pull/merge request (review, test, uat)\",\"args\":[{\"name\":\"type\",\"required\":true,\"variadic\":false},{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--status <status>\",\"description\":\"Result status: passed, failed, or review-only blocked\",\"required\":true,\"valueHint\":\"status\"},{\"flags\":\"--notes <notes>\",\"description\":\"Optional notes about the result\",\"required\":true,\"valueHint\":\"notes\"},{\"flags\":\"--uat-status <status>\",\"description\":\"Test only: required browser UAT result (passed or failed)\",\"required\":true,\"valueHint\":\"status\"},{\"flags\":\"--uat-notes <notes>\",\"description\":\"Test only: browser UAT evidence or blocking condition\",\"required\":true,\"valueHint\":\"notes\"},{\"flags\":\"--tested-sha <sha>\",\"description\":\"Test/UAT only: the commit the run exercised (git rev-parse HEAD before the gates)\",\"required\":true,\"valueHint\":\"sha\"},{\"flags\":\"--run-id <runId>\",\"description\":\"Review cycle ID used to deduplicate review feedback\",\"required\":true,\"valueHint\":\"runId\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-remote\",\"path\":[\"admin\",\"remote\"],\"display\":\"/pan admin remote\",\"description\":\"Remote workspace management (Fly.io)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-remote-status\",\"path\":[\"admin\",\"remote\",\"status\"],\"display\":\"/pan admin remote status\",\"description\":\"Show Fly.io connection and machine status\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output in JSON format\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-remote-init\",\"path\":[\"admin\",\"remote\",\"init\"],\"display\":\"/pan admin remote init\",\"description\":\"Initialize Fly.io app for workspace machines\",\"args\":[],\"options\":[{\"flags\":\"--app <app>\",\"description\":\"Fly app name\",\"required\":true,\"valueHint\":\"app\"},{\"flags\":\"--org <org>\",\"description\":\"Fly org slug\",\"required\":true,\"valueHint\":\"org\"},{\"flags\":\"--region <region>\",\"description\":\"Default region\",\"required\":true,\"valueHint\":\"region\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-remote-resources\",\"path\":[\"admin\",\"remote\",\"resources\"],\"display\":\"/pan admin remote resources\",\"description\":\"Show RAM/disk usage across VMs\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output in JSON format\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-remote-setup\",\"path\":[\"admin\",\"remote\",\"setup\"],\"display\":\"/pan admin remote setup\",\"description\":\"Setup Fly.io integration (install flyctl, configure auth)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-remote-reap\",\"path\":[\"admin\",\"remote\",\"reap\"],\"display\":\"/pan admin remote reap\",\"description\":\"Hand completed remote agents (PAN_REMOTE_DONE) to the review pipeline and stop their machines\",\"args\":[],\"options\":[{\"flags\":\"--issue <id>\",\"description\":\"Target a single issue instead of scanning all remote agents\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--dry-run\",\"description\":\"Report what would be reaped without acting\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db\",\"path\":[\"admin\",\"db\"],\"display\":\"/pan admin db\",\"description\":\"Database seeding and management\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db-snapshot\",\"path\":[\"admin\",\"db\",\"snapshot\"],\"display\":\"/pan admin db snapshot\",\"description\":\"Create a database snapshot from an external source\",\"args\":[],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Project key\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--output <path>\",\"description\":\"Output file path\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--sanitize\",\"description\":\"Run sanitization script after snapshot\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db-seed\",\"path\":[\"admin\",\"db\",\"seed\"],\"display\":\"/pan admin db seed\",\"description\":\"Seed a workspace database with the configured seed file\",\"args\":[{\"name\":\"workspaceOrIssue\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Force reseed even if already initialized\",\"required\":false,\"valueHint\":null},{\"flags\":\"--file <path>\",\"description\":\"Override seed file path\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db-status\",\"path\":[\"admin\",\"db\",\"status\"],\"display\":\"/pan admin db status\",\"description\":\"Check database status for a workspace\",\"args\":[{\"name\":\"workspaceOrIssue\",\"required\":false,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db-clean\",\"path\":[\"admin\",\"db\",\"clean\"],\"display\":\"/pan admin db clean\",\"description\":\"Clean kubectl/stderr garbage from a database dump file\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--output <path>\",\"description\":\"Output file (default: overwrite input)\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--dry-run\",\"description\":\"Show what would be cleaned without modifying\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db-config\",\"path\":[\"admin\",\"db\",\"config\"],\"display\":\"/pan admin db config\",\"description\":\"Show database configuration for a project\",\"args\":[{\"name\":\"project\",\"required\":false,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db-rebuild-workspaces\",\"path\":[\"admin\",\"db\",\"rebuild-workspaces\"],\"display\":\"/pan admin db rebuild-workspaces\",\"description\":\"Rebuild the projects/workspaces tables from projects.yaml, worktree scan, and memory-home identity records (PAN-1990)\",\"args\":[],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Show what would be created without writing\",\"required\":false,\"valueHint\":null},{\"flags\":\"--verbose\",\"description\":\"Log each processed workspace\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db-gc-agents\",\"path\":[\"admin\",\"db\",\"gc-agents\"],\"display\":\"/pan admin db gc-agents\",\"description\":\"Remove stopped work-agent rows for terminal issues\",\"args\":[],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Show what would be removed without writing\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db-rebuild\",\"path\":[\"admin\",\"db\",\"rebuild\"],\"display\":\"/pan admin db rebuild\",\"description\":\"Reconstruct the dashboard cache from git + GitHub sources (PAN-1920)\",\"args\":[],\"options\":[{\"flags\":\"--verbose\",\"description\":\"Log each enumerated issue and agent\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-config\",\"path\":[\"admin\",\"config\"],\"display\":\"/pan admin config\",\"description\":\"Manage Overdeck configuration\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-config-shadow\",\"path\":[\"admin\",\"config\",\"shadow\"],\"display\":\"/pan admin config shadow\",\"description\":\"Manage shadow mode settings\",\"args\":[],\"options\":[{\"flags\":\"--enable\",\"description\":\"Enable global shadow mode\",\"required\":false,\"valueHint\":null},{\"flags\":\"--disable\",\"description\":\"Disable global shadow mode\",\"required\":false,\"valueHint\":null},{\"flags\":\"--status\",\"description\":\"Show current shadow mode configuration\",\"required\":false,\"valueHint\":null},{\"flags\":\"--tracker <type>\",\"description\":\"Configure specific tracker (linear/github/gitlab/rally)\",\"required\":true,\"valueHint\":\"type\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-config-tiers\",\"path\":[\"admin\",\"config\",\"tiers\"],\"display\":\"/pan admin config tiers\",\"description\":\"Show the effective model per tiered_execution tier and whether it overrides roles.work\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-hooks\",\"path\":[\"admin\",\"hooks\"],\"display\":\"/pan admin hooks\",\"description\":\"Manage heartbeat hooks\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-hooks-install\",\"path\":[\"admin\",\"hooks\",\"install\"],\"display\":\"/pan admin hooks install\",\"description\":\"Configure heartbeat hooks for Claude Code and/or Pi\",\"args\":[],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Preview the proposed settings.json diff without writing\",\"required\":false,\"valueHint\":null},{\"flags\":\"--harness <harness>\",\"description\":\"Target harness: claude-code, pi, or both\",\"required\":true,\"valueHint\":\"harness\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-hooks-status\",\"path\":[\"admin\",\"hooks\",\"status\"],\"display\":\"/pan admin hooks status\",\"description\":\"Show installed hook harness support\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-fpp\",\"path\":[\"admin\",\"fpp\"],\"display\":\"/pan admin fpp\",\"description\":\"FPP hooks: check, push, pop, clear, mail\",\"args\":[{\"name\":\"action\",\"required\":false,\"variadic\":false},{\"name\":\"idOrMessage\",\"required\":false,\"variadic\":true}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-conversations\",\"path\":[\"admin\",\"conversations\"],\"display\":\"/pan admin conversations\",\"description\":\"Conversation maintenance utilities\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-conversations-backfill-titles\",\"path\":[\"admin\",\"conversations\",\"backfill-titles\"],\"display\":\"/pan admin conversations backfill-titles\",\"description\":\"Backfill titles for conversations stuck on \\\"New conversation\\\"\",\"args\":[],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Preview changes without writing to the database\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-tracker\",\"path\":[\"admin\",\"tracker\"],\"display\":\"/pan admin tracker\",\"description\":\"Tracker-specific operations (Linear, GitHub, etc.)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-tracker-linear-states\",\"path\":[\"admin\",\"tracker\",\"linear-states\"],\"display\":\"/pan admin tracker linear-states\",\"description\":\"Manage Linear workflow states\",\"args\":[],\"options\":[{\"flags\":\"-t, --team <team>\",\"description\":\"Team key (default: MIN)\",\"required\":true,\"valueHint\":\"team\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-tracker-linear-cleanup\",\"path\":[\"admin\",\"tracker\",\"linear-cleanup\"],\"display\":\"/pan admin tracker linear-cleanup\",\"description\":\"Archive old Linear custom states\",\"args\":[],\"options\":[{\"flags\":\"-t, --team <team>\",\"description\":\"Team key (default: MIN)\",\"required\":true,\"valueHint\":\"team\"},{\"flags\":\"-s, --state <state>\",\"description\":\"State name to archive (default: Planning)\",\"required\":true,\"valueHint\":\"state\"},{\"flags\":\"--dry-run\",\"description\":\"Show what would be archived without making changes\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-migrate-config\",\"path\":[\"admin\",\"migrate-config\"],\"display\":\"/pan admin migrate-config\",\"description\":\"One-time migration from settings.json to config.yaml\",\"args\":[],\"options\":[{\"flags\":\"--force\",\"description\":\"Force migration even if config.yaml exists\",\"required\":false,\"valueHint\":null},{\"flags\":\"--preview\",\"description\":\"Preview migration without applying changes\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-backup\",\"description\":\"Do not back up settings.json\",\"required\":false,\"valueHint\":null},{\"flags\":\"--delete-legacy\",\"description\":\"Delete settings.json after migration\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-conversations\",\"path\":[\"conversations\"],\"display\":\"/pan conversations\",\"description\":\"Discover, index, and search Claude Code session history\",\"args\":[],\"options\":[],\"aliases\":[\"conv\"],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-scan\",\"path\":[\"conversations\",\"scan\"],\"display\":\"/pan conversations scan\",\"description\":\"Scan ~/.claude/projects/ and index discovered sessions\",\"args\":[{\"name\":\"dirs\",\"required\":false,\"variadic\":true}],\"options\":[{\"flags\":\"--watched\",\"description\":\"Scan configured watch directories (from config.yaml)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--system\",\"description\":\"Scan system-wide ~/.claude/projects/ (default when no dirs given)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--dry-run\",\"description\":\"Preview without writing to database\",\"required\":false,\"valueHint\":null},{\"flags\":\"--max-parallel <n>\",\"description\":\"Override parallelism (default: auto)\",\"required\":true,\"valueHint\":\"n\"}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-search\",\"path\":[\"conversations\",\"search\"],\"display\":\"/pan conversations search\",\"description\":\"Full-text search across session summaries and tags\",\"args\":[{\"name\":\"query\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--workspace <path>\",\"description\":\"Filter by workspace path\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--model <name>\",\"description\":\"Filter by primary model\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--since <time>\",\"description\":\"Filter sessions after time (ISO or \\\"7d\\\", \\\"today\\\")\",\"required\":true,\"valueHint\":\"time\"},{\"flags\":\"--after <time>\",\"description\":\"Alias for --since (sessions after this time)\",\"required\":true,\"valueHint\":\"time\"},{\"flags\":\"--before <time>\",\"description\":\"Filter sessions before time\",\"required\":true,\"valueHint\":\"time\"},{\"flags\":\"--min-cost <n>\",\"description\":\"Filter by minimum estimated cost\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--max-cost <n>\",\"description\":\"Filter by maximum estimated cost\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--min-messages <n>\",\"description\":\"Filter sessions with at least N messages\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--managed\",\"description\":\"Show only Overdeck-managed sessions\",\"required\":false,\"valueHint\":null},{\"flags\":\"--unmanaged\",\"description\":\"Show only unmanaged (personal) sessions\",\"required\":false,\"valueHint\":null},{\"flags\":\"--enriched\",\"description\":\"Show only enriched sessions\",\"required\":false,\"valueHint\":null},{\"flags\":\"--not-enriched\",\"description\":\"Show only unenriched sessions\",\"required\":false,\"valueHint\":null},{\"flags\":\"--tag <value>\",\"description\":\"Filter by tag (repeatable: --tag foo --tag bar)\",\"required\":true,\"valueHint\":\"value\"},{\"flags\":\"--tool <name>\",\"description\":\"Filter by tool used (repeatable)\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--file <path>\",\"description\":\"Filter by file referenced (repeatable)\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--issue <id>\",\"description\":\"Filter by associated issue ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--similar <id>\",\"description\":\"Find sessions similar to this session ID (semantic)\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--semantic <query>\",\"description\":\"Find sessions semantically similar to query text\",\"required\":true,\"valueHint\":\"query\"},{\"flags\":\"--format <fmt>\",\"description\":\"Output format: table | json | brief | ids\",\"required\":true,\"valueHint\":\"fmt\"},{\"flags\":\"--limit <n>\",\"description\":\"Maximum results\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--offset <n>\",\"description\":\"Pagination offset\",\"required\":true,\"valueHint\":\"n\"}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-list\",\"path\":[\"conversations\",\"list\"],\"display\":\"/pan conversations list\",\"description\":\"List discovered sessions with structured filters\",\"args\":[],\"options\":[{\"flags\":\"--workspace <path>\",\"description\":\"Filter by workspace path\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--model <name>\",\"description\":\"Filter by primary model\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--since <time>\",\"description\":\"Sessions after time (ISO or relative)\",\"required\":true,\"valueHint\":\"time\"},{\"flags\":\"--managed\",\"description\":\"Show only Overdeck-managed sessions\",\"required\":false,\"valueHint\":null},{\"flags\":\"--enriched\",\"description\":\"Show only enriched sessions\",\"required\":false,\"valueHint\":null},{\"flags\":\"--format <fmt>\",\"description\":\"Output: table | json | brief | ids\",\"required\":true,\"valueHint\":\"fmt\"},{\"flags\":\"--limit <n>\",\"description\":\"Maximum results\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--offset <n>\",\"description\":\"Pagination offset\",\"required\":true,\"valueHint\":\"n\"}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-show\",\"path\":[\"conversations\",\"show\"],\"display\":\"/pan conversations show\",\"description\":\"Show detailed information for a session by ID\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-jsonl\",\"path\":[\"conversations\",\"jsonl\"],\"display\":\"/pan conversations jsonl\",\"description\":\"Print the Claude JSONL transcript path for a conversation id (the /conv/<N> number)\",\"args\":[{\"name\":\"conv-id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output status/path as JSON; read the status field\",\"required\":false,\"valueHint\":null}],\"aliases\":[\"transcript\"],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-move\",\"path\":[\"conversations\",\"move\"],\"display\":\"/pan conversations move\",\"description\":\"Reassign a conversation to a different project (exact name, then fuzzy title match)\",\"args\":[{\"name\":\"query\",\"required\":true,\"variadic\":false},{\"name\":\"projectKey\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-link-pr\",\"path\":[\"conversations\",\"link-pr\"],\"display\":\"/pan conversations link-pr\",\"description\":\"Link a pull request (URL, #42, or owner/repo#42) to a conversation\",\"args\":[{\"name\":\"query\",\"required\":true,\"variadic\":false},{\"name\":\"ref\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--source <source>\",\"description\":\"agent or manual (default: agent inside an agent, else manual)\",\"required\":true,\"valueHint\":\"source\"}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-unlink-pr\",\"path\":[\"conversations\",\"unlink-pr\"],\"display\":\"/pan conversations unlink-pr\",\"description\":\"Unlink a pull request from a conversation (the sweep will not re-add it)\",\"args\":[{\"name\":\"query\",\"required\":true,\"variadic\":false},{\"name\":\"ref\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-prs\",\"path\":[\"conversations\",\"prs\"],\"display\":\"/pan conversations prs\",\"description\":\"List the pull requests linked to a conversation (* = the one shown)\",\"args\":[{\"name\":\"query\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output { links, effective } as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-auto-archive-on-merge\",\"path\":[\"conversations\",\"auto-archive-on-merge\"],\"display\":\"/pan conversations auto-archive-on-merge\",\"description\":\"Show or set (on|off) archiving operator conversations once all their linked PRs are merged or closed (default off)\",\"args\":[{\"name\":\"value\",\"required\":false,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-heal\",\"path\":[\"conversations\",\"heal\"],\"display\":\"/pan conversations heal\",\"description\":\"Clear stale fork/spawn failure state for a live conversation\",\"args\":[{\"name\":\"query\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-current\",\"path\":[\"conversations\",\"current\"],\"display\":\"/pan conversations current\",\"description\":\"Print the conversation you are currently running inside (deterministic — no scanning/guessing)\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[\"whoami\"],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-cost\",\"path\":[\"conversations\",\"cost\"],\"display\":\"/pan conversations cost\",\"description\":\"Summarize estimated API costs across discovered sessions\",\"args\":[],\"options\":[{\"flags\":\"--since <time>\",\"description\":\"Summarize sessions since time (ISO or relative)\",\"required\":true,\"valueHint\":\"time\"},{\"flags\":\"--workspace <path>\",\"description\":\"Filter by workspace path\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--by <field>\",\"description\":\"Group by: workspace | model | day | month\",\"required\":true,\"valueHint\":\"field\"},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-embed\",\"path\":[\"conversations\",\"embed\"],\"display\":\"/pan conversations embed\",\"description\":\"Generate embeddings for enriched sessions (required for --semantic search)\",\"args\":[{\"name\":\"ids\",\"required\":false,\"variadic\":true}],\"options\":[{\"flags\":\"--regenerate\",\"description\":\"Regenerate embeddings even for sessions that already have them\",\"required\":false,\"valueHint\":null},{\"flags\":\"--status\",\"description\":\"Show embedding coverage stats and exit\",\"required\":false,\"valueHint\":null},{\"flags\":\"--provider <name>\",\"description\":\"Embedding provider: openai | voyage | ollama\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--model <name>\",\"description\":\"Embedding model override\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--max-parallel <n>\",\"description\":\"Override parallelism\",\"required\":true,\"valueHint\":\"n\"}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-enrich\",\"path\":[\"conversations\",\"enrich\"],\"display\":\"/pan conversations enrich\",\"description\":\"Enrich sessions with AI-generated summaries and tags\",\"args\":[{\"name\":\"ids\",\"required\":false,\"variadic\":true}],\"options\":[{\"flags\":\"--tier <n>\",\"description\":\"Enrichment tier: 1 (quick) | 2 (detailed) | 3 (deep)\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--deep\",\"description\":\"Shorthand for --tier 3\",\"required\":false,\"valueHint\":null},{\"flags\":\"--full\",\"description\":\"Use full-transcript enrichment with --with; enrich even already-enriched sessions\",\"required\":false,\"valueHint\":null},{\"flags\":\"--upgrade\",\"description\":\"Re-enrich sessions at a lower tier than requested\",\"required\":false,\"valueHint\":null},{\"flags\":\"--with <model>\",\"description\":\"Override the model used for enrichment\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--prompt <text>\",\"description\":\"Append custom prompt text to the enrichment request\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--limit <n>\",\"description\":\"Cap the number of sessions to enrich\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--workspace <path>\",\"description\":\"Restrict to sessions from this workspace path\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--since <time>\",\"description\":\"Only enrich sessions after this time (ISO or relative)\",\"required\":true,\"valueHint\":\"time\"},{\"flags\":\"--ids <ids>\",\"description\":\"Comma-separated session IDs to enrich (legacy; prefer positional args)\",\"required\":true,\"valueHint\":\"ids\"},{\"flags\":\"--max-parallel <n>\",\"description\":\"Override parallelism\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--yes\",\"description\":\"Skip cost confirmation prompt\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-ohmypi-auth\",\"path\":[\"ohmypi-auth\"],\"display\":\"/pan ohmypi-auth\",\"description\":\"Manage omp's ChatGPT/Codex (openai-codex) OAuth login used by GPT-5.x omp conversations\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-ohmypi-auth-status\",\"path\":[\"ohmypi-auth\",\"status\"],\"display\":\"/pan ohmypi-auth status\",\"description\":\"Show whether omp's openai-codex login is valid (auto-refreshes if possible)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-ohmypi-auth-login\",\"path\":[\"ohmypi-auth\",\"login\"],\"display\":\"/pan ohmypi-auth login\",\"description\":\"Re-authenticate omp's openai-codex login via headless device code\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-install\",\"path\":[\"install\"],\"display\":\"/pan install\",\"description\":\"Install Overdeck prerequisites\",\"args\":[],\"options\":[{\"flags\":\"--check\",\"description\":\"Check prerequisites only\",\"required\":false,\"valueHint\":null},{\"flags\":\"--minimal\",\"description\":\"Skip Traefik and mkcert (use port-based routing)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--skip-mkcert\",\"description\":\"Skip mkcert/HTTPS setup\",\"required\":false,\"valueHint\":null},{\"flags\":\"--skip-docker\",\"description\":\"Skip Docker network setup\",\"required\":false,\"valueHint\":null},{\"flags\":\"--skip-moonshine\",\"description\":\"Skip Moonshine voice sidecar build (AutoPreso + Voice STT will not work without it)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--skip-tts-daemon\",\"description\":\"Skip Qwen TTS daemon venv install (CUDA torch download is large)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--skip-herdr\",\"description\":\"Skip Herdr terminal backend install/verify (tmux-only hosts)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--skip-ollama\",\"description\":\"Skip Ollama local-model detection and optional gemma4:12b pull\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-caveman-compress\",\"path\":[\"caveman-compress\"],\"display\":\"/pan caveman-compress\",\"description\":\"Compress a static reference doc using caveman-compress (manual use only, never automated). Calls the Claude API recursively to compress prose by ~65-75% while preserving technical accuracy.\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-scope\",\"path\":[\"scope\"],\"display\":\"/pan scope\",\"description\":\"xBRIEF lifecycle management\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-scope-list\",\"path\":[\"scope\",\"list\"],\"display\":\"/pan scope list\",\"description\":\"List all scope xBRIEFs across registered projects (lifecycle dirs + in-flight worktrees)\",\"args\":[],\"options\":[{\"flags\":\"--project <path>\",\"description\":\"Limit to a single project path (defaults to all registered projects)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-scope-show\",\"path\":[\"scope\",\"show\"],\"display\":\"/pan scope show\",\"description\":\"Display xBRIEF plan + items + continue-state summary\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <path>\",\"description\":\"Project path (defaults to resolved from issue)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-scope-propose\",\"path\":[\"scope\",\"propose\"],\"display\":\"/pan scope propose\",\"description\":\"Move xBRIEF to proposed/\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <path>\",\"description\":\"Project path (defaults to resolved from issue)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-scope-approve\",\"path\":[\"scope\",\"approve\"],\"display\":\"/pan scope approve\",\"description\":\"Move xBRIEF to active/ and set status approved\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <path>\",\"description\":\"Project path (defaults to resolved from issue)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-scope-complete\",\"path\":[\"scope\",\"complete\"],\"display\":\"/pan scope complete\",\"description\":\"Move xBRIEF to completed/\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <path>\",\"description\":\"Project path (defaults to resolved from issue)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-scope-cancel\",\"path\":[\"scope\",\"cancel\"],\"display\":\"/pan scope cancel\",\"description\":\"Move xBRIEF to cancelled/\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <path>\",\"description\":\"Project path (defaults to resolved from issue)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-scope-restore\",\"path\":[\"scope\",\"restore\"],\"display\":\"/pan scope restore\",\"description\":\"Restore xBRIEF from completed/ or cancelled/ to active/\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <path>\",\"description\":\"Project path (defaults to resolved from issue)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-spawn\",\"path\":[\"spawn\"],\"display\":\"/pan spawn\",\"description\":\"Create a worker pane for one xBRIEF item in its own item worktree\",\"args\":[],\"options\":[{\"flags\":\"--issue <id>\",\"description\":\"Issue the worker belongs to\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--item <item>\",\"description\":\"xBRIEF item the worker takes\",\"required\":true,\"valueHint\":\"item\"},{\"flags\":\"--model <model>\",\"description\":\"Model the worker runs on\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--harness <harness>\",\"description\":\"Coding-agent harness (default: claude-code)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--effort <level>\",\"description\":\"Reasoning effort: low | medium | high | xhigh | max (defaults to the item/plan metadata, then roles.worker.effort)\",\"required\":true,\"valueHint\":\"level\"},{\"flags\":\"--shared\",\"description\":\"Run the worker in the issue workspace instead of an item worktree (foreman/operator only; serial use)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-worker\",\"path\":[\"worker\"],\"display\":\"/pan worker\",\"description\":\"Registered workers: spawn an issue-linked agent and get its report back; register external agents\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-worker-run\",\"path\":[\"worker\",\"run\"],\"display\":\"/pan worker run\",\"description\":\"Start a worker for an issue and wait for its report (exit 0 done, 4 blocked/failed, 2 no report, 3 timeout, 1 error)\",\"args\":[],\"options\":[{\"flags\":\"--issue <id>\",\"description\":\"Issue the worker belongs to (required)\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--prompt <text>\",\"description\":\"The brief, inline\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--brief <file>\",\"description\":\"The brief, from a file\",\"required\":true,\"valueHint\":\"file\"},{\"flags\":\"--model <model>\",\"description\":\"Model override (default: roles.worker.model)\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--harness <harness>\",\"description\":\"Harness override (default: routed from the model)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--effort <level>\",\"description\":\"Reasoning effort: low | medium | high | xhigh | max (defaults to roles.worker.effort)\",\"required\":true,\"valueHint\":\"level\"},{\"flags\":\"--read-only\",\"description\":\"Run in the issue workspace with git writes blocked\",\"required\":false,\"valueHint\":null},{\"flags\":\"--cwd <path>\",\"description\":\"Working directory inside the issue workspace\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--parent <id>\",\"description\":\"Spawning agent or conversation (default: $OVERDECK_AGENT_ID, then $OVERDECK_CONVERSATION)\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--name <label>\",\"description\":\"Label shown in the Agents Directory\",\"required\":true,\"valueHint\":\"label\"},{\"flags\":\"--detach\",\"description\":\"Print the worker id and return without waiting\",\"required\":false,\"valueHint\":null},{\"flags\":\"--timeout <seconds>\",\"description\":\"Stop waiting after this many seconds (exit 3; the worker keeps running)\",\"required\":true,\"valueHint\":\"seconds\"},{\"flags\":\"--stop-after-report\",\"description\":\"Stop the worker after its first report\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-worker-wait\",\"path\":[\"worker\",\"wait\"],\"display\":\"/pan worker wait\",\"description\":\"Wait for a worker's report (same exit codes as run); the status line names its seq\",\"args\":[{\"name\":\"worker-id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--after <seq>\",\"description\":\"Return the next report after this seq (default: the newest report, whenever written)\",\"required\":true,\"valueHint\":\"seq\"},{\"flags\":\"--timeout <seconds>\",\"description\":\"Stop waiting after this many seconds (exit 3)\",\"required\":true,\"valueHint\":\"seconds\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-worker-report\",\"path\":[\"worker\",\"report\"],\"display\":\"/pan worker report\",\"description\":\"Record a worker's report (run by the worker itself)\",\"args\":[{\"name\":\"worker-id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--file <path>\",\"description\":\"Read the Markdown report from a file\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--stdin\",\"description\":\"Read the Markdown report from stdin\",\"required\":false,\"valueHint\":null},{\"flags\":\"--status <status>\",\"description\":\"done | blocked | failed (default: done)\",\"required\":true,\"valueHint\":\"status\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-worker-list\",\"path\":[\"worker\",\"list\"],\"display\":\"/pan worker list\",\"description\":\"List workers with their parent, live state and newest report\",\"args\":[],\"options\":[{\"flags\":\"--issue <id>\",\"description\":\"Only this issue's workers\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--parent <id>\",\"description\":\"Only workers of this parent\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-worker-register\",\"path\":[\"worker\",\"register\"],\"display\":\"/pan worker register\",\"description\":\"Record an agent another tool launched so the Agents Directory shows it (read-only; prints its id)\",\"args\":[],\"options\":[{\"flags\":\"--source <name>\",\"description\":\"Who launched it ([a-z0-9-], not codex-plugin) (required)\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--external-id <id>\",\"description\":\"The launcher's id for it (required)\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--harness <harness>\",\"description\":\"codex, claude-code, … (required)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--model <model>\",\"description\":\"Model it runs\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--cwd <path>\",\"description\":\"Its working directory\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--issue <id>\",\"description\":\"Issue it works on\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--parent <id>\",\"description\":\"Spawning agent id, conversation tmux session, or claude-session:<uuid>\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--label <text>\",\"description\":\"Label shown in the Agents Directory\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--pid <n>\",\"description\":\"Its process id (liveness is read from it)\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--transcript <path>\",\"description\":\"Its transcript file\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--session-id <id>\",\"description\":\"Its session or thread id\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--json\",\"description\":\"Print { id, created }\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-lane\",\"path\":[\"lane\"],\"display\":\"/pan lane\",\"description\":\"Gauntlet lanes: launch, list, show, wait on, report from, stop and reap lane conversations\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-lane-start\",\"path\":[\"lane\",\"start\"],\"display\":\"/pan lane start\",\"description\":\"Launch a lane conversation under the calling conversation (any harness)\",\"args\":[],\"options\":[{\"flags\":\"--key <key>\",\"description\":\"Lane key inside the run (required unless --for)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--for <builder-key>\",\"description\":\"Critic (required) or verifier: the builder lane judged; --key defaults to it\",\"required\":true,\"valueHint\":\"builder-key\"},{\"flags\":\"--role <role>\",\"description\":\"builder | critic | verifier | play | orchestrator (required)\",\"required\":true,\"valueHint\":\"role\"},{\"flags\":\"--brief <file>\",\"description\":\"The brief, from a file\",\"required\":true,\"valueHint\":\"file\"},{\"flags\":\"--prompt <text>\",\"description\":\"The brief, inline\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--run <key>\",\"description\":\"Run key (required from a root; inherited inside an orchestrator lane)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--parent <conv>\",\"description\":\"Launching conversation (default: $OVERDECK_CONVERSATION)\",\"required\":true,\"valueHint\":\"conv\"},{\"flags\":\"--project <key>\",\"description\":\"Project (default: the parent's project)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--model <model>\",\"description\":\"Model (default: projects.<key>.gauntlet.roles.<role>.model)\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--harness <harness>\",\"description\":\"Harness (default: role config, else routed from the model)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--effort <effort>\",\"description\":\"low | medium | high\",\"required\":true,\"valueHint\":\"effort\"},{\"flags\":\"--title <title>\",\"description\":\"Conversation title (default: <run> <key> · <role>)\",\"required\":true,\"valueHint\":\"title\"},{\"flags\":\"--branch <branch>\",\"description\":\"Builder branch (default: <run>/<key>, <run>/<key>-i<n> after)\",\"required\":true,\"valueHint\":\"branch\"},{\"flags\":\"--from <ref>\",\"description\":\"Base ref for a new builder branch\",\"required\":true,\"valueHint\":\"ref\"},{\"flags\":\"--at <ref>\",\"description\":\"Commit a critic or verifier judges (default with --for: the builder's newest done head)\",\"required\":true,\"valueHint\":\"ref\"},{\"flags\":\"--reuse\",\"description\":\"Continue in the directory of the latest earlier lane with the same run, key and role\",\"required\":false,\"valueHint\":null},{\"flags\":\"--replace\",\"description\":\"Stop the live lane with the same run, key and role first\",\"required\":false,\"valueHint\":null},{\"flags\":\"--force\",\"description\":\"Launch even while the host is CPU-saturated\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-wait\",\"description\":\"Return without waiting for the lane to start\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Print the launch result as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-lane-list\",\"path\":[\"lane\",\"list\"],\"display\":\"/pan lane list\",\"description\":\"List lanes with their activity, newest report, git facts and cost\",\"args\":[],\"options\":[{\"flags\":\"--run <key>\",\"description\":\"Only this run's lanes\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--parent <conv>\",\"description\":\"Only lanes launched by this conversation\",\"required\":true,\"valueHint\":\"conv\"},{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-lane-show\",\"path\":[\"lane\",\"show\"],\"display\":\"/pan lane show\",\"description\":\"Print the builder → critic chain of a run and key, then one line per lane\",\"args\":[{\"name\":\"lane\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--run <key>\",\"description\":\"Run key (with --key)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--key <key>\",\"description\":\"Lane key (with --run)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--json\",\"description\":\"Print { run, key, steps }\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-lane-wait\",\"path\":[\"lane\",\"wait\"],\"display\":\"/pan lane wait\",\"description\":\"Wait for a lane report (exit 0 done, 4 blocked/failed, 2 no report, 3 timeout, 1 error)\",\"args\":[{\"name\":\"lane\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--run <key>\",\"description\":\"Wait for the next report of any lane in this run\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--parent <conv>\",\"description\":\"Wait for the next report of any lane launched by this conversation\",\"required\":true,\"valueHint\":\"conv\"},{\"flags\":\"--after <seq-or-cursor>\",\"description\":\"Report seq for one lane; cursor <atMs>.<name>.<seq> for a run or parent\",\"required\":true,\"valueHint\":\"seq-or-cursor\"},{\"flags\":\"--timeout <seconds>\",\"description\":\"Stop waiting after this many seconds (exit 3)\",\"required\":true,\"valueHint\":\"seconds\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-lane-report\",\"path\":[\"lane\",\"report\"],\"display\":\"/pan lane report\",\"description\":\"Record this lane's report (run inside the lane)\",\"args\":[],\"options\":[{\"flags\":\"--file <path>\",\"description\":\"Read the Markdown report from a file\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--stdin\",\"description\":\"Read the Markdown report from stdin\",\"required\":false,\"valueHint\":null},{\"flags\":\"--status <status>\",\"description\":\"done | blocked | failed (default: done)\",\"required\":true,\"valueHint\":\"status\"},{\"flags\":\"--allow-unpushed\",\"description\":\"Let a builder report done with commits not on its upstream\",\"required\":false,\"valueHint\":null},{\"flags\":\"--verdict <value>\",\"description\":\"Critic or verifier done report: WOWED | IMPRESSED | NOT_YET | PASS | DEFECTS\",\"required\":true,\"valueHint\":\"value\"},{\"flags\":\"--defects <n>\",\"description\":\"Defect count (default: the verdict file's defects array length)\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--verdict-file <path>\",\"description\":\"The verdict JSON the lane wrote\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-lane-stop\",\"path\":[\"lane\",\"stop\"],\"display\":\"/pan lane stop\",\"description\":\"Stop a lane through the conversation stop door\",\"args\":[{\"name\":\"lane\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-lane-reap\",\"path\":[\"lane\",\"reap\"],\"display\":\"/pan lane reap\",\"description\":\"Remove a lane's directory and archive its conversation (never kills, never discards work)\",\"args\":[{\"name\":\"lane\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--park\",\"description\":\"Save uncommitted work to a verified patch before removing a dirty worktree\",\"required\":false,\"valueHint\":null},{\"flags\":\"--keep\",\"description\":\"Keep the conversation listed instead of archiving it\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-flywheel\",\"path\":[\"flywheel\"],\"display\":\"/pan flywheel\",\"description\":\"Start, stop, pause, resume, or inspect the flywheel conversation\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-start\",\"path\":[\"flywheel\",\"start\"],\"display\":\"/pan flywheel start\",\"description\":\"Launch a conversation running /pan-flywheel\",\"args\":[],\"options\":[{\"flags\":\"--model <model>\",\"description\":\"Model for the flywheel conversation\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--harness <harness>\",\"description\":\"Harness for the flywheel conversation\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--cwd <path>\",\"description\":\"Working directory (default: cwd)\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--orders <book-id>\",\"description\":\"Order book the flywheel works from\",\"required\":true,\"valueHint\":\"book-id\"},{\"flags\":\"--fresh\",\"description\":\"Replace a paused flywheel conversation instead of refusing\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-stop\",\"path\":[\"flywheel\",\"stop\"],\"display\":\"/pan flywheel stop\",\"description\":\"Ask the loop to write its report, wait for it, then pause\",\"args\":[],\"options\":[{\"flags\":\"--timeout <ms>\",\"description\":\"How long to wait for the report (default 120000)\",\"required\":true,\"valueHint\":\"ms\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-abort\",\"path\":[\"flywheel\",\"abort\"],\"display\":\"/pan flywheel abort\",\"description\":\"Stop the flywheel conversation without a report\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-pause\",\"path\":[\"flywheel\",\"pause\"],\"display\":\"/pan flywheel pause\",\"description\":\"Stop the flywheel session, keeping its conversation and transcript\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-resume\",\"path\":[\"flywheel\",\"resume\"],\"display\":\"/pan flywheel resume\",\"description\":\"Respawn a paused flywheel and re-send /pan-flywheel\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-report\",\"path\":[\"flywheel\",\"report\"],\"display\":\"/pan flywheel report\",\"description\":\"Ask a running loop for its report, or print .pan/flywheel/report.md\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-status\",\"path\":[\"flywheel\",\"status\"],\"display\":\"/pan flywheel status\",\"description\":\"Show the derived flywheel status: run, last tick, policies, in-flight issues, order book\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-stats\",\"path\":[\"flywheel\",\"stats\"],\"display\":\"/pan flywheel stats\",\"description\":\"Substrate-bug discovery rate and P0 count, computed from the tracker and forge\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--window <days>\",\"description\":\"Window in days (default 30)\",\"required\":true,\"valueHint\":\"days\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-merge\",\"path\":[\"merge\"],\"display\":\"/pan merge\",\"description\":\"Merge workflow helpers\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Review\"},\n {\"id\":\"pan-merge-cancel\",\"path\":[\"merge\",\"cancel\"],\"display\":\"/pan merge cancel\",\"description\":\"Cancel a pending Flywheel auto-merge during its cooldown window\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Review\"},\n {\"id\":\"pan-artifacts\",\"path\":[\"artifacts\"],\"display\":\"/pan artifacts\",\"description\":\"Create, publish, validate, inspect, and open shared HTML artifacts\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-artifacts-create\",\"path\":[\"artifacts\",\"create\"],\"display\":\"/pan artifacts create\",\"description\":\"Validate and publish an HTML artifact\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--issue <id>\",\"description\":\"Issue ID for artifact provenance\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--workspace <id>\",\"description\":\"Workspace ID for artifact provenance\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--agent-role <role>\",\"description\":\"Agent role: plan, work, review, test, ship, flywheel, or user\",\"required\":true,\"valueHint\":\"role\"},{\"flags\":\"--agent-harness <harness>\",\"description\":\"Agent harness: claude-code, pi, ohmypi, codex, acp, kimi-code, opencode, muse, prime-agent, or user\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--run-id <id>\",\"description\":\"Run ID for artifact provenance\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--session-id <id>\",\"description\":\"Session ID for artifact provenance\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--title <title>\",\"description\":\"Artifact title\",\"required\":true,\"valueHint\":\"title\"},{\"flags\":\"--description <text>\",\"description\":\"Artifact description\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--strict\",\"description\":\"Enable strict validation warnings\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Emit JSON result\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-artifacts-publish\",\"path\":[\"artifacts\",\"publish\"],\"display\":\"/pan artifacts publish\",\"description\":\"Revalidate and republish an existing artifact when changes are pending\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--strict\",\"description\":\"Enable strict validation warnings\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Emit JSON result\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-artifacts-unshare\",\"path\":[\"artifacts\",\"unshare\"],\"display\":\"/pan artifacts unshare\",\"description\":\"Disable an artifact URL without deleting source, snapshots, or metadata\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--yes\",\"description\":\"Confirm unsharing without an interactive prompt\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Emit JSON result\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-artifacts-share\",\"path\":[\"artifacts\",\"share\"],\"display\":\"/pan artifacts share\",\"description\":\"Share an artifact through an external tunnel\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--tunnel\",\"description\":\"Request tunnel-backed sharing\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Emit JSON result\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-artifacts-validate\",\"path\":[\"artifacts\",\"validate\"],\"display\":\"/pan artifacts validate\",\"description\":\"Validate an artifact HTML file\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--strict\",\"description\":\"Enable strict warnings\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Output validation result as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-artifacts-status\",\"path\":[\"artifacts\",\"status\"],\"display\":\"/pan artifacts status\",\"description\":\"Show artifact hash and publication status for a file\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output status as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-artifacts-list\",\"path\":[\"artifacts\",\"list\"],\"display\":\"/pan artifacts list\",\"description\":\"List artifacts\",\"args\":[],\"options\":[{\"flags\":\"--workspace <id>\",\"description\":\"Filter artifacts by workspace ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--json\",\"description\":\"Output artifacts as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-artifacts-url\",\"path\":[\"artifacts\",\"url\"],\"display\":\"/pan artifacts url\",\"description\":\"Print the wrapper URL for an artifact file\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output URL metadata as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-artifacts-open\",\"path\":[\"artifacts\",\"open\"],\"display\":\"/pan artifacts open\",\"description\":\"Open the wrapper URL for an artifact file\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output opened URL as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-status\",\"path\":[\"status\"],\"display\":\"/pan status\",\"description\":\"Show running agents\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--context\",\"description\":\"Show context window usage % for each agent\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-dev\",\"path\":[\"dev\"],\"display\":\"/pan dev\",\"description\":\"Start dashboard in development mode with Vite HMR\",\"args\":[],\"options\":[{\"flags\":\"--skip-traefik\",\"description\":\"Skip Traefik startup\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-deacon\",\"description\":\"Skip Cloister/Deacon auto-start (escape hatch when deacon's startup scan is starving the event loop)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-resume\",\"description\":\"Disable agent auto-resume (opt out of the default-on auto-resume)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-up\",\"path\":[\"up\"],\"display\":\"/pan up\",\"description\":\"Start dashboard (and Traefik if enabled)\",\"args\":[],\"options\":[{\"flags\":\"--detach\",\"description\":\"Run in background\",\"required\":false,\"valueHint\":null},{\"flags\":\"--skip-traefik\",\"description\":\"Skip Traefik startup\",\"required\":false,\"valueHint\":null},{\"flags\":\"--deacon\",\"description\":\"Force Cloister/Deacon auto-start even if the shell inherited OVERDECK_DISABLE_DEACON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-deacon\",\"description\":\"Skip Cloister/Deacon auto-start (escape hatch when deacon's startup scan is starving the event loop)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--resume\",\"description\":\"Enable agent auto-resume on boot — auto-resume is ON by default (flag kept for explicitness)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-resume\",\"description\":\"Disable agent auto-resume (opt out of the default-on auto-resume)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-open\",\"description\":\"Do not open the dashboard app/browser after startup\",\"required\":false,\"valueHint\":null},{\"flags\":\"--seed-from-legacy\",\"description\":\"Seed a fresh local database from the legacy database (copy conversations + reconstruct in-flight agents/issues). Default is an empty local database.\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-down\",\"path\":[\"down\"],\"display\":\"/pan down\",\"description\":\"Stop dashboard (and Traefik if enabled)\",\"args\":[],\"options\":[{\"flags\":\"--skip-traefik\",\"description\":\"Skip Traefik shutdown\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-reload\",\"path\":[\"reload\"],\"display\":\"/pan reload\",\"description\":\"Build Overdeck, then restart the dashboard only after the build succeeds\",\"args\":[],\"options\":[{\"flags\":\"--skip-build\",\"description\":\"Skip npm run build and restart the existing bundle\",\"required\":false,\"valueHint\":null},{\"flags\":\"--force\",\"description\":\"Bypass the agent deploy-window gate (agent-initiated reloads are otherwise refused while deploy-window block reasons are active)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--health-timeout <duration>\",\"description\":\"Dashboard /api/health wait budget — ms, or Ns/Nm suffix (default 30s; floor 1000ms)\",\"required\":true,\"valueHint\":\"duration\"},{\"flags\":\"--deacon\",\"description\":\"Start Cloister/Deacon on the reloaded dashboard (always on after a reload)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-deacon\",\"description\":\"Refused: a Deacon-off dashboard is a peer and cannot hold the host dashboard port\",\"required\":false,\"valueHint\":null},{\"flags\":\"--resume\",\"description\":\"Enable agent auto-resume on the reloaded dashboard (default: keep the running dashboard's resume gate)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-resume\",\"description\":\"Disable agent auto-resume on the reloaded dashboard (default: keep the running dashboard's resume gate)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-restart\",\"path\":[\"restart\"],\"display\":\"/pan restart\",\"description\":\"Restart a platform component (default: dashboard only — leaves CLIProxy and Traefik running)\",\"args\":[],\"options\":[{\"flags\":\"--dashboard\",\"description\":\"Restart only the dashboard (default)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--cliproxy\",\"description\":\"Restart only the CLIProxy sidecar\",\"required\":false,\"valueHint\":null},{\"flags\":\"--traefik\",\"description\":\"Restart only Traefik\",\"required\":false,\"valueHint\":null},{\"flags\":\"--full\",\"description\":\"Restart the entire stack (equivalent to pan down && pan up)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--force\",\"description\":\"For --cliproxy: redownload binary at the pinned version before restarting (use after bumping CLIPROXY_RELEASE_VERSION). For dashboard scope: bypass the agent deploy-window gate (agent-initiated restarts are otherwise refused while deploy-window block reasons are active)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--health-timeout <duration>\",\"description\":\"Dashboard /api/health wait budget — ms, or Ns/Nm suffix (default 15s; floor 1000ms)\",\"required\":true,\"valueHint\":\"duration\"},{\"flags\":\"--deacon\",\"description\":\"Force Cloister/Deacon auto-start even if the shell inherited OVERDECK_DISABLE_DEACON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-deacon\",\"description\":\"Skip Cloister/Deacon auto-start on restart (escape hatch when deacon's startup scan is starving the event loop)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--resume\",\"description\":\"Enable agent auto-resume on boot — auto-resume is ON by default (flag kept for explicitness)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-resume\",\"description\":\"Disable agent auto-resume on restart (opt out of the default-on auto-resume)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--now\",\"description\":\"Skip the operator-approval wait: approve everything already waiting, then restart the dashboard immediately\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-restart-approve\",\"path\":[\"restart\",\"approve\"],\"display\":\"/pan restart approve\",\"description\":\"Approve every dashboard restart request that is waiting for the operator\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-project\",\"path\":[\"project\"],\"display\":\"/pan project\",\"description\":\"Project registry for multi-project workspace support\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-project-add\",\"path\":[\"project\",\"add\"],\"display\":\"/pan project add\",\"description\":\"Register a project with Overdeck\",\"args\":[{\"name\":\"path\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--name <name>\",\"description\":\"Project name\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--type <type>\",\"description\":\"Project type (standalone/monorepo)\",\"required\":true,\"valueHint\":\"type\"},{\"flags\":\"--linear-team <team>\",\"description\":\"Linear team prefix (e.g., MIN, PAN)\",\"required\":true,\"valueHint\":\"team\"},{\"flags\":\"--rally-project <oid>\",\"description\":\"Rally project OID (e.g., /project/822404704163)\",\"required\":true,\"valueHint\":\"oid\"},{\"flags\":\"--dry-run\",\"description\":\"Validate without creating (resolve-before-create pattern)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-project-clone\",\"path\":[\"project\",\"clone\"],\"display\":\"/pan project clone\",\"description\":\"Clone a GitHub or GitLab repository and register it as a project\",\"args\":[{\"name\":\"url\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--parent <dir>\",\"description\":\"Parent directory (default: ~/Projects)\",\"required\":true,\"valueHint\":\"dir\"},{\"flags\":\"--name <name>\",\"description\":\"Project name (default: repository name)\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--issue-prefix <prefix>\",\"description\":\"Issue prefix (default: derived from the name)\",\"required\":true,\"valueHint\":\"prefix\"},{\"flags\":\"--dry-run\",\"description\":\"Print the resolved intent as JSON and create nothing\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-project-finish-setup\",\"path\":[\"project\",\"finish-setup\"],\"display\":\"/pan project finish-setup\",\"description\":\"Finish setup for a registered project whose creation did not complete\",\"args\":[{\"name\":\"key\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--path <path>\",\"description\":\"Expected project path; refuses if it does not match the registration\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-project-list\",\"path\":[\"project\",\"list\"],\"display\":\"/pan project list\",\"description\":\"List all registered projects\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-project-show\",\"path\":[\"project\",\"show\"],\"display\":\"/pan project show\",\"description\":\"Show details for a specific project\",\"args\":[{\"name\":\"key\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-project-rename\",\"path\":[\"project\",\"rename\"],\"display\":\"/pan project rename\",\"description\":\"Rename a project's display name (the registration key stays unchanged)\",\"args\":[{\"name\":\"key\",\"required\":true,\"variadic\":false},{\"name\":\"newName\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-project-remove\",\"path\":[\"project\",\"remove\"],\"display\":\"/pan project remove\",\"description\":\"Remove a project from the registry\",\"args\":[{\"name\":\"nameOrPath\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-project-init\",\"path\":[\"project\",\"init\"],\"display\":\"/pan project init\",\"description\":\"Initialize projects.yaml with example configuration\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-project-add-target\",\"path\":[\"project\",\"add-target\"],\"display\":\"/pan project add-target\",\"description\":\"Add a secondary target path for a registered project\",\"args\":[{\"name\":\"project\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--path <path>\",\"description\":\"Target path to add\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--primary\",\"description\":\"Make this the primary target (demotes any existing primary)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects\",\"path\":[\"projects\"],\"display\":\"/pan projects\",\"description\":\"Project registry for multi-project workspace support\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects-add\",\"path\":[\"projects\",\"add\"],\"display\":\"/pan projects add\",\"description\":\"Register a project with Overdeck\",\"args\":[{\"name\":\"path\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--name <name>\",\"description\":\"Project name\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--type <type>\",\"description\":\"Project type (standalone/monorepo)\",\"required\":true,\"valueHint\":\"type\"},{\"flags\":\"--linear-team <team>\",\"description\":\"Linear team prefix (e.g., MIN, PAN)\",\"required\":true,\"valueHint\":\"team\"},{\"flags\":\"--rally-project <oid>\",\"description\":\"Rally project OID (e.g., /project/822404704163)\",\"required\":true,\"valueHint\":\"oid\"},{\"flags\":\"--dry-run\",\"description\":\"Validate without creating (resolve-before-create pattern)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects-clone\",\"path\":[\"projects\",\"clone\"],\"display\":\"/pan projects clone\",\"description\":\"Clone a GitHub or GitLab repository and register it as a project\",\"args\":[{\"name\":\"url\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--parent <dir>\",\"description\":\"Parent directory (default: ~/Projects)\",\"required\":true,\"valueHint\":\"dir\"},{\"flags\":\"--name <name>\",\"description\":\"Project name (default: repository name)\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--issue-prefix <prefix>\",\"description\":\"Issue prefix (default: derived from the name)\",\"required\":true,\"valueHint\":\"prefix\"},{\"flags\":\"--dry-run\",\"description\":\"Print the resolved intent as JSON and create nothing\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects-finish-setup\",\"path\":[\"projects\",\"finish-setup\"],\"display\":\"/pan projects finish-setup\",\"description\":\"Finish setup for a registered project whose creation did not complete\",\"args\":[{\"name\":\"key\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--path <path>\",\"description\":\"Expected project path; refuses if it does not match the registration\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects-list\",\"path\":[\"projects\",\"list\"],\"display\":\"/pan projects list\",\"description\":\"List all registered projects\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects-show\",\"path\":[\"projects\",\"show\"],\"display\":\"/pan projects show\",\"description\":\"Show details for a specific project\",\"args\":[{\"name\":\"key\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects-rename\",\"path\":[\"projects\",\"rename\"],\"display\":\"/pan projects rename\",\"description\":\"Rename a project's display name (the registration key stays unchanged)\",\"args\":[{\"name\":\"key\",\"required\":true,\"variadic\":false},{\"name\":\"newName\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects-remove\",\"path\":[\"projects\",\"remove\"],\"display\":\"/pan projects remove\",\"description\":\"Remove a project from the registry\",\"args\":[{\"name\":\"nameOrPath\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects-init\",\"path\":[\"projects\",\"init\"],\"display\":\"/pan projects init\",\"description\":\"Initialize projects.yaml with example configuration\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects-add-target\",\"path\":[\"projects\",\"add-target\"],\"display\":\"/pan projects add-target\",\"description\":\"Add a secondary target path for a registered project\",\"args\":[{\"name\":\"project\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--path <path>\",\"description\":\"Target path to add\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--primary\",\"description\":\"Make this the primary target (demotes any existing primary)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-health\",\"path\":[\"health\"],\"display\":\"/pan health\",\"description\":\"Show runtime health of Overdeck services\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-doctor\",\"path\":[\"doctor\"],\"display\":\"/pan doctor\",\"description\":\"Check system health and dependencies\",\"args\":[],\"options\":[{\"flags\":\"--strict\",\"description\":\"Exit non-zero if any optional dependency is missing (e.g. Pi binary)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-doctor-github-quota\",\"path\":[\"doctor\",\"github-quota\"],\"display\":\"/pan doctor github-quota\",\"description\":\"Show GitHub API quota use per caller, active pauses, and skipped projects\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-resources\",\"path\":[\"resources\"],\"display\":\"/pan resources\",\"description\":\"Show RAM usage by agents, conversations, and system processes\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-hygiene\",\"path\":[\"hygiene\"],\"display\":\"/pan hygiene\",\"description\":\"Audit push, worktree, PR, agent, session, branch, workspace, and disk hygiene\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Emit a schema-validated JSON report\",\"required\":false,\"valueHint\":null},{\"flags\":\"--strict\",\"description\":\"Exit 1 when any finding needs attention\",\"required\":false,\"valueHint\":null},{\"flags\":\"--skip <check...>\",\"description\":\"Skip checks: push tree prs agents sessions branches workspaces\",\"required\":true,\"valueHint\":\"check...\"},{\"flags\":\"--since <duration>\",\"description\":\"Age threshold for stale branches/workspaces\",\"required\":true,\"valueHint\":\"duration\"},{\"flags\":\"--fix-safe\",\"description\":\"Delete only confirmed merged branches; under disk pressure remove independently verified clean terminal workspaces\",\"required\":false,\"valueHint\":null},{\"flags\":\"--fix-disk-pressure-floor <GB>\",\"description\":\"Override the disk cleanup floor used with --fix-safe\",\"required\":true,\"valueHint\":\"GB\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-update\",\"path\":[\"update\"],\"display\":\"/pan update\",\"description\":\"Update Overdeck to latest version\",\"args\":[],\"options\":[{\"flags\":\"--check\",\"description\":\"Only check for updates, don't install\",\"required\":false,\"valueHint\":null},{\"flags\":\"--force\",\"description\":\"Force update even if on latest\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-cost\",\"path\":[\"cost\"],\"display\":\"/pan cost\",\"description\":\"Track and report AI usage costs\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-today\",\"path\":[\"cost\",\"today\"],\"display\":\"/pan cost today\",\"description\":\"Show today's cost summary\",\"args\":[],\"options\":[{\"flags\":\"-d, --detail\",\"description\":\"Show individual entries\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-week\",\"path\":[\"cost\",\"week\"],\"display\":\"/pan cost week\",\"description\":\"Show weekly cost summary\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-month\",\"path\":[\"cost\",\"month\"],\"display\":\"/pan cost month\",\"description\":\"Show monthly cost summary\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-report\",\"path\":[\"cost\",\"report\"],\"display\":\"/pan cost report\",\"description\":\"Generate a cost report\",\"args\":[],\"options\":[{\"flags\":\"-s, --start <date>\",\"description\":\"Start date (YYYY-MM-DD)\",\"required\":true,\"valueHint\":\"date\"},{\"flags\":\"-e, --end <date>\",\"description\":\"End date (YYYY-MM-DD)\",\"required\":true,\"valueHint\":\"date\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-issue\",\"path\":[\"cost\",\"issue\"],\"display\":\"/pan cost issue\",\"description\":\"Show costs for a specific issue\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"-d, --days <n>\",\"description\":\"Number of days to look back\",\"required\":true,\"valueHint\":\"n\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-effort\",\"path\":[\"cost\",\"effort\"],\"display\":\"/pan cost effort\",\"description\":\"Show costs grouped by reasoning effort\",\"args\":[],\"options\":[{\"flags\":\"-i, --issue <issueId>\",\"description\":\"Limit to one issue\",\"required\":true,\"valueHint\":\"issueId\"},{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-budget\",\"path\":[\"cost\",\"budget\"],\"display\":\"/pan cost budget\",\"description\":\"Manage cost budgets\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-budget-create\",\"path\":[\"cost\",\"budget\",\"create\"],\"display\":\"/pan cost budget create\",\"description\":\"Create a cost budget\",\"args\":[{\"name\":\"name\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"-l, --limit <amount>\",\"description\":\"Budget limit in USD\",\"required\":true,\"valueHint\":\"amount\"},{\"flags\":\"-t, --type <type>\",\"description\":\"Budget type (daily, monthly, project, issue, feature)\",\"required\":true,\"valueHint\":\"type\"},{\"flags\":\"-a, --alert <threshold>\",\"description\":\"Alert threshold (0-1)\",\"required\":true,\"valueHint\":\"threshold\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-budget-list\",\"path\":[\"cost\",\"budget\",\"list\"],\"display\":\"/pan cost budget list\",\"description\":\"List all budgets\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-budget-check\",\"path\":[\"cost\",\"budget\",\"check\"],\"display\":\"/pan cost budget check\",\"description\":\"Check budget status\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-budget-delete\",\"path\":[\"cost\",\"budget\",\"delete\"],\"display\":\"/pan cost budget delete\",\"description\":\"Delete a budget\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-sync\",\"path\":[\"cost\",\"sync\"],\"display\":\"/pan cost sync\",\"description\":\"Import cost events from per-project WAL files into the local database\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-backfill\",\"path\":[\"cost\",\"backfill\"],\"display\":\"/pan cost backfill\",\"description\":\"Reconstruct cost events from stored harness session transcripts\",\"args\":[],\"options\":[{\"flags\":\"--write\",\"description\":\"Persist non-duplicate reconstructed cost events\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-serve\",\"path\":[\"serve\"],\"display\":\"/pan serve\",\"description\":\"Start the dashboard server and open it in the default browser (npx launcher)\",\"args\":[],\"options\":[{\"flags\":\"--port <port>\",\"description\":\"Port to listen on\",\"required\":true,\"valueHint\":\"port\"}],\"aliases\":[],\"category\":\"CLI\"},\n]\n\nexport const COMPOSER_COMMAND_INSERT_OVERRIDES: Readonly<Record<string, string>> = {\n \"plan finalize\": \"/pan plan finalize \",\n \"admin specialists done\": \"/pan admin specialists done\"\n}\n\nexport const COMPOSER_COMMAND_VARIANTS = [\n {\"id\":\"pan-show-cv\",\"path\":[\"show\"],\"display\":\"/pan show --cv\",\"description\":\"Show agent work history (CV)\",\"insert\":\"/pan show --cv\",\"category\":\"Observation\"},\n {\"id\":\"pan-show-context\",\"path\":[\"show\"],\"display\":\"/pan show --context\",\"description\":\"Show context engineering state\",\"insert\":\"/pan show --context\",\"category\":\"Observation\"},\n {\"id\":\"pan-show-health\",\"path\":[\"show\"],\"display\":\"/pan show --health\",\"description\":\"Show health + heartbeat status\",\"insert\":\"/pan show --health\",\"category\":\"Observation\"},\n {\"id\":\"pan-plan-auto-start\",\"path\":[\"plan\"],\"display\":\"/pan plan --auto --auto-start\",\"description\":\"Auto-plan the issue, then auto-start the work agent\",\"insert\":\"/pan plan --auto --auto-start \",\"category\":\"Lifecycle\"},\n {\"id\":\"pan-fork-plain\",\"path\":[\"fork\"],\"display\":\"/pan fork --plain\",\"description\":\"Plain fork — copy raw history, skip summary\",\"insert\":\"/pan fork --plain\",\"category\":\"Conversation\"},\n {\"id\":\"pan-handoff-model\",\"path\":[\"handoff\"],\"display\":\"/pan handoff --model\",\"description\":\"Model for the new conversation\",\"insert\":\"/pan handoff --model \",\"category\":\"Conversation\"},\n {\"id\":\"pan-handoff-harness\",\"path\":[\"handoff\"],\"display\":\"/pan handoff --harness\",\"description\":\"Harness for the new conversation (claude-code|pi)\",\"insert\":\"/pan handoff --harness \",\"category\":\"Conversation\"},\n {\"id\":\"pan-handoff-cwd\",\"path\":[\"handoff\"],\"display\":\"/pan handoff --cwd\",\"description\":\"Working directory for the new conversation\",\"insert\":\"/pan handoff --cwd \",\"category\":\"Conversation\"},\n] as const\n","export interface WiredHookInventoryEntry {\n readonly name: string\n readonly wired: true\n readonly color: `#${string}`\n}\n\nexport interface UnwiredHookInventoryEntry {\n readonly name: string\n readonly wired: false\n}\n\nexport type HookInventoryEntry = WiredHookInventoryEntry | UnwiredHookInventoryEntry\n\nexport const HOOK_INVENTORY = [\n { name: \"PreToolUse\", wired: true, color: \"#00d4ff\" },\n { name: \"PostToolUse\", wired: true, color: \"#39ff14\" },\n { name: \"PostToolUseFailure\", wired: true, color: \"#ff4444\" },\n { name: \"Stop\", wired: true, color: \"#ff2d7c\" },\n { name: \"SessionStart\", wired: true, color: \"#9d4edd\" },\n { name: \"Notification\", wired: true, color: \"#ffb800\" },\n { name: \"UserPromptSubmit\", wired: true, color: \"#00d4ff\" },\n { name: \"PreCompact\", wired: true, color: \"#ff7700\" },\n { name: \"PostCompact\", wired: true, color: \"#ff7700\" },\n { name: \"PermissionRequest\", wired: true, color: \"#ffb800\" },\n { name: \"SessionEnd\", wired: false },\n { name: \"SubagentStart\", wired: false },\n { name: \"SubagentStop\", wired: false },\n { name: \"StopFailure\", wired: false },\n { name: \"PermissionDenied\", wired: false },\n { name: \"TaskCreated\", wired: false },\n { name: \"TaskCompleted\", wired: false },\n { name: \"TeammateIdle\", wired: false },\n { name: \"ConfigChange\", wired: false },\n { name: \"WorktreeCreate\", wired: false },\n { name: \"InstructionsLoaded\", wired: false },\n] as const satisfies readonly HookInventoryEntry[]\n\nexport type HookInventoryName = (typeof HOOK_INVENTORY)[number][\"name\"]\n\nexport const WIRED_HOOK_INVENTORY = HOOK_INVENTORY.filter((hook) => hook.wired)\nexport const WIRED_HOOK_NAMES = WIRED_HOOK_INVENTORY.map((hook) => hook.name)\n","// Terminal backend vocabulary (PAN-3917 FR-3, D10).\n//\n// The terminal backend owns agent terminals and their liveness. Two adapters\n// exist: Herdr (default) and tmux. These are the names the dashboard, the CLI,\n// and the adapters all speak, so they live in the shared contracts package.\n\n/** Adapter that owns agent terminals. */\nexport type TerminalBackendName = \"herdr\" | \"tmux\"\n\n/**\n * Agent lifecycle state. `idle | working | blocked | done | unknown` are\n * Herdr's states verbatim; `exited` is the tmux adapter's dead-pane state and\n * Herdr's `pane_exited`.\n */\nexport type AgentState = \"idle\" | \"working\" | \"blocked\" | \"done\" | \"exited\" | \"unknown\"\n\n/** Pane role, stamped as a metadata token by every launcher (FR-5). */\nexport type AgentRole = \"work\" | \"worker\" | \"review\" | \"test\" | \"uat\" | \"strike\" | \"plan\" | \"conversation\"\n\n/**\n * Metadata tokens stamped on every agent pane. An operator conversation\n * carries role `conversation` and no `issue` token (FR-5), which is also what\n * the prompt guard uses to recognize an operator sender (FR-17). An\n * issue-scoped conversation carries role `conversation` plus the issue; it is\n * not the issue's work pane.\n */\nexport interface PaneTokens {\n /** Issue id (e.g. `PAN-3917`); absent for operator conversations. */\n readonly issue?: string\n readonly role: AgentRole\n readonly harness: string\n readonly model: string\n /** Agent or conversation that spawned this pane (PAN-3920 workers); it may prompt the pane. */\n readonly parent?: string\n}\n\n/** One agent pane as the backend reports it. */\nexport interface BackendAgentSnapshot {\n readonly backend: TerminalBackendName\n /** Backend-native pane handle (Herdr `w1:p1`, tmux session name). */\n readonly paneId: string\n /** Overdeck agent id, when the pane carries one (PAN-3920). */\n readonly agentId?: string\n /** Handle the terminal WebSocket attaches to. */\n readonly terminalId: string\n /** Issue workspace the pane belongs to. */\n readonly workspaceId: string\n readonly state: AgentState\n readonly tokens: Partial<PaneTokens>\n readonly cwd?: string\n readonly title?: string\n}\n\nexport const TERMINAL_BACKEND_NAMES: readonly TerminalBackendName[] = [\"herdr\", \"tmux\"]\n\nexport const AGENT_ROLES: readonly AgentRole[] = [\"work\", \"worker\", \"review\", \"test\", \"uat\", \"strike\", \"plan\", \"conversation\"]\n\nexport function isTerminalBackendName(value: unknown): value is TerminalBackendName {\n return typeof value === \"string\" && (TERMINAL_BACKEND_NAMES as readonly string[]).includes(value)\n}\n\nexport function isAgentRole(value: unknown): value is AgentRole {\n return typeof value === \"string\" && (AGENT_ROLES as readonly string[]).includes(value)\n}\n","// Agents Directory (PAN-3920). One row per agent-like thing the dashboard can show.\n//\n// Derived on every read from state files, the pane inventory, conversations and\n// transcripts; never stored (D1). `GET /api/agent-directory` answers with an\n// `AgentDirectoryResponse`; the dashboard's three-pane Agents Directory renders it.\n\nimport { Schema } from \"effect\"\nimport { EffortLevelSchema } from \"./effort\"\n\nexport const DirectoryEntryKind = Schema.Literals([\"agent\", \"conversation\", \"subagent\", \"external\"])\nexport type DirectoryEntryKind = typeof DirectoryEntryKind.Type\n\nexport const DirectoryEntryState = Schema.Literals([\"working\", \"idle\", \"blocked\", \"done\", \"stopped\", \"unknown\"])\nexport type DirectoryEntryState = typeof DirectoryEntryState.Type\n\nexport const DirectoryEntrySource = Schema.Literals([\n \"overdeck\", // state.json agent (incl. workers)\n \"pane\", // pane-only (pan spawn)\n \"conversation\", // overdeck.db conversation row\n \"claude-subagent\",\n \"codex-subagent\",\n \"registered\", // pan worker register / POST /api/workers/register (Phase C)\n \"codex-plugin\", // Codex-plugin job adapter (Phase C)\n])\nexport type DirectoryEntrySource = typeof DirectoryEntrySource.Type\n\nexport const DirectoryTranscriptRef = Schema.Union([\n Schema.Struct({ route: Schema.Literal(\"agent\"), agentId: Schema.String }),\n Schema.Struct({ route: Schema.Literal(\"agent-subagent\"), agentId: Schema.String, subagentId: Schema.String }),\n Schema.Struct({ route: Schema.Literal(\"conversation\"), conversationName: Schema.String }),\n Schema.Struct({\n route: Schema.Literal(\"conversation-subagent\"),\n conversationName: Schema.String,\n subagentId: Schema.String,\n }),\n])\nexport type DirectoryTranscriptRef = typeof DirectoryTranscriptRef.Type\n\nexport const DirectoryEntryLocation = Schema.Literals([\"local\", \"remote\"])\nexport type DirectoryEntryLocation = typeof DirectoryEntryLocation.Type\n\nexport const DirectoryPauseBy = Schema.Literals([\"operator\", \"scheduler\", \"machine\"])\nexport type DirectoryPauseBy = typeof DirectoryPauseBy.Type\n\nexport const DirectoryPause = Schema.Struct({\n by: DirectoryPauseBy,\n reason: Schema.NullOr(Schema.String),\n since: Schema.NullOr(Schema.String),\n})\nexport type DirectoryPause = typeof DirectoryPause.Type\n\n/** A provider error (billing, usage limit, ...) detected at the end of a transcript (PAN-4222). */\nexport const DirectoryProviderError = Schema.Struct({\n message: Schema.String,\n at: Schema.String,\n})\nexport type DirectoryProviderError = typeof DirectoryProviderError.Type\n\nexport const DirectoryEntry = Schema.Struct({\n id: Schema.String,\n kind: DirectoryEntryKind,\n label: Schema.String,\n location: DirectoryEntryLocation,\n /** projects.yaml key; `unassigned` when none (D5). */\n projectKey: Schema.String,\n /** Uppercase issue id, e.g. `PAN-3920`. */\n issueId: Schema.NullOr(Schema.String),\n /** The issue's title from the dashboard's tracker cache; null when unknown. */\n issueTitle: Schema.NullOr(Schema.String),\n parentId: Schema.NullOr(Schema.String),\n role: Schema.NullOr(Schema.String),\n /** `unknown` when not known. */\n harness: Schema.String,\n /** `unknown` when not known. */\n model: Schema.String,\n /** The launch effort from state.json, native agents only (PAN-4259). */\n effort: Schema.optional(EffortLevelSchema),\n /** Where `effort` came from (an EffortSource), native agents only. */\n effortSource: Schema.optional(Schema.String),\n state: DirectoryEntryState,\n startedAt: Schema.NullOr(Schema.String),\n lastActivityAt: Schema.NullOr(Schema.String),\n costUsd: Schema.NullOr(Schema.Number),\n source: DirectoryEntrySource,\n transcript: Schema.NullOr(DirectoryTranscriptRef),\n /** The pause gate from state.json, native agents only (PAN-4197). */\n pause: Schema.optional(DirectoryPause),\n /** PAN-4223: gauntlet lane facts; conversation entries that are lanes only. */\n lane: Schema.optional(Schema.Struct({\n run: Schema.String,\n key: Schema.String,\n role: Schema.String,\n iteration: Schema.Number,\n reportStatus: Schema.NullOr(Schema.Literals([\"done\", \"blocked\", \"failed\"])),\n /** Critic/verifier: its verdict (or `pending`); builder: the newest critic verdict. */\n verdict: Schema.optional(Schema.NullOr(Schema.String)),\n /** Critic/verifier: the judged builder's legacy conversation id. */\n criticOf: Schema.optional(Schema.Number),\n })),\n /** PAN-4223: the predecessor's legacy conversation id; successors only (links to /conv/<id>). */\n continuesFrom: Schema.optional(Schema.Number),\n /** The id runtime events (agentRuntimeById) are keyed under, when it differs from `id` (PAN-4222). */\n runtimeId: Schema.optional(Schema.String),\n /** A provider error detected at the transcript's end, conversations only (PAN-4222). */\n providerError: Schema.optional(DirectoryProviderError),\n})\nexport type DirectoryEntry = typeof DirectoryEntry.Type\n\n/**\n * `window`: live entries plus finished ones active inside `windowHours`.\n * `live` (PAN-4197): what is running or waiting now; `windowHours` is 0.\n */\nexport const DirectoryScope = Schema.Literals([\"window\", \"live\"])\nexport type DirectoryScope = typeof DirectoryScope.Type\n\nexport const AgentDirectoryResponse = Schema.Struct({\n generatedAt: Schema.String,\n windowHours: Schema.Number,\n scope: Schema.optional(DirectoryScope),\n entries: Schema.Array(DirectoryEntry),\n})\nexport type AgentDirectoryResponse = typeof AgentDirectoryResponse.Type\n","/**\n * Companion terminal seam (PAN-3974, reused by PAN-3835).\n *\n * A companion terminal is a second terminal session, separate from the\n * conversation's own (owner) session, running a harness's native interactive\n * client attached to the owner's live runtime and exact session. Dashboard\n * delivery never goes through it; it exists so the operator can drive the\n * native CLI from the conversation TERMINAL view.\n *\n * This module is the shared vocabulary between the dashboard server lifecycle\n * (`src/lib/overdeck/companion-terminal/`) and the conversation UI\n * (`ConversationTerminalView.tsx`). Adding a harness means adding a kind here,\n * mapping it in `companionTerminalKindFor`, and registering a server adapter —\n * the lifecycle, routes, and UI stay unchanged.\n */\n\n/** The native-client attach strategies Overdeck knows how to run. */\nexport type CompanionTerminalKind =\n /** `opencode attach <url> --session <id>` (PAN-3974). */\n | \"opencode-attach\"\n /** `codex resume --remote unix://<socket> <threadId>` (PAN-3835). */\n | \"codex-resume-remote\"\n\n/** Why a companion cannot be opened right now. */\nexport type CompanionTerminalUnavailableReason =\n /** The conversation predates the recorded server port; restart it to attach. */\n | \"restart-required\"\n /** The owner conversation is not running. */\n | \"owner-not-running\"\n /** The owner is starting or its server is not answering yet. */\n | \"owner-starting\"\n /** The owner's server does not know the recorded session. */\n | \"session-missing\"\n /** The native client binary is not installed. */\n | \"binary-missing\"\n /** The installed CLI is too old to attach its native client. */\n | \"cli-unsupported\"\n /** The conversation has no saved harness session yet; send a message first. */\n | \"session-not-started\"\n /** The owner restarted while the companion was being opened. */\n | \"owner-changed\"\n /** This conversation's harness has no companion terminal. */\n | \"unsupported\"\n\nexport type CompanionTerminalState =\n | {\n readonly status: \"attached\"\n readonly kind: CompanionTerminalKind\n /** The terminal session to stream through `/ws/terminal?session=`. */\n readonly sessionName: string\n /** Owner generation the companion was created for; required by Close. */\n readonly generation: string\n /** True when an existing companion for this generation was reused. */\n readonly reused: boolean\n }\n | {\n readonly status: \"closed\"\n readonly kind: CompanionTerminalKind\n }\n | {\n readonly status: \"unavailable\"\n readonly kind: CompanionTerminalKind | null\n readonly reason: CompanionTerminalUnavailableReason\n readonly message: string\n }\n\n/** The conversation fields the mapping reads. */\nexport interface CompanionTerminalOwnerShape {\n readonly harness?: string | null\n}\n\n/**\n * Which companion terminal a conversation gets, or `null` for \"keep the\n * owner pane as TERMINAL\". A Codex conversation still on the legacy\n * `codex.transport: tui` runs the native TUI in its owner pane; the server\n * adapter reports that as `unsupported` and points at the runtime pane.\n */\nexport function companionTerminalKindFor(\n conversation: CompanionTerminalOwnerShape,\n): CompanionTerminalKind | null {\n if (conversation.harness === \"opencode\") return \"opencode-attach\"\n if (conversation.harness === \"codex\") return \"codex-resume-remote\"\n return null\n}\n\n/** Body keys each mutation accepts. Anything else is rejected as target injection. */\nexport const COMPANION_TERMINAL_OPEN_BODY_KEYS: ReadonlyArray<string> = []\nexport const COMPANION_TERMINAL_CLOSE_BODY_KEYS: ReadonlyArray<string> = [\"generation\"]\n","/**\n * Pull-request references (PAN-3822): parse what an operator or agent types\n * (a PR/MR URL, `#42`, `owner/repo#42`) into a PR key, rebuild the canonical\n * URL from a key, and decide whether a ref belongs to a repository configured\n * for the conversation's project.\n *\n * The URL shape decides the forge, not the host, so self-hosted GitLab and\n * GitHub Enterprise both parse. Host and repository are lower-cased; the stored\n * URL is always rebuilt from the key, never the pasted text. Shared by the\n * server (link commands, the pipeline) and the dashboard (transcript links).\n */\n\nimport type { PullRequestKey } from './pull-request-links';\n\nexport type PullRequestForge = 'github' | 'gitlab';\n\n/** A repository PRs can be linked from. */\nexport interface PullRequestRepo {\n readonly host: string;\n readonly repository: string;\n readonly forge: PullRequestForge;\n}\n\nexport interface ParsedPullRequestRef extends PullRequestKey {\n readonly url: string;\n readonly forge: PullRequestForge;\n}\n\nconst SCHEME = String.raw`(?:https?:\\/\\/)?`;\nconst HOST = String.raw`([a-z0-9.-]+(?::\\d+)?)`;\nconst TAIL = String.raw`(?:\\/[^?#]*)?(?:[?#].*)?$`;\nconst GITLAB_MR = new RegExp(String.raw`^${SCHEME}${HOST}\\/((?:[\\w.-]+\\/)+[\\w.-]+)\\/-\\/merge_requests\\/(\\d+)${TAIL}`, 'i');\nconst GITHUB_PR = new RegExp(String.raw`^${SCHEME}${HOST}\\/([\\w.-]+\\/[\\w.-]+)\\/pull\\/(\\d+)${TAIL}`, 'i');\nconst GITLAB_MR_LEGACY = new RegExp(String.raw`^${SCHEME}${HOST}\\/((?:[\\w.-]+\\/)+[\\w.-]+)\\/merge_requests\\/(\\d+)${TAIL}`, 'i');\nconst SHORT_REF = /^(?:((?:[\\w.-]+\\/)+[\\w.-]+))?[#!](\\d+)$/;\n\nexport function canonicalPullRequestUrl(key: PullRequestKey, forge: PullRequestForge): string {\n return forge === 'gitlab'\n ? `https://${key.host}/${key.repository}/-/merge_requests/${key.number}`\n : `https://${key.host}/${key.repository}/pull/${key.number}`;\n}\n\nfunction build(host: string, repository: string, number: number, forge: PullRequestForge): ParsedPullRequestRef | null {\n if (!Number.isSafeInteger(number) || number <= 0) return null;\n const key = { host: host.toLowerCase(), repository: repository.toLowerCase().replace(/\\.git$/, ''), number };\n return { ...key, forge, url: canonicalPullRequestUrl(key, forge) };\n}\n\n/**\n * Accepts a full PR/MR URL, `#42`, or `owner/repo#42` (`!42` for GitLab MRs).\n * The short forms need `defaultRepo` for host and forge (`#42` for the\n * repository too) and return null without it. Anything else returns null.\n */\nexport function parsePullRequestRef(input: string, defaultRepo?: PullRequestRepo | null): ParsedPullRequestRef | null {\n const text = input.trim();\n if (!text) return null;\n for (const [pattern, forge] of [\n [GITLAB_MR, 'gitlab'],\n [GITHUB_PR, 'github'],\n [GITLAB_MR_LEGACY, 'gitlab'],\n ] as const) {\n const match = pattern.exec(text);\n if (match) return build(match[1]!, match[2]!, Number(match[3]), forge);\n }\n const short = SHORT_REF.exec(text);\n if (!short || !defaultRepo) return null;\n return build(defaultRepo.host, short[1] ?? defaultRepo.repository, Number(short[2]), defaultRepo.forge);\n}\n\n/**\n * The repository behind a git remote URL (https, ssh://, or scp-style), or null\n * when the host names neither GitHub nor GitLab.\n */\nexport function repoFromRemoteUrl(remote: string | null | undefined): PullRequestRepo | null {\n if (!remote) return null;\n const text = remote.trim();\n const match = /^[a-z][a-z0-9+.-]*:\\/\\/(?:[^@/]*@)?([^/:]+)(?::\\d+)?\\/(.+?)(?:\\.git)?\\/?$/i.exec(text)\n ?? /^(?:[^@/]+@)?([^/:]+):(.+?)(?:\\.git)?\\/?$/i.exec(text);\n if (!match) return null;\n const host = match[1]!.toLowerCase();\n const forge: PullRequestForge | null = host.includes('gitlab') ? 'gitlab' : host.includes('github') ? 'github' : null;\n if (!forge) return null;\n return { host, repository: match[2]!.toLowerCase(), forge };\n}\n\n/** True when the ref's host and repository match one of the configured repos. */\nexport function isConfiguredPullRequestRepo(ref: PullRequestKey, repos: readonly PullRequestRepo[]): boolean {\n return repos.some((repo) => repo.host === ref.host && repo.repository === ref.repository);\n}\n","/**\n * Conversation-row classifiers shared by the dashboard server (`src/lib`) and\n * the frontend (PAN-4301). One rule per question: which rows are singleton\n * runners, and what a lane conversation is doing right now (D10).\n */\n\n/** Singleton runners spawn under their bare id (see src/lib/agents/identity.ts normalizeAgentId). */\nexport const SINGLETON_AGENT_IDS: ReadonlySet<string> = new Set([\"flywheel-orchestrator\", \"sequencer-runner\"])\n\nexport function isSingletonConversation(row: { name: string; issueId?: string | null }): boolean {\n return SINGLETON_AGENT_IDS.has(row.name.toLowerCase())\n || (row.issueId != null && SINGLETON_AGENT_IDS.has(row.issueId.toLowerCase()))\n}\n\nexport type LaneActivity = \"failed-to-start\" | \"needs-you\" | \"working\" | \"idle\" | \"starting\" | \"stopped\"\n\n/** D10 `starting`: not alive, not ended, created less than this long ago. */\nexport const LANE_STARTING_GRACE_MS = 3 * 60_000\n\nexport interface LaneActivityInput {\n archivedAt?: string | null\n spawnError?: string | null\n status?: \"active\" | \"ended\" | string | null\n createdAt: string\n sessionAlive?: boolean\n isWorking?: boolean\n pendingInputCount?: number\n}\n\n/** D10, first match wins. */\nexport function laneActivityOf(row: LaneActivityInput, now: number): LaneActivity {\n if (row.archivedAt != null) return \"stopped\"\n if (row.spawnError) return \"failed-to-start\"\n if (row.sessionAlive) {\n if ((row.pendingInputCount ?? 0) > 0) return \"needs-you\"\n if (row.isWorking) return \"working\"\n return \"idle\"\n }\n if (row.status === \"active\" && now - Date.parse(row.createdAt) < LANE_STARTING_GRACE_MS) return \"starting\"\n return \"stopped\"\n}\n","// Environment descriptor and environment-scoped references (PAN-3762 FR-1, FR-2, FR-11).\n//\n// Every Overdeck server is an \"environment\" with a stable public identity. The\n// descriptor is served unauthenticated by `GET /api/environment`, so it carries\n// no paths, usernames, tokens or secrets. Scoped refs pair a server-local id\n// with the environment that owns it, so a client talking to several machines\n// never confuses two agents (or issues, terminals, …) that share a local id.\n\nimport { Schema } from \"effect\"\n\n/** Wire protocol version a client and server must agree on. */\nexport const ENVIRONMENT_PROTOCOL_VERSION = 1\n\nexport const EnvironmentId = Schema.String.pipe(Schema.brand(\"EnvironmentId\"))\nexport type EnvironmentId = typeof EnvironmentId.Type\n\nexport const EnvironmentCapabilities = Schema.Struct({\n /** `POST /api/pairing/*` is available. */\n pairing: Schema.Boolean,\n /** `GET/DELETE /api/devices` is available. */\n deviceSessions: Schema.Boolean,\n /** `/ws/*` upgrades require a credential (PAN-1166). */\n terminalAuth: Schema.Boolean,\n})\nexport type EnvironmentCapabilities = typeof EnvironmentCapabilities.Type\n\nexport const EnvironmentDescriptor = Schema.Struct({\n descriptorVersion: Schema.Literal(1),\n environmentId: EnvironmentId,\n label: Schema.String,\n platform: Schema.Struct({ os: Schema.String, arch: Schema.String }),\n /** Exact package version of the serving Overdeck. */\n serverVersion: Schema.String,\n /** The server's `ENVIRONMENT_PROTOCOL_VERSION`. */\n protocolVersion: Schema.Number,\n capabilities: EnvironmentCapabilities,\n})\nexport type EnvironmentDescriptor = typeof EnvironmentDescriptor.Type\n\n/** A server-local id qualified by the environment that owns it. */\nexport const ScopedRef = <A extends Schema.Top>(localId: A) =>\n Schema.Struct({ environmentId: EnvironmentId, localId })\n\nexport const ScopedProjectRef = ScopedRef(Schema.String)\nexport type ScopedProjectRef = typeof ScopedProjectRef.Type\n\nexport const ScopedIssueRef = ScopedRef(Schema.String)\nexport type ScopedIssueRef = typeof ScopedIssueRef.Type\n\nexport const ScopedAgentRef = ScopedRef(Schema.String)\nexport type ScopedAgentRef = typeof ScopedAgentRef.Type\n\nexport const ScopedConversationRef = ScopedRef(Schema.String)\nexport type ScopedConversationRef = typeof ScopedConversationRef.Type\n\nexport const ScopedTerminalRef = ScopedRef(Schema.String)\nexport type ScopedTerminalRef = typeof ScopedTerminalRef.Type\n\n/** True only when the server speaks exactly the client's protocol version. */\nexport function isProtocolCompatible(\n descriptor: Pick<EnvironmentDescriptor, \"protocolVersion\">,\n clientProtocolVersion: number,\n): boolean {\n return descriptor.protocolVersion === clientProtocolVersion\n}\n"],"mappings":"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AAa,OAAO,OAAO,OAAO,OAAO;CACzC,mBAAmB,OAAO,OAAO,OAAO,OAAO;CAC/C,wBAAwB,OAAO,OAAO,OAAO,OAAO;CACpD,kCAAkC,OAAO,OAAO,OAAO,OAAO;CAC9D,YAAY,OAAO;CACnB,QAAQ,OAAO,SAAS,OAAO,OAAO;CACvC,CAAC;;;ACZF,MAAM,WAAW,IAAI,KAAK,SAAS,MAAM;CAAE,SAAS;CAAM,aAAa;CAAQ,CAAC;;;;;AAMhF,SAAgB,gBAAgB,GAAW,GAAmB;AAC5D,QAAO,SAAS,QAAQ,GAAG,EAAE;;;;ACL/B,MAAa,wBAAwB;CACnC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAID,MAAa,sBAAsB;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAsBD,MAAa,6BAA6B;CACxC,kBAAkB,CAAC,kBAAkB,sBAAsB;CAC3D,aAAa,CAAC,UAAU,YAAY;CACpC,oBAAoB,CAAC,aAAa,QAAQ;CAC1C,SAAS,CAAC,OAAO,KAAK;CACtB,UAAU;CACV,mBAAmB,CAAC,QAAQ,YAAY;CACxC,cAAc;EAAC;EAAK;EAAO;EAAO;EAAQ;EAAM;CAChD,eAAe;EACb;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;CACD,kBAAkB,CAAC,SAAS,eAAe;CAC3C,iBAAiB;EAAC;EAAe;EAAe;EAAS;EAAO;CAChE,OAAO,CAAC,UAAU,SAAS;CAC3B,WAAW;EAAC;EAAW;EAAW;EAAQ;CAC1C,eAAe;EApDf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EA0Ce;CACf,SAAS;EA5DkB;EAAe;EAAU;EAAS;EAAO;EAAa;EAAY;EAAQ;EA4D5F;CACT,YAAY,CAAC,WAAW;CACxB,cAAc;EAAC;EAAU;EAAO;EAAU;EAAQ;EAAW;EAAO;EAAQ;EAAQ;CACpF,gBAAgB;EAAC;EAAa;EAAiB;EAAuB;EAAU;EAAa;CAG7F,cAAc;EAAC;EAAS;EAAY;EAAM;CAC1C,qBAAqB;EAAC;EAAK;EAAQ;EAAU;EAAW;EAAW;EAAa;EAAQ;CACxF,wBAAwB;EAAC;EAAK;EAAQ;EAAW;EAAW;EAAa;EAAS;EAAU;CAC5F,iBAAiB,CAAC,WAAW,YAAY;CAC1C;AAID,MAAa,0BAA0B;CACrC,sBAAsB,EAAE,KAAK,iBAAiB;CAC9C,eAAe;EAAE,YAAY;EAAoB,aAAa;EAAW;CACzE,iBAAiB,EAAE,MAAM,gBAAgB;CACzC,cAAc,EAAE,YAAY,cAAc;CAC1C,uBAAuB,EAAE,OAAO,SAAS;CACzC,kBAAkB,EAAE,SAAS,qBAAqB;CAClD,0BAA0B,EAAE,aAAa,gBAAgB;CACzD,oBAAoB;EAAE,YAAY;EAAW,SAAS;EAAsB;CAC5E,qBAAqB;EACnB,aAAa;EACb,WAAW;EACX,cAAc;EACd,gBAAgB;EACjB;CACD,eAAe,EAAE,cAAc,oBAAoB;CACnD,wBAAwB,EAAE,cAAc,oBAAoB;CAC5D,yBAAyB;EACvB,cAAc;EACd,aAAa;EACb,gBAAgB;EACjB;CACD,aAAa;EAAE,eAAe;EAAgB,oBAAoB;EAAgB;CAClF,iBAAiB;EAAE,MAAM;EAAY,IAAI;EAAW,aAAa;EAAmB;CACpF,wBAAwB;EAAE,OAAO;EAAkB,SAAS;EAAW,OAAO;EAAgB;CAC9F,qBAAqB;EACnB,6BAA6B;EAC7B,0BAA0B;EAC1B,kBAAkB;EAClB,eAAe;EACf,iBAAiB;EACjB,cAAc;EACd,mBAAmB;EACnB,gBAAgB;EAChB,sBAAsB;EACtB,mBAAmB;EACnB,mBAAmB;EACnB,gBAAgB;EAChB,wBAAwB;EACxB,qBAAqB;EACrB,kBAAkB;EAClB,eAAe;EACf,eAAe;EACf,YAAY;EACZ,eAAe;EACf,YAAY;EACZ,sBAAsB;EACtB,uBAAuB;EACvB,oBAAoB;EACpB,sBAAsB;EACtB,wBAAwB;EACzB;CACD,qBAAqB;EAAE,QAAQ;EAAiB,MAAM;EAAmB,eAAe;EAAW;CACnG,oBAAoB;EAAE,eAAe;EAAgB,oBAAoB;EAAgB,mBAAmB;EAAW;CACxH;;AAwCD,SAAgB,kBAAkB,QAA4C;AAC5E,KAAI,EAAE,SAAS,GAAI,QAAO;AAC1B,KAAI,SAAS,GAAI,QAAO;AACxB,KAAI,SAAS,IAAK,QAAO;AACzB,KAAI,SAAS,IAAK,QAAO;AACzB,KAAI,SAAS,IAAM,QAAO;AAC1B,KAAI,SAAS,KAAM,QAAO;AAC1B,QAAO;;;AAIT,SAAgB,qBAAqB,WAA8D;AACjG,KAAI,cAAc,KAAA,KAAa,CAAC,OAAO,SAAS,UAAU,CAAE,QAAO;AACnE,KAAI,aAAa,EAAG,QAAO;AAC3B,KAAI,YAAY,IAAK,QAAO;AAC5B,KAAI,YAAY,IAAK,QAAO;AAC5B,KAAI,YAAY,IAAM,QAAO;AAC7B,KAAI,YAAY,KAAM,QAAO;AAC7B,QAAO;;;;AC5QT,MAAa,4BAA4D;CACvE;EAAC,MAAK;EAAW,QAAO,CAAC,OAAO;EAAC,WAAU;EAAY,eAAc;EAAqC,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAChK;EAAC,MAAK;EAAW,QAAO,CAAC,OAAO;EAAC,WAAU;EAAY,eAAc;EAAgD,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAY,eAAc;IAA4B,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAU,eAAc;IAAyD,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAA+B,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAqB,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAe,eAAc;IAA4D,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC/sB;EAAC,MAAK;EAAc,QAAO,CAAC,UAAU;EAAC,WAAU;EAAe,eAAc;EAAkE,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACtM;EAAC,MAAK;EAAmB,QAAO,CAAC,WAAU,OAAO;EAAC,WAAU;EAAoB,eAAc;EAA+B,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAAoD,YAAW;GAAK,aAAY;GAAQ,EAAC;GAAC,SAAQ;GAAS,eAAc;GAAiB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACzY;EAAC,MAAK;EAAmB,QAAO,CAAC,WAAU,OAAO;EAAC,WAAU;EAAoB,eAAc;EAAkC,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAAyD,YAAW;GAAK,aAAY;GAAQ,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC7T;EAAC,MAAK;EAAmB,QAAO,CAAC,WAAU,OAAO;EAAC,WAAU;EAAoB,eAAc;EAAqD,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC1M;EAAC,MAAK;EAAmB,QAAO,CAAC,WAAU,OAAO;EAAC,WAAU;EAAoB,eAAc;EAAwD,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAsB,eAAc;GAAqC,YAAW;GAAK,aAAY;GAAU,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACrU;EAAC,MAAK;EAAuB,QAAO,CAAC,WAAU,WAAW;EAAC,WAAU;EAAwB,eAAc;EAA8D,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC/N;EAAC,MAAK;EAAsB,QAAO,CAAC,WAAU,UAAU;EAAC,WAAU;EAAuB,eAAc;EAA4D,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAQ,eAAc;GAAsD,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACjV;EAAC,MAAK;EAAqB,QAAO,CAAC,WAAU,SAAS;EAAC,WAAU;EAAsB,eAAc;EAAsF,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAY,eAAc;GAAmE,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAU,eAAc;GAAiE,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC9f;EAAC,MAAK;EAAc,QAAO,CAAC,UAAU;EAAC,WAAU;EAAe,eAAc;EAAsB,QAAO,CAAC;GAAC,QAAO;GAAY,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAChN;EAAC,MAAK;EAAa,QAAO,CAAC,SAAS;EAAC,WAAU;EAAc,eAAc;EAAiB,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAClJ;EAAC,MAAK;EAAkB,QAAO,CAAC,UAAS,OAAO;EAAC,WAAU;EAAmB,eAAc;EAAmB,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAiB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACxP;EAAC,MAAK;EAAmB,QAAO,CAAC,UAAS,QAAQ;EAAC,WAAU;EAAoB,eAAc;EAAqB,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAiB,eAAc;GAA4B,YAAW;GAAK,aAAY;GAAQ,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAClR;EAAC,MAAK;EAAa,QAAO,CAAC,SAAS;EAAC,WAAU;EAAc,eAAc;EAAiD,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAClL;EAAC,MAAK;EAAkB,QAAO,CAAC,UAAS,OAAO;EAAC,WAAU;EAAmB,eAAc;EAAyD,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAwB,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAuB,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAiB,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACje;EAAC,MAAK;EAAiB,QAAO,CAAC,UAAS,MAAM;EAAC,WAAU;EAAkB,eAAc;EAAoF,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAK,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAmB,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAiB,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAc,eAAc;IAA8C,YAAW;IAAK,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC9jB;EAAC,MAAK;EAAkB,QAAO,CAAC,UAAS,OAAO;EAAC,WAAU;EAAmB,eAAc;EAAsE,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACxN;EAAC,MAAK;EAAsB,QAAO;GAAC;GAAS;GAAO;GAAM;EAAC,WAAU;EAAuB,eAAc;EAA8E,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAM,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAuB,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAAyC,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAQ,eAAc;IAA2C,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACppB;EAAC,MAAK;EAAyB,QAAO;GAAC;GAAS;GAAO;GAAS;EAAC,WAAU;EAA0B,eAAc;EAA+D,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAc,eAAc;GAAsC,YAAW;GAAK,aAAY;GAAM,EAAC;GAAC,SAAQ;GAAQ,eAAc;GAAsC,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC3e;EAAC,MAAK;EAAuB,QAAO;GAAC;GAAS;GAAO;GAAO;EAAC,WAAU;EAAwB,eAAc;EAA8B,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAiB,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAY,eAAc;GAAqC,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC/X;EAAC,MAAK;EAAyB,QAAO;GAAC;GAAS;GAAO;GAAS;EAAC,WAAU;EAA0B,eAAc;EAAoE,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC3R;EAAC,MAAK;EAAuB,QAAO;GAAC;GAAS;GAAO;GAAO;EAAC,WAAU;EAAwB,eAAc;EAA4E,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC9R;EAAC,MAAK;EAAqB,QAAO;GAAC;GAAS;GAAO;GAAK;EAAC,WAAU;EAAsB,eAAc;EAA4D,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAqB,eAAc;GAAuC,YAAW;GAAK,aAAY;GAAI,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC5U;EAAC,MAAK;EAAyB,QAAO;GAAC;GAAS;GAAO;GAAS;EAAC,WAAU;EAA0B,eAAc;EAA6D,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACtO;EAAC,MAAK;EAAgC,QAAO;GAAC;GAAS;GAAO;GAAS;GAAS;EAAC,WAAU;EAAiC,eAAc;EAAgE,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAAoB,YAAW;GAAK,aAAY;GAAM,EAAC;GAAC,SAAQ;GAAS,eAAc;GAAiB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACnb;EAAC,MAAK;EAAgC,QAAO;GAAC;GAAS;GAAO;GAAS;GAAS;EAAC,WAAU;EAAiC,eAAc;EAA+D,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAAc,YAAW;GAAK,aAAY;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACzY;EAAC,MAAK;EAAkB,QAAO,CAAC,UAAS,OAAO;EAAC,WAAU;EAAmB,eAAc;EAA+D,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACjN;EAAC,MAAK;EAAyB,QAAO;GAAC;GAAS;GAAO;GAAS;EAAC,WAAU;EAA0B,eAAc;EAAiG,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAAiD,YAAW;GAAK,aAAY;GAAM,EAAC;GAAC,SAAQ;GAAS,eAAc;GAAiB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC1d;EAAC,MAAK;EAAyB,QAAO;GAAC;GAAS;GAAO;GAAS;EAAC,WAAU;EAA0B,eAAc;EAAoF,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAAqB,YAAW;GAAK,aAAY;GAAM,EAAC;GAAC,SAAQ;GAAQ,eAAc;GAAyC,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACxc;EAAC,MAAK;EAA0B,QAAO;GAAC;GAAS;GAAO;GAAU;EAAC,WAAU;EAA2B,eAAc;EAAyD,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAAqB,YAAW;GAAK,aAAY;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACrU;EAAC,MAAK;EAAW,QAAO,CAAC,OAAO;EAAC,WAAU;EAAY,eAAc;EAA2G,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAqD,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAe,eAAc;IAA0E,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAS,eAAc;IAA+C,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC3mB;EAAC,MAAK;EAAc,QAAO,CAAC,UAAU;EAAC,WAAU;EAAe,eAAc;EAAsE,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACzM;EAAC,MAAK;EAAmB,QAAO,CAAC,WAAU,OAAO;EAAC,WAAU;EAAoB,eAAc;EAAgE,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAA4B,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAClT;EAAC,MAAK;EAAqB,QAAO,CAAC,WAAU,SAAS;EAAC,WAAU;EAAsB,eAAc;EAAwD,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAChQ;EAAC,MAAK;EAAY,QAAO,CAAC,QAAQ;EAAC,WAAU;EAAa,eAAc;EAAoF,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACjN;EAAC,MAAK;EAAmB,QAAO,CAAC,SAAQ,SAAS;EAAC,WAAU;EAAoB,eAAc;EAAiD,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAA4F,YAAW;GAAK,aAAY;GAAO,EAAC;GAAC,SAAQ;GAAS,eAAc;GAA4C,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC5gB;EAAC,MAAK;EAAiB,QAAO,CAAC,SAAQ,OAAO;EAAC,WAAU;EAAkB,eAAc;EAA0E,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAA2B,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACrT;EAAC,MAAK;EAAmB,QAAO,CAAC,SAAQ,SAAS;EAAC,WAAU;EAAoB,eAAc;EAAwD,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC1P;EAAC,MAAK;EAAa,QAAO,CAAC,SAAS;EAAC,WAAU;EAAc,eAAc;EAAkD,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAQ,eAAc;IAAwB,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAA+B,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAiB,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAAgD,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAgC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAW,eAAc;IAAoB,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACzwB;EAAC,MAAK;EAAW,QAAO,CAAC,OAAO;EAAC,WAAU;EAAY,eAAc;EAAuE,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAO,eAAc;IAA0B,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAiC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAW,eAAc;IAA0B,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAiB,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CAC3mB;EAAC,MAAK;EAAW,QAAO,CAAC,OAAO;EAAC,WAAU;EAAY,eAAc;EAAmD,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAwB,eAAc;GAAsD,YAAW;GAAK,aAAY;GAAS,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CAC7W;EAAC,MAAK;EAAa,QAAO,CAAC,SAAS;EAAC,WAAU;EAAc,eAAc;EAA8E,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAS;CACjN;EAAC,MAAK;EAAqB,QAAO,CAAC,UAAS,UAAU;EAAC,WAAU;EAAsB,eAAc;EAA0C,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAuB,eAAc;GAAuC,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAS;CAC7W;EAAC,MAAK;EAAgC,QAAO,CAAC,UAAS,qBAAqB;EAAC,WAAU;EAAiC,eAAc;EAAoF,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAA2D,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAS;CACvc;EAAC,MAAK;EAAmB,QAAO,CAAC,UAAS,QAAQ;EAAC,WAAU;EAAoB,eAAc;EAA+D,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAS;CACpQ;EAAC,MAAK;EAAqB,QAAO,CAAC,UAAS,UAAU;EAAC,WAAU;EAAsB,eAAc;EAA2D,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAAmE,YAAW;GAAK,aAAY;GAAQ,EAAC;GAAC,SAAQ;GAAgB,eAAc;GAAwF,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAS;CACzjB;EAAC,MAAK;EAAe,QAAO,CAAC,WAAW;EAAC,WAAU;EAAgB,eAAc;EAA8D,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACxP;EAAC,MAAK;EAAc,QAAO,CAAC,UAAU;EAAC,WAAU;EAAe,eAAc;EAA+B,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACxK;EAAC,MAAK;EAA6B,QAAO,CAAC,WAAU,iBAAiB;EAAC,WAAU;EAA8B,eAAc;EAAwF,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAwB,eAAc;GAA8B,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAChb;EAAC,MAAK;EAAW,QAAO,CAAC,OAAO;EAAC,WAAU;EAAY,eAAc;EAA8B,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAsF,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAmI,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAU,eAAc;IAAoE,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAqC,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAAwI,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAAqD,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAW,eAAc;IAAyC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAU,eAAc;IAA+B,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC71C;EAAC,MAAK;EAAoB,QAAO,CAAC,QAAO,WAAW;EAAC,WAAU;EAAqB,eAAc;EAAwE,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAyB,eAAc;IAA2D,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAmB,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAe,eAAc;IAA6E,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAA2D,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAW,eAAc;IAAyF,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAW,eAAc;IAAiJ,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC5lC;EAAC,MAAK;EAAgB,QAAO,CAAC,QAAO,OAAO;EAAC,WAAU;EAAiB,eAAc;EAA6E,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAW,eAAc;GAAyF,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACza;EAAC,MAAK;EAAW,QAAO,CAAC,OAAO;EAAC,WAAU;EAAY,eAAc;EAAgC,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAU,eAAc;GAA2E,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAU,eAAc;GAAgF,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACpiB;EAAC,MAAK;EAAU,QAAO,CAAC,MAAM;EAAC,WAAU;EAAW,eAAc;EAA8E,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAW,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAAoD,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAA0D,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAa,eAAc;IAA+E,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACzsB;EAAC,MAAK;EAAa,QAAO,CAAC,SAAS;EAAC,WAAU;EAAc,eAAc;EAA4D,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAS,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC9R;EAAC,MAAK;EAAc,QAAO,CAAC,UAAU;EAAC,WAAU;EAAe,eAAc;EAAqG,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CAC/R;EAAC,MAAK;EAAY,QAAO,CAAC,QAAQ;EAAC,WAAU;EAAa,eAAc;EAAgF,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAc,eAAc;GAAqC,YAAW;GAAK,aAAY;GAAI,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CAC9W;EAAC,MAAK;EAAW,QAAO,CAAC,OAAO;EAAC,WAAU;EAAY,eAAc;EAAuF,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAU,eAAc;GAAkC,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,CAAC,OAAO;EAAC,YAAW;EAAY;CAChX;EAAC,MAAK;EAAoB,QAAO,CAAC,gBAAgB;EAAC,WAAU;EAAqB,eAAc;EAAyE,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAClR;EAAC,MAAK;EAAY,QAAO,CAAC,QAAQ;EAAC,WAAU;EAAa,eAAc;EAAqD,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAoB,eAAc;GAAsC,YAAW;GAAK,aAAY;GAAS,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC5V;EAAC,MAAK;EAAc,QAAO,CAAC,UAAU;EAAC,WAAU;EAAe,eAAc;EAAgD,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACvO;EAAC,MAAK;EAAiB,QAAO,CAAC,aAAa;EAAC,WAAU;EAAkB,eAAc;EAAmD,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACnP;EAAC,MAAK;EAAW,QAAO,CAAC,OAAO;EAAC,WAAU;EAAY,eAAc;EAAqI,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAuC,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAA2H,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAmD,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA6F,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAwH,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAU,eAAc;IAA4D,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAe;CACjuC;EAAC,MAAK;EAAc,QAAO,CAAC,UAAU;EAAC,WAAU;EAAe,eAAc;EAAmY,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAM,YAAW;GAAM,EAAC;GAAC,QAAO;GAAQ,YAAW;GAAM,YAAW;GAAK,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAkD,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAA2H,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAAuD,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAe,eAAc;IAA6C,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA6F,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAwH,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAmI,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAsJ,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAkI,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAA4D,YAAW;IAAK,aAAY;IAAS;GAAC;IAAC,SAAQ;IAAyB,eAAc;IAAyE,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAA6B,eAAc;IAA8D,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAgG,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAc,eAAc;IAA2F,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAsI,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAe;CACjoG;EAAC,MAAK;EAA6B,QAAO,CAAC,yBAAyB;EAAC,WAAU;EAA8B,eAAc;EAAmE,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAe;CAC7S;EAAC,MAAK;EAAa,QAAO,CAAC,SAAS;EAAC,WAAU;EAAc,eAAc;EAAmC,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAmE,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAQ,eAAc;IAA6C,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAsK,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACvrB;EAAC,MAAK;EAAc,QAAO,CAAC,UAAU;EAAC,WAAU;EAAe,eAAc;EAAmC,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAQ,eAAc;IAAkC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAY,eAAc;IAA8H,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAiB,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA4E,YAAW;IAAK,aAAY;IAAQ;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAChvB;EAAC,MAAK;EAAgB,QAAO,CAAC,YAAY;EAAC,WAAU;EAAiB,eAAc;EAAkD,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC/O;EAAC,MAAK;EAAW,QAAO,CAAC,OAAO;EAAC,WAAU;EAAY,eAAc;EAAqC,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAA0B,eAAc;IAA0B,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAU,eAAc;IAAoC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAyB,eAAc;IAAwH,YAAW;IAAK,aAAY;IAAS;GAAC;IAAC,SAAQ;IAAW,eAAc;IAAsF,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACrxB;EAAC,MAAK;EAAa,QAAO,CAAC,SAAS;EAAC,WAAU;EAAc,eAAc;EAAoJ,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAoB,eAAc;GAAuB,YAAW;GAAK,aAAY;GAAS,EAAC;GAAC,SAAQ;GAAU,eAAc;GAAqD,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACxiB;EAAC,MAAK;EAAW,QAAO,CAAC,OAAO;EAAC,WAAU;EAAY,eAAc;EAA0H,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAU,eAAc;GAAoB,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAY,eAAc;GAAoB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACzd;EAAC,MAAK;EAAc,QAAO,CAAC,UAAU;EAAC,WAAU;EAAe,eAAc;EAA8E,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAU,eAAc;IAA8C,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAA6C,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA0D,YAAW;IAAK,aAAY;IAAQ;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACznB;EAAC,MAAK;EAAY,QAAO,CAAC,QAAQ;EAAC,WAAU;EAAa,eAAc;EAA+C,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAU,eAAc;IAA2B,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAiB,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAuG,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAsG,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAwB,eAAc;IAA0H,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAwG,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAAkH,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAuB,eAAc;IAA0G,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAoH,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAkG,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAAyK,YAAW;IAAK,aAAY;IAAS;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAA8O,YAAW;IAAK,aAAY;IAAS;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC15E;EAAC,MAAK;EAAY,QAAO,CAAC,QAAQ;EAAC,WAAU;EAAa,eAAc;EAAgD,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA4D,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAAwI,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAAwF,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAA6F,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAY,eAAc;IAA6B,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAW,eAAc;IAAgC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAU,eAAc;IAA0C,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAkI,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAuB,eAAc;IAAkH,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAS,eAAc;IAA+G,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAU,eAAc;IAA+E,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAU,eAAc;IAA+J,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAkE,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAQ,eAAc;IAA6C,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAA0G,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAChjF;EAAC,MAAK;EAAa,QAAO,CAAC,SAAS;EAAC,WAAU;EAAc,eAAc;EAAmJ,QAAO,CAAC;GAAC,QAAO;GAAM,YAAW;GAAK,YAAW;GAAK,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA8D,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAAwI,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAAkE,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAY,eAAc;IAA2C,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACh7B;EAAC,MAAK;EAAgB,QAAO,CAAC,YAAY;EAAC,WAAU;EAAiB,eAAc;EAA0C,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAoD,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAU,eAAc;IAAgC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAiE,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAAsD,YAAW;IAAK,aAAY;IAAQ;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC5tB;EAAC,MAAK;EAAqB,QAAO,CAAC,aAAY,OAAO;EAAC,WAAU;EAAsB,eAAc;EAA4D,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAe,eAAc;GAAsE,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAe,eAAc;GAAsD,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACpe;EAAC,MAAK;EAAY,QAAO,CAAC,QAAQ;EAAC,WAAU;EAAa,eAAc;EAA4D,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC7O;EAAC,MAAK;EAAqB,QAAO,CAAC,SAAQ,WAAW;EAAC,WAAU;EAAsB,eAAc;EAAoC,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAoC,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACxV;EAAC,MAAK;EAAkB,QAAO,CAAC,SAAQ,QAAQ;EAAC,WAAU;EAAmB,eAAc;EAA4C,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAY,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAiC,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC1Y;EAAC,MAAK;EAAoB,QAAO,CAAC,SAAQ,UAAU;EAAC,WAAU;EAAqB,eAAc;EAA8B,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAY,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAoB,eAAc;GAAoD,YAAW;GAAK,aAAY;GAAS,EAAC;GAAC,SAAQ;GAAa,eAAc;GAA+D,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACziB;EAAC,MAAK;EAAmB,QAAO,CAAC,SAAQ,SAAS;EAAC,WAAU;EAAoB,eAAc;EAA2E,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAA8B,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC7X;EAAC,MAAK;EAAmB,QAAO,CAAC,SAAQ,SAAS;EAAC,WAAU;EAAoB,eAAc;EAAyE,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACjR;EAAC,MAAK;EAAmB,QAAO,CAAC,SAAQ,SAAS;EAAC,WAAU;EAAoB,eAAc;EAA4E,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAqE,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC3Z;EAAC,MAAK;EAAiB,QAAO,CAAC,SAAQ,OAAO;EAAC,WAAU;EAAkB,eAAc;EAA2D,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAsB,eAAc;GAA0B,YAAW;GAAK,aAAY;GAAU,EAAC;GAAC,SAAQ;GAAS,eAAc;GAAoC,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACjd;EAAC,MAAK;EAAiB,QAAO,CAAC,SAAQ,OAAO;EAAC,WAAU;EAAkB,eAAc;EAA+F,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAA8B,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC3Y;EAAC,MAAK;EAAkB,QAAO,CAAC,SAAQ,QAAQ;EAAC,WAAU;EAAmB,eAAc;EAAiL,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAU,eAAc;GAAyE,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAkB,eAAc;GAA8B,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC7mB;EAAC,MAAK;EAAW,QAAO,CAAC,OAAO;EAAC,WAAU;EAAY,eAAc;EAAkD,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAClL;EAAC,MAAK;EAAgB,QAAO,CAAC,QAAO,OAAO;EAAC,WAAU;EAAiB,eAAc;EAAG,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAa,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACpR;EAAC,MAAK;EAAgB,QAAO,CAAC,QAAO,OAAO;EAAC,WAAU;EAAiB,eAAc;EAAG,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAa,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACrU;EAAC,MAAK;EAAiB,QAAO,CAAC,QAAO,QAAQ;EAAC,WAAU;EAAkB,eAAc;EAAG,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAa,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAU,eAAc;GAAoG,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAChf;EAAC,MAAK;EAAgB,QAAO,CAAC,QAAO,OAAO;EAAC,WAAU;EAAiB,eAAc;EAA0F,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAa,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC5Z;EAAC,MAAK;EAAiB,QAAO,CAAC,QAAO,QAAQ;EAAC,WAAU;EAAkB,eAAc;EAAG,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAa,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAiB,eAAc;GAAwH,YAAW;GAAK,aAAY;GAAU,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC/gB;EAAC,MAAK;EAAmB,QAAO,CAAC,QAAO,UAAU;EAAC,WAAU;EAAoB,eAAc;EAAG,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAa,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC9U;EAAC,MAAK;EAAkB,QAAO,CAAC,QAAO,SAAS;EAAC,WAAU;EAAmB,eAAc;EAAG,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAa,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC3U;EAAC,MAAK;EAAkB,QAAO,CAAC,QAAO,SAAS;EAAC,WAAU;EAAmB,eAAc;EAAG,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAa,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC3U;EAAC,MAAK;EAAgB,QAAO,CAAC,YAAY;EAAC,WAAU;EAAiB,eAAc;EAAuB,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACtK;EAAC,MAAK;EAAuB,QAAO,CAAC,aAAY,SAAS;EAAC,WAAU;EAAwB,eAAc;EAA6B,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAY,eAAc;IAA6B,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAkC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAA4D,YAAW;IAAK,aAAY;IAAS;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAA6C,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAW,eAAc;IAAmD,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAW,eAAc;IAAyC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAU,eAAc;IAA+C,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACniC;EAAC,MAAK;EAAwB,QAAO,CAAC,aAAY,UAAU;EAAC,WAAU;EAAyB,eAAc;EAA+G,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAwF,YAAW;IAAK,aAAY;IAAW;GAAC;IAAC,SAAQ;IAAS,eAAc;IAA4C,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAU,eAAc;IAA0E,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAChvB;EAAC,MAAK;EAAoB,QAAO,CAAC,aAAY,MAAM;EAAC,WAAU;EAAqB,eAAc;EAA+B,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC/O;EAAC,MAAK;EAA0B,QAAO,CAAC,aAAY,YAAY;EAAC,WAAU;EAA2B,eAAc;EAAmD,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACrR;EAAC,MAAK;EAAsB,QAAO,CAAC,aAAY,QAAQ;EAAC,WAAU;EAAuB,eAAc;EAAmC,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACzP;EAAC,MAAK;EAAqB,QAAO,CAAC,aAAY,OAAO;EAAC,WAAU;EAAsB,eAAc;EAAsC,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACzP;EAAC,MAAK;EAAqB,QAAO,CAAC,aAAY,OAAO;EAAC,WAAU;EAAsB,eAAc;EAAsB,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAiB,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAQ,eAAc;IAAiD,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAA8E,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAa,eAAc;IAAyD,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAU,eAAc;IAAqE,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC9xB;EAAC,MAAK;EAAwB,QAAO,CAAC,aAAY,UAAU;EAAC,WAAU;EAAyB,eAAc;EAA8E,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAU,eAAc;IAA8C,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAA6C,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA0D,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAqE,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC9yB;EAAC,MAAK;EAAoB,QAAO,CAAC,aAAY,MAAM;EAAC,WAAU;EAAqB,eAAc;EAAoF,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAsF,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAa,eAAc;IAA2E,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAA2B,eAAc;IAAgG,YAAW;IAAK,aAAY;IAAS;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAA0E,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAuD,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACniC;EAAC,MAAK;EAAqB,QAAO,CAAC,aAAY,OAAO;EAAC,WAAU;EAAsB,eAAc;EAA2D,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAAsF,YAAW;GAAK,aAAY;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC5X;EAAC,MAAK;EAAoB,QAAO,CAAC,aAAY,MAAM;EAAC,WAAU;EAAqB,eAAc;EAA6B,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACxO;EAAC,MAAK;EAAyB,QAAO,CAAC,aAAY,WAAW;EAAC,WAAU;EAA0B,eAAc;EAAmE,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC7R;EAAC,MAAK;EAAwB,QAAO,CAAC,aAAY,UAAU;EAAC,WAAU;EAAyB,eAAc;EAAsD,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC7Q;EAAC,MAAK;EAAyB,QAAO,CAAC,aAAY,WAAW;EAAC,WAAU;EAA0B,eAAc;EAAmF,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAe,eAAc;GAA2C,YAAW;GAAK,aAAY;GAAM,EAAC;GAAC,SAAQ;GAAU,eAAc;GAAuE,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC3iB;EAAC,MAAK;EAAoC,QAAO,CAAC,aAAY,sBAAsB;EAAC,WAAU;EAAqC,eAAc;EAAyE,QAAO,CAAC;GAAC,QAAO;GAAc,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAoD,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAAuC,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAS,eAAc;IAA6C,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACnrB;EAAC,MAAK;EAA2B,QAAO,CAAC,aAAY,aAAa;EAAC,WAAU;EAA4B,eAAc;EAA6E,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAQ,eAAc;GAAkD,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACra;EAAC,MAAK;EAAwB,QAAO,CAAC,aAAY,UAAU;EAAC,WAAU;EAAyB,eAAc;EAAoE,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAChS;EAAC,MAAK;EAAqB,QAAO,CAAC,aAAY,OAAO;EAAC,WAAU;EAAsB,eAAc;EAA4F,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAsB,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAU,eAAc;IAA0G,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAQ,eAAc;IAAuC,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACnnB;EAAC,MAAK;EAAuB,QAAO,CAAC,aAAY,SAAS;EAAC,WAAU;EAAwB,eAAc;EAAsD,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAU,eAAc;GAAgC,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAClX;EAAC,MAAK;EAA2B,QAAO,CAAC,aAAY,aAAa;EAAC,WAAU;EAA4B,eAAc;EAAyE,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAmB,eAAc;GAA6C,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACxa;EAAC,MAAK;EAAyB,QAAO,CAAC,aAAY,WAAW;EAAC,WAAU;EAA0B,eAAc;EAAmF,QAAO,CAAC;GAAC,QAAO;GAAc,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAY,YAAW;GAAM,YAAW;GAAK,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAY,eAAc;IAA2B,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAAsD,YAAW;IAAK,aAAY;IAAY;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAA2D,YAAW;IAAK,aAAY;IAAS;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA+D,YAAW;IAAK,aAAY;IAAM;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC52B;EAAC,MAAK;EAAY,QAAO,CAAC,QAAQ;EAAC,WAAU;EAAa,eAAc;EAAgG,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC7N;EAAC,MAAK;EAAkB,QAAO,CAAC,SAAQ,QAAQ;EAAC,WAAU;EAAmB,eAAc;EAAkF,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAU,eAAc;IAAqE,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAA2B,eAAc;IAAiE,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAwB,eAAc;IAAiF,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAiC,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACr0B;EAAC,MAAK;EAAiB,QAAO,CAAC,SAAQ,OAAO;EAAC,WAAU;EAAkB,eAAc;EAA+F,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAuB,eAAc;GAAoE,YAAW;GAAK,aAAY;GAAO,EAAC;GAAC,SAAQ;GAA2B,eAAc;GAA6D,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACxkB;EAAC,MAAK;EAAuB,QAAO,CAAC,SAAQ,aAAa;EAAC,WAAU;EAAwB,eAAc;EAAiG,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACjQ;EAAC,MAAK;EAA2B,QAAO;GAAC;GAAQ;GAAa;GAAM;EAAC,WAAU;EAA4B,eAAc;EAA8F,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAA2B,eAAc;GAAuD,YAAW;GAAK,aAAY;GAAO,EAAC;GAAC,SAAQ;GAAa,eAAc;GAAiD,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAChhB;EAAC,MAAK;EAA8B,QAAO;GAAC;GAAQ;GAAa;GAAS;EAAC,WAAU;EAA+B,eAAc;EAA8E,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACrQ;EAAC,MAAK;EAAuB,QAAO,CAAC,SAAQ,aAAa;EAAC,WAAU;EAAwB,eAAc;EAAsI,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAQ,eAAc;IAAyC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAA2B,eAAc;IAA+E,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAwB,eAAc;IAA+F,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA6B,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC/0B;EAAC,MAAK;EAAmB,QAAO,CAAC,SAAQ,SAAS;EAAC,WAAU;EAAoB,eAAc;EAA4E,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAwB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC1T;EAAC,MAAK;EAAiB,QAAO,CAAC,SAAQ,OAAO;EAAC,WAAU;EAAkB,eAAc;EAAuE,QAAO,CAAC;GAAC,QAAO;GAAqB,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAQ,eAAc;IAAqC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAA8D,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAA0D,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAwG,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC7zB;EAAC,MAAK;EAAiB,QAAO,CAAC,SAAQ,OAAO;EAAC,WAAU;EAAkB,eAAc;EAAiF,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC/N;EAAC,MAAK;EAAiB,QAAO,CAAC,SAAQ,OAAO;EAAC,WAAU;EAAkB,eAAc;EAA6E,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAwB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACrT;EAAC,MAAK;EAAiB,QAAO,CAAC,SAAQ,OAAO;EAAC,WAAU;EAAkB,eAAc;EAAyD,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAwB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC/U;EAAC,MAAK;EAAmB,QAAO,CAAC,SAAQ,SAAS;EAAC,WAAU;EAAoB,eAAc;EAAiG,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAc,eAAc;IAA0D,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAiD,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAA4E,YAAW;IAAK,aAAY;IAAS;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAuE,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAA0F,YAAW;IAAK,aAAY;IAAM;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACh/B;EAAC,MAAK;EAAoB,QAAO,CAAC,SAAQ,UAAU;EAAC,WAAU;EAAqB,eAAc;EAA4G,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAiB,eAAc;GAAqD,YAAW;GAAK,aAAY;GAAM,EAAC;GAAC,SAAQ;GAAiB,eAAc;GAAuD,YAAW;GAAK,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACpjB;EAAC,MAAK;EAAoB,QAAO,CAAC,SAAQ,UAAU;EAAC,WAAU;EAAqB,eAAc;EAAmD,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAiB,eAAc;GAA2D,YAAW;GAAK,aAAY;GAAM,EAAC;GAAC,SAAQ;GAAiB,eAAc;GAA4B,YAAW;GAAK,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACte;EAAC,MAAK;EAAyB,QAAO,CAAC,SAAQ,eAAe;EAAC,WAAU;EAA0B,eAAc;EAAiG,QAAO,CAAC;GAAC,QAAO;GAAa,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAO,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAgB,eAAc;GAAmG,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC5hB;EAAC,MAAK;EAAkB,QAAO,CAAC,SAAQ,QAAQ;EAAC,WAAU;EAAmB,eAAc;EAAiG,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAW,eAAc;IAA0D,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAA0B,eAAc;IAAwE,YAAW;IAAK,aAAY;IAAc;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAA2D,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAA6C,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAU,eAAc;IAAyD,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACj6B;EAAC,MAAK;EAAoB,QAAO,CAAC,SAAQ,UAAU;EAAC,WAAU;EAAqB,eAAc;EAAmE,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAc,eAAc;GAA2D,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC3Y;EAAC,MAAK;EAAW,QAAO,CAAC,OAAO;EAAC,WAAU;EAAY,eAAc;EAA8B,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACzJ;EAAC,MAAK;EAAe,QAAO,CAAC,QAAO,MAAM;EAAC,WAAU;EAAgB,eAAc;EAAuC,QAAO,CAAC;GAAC,QAAO;GAAS,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAA6B,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAoC,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAc,eAAc;IAA4B,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACniB;EAAC,MAAK;EAAgB,QAAO,CAAC,QAAO,OAAO;EAAC,WAAU;EAAiB,eAAc;EAAsC,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACtO;EAAC,MAAK;EAAU,QAAO,CAAC,MAAM;EAAC,WAAU;EAAW,eAAc;EAA2B,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACnJ;EAAC,MAAK;EAAiB,QAAO,CAAC,OAAM,SAAS;EAAC,WAAU;EAAkB,eAAc;EAAoC,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACnL;EAAC,MAAK;EAAsB,QAAO;GAAC;GAAM;GAAS;GAAO;EAAC,WAAU;EAAuB,eAAc;EAAwB,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACxL;EAAC,MAAK;EAAsB,QAAO;GAAC;GAAM;GAAS;GAAO;EAAC,WAAU;EAAuB,eAAc;EAA+B,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC/O;EAAC,MAAK;EAAsB,QAAO;GAAC;GAAM;GAAS;GAAO;EAAC,WAAU;EAAuB,eAAc;EAA+B,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAO,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACjS;EAAC,MAAK;EAAwB,QAAO;GAAC;GAAM;GAAS;GAAS;EAAC,WAAU;EAAyB,eAAc;EAA2B,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACjP;EAAC,MAAK;EAA6B,QAAO;GAAC;GAAM;GAAS;GAAc;EAAC,WAAU;EAA8B,eAAc;EAA2B,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAChQ;EAAC,MAAK;EAAqB,QAAO;GAAC;GAAM;GAAS;GAAM;EAAC,WAAU;EAAsB,eAAc;EAAuC,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACtS;EAAC,MAAK;EAAgB,QAAO,CAAC,OAAM,QAAQ;EAAC,WAAU;EAAiB,eAAc;EAAkC,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAW,eAAc;IAA4C,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAmC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAuB,eAAc;IAAqC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAAsC,YAAW;IAAK,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACnnB;EAAC,MAAK;EAAe,QAAO,CAAC,OAAM,OAAO;EAAC,WAAU;EAAgB,eAAc;EAAiC,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC1K;EAAC,MAAK;EAAiB,QAAO,CAAC,OAAM,SAAS;EAAC,WAAU;EAAkB,eAAc;EAAoC,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACnL;EAAC,MAAK;EAAkB,QAAO,CAAC,OAAM,UAAU;EAAC,WAAU;EAAmB,eAAc;EAAoC,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAuB,eAAc;GAAqC,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAoB,eAAc;GAAsC,YAAW;GAAK,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC9Z;EAAC,MAAK;EAA0B,QAAO,CAAC,OAAM,kBAAkB;EAAC,WAAU;EAA2B,eAAc;EAA4D,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACtO;EAAC,MAAK;EAAe,QAAO,CAAC,OAAM,OAAO;EAAC,WAAU;EAAgB,eAAc;EAAmE,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAW,eAAc;GAA8D,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC/X;EAAC,MAAK;EAAc,QAAO,CAAC,UAAU;EAAC,WAAU;EAAe,eAAc;EAA2D,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CACnM;EAAC,MAAK;EAAoB,QAAO,CAAC,WAAU,QAAQ;EAAC,WAAU;EAAqB,eAAc;EAA+B,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CAC3L;EAAC,MAAK;EAAqB,QAAO,CAAC,WAAU,SAAS;EAAC,WAAU;EAAsB,eAAc;EAAyC,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAsB,eAAc;GAAgC,YAAW;GAAK,aAAY;GAAU,EAAC;GAAC,SAAQ;GAAe,eAAc;GAA8D,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CAClc;EAAC,MAAK;EAAqB,QAAO,CAAC,WAAU,SAAS;EAAC,WAAU;EAAsB,eAAc;EAAyC,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAsB,eAAc;GAAyC,YAAW;GAAK,aAAY;GAAU,EAAC;GAAC,SAAQ;GAAe,eAAc;GAA8D,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CAC3c;EAAC,MAAK;EAAyB,QAAO,CAAC,WAAU,aAAa;EAAC,WAAU;EAA0B,eAAc;EAAmD,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAsB,eAAc;GAAsD,YAAW;GAAK,aAAY;GAAU,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CACvW;EAAC,MAAK;EAAoB,QAAO,CAAC,WAAU,QAAQ;EAAC,WAAU;EAAqB,eAAc;EAAuC,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAM,YAAW;GAAM,EAAC;GAAC,QAAO;GAAK,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAiB,eAAc;GAAsC,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CACrZ;EAAC,MAAK;EAAc,QAAO,CAAC,UAAU;EAAC,WAAU;EAAe,eAAc;EAAsC,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CAC9K;EAAC,MAAK;EAAqB,QAAO,CAAC,WAAU,SAAS;EAAC,WAAU;EAAsB,eAAc;EAAsE,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CACxR;EAAC,MAAK;EAAoB,QAAO,CAAC,WAAU,QAAQ;EAAC,WAAU;EAAqB,eAAc;EAAwE,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CACvR;EAAC,MAAK;EAAa,QAAO,CAAC,SAAS;EAAC,WAAU;EAAc,eAAc;EAAqC,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CAC7K;EAAC,MAAK;EAAoB,QAAO,CAAC,UAAS,SAAS;EAAC,WAAU;EAAqB,eAAc;EAA6B,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAa,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAwB,eAAc;IAAuB,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAW,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAgB,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAmE,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAW,eAAc;IAA4D,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA+H,YAAW;IAAM,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAA+C,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAkB,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAc,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CACz1C;EAAC,MAAK;EAAoB,QAAO,CAAC,UAAS,SAAS;EAAC,WAAU;EAAqB,eAAc;EAAiF,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAa,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAwB,eAAc;IAAsD,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAA8D,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAc,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CAC3tB;EAAC,MAAK;EAAsB,QAAO,CAAC,UAAS,WAAW;EAAC,WAAU;EAAuB,eAAc;EAA4E,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAwB,eAAc;IAAkE,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAa,eAAc;IAA0D,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAc,eAAc;IAA2B,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAc,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CACzrB;EAAC,MAAK;EAAkB,QAAO,CAAC,UAAS,OAAO;EAAC,WAAU;EAAmB,eAAc;EAA8E,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAwB,eAAc;IAAkE,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAa,eAAc;IAA+B,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAmC,YAAW;IAAK,aAAY;IAAI;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CAC3nB;EAAC,MAAK;EAAmB,QAAO,CAAC,UAAS,QAAQ;EAAC,WAAU;EAAoB,eAAc;EAA+B,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAa,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA8B,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAuB,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAc,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CAClpB;EAAC,MAAK;EAAqB,QAAO,CAAC,UAAS,UAAU;EAAC,WAAU;EAAsB,eAAc;EAA+F,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAa,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAwB,eAAc;IAAsD,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAAe,YAAW;IAAK,aAAY;IAAa;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAc,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CAC5sB;EAAC,MAAK;EAAoB,QAAO,CAAC,UAAS,SAAS;EAAC,WAAU;EAAqB,eAAc;EAAkE,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAiB,eAAc;GAAa,YAAW;GAAK,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAS,eAAc;GAAc,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CACxY;EAAC,MAAK;EAAsB,QAAO,CAAC,UAAS,WAAW;EAAC,WAAU;EAAuB,eAAc;EAA6E,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAAuD,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAqD,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAiE,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAc,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CAC3sB;EAAC,MAAK;EAAiB,QAAO,CAAC,UAAS,MAAM;EAAC,WAAU;EAAkB,eAAc;EAA+E,QAAO,CAAC;GAAC,QAAO;GAAW,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAsC,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAA+D,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAc,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CACpmB;EAAC,MAAK;EAAmB,QAAO,CAAC,UAAS,QAAQ;EAAC,WAAU;EAAoB,eAAc;EAAsB,QAAO,CAAC;GAAC,QAAO;GAAW,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAgD,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAAyE,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAc,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CACrkB;EAAC,MAAK;EAAkB,QAAO,CAAC,UAAS,OAAO;EAAC,WAAU;EAAmB,eAAc;EAA8C,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAA8C,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAAuE,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAc,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CACliB;EAAC,MAAK;EAAoB,QAAO,CAAC,UAAS,SAAS;EAAC,WAAU;EAAqB,eAAc;EAAgD,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAc,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CAC/R;EAAC,MAAK;EAAe,QAAO,CAAC,WAAW;EAAC,WAAU;EAAgB,eAAc;EAAoD,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAe,eAAc;GAAgD,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CAC3T;EAAC,MAAK;EAAiB,QAAO,CAAC,aAAa;EAAC,WAAU;EAAkB,eAAc;EAAwC,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CAC5L;EAAC,MAAK;EAAwB,QAAO,CAAC,cAAa,SAAS;EAAC,WAAU;EAAyB,eAAc;EAAoD,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAa,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAAe,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAW,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAa,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAA+B,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAc,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CACtvB;EAAC,MAAK;EAAe,QAAO,CAAC,WAAW;EAAC,WAAU;EAAgB,eAAc;EAA+C,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACtL;EAAC,MAAK;EAAmB,QAAO,CAAC,YAAW,MAAM;EAAC,WAAU;EAAoB,eAAc;EAA2D,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAuB,eAAc;IAAsB,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAAsB,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAkB,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAAqD,YAAW;IAAK,aAAY;IAAS;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAe,YAAW;IAAK,aAAY;IAAS;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC7zB;EAAC,MAAK;EAAoB,QAAO,CAAC,YAAW,OAAO;EAAC,WAAU;EAAqB,eAAc;EAAiC,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAkB,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAAsB,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAkB,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAAqD,YAAW;IAAK,aAAY;IAAS;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAiB,YAAW;IAAK,aAAY;IAAS;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAe,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAc,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACz1B;EAAC,MAAK;EAAoB,QAAO,CAAC,YAAW,OAAO;EAAC,WAAU;EAAqB,eAAc;EAAoC,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAc,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC/T;EAAC,MAAK;EAAa,QAAO,CAAC,SAAS;EAAC,WAAU;EAAc,eAAc;EAAyC,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CAC9K;EAAC,MAAK;EAAoB,QAAO,CAAC,UAAS,SAAS;EAAC,WAAU;EAAqB,eAAc;EAA4B,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAAuD,YAAW;GAAK,aAAY;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CAC1W;EAAC,MAAK;EAAkB,QAAO,CAAC,UAAS,OAAO;EAAC,WAAU;EAAmB,eAAc;EAAmB,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAAuD,YAAW;GAAK,aAAY;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CAC3S;EAAC,MAAK;EAAkB,QAAO,CAAC,UAAS,OAAO;EAAC,WAAU;EAAmB,eAAc;EAAqB,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAAuD,YAAW;GAAK,aAAY;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CAC3V;EAAC,MAAK;EAAiB,QAAO,CAAC,UAAS,MAAM;EAAC,WAAU;EAAkB,eAAc;EAA8B,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAS,YAAW;GAAK,YAAW;GAAK,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAsB,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA2C,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAa,eAAc;IAA4C,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAuD,YAAW;IAAK,aAAY;IAAM;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CAChuB;EAAC,MAAK;EAAoB,QAAO,CAAC,UAAS,SAAS;EAAC,WAAU;EAAqB,eAAc;EAAqC,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAAuD,YAAW;GAAK,aAAY;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CACna;EAAC,MAAK;EAAkB,QAAO,CAAC,UAAS,OAAO;EAAC,WAAU;EAAmB,eAAc;EAAwC,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAsB,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAwC,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAuD,YAAW;IAAK,aAAY;IAAM;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CAC/mB;EAAC,MAAK;EAAmB,QAAO,CAAC,UAAS,QAAQ;EAAC,WAAU;EAAoB,eAAc;EAA6C,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAAuD,YAAW;GAAK,aAAY;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CACtX;EAAC,MAAK;EAAmB,QAAO,CAAC,UAAS,QAAQ;EAAC,WAAU;EAAoB,eAAc;EAA8C,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAAuD,YAAW;GAAK,aAAY;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CACvX;EAAC,MAAK;EAAa,QAAO,CAAC,SAAS;EAAC,WAAU;EAAc,eAAc;EAAmC,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACnK;EAAC,MAAK;EAAoB,QAAO,CAAC,UAAS,SAAS;EAAC,WAAU;EAAqB,eAAc;EAA6F,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACpP;EAAC,MAAK;EAAyB,QAAO;GAAC;GAAS;GAAS;GAAO;EAAC,WAAU;EAA0B,eAAc;EAAyD,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAa,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAChT;EAAC,MAAK;EAAyB,QAAO;GAAC;GAAS;GAAS;GAAO;EAAC,WAAU;EAA0B,eAAc;EAA+D,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAqE,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC5Z;EAAC,MAAK;EAA0B,QAAO;GAAC;GAAS;GAAS;GAAQ;EAAC,WAAU;EAA2B,eAAc;EAAgF,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAmC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAQ,eAAc;IAAwC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAa,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC3kB;EAAC,MAAK;EAAyB,QAAO;GAAC;GAAS;GAAS;GAAO;EAAC,WAAU;EAA0B,eAAc;EAAoD,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAa,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC3S;EAAC,MAAK;EAAa,QAAO,CAAC,SAAS;EAAC,WAAU;EAAc,eAAc;EAA8I,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAoC,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACpX;EAAC,MAAK;EAAW,QAAO,CAAC,OAAO;EAAC,WAAU;EAAY,eAAc;EAAwC,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACnK;EAAC,MAAK;EAAiB,QAAO,CAAC,QAAO,QAAQ;EAAC,WAAU;EAAkB,eAAc;EAA6C,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAuC,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAwC,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAA+B,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAqD,YAAW;IAAK,aAAY;IAAO;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACzrB;EAAC,MAAK;EAAmB,QAAO,CAAC,QAAO,UAAU;EAAC,WAAU;EAAoB,eAAc;EAA8D,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACnN;EAAC,MAAK;EAAmB,QAAO,CAAC,QAAO,UAAU;EAAC,WAAU;EAAoB,eAAc;EAA6B,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAAoC,YAAW;GAAK,aAAY;GAAQ,EAAC;GAAC,SAAQ;GAAkB,eAAc;GAAmC,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACnZ;EAAC,MAAK;EAAkB,QAAO,CAAC,QAAO,SAAS;EAAC,WAAU;EAAmB,eAAc;EAA+B,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAAoC,YAAW;GAAK,aAAY;GAAQ,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAClS;EAAC,MAAK;EAAY,QAAO,CAAC,QAAQ;EAAC,WAAU;EAAa,eAAc;EAAwE,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACvM;EAAC,MAAK;EAAqB,QAAO,CAAC,SAAQ,WAAW;EAAC,WAAU;EAAsB,eAAc;EAAiF,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAA6B,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CAC5U;EAAC,MAAK;EAA8B,QAAO,CAAC,SAAQ,oBAAoB;EAAC,WAAU;EAA+B,eAAc;EAAyU,QAAO,CAAC;GAAC,QAAO;GAAW,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAU,eAAc;GAAyF,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACjtB;EAAC,MAAK;EAA8B,QAAO,CAAC,SAAQ,oBAAoB;EAAC,WAAU;EAA+B,eAAc;EAA8I,QAAO,CAAC;GAAC,QAAO;GAAc,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAW,eAAc;IAA+C,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAwD,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA0F,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAAwD,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAA8C,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAuB,eAAc;IAAiE,YAAW;IAAK,aAAY;IAAO;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACzqC;EAAC,MAAK;EAAmB,QAAO,CAAC,SAAQ,SAAS;EAAC,WAAU;EAAoB,eAAc;EAAuB,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CAC7K;EAAC,MAAK;EAA0B,QAAO;GAAC;GAAQ;GAAS;GAAS;EAAC,WAAU;EAA2B,eAAc;EAA2E,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAa,eAAc;GAAoB,YAAW;GAAK,aAAY;GAAI,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACnY;EAAC,MAAK;EAAqB,QAAO,CAAC,SAAQ,WAAW;EAAC,WAAU;EAAsB,eAAc;EAAmC,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CAC/L;EAAC,MAAK;EAA4B,QAAO;GAAC;GAAQ;GAAW;GAAS;EAAC,WAAU;EAA6B,eAAc;EAAgD,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAwB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CAC7T;EAAC,MAAK;EAA2B,QAAO;GAAC;GAAQ;GAAW;GAAQ;EAAC,WAAU;EAA4B,eAAc;EAAoC,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACpN;EAAC,MAAK;EAA0B,QAAO;GAAC;GAAQ;GAAW;GAAO;EAAC,WAAU;EAA2B,eAAc;EAAqD,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CAClO;EAAC,MAAK;EAAoC,QAAO;GAAC;GAAQ;GAAW;GAAiB;EAAC,WAAU;EAAqC,eAAc;EAA+C,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CAC1P;EAAC,MAAK;EAAwB,QAAO,CAAC,SAAQ,cAAc;EAAC,WAAU;EAAyB,eAAc;EAAmE,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACxO;EAAC,MAAK;EAA6B,QAAO;GAAC;GAAQ;GAAc;GAAO;EAAC,WAAU;EAA8B,eAAc;EAAyC,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAwB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACzT;EAAC,MAAK;EAA6B,QAAO;GAAC;GAAQ;GAAc;GAAO;EAAC,WAAU;EAA8B,eAAc;EAAqD,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAuB,eAAc;GAAyC,YAAW;GAAK,aAAY;GAAc,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CAC5Z;EAAC,MAAK;EAA8B,QAAO;GAAC;GAAQ;GAAc;GAAQ;EAAC,WAAU;EAA+B,eAAc;EAAkD,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAU,eAAc;GAA2B,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAQ,eAAc;GAA2C,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACve;EAAC,MAAK;EAA6B,QAAO;GAAC;GAAQ;GAAc;GAAO;EAAC,WAAU;EAA8B,eAAc;EAAkF,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAAwD,YAAW;IAAK,aAAY;IAAS;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAkC,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAwB,eAAc;IAA4D,YAAW;IAAK,aAAY;IAAS;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAAwD,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAAoF,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAAsD,YAAW;IAAK,aAAY;IAAQ;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACvqC;EAAC,MAAK;EAAmB,QAAO,CAAC,SAAQ,SAAS;EAAC,WAAU;EAAoB,eAAc;EAAuC,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CAC7L;EAAC,MAAK;EAA0B,QAAO;GAAC;GAAQ;GAAS;GAAS;EAAC,WAAU;EAA2B,eAAc;EAA4C,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAwB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACnT;EAAC,MAAK;EAAwB,QAAO;GAAC;GAAQ;GAAS;GAAO;EAAC,WAAU;EAAyB,eAAc;EAA+C,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAe,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAe,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAAiB,YAAW;IAAK,aAAY;IAAS;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACre;EAAC,MAAK;EAA6B,QAAO;GAAC;GAAQ;GAAS;GAAY;EAAC,WAAU;EAA8B,eAAc;EAAiC,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAwB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACjT;EAAC,MAAK;EAAyB,QAAO;GAAC;GAAQ;GAAS;GAAQ;EAAC,WAAU;EAA0B,eAAc;EAA4D,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACtO;EAAC,MAAK;EAAwB,QAAO;GAAC;GAAQ;GAAS;GAAO;EAAC,WAAU;EAAyB,eAAc;EAAgG,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAe,eAAc;GAA8D,YAAW;GAAK,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAY,eAAc;GAA6C,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CAC/f;EAAC,MAAK;EAAe,QAAO,CAAC,SAAQ,KAAK;EAAC,WAAU;EAAgB,eAAc;EAAkC,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CAC5K;EAAC,MAAK;EAAwB,QAAO;GAAC;GAAQ;GAAK;GAAW;EAAC,WAAU;EAAyB,eAAc;EAAqD,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAc,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAmB,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAa,eAAc;IAAyC,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACrgB;EAAC,MAAK;EAAoB,QAAO;GAAC;GAAQ;GAAK;GAAO;EAAC,WAAU;EAAqB,eAAc;EAA0D,QAAO,CAAC;GAAC,QAAO;GAAmB,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAU,eAAc;GAA2C,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAgB,eAAc;GAA0B,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACpe;EAAC,MAAK;EAAsB,QAAO;GAAC;GAAQ;GAAK;GAAS;EAAC,WAAU;EAAuB,eAAc;EAAwC,QAAO,CAAC;GAAC,QAAO;GAAmB,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACtQ;EAAC,MAAK;EAAqB,QAAO;GAAC;GAAQ;GAAK;GAAQ;EAAC,WAAU;EAAsB,eAAc;EAAyD,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAkB,eAAc;GAAyC,YAAW;GAAK,aAAY;GAAO,EAAC;GAAC,SAAQ;GAAY,eAAc;GAA+C,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACjf;EAAC,MAAK;EAAsB,QAAO;GAAC;GAAQ;GAAK;GAAS;EAAC,WAAU;EAAuB,eAAc;EAA4C,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACjQ;EAAC,MAAK;EAAkC,QAAO;GAAC;GAAQ;GAAK;GAAqB;EAAC,WAAU;EAAmC,eAAc;EAAwH,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAY,eAAc;GAA6C,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAY,eAAc;GAA+B,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACphB;EAAC,MAAK;EAAyB,QAAO;GAAC;GAAQ;GAAK;GAAY;EAAC,WAAU;EAA0B,eAAc;EAAqD,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAY,eAAc;GAA6C,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACjV;EAAC,MAAK;EAAuB,QAAO;GAAC;GAAQ;GAAK;GAAU;EAAC,WAAU;EAAwB,eAAc;EAAuE,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAY,eAAc;GAAsC,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACtV;EAAC,MAAK;EAAmB,QAAO,CAAC,SAAQ,SAAS;EAAC,WAAU;EAAoB,eAAc;EAAgC,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACtL;EAAC,MAAK;EAA0B,QAAO;GAAC;GAAQ;GAAS;GAAS;EAAC,WAAU;EAA2B,eAAc;EAA8B,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAW,eAAc;IAA4B,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAY,eAAc;IAA6B,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAW,eAAc;IAAyC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAA0D,YAAW;IAAK,aAAY;IAAO;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACpoB;EAAC,MAAK;EAAyB,QAAO;GAAC;GAAQ;GAAS;GAAQ;EAAC,WAAU;EAA0B,eAAc;EAAyF,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACnQ;EAAC,MAAK;EAAkB,QAAO,CAAC,SAAQ,QAAQ;EAAC,WAAU;EAAmB,eAAc;EAAyB,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CAC5K;EAAC,MAAK;EAA0B,QAAO;GAAC;GAAQ;GAAQ;GAAU;EAAC,WAAU;EAA2B,eAAc;EAAsD,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAY,eAAc;GAA0D,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAsB,eAAc;GAA2C,YAAW;GAAK,aAAY;GAAU,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACje;EAAC,MAAK;EAAyB,QAAO;GAAC;GAAQ;GAAQ;GAAS;EAAC,WAAU;EAA0B,eAAc;EAAsC,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CAChN;EAAC,MAAK;EAAgB,QAAO,CAAC,SAAQ,MAAM;EAAC,WAAU;EAAiB,eAAc;EAA2C,QAAO,CAAC;GAAC,QAAO;GAAS,YAAW;GAAM,YAAW;GAAM,EAAC;GAAC,QAAO;GAAc,YAAW;GAAM,YAAW;GAAK,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAiB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACtX;EAAC,MAAK;EAA0B,QAAO,CAAC,SAAQ,gBAAgB;EAAC,WAAU;EAA2B,eAAc;EAAqC,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CAChN;EAAC,MAAK;EAA0C,QAAO;GAAC;GAAQ;GAAgB;GAAkB;EAAC,WAAU;EAA2C,eAAc;EAAkE,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAY,eAAc;GAAkD,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CACtZ;EAAC,MAAK;EAAoB,QAAO,CAAC,SAAQ,UAAU;EAAC,WAAU;EAAqB,eAAc;EAAqD,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CAC9M;EAAC,MAAK;EAAkC,QAAO;GAAC;GAAQ;GAAU;GAAgB;EAAC,WAAU;EAAmC,eAAc;EAAgC,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAoB,eAAc;GAA0B,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CAC7U;EAAC,MAAK;EAAmC,QAAO;GAAC;GAAQ;GAAU;GAAiB;EAAC,WAAU;EAAoC,eAAc;EAAmC,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAA0B,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAA4C,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAqD,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CAC5kB;EAAC,MAAK;EAA2B,QAAO,CAAC,SAAQ,iBAAiB;EAAC,WAAU;EAA4B,eAAc;EAAuD,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAU,eAAc;IAA6C,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAY,eAAc;IAA6C,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAc,eAAc;IAA+B,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAuC,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAQ;CAClqB;EAAC,MAAK;EAAoB,QAAO,CAAC,gBAAgB;EAAC,WAAU;EAAqB,eAAc;EAA0D,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,CAAC,OAAO;EAAC,YAAW;EAAe;CAC9N;EAAC,MAAK;EAAyB,QAAO,CAAC,iBAAgB,OAAO;EAAC,WAAU;EAA0B,eAAc;EAAyD,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAM,YAAW;GAAK,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAuD,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAW,eAAc;IAAoE,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAsC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAAuC,YAAW;IAAK,aAAY;IAAI;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAe;CAC7vB;EAAC,MAAK;EAA2B,QAAO,CAAC,iBAAgB,SAAS;EAAC,WAAU;EAA4B,eAAc;EAAqD,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAA2B,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAA0B,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAwD,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAA+C,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA8B,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAmC,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAmC,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAA2C,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAsC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAc,eAAc;IAA0C,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAa,eAAc;IAA8B,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAgC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAkD,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAmC,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAyC,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAgC,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAsD,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAAmD,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAA4C,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAkB,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAoB,YAAW;IAAK,aAAY;IAAI;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAe;CAC1kF;EAAC,MAAK;EAAyB,QAAO,CAAC,iBAAgB,OAAO;EAAC,WAAU;EAA0B,eAAc;EAAmD,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAA2B,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAA0B,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAwC,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAsC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAa,eAAc;IAA8B,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAqC,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAkB,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAoB,YAAW;IAAK,aAAY;IAAI;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAe;CAC1hC;EAAC,MAAK;EAAyB,QAAO,CAAC,iBAAgB,OAAO;EAAC,WAAU;EAA0B,eAAc;EAAgD,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAiB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAe;CAChW;EAAC,MAAK;EAA0B,QAAO,CAAC,iBAAgB,QAAQ;EAAC,WAAU;EAA2B,eAAc;EAAsF,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAoD,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,CAAC,aAAa;EAAC,YAAW;EAAe;CAC7b;EAAC,MAAK;EAAyB,QAAO,CAAC,iBAAgB,OAAO;EAAC,WAAU;EAA0B,eAAc;EAAsF,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAa,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAe;CAC7W;EAAC,MAAK;EAA4B,QAAO,CAAC,iBAAgB,UAAU;EAAC,WAAU;EAA6B,eAAc;EAAqE,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAM,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAoB,eAAc;GAAgE,YAAW;GAAK,aAAY;GAAS,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAe;CAC9e;EAAC,MAAK;EAA8B,QAAO,CAAC,iBAAgB,YAAY;EAAC,WAAU;EAA+B,eAAc;EAA2E,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAM,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAe;CAC1W;EAAC,MAAK;EAAwB,QAAO,CAAC,iBAAgB,MAAM;EAAC,WAAU;EAAyB,eAAc;EAAsE,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAsC,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAe;CAC3Y;EAAC,MAAK;EAA0C,QAAO,CAAC,iBAAgB,wBAAwB;EAAC,WAAU;EAA2C,eAAc;EAAqH,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAe;CACzY;EAAC,MAAK;EAAyB,QAAO,CAAC,iBAAgB,OAAO;EAAC,WAAU;EAA0B,eAAc;EAA+D,QAAO,CAAC;GAAC,QAAO;GAAQ,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAe;CAC/R;EAAC,MAAK;EAA4B,QAAO,CAAC,iBAAgB,UAAU;EAAC,WAAU;EAA6B,eAAc;EAAiG,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAiB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,CAAC,SAAS;EAAC,YAAW;EAAe;CACpX;EAAC,MAAK;EAAyB,QAAO,CAAC,iBAAgB,OAAO;EAAC,WAAU;EAA0B,eAAc;EAA2D,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAkD,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAA2B,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAe,eAAc;IAA4C,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAiB,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAe;CAC7pB;EAAC,MAAK;EAA0B,QAAO,CAAC,iBAAgB,QAAQ;EAAC,WAAU;EAA2B,eAAc;EAA6E,QAAO,CAAC;GAAC,QAAO;GAAM,YAAW;GAAM,YAAW;GAAK,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAiE,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAW,eAAc;IAAyC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAA+C,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAA2B,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAAuB,YAAW;IAAK,aAAY;IAAI;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAe;CAC92B;EAAC,MAAK;EAA2B,QAAO,CAAC,iBAAgB,SAAS;EAAC,WAAU;EAA4B,eAAc;EAAuD,QAAO,CAAC;GAAC,QAAO;GAAM,YAAW;GAAM,YAAW;GAAK,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAa,eAAc;IAAuD,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAyB,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAoF,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAoD,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAyC,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAsD,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAuC,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAAgD,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAyD,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAyE,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAAuB,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAQ,eAAc;IAAgC,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAe;CACrsD;EAAC,MAAK;EAAkB,QAAO,CAAC,cAAc;EAAC,WAAU;EAAmB,eAAc;EAA0F,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC1O;EAAC,MAAK;EAAyB,QAAO,CAAC,eAAc,SAAS;EAAC,WAAU;EAA0B,eAAc;EAA8E,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACrP;EAAC,MAAK;EAAwB,QAAO,CAAC,eAAc,QAAQ;EAAC,WAAU;EAAyB,eAAc;EAAoE,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACxO;EAAC,MAAK;EAAc,QAAO,CAAC,UAAU;EAAC,WAAU;EAAe,eAAc;EAAiC,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAU,eAAc;IAA2B,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAmD,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAA0B,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAA4B,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAAsF,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAAmE,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAe,eAAc;IAA+D,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAiE,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC7oC;EAAC,MAAK;EAAuB,QAAO,CAAC,mBAAmB;EAAC,WAAU;EAAwB,eAAc;EAAgM,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC/Y;EAAC,MAAK;EAAY,QAAO,CAAC,QAAQ;EAAC,WAAU;EAAa,eAAc;EAA8B,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACjK;EAAC,MAAK;EAAiB,QAAO,CAAC,SAAQ,OAAO;EAAC,WAAU;EAAkB,eAAc;EAA2F,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAmB,eAAc;GAAuE,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACnY;EAAC,MAAK;EAAiB,QAAO,CAAC,SAAQ,OAAO;EAAC,WAAU;EAAkB,eAAc;EAAuD,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAmB,eAAc;GAAiD,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC5X;EAAC,MAAK;EAAoB,QAAO,CAAC,SAAQ,UAAU;EAAC,WAAU;EAAqB,eAAc;EAA2B,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAmB,eAAc;GAAiD,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACzW;EAAC,MAAK;EAAoB,QAAO,CAAC,SAAQ,UAAU;EAAC,WAAU;EAAqB,eAAc;EAAiD,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAmB,eAAc;GAAiD,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC/X;EAAC,MAAK;EAAqB,QAAO,CAAC,SAAQ,WAAW;EAAC,WAAU;EAAsB,eAAc;EAA4B,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAmB,eAAc;GAAiD,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CAC7W;EAAC,MAAK;EAAmB,QAAO,CAAC,SAAQ,SAAS;EAAC,WAAU;EAAoB,eAAc;EAA4B,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAmB,eAAc;GAAiD,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACvW;EAAC,MAAK;EAAoB,QAAO,CAAC,SAAQ,UAAU;EAAC,WAAU;EAAqB,eAAc;EAA0D,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAmB,eAAc;GAAiD,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAY;CACxY;EAAC,MAAK;EAAY,QAAO,CAAC,QAAQ;EAAC,WAAU;EAAa,eAAc;EAAoE,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAe,eAAc;IAA8B,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAA+B,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA2B,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAA8C,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAAqH,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAW,eAAc;IAAwG,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC5+B;EAAC,MAAK;EAAa,QAAO,CAAC,SAAS;EAAC,WAAU;EAAc,eAAc;EAAoG,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACpO;EAAC,MAAK;EAAiB,QAAO,CAAC,UAAS,MAAM;EAAC,WAAU;EAAkB,eAAc;EAAuH,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAyC,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAoB,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAyB,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA+C,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAAoD,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAAwF,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAqD,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAe,eAAc;IAA+C,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAA4F,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAsC,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAW,eAAc;IAAiD,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAA0E,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAAyC,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACl4D;EAAC,MAAK;EAAkB,QAAO,CAAC,UAAS,OAAO;EAAC,WAAU;EAAmB,eAAc;EAAqF,QAAO,CAAC;GAAC,QAAO;GAAY,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAgB,eAAc;GAAuF,YAAW;GAAK,aAAY;GAAM,EAAC;GAAC,SAAQ;GAAsB,eAAc;GAAgD,YAAW;GAAK,aAAY;GAAU,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC/jB;EAAC,MAAK;EAAoB,QAAO,CAAC,UAAS,SAAS;EAAC,WAAU;EAAqB,eAAc;EAAsD,QAAO,CAAC;GAAC,QAAO;GAAY,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAuC,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAU,eAAc;IAAsC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAA0C,YAAW;IAAK,aAAY;IAAS;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACxlB;EAAC,MAAK;EAAkB,QAAO,CAAC,UAAS,OAAO;EAAC,WAAU;EAAmB,eAAc;EAA+D,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAe,eAAc;IAA4B,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAA8B,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAa,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC1e;EAAC,MAAK;EAAsB,QAAO,CAAC,UAAS,WAAW;EAAC,WAAU;EAAuB,eAAc;EAAoG,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA2D,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAAsC,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAAmC,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAgB,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAwB,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAoB,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAyE,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAsC,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAY,eAAc;IAA4C,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAAsB,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAA2B,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAwB,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC7iD;EAAC,MAAK;EAAW,QAAO,CAAC,OAAO;EAAC,WAAU;EAAY,eAAc;EAA6F,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACvN;EAAC,MAAK;EAAiB,QAAO,CAAC,QAAO,QAAQ;EAAC,WAAU;EAAkB,eAAc;EAA0E,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAkD,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAA+E,YAAW;IAAK,aAAY;IAAc;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAA+D,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAyB,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAoB,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAwE,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA2D,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA0C,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA8D,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAA6D,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAAsB,YAAW;IAAK,aAAY;IAAS;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAqD,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAAgE,YAAW;IAAK,aAAY;IAAS;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAoC,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAa,eAAc;IAA0F,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAU,eAAc;IAAuF,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAY,eAAc;IAA2D,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAU,eAAc;IAA8C,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAY,eAAc;IAA+C,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAkC,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACpuF;EAAC,MAAK;EAAgB,QAAO,CAAC,QAAO,OAAO;EAAC,WAAU;EAAiB,eAAc;EAAoE,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAwB,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAA2C,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAa,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACtf;EAAC,MAAK;EAAgB,QAAO,CAAC,QAAO,OAAO;EAAC,WAAU;EAAiB,eAAc;EAA4E,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAuB,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAwB,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAS,eAAc;IAA4B,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACriB;EAAC,MAAK;EAAgB,QAAO,CAAC,QAAO,OAAO;EAAC,WAAU;EAAiB,eAAc;EAA0F,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAM,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAmD,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAqE,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAA0B,eAAc;IAA0E,YAAW;IAAK,aAAY;IAAgB;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAAgD,YAAW;IAAK,aAAY;IAAU;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC90B;EAAC,MAAK;EAAkB,QAAO,CAAC,QAAO,SAAS;EAAC,WAAU;EAAmB,eAAc;EAAkD,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAuC,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAU,eAAc;IAAsC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAA0C,YAAW;IAAK,aAAY;IAAS;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAA6D,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAA+E,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAkE,YAAW;IAAK,aAAY;IAAI;GAAC;IAAC,SAAQ;IAAwB,eAAc;IAAkC,YAAW;IAAK,aAAY;IAAO;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACjkC;EAAC,MAAK;EAAgB,QAAO,CAAC,QAAO,OAAO;EAAC,WAAU;EAAiB,eAAc;EAAiD,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC5O;EAAC,MAAK;EAAgB,QAAO,CAAC,QAAO,OAAO;EAAC,WAAU;EAAiB,eAAc;EAA4F,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAA6E,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAS,eAAc;GAAuD,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAChiB;EAAC,MAAK;EAAe,QAAO,CAAC,WAAW;EAAC,WAAU;EAAgB,eAAc;EAAmE,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CAC9M;EAAC,MAAK;EAAqB,QAAO,CAAC,YAAW,QAAQ;EAAC,WAAU;EAAsB,eAAc;EAA8C,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAsC,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAAwC,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAmC,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAAqC,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAU,eAAc;IAA6D,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CAClyB;EAAC,MAAK;EAAoB,QAAO,CAAC,YAAW,OAAO;EAAC,WAAU;EAAqB,eAAc;EAA4D,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAiB,eAAc;GAAmD,YAAW;GAAK,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CACpV;EAAC,MAAK;EAAqB,QAAO,CAAC,YAAW,QAAQ;EAAC,WAAU;EAAsB,eAAc;EAAkD,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CACjN;EAAC,MAAK;EAAqB,QAAO,CAAC,YAAW,QAAQ;EAAC,WAAU;EAAsB,eAAc;EAAqE,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CACpO;EAAC,MAAK;EAAsB,QAAO,CAAC,YAAW,SAAS;EAAC,WAAU;EAAuB,eAAc;EAAsD,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CACxN;EAAC,MAAK;EAAsB,QAAO,CAAC,YAAW,SAAS;EAAC,WAAU;EAAuB,eAAc;EAAsE,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CACxO;EAAC,MAAK;EAAsB,QAAO,CAAC,YAAW,SAAS;EAAC,WAAU;EAAuB,eAAc;EAA2F,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAiB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CAChV;EAAC,MAAK;EAAqB,QAAO,CAAC,YAAW,QAAQ;EAAC,WAAU;EAAsB,eAAc;EAAiF,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAiB,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAkB,eAAc;GAA8B,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAW;CAC9a;EAAC,MAAK;EAAY,QAAO,CAAC,QAAQ;EAAC,WAAU;EAAa,eAAc;EAAyB,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAS;CACzJ;EAAC,MAAK;EAAmB,QAAO,CAAC,SAAQ,SAAS;EAAC,WAAU;EAAoB,eAAc;EAAkE,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAS;CACvQ;EAAC,MAAK;EAAgB,QAAO,CAAC,YAAY;EAAC,WAAU;EAAiB,eAAc;EAAqE,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC/M;EAAC,MAAK;EAAuB,QAAO,CAAC,aAAY,SAAS;EAAC,WAAU;EAAwB,eAAc;EAAwC,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAmC,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAmB,eAAc;IAAuC,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAsB,eAAc;IAAgE,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAA4B,eAAc;IAAsG,YAAW;IAAK,aAAY;IAAU;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAiC,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAAqC,YAAW;IAAK,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAkB,eAAc;IAAiB,YAAW;IAAK,aAAY;IAAQ;GAAC;IAAC,SAAQ;IAAuB,eAAc;IAAuB,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAW,eAAc;IAAoC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAmB,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC14C;EAAC,MAAK;EAAwB,QAAO,CAAC,aAAY,UAAU;EAAC,WAAU;EAAyB,eAAc;EAAyE,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAW,eAAc;GAAoC,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAS,eAAc;GAAmB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC3d;EAAC,MAAK;EAAwB,QAAO,CAAC,aAAY,UAAU;EAAC,WAAU;EAAyB,eAAc;EAA0E,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAQ,eAAc;GAAkD,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAS,eAAc;GAAmB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACve;EAAC,MAAK;EAAsB,QAAO,CAAC,aAAY,QAAQ;EAAC,WAAU;EAAuB,eAAc;EAA+C,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAW,eAAc;GAAgC,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAS,eAAc;GAAmB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACvb;EAAC,MAAK;EAAyB,QAAO,CAAC,aAAY,WAAW;EAAC,WAAU;EAA0B,eAAc;EAAiC,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAW,eAAc;GAAyB,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAS,eAAc;GAAmC,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC3b;EAAC,MAAK;EAAuB,QAAO,CAAC,aAAY,SAAS;EAAC,WAAU;EAAwB,eAAc;EAAuD,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAwB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAClW;EAAC,MAAK;EAAqB,QAAO,CAAC,aAAY,OAAO;EAAC,WAAU;EAAsB,eAAc;EAAiB,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAmB,eAAc;GAAmC,YAAW;GAAK,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAS,eAAc;GAA2B,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACxX;EAAC,MAAK;EAAoB,QAAO,CAAC,aAAY,MAAM;EAAC,WAAU;EAAqB,eAAc;EAA6C,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAA8B,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACrV;EAAC,MAAK;EAAqB,QAAO,CAAC,aAAY,OAAO;EAAC,WAAU;EAAsB,eAAc;EAA4C,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAA4B,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACrV;EAAC,MAAK;EAAa,QAAO,CAAC,SAAS;EAAC,WAAU;EAAc,eAAc;EAAsB,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAiB,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAY,eAAc;GAA6C,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC7V;EAAC,MAAK;EAAU,QAAO,CAAC,MAAM;EAAC,WAAU;EAAW,eAAc;EAAoD,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAuB,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAuG,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAoE,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACxkB;EAAC,MAAK;EAAS,QAAO,CAAC,KAAK;EAAC,WAAU;EAAU,eAAc;EAA2C,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAW,eAAc;IAAoB,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAuB,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAW,eAAc;IAAuF,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAuG,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAW,eAAc;IAA+F,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAoE,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAsD,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAAuJ,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACvzC;EAAC,MAAK;EAAW,QAAO,CAAC,OAAO;EAAC,WAAU;EAAY,eAAc;EAA0C,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAiB,eAAc;GAAwB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACvQ;EAAC,MAAK;EAAa,QAAO,CAAC,SAAS;EAAC,WAAU;EAAc,eAAc;EAA2E,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAe,eAAc;IAAqD,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAU,eAAc;IAAmI,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAA8B,eAAc;IAAsF,YAAW;IAAK,aAAY;IAAW;GAAC;IAAC,SAAQ;IAAW,eAAc;IAA6E,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAoF,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAW,eAAc;IAAyG,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAc,eAAc;IAA0G,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACj1C;EAAC,MAAK;EAAc,QAAO,CAAC,UAAU;EAAC,WAAU;EAAe,eAAc;EAA+F,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAuC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAa,eAAc;IAAoC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAuB,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAS,eAAc;IAA8D,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAU,eAAc;IAAiR,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAA8B,eAAc;IAAsF,YAAW;IAAK,aAAY;IAAW;GAAC;IAAC,SAAQ;IAAW,eAAc;IAAuF,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAc,eAAc;IAAkH,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAW,eAAc;IAA+F,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAc,eAAc;IAA+E,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAQ,eAAc;IAA8G,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACn+D;EAAC,MAAK;EAAsB,QAAO,CAAC,WAAU,UAAU;EAAC,WAAU;EAAuB,eAAc;EAA2E,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACzO;EAAC,MAAK;EAAc,QAAO,CAAC,UAAU;EAAC,WAAU;EAAe,eAAc;EAAuD,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CAC9L;EAAC,MAAK;EAAkB,QAAO,CAAC,WAAU,MAAM;EAAC,WAAU;EAAmB,eAAc;EAAmC,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAe,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAqC,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAuB,eAAc;IAAsC,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAwB,eAAc;IAAkD,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAY,eAAc;IAA4D,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CAC/yB;EAAC,MAAK;EAAoB,QAAO,CAAC,WAAU,QAAQ;EAAC,WAAU;EAAqB,eAAc;EAAmE,QAAO,CAAC;GAAC,QAAO;GAAM,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAyC,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAA0C,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAA0B,eAAc;IAAgD,YAAW;IAAK,aAAY;IAAS;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAuD,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CACzvB;EAAC,MAAK;EAA2B,QAAO,CAAC,WAAU,eAAe;EAAC,WAAU;EAA4B,eAAc;EAAwE,QAAO,CAAC;GAAC,QAAO;GAAM,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAgB,eAAc;GAAuE,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CACxb;EAAC,MAAK;EAAmB,QAAO,CAAC,WAAU,OAAO;EAAC,WAAU;EAAoB,eAAc;EAA+B,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAiB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CAC1Q;EAAC,MAAK;EAAmB,QAAO,CAAC,WAAU,OAAO;EAAC,WAAU;EAAoB,eAAc;EAAsC,QAAO,CAAC;GAAC,QAAO;GAAM,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CAC7O;EAAC,MAAK;EAAqB,QAAO,CAAC,WAAU,SAAS;EAAC,WAAU;EAAsB,eAAc;EAAyE,QAAO,CAAC;GAAC,QAAO;GAAM,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CAC1U;EAAC,MAAK;EAAqB,QAAO,CAAC,WAAU,SAAS;EAAC,WAAU;EAAsB,eAAc;EAAqC,QAAO,CAAC;GAAC,QAAO;GAAa,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CACzP;EAAC,MAAK;EAAmB,QAAO,CAAC,WAAU,OAAO;EAAC,WAAU;EAAoB,eAAc;EAAsD,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CAC9M;EAAC,MAAK;EAAyB,QAAO,CAAC,WAAU,aAAa;EAAC,WAAU;EAA0B,eAAc;EAAuD,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAgB,eAAc;GAAqB,YAAW;GAAK,aAAY;GAAO,EAAC;GAAC,SAAQ;GAAY,eAAc;GAA8D,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CACvf;EAAC,MAAK;EAAe,QAAO,CAAC,WAAW;EAAC,WAAU;EAAgB,eAAc;EAAuD,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CACjM;EAAC,MAAK;EAAmB,QAAO,CAAC,YAAW,MAAM;EAAC,WAAU;EAAoB,eAAc;EAAmC,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAe,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAAqC,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAuB,eAAc;IAAsC,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAAwB,eAAc;IAAkD,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAY,eAAc;IAA4D,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CAClzB;EAAC,MAAK;EAAqB,QAAO,CAAC,YAAW,QAAQ;EAAC,WAAU;EAAsB,eAAc;EAAmE,QAAO,CAAC;GAAC,QAAO;GAAM,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAiB,eAAc;IAAyC,YAAW;IAAK,aAAY;IAAM;GAAC;IAAC,SAAQ;IAAgB,eAAc;IAA0C,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAA0B,eAAc;IAAgD,YAAW;IAAK,aAAY;IAAS;GAAC;IAAC,SAAQ;IAAY,eAAc;IAAuD,YAAW;IAAM,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CAC5vB;EAAC,MAAK;EAA4B,QAAO,CAAC,YAAW,eAAe;EAAC,WAAU;EAA6B,eAAc;EAAwE,QAAO,CAAC;GAAC,QAAO;GAAM,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAgB,eAAc;GAAuE,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CAC3b;EAAC,MAAK;EAAoB,QAAO,CAAC,YAAW,OAAO;EAAC,WAAU;EAAqB,eAAc;EAA+B,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAiB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CAC7Q;EAAC,MAAK;EAAoB,QAAO,CAAC,YAAW,OAAO;EAAC,WAAU;EAAqB,eAAc;EAAsC,QAAO,CAAC;GAAC,QAAO;GAAM,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CAChP;EAAC,MAAK;EAAsB,QAAO,CAAC,YAAW,SAAS;EAAC,WAAU;EAAuB,eAAc;EAAyE,QAAO,CAAC;GAAC,QAAO;GAAM,YAAW;GAAK,YAAW;GAAM,EAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CAC7U;EAAC,MAAK;EAAsB,QAAO,CAAC,YAAW,SAAS;EAAC,WAAU;EAAuB,eAAc;EAAqC,QAAO,CAAC;GAAC,QAAO;GAAa,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CAC5P;EAAC,MAAK;EAAoB,QAAO,CAAC,YAAW,OAAO;EAAC,WAAU;EAAqB,eAAc;EAAsD,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CACjN;EAAC,MAAK;EAA0B,QAAO,CAAC,YAAW,aAAa;EAAC,WAAU;EAA2B,eAAc;EAAuD,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAgB,eAAc;GAAqB,YAAW;GAAK,aAAY;GAAO,EAAC;GAAC,SAAQ;GAAY,eAAc;GAA8D,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAU;CAC1f;EAAC,MAAK;EAAa,QAAO,CAAC,SAAS;EAAC,WAAU;EAAc,eAAc;EAA2C,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CACnL;EAAC,MAAK;EAAa,QAAO,CAAC,SAAS;EAAC,WAAU;EAAc,eAAc;EAAuC,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAW,eAAc;GAAuE,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACnT;EAAC,MAAK;EAA0B,QAAO,CAAC,UAAS,eAAe;EAAC,WAAU;EAA2B,eAAc;EAA4E,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAa,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACrU;EAAC,MAAK;EAAgB,QAAO,CAAC,YAAY;EAAC,WAAU;EAAiB,eAAc;EAAgE,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAS,eAAc;GAAiB,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAc;CACpS;EAAC,MAAK;EAAc,QAAO,CAAC,UAAU;EAAC,WAAU;EAAe,eAAc;EAAgF,QAAO,EAAE;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAS,eAAc;IAAsC,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAW,eAAc;IAA0C,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAAiE,YAAW;IAAK,aAAY;IAAW;GAAC;IAAC,SAAQ;IAAqB,eAAc;IAA8C,YAAW;IAAK,aAAY;IAAW;GAAC;IAAC,SAAQ;IAAa,eAAc;IAAqH,YAAW;IAAM,aAAY;IAAK;GAAC;IAAC,SAAQ;IAAiC,eAAc;IAAuD,YAAW;IAAK,aAAY;IAAK;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC7gC;EAAC,MAAK;EAAa,QAAO,CAAC,SAAS;EAAC,WAAU;EAAc,eAAc;EAAoC,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAU,eAAc;GAAwC,YAAW;GAAM,aAAY;GAAK,EAAC;GAAC,SAAQ;GAAU,eAAc;GAAiC,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CACpX;EAAC,MAAK;EAAW,QAAO,CAAC,OAAO;EAAC,WAAU;EAAY,eAAc;EAAkC,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC7J;EAAC,MAAK;EAAiB,QAAO,CAAC,QAAO,QAAQ;EAAC,WAAU;EAAkB,eAAc;EAA4B,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAe,eAAc;GAA0B,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC7Q;EAAC,MAAK;EAAgB,QAAO,CAAC,QAAO,OAAO;EAAC,WAAU;EAAiB,eAAc;EAA2B,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACvK;EAAC,MAAK;EAAiB,QAAO,CAAC,QAAO,QAAQ;EAAC,WAAU;EAAkB,eAAc;EAA4B,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC3K;EAAC,MAAK;EAAkB,QAAO,CAAC,QAAO,SAAS;EAAC,WAAU;EAAmB,eAAc;EAAyB,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAqB,eAAc;GAA0B,YAAW;GAAK,aAAY;GAAO,EAAC;GAAC,SAAQ;GAAmB,eAAc;GAAwB,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC1X;EAAC,MAAK;EAAiB,QAAO,CAAC,QAAO,QAAQ;EAAC,WAAU;EAAkB,eAAc;EAAkC,QAAO,CAAC;GAAC,QAAO;GAAU,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAiB,eAAc;GAA8B,YAAW;GAAK,aAAY;GAAI,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC1U;EAAC,MAAK;EAAkB,QAAO,CAAC,QAAO,SAAS;EAAC,WAAU;EAAmB,eAAc;EAAyC,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAwB,eAAc;GAAqB,YAAW;GAAK,aAAY;GAAU,EAAC;GAAC,SAAQ;GAAS,eAAc;GAAa,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACrX;EAAC,MAAK;EAAkB,QAAO,CAAC,QAAO,SAAS;EAAC,WAAU;EAAmB,eAAc;EAAsB,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACxK;EAAC,MAAK;EAAyB,QAAO;GAAC;GAAO;GAAS;GAAS;EAAC,WAAU;EAA0B,eAAc;EAAuB,QAAO,CAAC;GAAC,QAAO;GAAO,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU;GAAC;IAAC,SAAQ;IAAuB,eAAc;IAAsB,YAAW;IAAK,aAAY;IAAS;GAAC;IAAC,SAAQ;IAAoB,eAAc;IAAwD,YAAW;IAAK,aAAY;IAAO;GAAC;IAAC,SAAQ;IAA0B,eAAc;IAAwB,YAAW;IAAK,aAAY;IAAY;GAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACllB;EAAC,MAAK;EAAuB,QAAO;GAAC;GAAO;GAAS;GAAO;EAAC,WAAU;EAAwB,eAAc;EAAmB,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACtL;EAAC,MAAK;EAAwB,QAAO;GAAC;GAAO;GAAS;GAAQ;EAAC,WAAU;EAAyB,eAAc;EAAsB,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC1O;EAAC,MAAK;EAAyB,QAAO;GAAC;GAAO;GAAS;GAAS;EAAC,WAAU;EAA0B,eAAc;EAAkB,QAAO,CAAC;GAAC,QAAO;GAAK,YAAW;GAAK,YAAW;GAAM,CAAC;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACzO;EAAC,MAAK;EAAgB,QAAO,CAAC,QAAO,OAAO;EAAC,WAAU;EAAiB,eAAc;EAAwE,QAAO,EAAE;EAAC,WAAU,EAAE;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CACpN;EAAC,MAAK;EAAoB,QAAO,CAAC,QAAO,WAAW;EAAC,WAAU;EAAqB,eAAc;EAAkE,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAU,eAAc;GAAkD,YAAW;GAAM,aAAY;GAAK,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAO;CAC/U;EAAC,MAAK;EAAY,QAAO,CAAC,QAAQ;EAAC,WAAU;EAAa,eAAc;EAA+E,QAAO,EAAE;EAAC,WAAU,CAAC;GAAC,SAAQ;GAAgB,eAAc;GAAoB,YAAW;GAAK,aAAY;GAAO,CAAC;EAAC,WAAU,EAAE;EAAC,YAAW;EAAM;CAC3S;AAED,MAAa,oCAAsE;CACjF,iBAAiB;CACjB,0BAA0B;CAC3B;AAED,MAAa,4BAA4B;CACvC;EAAC,MAAK;EAAc,QAAO,CAAC,OAAO;EAAC,WAAU;EAAiB,eAAc;EAA+B,UAAS;EAAiB,YAAW;EAAc;CAC/J;EAAC,MAAK;EAAmB,QAAO,CAAC,OAAO;EAAC,WAAU;EAAsB,eAAc;EAAiC,UAAS;EAAsB,YAAW;EAAc;CAChL;EAAC,MAAK;EAAkB,QAAO,CAAC,OAAO;EAAC,WAAU;EAAqB,eAAc;EAAiC,UAAS;EAAqB,YAAW;EAAc;CAC7K;EAAC,MAAK;EAAsB,QAAO,CAAC,OAAO;EAAC,WAAU;EAAgC,eAAc;EAAsD,UAAS;EAAiC,YAAW;EAAY;CAC3N;EAAC,MAAK;EAAiB,QAAO,CAAC,OAAO;EAAC,WAAU;EAAoB,eAAc;EAA8C,UAAS;EAAoB,YAAW;EAAe;CACxL;EAAC,MAAK;EAAoB,QAAO,CAAC,UAAU;EAAC,WAAU;EAAuB,eAAc;EAAiC,UAAS;EAAwB,YAAW;EAAe;CACxL;EAAC,MAAK;EAAsB,QAAO,CAAC,UAAU;EAAC,WAAU;EAAyB,eAAc;EAAoD,UAAS;EAA0B,YAAW;EAAe;CACjN;EAAC,MAAK;EAAkB,QAAO,CAAC,UAAU;EAAC,WAAU;EAAqB,eAAc;EAA6C,UAAS;EAAsB,YAAW;EAAe;CAC/L;;;AClXD,MAAa,iBAAiB;CAC5B;EAAE,MAAM;EAAc,OAAO;EAAM,OAAO;EAAW;CACrD;EAAE,MAAM;EAAe,OAAO;EAAM,OAAO;EAAW;CACtD;EAAE,MAAM;EAAsB,OAAO;EAAM,OAAO;EAAW;CAC7D;EAAE,MAAM;EAAQ,OAAO;EAAM,OAAO;EAAW;CAC/C;EAAE,MAAM;EAAgB,OAAO;EAAM,OAAO;EAAW;CACvD;EAAE,MAAM;EAAgB,OAAO;EAAM,OAAO;EAAW;CACvD;EAAE,MAAM;EAAoB,OAAO;EAAM,OAAO;EAAW;CAC3D;EAAE,MAAM;EAAc,OAAO;EAAM,OAAO;EAAW;CACrD;EAAE,MAAM;EAAe,OAAO;EAAM,OAAO;EAAW;CACtD;EAAE,MAAM;EAAqB,OAAO;EAAM,OAAO;EAAW;CAC5D;EAAE,MAAM;EAAc,OAAO;EAAO;CACpC;EAAE,MAAM;EAAiB,OAAO;EAAO;CACvC;EAAE,MAAM;EAAgB,OAAO;EAAO;CACtC;EAAE,MAAM;EAAe,OAAO;EAAO;CACrC;EAAE,MAAM;EAAoB,OAAO;EAAO;CAC1C;EAAE,MAAM;EAAe,OAAO;EAAO;CACrC;EAAE,MAAM;EAAiB,OAAO;EAAO;CACvC;EAAE,MAAM;EAAgB,OAAO;EAAO;CACtC;EAAE,MAAM;EAAgB,OAAO;EAAO;CACtC;EAAE,MAAM;EAAkB,OAAO;EAAO;CACxC;EAAE,MAAM;EAAsB,OAAO;EAAO;CAC7C;AAID,MAAa,uBAAuB,eAAe,QAAQ,SAAS,KAAK,MAAM;AAC/E,MAAa,mBAAmB,qBAAqB,KAAK,SAAS,KAAK,KAAK;;;ACa7E,MAAa,yBAAyD,CAAC,SAAS,OAAO;AAEvF,MAAa,cAAoC;CAAC;CAAQ;CAAU;CAAU;CAAQ;CAAO;CAAU;CAAQ;CAAe;AAE9H,SAAgB,sBAAsB,OAA8C;AAClF,QAAO,OAAO,UAAU,YAAa,uBAA6C,SAAS,MAAM;;AAGnG,SAAgB,YAAY,OAAoC;AAC9D,QAAO,OAAO,UAAU,YAAa,YAAkC,SAAS,MAAM;;;;ACrDxF,MAAa,qBAAqB,OAAO,SAAS;CAAC;CAAS;CAAgB;CAAY;CAAW,CAAC;AAGpG,MAAa,sBAAsB,OAAO,SAAS;CAAC;CAAW;CAAQ;CAAW;CAAQ;CAAW;CAAU,CAAC;AAGhH,MAAa,uBAAuB,OAAO,SAAS;CAClD;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC;AAGF,MAAa,yBAAyB,OAAO,MAAM;CACjD,OAAO,OAAO;EAAE,OAAO,OAAO,QAAQ,QAAQ;EAAE,SAAS,OAAO;EAAQ,CAAC;CACzE,OAAO,OAAO;EAAE,OAAO,OAAO,QAAQ,iBAAiB;EAAE,SAAS,OAAO;EAAQ,YAAY,OAAO;EAAQ,CAAC;CAC7G,OAAO,OAAO;EAAE,OAAO,OAAO,QAAQ,eAAe;EAAE,kBAAkB,OAAO;EAAQ,CAAC;CACzF,OAAO,OAAO;EACZ,OAAO,OAAO,QAAQ,wBAAwB;EAC9C,kBAAkB,OAAO;EACzB,YAAY,OAAO;EACpB,CAAC;CACH,CAAC;AAGF,MAAa,yBAAyB,OAAO,SAAS,CAAC,SAAS,SAAS,CAAC;AAG1E,MAAa,mBAAmB,OAAO,SAAS;CAAC;CAAY;CAAa;CAAU,CAAC;AAGrF,MAAa,iBAAiB,OAAO,OAAO;CAC1C,IAAI;CACJ,QAAQ,OAAO,OAAO,OAAO,OAAO;CACpC,OAAO,OAAO,OAAO,OAAO,OAAO;CACpC,CAAC;;AAIF,MAAa,yBAAyB,OAAO,OAAO;CAClD,SAAS,OAAO;CAChB,IAAI,OAAO;CACZ,CAAC;AAGF,MAAa,iBAAiB,OAAO,OAAO;CAC1C,IAAI,OAAO;CACX,MAAM;CACN,OAAO,OAAO;CACd,UAAU;;CAEV,YAAY,OAAO;;CAEnB,SAAS,OAAO,OAAO,OAAO,OAAO;;CAErC,YAAY,OAAO,OAAO,OAAO,OAAO;CACxC,UAAU,OAAO,OAAO,OAAO,OAAO;CACtC,MAAM,OAAO,OAAO,OAAO,OAAO;;CAElC,SAAS,OAAO;;CAEhB,OAAO,OAAO;;CAEd,QAAQ,OAAO,SAAS,kBAAkB;;CAE1C,cAAc,OAAO,SAAS,OAAO,OAAO;CAC5C,OAAO;CACP,WAAW,OAAO,OAAO,OAAO,OAAO;CACvC,gBAAgB,OAAO,OAAO,OAAO,OAAO;CAC5C,SAAS,OAAO,OAAO,OAAO,OAAO;CACrC,QAAQ;CACR,YAAY,OAAO,OAAO,uBAAuB;;CAEjD,OAAO,OAAO,SAAS,eAAe;;CAEtC,MAAM,OAAO,SAAS,OAAO,OAAO;EAClC,KAAK,OAAO;EACZ,KAAK,OAAO;EACZ,MAAM,OAAO;EACb,WAAW,OAAO;EAClB,cAAc,OAAO,OAAO,OAAO,SAAS;GAAC;GAAQ;GAAW;GAAS,CAAC,CAAC;;EAE3E,SAAS,OAAO,SAAS,OAAO,OAAO,OAAO,OAAO,CAAC;;EAEtD,UAAU,OAAO,SAAS,OAAO,OAAO;EACzC,CAAC,CAAC;;CAEH,eAAe,OAAO,SAAS,OAAO,OAAO;;CAE7C,WAAW,OAAO,SAAS,OAAO,OAAO;;CAEzC,eAAe,OAAO,SAAS,uBAAuB;CACvD,CAAC;;;;;AAOF,MAAa,iBAAiB,OAAO,SAAS,CAAC,UAAU,OAAO,CAAC;AAGjE,MAAa,yBAAyB,OAAO,OAAO;CAClD,aAAa,OAAO;CACpB,aAAa,OAAO;CACpB,OAAO,OAAO,SAAS,eAAe;CACtC,SAAS,OAAO,MAAM,eAAe;CACtC,CAAC;;;;;;;;;AC3CF,SAAgB,yBACd,cAC8B;AAC9B,KAAI,aAAa,YAAY,WAAY,QAAO;AAChD,KAAI,aAAa,YAAY,QAAS,QAAO;AAC7C,QAAO;;;AAIT,MAAa,oCAA2D,EAAE;AAC1E,MAAa,qCAA4D,CAAC,aAAa;;;AC3DvF,MAAM,SAAS,OAAO,GAAG;AACzB,MAAM,OAAO,OAAO,GAAG;AACvB,MAAM,OAAO,OAAO,GAAG;AACvB,MAAM,YAAY,IAAI,OAAO,OAAO,GAAG,IAAI,SAAS,KAAK,qDAAqD,QAAQ,IAAI;AAC1H,MAAM,YAAY,IAAI,OAAO,OAAO,GAAG,IAAI,SAAS,KAAK,mCAAmC,QAAQ,IAAI;AACxG,MAAM,mBAAmB,IAAI,OAAO,OAAO,GAAG,IAAI,SAAS,KAAK,kDAAkD,QAAQ,IAAI;AAC9H,MAAM,YAAY;AAElB,SAAgB,wBAAwB,KAAqB,OAAiC;AAC5F,QAAO,UAAU,WACb,WAAW,IAAI,KAAK,GAAG,IAAI,WAAW,oBAAoB,IAAI,WAC9D,WAAW,IAAI,KAAK,GAAG,IAAI,WAAW,QAAQ,IAAI;;AAGxD,SAAS,MAAM,MAAc,YAAoB,QAAgB,OAAsD;AACrH,KAAI,CAAC,OAAO,cAAc,OAAO,IAAI,UAAU,EAAG,QAAO;CACzD,MAAM,MAAM;EAAE,MAAM,KAAK,aAAa;EAAE,YAAY,WAAW,aAAa,CAAC,QAAQ,UAAU,GAAG;EAAE;EAAQ;AAC5G,QAAO;EAAE,GAAG;EAAK;EAAO,KAAK,wBAAwB,KAAK,MAAM;EAAE;;;;;;;AAQpE,SAAgB,oBAAoB,OAAe,aAAmE;CACpH,MAAM,OAAO,MAAM,MAAM;AACzB,KAAI,CAAC,KAAM,QAAO;AAClB,MAAK,MAAM,CAAC,SAAS,UAAU;EAC7B,CAAC,WAAW,SAAS;EACrB,CAAC,WAAW,SAAS;EACrB,CAAC,kBAAkB,SAAS;EAC7B,EAAW;EACV,MAAM,QAAQ,QAAQ,KAAK,KAAK;AAChC,MAAI,MAAO,QAAO,MAAM,MAAM,IAAK,MAAM,IAAK,OAAO,MAAM,GAAG,EAAE,MAAM;;CAExE,MAAM,QAAQ,UAAU,KAAK,KAAK;AAClC,KAAI,CAAC,SAAS,CAAC,YAAa,QAAO;AACnC,QAAO,MAAM,YAAY,MAAM,MAAM,MAAM,YAAY,YAAY,OAAO,MAAM,GAAG,EAAE,YAAY,MAAM;;;;;;AAOzG,SAAgB,kBAAkB,QAA2D;AAC3F,KAAI,CAAC,OAAQ,QAAO;CACpB,MAAM,OAAO,OAAO,MAAM;CAC1B,MAAM,QAAQ,6EAA6E,KAAK,KAAK,IAChG,6CAA6C,KAAK,KAAK;AAC5D,KAAI,CAAC,MAAO,QAAO;CACnB,MAAM,OAAO,MAAM,GAAI,aAAa;CACpC,MAAM,QAAiC,KAAK,SAAS,SAAS,GAAG,WAAW,KAAK,SAAS,SAAS,GAAG,WAAW;AACjH,KAAI,CAAC,MAAO,QAAO;AACnB,QAAO;EAAE;EAAM,YAAY,MAAM,GAAI,aAAa;EAAE;EAAO;;;AAI7D,SAAgB,4BAA4B,KAAqB,OAA4C;AAC3G,QAAO,MAAM,MAAM,SAAS,KAAK,SAAS,IAAI,QAAQ,KAAK,eAAe,IAAI,WAAW;;;;;;;;;;AChF3F,MAAa,sBAA2C,IAAI,IAAI,CAAC,yBAAyB,mBAAmB,CAAC;AAE9G,SAAgB,wBAAwB,KAAyD;AAC/F,QAAO,oBAAoB,IAAI,IAAI,KAAK,aAAa,CAAC,IAChD,IAAI,WAAW,QAAQ,oBAAoB,IAAI,IAAI,QAAQ,aAAa,CAAC;;;AAMjF,MAAa,yBAAyB,IAAI;;AAa1C,SAAgB,eAAe,KAAwB,KAA2B;AAChF,KAAI,IAAI,cAAc,KAAM,QAAO;AACnC,KAAI,IAAI,WAAY,QAAO;AAC3B,KAAI,IAAI,cAAc;AACpB,OAAK,IAAI,qBAAqB,KAAK,EAAG,QAAO;AAC7C,MAAI,IAAI,UAAW,QAAO;AAC1B,SAAO;;AAET,KAAI,IAAI,WAAW,YAAY,MAAM,KAAK,MAAM,IAAI,UAAU,GAAA,KAA2B,QAAO;AAChG,QAAO;;;;;AC5BT,MAAa,+BAA+B;AAE5C,MAAa,gBAAgB,OAAO,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAG9E,MAAa,0BAA0B,OAAO,OAAO;;CAEnD,SAAS,OAAO;;CAEhB,gBAAgB,OAAO;;CAEvB,cAAc,OAAO;CACtB,CAAC;AAGF,MAAa,wBAAwB,OAAO,OAAO;CACjD,mBAAmB,OAAO,QAAQ,EAAE;CACpC,eAAe;CACf,OAAO,OAAO;CACd,UAAU,OAAO,OAAO;EAAE,IAAI,OAAO;EAAQ,MAAM,OAAO;EAAQ,CAAC;;CAEnE,eAAe,OAAO;;CAEtB,iBAAiB,OAAO;CACxB,cAAc;CACf,CAAC;;AAIF,MAAa,aAAmC,YAC9C,OAAO,OAAO;CAAE,eAAe;CAAe;CAAS,CAAC;AAE1D,MAAa,mBAAmB,UAAU,OAAO,OAAO;AAGxD,MAAa,iBAAiB,UAAU,OAAO,OAAO;AAGtD,MAAa,iBAAiB,UAAU,OAAO,OAAO;AAGtD,MAAa,wBAAwB,UAAU,OAAO,OAAO;AAG7D,MAAa,oBAAoB,UAAU,OAAO,OAAO;;AAIzD,SAAgB,qBACd,YACA,uBACS;AACT,QAAO,WAAW,oBAAoB"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/backend-pane.ts","../src/derived-issue-state.ts","../src/github-quota.ts","../src/types.ts","../src/pull-request-links.ts","../src/memory.ts","../src/system-health.ts","../src/events.ts","../src/editor.ts","../src/effort.ts","../src/rpc.ts","../src/agent-runtime-merge.ts","../src/issue-delta.ts","../src/event-reducers.ts","../src/project-ci.ts","../src/flywheel.ts","../src/flywheel-stats.ts","../src/flywheel-derived.ts","../src/orders.ts","../src/context-layers.ts","../src/artifacts.ts","../src/feature-registry.ts","../src/harness-capabilities.ts","../src/harness-behavior.ts","../src/hygiene.ts","../src/update.ts","../src/deploy.ts","../src/issue-sort.ts","../src/telemetry.ts","../src/composer-commands.generated.ts","../src/hook-inventory.ts","../src/terminal-backend.ts","../src/agent-directory.ts","../src/companion-terminal.ts","../src/pull-request-ref.ts","../src/conversation-rows.ts","../src/conversation-window.ts","../src/environment.ts"],"sourcesContent":["// Backend pane (PAN-3917 FR-5, FR-12).\n//\n// One live agent pane as the terminal backend reports it, folded into the\n// dashboard read model. This replaces every persisted agent mirror: the\n// inventory is read live from Herdr or tmux and matched to issues by the\n// pane's metadata tokens.\n\nimport { Schema } from \"effect\"\n\n\nexport const BackendPane = Schema.Struct({\n /** Stable pane identity: the backend-native pane handle. */\n id: Schema.String,\n /** Overdeck agent id: Herdr `agentId` token or live agent name; tmux session name (PAN-3920). */\n agentId: Schema.optional(Schema.String),\n /** Issue the pane belongs to; absent for operator conversations. */\n issue: Schema.optional(Schema.String),\n role: Schema.Literals([\"work\", \"worker\", \"review\", \"test\", \"uat\", \"strike\", \"plan\", \"conversation\"]),\n harness: Schema.String,\n model: Schema.String,\n state: Schema.Literals([\"idle\", \"working\", \"blocked\", \"done\", \"exited\", \"unknown\"]),\n /** Epoch millis the pane entered `state`; drives the `stuck` attention. */\n stateSince: Schema.optional(Schema.Number),\n /** Handle the terminal WebSocket attaches to. */\n terminalId: Schema.optional(Schema.String),\n /** Working directory of the pane (the issue workspace path). */\n workspace: Schema.optional(Schema.String),\n})\nexport type BackendPane = typeof BackendPane.Type\n\n/**\n * The agent id a pane answers for (PAN-4320). On Herdr `id` (`w1:p1`) and\n * `terminalId` (`term_…`) are backend handles, never agent ids, so the\n * `agentId` token decides; tmux panes carry `agentId` = session name.\n */\nexport function paneAgentKey(pane: BackendPane): string {\n return pane.agentId ?? pane.terminalId ?? pane.id\n}\n\n/**\n * Panes by agent key. When two panes answer for one agent (a restarted Herdr\n * agent beside its exited pane), a non-exited pane wins, never the reverse.\n */\nexport function indexPanesByAgentKey(panes: Iterable<BackendPane>): Map<string, BackendPane> {\n const byKey = new Map<string, BackendPane>()\n for (const pane of panes) {\n const key = paneAgentKey(pane)\n const prior = byKey.get(key)\n if (!prior || (prior.state === \"exited\" && pane.state !== \"exited\")) byKey.set(key, pane)\n }\n return byKey\n}\n","// Derived issue state (PAN-3917 FR-6).\n//\n// Overdeck stores no status it can derive. An issue's pipeline state is\n// computed at read time from the tracker, the plan home, the PR, checks, git,\n// and the terminal backend. This module holds the vocabulary the server\n// derives and the dashboard renders; the derivation itself lives in\n// `src/lib/overdeck/derived-issue-state.ts`, shared by the CLI and the server.\n\nimport { Schema } from \"effect\"\n\n/**\n * The nine pipeline states of the FR-6 table. They are mutually exclusive and\n * resolved in this precedence (highest first), because the underlying facts\n * overlap:\n *\n * closed > merged > ready > changes-requested > in-review > working >\n * parked > planned > backlog\n */\nexport const IssueState = Schema.Literals([\n \"backlog\",\n \"parked\",\n \"planned\",\n \"working\",\n \"in-review\",\n \"changes-requested\",\n \"ready\",\n \"merged\",\n \"closed\",\n])\nexport type IssueState = typeof IssueState.Type\n\n/** Something the operator has to look at. Orthogonal to `IssueState`. */\nexport const IssueAttention = Schema.Literals([\n /** An unanswered AskUserQuestion or a permission prompt (a `blocked` pane). */ \"needs-you\",\n /** Idle for N minutes with unpushed commits. */ \"stuck\",\n /** 429 or provider-failure text in a pane. */ \"api-error\",\n /** Auto-start was attempted but no work agent came up. */ \"work-not-started\",\n /** An open PR on the pipeline branch with no pipeline workspace: never verified or reviewed (PAN-4605). */ \"pr-outside-pipeline\",\n])\nexport type IssueAttention = typeof IssueAttention.Type\n\n/** Latest review decision on the PR, as the forge reports it. */\nexport const PrReviewState = Schema.Literals([\n \"approved\",\n \"changes-requested\",\n \"review-requested\",\n \"commented\",\n \"none\",\n])\nexport type PrReviewState = typeof PrReviewState.Type\n\n/** Aggregate check-run conclusion for the PR head. */\nexport const PrChecksState = Schema.Literals([\"green\", \"red\", \"pending\"])\nexport type PrChecksState = typeof PrChecksState.Type\n\n/** The pull request (or merge request) backing an issue. */\nexport const DerivedPrState = Schema.Struct({\n url: Schema.String,\n number: Schema.Number,\n reviewState: PrReviewState,\n checks: PrChecksState,\n /** Forge mergeability. `null` when the forge has not computed it yet. */\n mergeable: Schema.NullOr(Schema.Boolean),\n /** Present only when true; survives state: closed (PAN-4290). */\n merged: Schema.optional(Schema.Boolean),\n})\nexport type DerivedPrState = typeof DerivedPrState.Type\n\n/** The issue's feature branch as git reports it. */\nexport const DerivedBranchState = Schema.Struct({\n name: Schema.String,\n aheadOfMain: Schema.Number,\n pushed: Schema.Boolean,\n})\nexport type DerivedBranchState = typeof DerivedBranchState.Type\n\n/** The workspace journal's read on a post-planning auto-start (PAN-4399). */\nexport const DerivedWorkStart = Schema.Struct({\n status: Schema.Literals([\"retrying\", \"not-started\"]),\n /** ISO time of the journal entry the status was read from. */\n at: Schema.String,\n error: Schema.optional(Schema.String),\n nextRetryAt: Schema.optional(Schema.String),\n /** The retry is journaled but not actually running because the Deacon is frozen (PAN-4210). Present only when true. */\n held: Schema.optional(Schema.Literal(true)),\n})\nexport type DerivedWorkStart = typeof DerivedWorkStart.Type\n\n/** An open pull request the pipeline never picked up (PAN-4605). */\nexport const DerivedPrOutsidePipeline = Schema.Struct({\n prNumber: Schema.Number,\n /** One operator-facing paragraph naming the PR, the reason and the exact commands. */\n fix: Schema.String,\n /** The other worktree that has the branch checked out, when that is the reason. */\n worktreePath: Schema.optional(Schema.String),\n})\nexport type DerivedPrOutsidePipeline = typeof DerivedPrOutsidePipeline.Type\n\n/** Everything the dashboard needs to render an issue's pipeline position. */\nexport const DerivedIssueState = Schema.Struct({\n issueId: Schema.String,\n state: IssueState,\n attention: Schema.optional(IssueAttention),\n pr: Schema.optional(DerivedPrState),\n branch: Schema.optional(DerivedBranchState),\n /**\n * No tracker answered for this issue, so `closed` — the top of the\n * precedence — could not be ruled in or out. Present only in that case; an\n * unresolved tracker read is never reported as an open issue.\n */\n trackerUnknown: Schema.optional(Schema.Literal(true)),\n /** A deferred or gave-up post-planning auto-start read from the workspace journal (PAN-4399). */\n workStart: Schema.optional(DerivedWorkStart),\n /** An outside PR the pipeline never picked up (PAN-4605). */\n prOutsidePipeline: Schema.optional(DerivedPrOutsidePipeline),\n})\nexport type DerivedIssueState = typeof DerivedIssueState.Type\n\nexport const ISSUE_STATES: readonly IssueState[] = [\n \"backlog\",\n \"parked\",\n \"planned\",\n \"working\",\n \"in-review\",\n \"changes-requested\",\n \"ready\",\n \"merged\",\n \"closed\",\n]\n\n/** Highest precedence first — the order `deriveIssueState` resolves in. */\nexport const ISSUE_STATE_PRECEDENCE: readonly IssueState[] = [\n \"closed\",\n \"merged\",\n \"ready\",\n \"changes-requested\",\n \"in-review\",\n \"working\",\n \"parked\",\n \"planned\",\n \"backlog\",\n]\n\nexport const ISSUE_ATTENTIONS: readonly IssueAttention[] = [\"needs-you\", \"stuck\", \"api-error\", \"work-not-started\", \"pr-outside-pipeline\"]\n\nexport function isIssueState(value: unknown): value is IssueState {\n return typeof value === \"string\" && (ISSUE_STATES as readonly string[]).includes(value)\n}\n\nexport function isIssueAttention(value: unknown): value is IssueAttention {\n return typeof value === \"string\" && (ISSUE_ATTENTIONS as readonly string[]).includes(value)\n}\n","import { Schema } from \"effect\"\n\n// ─── GitHub API quota (PAN-4264) ─────────────────────────────────────────────\n//\n// Shared vocabulary for the GitHub quota ledger (`src/lib/github-quota/`), the\n// dashboard snapshot, and `pan doctor github-quota`. The ledger records which\n// named Overdeck subsystem (\"caller\") spent which GitHub limit (\"pool\" +\n// \"bucket\"), so a rate-limit refusal can be explained instead of guessed at.\n\n/**\n * The closed list of logical GitHub callers. A call made outside any\n * `withGitHubCaller` context is recorded as `other` (or `app-rest` when it\n * goes through the GitHub App REST door).\n */\nexport const GITHUB_QUOTA_CALLERS = [\n \"pipeline-membership\",\n \"pr-cache\",\n \"pr-sync\",\n \"ci-repair\",\n \"issue-poller\",\n \"close-out\",\n \"tracker-client\",\n \"app-rest\",\n \"quota-sampler\",\n \"agent\",\n \"pr-adoption\",\n \"other\",\n] as const\nexport const GitHubQuotaCaller = Schema.Literals(GITHUB_QUOTA_CALLERS)\nexport type GitHubQuotaCaller = typeof GitHubQuotaCaller.Type\n\n/**\n * Read-model pollers whose data can be stale for minutes without harm. Only\n * these callers are skipped while a pause is active; every other caller\n * (merge, verdict recording, tracker writes, agents) is essential and never\n * paused.\n */\nexport const NON_ESSENTIAL_GITHUB_CALLERS: ReadonlySet<GitHubQuotaCaller> = new Set<GitHubQuotaCaller>([\n \"pipeline-membership\",\n \"pr-cache\",\n \"pr-sync\",\n \"ci-repair\",\n \"issue-poller\",\n \"close-out\",\n])\n\n/**\n * The GitHub identity whose limit a call spends: `user` is the `gh` CLI token,\n * `pat` is the `GITHUB_TOKEN` personal access token, `app` is a GitHub App\n * installation token.\n */\nexport const GITHUB_QUOTA_POOLS = [\"user\", \"pat\", \"app\"] as const\nexport const GitHubQuotaPool = Schema.Literals(GITHUB_QUOTA_POOLS)\nexport type GitHubQuotaPool = typeof GitHubQuotaPool.Type\n\n/** The limit counter inside a pool. `rest` is what GitHub calls `core`. */\nexport const GITHUB_QUOTA_BUCKETS = [\"graphql\", \"rest\"] as const\nexport const GitHubQuotaBucket = Schema.Literals(GITHUB_QUOTA_BUCKETS)\nexport type GitHubQuotaBucket = typeof GitHubQuotaBucket.Type\n\n/** Primary = the hourly budget; secondary = GitHub's burst/abuse limit. */\nexport const GitHubRateLimitKind = Schema.Literals([\"primary\", \"secondary\"])\nexport type GitHubRateLimitKind = typeof GitHubRateLimitKind.Type\n\n/** Points spent and calls made in one bucket. */\nexport const GitHubQuotaUsage = Schema.Struct({\n points: Schema.Number,\n calls: Schema.Number,\n})\nexport type GitHubQuotaUsage = typeof GitHubQuotaUsage.Type\n\n/** One caller's metered usage over the last hour. */\nexport const GitHubQuotaCallerUsage = Schema.Struct({\n caller: GitHubQuotaCaller,\n graphql: GitHubQuotaUsage,\n rest: GitHubQuotaUsage,\n /** True when any counted call had an estimated (not GitHub-reported) cost. */\n estimated: Schema.Boolean,\n})\nexport type GitHubQuotaCallerUsage = typeof GitHubQuotaCallerUsage.Type\n\n/** The latest `/rate_limit` (or header) reading for one pool and bucket. */\nexport const GitHubQuotaSample = Schema.Struct({\n pool: GitHubQuotaPool,\n bucket: GitHubQuotaBucket,\n /** ISO time the sample was taken. */\n ts: Schema.String,\n remaining: Schema.Number,\n limit: Schema.Number,\n /** ISO time the bucket's hourly window resets. */\n resetAt: Schema.optional(Schema.String),\n})\nexport type GitHubQuotaSample = typeof GitHubQuotaSample.Type\n\n/** An active pause on one pool and bucket (`~/.overdeck/github-quota/pause.json`). */\nexport const GitHubQuotaPause = Schema.Struct({\n pool: GitHubQuotaPool,\n bucket: GitHubQuotaBucket,\n kind: GitHubRateLimitKind,\n /** The caller whose refused call started the pause. */\n caller: GitHubQuotaCaller,\n /** ISO time the pause started. */\n since: Schema.String,\n /** ISO time the pause ends. */\n until: Schema.String,\n})\nexport type GitHubQuotaPause = typeof GitHubQuotaPause.Type\n\n/**\n * The operator-facing quota view — identical to the body of\n * `GET /api/github-quota`, so the pill, the banner and the CLI read one shape.\n * Derived runtime state: published with `emitOnly`, never persisted.\n */\nexport const GitHubQuotaSnapshot = Schema.Struct({\n /** ISO time the snapshot was built. */\n generatedAt: Schema.String,\n /** The `gh` account login. Local display only; never sent to telemetry. */\n login: Schema.NullOr(Schema.String),\n /** Per-caller usage in the last hour, highest total points first. */\n callers: Schema.Array(GitHubQuotaCallerUsage),\n /** The latest sample per pool and bucket. */\n samples: Schema.Array(GitHubQuotaSample),\n /** Active pauses; empty when GitHub calls are not paused. */\n pauses: Schema.Array(GitHubQuotaPause),\n /** True when this machine's own metered usage cannot explain a primary limit. */\n ownUsageLow: Schema.Boolean,\n /** User-pool GraphQL points the latest sample shows spent but no metered caller claims. */\n unattributed: Schema.Number,\n /** Refusals observed in the last hour. */\n refusals: Schema.Struct({ primary: Schema.Number, secondary: Schema.Number }),\n})\nexport type GitHubQuotaSnapshot = typeof GitHubQuotaSnapshot.Type\n","import { Schema } from \"effect\"\nimport { BackendPane } from \"./backend-pane\"\nimport { DerivedIssueState } from \"./derived-issue-state\"\nimport { GitHubQuotaSnapshot } from \"./github-quota\"\n\n// ─── Primitives ───────────────────────────────────────────────────────────────\n\nexport const IssueId = Schema.String\nexport type IssueId = typeof IssueId.Type\n\nexport type PipelineBucket =\n | \"in_flight\"\n | \"zombie_pr\"\n | \"post_merge_limbo\"\n | \"planned_backlog\"\n | \"clean_terminal\"\n\nexport const MEMBERSHIP_UNAVAILABLE_REASONS = [\n \"missing_issue_prefix\",\n \"repo_unavailable\",\n \"default_branch_unresolved\",\n \"forge_unavailable\",\n // PAN-3527: the forge did not answer (rate limit, 5xx, timeout, network),\n // as opposed to `forge_unavailable`, where it answered \"no\". Ask again later.\n \"forge_transient\",\n \"tracker_unconfigured\",\n \"gather_failed\",\n] as const\nexport type MembershipUnavailableReason = typeof MEMBERSHIP_UNAVAILABLE_REASONS[number]\n\nexport interface PipelineMembershipUnavailableBody {\n status: \"unavailable\"\n reason: MembershipUnavailableReason\n message: string\n projectKey: string\n}\n\n/**\n * PAN-3527 — the membership snapshot has not been gathered yet (a freshly\n * restarted server warming its cache). Sent with HTTP 503 and a `Retry-After`\n * header. Unlike `PipelineMembershipUnavailableBody` (a settled answer about\n * the project), this is a temporary state: callers retry it.\n */\nexport const PIPELINE_MEMBERSHIP_LOADING_CODE = \"snapshot_loading\" as const\n\nexport interface PipelineMembershipLoadingBody {\n status: \"loading\"\n code: typeof PIPELINE_MEMBERSHIP_LOADING_CODE\n error: string\n projectKey: string\n}\n\n/** Server-computed pipeline membership attached to dashboard issue DTOs. */\nexport interface IssuePipelineMembership {\n available?: boolean\n inPipeline: boolean\n bucket: PipelineBucket\n labelDrift: \"stale_present\" | \"stale_absent\" | null\n}\n\nexport const AgentId = Schema.String\nexport type AgentId = typeof AgentId.Type\n\nexport const SequenceNumber = Schema.Number\nexport type SequenceNumber = typeof SequenceNumber.Type\n\n// ─── Strict literal types (PAN-433) ──────────────────────────────────────────\n// Safe because the read model only contains values from typed events or\n// explicitly cleaned bootstrap data.\n\nexport const AgentStatus = Schema.Literals([\"starting\", \"running\", \"stopped\", \"error\", \"unknown\"])\nexport type AgentStatus = typeof AgentStatus.Type\n\nexport const Role = Schema.Literals([\"plan\", \"work\", \"review\", \"test\", \"ship\", \"flywheel\", \"strike\", \"sequencer\", \"knowledge\", \"worker\"])\nexport type Role = typeof Role.Type\n\nexport const AgentResolution = Schema.Literals([\"working\", \"done\", \"needs_input\", \"stuck\", \"completed\", \"unclear\", \"abandoned\", \"api_error\"])\nexport type AgentResolution = typeof AgentResolution.Type\n\n// ─── Harness (PAN-636, PAN-1989) ─────────────────────────────────────────────\n// Identifies which coding-agent harness an agent is running under.\n// AgentSnapshot.runtime is left as Schema.optional(Schema.String) for forward\n// compatibility (events from older readers may carry unknown values), but every\n// consumer that branches on harness MUST go through getHarness() so unknown or\n// legacy values normalize to 'claude-code'.\n//\n// PAN-1989 retired 'pi'; legacy DB rows read as 'ohmypi' via getHarness().\n// All new write sites use canonical harness literals.\n\nexport type Harness = 'claude-code' | 'ohmypi' | 'codex' | 'acp' | 'kimi-code' | 'opencode' | 'muse' | 'prime-agent'\n\nexport const KNOWN_HARNESSES: ReadonlySet<string> = new Set<Harness>(['claude-code', 'ohmypi', 'codex', 'acp', 'kimi-code', 'opencode', 'muse', 'prime-agent'])\n\n/**\n * Normalize a snapshot's runtime field to a known Harness value.\n * Unknown or missing values fall back to 'claude-code' (the default harness).\n * Legacy 'pi' values are normalized to 'ohmypi' on read (PAN-1989).\n */\nexport function getHarness(snapshot: { runtime?: string | undefined } | null | undefined): Harness {\n const raw = snapshot?.runtime\n if (raw === 'pi') return 'ohmypi'\n if (raw && KNOWN_HARNESSES.has(raw)) {\n return raw as Harness\n }\n return 'claude-code'\n}\n\n// ─── Agent Runtime (PAN-800) ─────────────────────────────────────────────────\n// High-frequency per-tool-call surface. Kept separate from AgentSnapshot because\n// AgentSnapshot is the low-frequency lifecycle projection (config, status, cost)\n// and merging them means every tool call re-diffs a giant object on the frontend.\n\nexport const Activity = Schema.Literals([\n \"working\", // tool in flight, or tool completed <30s ago\n \"thinking\", // no tool in flight, waiting for model\n \"waiting\", // needs human (permission, answer, disambiguation)\n \"idle\", // Stop hook fired, waiting for next turn\n \"stopped\", // session ended\n])\nexport type Activity = typeof Activity.Type\n\nexport const WaitingReason = Schema.Literals([\n \"tool_permission\",\n \"user_question\",\n \"disambiguation\",\n \"other\",\n])\nexport type WaitingReason = typeof WaitingReason.Type\n\nexport const ClaudeChannelPermissionBehavior = Schema.Literals([\n \"allow\",\n \"deny\",\n])\nexport type ClaudeChannelPermissionBehavior = typeof ClaudeChannelPermissionBehavior.Type\n\nexport const ThinkingState = Schema.Struct({\n since: Schema.String, // ISO timestamp\n lastToolAt: Schema.String, // timestamp of the tool that preceded this thinking state\n})\nexport type ThinkingState = typeof ThinkingState.Type\n\nexport const WaitingState = Schema.Struct({\n reason: WaitingReason,\n startedAt: Schema.String,\n message: Schema.optional(Schema.String),\n notificationSent: Schema.optional(Schema.Boolean),\n})\nexport type WaitingState = typeof WaitingState.Type\n\nexport const CHANNEL_REPLY_KIND_VALUES = [\"status\", \"done\", \"needs_input\"] as const\nexport const MAX_CHANNEL_REPLY_SUMMARY_LENGTH = 4 * 1024\nexport const MAX_CHANNEL_REPLY_ARTIFACT_REFS = 20\nexport const MAX_CHANNEL_REPLY_ARTIFACT_URI_LENGTH = 512\nexport const MAX_CHANNEL_REPLY_ARTIFACT_LABEL_LENGTH = 512\nconst CHANNEL_REPLY_ARTIFACT_URI_PATTERN = /^(?:file:\\/\\/|https:\\/\\/|\\/)/\n\nexport const ChannelReplyKind = Schema.Literals(CHANNEL_REPLY_KIND_VALUES)\nexport type ChannelReplyKind = typeof ChannelReplyKind.Type\n\nexport function isChannelReplyKind(value: unknown): value is ChannelReplyKind {\n return typeof value === 'string' && CHANNEL_REPLY_KIND_VALUES.includes(value as ChannelReplyKind)\n}\n\nexport const ChannelReplyArtifactRef = Schema.Struct({\n uri: Schema.String,\n label: Schema.optional(Schema.String),\n})\nexport type ChannelReplyArtifactRef = typeof ChannelReplyArtifactRef.Type\n\nexport const AgentChannelReply = Schema.Struct({\n kind: ChannelReplyKind,\n summary: Schema.String,\n artifactRefs: Schema.Array(ChannelReplyArtifactRef),\n reportedAt: Schema.String,\n})\nexport type AgentChannelReply = typeof AgentChannelReply.Type\n\nexport function normalizeChannelReplyPayload(\n payload: unknown,\n fieldPrefix = 'channel_reply',\n): {\n kind: ChannelReplyKind\n summary: string\n artifactRefs: ChannelReplyArtifactRef[]\n} {\n if (payload === null || typeof payload !== 'object') {\n throw new Error(`${fieldPrefix} payload must be an object`)\n }\n\n const source = payload as {\n kind?: unknown\n summary?: unknown\n artifactRefs?: unknown\n }\n\n if (!isChannelReplyKind(source.kind)) {\n throw new Error(`${fieldPrefix}.kind must be one of: ${CHANNEL_REPLY_KIND_VALUES.join(', ')}`)\n }\n\n if (typeof source.summary !== 'string') {\n throw new Error(`${fieldPrefix}.summary must be a non-empty string`)\n }\n const summary = source.summary.trim()\n if (summary.length === 0) {\n throw new Error(`${fieldPrefix}.summary must be a non-empty string`)\n }\n if (summary.length > MAX_CHANNEL_REPLY_SUMMARY_LENGTH) {\n throw new Error(\n `${fieldPrefix}.summary must be at most ${MAX_CHANNEL_REPLY_SUMMARY_LENGTH} characters`,\n )\n }\n\n if (source.artifactRefs !== undefined && !Array.isArray(source.artifactRefs)) {\n throw new Error(`${fieldPrefix}.artifactRefs must be an array when provided`)\n }\n const rawArtifactRefs = source.artifactRefs ?? []\n if (rawArtifactRefs.length > MAX_CHANNEL_REPLY_ARTIFACT_REFS) {\n throw new Error(\n `${fieldPrefix}.artifactRefs must contain at most ${MAX_CHANNEL_REPLY_ARTIFACT_REFS} entries`,\n )\n }\n\n const artifactRefs = rawArtifactRefs.map((item, index) => {\n if (item === null || typeof item !== 'object') {\n throw new Error(`${fieldPrefix}.artifactRefs[${index}] must be an object`)\n }\n const ref = item as { uri?: unknown; label?: unknown }\n if (typeof ref.uri !== 'string') {\n throw new Error(`${fieldPrefix}.artifactRefs[${index}].uri must be a non-empty string`)\n }\n const uri = ref.uri.trim()\n if (uri.length === 0) {\n throw new Error(`${fieldPrefix}.artifactRefs[${index}].uri must be a non-empty string`)\n }\n if (uri.length > MAX_CHANNEL_REPLY_ARTIFACT_URI_LENGTH) {\n throw new Error(\n `${fieldPrefix}.artifactRefs[${index}].uri must be at most ${MAX_CHANNEL_REPLY_ARTIFACT_URI_LENGTH} characters`,\n )\n }\n if (!CHANNEL_REPLY_ARTIFACT_URI_PATTERN.test(uri)) {\n throw new Error(\n `${fieldPrefix}.artifactRefs[${index}].uri must start with file://, https://, or /`,\n )\n }\n\n if (ref.label !== undefined && typeof ref.label !== 'string') {\n throw new Error(`${fieldPrefix}.artifactRefs[${index}].label must be a string when provided`)\n }\n const label = typeof ref.label === 'string' ? ref.label.trim() : undefined\n if (label !== undefined && label.length > MAX_CHANNEL_REPLY_ARTIFACT_LABEL_LENGTH) {\n throw new Error(\n `${fieldPrefix}.artifactRefs[${index}].label must be at most ${MAX_CHANNEL_REPLY_ARTIFACT_LABEL_LENGTH} characters`,\n )\n }\n\n return {\n uri,\n ...(label ? { label } : {}),\n }\n })\n\n return {\n kind: source.kind,\n summary,\n artifactRefs,\n }\n}\n\nexport const AgentRuntimeSnapshot = Schema.Struct({\n id: AgentId,\n activity: Activity,\n lastActivity: Schema.String, // ISO timestamp of last event for this agent\n currentTool: Schema.optional(Schema.String), // set when activity === \"working\"\n currentToolDescription: Schema.optional(Schema.String), // set alongside currentTool when activity === \"working\"\n thinking: Schema.optional(ThinkingState), // set when activity === \"thinking\"\n waiting: Schema.optional(WaitingState), // set when activity === \"waiting\"\n claudeSessionId: Schema.optional(Schema.String),\n sessionModel: Schema.optional(Schema.String),\n sessionHarness: Schema.optional(Schema.String),\n model: Schema.optional(Schema.String),\n lastMessageAt: Schema.optional(Schema.String), // last user→agent message delivered\n // Last structured Claude Code Channels reply emitted by the work agent.\n channelReply: Schema.optional(AgentChannelReply),\n // Lifecycle resolution signal emitted by work-agent-stop-hook. Values mirror\n // AgentResolution so the enrichment poller can consume this as input.\n resolution: Schema.optional(AgentResolution),\n resolutionCount: Schema.optional(Schema.Number),\n resolutionUpdatedAt: Schema.optional(Schema.String),\n // For specialists: the issue currently being processed.\n currentIssue: Schema.optional(IssueId),\n // Set while the agent's recent terminal tail shows a hard context-window overflow.\n contextSaturatedAt: Schema.optional(Schema.String),\n updatedAtSequence: SequenceNumber, // event sequence that produced this snapshot\n})\nexport type AgentRuntimeSnapshot = typeof AgentRuntimeSnapshot.Type\n\nexport const ChannelPermissionRequestSnapshot = Schema.Struct({\n requestId: Schema.String,\n agentId: AgentId,\n issueId: Schema.optional(IssueId),\n toolName: Schema.String,\n description: Schema.String,\n inputPreview: Schema.String,\n createdAt: Schema.String,\n})\nexport type ChannelPermissionRequestSnapshot = typeof ChannelPermissionRequestSnapshot.Type\n\n// ─── Agent ────────────────────────────────────────────────────────────────────\n\n/** PAN-4371 — advisory Jev reading of why an idle agent ended its turn. kind is a string (append-only store). */\nexport const TurnEndAssessment = Schema.Struct({\n kind: Schema.String,\n confidence: Schema.Number,\n needsAnswer: Schema.Boolean,\n model: Schema.String,\n})\nexport type TurnEndAssessment = typeof TurnEndAssessment.Type\n\nexport const AgentSnapshot = Schema.Struct({\n id: AgentId,\n issueId: IssueId,\n workspace: Schema.optional(Schema.String),\n runtime: Schema.optional(Schema.String),\n model: Schema.optional(Schema.String),\n status: AgentStatus,\n startedAt: Schema.optional(Schema.String),\n lastActivity: Schema.optional(Schema.String),\n branch: Schema.optional(Schema.String),\n costSoFar: Schema.optional(Schema.Number),\n sessionId: Schema.optional(Schema.String),\n startedBy: Schema.optional(Schema.String),\n role: Schema.optional(Role),\n phase: Schema.optional(Schema.String),\n workType: Schema.optional(Schema.String),\n roleRunHead: Schema.optional(Schema.String),\n /** The agent has a live pane on its terminal backend (Herdr or tmux). */\n hasLivePane: Schema.optional(Schema.Boolean),\n /**\n * @deprecated Misnamed alias of `hasLivePane`: true for a live pane on either\n * backend, not only a tmux session. Still populated for compatibility (#4105).\n */\n hasLiveTmuxSession: Schema.optional(Schema.Boolean),\n stoppedByUser: Schema.optional(Schema.Boolean),\n paused: Schema.optional(Schema.Boolean),\n pausedReason: Schema.optional(Schema.String),\n pausedAt: Schema.optional(Schema.String),\n troubled: Schema.optional(Schema.Boolean),\n troubledAt: Schema.optional(Schema.String),\n consecutiveFailures: Schema.optional(Schema.Number),\n firstFailureInRunAt: Schema.optional(Schema.String),\n lastFailureAt: Schema.optional(Schema.String),\n lastFailureReason: Schema.optional(Schema.String),\n lastFailureNextRetryAt: Schema.optional(Schema.String),\n runtimeState: Schema.optional(Schema.String),\n // Enrichment fields (PAN-440)\n hasPendingQuestion: Schema.optional(Schema.Boolean),\n pendingQuestionCount: Schema.optional(Schema.Number),\n pendingQuestionPrompt: Schema.optional(Schema.String),\n pendingQuestionReason: Schema.optional(Schema.String),\n // PAN-1520 — unified pending-input surfaces. `pendingInputKinds` lists every\n // active blocking surface (askUserQuestion, permissionRequest, exitPlanMode,\n // enterPlanMode, sessionResume). `pendingInputCount` is the count.\n pendingInputCount: Schema.optional(Schema.Number),\n pendingInputKinds: Schema.optional(Schema.Array(Schema.String)),\n // PAN-1520 — payload for an active AskUserQuestion the operator can answer\n // by clicking an option button in the conversation panel.\n pendingAskUserQuestion: Schema.optional(Schema.Struct({\n toolUseId: Schema.String,\n askedAt: Schema.String,\n questions: Schema.Array(Schema.Struct({\n question: Schema.String,\n header: Schema.optional(Schema.String),\n multiSelect: Schema.optional(Schema.Boolean),\n options: Schema.Array(Schema.Struct({\n label: Schema.String,\n description: Schema.optional(Schema.String),\n })),\n })),\n })),\n // PAN-1520 (FR-1) — plan markdown for a pending ExitPlanMode so the operator\n // can approve/reject from a dashboard modal instead of only the terminal.\n pendingProposedPlan: Schema.optional(Schema.Struct({\n toolUseId: Schema.String,\n askedAt: Schema.String,\n plan: Schema.String,\n })),\n resolution: Schema.optional(AgentResolution),\n resolutionCount: Schema.optional(Schema.Number),\n turnEndAssessment: Schema.optional(TurnEndAssessment),\n})\nexport type AgentSnapshot = typeof AgentSnapshot.Type\n\n// ─── Review / Pipeline ────────────────────────────────────────────────────────\n\n/** PAN-3151: A recorded cycle in the review convergence tracking series */\n\n\n\n\n// ─── Turn Diff ───────────────────────────────────────────────────────────────\n\nexport const TurnDiffFileChange = Schema.Struct({\n path: Schema.String,\n kind: Schema.optional(Schema.String),\n additions: Schema.optional(Schema.Number),\n deletions: Schema.optional(Schema.Number),\n})\nexport type TurnDiffFileChange = typeof TurnDiffFileChange.Type\n\nexport const TurnDiffSummary = Schema.Struct({\n turnId: Schema.String,\n completedAt: Schema.String,\n status: Schema.optional(Schema.String),\n files: Schema.Array(TurnDiffFileChange),\n checkpointRef: Schema.optional(Schema.String),\n assistantMessageId: Schema.optional(Schema.String),\n checkpointTurnCount: Schema.optional(Schema.Number),\n})\nexport type TurnDiffSummary = typeof TurnDiffSummary.Type\n\n// ─── Dashboard Snapshot ──────────────────────────────────────────────────────\n\nexport const ScanProgressSnapshot = Schema.Struct({\n active: Schema.Boolean,\n mode: Schema.Literals(['targeted', 'watched', 'system']),\n dirs: Schema.Array(Schema.String),\n dirsProcessed: Schema.Number,\n dirsTotal: Schema.Number,\n sessionsFound: Schema.Number,\n elapsedMs: Schema.Number,\n inserted: Schema.Number,\n updated: Schema.Number,\n skipped: Schema.Number,\n errors: Schema.Number,\n durationMs: Schema.Number,\n})\nexport type ScanProgressSnapshot = typeof ScanProgressSnapshot.Type\n\nexport const EnrichStatsSnapshot = Schema.Struct({\n processed: Schema.Number,\n totalCost: Schema.Number,\n failures: Schema.Number,\n durationMs: Schema.Number,\n})\nexport type EnrichStatsSnapshot = typeof EnrichStatsSnapshot.Type\n\nexport const EnrichProgressSnapshot = Schema.Struct({\n sessionId: Schema.Number,\n level: Schema.Number,\n model: Schema.String,\n cost: Schema.Number,\n success: Schema.Boolean,\n error: Schema.optional(Schema.String),\n timestamp: Schema.String,\n})\nexport type EnrichProgressSnapshot = typeof EnrichProgressSnapshot.Type\n\nexport const EmbedProgressSnapshot = Schema.Struct({\n sessionId: Schema.Number,\n model: Schema.String,\n success: Schema.Boolean,\n error: Schema.optional(Schema.String),\n timestamp: Schema.String,\n})\nexport type EmbedProgressSnapshot = typeof EmbedProgressSnapshot.Type\n\nexport const ProjectCiSuite = Schema.Struct({\n status: Schema.String,\n conclusion: Schema.NullOr(Schema.String),\n htmlUrl: Schema.optional(Schema.String),\n /** GitHub's suite/run update time, used to reject delayed same-SHA events. */\n observedAt: Schema.optional(Schema.String),\n})\nexport type ProjectCiSuite = typeof ProjectCiSuite.Type\n\nexport const ProjectCiSnapshot = Schema.Struct({\n projectKey: Schema.String,\n repo: Schema.String,\n branch: Schema.String,\n headSha: Schema.String,\n /** suiteId → suite. Only GitHub Actions suites ever appear here. */\n suites: Schema.Record(Schema.String, ProjectCiSuite),\n /** Newest `observedAt` folded into this record. */\n updatedAt: Schema.String,\n})\nexport type ProjectCiSnapshot = typeof ProjectCiSnapshot.Type\n\n// ─── Project Deploy (PAN-3751) ───────────────────────────────────────────────\n\n/**\n * Where an in-flight dashboard self-deploy (`pan reload`) stands.\n *\n * `building` the reload holds the restart lock and is building from origin/main;\n * `awaiting-approval` the build is ready and the reload waits on the restart gate;\n * `restarting` the operator approved and the old dashboard is being replaced;\n * `failed` the last reload recorded a failure (visible for a short window).\n */\nexport const ProjectDeployPhase = Schema.Literals([\"building\", \"awaiting-approval\", \"restarting\", \"failed\"])\nexport type ProjectDeployPhase = typeof ProjectDeployPhase.Type\n\n/**\n * One project's deploy, derived on the server from live runtime files: the\n * restart lock, the restart gate, the restart-status journal and the reload\n * process's own stdout. Nothing here is stored; a server restart re-derives it.\n */\nexport const ProjectDeploySnapshot = Schema.Struct({\n projectKey: Schema.String,\n trigger: Schema.String,\n phase: ProjectDeployPhase,\n /** The deploying process, while it is alive. */\n pid: Schema.optional(Schema.Number),\n /** When the server first observed this deploy (for `failed`, when it failed). */\n startedAt: Schema.String,\n error: Schema.optional(Schema.String),\n /** The reload's output file, when its stdout is a regular file. */\n logPath: Schema.optional(Schema.String),\n /** Last lines of `logPath`. */\n logTail: Schema.optional(Schema.Array(Schema.String)),\n})\nexport type ProjectDeploySnapshot = typeof ProjectDeploySnapshot.Type\n\n// ─── Restart Gate (PAN-3729) ─────────────────────────────────────────────────\n\n/** What kind of process asked for the voluntary dashboard restart. */\nexport const RestartGateKind = Schema.Literals([\"deploy\", \"reload\", \"restart\"])\nexport type RestartGateKind = typeof RestartGateKind.Type\n\n/**\n * One live restart request. `requesterId` is stable for a single requester\n * invocation (e.g. `deploy:PAN-3724:<pid>`), so a re-poll refreshes the same\n * row instead of adding another.\n */\nexport const RestartGateRequest = Schema.Struct({\n requesterId: Schema.String,\n kind: RestartGateKind,\n reason: Schema.String,\n builtSha: Schema.optional(Schema.String),\n requestedAt: Schema.String,\n})\nexport type RestartGateRequest = typeof RestartGateRequest.Type\n\n/**\n * How the last approval cycle ended, when the ending is worth telling the\n * operator about (PAN-3731). Present only inside the brief window after it\n * happened, so the banner can explain a click that restarted nothing.\n *\n * `pruned-unclaimed` — an approved epoch expired with nobody left to perform\n * the restart: every requester died before claiming, or a claimant lapsed and\n * the rest gave up. Either way nothing was restarted.\n */\nexport const RestartGateOutcome = Schema.Struct({\n type: Schema.Literals([\"pruned-unclaimed\"]),\n at: Schema.String,\n})\nexport type RestartGateOutcome = typeof RestartGateOutcome.Type\n\n/**\n * The operator-facing view of the restart gate — identical to the body of\n * `GET /api/restart-gate`, so the banner and the CLI read the same shape.\n *\n * `idle` no live requests; `pending` requests are waiting for approval;\n * `approved` the operator approved an epoch that nobody has claimed yet;\n * `claimed` one requester holds the exclusive right to perform the restart.\n */\nexport const RestartGateSnapshot = Schema.Struct({\n status: Schema.Literals([\"idle\", \"pending\", \"approved\", \"claimed\"]),\n pending: Schema.Array(RestartGateRequest),\n lastOutcome: Schema.optional(RestartGateOutcome),\n})\nexport type RestartGateSnapshot = typeof RestartGateSnapshot.Type\n\n// ─── Dashboard Snapshot ──────────────────────────────────────────────────────\n\nexport const DashboardSnapshot = Schema.Struct({\n sequence: SequenceNumber,\n agents: Schema.Array(AgentSnapshot),\n specialists: Schema.Array(Schema.Unknown),\n /** PAN-3917 FR-6: the derived pipeline state of every known issue. */\n derivedIssueStates: Schema.Array(DerivedIssueState),\n /** PAN-3917 FR-12: every live agent pane the terminal backend reports. */\n backendPanes: Schema.Array(BackendPane),\n issues: Schema.Array(Schema.Unknown), // Issues are complex — pass through unvalidated\n recentActivity: Schema.optional(Schema.Array(Schema.Unknown)),\n resources: Schema.optional(Schema.Unknown),\n memory: Schema.optional(Schema.Unknown),\n agentRuntimeById: Schema.optional(Schema.Record(Schema.String, AgentRuntimeSnapshot)),\n channelPermissionRequests: Schema.optional(Schema.Array(ChannelPermissionRequestSnapshot)),\n scanProgress: Schema.optional(Schema.NullOr(ScanProgressSnapshot)),\n enrichStats: Schema.optional(Schema.NullOr(EnrichStatsSnapshot)),\n enrichProgressBySessionId: Schema.optional(Schema.Record(Schema.String, EnrichProgressSnapshot)),\n embedProgressBySessionId: Schema.optional(Schema.Record(Schema.String, EmbedProgressSnapshot)),\n ciByProjectKey: Schema.optional(Schema.Record(Schema.String, ProjectCiSnapshot)),\n restartGate: Schema.optional(RestartGateSnapshot),\n /** PAN-4264 — GitHub API quota use, samples and pauses; derived, never stored. */\n githubQuota: Schema.optional(GitHubQuotaSnapshot),\n /** PAN-3751 — in-flight deploys keyed by project key. */\n deployByProjectKey: Schema.optional(Schema.Record(Schema.String, ProjectDeploySnapshot)),\n timestamp: Schema.String,\n})\nexport type DashboardSnapshot = typeof DashboardSnapshot.Type\n\n// ─── Resource Stats ──────────────────────────────────────────────────────────\n\nexport const ResourceStats = Schema.Struct({\n containers: Schema.Array(Schema.Struct({\n name: Schema.String,\n cpu: Schema.optional(Schema.String),\n mem: Schema.optional(Schema.String),\n status: Schema.optional(Schema.String),\n })),\n})\nexport type ResourceStats = typeof ResourceStats.Type\n\n// ─── Session Tree (PAN-821) ──────────────────────────────────────────────────\n\nexport const SessionNodePresence = Schema.Literals([\"active\", \"idle\", \"suspended\", \"ended\"])\nexport type SessionNodePresence = typeof SessionNodePresence.Type\n\nexport const SessionNodeType = Schema.Literals([\n \"planning\",\n \"work\",\n \"knowledge\",\n \"strike\",\n \"lint\",\n \"review\",\n \"reviewer\",\n \"test\",\n \"ship\",\n \"merge\",\n \"legacy\",\n])\nexport type SessionNodeType = typeof SessionNodeType.Type\n\nexport const ReviewerRoundSummary = Schema.Struct({\n round: Schema.Number,\n status: Schema.optional(Schema.String),\n reviewResult: Schema.optional(Schema.String),\n startedAt: Schema.optional(Schema.String),\n endedAt: Schema.optional(Schema.String),\n durationSec: Schema.optional(Schema.Number),\n cost: Schema.optional(Schema.Number),\n findings: Schema.optional(Schema.Number),\n summary: Schema.optional(Schema.String),\n})\nexport type ReviewerRoundSummary = typeof ReviewerRoundSummary.Type\n\nexport const ReviewerRoundMetadata = Schema.Struct({\n roundCount: Schema.Number,\n latestRound: Schema.Number,\n latestStatus: Schema.optional(Schema.String),\n latestReviewResult: Schema.optional(Schema.String),\n history: Schema.Array(ReviewerRoundSummary),\n})\nexport type ReviewerRoundMetadata = typeof ReviewerRoundMetadata.Type\n\n// One row of a percentage-distribution model origin (PAN-2053). `lo`/`hi` are the\n// half-open bucket band [lo, hi) the entry owns; `chosen` marks the selected one.\nexport const ModelOriginEntry = Schema.Struct({\n model: Schema.String,\n weight: Schema.Number,\n lo: Schema.Number,\n hi: Schema.Number,\n chosen: Schema.Boolean,\n})\nexport type ModelOriginEntry = typeof ModelOriginEntry.Type\n\n// Read-only \"which model & why\" derivation shown in the agent right-click MODEL\n// inspector (PAN-2053). Present only when the agent's role uses a percentage\n// distribution; absent for scalar/single-model roles.\nexport const ModelOrigin = Schema.Struct({\n // The exact spawn key whose bucket selected the model (`${role}:${issueId}`).\n spawnKey: Schema.String,\n // The chosen model id.\n resolved: Schema.String,\n // Deterministic bucket for this key, in [0, total).\n bucket: Schema.Number,\n // Number of buckets = sum of weights (100 when the distribution is percentages).\n total: Schema.Number,\n distribution: Schema.Array(ModelOriginEntry),\n})\nexport type ModelOrigin = typeof ModelOrigin.Type\n\nexport const SessionNode = Schema.Struct({\n type: SessionNodeType,\n role: Schema.optional(Schema.String),\n sessionId: Schema.String,\n tmuxSession: Schema.optional(Schema.String),\n model: Schema.String,\n // Harness that spawned the session (claude-code | pi | codex). Pi/codex run\n // `--mode rpc` with no TUI, so their terminal pane streams raw RPC protocol —\n // the SessionPanel uses this to show a notice instead, and to gate live\n // message streaming. Optional for backward compatibility with older payloads.\n harness: Schema.optional(Schema.String),\n startedAt: Schema.String,\n endedAt: Schema.optional(Schema.String),\n planningComplete: Schema.optional(Schema.Boolean),\n duration: Schema.NullOr(Schema.Number),\n status: AgentStatus,\n hasJsonl: Schema.optional(Schema.Boolean),\n transcript: Schema.optional(Schema.String),\n presence: SessionNodePresence,\n awaitingInput: Schema.optional(Schema.Boolean),\n awaitingInputPrompt: Schema.optional(Schema.String),\n awaitingInputReason: Schema.optional(Schema.String),\n /** Which blocking surfaces are open — names the wait in the node's indicator. */\n pendingInputKinds: Schema.optional(Schema.Array(Schema.String)),\n roundMetadata: Schema.optional(ReviewerRoundMetadata),\n deliveryMethod: Schema.optional(Schema.Literals(['auto', 'channels', 'tmux', 'supervisor'])),\n // PAN-3917: the pause and troubled gates are gone with the agent mirror, and\n // so is the mail queue they fed. A node's state is the backend pane's.\n // PAN-2053: read-only model-origin for the right-click MODEL inspector. Set\n // only when the agent's role uses a weighted model distribution.\n modelOrigin: Schema.optional(ModelOrigin),\n})\nexport type SessionNode = typeof SessionNode.Type\n\nexport const FeatureNode = Schema.Struct({\n issueId: IssueId,\n title: Schema.String,\n sessions: Schema.Array(SessionNode),\n})\nexport type FeatureNode = typeof FeatureNode.Type\n\nexport const ProjectSessionTree = Schema.Struct({\n projectKey: Schema.String,\n features: Schema.Array(FeatureNode),\n})\nexport type ProjectSessionTree = typeof ProjectSessionTree.Type\n\n// ─── Discovered Sessions (PAN-457) ───────────────────────────────────────────\n\n/** Snapshot of a discovered session for RPC responses and frontend display */\nexport const DiscoveredSessionSnapshot = Schema.Struct({\n id: Schema.Number,\n jsonlPath: Schema.String,\n harness: Schema.optional(Schema.String),\n sessionId: Schema.optional(Schema.String),\n workspacePath: Schema.optional(Schema.String),\n workspaceHash: Schema.optional(Schema.String),\n messageCount: Schema.Number,\n firstTs: Schema.optional(Schema.String),\n lastTs: Schema.optional(Schema.String),\n modelsUsed: Schema.Array(Schema.String),\n primaryModel: Schema.optional(Schema.String),\n tokenInput: Schema.Number,\n tokenOutput: Schema.Number,\n estimatedCost: Schema.Number,\n toolsUsed: Schema.Array(Schema.String),\n filesTouched: Schema.Array(Schema.String),\n tags: Schema.Array(Schema.String),\n summary: Schema.optional(Schema.String),\n summaryDetailed: Schema.optional(Schema.String),\n // Tracked conversation this session belongs to, when the session id matches a\n // conversation in the DB (joined via conversation_files).\n conversationId: Schema.optional(Schema.String),\n conversationName: Schema.optional(Schema.String),\n conversationTitle: Schema.optional(Schema.String),\n enrichmentLevel: Schema.Number,\n enrichmentModel: Schema.optional(Schema.String),\n enrichedAt: Schema.optional(Schema.String),\n enrichmentFailed: Schema.Boolean,\n overdeckManaged: Schema.Boolean,\n panIssueId: Schema.optional(Schema.String),\n panAgentId: Schema.optional(Schema.String),\n scannedAt: Schema.String,\n})\nexport type DiscoveredSessionSnapshot = typeof DiscoveredSessionSnapshot.Type\n\n// ─── Unified Sessions Feed (PAN-1917) ────────────────────────────────────────\n\nexport const SessionsFeedSource = Schema.Literals(['discovered', 'managed-archived'])\nexport type SessionsFeedSource = typeof SessionsFeedSource.Type\n\nexport const SessionsFeedRowSnapshot = Schema.Struct({\n id: Schema.Number,\n source: SessionsFeedSource,\n discoveredId: Schema.optional(Schema.Number),\n jsonlPath: Schema.optional(Schema.String),\n sessionId: Schema.optional(Schema.String),\n workspacePath: Schema.optional(Schema.String),\n messageCount: Schema.Number,\n firstTs: Schema.optional(Schema.String),\n lastTs: Schema.optional(Schema.String),\n primaryModel: Schema.optional(Schema.String),\n tokenInput: Schema.Number,\n tokenOutput: Schema.Number,\n estimatedCost: Schema.Number,\n tags: Schema.Array(Schema.String),\n summary: Schema.optional(Schema.String),\n enrichmentLevel: Schema.Number,\n enrichmentFailed: Schema.Boolean,\n overdeckManaged: Schema.Boolean,\n panIssueId: Schema.optional(Schema.String),\n archivedAt: Schema.optional(Schema.String),\n conversationId: Schema.optional(Schema.String),\n conversationName: Schema.optional(Schema.String),\n conversationTitle: Schema.optional(Schema.String),\n harness: Schema.optional(Schema.String),\n})\nexport type SessionsFeedRowSnapshot = typeof SessionsFeedRowSnapshot.Type\n\nconst SessionsFeedFacetBucketString = Schema.Struct({\n value: Schema.String,\n count: Schema.Number,\n})\n\nconst SessionsFeedFacetBucketNumber = Schema.Struct({\n value: Schema.Number,\n count: Schema.Number,\n})\n\nexport const SessionsFeedFacetsSnapshot = Schema.Struct({\n primaryModels: Schema.Array(SessionsFeedFacetBucketString),\n tags: Schema.Array(SessionsFeedFacetBucketString),\n tools: Schema.Array(SessionsFeedFacetBucketString),\n files: Schema.Array(SessionsFeedFacetBucketString),\n enrichmentLevels: Schema.Array(SessionsFeedFacetBucketNumber),\n timeBuckets: Schema.Array(Schema.Struct({\n value: Schema.Literals(['24h', '7d', '30d', 'older']),\n count: Schema.Number,\n })),\n costBuckets: Schema.Array(Schema.Struct({\n value: Schema.Literals(['<$0.10', '$0.10-1', '$1-10', '>$10']),\n count: Schema.Number,\n })),\n sources: Schema.Array(Schema.Struct({\n value: SessionsFeedSource,\n count: Schema.Number,\n })),\n})\nexport type SessionsFeedFacetsSnapshot = typeof SessionsFeedFacetsSnapshot.Type\n\n/** Filter parameters for conversation search */\nexport const ConversationFilter = Schema.Struct({\n harness: Schema.optional(Schema.String),\n workspacePath: Schema.optional(Schema.String),\n primaryModel: Schema.optional(Schema.String),\n managed: Schema.optional(Schema.Boolean),\n unmanaged: Schema.optional(Schema.Boolean),\n since: Schema.optional(Schema.String),\n before: Schema.optional(Schema.String),\n after: Schema.optional(Schema.String),\n minCost: Schema.optional(Schema.Number),\n maxCost: Schema.optional(Schema.Number),\n minMessages: Schema.optional(Schema.Number),\n tags: Schema.optional(Schema.Array(Schema.String)),\n tools: Schema.optional(Schema.Array(Schema.String)),\n files: Schema.optional(Schema.Array(Schema.String)),\n issueId: Schema.optional(Schema.String),\n enrichmentLevel: Schema.optional(Schema.Number),\n enriched: Schema.optional(Schema.Boolean),\n notEnriched: Schema.optional(Schema.Boolean),\n query: Schema.optional(Schema.String),\n semantic: Schema.optional(Schema.Boolean),\n similarTo: Schema.optional(Schema.Number),\n limit: Schema.optional(Schema.Number),\n offset: Schema.optional(Schema.Number),\n format: Schema.optional(Schema.Literals(['table', 'json', 'brief', 'ids'])),\n})\nexport type ConversationFilter = typeof ConversationFilter.Type\n\n/** Aggregate cost breakdown for conversations */\nexport const ConversationCostSummary = Schema.Struct({\n groupBy: Schema.Literals(['workspace', 'model', 'day', 'month']),\n entries: Schema.Array(Schema.Struct({\n key: Schema.String,\n totalCost: Schema.Number,\n sessionCount: Schema.Number,\n totalTokensIn: Schema.Number,\n totalTokensOut: Schema.Number,\n })),\n grandTotal: Schema.Number,\n totalTokensIn: Schema.Number,\n totalTokensOut: Schema.Number,\n})\nexport type ConversationCostSummary = typeof ConversationCostSummary.Type\n\n/** Scan result summary */\nexport const ScanResult = Schema.Struct({\n inserted: Schema.Number,\n updated: Schema.Number,\n skipped: Schema.Number,\n errors: Schema.Number,\n durationMs: Schema.Number,\n})\nexport type ScanResult = typeof ScanResult.Type\n","// Pull requests linked to conversations (PAN-3822).\n//\n// A conversation holds zero or more PR links keyed by host/repository/number.\n// Each link records why it exists (`source`) and the last known forge state\n// (`snapshot`). The server's pull-request sync sweep writes `branch` links by\n// matching a PR's head branch to the conversation's branch; explicit sources\n// (`manual`, `agent`, `created`) override them. The row and header badge render\n// the one effective link chosen by `resolveEffectivePullRequest`.\n\nimport { Schema } from \"effect\"\n\nimport { PrChecksState, PrReviewState } from \"./derived-issue-state\"\n\nexport const PullRequestLinkSource = Schema.Literals([\"manual\", \"agent\", \"created\", \"branch\"])\nexport type PullRequestLinkSource = typeof PullRequestLinkSource.Type\n\nexport const PullRequestKey = Schema.Struct({\n host: Schema.String,\n repository: Schema.String,\n number: Schema.Number,\n})\nexport type PullRequestKey = typeof PullRequestKey.Type\n\nexport const PullRequestState = Schema.Literals([\"open\", \"merged\", \"closed\"])\nexport type PullRequestState = typeof PullRequestState.Type\n\nexport const PullRequestSnapshot = Schema.Struct({\n state: PullRequestState,\n isDraft: Schema.Boolean,\n title: Schema.String,\n headBranch: Schema.NullOr(Schema.String),\n baseBranch: Schema.NullOr(Schema.String),\n reviewState: PrReviewState,\n checks: PrChecksState,\n mergeable: Schema.NullOr(Schema.Boolean),\n additions: Schema.NullOr(Schema.Number),\n deletions: Schema.NullOr(Schema.Number),\n changedFiles: Schema.NullOr(Schema.Number),\n author: Schema.NullOr(Schema.String),\n /** Forge timestamp, ISO. */\n updatedAt: Schema.NullOr(Schema.String),\n mergedAt: Schema.NullOr(Schema.String),\n closedAt: Schema.NullOr(Schema.String),\n /** When Overdeck last read the PR, ISO. */\n syncedAt: Schema.String,\n})\nexport type PullRequestSnapshot = typeof PullRequestSnapshot.Type\n\nexport const PullRequestLink = Schema.Struct({\n ...PullRequestKey.fields,\n url: Schema.String,\n source: PullRequestLinkSource,\n linkedAt: Schema.String,\n dismissedAt: Schema.NullOr(Schema.String),\n snapshot: Schema.NullOr(PullRequestSnapshot),\n})\nexport type PullRequestLink = typeof PullRequestLink.Type\n\nexport const ConversationPullRequests = Schema.Struct({\n links: Schema.Array(PullRequestLink),\n effective: Schema.NullOr(PullRequestLink),\n})\nexport type ConversationPullRequests = typeof ConversationPullRequests.Type\n\n/** One conversation linked to a PR — the reverse index (PR → conversations). */\nexport const PullRequestLinkedConversation = Schema.Struct({\n /** The /conv/<id> number. */\n id: Schema.Number,\n name: Schema.String,\n title: Schema.NullOr(Schema.String),\n source: PullRequestLinkSource,\n linkedAt: Schema.String,\n})\nexport type PullRequestLinkedConversation = typeof PullRequestLinkedConversation.Type\n\n/** One live link across all conversations, for the Pull requests list. */\nexport const PullRequestLinkListing = Schema.Struct({\n ...PullRequestLink.fields,\n conversationId: Schema.Number,\n conversationName: Schema.String,\n conversationTitle: Schema.NullOr(Schema.String),\n /** The conversation's effective project, or null when none resolves. */\n projectKey: Schema.NullOr(Schema.String),\n})\nexport type PullRequestLinkListing = typeof PullRequestLinkListing.Type\n\nfunction stateRank(link: PullRequestLink): number {\n if (link.snapshot === null) return 1\n if (link.snapshot.state === \"open\") return 0\n if (link.snapshot.state === \"merged\") return 2\n return 3\n}\n\nfunction recency(link: PullRequestLink): number {\n return Date.parse(link.snapshot?.updatedAt ?? link.linkedAt) || 0\n}\n\n/**\n * The one PR shown on a conversation: explicit links before branch links,\n * open before merged before closed, most recently updated among equals.\n * Dismissed links never count.\n */\nexport function resolveEffectivePullRequest(links: readonly PullRequestLink[]): PullRequestLink | null {\n const live = links.filter((link) => link.dismissedAt === null)\n const explicit = live.filter((link) => link.source !== \"branch\")\n const pool = explicit.length > 0 ? explicit : live\n if (pool.length === 0) return null\n return [...pool].sort((a, b) => stateRank(a) - stateRank(b) || recency(b) - recency(a))[0] ?? null\n}\n","import { Schema } from \"effect\"\nimport { IssueId, Role } from \"./types\"\n\n// Memory turns can come from a conversation, not just a spawned agent\n// (PAN-1990 D-6: a main/scratch workspace turn has no agent Role). Scoped to\n// memory identity only — AgentSnapshot/AgentState.role stay agent-only.\nexport const MemoryAgentRole = Schema.Union([Role, Schema.Literal(\"conversation\")])\nexport type MemoryAgentRole = typeof MemoryAgentRole.Type\n\nexport const MemoryIdentity = Schema.Struct({\n projectId: Schema.String,\n workspaceId: Schema.String,\n issueId: Schema.NullOr(IssueId),\n runId: Schema.String,\n sessionId: Schema.String,\n agentRole: MemoryAgentRole,\n agentHarness: Schema.String,\n})\nexport type MemoryIdentity = typeof MemoryIdentity.Type\n\nexport const MemoryTokenUsage = Schema.Struct({\n prompt: Schema.Number,\n completion: Schema.Number,\n total: Schema.Number,\n})\nexport type MemoryTokenUsage = typeof MemoryTokenUsage.Type\n\nexport const MemoryObservation = Schema.Struct({\n id: Schema.String,\n timestamp: Schema.String,\n projectId: Schema.String,\n workspaceId: Schema.String,\n issueId: Schema.NullOr(IssueId),\n runId: Schema.String,\n sessionId: Schema.String,\n agentRole: MemoryAgentRole,\n agentHarness: Schema.String,\n gitBranch: Schema.String,\n sourceTranscriptOffset: Schema.Number,\n actionStatus: Schema.NullOr(Schema.String),\n narrative: Schema.String,\n summary: Schema.String,\n files: Schema.Array(Schema.String),\n tags: Schema.Array(Schema.String),\n tokens: MemoryTokenUsage,\n model: Schema.String,\n})\nexport type MemoryObservation = typeof MemoryObservation.Type\n\nexport const MemoryStatusPhase = Schema.Literals([\n \"exploring\",\n \"planning\",\n \"building\",\n \"verifying\",\n \"cleaning\",\n \"shipping\",\n])\nexport type MemoryStatusPhase = typeof MemoryStatusPhase.Type\n\nexport const MemoryStatus = Schema.Struct({\n name: Schema.String,\n headline: Schema.String,\n summary: Schema.String,\n goal: Schema.NullOr(Schema.String),\n phase: MemoryStatusPhase,\n accomplished: Schema.Array(Schema.String),\n decided: Schema.Array(Schema.String),\n open: Schema.Array(Schema.String),\n nextSteps: Schema.Array(Schema.String),\n confidence: Schema.Number,\n workingSet: Schema.Array(Schema.String),\n tags: Schema.Array(Schema.String),\n})\nexport type MemoryStatus = typeof MemoryStatus.Type\n\nexport const PendingTurn = Schema.Struct({\n id: Schema.String,\n createdAt: Schema.String,\n identity: MemoryIdentity,\n trigger: Schema.Literals([\"stop-hook\", \"poller\", \"reconciliation\", \"manual\"]),\n transcriptPath: Schema.String,\n fromOffset: Schema.Number,\n toOffset: Schema.Number,\n lastFullLineOffset: Schema.Number,\n eventsConsumed: Schema.Number,\n compressedText: Schema.String,\n})\nexport type PendingTurn = typeof PendingTurn.Type\n\nexport const ResetMarkerScope = Schema.Literals([\"project\", \"workspace\", \"issue\", \"session\"])\nexport type ResetMarkerScope = typeof ResetMarkerScope.Type\n\nexport const ResetMarker = Schema.Struct({\n id: Schema.String,\n scope: ResetMarkerScope,\n scopeId: Schema.String,\n fromTimestamp: Schema.String,\n reason: Schema.String,\n createdAt: Schema.String,\n})\nexport type ResetMarker = typeof ResetMarker.Type\n\nexport const RagDecisionSource = Schema.Struct({\n id: Schema.String,\n docType: Schema.Literals([\"observation\", \"summary\", \"status\", \"sibling\", \"knowledge\"]),\n scope: Schema.String,\n score: Schema.Number,\n tokens: Schema.Number,\n})\nexport type RagDecisionSource = typeof RagDecisionSource.Type\n\nexport const RagDecision = Schema.Struct({\n id: Schema.String,\n timestamp: Schema.String,\n identity: MemoryIdentity,\n surface: Schema.Literals([\"spawn\", \"user-prompt\"]),\n outcome: Schema.Literals([\n \"injected\",\n \"skipped\",\n \"no-hits\",\n \"expansion-failed\",\n \"context-too-large\",\n \"budget-truncated\",\n ]),\n query: Schema.String,\n expandedTerms: Schema.Array(Schema.String),\n allocations: Schema.Struct({\n status: Schema.Number,\n observations: Schema.Number,\n summaries: Schema.Number,\n sibling: Schema.Number,\n knowledgeIndex: Schema.Number,\n }),\n sources: Schema.Array(RagDecisionSource),\n reason: Schema.NullOr(Schema.String),\n})\nexport type RagDecision = typeof RagDecision.Type\n\nexport const ExtractionProviderTarget = Schema.Struct({\n provider: Schema.String,\n model: Schema.String,\n})\nexport type ExtractionProviderTarget = typeof ExtractionProviderTarget.Type\n\nexport const ExtractionProviderConfig = Schema.Struct({\n provider: Schema.String,\n model: Schema.String,\n providerEnvVar: Schema.optional(Schema.String),\n modelEnvVar: Schema.optional(Schema.String),\n perDayCostCapUsd: Schema.Number,\n fallbackChain: Schema.Array(ExtractionProviderTarget),\n})\nexport type ExtractionProviderConfig = typeof ExtractionProviderConfig.Type\n","/**\n * Shared V2 system-health contract. Domain measurements use null for unavailable\n * evidence, unknown enum values decode to safe unavailable/unknown states, and\n * the legacy summary is a compatibility projection from the accepted V2 snapshot.\n */\nimport { Schema, SchemaGetter } from \"effect\"\n\nconst HealthStateValue = Schema.Literals([\n \"measuring\",\n \"healthy\",\n \"warning\",\n \"critical\",\n \"unavailable\",\n])\n\nexport const HealthState = Schema.String.pipe(\n Schema.decodeTo(HealthStateValue, {\n decode: SchemaGetter.transform((value) =>\n HealthStateValue.literals.includes(value as HealthState) ? value as HealthState : \"unavailable\"\n ),\n encode: SchemaGetter.transform((value) => value),\n }),\n)\nexport type HealthState = typeof HealthStateValue.Type\n\nexport const HealthReason = Schema.Struct({\n code: Schema.String,\n domain: Schema.Literals([\"host\", \"admission\", \"agent\", \"service\"]),\n severity: Schema.Literals([\"info\", \"warning\", \"critical\"]),\n message: Schema.String,\n metric: Schema.optional(Schema.String),\n observed: Schema.optional(Schema.Number),\n threshold: Schema.optional(Schema.Number),\n})\nexport type HealthReason = typeof HealthReason.Type\n\nexport const HostPlatform = Schema.String.pipe(\n Schema.decodeTo(Schema.Literals([\"linux\", \"darwin\", \"unsupported\"]), {\n decode: SchemaGetter.transform((value) =>\n value === \"linux\" || value === \"darwin\" || value === \"unsupported\" ? value : \"unsupported\"\n ),\n encode: SchemaGetter.transform((value) => value),\n }),\n)\nexport type HostPlatform = typeof HostPlatform.Type\n\n/**\n * Accepted host metrics. Null means that the platform collector could not\n * produce that signal; it must never be interpreted as a measured zero.\n */\nexport const HostHealthMetrics = Schema.Struct({\n cpuPercent: Schema.NullOr(Schema.Number),\n loadAverage1m: Schema.NullOr(Schema.Number),\n loadPerCore1m: Schema.NullOr(Schema.Number),\n totalMemoryBytes: Schema.NullOr(Schema.Number),\n usedMemoryBytes: Schema.NullOr(Schema.Number),\n availableMemoryBytes: Schema.NullOr(Schema.Number),\n memoryUsedPercent: Schema.NullOr(Schema.Number),\n memoryPressureSomeAvg10: Schema.NullOr(Schema.Number),\n memoryPressureFullAvg10: Schema.NullOr(Schema.Number),\n memoryPressureFreePercent: Schema.NullOr(Schema.Number),\n swapTotalBytes: Schema.NullOr(Schema.Number),\n swapUsedBytes: Schema.NullOr(Schema.Number),\n swapUsedPercent: Schema.NullOr(Schema.Number),\n swapActivityBytesPerMinute: Schema.NullOr(Schema.Number),\n committedMemoryBytes: Schema.NullOr(Schema.Number),\n commitLimitBytes: Schema.NullOr(Schema.Number),\n virtualCommitmentPercent: Schema.NullOr(Schema.Number),\n // Optional so pre-PAN-3063 payloads and fixtures still decode.\n inotifyWatchesUsed: Schema.optional(Schema.NullOr(Schema.Number)),\n inotifyWatchesMax: Schema.optional(Schema.NullOr(Schema.Number)),\n inotifyWatchesUsedPercent: Schema.optional(Schema.NullOr(Schema.Number)),\n})\nexport type HostHealthMetrics = typeof HostHealthMetrics.Type\n\nexport const AdmissionState = Schema.String.pipe(\n Schema.decodeTo(Schema.Literals([\"open\", \"soft\", \"blocked\", \"unavailable\"]), {\n decode: SchemaGetter.transform((value) =>\n value === \"open\" || value === \"soft\" || value === \"blocked\" || value === \"unavailable\"\n ? value\n : \"unavailable\"\n ),\n encode: SchemaGetter.transform((value) => value),\n }),\n)\nexport type AdmissionState = typeof AdmissionState.Type\n\nexport const AgentHealthStatus = Schema.String.pipe(\n Schema.decodeTo(\n Schema.Literals([\n \"healthy\",\n \"idle\",\n \"waiting\",\n \"warning\",\n \"stalled\",\n \"wedged\",\n \"dead\",\n \"unavailable\",\n ]),\n {\n decode: SchemaGetter.transform((value) =>\n value === \"healthy\" ||\n value === \"idle\" ||\n value === \"waiting\" ||\n value === \"warning\" ||\n value === \"stalled\" ||\n value === \"wedged\" ||\n value === \"dead\" ||\n value === \"unavailable\"\n ? value\n : \"unavailable\"\n ),\n encode: SchemaGetter.transform((value) => value),\n },\n ),\n)\nexport type AgentHealthStatus = typeof AgentHealthStatus.Type\n\nexport const AgentHealthKind = Schema.String.pipe(\n Schema.decodeTo(Schema.Literals([\"work\", \"planning\", \"specialist\", \"conversation\", \"other\"]), {\n decode: SchemaGetter.transform((value) =>\n value === \"work\" ||\n value === \"planning\" ||\n value === \"specialist\" ||\n value === \"conversation\" ||\n value === \"other\"\n ? value\n : \"other\"\n ),\n encode: SchemaGetter.transform((value) => value),\n }),\n)\nexport type AgentHealthKind = typeof AgentHealthKind.Type\n\nexport const SpecialistLifecycle = Schema.String.pipe(\n Schema.decodeTo(Schema.Literals([\"active\", \"warm\", \"orphaned\", \"unknown\"]), {\n decode: SchemaGetter.transform((value) =>\n value === \"active\" || value === \"warm\" || value === \"orphaned\" || value === \"unknown\"\n ? value\n : \"unknown\"\n ),\n encode: SchemaGetter.transform((value) => value),\n }),\n)\nexport type SpecialistLifecycle = typeof SpecialistLifecycle.Type\n\nexport const AgentHealthSnapshot = Schema.Struct({\n id: Schema.String,\n issueId: Schema.optional(Schema.String),\n role: Schema.optional(Schema.String),\n kind: Schema.optional(AgentHealthKind),\n status: AgentHealthStatus,\n lifecycle: Schema.optional(SpecialistLifecycle),\n /** The agent has a live pane on the selected terminal backend (Herdr or tmux). */\n hasLivePane: Schema.optional(Schema.Boolean),\n /** @deprecated Alias of `hasLivePane` kept for existing readers; true on either backend, not only tmux. */\n tmuxActive: Schema.optional(Schema.Boolean),\n memoryBytes: Schema.optional(Schema.Number),\n memoryGb: Schema.optional(Schema.Number),\n cpuPercent: Schema.optional(Schema.Number),\n currentIssue: Schema.optional(Schema.String),\n lastActivityAt: Schema.optional(Schema.String),\n consecutiveFailures: Schema.optional(Schema.Number),\n killCount: Schema.optional(Schema.Number),\n contextPercent: Schema.optional(Schema.NullOr(Schema.Number)),\n reasons: Schema.Array(HealthReason),\n})\nexport type AgentHealthSnapshot = typeof AgentHealthSnapshot.Type\n\nexport const ServiceHealthStatus = Schema.String.pipe(\n Schema.decodeTo(\n Schema.Literals([\"running\", \"not_configured\", \"degraded\", \"stopped\", \"unavailable\"]),\n {\n decode: SchemaGetter.transform((value) =>\n value === \"running\" ||\n value === \"not_configured\" ||\n value === \"degraded\" ||\n value === \"stopped\" ||\n value === \"unavailable\"\n ? value\n : \"unavailable\"\n ),\n encode: SchemaGetter.transform((value) => value),\n },\n ),\n)\nexport type ServiceHealthStatus = typeof ServiceHealthStatus.Type\n\nexport const ServiceHealthSnapshot = Schema.Struct({\n id: Schema.String,\n label: Schema.optional(Schema.String),\n required: Schema.optional(Schema.Boolean),\n status: ServiceHealthStatus,\n message: Schema.String,\n reasons: Schema.Array(HealthReason),\n})\nexport type ServiceHealthSnapshot = typeof ServiceHealthSnapshot.Type\n\nexport const SystemHealthConsumer = Schema.Struct({\n id: Schema.String,\n label: Schema.String,\n type: Schema.Literals([\"agent\", \"specialist\", \"container\"]),\n memoryBytes: Schema.Number,\n memoryGb: Schema.Number,\n cpuPercent: Schema.optional(Schema.Number),\n issueId: Schema.optional(Schema.String),\n currentIssue: Schema.optional(Schema.String),\n leaked: Schema.optional(Schema.Boolean),\n killTarget: Schema.optional(Schema.Struct({\n kind: Schema.Literals([\"agent\", \"specialist\", \"container\"]),\n agentId: Schema.optional(Schema.String),\n containerId: Schema.optional(Schema.String),\n projectKey: Schema.optional(Schema.String),\n issueId: Schema.optional(Schema.String),\n specialistType: Schema.optional(Schema.String),\n })),\n})\nexport type SystemHealthConsumer = typeof SystemHealthConsumer.Type\n\nexport const LegacyWebhookRelaySummary = Schema.Struct({\n configured: Schema.Boolean,\n running: Schema.Boolean,\n status: Schema.Literals([\"not_configured\", \"running\", \"stopped\", \"unknown\"]),\n message: Schema.String,\n})\nexport type LegacyWebhookRelaySummary = typeof LegacyWebhookRelaySummary.Type\n\n/** Compatibility fields retained for one release cycle. */\nexport const LegacySystemHealthSummary = Schema.Struct({\n cpuPercent: Schema.Number,\n loadAverage1m: Schema.Number,\n loadPerCore1m: Schema.Number,\n totalMemoryBytes: Schema.Number,\n usedMemoryBytes: Schema.Number,\n availableMemoryBytes: Schema.Number,\n memoryUsedPercent: Schema.Number,\n swapTotalBytes: Schema.Number,\n swapUsedBytes: Schema.Number,\n swapUsedPercent: Schema.Number,\n committedMemoryBytes: Schema.Number,\n commitLimitBytes: Schema.Number,\n overcommitPercent: Schema.Number,\n agentCount: Schema.Number,\n workAgentCount: Schema.Number,\n planningAgentCount: Schema.Number,\n specialistSessionCount: Schema.Number,\n leakedSpecialistCount: Schema.Number,\n containerCount: Schema.Number,\n containerMemoryBytes: Schema.Number,\n overdeckMemoryBytes: Schema.Number,\n overdeckMemoryPercent: Schema.Number,\n smeeRelay: LegacyWebhookRelaySummary,\n})\nexport type LegacySystemHealthSummary = typeof LegacySystemHealthSummary.Type\n\nexport const SystemHealthSnapshot = Schema.Struct({\n version: Schema.Literal(2),\n state: HealthState,\n updatedAt: Schema.String,\n nextPollMs: Schema.Number,\n host: Schema.Struct({\n state: HealthState,\n platform: HostPlatform,\n reasons: Schema.Array(HealthReason),\n metrics: HostHealthMetrics,\n }),\n admission: Schema.Struct({\n state: AdmissionState,\n availableMemoryBytes: Schema.NullOr(Schema.Number),\n admittedWorkAgentCount: Schema.Number,\n reasons: Schema.Array(HealthReason),\n }),\n agents: Schema.Array(AgentHealthSnapshot),\n services: Schema.Array(ServiceHealthSnapshot),\n // The producer supplies every memory-bearing consumer in descending order.\n // Presentation clients may slice this array; the compatibility projector\n // needs the exhaustive source to preserve aggregate container totals.\n topConsumers: Schema.Array(SystemHealthConsumer),\n summary: LegacySystemHealthSummary,\n})\nexport type SystemHealthSnapshot = typeof SystemHealthSnapshot.Type\n\nfunction isWorkAgent(agent: AgentHealthSnapshot): boolean {\n return agent.kind === \"work\" || agent.role === \"work\"\n}\n\nfunction isPlanningAgent(agent: AgentHealthSnapshot): boolean {\n return agent.kind === \"planning\" || agent.role === \"plan\" || agent.role === \"planning\"\n}\n\nfunction isSpecialistAgent(agent: AgentHealthSnapshot): boolean {\n return agent.kind === \"specialist\" ||\n agent.role === \"review\" ||\n agent.role?.startsWith(\"review-\") === true ||\n agent.role === \"test\" ||\n agent.role === \"ship\"\n}\n\nfunction projectWebhookRelay(services: ReadonlyArray<ServiceHealthSnapshot>): LegacyWebhookRelaySummary {\n const relay = services.find((service) => service.id === \"smee-relay\" || service.id === \"webhook-relay\")\n if (!relay) {\n return {\n configured: false,\n running: false,\n status: \"unknown\",\n message: \"Webhook relay health is unavailable.\",\n }\n }\n\n const status = relay.status === \"running\" || relay.status === \"not_configured\" || relay.status === \"stopped\"\n ? relay.status\n : \"unknown\"\n\n return {\n configured: relay.status !== \"not_configured\",\n running: relay.status === \"running\",\n status,\n message: relay.message,\n }\n}\n\n/**\n * Projects the V2 domains into the legacy summary without recollecting state.\n * Diagnostic-only swap and virtual-commitment values remain visible here but\n * do not participate in V2 health-state evaluation.\n */\nexport function projectLegacySystemHealthSummary(\n snapshot: Omit<SystemHealthSnapshot, \"summary\">,\n): LegacySystemHealthSummary {\n const metrics = snapshot.host.metrics\n const agentMemoryBytes = snapshot.agents.reduce((total, agent) => total + (agent.memoryBytes ?? 0), 0)\n const containers = snapshot.topConsumers.filter((consumer) => consumer.type === \"container\")\n const containerMemoryBytes = containers.reduce((total, consumer) => total + consumer.memoryBytes, 0)\n const overdeckMemoryBytes = agentMemoryBytes + containerMemoryBytes\n const totalMemoryBytes = metrics.totalMemoryBytes ?? 0\n\n return {\n cpuPercent: metrics.cpuPercent ?? 0,\n loadAverage1m: metrics.loadAverage1m ?? 0,\n loadPerCore1m: metrics.loadPerCore1m ?? 0,\n totalMemoryBytes,\n usedMemoryBytes: metrics.usedMemoryBytes ?? 0,\n availableMemoryBytes: metrics.availableMemoryBytes ?? 0,\n memoryUsedPercent: metrics.memoryUsedPercent ?? 0,\n swapTotalBytes: metrics.swapTotalBytes ?? 0,\n swapUsedBytes: metrics.swapUsedBytes ?? 0,\n swapUsedPercent: metrics.swapUsedPercent ?? 0,\n committedMemoryBytes: metrics.committedMemoryBytes ?? 0,\n commitLimitBytes: metrics.commitLimitBytes ?? 0,\n overcommitPercent: metrics.virtualCommitmentPercent ?? 0,\n agentCount: snapshot.agents.length,\n workAgentCount: snapshot.agents.filter(isWorkAgent).length,\n planningAgentCount: snapshot.agents.filter(isPlanningAgent).length,\n specialistSessionCount: snapshot.agents.filter(isSpecialistAgent).length,\n leakedSpecialistCount: snapshot.agents.filter((agent) =>\n isSpecialistAgent(agent) && agent.lifecycle === \"orphaned\"\n ).length,\n containerCount: containers.length,\n containerMemoryBytes,\n overdeckMemoryBytes,\n overdeckMemoryPercent: totalMemoryBytes > 0 ? Math.round((overdeckMemoryBytes / totalMemoryBytes) * 1000) / 10 : 0,\n smeeRelay: projectWebhookRelay(snapshot.services),\n }\n}\n","import { Schema } from \"effect\"\nimport {\n Activity,\n AgentChannelReply,\n AgentId,\n AgentResolution,\n AgentRuntimeSnapshot,\n AgentSnapshot,\n AgentStatus,\n ChannelPermissionRequestSnapshot,\n ClaudeChannelPermissionBehavior,\n IssueId,\n ProjectCiSuite,\n ResourceStats,\n RestartGateSnapshot,\n ProjectDeploySnapshot,\n Role,\n SequenceNumber,\n TurnEndAssessment,\n WaitingReason,\n} from \"./types\"\nimport { DerivedIssueState } from \"./derived-issue-state\"\nimport { GitHubQuotaSnapshot } from \"./github-quota\"\nimport { PullRequestLink } from \"./pull-request-links\"\nimport { BackendPane } from \"./backend-pane\"\nimport {\n MemoryObservation,\n MemoryStatus,\n RagDecision,\n ResetMarker,\n} from \"./memory\"\nimport { HealthState } from \"./system-health\"\n\n// ─── System Events ────────────────────────────────────────────────────────────\n\n/** App-level liveness frame for the /ws/rpc domain-events stream. */\nexport const SystemHeartbeatEvent = Schema.Struct({\n type: Schema.Literal(\"system.heartbeat\"),\n timestamp: Schema.String,\n payload: Schema.Struct({ ts: Schema.Number }),\n})\nexport type SystemHeartbeatEvent = typeof SystemHeartbeatEvent.Type\n\n/** The canonical local Dolt head advanced after a background remote pull. */\nexport const BeadsFreshnessChangedEvent = Schema.Struct({\n type: Schema.Literal(\"beads.freshness_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n projectKey: Schema.String,\n localHead: Schema.String,\n lastSyncedAt: Schema.String,\n }),\n})\nexport type BeadsFreshnessChangedEvent = typeof BeadsFreshnessChangedEvent.Type\n\n/**\n * One GitHub Actions check suite observed on a project's default branch\n * (PAN-3537).\n *\n * Emitted by the `check_suite` webhook handler for live updates, only after an\n * independent lookup verifies the payload SHA is still the current CI head\n * (the newest push run of the CI workflow, PAN-4618).\n * `suiteId` is the check suite id — for GitHub Actions that is one suite per\n * workflow run. The webhook payload does not carry `htmlUrl`.\n *\n * Boot and periodic repair use `project.ci_head_observed`, which replaces the\n * complete projection after pagination. Both events feed\n * `ReadModelState.ciByProjectKey`, a disposable cache rebuilt from REST on every\n * boot — there is no durable CI store.\n */\nexport const ProjectCiSuiteObservedEvent = Schema.Struct({\n type: Schema.Literal(\"project.ci_suite_observed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n projectKey: Schema.String,\n repo: Schema.String,\n branch: Schema.String,\n headSha: Schema.String,\n suiteId: Schema.String,\n status: Schema.String,\n conclusion: Schema.NullOr(Schema.String),\n htmlUrl: Schema.optional(Schema.String),\n observedAt: Schema.String,\n /** True only after the emitter verified headSha against the current CI head. */\n authoritativeHead: Schema.optional(Schema.Boolean),\n }),\n})\nexport type ProjectCiSuiteObservedEvent = typeof ProjectCiSuiteObservedEvent.Type\n\n/**\n * Complete GitHub Actions projection for the verified current CI head (the\n * newest push run of the CI workflow, PAN-4618). The REST seed/repair emits\n * one event after paginating every run and verifying the CI head a second\n * time. An empty suites record explicitly clears stale CI when the current\n * commit has no Actions runs.\n */\nexport const ProjectCiHeadObservedEvent = Schema.Struct({\n type: Schema.Literal(\"project.ci_head_observed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n projectKey: Schema.String,\n repo: Schema.String,\n branch: Schema.String,\n headSha: Schema.String,\n suites: Schema.Record(Schema.String, ProjectCiSuite),\n observedAt: Schema.String,\n }),\n})\nexport type ProjectCiHeadObservedEvent = typeof ProjectCiHeadObservedEvent.Type\n\n/**\n * The restart gate changed (PAN-3729).\n *\n * The payload is the COMPLETE gate projection, not a delta, so the reducer is a\n * plain replace and no ordering logic is needed. Emitted by the gate writer\n * (`src/dashboard/server/services/restart-gate.ts`) on every mutation and on\n * every sweep tick that drops an expired request, so the approval banner clears\n * itself when a requester dies without polling again.\n *\n * The gate is runtime-plane state (like `~/.overdeck/dashboard-restarting.json`),\n * so this event is emitted in-memory only — it is never persisted to the event\n * log and never replayed at boot.\n */\nexport const RestartGateChangedEvent = Schema.Struct({\n type: Schema.Literal(\"restart_gate.changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: RestartGateSnapshot,\n})\nexport type RestartGateChangedEvent = typeof RestartGateChangedEvent.Type\n\n/**\n * The GitHub API quota view changed (PAN-4264).\n *\n * The payload is the complete snapshot, so the reducer is a plain replace.\n * The server derives it from the quota ledger and pause file under\n * `~/.overdeck/github-quota/` and emits it in-memory only, like\n * `restart_gate.changed`: it is never persisted and never replayed at boot.\n */\nexport const GitHubQuotaChangedEvent = Schema.Struct({\n type: Schema.Literal(\"github_quota.changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: GitHubQuotaSnapshot,\n})\nexport type GitHubQuotaChangedEvent = typeof GitHubQuotaChangedEvent.Type\n\n/**\n * The set of in-flight project deploys changed (PAN-3751).\n *\n * The payload is the COMPLETE projection keyed by project key, so the reducer\n * is a plain replace. The server derives it from runtime files (restart lock,\n * restart gate, restart-status journal) and emits it in-memory only, like\n * `restart_gate.changed`: it is never persisted and never replayed at boot.\n */\nexport const ProjectDeployChangedEvent = Schema.Struct({\n type: Schema.Literal(\"project.deploy_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n deploys: Schema.Record(Schema.String, ProjectDeploySnapshot),\n }),\n})\nexport type ProjectDeployChangedEvent = typeof ProjectDeployChangedEvent.Type\n\n// ─── Agent Events ─────────────────────────────────────────────────────────────\n\n/** Replaces socket.io `agents:changed` (event: 'started') */\nexport const AgentStartedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ agentId: AgentId, issueId: IssueId, workspaceId: Schema.optional(Schema.String), agent: AgentSnapshot }),\n})\nexport type AgentStartedEvent = typeof AgentStartedEvent.Type\n\n/** Replaces socket.io `agents:changed` (event: 'stopped') */\nexport const AgentStoppedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.stopped\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ agentId: AgentId, issueId: IssueId, workspaceId: Schema.optional(Schema.String), sessionId: Schema.optional(Schema.String) }),\n})\nexport type AgentStoppedEvent = typeof AgentStoppedEvent.Type\n\nexport const AgentHeartbeatDeadEvent = Schema.Struct({\n type: Schema.Literal(\"agent.heartbeat_dead\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ agentId: AgentId, issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String), sessionId: Schema.optional(Schema.String) }),\n})\nexport type AgentHeartbeatDeadEvent = typeof AgentHeartbeatDeadEvent.Type\n\n/** Role lifecycle — work agent completed implementation and is ready for review. */\nexport const WorkCompletedEvent = Schema.Struct({\n type: Schema.Literal(\"work.completed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), agentId: Schema.optional(AgentId) }),\n})\nexport type WorkCompletedEvent = typeof WorkCompletedEvent.Type\n\n/** Role lifecycle — generic agent completion signal, normalized by Cloister by role. */\nexport const AgentCompletedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.completed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), agentId: Schema.optional(AgentId), role: Schema.optional(Role) }),\n})\nexport type AgentCompletedEvent = typeof AgentCompletedEvent.Type\n\n/** Role lifecycle — review approved the branch and testing should start. */\nexport const ReviewApprovedEvent = Schema.Struct({\n type: Schema.Literal(\"review.approved\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String) }),\n})\nexport type ReviewApprovedEvent = typeof ReviewApprovedEvent.Type\n\n/** Role lifecycle — tests passed and shipping should prepare the branch. */\nexport const TestPassedEvent = Schema.Struct({\n type: Schema.Literal(\"test.passed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String) }),\n})\nexport type TestPassedEvent = typeof TestPassedEvent.Type\n\n/** Replaces socket.io `godview:status-change` */\nexport const AgentStatusChangedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.status_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n status: AgentStatus,\n previousStatus: Schema.optional(AgentStatus),\n /** The agent has a live pane on its terminal backend (Herdr or tmux). */\n hasLivePane: Schema.optional(Schema.Boolean),\n /** @deprecated Alias of `hasLivePane`, kept for events written before it existed (#4105). */\n hasLiveTmuxSession: Schema.optional(Schema.Boolean),\n stoppedByUser: Schema.optional(Schema.Boolean),\n stoppedByPause: Schema.optional(Schema.Boolean),\n paused: Schema.optional(Schema.Boolean),\n pausedReason: Schema.optional(Schema.NullOr(Schema.String)),\n pausedAt: Schema.optional(Schema.NullOr(Schema.String)),\n troubled: Schema.optional(Schema.Boolean),\n troubledAt: Schema.optional(Schema.NullOr(Schema.String)),\n consecutiveFailures: Schema.optional(Schema.Number),\n firstFailureInRunAt: Schema.optional(Schema.NullOr(Schema.String)),\n lastFailureAt: Schema.optional(Schema.NullOr(Schema.String)),\n lastFailureReason: Schema.optional(Schema.NullOr(Schema.String)),\n lastFailureNextRetryAt: Schema.optional(Schema.NullOr(Schema.String)),\n kickoffDelivered: Schema.optional(Schema.Boolean),\n hostOverride: Schema.optional(Schema.Boolean),\n role: Schema.optional(Role),\n model: Schema.optional(Schema.String),\n workspace: Schema.optional(Schema.String),\n sessionId: Schema.optional(Schema.String),\n lastActivity: Schema.optional(Schema.String),\n lastResumeAt: Schema.optional(Schema.String),\n stoppedAt: Schema.optional(Schema.String),\n branch: Schema.optional(Schema.String),\n costSoFar: Schema.optional(Schema.Number),\n phase: Schema.optional(Schema.String),\n workType: Schema.optional(Schema.String),\n roleRunHead: Schema.optional(Schema.String),\n flywheelRunId: Schema.optional(Schema.String),\n reviewSubRole: Schema.optional(Schema.String),\n reviewRunId: Schema.optional(Schema.String),\n reviewOutputPath: Schema.optional(Schema.String),\n reviewSynthesisAgentId: Schema.optional(Schema.String),\n reviewDeadlineAt: Schema.optional(Schema.String),\n reviewMonitorSignaled: Schema.optional(Schema.String),\n reviewRetryAttempt: Schema.optional(Schema.Number),\n inspectSubRole: Schema.optional(Schema.String),\n deliveryMethod: Schema.optional(Schema.String),\n supervisorEnabled: Schema.optional(Schema.Boolean),\n channelsEnabled: Schema.optional(Schema.Boolean),\n }),\n})\nexport type AgentStatusChangedEvent = typeof AgentStatusChangedEvent.Type\n\n/** Replaces socket.io `godview:agent-output` */\nexport const AgentOutputReceivedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.output_received\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ agentId: AgentId, lines: Schema.Array(Schema.String) }),\n})\nexport type AgentOutputReceivedEvent = typeof AgentOutputReceivedEvent.Type\n\n/** New — agent enrichment fields updated (PAN-440) */\nexport const AgentEnrichmentChangedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.enrichment_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n role: Schema.optional(Role),\n // Optional because this event type predates these fields (PAN-440). The event\n // store is append-only, so older persisted events lack them — a required schema\n // makes those events fail replay decode (\"Missing key\").\n hasPendingQuestion: Schema.optional(Schema.Boolean),\n pendingQuestionCount: Schema.optional(Schema.Number),\n pendingQuestionPrompt: Schema.optional(Schema.String),\n pendingQuestionReason: Schema.optional(Schema.String),\n // PAN-1520 — unified pending-input surfaces\n pendingInputCount: Schema.optional(Schema.Number),\n pendingInputKinds: Schema.optional(Schema.Array(Schema.String)),\n pendingAskUserQuestion: Schema.optional(Schema.Struct({\n toolUseId: Schema.String,\n askedAt: Schema.String,\n questions: Schema.Array(Schema.Struct({\n question: Schema.String,\n header: Schema.optional(Schema.String),\n multiSelect: Schema.optional(Schema.Boolean),\n options: Schema.Array(Schema.Struct({\n label: Schema.String,\n description: Schema.optional(Schema.String),\n })),\n })),\n })),\n // PAN-1520 (FR-1) — pending ExitPlanMode plan payload for the approval modal.\n pendingProposedPlan: Schema.optional(Schema.Struct({\n toolUseId: Schema.String,\n askedAt: Schema.String,\n plan: Schema.String,\n })),\n resolution: Schema.optional(AgentResolution),\n resolutionCount: Schema.optional(Schema.Number),\n turnEndAssessment: Schema.optional(TurnEndAssessment),\n }),\n})\nexport type AgentEnrichmentChangedEvent = typeof AgentEnrichmentChangedEvent.Type\n\n/** New — agent created in database */\nexport const AgentCreatedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.created\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ agentId: AgentId, issueId: IssueId, workspaceId: Schema.optional(Schema.String), agent: AgentSnapshot }),\n})\nexport type AgentCreatedEvent = typeof AgentCreatedEvent.Type\n\n// ─── Agent Runtime Events (PAN-800) ───────────────────────────────────────────\n// Canonical per-tool-call runtime signals. Fold into ReadModelState.agentRuntimeById\n// via the shared reducer. Server AgentStateService ref is derived from the same fold.\n\nexport const AgentActivityChangedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.activity_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n activity: Activity,\n currentTool: Schema.optional(Schema.String),\n toolDescription: Schema.optional(Schema.String),\n hookName: Schema.optional(Schema.String),\n }),\n})\nexport type AgentActivityChangedEvent = typeof AgentActivityChangedEvent.Type\n\n/** A registered harness hook fired without implying an agent activity transition. */\nexport const AgentHookFiredEvent = Schema.Struct({\n type: Schema.Literal(\"agent.hook_fired\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n hookName: Schema.String,\n tool: Schema.optional(Schema.String),\n }),\n})\nexport type AgentHookFiredEvent = typeof AgentHookFiredEvent.Type\n\nexport const AgentThinkingStartedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.thinking_started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n lastToolAt: Schema.String,\n }),\n})\nexport type AgentThinkingStartedEvent = typeof AgentThinkingStartedEvent.Type\n\nexport const AgentThinkingStoppedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.thinking_stopped\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n resolvedBy: Schema.Literals([\"tool\", \"waiting\", \"idle\", \"stopped\"]),\n }),\n})\nexport type AgentThinkingStoppedEvent = typeof AgentThinkingStoppedEvent.Type\n\nexport const AgentWaitingStartedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.waiting_started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n reason: WaitingReason,\n message: Schema.optional(Schema.String),\n }),\n})\nexport type AgentWaitingStartedEvent = typeof AgentWaitingStartedEvent.Type\n\nexport const AgentWaitingClearedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.waiting_cleared\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n clearedBy: Schema.Literals([\"user_response\", \"timeout\", \"stopped\", \"tool_resumed\"]),\n }),\n})\nexport type AgentWaitingClearedEvent = typeof AgentWaitingClearedEvent.Type\n\nexport const AgentPermissionRequestedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.permission_requested\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: ChannelPermissionRequestSnapshot,\n})\nexport type AgentPermissionRequestedEvent = typeof AgentPermissionRequestedEvent.Type\n\nexport const AgentPermissionResolvedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.permission_resolved\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n requestId: Schema.String,\n agentId: AgentId,\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n behavior: ClaudeChannelPermissionBehavior,\n }),\n})\nexport type AgentPermissionResolvedEvent = typeof AgentPermissionResolvedEvent.Type\n\nexport const AgentMessageReceivedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.message_received\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n direction: Schema.Literals([\"to_agent\", \"from_agent\"]),\n source: Schema.Literals([\"user\", \"cloister\", \"specialist\", \"automated\"]),\n }),\n})\nexport type AgentMessageReceivedEvent = typeof AgentMessageReceivedEvent.Type\n\nexport const AgentChannelReplyEvent = Schema.Struct({\n type: Schema.Literal(\"agent.channel_reply\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n reply: AgentChannelReply,\n }),\n})\nexport type AgentChannelReplyEvent = typeof AgentChannelReplyEvent.Type\n\nexport const AgentModelSetEvent = Schema.Struct({\n type: Schema.Literal(\"agent.model_set\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n model: Schema.String,\n claudeSessionId: Schema.optional(Schema.NullOr(Schema.String)),\n sessionModel: Schema.optional(Schema.String),\n sessionHarness: Schema.optional(Schema.String),\n }),\n})\nexport type AgentModelSetEvent = typeof AgentModelSetEvent.Type\n\nexport const AgentCurrentIssueSetEvent = Schema.Struct({\n type: Schema.Literal(\"agent.current_issue_set\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n currentIssue: Schema.optional(IssueId),\n }),\n})\nexport type AgentCurrentIssueSetEvent = typeof AgentCurrentIssueSetEvent.Type\n\nexport const AgentContextSaturationChangedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.context_saturation_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n contextSaturatedAt: Schema.optional(Schema.String),\n }),\n})\nexport type AgentContextSaturationChangedEvent = typeof AgentContextSaturationChangedEvent.Type\n\nexport const AgentResolutionChangedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.resolution_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n resolution: AgentResolution,\n resolutionCount: Schema.Number,\n }),\n})\nexport type AgentResolutionChangedEvent = typeof AgentResolutionChangedEvent.Type\n\n/**\n * Bootstrap-only event emitted by AgentStateService when it seeds a runtime\n * snapshot during bootstrap (reconstruction from sources, PAN-1920). Not\n * emitted by hooks.\n */\nexport const AgentStateRestoredEvent = Schema.Struct({\n type: Schema.Literal(\"agent.state_restored\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n snapshot: AgentRuntimeSnapshot,\n }),\n})\nexport type AgentStateRestoredEvent = typeof AgentStateRestoredEvent.Type\n\n/** Emitted when a turn diff checkpoint is captured and diff computed */\nexport const AgentTurnDiffCompletedEvent = Schema.Struct({\n type: Schema.Literal(\"agent.turn_diff_completed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n turnId: Schema.String,\n completedAt: Schema.String,\n files: Schema.Array(Schema.Struct({\n path: Schema.String,\n kind: Schema.optional(Schema.String),\n additions: Schema.optional(Schema.Number),\n deletions: Schema.optional(Schema.Number),\n })),\n checkpointRef: Schema.optional(Schema.String),\n assistantMessageId: Schema.optional(Schema.String),\n checkpointTurnCount: Schema.optional(Schema.Number),\n }),\n})\nexport type AgentTurnDiffCompletedEvent = typeof AgentTurnDiffCompletedEvent.Type\n\n// ─── Planning Events ──────────────────────────────────────────────────────────\n\n/** Replaces socket.io `planning:started` */\nexport const PlanningStartedEvent = Schema.Struct({\n type: Schema.Literal(\"planning.started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), sessionName: Schema.String, harness: Schema.optional(Schema.String) }),\n})\nexport type PlanningStartedEvent = typeof PlanningStartedEvent.Type\n\n/** Replaces socket.io `planning:failed` */\nexport const PlanningFailedEvent = Schema.Struct({\n type: Schema.Literal(\"planning.failed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), error: Schema.String }),\n})\nexport type PlanningFailedEvent = typeof PlanningFailedEvent.Type\n\n/** Replaces socket.io `planning:sync` */\nexport const PlanningSyncEvent = Schema.Struct({\n type: Schema.Literal(\"planning.sync\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n status: Schema.String,\n progress: Schema.optional(Schema.Number),\n message: Schema.optional(Schema.String),\n }),\n})\nexport type PlanningSyncEvent = typeof PlanningSyncEvent.Type\n\n// ─── Plan Item Events ─────────────────────────────────────────────────────────\n\n/** Replaces socket.io `plan:item-status-changed` */\nexport const PlanItemStatusChangedEvent = Schema.Struct({\n type: Schema.Literal(\"plan.item_status_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), itemId: Schema.String, status: Schema.String }),\n})\nexport type PlanItemStatusChangedEvent = typeof PlanItemStatusChangedEvent.Type\n\n/** Replaces socket.io `plan:subitem-status-changed` */\nexport const PlanSubitemStatusChangedEvent = Schema.Struct({\n type: Schema.Literal(\"plan.subitem_status_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n itemId: Schema.String,\n subItemId: Schema.String,\n status: Schema.String,\n }),\n})\nexport type PlanSubitemStatusChangedEvent = typeof PlanSubitemStatusChangedEvent.Type\n\n/** Replaces socket.io `plan:items-unblocked` */\nexport const PlanItemsUnblockedEvent = Schema.Struct({\n type: Schema.Literal(\"plan.items_unblocked\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), items: Schema.Array(Schema.String) }),\n})\nexport type PlanItemsUnblockedEvent = typeof PlanItemsUnblockedEvent.Type\n\n// ─── Pipeline / Merge Events ──────────────────────────────────────────────────\n\n/**\n * PAN-3917 FR-6 — an issue's derived pipeline state changed.\n *\n * Emitted with `emitOnly`: derived state is recomputed from the tracker, the\n * forge and the terminal backend on every boot, so persisting it would be\n * storing a status Overdeck can derive.\n */\nexport const IssueStateChangedEvent = Schema.Struct({\n type: Schema.Literal(\"issue_state.changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueState: DerivedIssueState }),\n})\nexport type IssueStateChangedEvent = typeof IssueStateChangedEvent.Type\n\n/** PAN-3917 FR-12 — a live agent pane appeared or changed. `emitOnly`. */\nexport const BackendPaneChangedEvent = Schema.Struct({\n type: Schema.Literal(\"backend_pane.changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ pane: BackendPane }),\n})\nexport type BackendPaneChangedEvent = typeof BackendPaneChangedEvent.Type\n\n/** PAN-3917 FR-12 — a pane left the backend inventory. `emitOnly`. */\nexport const BackendPaneRemovedEvent = Schema.Struct({\n type: Schema.Literal(\"backend_pane.removed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ paneId: Schema.String }),\n})\nexport type BackendPaneRemovedEvent = typeof BackendPaneRemovedEvent.Type\n\n/** Replaces socket.io `merge:ready` */\nexport const MergeReadyEvent = Schema.Struct({\n type: Schema.Literal(\"merge.ready\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String) }),\n})\nexport type MergeReadyEvent = typeof MergeReadyEvent.Type\n\n/** New — review specialist dispatched */\nexport const PipelineReviewStartedEvent = Schema.Struct({\n type: Schema.Literal(\"pipeline.review-started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String) }),\n})\nexport type PipelineReviewStartedEvent = typeof PipelineReviewStartedEvent.Type\n\n/** New — review specialist finished (passed or failed) */\nexport const PipelineReviewCompletedEvent = Schema.Struct({\n type: Schema.Literal(\"pipeline.review-completed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), passed: Schema.Boolean }),\n})\nexport type PipelineReviewCompletedEvent = typeof PipelineReviewCompletedEvent.Type\n\n/** New — test specialist dispatched */\nexport const PipelineTestStartedEvent = Schema.Struct({\n type: Schema.Literal(\"pipeline.test-started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String) }),\n})\nexport type PipelineTestStartedEvent = typeof PipelineTestStartedEvent.Type\n\n/** New — test specialist finished (passed or failed) */\nexport const PipelineTestCompletedEvent = Schema.Struct({\n type: Schema.Literal(\"pipeline.test-completed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), passed: Schema.Boolean }),\n})\nexport type PipelineTestCompletedEvent = typeof PipelineTestCompletedEvent.Type\n\n/** New — verification gate dispatched (review-pipeline verify step) */\nexport const PipelineVerificationStartedEvent = Schema.Struct({\n type: Schema.Literal(\"pipeline.verification-started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String) }),\n})\nexport type PipelineVerificationStartedEvent = typeof PipelineVerificationStartedEvent.Type\n\n/** New — verification gate failed (carries failedCheck for gate failures, message for infra errors) */\nexport const PipelineVerificationFailedEvent = Schema.Struct({\n type: Schema.Literal(\"pipeline.verification-failed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n failedCheck: Schema.optional(Schema.String),\n message: Schema.optional(Schema.String),\n }),\n})\nexport type PipelineVerificationFailedEvent = typeof PipelineVerificationFailedEvent.Type\n\n/** New — issue lifecycle transition (single source: IssueLifecycle.transitionTo).\n * `state` stays an open string so new server-side lifecycle states can never\n * poison the domain-event stream (the failure mode behind this event's addition). */\nexport const IssueTransitionedEvent = Schema.Struct({\n type: Schema.Literal(\"issue.transitioned\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), state: Schema.String }),\n})\nexport type IssueTransitionedEvent = typeof IssueTransitionedEvent.Type\n\nexport const OperatorInterventionEvent = Schema.Struct({\n type: Schema.Literal(\"operator.intervention\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n kind: Schema.Literals([\"tell\", \"pause\", \"restart\", \"manual_edit\", \"deep_wipe\", \"unpause\", \"untroubled\"]),\n source: Schema.String,\n }),\n})\nexport type OperatorInterventionEvent = typeof OperatorInterventionEvent.Type\n\nexport const LinearMcpAuthRequiredEvent = Schema.Struct({\n type: Schema.Literal(\"linear_mcp_auth.required\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: Schema.String,\n issueId: Schema.NullOr(Schema.String),\n authUrl: Schema.NullOr(Schema.String),\n expiresAt: Schema.NullOr(Schema.String),\n }),\n})\nexport type LinearMcpAuthRequiredEvent = typeof LinearMcpAuthRequiredEvent.Type\n\nexport const LinearMcpAuthHealthyEvent = Schema.Struct({\n type: Schema.Literal(\"linear_mcp_auth.healthy\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: Schema.String,\n issueId: Schema.NullOr(Schema.String),\n source: Schema.Literals([\"hook\", \"operator\"]),\n }),\n})\nexport type LinearMcpAuthHealthyEvent = typeof LinearMcpAuthHealthyEvent.Type\n\nexport const LinearMcpAuthNotifiedEvent = Schema.Struct({\n type: Schema.Literal(\"linear_mcp_auth.notified\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: Schema.String,\n issueId: Schema.NullOr(Schema.String),\n // 'delivering' is the durable pre-delivery claim (PAN-2997 review cycle\n // 3): it makes the wake crash-idempotent — a crash after the claim never\n // replays the delivery at boot recovery. lifecycleId correlates this\n // record to the lifecycle whose wake pass produced it; absent only in\n // events written before PAN-2997 review cycle 2.\n outcome: Schema.Literals([\"delivering\", \"delivered\", \"queued\", \"failed\"]),\n lifecycleId: Schema.optional(Schema.String),\n }),\n})\nexport type LinearMcpAuthNotifiedEvent = typeof LinearMcpAuthNotifiedEvent.Type\n\nexport const LinearMcpAuthCallbackRelayedEvent = Schema.Struct({\n type: Schema.Literal(\"linear_mcp_auth.callback_relayed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: Schema.String,\n issueId: Schema.NullOr(Schema.String),\n }),\n})\nexport type LinearMcpAuthCallbackRelayedEvent = typeof LinearMcpAuthCallbackRelayedEvent.Type\n\nexport const SubstrateBugFiledEvent = Schema.Struct({\n type: Schema.Literal(\"substrate.bug_filed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n runId: Schema.optional(Schema.String),\n filedBy: Schema.Literals([\"agent\", \"operator\"]),\n discoveredIn: Schema.optional(IssueId),\n severity: Schema.Literals([\"P0\", \"P1\", \"P2\"]),\n }),\n})\nexport type SubstrateBugFiledEvent = typeof SubstrateBugFiledEvent.Type\n\n/**\n * PAN-915 — reviewer session received a new prompt (spawn or resume of a\n * canonical PAN-830 session). Drives event-driven `reviewSubStatuses[role] =\n * 'running'` and tracking of `reviewSessionNames` without polling tmux.\n */\nexport const ReviewReviewerStartedEvent = Schema.Struct({\n type: Schema.Literal(\"review.reviewer_started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n role: Schema.String,\n sessionName: Schema.String,\n }),\n})\nexport type ReviewReviewerStartedEvent = typeof ReviewReviewerStartedEvent.Type\n\n/**\n * PAN-915 — reviewer wrote its output file (round complete for that role).\n * Updates `reviewSubStatuses[role] = 'done'` event-driven.\n */\nexport const ReviewReviewerCompletedEvent = Schema.Struct({\n type: Schema.Literal(\"review.reviewer_completed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n role: Schema.String,\n }),\n})\nexport type ReviewReviewerCompletedEvent = typeof ReviewReviewerCompletedEvent.Type\n\n/**\n * Review specialist timeout telemetry. Emitted once per timed-out reviewer wait\n * attempt so operators can distinguish transient auto-retries from terminal\n * review failures.\n */\nexport const ReviewSpecialistTimedOutEvent = Schema.Struct({\n type: Schema.Literal(\"review.specialist.timed_out\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n role: Schema.String,\n sessionName: Schema.String,\n attempt: Schema.Number,\n maxRetries: Schema.Number,\n willRetry: Schema.Boolean,\n }),\n})\nexport type ReviewSpecialistTimedOutEvent = typeof ReviewSpecialistTimedOutEvent.Type\n\n/**\n * PAN-915 — review coordinator session spawned. Surfaces in the dashboard so\n * the kanban card can show \"review in progress\" the instant the coordinator\n * starts, not after the first reviewer finishes.\n */\nexport const ReviewCoordinatorStartedEvent = Schema.Struct({\n type: Schema.Literal(\"review.coordinator_started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n sessionName: Schema.String,\n }),\n})\nexport type ReviewCoordinatorStartedEvent = typeof ReviewCoordinatorStartedEvent.Type\n\n/** Review coordinator died before writing a terminal exit marker. */\nexport const ReviewCoordinatorDiedEvent = Schema.Struct({\n type: Schema.Literal(\"review.coordinator.died\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n sessionName: Schema.String,\n reason: Schema.String,\n }),\n})\nexport type ReviewCoordinatorDiedEvent = typeof ReviewCoordinatorDiedEvent.Type\n\n/** A terminal review verdict was rejected due to stale evidence. */\nexport const ReviewVerdictRejectedEvent = Schema.Struct({\n type: Schema.Literal(\"review.verdict_rejected\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId,\n workspaceId: Schema.optional(Schema.String),\n writer: Schema.String,\n verdict: Schema.String,\n evidenceHead: Schema.String,\n rowHead: Schema.String,\n reason: Schema.String,\n }),\n})\nexport type ReviewVerdictRejectedEvent = typeof ReviewVerdictRejectedEvent.Type\n\n/** A terminal review verdict was landed and dispatched with a fresh evidence head. */\nexport const ReviewVerdictDispatchedEvent = Schema.Struct({\n type: Schema.Literal(\"review.verdict_dispatched\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId,\n workspaceId: Schema.optional(Schema.String),\n writer: Schema.String,\n verdict: Schema.String,\n evidenceHead: Schema.String,\n rowHead: Schema.String,\n classification: Schema.String,\n testGateReset: Schema.Boolean,\n }),\n})\nexport type ReviewVerdictDispatchedEvent = typeof ReviewVerdictDispatchedEvent.Type\n\n/**\n * A recovery path found a fresh verdict artifact but declined to restore it,\n * because the artifact's head evidence disagrees with the row's anchor. The\n * verdict is NOT lost silently — it is reported here so the operator can see a\n * finished review that recovery refused to write (PAN-3511).\n */\nexport const ReviewVerdictRestoreBlockedEvent = Schema.Struct({\n type: Schema.Literal(\"review.verdict_restore_blocked\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId,\n /** Recovery path that attempted the restore (orphan-reset, sweeper, …). */\n caller: Schema.String,\n verdict: Schema.String,\n artifactHead: Schema.String,\n rowHead: Schema.String,\n reason: Schema.String,\n }),\n})\nexport type ReviewVerdictRestoreBlockedEvent = typeof ReviewVerdictRestoreBlockedEvent.Type\n\n// ─── Specialist Events ────────────────────────────────────────────────────────\n\nconst SpecialistLifecycleState = Schema.Literals([\"active\", \"sleeping\", \"uninitialized\"])\n\n/** New — role-backed specialist became active */\nexport const SpecialistStartedEvent = Schema.Struct({\n type: Schema.Literal(\"specialist.started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n name: Role,\n state: SpecialistLifecycleState,\n isRunning: Schema.Boolean,\n currentIssue: Schema.optional(Schema.String),\n lastWake: Schema.optional(Schema.String),\n }),\n})\nexport type SpecialistStartedEvent = typeof SpecialistStartedEvent.Type\n\n/** New — role-backed specialist completed work */\nexport const SpecialistCompletedEvent = Schema.Struct({\n type: Schema.Literal(\"specialist.completed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ name: Role, issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String) }),\n})\nexport type SpecialistCompletedEvent = typeof SpecialistCompletedEvent.Type\n\n/** New — role-backed specialist failed */\nexport const SpecialistFailedEvent = Schema.Struct({\n type: Schema.Literal(\"specialist.failed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n name: Role,\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n error: Schema.String,\n }),\n})\nexport type SpecialistFailedEvent = typeof SpecialistFailedEvent.Type\n\n// ─── Resource Events ──────────────────────────────────────────────────────────\n\n/** Replaces socket.io `resources:updated` */\nexport const ResourcesUpdatedEvent = Schema.Struct({\n type: Schema.Literal(\"resources.updated\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ resources: ResourceStats }),\n})\nexport type ResourcesUpdatedEvent = typeof ResourcesUpdatedEvent.Type\n\nexport const SystemHealthSeverityChangedEvent = Schema.Struct({\n type: Schema.Literal(\"system.health_severity_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n previousSeverity: Schema.String,\n severity: Schema.String,\n reasons: Schema.Array(Schema.String),\n leakedSpecialistCount: Schema.Number,\n version: Schema.optional(Schema.Literal(2)),\n transitionVersion: Schema.optional(Schema.Number),\n previousState: Schema.optional(HealthState),\n state: Schema.optional(HealthState),\n reasonCodes: Schema.optional(Schema.Array(Schema.String)),\n acceptedAt: Schema.optional(Schema.String),\n }),\n})\nexport type SystemHealthSeverityChangedEvent = typeof SystemHealthSeverityChangedEvent.Type\n\n// ─── Issue Events ─────────────────────────────────────────────────────────────\n\n/** Replaces socket.io `issues:snapshot` */\nexport const IssuesSnapshotEvent = Schema.Struct({\n type: Schema.Literal(\"issues.snapshot\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issues: Schema.Array(Schema.Unknown) }),\n})\nexport type IssuesSnapshotEvent = typeof IssuesSnapshotEvent.Type\n\n/** Complete changed rows since the initial snapshot; preserves tracker ordering. */\nexport const IssuesDeltaEvent = Schema.Struct({\n type: Schema.Literal(\"issues.delta\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n length: Schema.Number,\n changes: Schema.Array(Schema.Struct({ index: Schema.Number, issue: Schema.Unknown })),\n }),\n})\nexport type IssuesDeltaEvent = typeof IssuesDeltaEvent.Type\n\n/** Replaces socket.io `issues:updated` */\nexport const IssuesUpdatedEvent = Schema.Struct({\n type: Schema.Literal(\"issues.updated\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String) }),\n})\nexport type IssuesUpdatedEvent = typeof IssuesUpdatedEvent.Type\n\n/** Patch a single issue's status in the read model without a full snapshot refresh. */\nexport const IssueStatusChangedEvent = Schema.Struct({\n type: Schema.Literal(\"issue.statusChanged\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n status: Schema.String,\n canonicalStatus: Schema.String,\n labels: Schema.optional(Schema.Array(Schema.String)),\n }),\n})\nexport type IssueStatusChangedEvent = typeof IssueStatusChangedEvent.Type\n\n// ─── Activity Events ──────────────────────────────────────────────────────────\n\n/** Replaces socket.io `godview:activity` */\nexport const ActivityUpdatedEvent = Schema.Struct({\n type: Schema.Literal(\"activity.updated\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ events: Schema.Array(Schema.Unknown) }),\n})\nexport type ActivityUpdatedEvent = typeof ActivityUpdatedEvent.Type\n\n/** Individual activity log entry — emitted by merge-agent, cloister, specialists (PAN-520) */\nexport const ActivityEntryEvent = Schema.Struct({\n type: Schema.Literal(\"activity.entry\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n id: Schema.String,\n source: Schema.String,\n level: Schema.String,\n status: Schema.optional(Schema.Literals([\"accepted\", \"running\", \"completed\", \"failed\"])),\n command: Schema.optional(Schema.String),\n message: Schema.String,\n details: Schema.optional(Schema.String),\n output: Schema.optional(Schema.String),\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n /** Dashboard route the feed navigates to on click (e.g. /conv/<name>, /flywheel). */\n link: Schema.optional(Schema.String),\n /** PAN-1862 (FR-12): fire a desktop notification for this entry (operator-facing warnings). */\n desktop: Schema.optional(Schema.Boolean),\n }),\n})\nexport type ActivityEntryEvent = typeof ActivityEntryEvent.Type\n\n/** Detailed activity log — auto-generated from domain state changes */\nexport const ActivityDetailedEvent = Schema.Struct({\n type: Schema.Literal(\"activity.detailed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n id: Schema.String,\n source: Schema.String,\n level: Schema.String,\n message: Schema.String,\n details: Schema.optional(Schema.String),\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n triggeringEvent: Schema.optional(Schema.String),\n }),\n})\nexport type ActivityDetailedEvent = typeof ActivityDetailedEvent.Type\n\n/** TTS activity log — upleveled utterances for text-to-speech */\nexport const ActivityTtsEvent = Schema.Struct({\n type: Schema.Literal(\"activity.tts\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n id: Schema.String,\n utterance: Schema.String,\n priority: Schema.optional(Schema.Number),\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n source: Schema.optional(Schema.String),\n eventType: Schema.optional(Schema.String),\n }),\n})\nexport type ActivityTtsEvent = typeof ActivityTtsEvent.Type\n\n// ─── Dashboard Lifecycle Events ─────────────────────────────────────────────────\n\n/** Dashboard is restarting (post-merge deploy, pan restart, etc.) (PAN-520) */\nexport const DashboardLifecycleStartedEvent = Schema.Struct({\n type: Schema.Literal(\"dashboard.lifecycle_started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n reason: Schema.String,\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n trigger: Schema.String,\n }),\n})\nexport type DashboardLifecycleStartedEvent = typeof DashboardLifecycleStartedEvent.Type\n\n/** Dashboard restarted successfully after a lifecycle event (PAN-520) */\nexport const DashboardLifecycleCompletedEvent = Schema.Struct({\n type: Schema.Literal(\"dashboard.lifecycle_completed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n reason: Schema.String,\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n durationMs: Schema.Number,\n }),\n})\nexport type DashboardLifecycleCompletedEvent = typeof DashboardLifecycleCompletedEvent.Type\n\n/** Dashboard restart failed (PAN-520) */\nexport const DashboardLifecycleFailedEvent = Schema.Struct({\n type: Schema.Literal(\"dashboard.lifecycle_failed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n reason: Schema.String,\n issueId: Schema.optional(IssueId), workspaceId: Schema.optional(Schema.String),\n error: Schema.String,\n }),\n})\nexport type DashboardLifecycleFailedEvent = typeof DashboardLifecycleFailedEvent.Type\n\n/** Replaces socket.io `shadow:inference-update` */\nexport const ShadowInferenceUpdateEvent = Schema.Struct({\n type: Schema.Literal(\"shadow.inference_update\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), content: Schema.String }),\n})\nexport type ShadowInferenceUpdateEvent = typeof ShadowInferenceUpdateEvent.Type\n\n// ─── Workspace Lifecycle Events ───────────────────────────────────────────────\n\n/** New — workspace worktree created (before planning.started) */\nexport const WorkspaceCreatedEvent = Schema.Struct({\n type: Schema.Literal(\"workspace.created\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), workspacePath: Schema.String }),\n})\nexport type WorkspaceCreatedEvent = typeof WorkspaceCreatedEvent.Type\n\n/** New — deep-wipe started (transitional state for UI spinner) */\nexport const WorkspaceWipeStartedEvent = Schema.Struct({\n type: Schema.Literal(\"workspace.wipe_started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String) }),\n})\nexport type WorkspaceWipeStartedEvent = typeof WorkspaceWipeStartedEvent.Type\n\n/** New — deep-wipe completed, workspace fully destroyed */\nexport const WorkspaceDestroyedEvent = Schema.Struct({\n type: Schema.Literal(\"workspace.destroyed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String) }),\n})\nexport type WorkspaceDestroyedEvent = typeof WorkspaceDestroyedEvent.Type\n\n/** New — cleanup-workspace completed, workspace directory removed */\nexport const WorkspaceDeletedEvent = Schema.Struct({\n type: Schema.Literal(\"workspace.deleted\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String) }),\n})\nexport type WorkspaceDeletedEvent = typeof WorkspaceDeletedEvent.Type\n\n/** New — planning aborted, workspace returned to idle state */\nexport const WorkspaceAbortedEvent = Schema.Struct({\n type: Schema.Literal(\"workspace.aborted\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), sessionName: Schema.optional(Schema.String) }),\n})\nexport type WorkspaceAbortedEvent = typeof WorkspaceAbortedEvent.Type\n\n// ─── Memory Events ────────────────────────────────────────────────────────────\n\nexport const MemoryObservationCreatedEvent = Schema.Struct({\n type: Schema.Literal(\"memory.observation_created\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ observation: MemoryObservation }),\n})\nexport type MemoryObservationCreatedEvent = typeof MemoryObservationCreatedEvent.Type\n\nexport const MemoryStatusUpdatedEvent = Schema.Struct({\n type: Schema.Literal(\"memory.status_updated\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n identity: Schema.Struct({ projectId: Schema.String, workspaceId: Schema.String, issueId: IssueId }),\n status: MemoryStatus,\n previousStatus: Schema.optional(MemoryStatus),\n }),\n})\nexport type MemoryStatusUpdatedEvent = typeof MemoryStatusUpdatedEvent.Type\n\nexport const MemoryRollupTriggeredEvent = Schema.Struct({\n type: Schema.Literal(\"memory.rollup_triggered\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n projectId: Schema.String,\n workspaceId: Schema.String,\n issueId: IssueId,\n pendingCount: Schema.Number,\n turnIds: Schema.Array(Schema.String),\n threshold: Schema.Number,\n }),\n})\nexport type MemoryRollupTriggeredEvent = typeof MemoryRollupTriggeredEvent.Type\n\nexport const MemoryResetMarkerCreatedEvent = Schema.Struct({\n type: Schema.Literal(\"memory.reset_marker_created\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ marker: ResetMarker }),\n})\nexport type MemoryResetMarkerCreatedEvent = typeof MemoryResetMarkerCreatedEvent.Type\n\nexport const MemoryHealthChangedEvent = Schema.Struct({\n type: Schema.Literal(\"memory.health_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n projectId: Schema.String,\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n status: Schema.Literals([\"healthy\", \"degraded\", \"failing\"]),\n reason: Schema.NullOr(Schema.String),\n // Human-readable cause of the most recent failure (e.g. the provider error\n // message). Distinct from `reason`, which is a coarse machine code like\n // \"extraction-failed\". Surfaced verbatim in the UI so the operator can see\n // *why* memory extraction is failing without reading server logs.\n detail: Schema.optional(Schema.String),\n ragDecision: Schema.optional(RagDecision),\n }),\n})\nexport type MemoryHealthChangedEvent = typeof MemoryHealthChangedEvent.Type\n\n// ─── Cost Events ──────────────────────────────────────────────────────────────\n\n/** New — cost event recorded in the store */\nexport const CostEventRecordedEvent = Schema.Struct({\n type: Schema.Literal(\"cost.event_recorded\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n agentId: AgentId,\n issueId: IssueId, workspaceId: Schema.optional(Schema.String),\n cost: Schema.Number,\n inputTokens: Schema.Number,\n outputTokens: Schema.Number,\n }),\n})\nexport type CostEventRecordedEvent = typeof CostEventRecordedEvent.Type\n\n// ─── Conversation Events ──────────────────────────────────────────────────────\n\n/** Emitted (in-memory only, not persisted) when a Overdeck-native compaction starts or completes. */\nexport const ConversationCompactingChangedEvent = Schema.Struct({\n type: Schema.Literal(\"conversation.compacting_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n conversationName: Schema.String,\n compacting: Schema.Boolean,\n }),\n})\nexport type ConversationCompactingChangedEvent = typeof ConversationCompactingChangedEvent.Type\n\n/** Emitted (in-memory only) when a new conversation row is created, so the\n * sidebar list can refresh immediately instead of waiting for its poll tick. */\nexport const ConversationCreatedEvent = Schema.Struct({\n type: Schema.Literal(\"conversation.created\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n conversationName: Schema.String,\n }),\n})\nexport type ConversationCreatedEvent = typeof ConversationCreatedEvent.Type\n\n/** Emitted (in-memory only, not persisted) when a conversation's project\n * assignment override changes, so the sidebar can re-group it live instead of\n * waiting for its poll tick. */\nexport const ConversationMovedEvent = Schema.Struct({\n type: Schema.Literal(\"conversation.moved\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n conversationName: Schema.String,\n projectKey: Schema.String,\n }),\n})\nexport type ConversationMovedEvent = typeof ConversationMovedEvent.Type\n\n/** Emitted (in-memory only) when a conversation title changes, so the sidebar\n * list can refresh immediately instead of waiting for its poll tick. */\nexport const ConversationTitleChangedEvent = Schema.Struct({\n type: Schema.Literal(\"conversation.title_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n conversationName: Schema.String,\n title: Schema.String,\n titleSource: Schema.String,\n }),\n})\nexport type ConversationTitleChangedEvent = typeof ConversationTitleChangedEvent.Type\n\n/** Emitted (in-memory only) when a conversation's pull-request links or their\n * snapshots change (PAN-3822), so the list and open panel refresh the badge. */\nexport const ConversationPullRequestsChangedEvent = Schema.Struct({\n type: Schema.Literal(\"conversation.pull_requests_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n conversationName: Schema.String,\n effective: Schema.NullOr(PullRequestLink),\n }),\n})\nexport type ConversationPullRequestsChangedEvent = typeof ConversationPullRequestsChangedEvent.Type\n\n/** Emitted (in-memory only) when a PermissionRequest hook fires or resolves for a conversation. */\nexport const ConversationPermissionChangedEvent = Schema.Struct({\n type: Schema.Literal(\"conversation.permission_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n conversationName: Schema.String,\n waiting: Schema.Boolean,\n toolName: Schema.optional(Schema.String),\n }),\n})\nexport type ConversationPermissionChangedEvent = typeof ConversationPermissionChangedEvent.Type\n\n// ─── Conversation Discovery Events (PAN-457) ──────────────────────────────────\n\n/** Scan started */\nexport const ScanStartedEvent = Schema.Struct({\n type: Schema.Literal(\"scan.started\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n mode: Schema.Literals(['targeted', 'watched', 'system']),\n dirs: Schema.Array(Schema.String),\n }),\n})\nexport type ScanStartedEvent = typeof ScanStartedEvent.Type\n\n/** Scan progress tick */\nexport const ScanProgressEvent = Schema.Struct({\n type: Schema.Literal(\"scan.progress\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n dirsProcessed: Schema.Number,\n dirsTotal: Schema.Number,\n sessionsFound: Schema.Number,\n elapsedMs: Schema.Number,\n }),\n})\nexport type ScanProgressEvent = typeof ScanProgressEvent.Type\n\n/** Scan completed */\nexport const ScanCompleteEvent = Schema.Struct({\n type: Schema.Literal(\"scan.complete\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n inserted: Schema.Number,\n updated: Schema.Number,\n skipped: Schema.Number,\n errors: Schema.Number,\n durationMs: Schema.Number,\n }),\n})\nexport type ScanCompleteEvent = typeof ScanCompleteEvent.Type\n\n/** Per-session enrichment progress */\nexport const EnrichProgressEvent = Schema.Struct({\n type: Schema.Literal(\"enrich.progress\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n sessionId: Schema.Number,\n level: Schema.Number,\n model: Schema.String,\n cost: Schema.Number,\n success: Schema.Boolean,\n error: Schema.optional(Schema.String),\n }),\n})\nexport type EnrichProgressEvent = typeof EnrichProgressEvent.Type\n\n/** Enrichment batch completed */\nexport const EnrichCompleteEvent = Schema.Struct({\n type: Schema.Literal(\"enrich.complete\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n processed: Schema.Number,\n totalCost: Schema.Number,\n failures: Schema.Number,\n durationMs: Schema.Number,\n }),\n})\nexport type EnrichCompleteEvent = typeof EnrichCompleteEvent.Type\n\n/** Per-session embedding progress */\nexport const EmbedProgressEvent = Schema.Struct({\n type: Schema.Literal(\"embed.progress\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n sessionId: Schema.Number,\n model: Schema.String,\n success: Schema.Boolean,\n error: Schema.optional(Schema.String),\n }),\n})\nexport type EmbedProgressEvent = typeof EmbedProgressEvent.Type\n\n// ─── Stall Sweeper Events (PAN-3485) ──────────────────────────────────────────\n\n/** The parked population changed — carries the full new population (compact rows). */\nexport const SweepScanEvent = Schema.Struct({\n type: Schema.Literal(\"sweep.scan\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueCount: Schema.Number,\n rowCount: Schema.Number,\n rows: Schema.Array(Schema.Struct({\n issueId: Schema.String,\n orbit: Schema.String,\n parkedAt: Schema.String,\n })),\n }),\n})\nexport type SweepScanEvent = typeof SweepScanEvent.Type\n\n/** A parked row was (re-)surfaced to the operator — gates respected, TTL re-surface, or exhaustion. */\nexport const SweepEscalatedEvent = Schema.Struct({\n type: Schema.Literal(\"sweep.escalated\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: Schema.String,\n orbit: Schema.String,\n reason: Schema.String,\n }),\n})\nexport type SweepEscalatedEvent = typeof SweepEscalatedEvent.Type\n\n/** The sweeper recommended a remedy for a parked row (observability-only — never an action, PAN-3551). */\nexport const SweepRecommendationEvent = Schema.Struct({\n type: Schema.Literal(\"sweep.recommendation\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({\n issueId: Schema.String,\n orbit: Schema.String,\n recommendation: Schema.String,\n recurring: Schema.optional(Schema.Boolean),\n agentId: Schema.optional(Schema.String),\n }),\n})\nexport type SweepRecommendationEvent = typeof SweepRecommendationEvent.Type\n\n// ─── Union ────────────────────────────────────────────────────────────────────\n\n/** All domain events — the shape streamed via subscribeDomainEvents RPC */\nexport const DomainEvent = Schema.Union([\n SystemHeartbeatEvent,\n BeadsFreshnessChangedEvent,\n ProjectCiSuiteObservedEvent,\n ProjectCiHeadObservedEvent,\n RestartGateChangedEvent,\n GitHubQuotaChangedEvent,\n ProjectDeployChangedEvent,\n AgentCreatedEvent,\n AgentEnrichmentChangedEvent,\n AgentStartedEvent,\n AgentStoppedEvent,\n AgentHeartbeatDeadEvent,\n WorkCompletedEvent,\n AgentCompletedEvent,\n ReviewApprovedEvent,\n TestPassedEvent,\n AgentStatusChangedEvent,\n AgentOutputReceivedEvent,\n // PAN-800 runtime events\n AgentActivityChangedEvent,\n AgentHookFiredEvent,\n AgentThinkingStartedEvent,\n AgentThinkingStoppedEvent,\n AgentWaitingStartedEvent,\n AgentWaitingClearedEvent,\n AgentPermissionRequestedEvent,\n AgentPermissionResolvedEvent,\n AgentMessageReceivedEvent,\n AgentChannelReplyEvent,\n AgentModelSetEvent,\n AgentCurrentIssueSetEvent,\n AgentContextSaturationChangedEvent,\n AgentResolutionChangedEvent,\n AgentStateRestoredEvent,\n AgentTurnDiffCompletedEvent,\n PlanningStartedEvent,\n PlanningFailedEvent,\n PlanningSyncEvent,\n PlanItemStatusChangedEvent,\n PlanSubitemStatusChangedEvent,\n PlanItemsUnblockedEvent,\n IssueStateChangedEvent,\n BackendPaneChangedEvent,\n BackendPaneRemovedEvent,\n MergeReadyEvent,\n PipelineReviewStartedEvent,\n PipelineReviewCompletedEvent,\n PipelineTestStartedEvent,\n PipelineTestCompletedEvent,\n PipelineVerificationStartedEvent,\n PipelineVerificationFailedEvent,\n IssueTransitionedEvent,\n OperatorInterventionEvent,\n LinearMcpAuthRequiredEvent,\n LinearMcpAuthHealthyEvent,\n LinearMcpAuthNotifiedEvent,\n LinearMcpAuthCallbackRelayedEvent,\n SubstrateBugFiledEvent,\n ReviewReviewerStartedEvent,\n ReviewReviewerCompletedEvent,\n ReviewSpecialistTimedOutEvent,\n ReviewCoordinatorStartedEvent,\n ReviewCoordinatorDiedEvent,\n ReviewVerdictRejectedEvent,\n ReviewVerdictDispatchedEvent,\n ReviewVerdictRestoreBlockedEvent,\n SpecialistStartedEvent,\n SpecialistCompletedEvent,\n SpecialistFailedEvent,\n ResourcesUpdatedEvent,\n SystemHealthSeverityChangedEvent,\n IssuesSnapshotEvent,\n IssuesDeltaEvent,\n IssuesUpdatedEvent,\n IssueStatusChangedEvent,\n ActivityUpdatedEvent,\n ActivityEntryEvent,\n ActivityDetailedEvent,\n ActivityTtsEvent,\n ShadowInferenceUpdateEvent,\n MemoryObservationCreatedEvent,\n MemoryStatusUpdatedEvent,\n MemoryRollupTriggeredEvent,\n MemoryResetMarkerCreatedEvent,\n MemoryHealthChangedEvent,\n CostEventRecordedEvent,\n WorkspaceCreatedEvent,\n WorkspaceWipeStartedEvent,\n WorkspaceDestroyedEvent,\n WorkspaceDeletedEvent,\n WorkspaceAbortedEvent,\n DashboardLifecycleStartedEvent,\n DashboardLifecycleCompletedEvent,\n DashboardLifecycleFailedEvent,\n ConversationCompactingChangedEvent,\n ConversationCreatedEvent,\n ConversationMovedEvent,\n ConversationTitleChangedEvent,\n ConversationPullRequestsChangedEvent,\n ConversationPermissionChangedEvent,\n ScanStartedEvent,\n ScanProgressEvent,\n ScanCompleteEvent,\n EnrichProgressEvent,\n EnrichCompleteEvent,\n EmbedProgressEvent,\n SweepScanEvent,\n SweepEscalatedEvent,\n SweepRecommendationEvent,\n])\nexport type DomainEvent = typeof DomainEvent.Type\n","import { Schema } from \"effect\"\n\nexport const EDITORS = [\n { id: \"cursor\", label: \"Cursor\", command: \"cursor\", supportsGoto: true },\n { id: \"windsurf\", label: \"Windsurf\", command: \"windsurf\", supportsGoto: true },\n { id: \"trae\", label: \"Trae\", command: \"trae\", supportsGoto: true },\n { id: \"kiro\", label: \"Kiro\", command: \"kiro\", supportsGoto: true },\n { id: \"vscode\", label: \"VS Code\", command: \"code\", supportsGoto: true },\n { id: \"vscode-insiders\", label: \"VS Code Insiders\", command: \"code-insiders\", supportsGoto: true },\n { id: \"vscodium\", label: \"VSCodium\", command: \"codium\", supportsGoto: true },\n { id: \"zed\", label: \"Zed\", command: \"zed\", supportsGoto: false },\n { id: \"antigravity\", label: \"Antigravity\", command: \"agy\", supportsGoto: false },\n { id: \"idea\", label: \"IntelliJ IDEA\", command: \"idea\", supportsGoto: true },\n { id: \"aqua\", label: \"Aqua\", command: \"aqua\", supportsGoto: true },\n { id: \"clion\", label: \"CLion\", command: \"clion\", supportsGoto: true },\n { id: \"datagrip\", label: \"DataGrip\", command: \"datagrip\", supportsGoto: true },\n { id: \"dataspell\", label: \"DataSpell\", command: \"dataspell\", supportsGoto: true },\n { id: \"goland\", label: \"GoLand\", command: \"goland\", supportsGoto: true },\n { id: \"phpstorm\", label: \"PhpStorm\", command: \"phpstorm\", supportsGoto: true },\n { id: \"pycharm\", label: \"PyCharm\", command: \"pycharm\", supportsGoto: true },\n { id: \"rider\", label: \"Rider\", command: \"rider\", supportsGoto: true },\n { id: \"rubymine\", label: \"RubyMine\", command: \"rubymine\", supportsGoto: true },\n { id: \"rustrover\", label: \"RustRover\", command: \"rustrover\", supportsGoto: true },\n { id: \"webstorm\", label: \"WebStorm\", command: \"webstorm\", supportsGoto: true },\n { id: \"file-manager\", label: \"File Manager\", command: null, supportsGoto: false },\n] as const\n\nexport type EditorEntry = (typeof EDITORS)[number]\nexport type EditorId = EditorEntry[\"id\"]\n\nconst EDITOR_IDS: [EditorId, ...EditorId[]] = [\n \"cursor\",\n \"windsurf\",\n \"trae\",\n \"kiro\",\n \"vscode\",\n \"vscode-insiders\",\n \"vscodium\",\n \"zed\",\n \"antigravity\",\n \"idea\",\n \"aqua\",\n \"clion\",\n \"datagrip\",\n \"dataspell\",\n \"goland\",\n \"phpstorm\",\n \"pycharm\",\n \"rider\",\n \"rubymine\",\n \"rustrover\",\n \"webstorm\",\n \"file-manager\",\n]\nexport const EditorIdSchema = Schema.Literals(EDITOR_IDS)\n\nexport const OpenInEditorInput = Schema.Struct({\n cwd: Schema.String,\n editor: EditorIdSchema,\n})\nexport type OpenInEditorInput = typeof OpenInEditorInput.Type\n","import { Schema } from \"effect\"\n\n/**\n * Canonical reasoning-effort levels, end to end. `xhigh` was added in Opus 4.7\n * (between `high` and `max`); `max` predates it (Opus 4.6+/Sonnet 4.6). This is\n * the single source of truth for the enum — every other copy in the codebase\n * derives from it.\n */\nexport const EFFORT_LEVELS = [\"low\", \"medium\", \"high\", \"xhigh\", \"max\"] as const\nexport type EffortLevel = (typeof EFFORT_LEVELS)[number]\n\nexport const DEFAULT_EFFORT: EffortLevel = \"high\"\n\n/**\n * Where a resolved effort value came from, in resolution-precedence order\n * (most to least specific).\n */\nexport type EffortSource =\n | \"explicit\"\n | \"item\"\n | \"plan\"\n | \"tier\"\n | \"sub-role\"\n | \"role\"\n | \"project\"\n | \"default\"\n\nexport const EffortLevelSchema = Schema.Literals(EFFORT_LEVELS)\n\nexport function isEffortLevel(value: unknown): value is EffortLevel {\n return typeof value === \"string\" && (EFFORT_LEVELS as readonly string[]).includes(value)\n}\n\n/** Compares two effort levels by rank; negative when `a` is lower than `b`. */\nexport function compareEffort(a: EffortLevel, b: EffortLevel): number {\n return EFFORT_LEVELS.indexOf(a) - EFFORT_LEVELS.indexOf(b)\n}\n","import { Schema } from \"effect\"\nimport * as Rpc from \"effect/unstable/rpc/Rpc\"\nimport * as RpcGroup from \"effect/unstable/rpc/RpcGroup\"\nimport { DomainEvent } from \"./events\"\nimport {\n AgentStatus,\n ConversationCostSummary,\n ConversationFilter,\n DashboardSnapshot,\n DiscoveredSessionSnapshot,\n IssueId,\n ScanResult,\n SequenceNumber,\n SessionNodePresence,\n SessionsFeedFacetsSnapshot,\n SessionsFeedRowSnapshot,\n} from \"./types\"\nimport { EditorIdSchema, OpenInEditorInput } from \"./editor\"\nimport { EffortLevelSchema } from \"./effort\"\n\n// ─── RPC method names ─────────────────────────────────────────────────────────\n\nexport const WS_METHODS = {\n // Conversations (PAN-457)\n scanConversations: \"pan.scanConversations\",\n searchConversations: \"pan.searchConversations\",\n listDiscoveredSessions: \"pan.listDiscoveredSessions\",\n listSessionsFeed: \"pan.listSessionsFeed\",\n getSessionsFeedFacets: \"pan.getSessionsFeedFacets\",\n getDiscoveredSession: \"pan.getDiscoveredSession\",\n enrichSessions: \"pan.enrichSessions\",\n embedSessions: \"pan.embedSessions\",\n getConversationCost: \"pan.getConversationCost\",\n getConversationCostByWorkspace: \"pan.getConversationCostByWorkspace\",\n getConversationStats: \"pan.getConversationStats\",\n\n // Streaming subscriptions\n subscribeDomainEvents: \"pan.subscribeDomainEvents\",\n subscribeIssueEvents: \"pan.subscribeIssueEvents\",\n subscribeTerminal: \"pan.subscribeTerminal\",\n subscribeAgentOutput: \"pan.subscribeAgentOutput\",\n subscribeConversationMessages: \"pan.subscribeConversationMessages\",\n subscribeProjectSessionTree: \"pan.subscribeProjectSessionTree\",\n\n // Snapshot / replay\n getSnapshot: \"pan.getSnapshot\",\n replayEvents: \"pan.replayEvents\",\n\n // Workspace detail (batched)\n readWorkspaceFile: \"pan.readWorkspaceFile\",\n\n // Absolute-path markdown file door (PAN-3260) — read/write a single\n // allowlisted markdown file by absolute path, independent of issueId.\n readFileAtPath: \"pan.readFileAtPath\",\n writeFileAtPath: \"pan.writeFileAtPath\",\n\n // File-path existence (PAN-1457) — used by MarkdownFileLink to decide\n // whether a path candidate in chat markdown should render as a chip.\n resolveFilePathExists: \"pan.resolveFilePathExists\",\n\n // Terminal control\n terminalOpen: \"pan.terminalOpen\",\n terminalWrite: \"pan.terminalWrite\",\n terminalResize: \"pan.terminalResize\",\n terminalClose: \"pan.terminalClose\",\n\n // Commands (trigger mutations via RPC)\n startPlanning: \"pan.startPlanning\",\n startAgent: \"pan.startAgent\",\n deepWipe: \"pan.deepWipe\",\n sendTerminalInput: \"pan.sendTerminalInput\",\n resizeTerminal: \"pan.resizeTerminal\",\n\n // Editor integration (PAN-966)\n shellOpenInEditor: \"pan.shellOpenInEditor\",\n getAvailableEditors: \"pan.getAvailableEditors\",\n} as const\n\n// ─── Error types ──────────────────────────────────────────────────────────────\n\nexport class PanRpcError extends Schema.TaggedErrorClass<PanRpcError>()(\"PanRpcError\", {\n message: Schema.String,\n code: Schema.optional(Schema.String),\n}) {}\n\n// ─── Terminal types ───────────────────────────────────────────────────────────\n\nexport const TerminalOutput = Schema.Struct({\n sessionName: Schema.String,\n data: Schema.String,\n})\nexport type TerminalOutput = typeof TerminalOutput.Type\n\nexport const AgentOutput = Schema.Struct({\n agentId: Schema.String,\n line: Schema.String,\n})\nexport type AgentOutput = typeof AgentOutput.Type\n\n// ─── Plan mode types ─────────────────────────────────────────────────────────\n\nexport const ProposedPlan = Schema.Struct({\n id: Schema.String,\n plan: Schema.String,\n planFilePath: Schema.optional(Schema.String),\n status: Schema.Literals(['pending', 'approved', 'rejected']),\n createdAt: Schema.String,\n resolvedAt: Schema.optional(Schema.String),\n})\nexport type ProposedPlan = typeof ProposedPlan.Type\n\n// ─── Compact boundary types ──────────────────────────────────────────────────\n\nexport const CompactBoundary = Schema.Struct({\n id: Schema.String,\n timestamp: Schema.String,\n trigger: Schema.optional(Schema.String),\n preTokens: Schema.optional(Schema.Number),\n model: Schema.optional(Schema.String),\n})\nexport type CompactBoundary = typeof CompactBoundary.Type\n\nexport const ContextUsage = Schema.Struct({\n activeBytes: Schema.Number,\n estimatedTokens: Schema.Number,\n contextWindow: Schema.Number,\n percentUsed: Schema.Number,\n /**\n * Optional breakdown of the last assistant turn — surfaced by the click\n * popover on the ContextWindowMeter so users can see WHY the meter says\n * what it does. Computed by `computeContextUsage()` from JSONL `usage`.\n */\n lastInputTokens: Schema.optional(Schema.Number),\n lastCacheReadTokens: Schema.optional(Schema.Number),\n lastCacheCreationTokens: Schema.optional(Schema.Number),\n /** Highest input_tokens ever observed in this window — triggers 1M detection. */\n maxObservedInputTokens: Schema.optional(Schema.Number),\n /** Model the most recent assistant turn ran under (from JSONL). */\n lastModel: Schema.optional(Schema.NullOr(Schema.String)),\n /** PAN-4255: effort observed in the transcript (assistant `effort` or an /effort confirmation). Claude Code only. */\n lastEffort: Schema.optional(Schema.NullOr(Schema.String)),\n /** ISO timestamp of the most recent assistant turn. */\n lastTurnAt: Schema.optional(Schema.NullOr(Schema.String)),\n})\nexport type ContextUsage = typeof ContextUsage.Type\n\n// ─── Chat / conversation message types (PAN-451) ──────────────────────────────\n\nexport const ChatMessage = Schema.Struct({\n id: Schema.String,\n role: Schema.Literals(['user', 'assistant', 'system']),\n text: Schema.String,\n turnId: Schema.optional(Schema.String),\n createdAt: Schema.String,\n completedAt: Schema.optional(Schema.String),\n streaming: Schema.optional(Schema.Boolean),\n sequence: Schema.optional(Schema.Number),\n})\nexport type ChatMessage = typeof ChatMessage.Type\n\nexport const WorkLogEntry = Schema.Struct({\n id: Schema.String,\n createdAt: Schema.String,\n label: Schema.String,\n detail: Schema.optional(Schema.String),\n /** Tool result output (populated when tool_result is received). */\n result: Schema.optional(Schema.String),\n command: Schema.optional(Schema.String),\n changedFiles: Schema.optional(Schema.Array(Schema.String)),\n tone: Schema.Literals(['thinking', 'tool', 'info', 'error']),\n toolTitle: Schema.optional(Schema.String),\n /** Raw tool_use input dict — drives per-tool expanded rendering (PAN-1459). */\n toolInput: Schema.optional(Schema.Record(Schema.String, Schema.Unknown)),\n sequence: Schema.optional(Schema.Number),\n /** PAN-4558: UTF-8 byte length of a `result` the wire projection removed. */\n resultBytes: Schema.optional(Schema.Number),\n /** PAN-4558: the wire projection removed or cut a tool body; fetch the full entry on expand. */\n bodyOmitted: Schema.optional(Schema.Boolean),\n})\nexport type WorkLogEntry = typeof WorkLogEntry.Type\n\n/** A human-origin message read from a subagent's own sidechain transcript (PAN-4247). */\nexport const SubagentHumanInput = Schema.Struct({\n id: Schema.String,\n text: Schema.String,\n createdAt: Schema.String,\n})\nexport type SubagentHumanInput = typeof SubagentHumanInput.Type\n\nexport const SubagentSummary = Schema.Struct({\n agentId: Schema.String,\n agentType: Schema.String,\n description: Schema.String,\n toolUseId: Schema.String,\n spawnDepth: Schema.Number,\n status: Schema.Literals(['running', 'done']),\n /** True for a background subagent, launched with `requestShape: \"background\"` (PAN-4247). */\n background: Schema.optional(Schema.Boolean),\n /** Recent human-origin sidechain inputs, most useful when a message routed into this subagent instead of the main conversation (PAN-4247). */\n humanInputs: Schema.optional(Schema.Array(SubagentHumanInput)),\n})\nexport type SubagentSummary = typeof SubagentSummary.Type\n\n/** PAN-4558: where a windowed response or page sits in the whole transcript. */\nexport const ConversationWindow = Schema.Struct({\n /** Encoded timeline key of the oldest contiguous entry; pass as `before=` for the next older page. */\n cursor: Schema.NullOr(Schema.String),\n hasOlder: Schema.Boolean,\n /** `\"<dev>:<ino>\"` of the transcript file the window was read from. */\n transcript: Schema.optional(Schema.String),\n})\nexport type ConversationWindow = typeof ConversationWindow.Type\n\n/** PAN-4558: what a resubscribing client already holds. */\nexport const ConversationResume = Schema.Struct({\n afterSequence: Schema.Number,\n openIds: Schema.Array(Schema.String),\n transcript: Schema.String,\n})\nexport type ConversationResume = typeof ConversationResume.Type\n\n/**\n * Response shape for GET /api/agents/:id/conversation.\n * Shared between the dashboard server route and the frontend TerminalPanel.\n */\nexport const ConversationResponse = Schema.Struct({\n messages: Schema.Array(ChatMessage),\n workLog: Schema.Array(WorkLogEntry),\n streaming: Schema.Boolean,\n totalCost: Schema.Number,\n /** Total token throughput (input + output + cache read + cache write). */\n totalTokens: Schema.optional(Schema.Number),\n byteOffset: Schema.Number,\n proposedPlan: Schema.optional(ProposedPlan),\n compactBoundaries: Schema.optional(Schema.Array(CompactBoundary)),\n contextUsage: Schema.optional(Schema.NullOr(ContextUsage)),\n subagents: Schema.optional(Schema.Array(SubagentSummary)),\n /** PAN-4255: effort read from the agent's transcript (claude-code only). */\n observedEffort: Schema.optional(Schema.NullOr(EffortLevelSchema)),\n /** PAN-4255: the effort the agent was launched/pinned with and its EffortSource layer. */\n effortResolution: Schema.optional(Schema.NullOr(Schema.Struct({ effort: EffortLevelSchema, source: Schema.String }))),\n /** PAN-4558: present on windowed and paged responses only. */\n window: Schema.optional(ConversationWindow),\n})\nexport type ConversationResponse = typeof ConversationResponse.Type\n\nexport const ConversationEvent = Schema.Union([\n Schema.Struct({\n kind: Schema.Literal('messages'),\n messages: Schema.Array(ChatMessage),\n workLog: Schema.Array(WorkLogEntry),\n streaming: Schema.Boolean,\n snapshot: Schema.optional(Schema.Boolean),\n /** Confirmed transcript replacement/truncation; replace even a shorter cached history. */\n reset: Schema.optional(Schema.Boolean),\n /** Metadata represents the whole parsed state, including absent plans/boundaries. */\n metadataSnapshot: Schema.optional(Schema.Boolean),\n totalCost: Schema.optional(Schema.Number),\n proposedPlan: Schema.optional(ProposedPlan),\n compactBoundaries: Schema.optional(Schema.Array(CompactBoundary)),\n contextUsage: Schema.optional(Schema.NullOr(ContextUsage)),\n /** PAN-4558: set on windowed snapshots; older history is paged in by `window.cursor`. */\n window: Schema.optional(ConversationWindow),\n }),\n Schema.Struct({\n kind: Schema.Literal('discovering'),\n }),\n Schema.Struct({\n kind: Schema.Literal('subagents'),\n subagents: Schema.Array(SubagentSummary),\n }),\n])\nexport type ConversationEvent = typeof ConversationEvent.Type\n\n// ─── Session Tree Delta (PAN-821) ─────────────────────────────────────────────\n\nexport const SessionTreeDelta = Schema.Struct({\n kind: Schema.Literals(['session_added', 'session_removed', 'presence_changed', 'status_changed', 'pending_input_changed']),\n issueId: Schema.String,\n sessionId: Schema.String,\n presence: Schema.optional(SessionNodePresence),\n status: Schema.optional(AgentStatus),\n awaitingInput: Schema.optional(Schema.Boolean),\n awaitingInputPrompt: Schema.optional(Schema.String),\n awaitingInputReason: Schema.optional(Schema.String),\n pendingInputKinds: Schema.optional(Schema.Array(Schema.String)),\n timestamp: Schema.String,\n})\nexport type SessionTreeDelta = typeof SessionTreeDelta.Type\n\n// ─── RPC definitions ──────────────────────────────────────────────────────────\n\n/** 1. Subscribe to the live domain event stream (stream) */\nexport const SubscribeDomainEventsRpc = Rpc.make(WS_METHODS.subscribeDomainEvents, {\n payload: Schema.Struct({}),\n success: DomainEvent,\n stream: true,\n})\n\n/** 1b. Subscribe to the live domain event stream for one issue (stream) */\nexport const SubscribeIssueEventsRpc = Rpc.make(WS_METHODS.subscribeIssueEvents, {\n payload: Schema.Struct({ issueId: IssueId }),\n success: DomainEvent,\n stream: true,\n})\n\n/** 2. Subscribe to raw terminal output for a tmux session (stream) */\nexport const SubscribeTerminalRpc = Rpc.make(WS_METHODS.subscribeTerminal, {\n payload: Schema.Struct({ sessionName: Schema.String, cols: Schema.Number, rows: Schema.Number }),\n success: TerminalOutput,\n error: PanRpcError,\n stream: true,\n})\n\n/** 3. Subscribe to buffered agent stdout (stream) */\nexport const SubscribeAgentOutputRpc = Rpc.make(WS_METHODS.subscribeAgentOutput, {\n payload: Schema.Struct({ agentId: Schema.String }),\n success: AgentOutput,\n error: PanRpcError,\n stream: true,\n})\n\n/** 4. Get current dashboard snapshot (unary) */\nexport const GetSnapshotRpc = Rpc.make(WS_METHODS.getSnapshot, {\n payload: Schema.Struct({}),\n success: DashboardSnapshot,\n error: PanRpcError,\n})\n\n/**\n * PAN-4559: the server answers this instead of events when the gap after\n * fromSequence exceeds its replay cap; the client re-bootstraps via getSnapshot.\n */\nexport const ReplayTooFarBehind = Schema.Struct({ tooFarBehind: Schema.Literal(true) })\nexport type ReplayTooFarBehind = typeof ReplayTooFarBehind.Type\n\n/** Replay result: the missed events (unchanged array shape), or ReplayTooFarBehind. */\nexport const ReplayEventsResult = Schema.Union([Schema.Array(DomainEvent), ReplayTooFarBehind])\nexport type ReplayEventsResult = typeof ReplayEventsResult.Type\n\n/** 5. Replay events since a given sequence number (unary) */\nexport const ReplayEventsRpc = Rpc.make(WS_METHODS.replayEvents, {\n payload: Schema.Struct({ fromSequence: SequenceNumber }),\n success: ReplayEventsResult,\n error: PanRpcError,\n})\n\n/** 6. Open a terminal session / attach PTY (unary) */\nexport const TerminalOpenRpc = Rpc.make(WS_METHODS.terminalOpen, {\n payload: Schema.Struct({ sessionName: Schema.String, cols: Schema.Number, rows: Schema.Number }),\n success: Schema.Struct({ sessionName: Schema.String }),\n error: PanRpcError,\n})\n\n/** 7. Write data to a terminal session (unary) */\nexport const TerminalWriteRpc = Rpc.make(WS_METHODS.terminalWrite, {\n payload: Schema.Struct({ sessionName: Schema.String, data: Schema.String }),\n error: PanRpcError,\n})\n\n/** 8. Resize a terminal session (unary) */\nexport const TerminalResizeRpc = Rpc.make(WS_METHODS.terminalResize, {\n payload: Schema.Struct({ sessionName: Schema.String, cols: Schema.Number, rows: Schema.Number }),\n error: PanRpcError,\n})\n\n/** 9. Close a terminal session (unary) */\nexport const TerminalCloseRpc = Rpc.make(WS_METHODS.terminalClose, {\n payload: Schema.Struct({ sessionName: Schema.String }),\n error: PanRpcError,\n})\n\nexport const ReadWorkspaceFileInput = Schema.Struct({\n issueId: IssueId,\n relativePath: Schema.String,\n line: Schema.optional(Schema.Number),\n contextLines: Schema.optional(Schema.Number),\n})\nexport type ReadWorkspaceFileInput = typeof ReadWorkspaceFileInput.Type\n\nexport const ReadWorkspaceFileResult = Schema.Struct({\n text: Schema.String,\n lang: Schema.String,\n truncated: Schema.Boolean,\n totalLines: Schema.Number,\n})\nexport type ReadWorkspaceFileResult = typeof ReadWorkspaceFileResult.Type\n\n/** 10b. Read a workspace file for inline previews (unary) */\nexport const ReadWorkspaceFileRpc = Rpc.make(WS_METHODS.readWorkspaceFile, {\n payload: ReadWorkspaceFileInput,\n success: ReadWorkspaceFileResult,\n error: PanRpcError,\n})\n\nexport const ReadFileAtPathInput = Schema.Struct({\n path: Schema.String,\n})\nexport type ReadFileAtPathInput = typeof ReadFileAtPathInput.Type\n\nexport const ReadFileAtPathResult = Schema.Struct({\n text: Schema.String,\n lang: Schema.String,\n mtimeMs: Schema.Number,\n totalLines: Schema.Number,\n /** True when the resolved file is inside a registered project root or OVERDECK_HOME, so writeFileAtPath will accept it (PAN-4583). */\n writable: Schema.Boolean,\n})\nexport type ReadFileAtPathResult = typeof ReadFileAtPathResult.Type\n\n/**\n * 10b-2. Read an allowlisted markdown file by absolute path (PAN-3260).\n *\n * Unlike ReadWorkspaceFileRpc this takes no issueId — the internal markdown\n * editor pane opens files reached from surfaces with no workspace context\n * (e.g. a repo-root file chip inside a conversation). The server reads any\n * existing markdown file whose realpath is inside the operator's home\n * directory or a write root (registered project roots + OVERDECK_HOME), and\n * sets `writable` to whether it is inside a write root (PAN-4583). Writes\n * stay limited to the write roots — see WriteFileAtPathRpc.\n */\nexport const ReadFileAtPathRpc = Rpc.make(WS_METHODS.readFileAtPath, {\n payload: ReadFileAtPathInput,\n success: ReadFileAtPathResult,\n error: PanRpcError,\n})\n\nexport const WriteFileAtPathInput = Schema.Struct({\n path: Schema.String,\n content: Schema.String,\n expectedMtimeMs: Schema.optional(Schema.Number),\n})\nexport type WriteFileAtPathInput = typeof WriteFileAtPathInput.Type\n\nexport const WriteFileAtPathResult = Schema.Struct({\n mtimeMs: Schema.Number,\n})\nexport type WriteFileAtPathResult = typeof WriteFileAtPathResult.Type\n\n/**\n * 10b-3. Write an allowlisted markdown file by absolute path (PAN-3260).\n *\n * `expectedMtimeMs` enables optimistic concurrency: a stale value is\n * rejected with a PanRpcError code of WRITE_CONFLICT and nothing is\n * written. Omitting it (e.g. an explicit Overwrite action) skips the check.\n * The path must resolve inside a registered project root or OVERDECK_HOME;\n * anything else rejects with PATH_NOT_ALLOWED.\n */\nexport const WriteFileAtPathRpc = Rpc.make(WS_METHODS.writeFileAtPath, {\n payload: WriteFileAtPathInput,\n success: WriteFileAtPathResult,\n error: PanRpcError,\n})\n\n/**\n * 10c. Resolve whether a file path candidate exists on disk (PAN-1457).\n *\n * Used by MarkdownFileLink to decide whether a path-like token in chat\n * markdown should render as a clickable chip. Returns exists=false for\n * phantom paths (`conv/2209`, `users/foo`) and exists=true with kind for\n * real files and directories (including bare directory references like\n * `src/components/Foo` that the regex heuristic alone cannot validate).\n *\n * Security:\n * - Pure stat — never reads file contents, never enumerates directories.\n * - Relative paths resolve under cwd; absolute paths are statted directly.\n * - Caller is responsible for sending only paths surfaced from their own\n * conversation context; the resolver does not gate by issueId because\n * chat happens outside any single workspace.\n */\nexport const ResolveFilePathExistsInput = Schema.Struct({\n cwd: Schema.optional(Schema.String),\n path: Schema.String,\n})\nexport type ResolveFilePathExistsInput = typeof ResolveFilePathExistsInput.Type\n\nexport const ResolveFilePathExistsResult = Schema.Struct({\n exists: Schema.Boolean,\n kind: Schema.NullOr(Schema.Literals(['file', 'dir'])),\n})\nexport type ResolveFilePathExistsResult = typeof ResolveFilePathExistsResult.Type\n\nexport const ResolveFilePathExistsRpc = Rpc.make(WS_METHODS.resolveFilePathExists, {\n payload: ResolveFilePathExistsInput,\n success: ResolveFilePathExistsResult,\n error: PanRpcError,\n})\n\n/** 11. Start planning for an issue (command) */\nexport const StartPlanningRpc = Rpc.make(WS_METHODS.startPlanning, {\n payload: Schema.Struct({ issueId: IssueId, options: Schema.optional(Schema.Unknown) }),\n success: Schema.Struct({ queued: Schema.Boolean }),\n error: PanRpcError,\n})\n\n/** 12. Start a work agent for an issue (command) */\nexport const StartAgentRpc = Rpc.make(WS_METHODS.startAgent, {\n payload: Schema.Struct({ issueId: IssueId, options: Schema.optional(Schema.Unknown) }),\n success: Schema.Struct({ agentId: Schema.String }),\n error: PanRpcError,\n})\n\n/** 13. Deep-wipe a workspace (destructive command — requires explicit confirmation) */\nexport const DeepWipeRpc = Rpc.make(WS_METHODS.deepWipe, {\n payload: Schema.Struct({ issueId: IssueId, deleteWorkspace: Schema.optional(Schema.Boolean) }),\n success: Schema.Struct({ wiped: Schema.Boolean }),\n error: PanRpcError,\n})\n\n/** 14. Send input to a terminal session (command) */\nexport const SendTerminalInputRpc = Rpc.make(WS_METHODS.sendTerminalInput, {\n payload: Schema.Struct({ sessionName: Schema.String, data: Schema.String }),\n error: PanRpcError,\n})\n\n/** 15. Resize a terminal session (command) */\nexport const ResizeTerminalRpc = Rpc.make(WS_METHODS.resizeTerminal, {\n payload: Schema.Struct({ sessionName: Schema.String, cols: Schema.Number, rows: Schema.Number }),\n error: PanRpcError,\n})\n\n/** 16. Subscribe to structured conversation messages from a JSONL session file (stream, PAN-451) */\nexport const SubscribeConversationMessagesRpc = Rpc.make(WS_METHODS.subscribeConversationMessages, {\n payload: Schema.Struct({\n conversationName: Schema.String,\n agentId: Schema.optional(Schema.String),\n /** PAN-4558: what the client already holds; the server sends only newer or newly settled rows. */\n resume: Schema.optional(ConversationResume),\n }),\n success: ConversationEvent,\n error: PanRpcError,\n stream: true,\n})\n\n/** 17. Subscribe to live session tree deltas for a project (stream, PAN-821) */\nexport const SubscribeProjectSessionTreeRpc = Rpc.make(WS_METHODS.subscribeProjectSessionTree, {\n payload: Schema.Struct({ projectKey: Schema.String }),\n success: SessionTreeDelta,\n error: PanRpcError,\n stream: true,\n})\n\n/** 19. Open a workspace in an editor (PAN-966) */\nexport const ShellOpenInEditorRpc = Rpc.make(WS_METHODS.shellOpenInEditor, {\n payload: OpenInEditorInput,\n error: PanRpcError,\n})\n\n/** 19. Get available (installed) editors (PAN-966) */\nexport const GetAvailableEditorsRpc = Rpc.make(WS_METHODS.getAvailableEditors, {\n success: Schema.Struct({\n editors: Schema.Array(EditorIdSchema),\n /**\n * Default cwd to open when no project/workspace is selected — the\n * \"devroot\" fallback. `~/Projects` if it exists, else `$HOME`.\n */\n defaultCwd: Schema.String,\n }),\n error: PanRpcError,\n})\n\n// ─── Conversation Discovery RPC procs (PAN-457) ───────────────────────────────\n\nconst DiscoveredSessionListResult = Schema.Struct({\n sessions: Schema.Array(DiscoveredSessionSnapshot),\n count: Schema.Number,\n total: Schema.Number,\n})\n\nconst SessionsFeedPayload = Schema.Struct({\n harness: Schema.optional(Schema.String),\n workspacePath: Schema.optional(Schema.String),\n primaryModel: Schema.optional(Schema.String),\n managed: Schema.optional(Schema.Boolean),\n unmanaged: Schema.optional(Schema.Boolean),\n since: Schema.optional(Schema.String),\n before: Schema.optional(Schema.String),\n after: Schema.optional(Schema.String),\n minCost: Schema.optional(Schema.Number),\n maxCost: Schema.optional(Schema.Number),\n minMessages: Schema.optional(Schema.Number),\n tags: Schema.optional(Schema.Array(Schema.String)),\n tools: Schema.optional(Schema.Array(Schema.String)),\n files: Schema.optional(Schema.Array(Schema.String)),\n issueId: Schema.optional(Schema.String),\n enrichmentLevel: Schema.optional(Schema.Number),\n enriched: Schema.optional(Schema.Boolean),\n notEnriched: Schema.optional(Schema.Boolean),\n query: Schema.optional(Schema.String),\n semantic: Schema.optional(Schema.Boolean),\n similarTo: Schema.optional(Schema.Number),\n limit: Schema.optional(Schema.Number),\n offset: Schema.optional(Schema.Number),\n cursor: Schema.optional(Schema.String),\n source: Schema.optional(Schema.Literals(['discovered', 'managed-archived'])),\n})\n\nconst SessionsFeedListResult = Schema.Struct({\n rows: Schema.Array(SessionsFeedRowSnapshot),\n nextCursor: Schema.NullOr(Schema.String),\n})\n\nconst DiscoveredSessionSearchResult = Schema.Struct({\n sessions: Schema.Array(DiscoveredSessionSnapshot),\n total: Schema.Number,\n mode: Schema.String,\n durationMs: Schema.Number,\n error: Schema.optional(Schema.String),\n})\n\nconst DiscoveredSessionStatsResult = Schema.Struct({\n total: Schema.Number,\n enriched: Schema.Number,\n embedded: Schema.Number,\n managedCount: Schema.Number,\n embeddingModels: Schema.optional(Schema.Array(Schema.Struct({\n model: Schema.String,\n embedded: Schema.Number,\n }))),\n})\n\nconst ConversationCostTotals = Schema.Struct({\n sessionCount: Schema.Number,\n totalCost: Schema.Number,\n totalTokensIn: Schema.Number,\n totalTokensOut: Schema.Number,\n})\n\n/** Scan conversations (trigger discovery) */\nexport const ScanConversationsRpc = Rpc.make(WS_METHODS.scanConversations, {\n payload: Schema.Struct({\n mode: Schema.Literals(['targeted', 'watched', 'system']),\n dirs: Schema.optional(Schema.Array(Schema.String)),\n dryRun: Schema.optional(Schema.Boolean),\n }),\n success: ScanResult,\n error: PanRpcError,\n})\n\n/** Search discovered sessions with filters + optional FTS query */\nexport const SearchConversationsRpc = Rpc.make(WS_METHODS.searchConversations, {\n payload: ConversationFilter,\n success: DiscoveredSessionSearchResult,\n error: PanRpcError,\n})\n\n/** List discovered sessions (recent, with optional managed/unmanaged filter) */\nexport const ListDiscoveredSessionsRpc = Rpc.make(WS_METHODS.listDiscoveredSessions, {\n payload: ConversationFilter,\n success: DiscoveredSessionListResult,\n error: PanRpcError,\n})\n\n/** List the unified discovered + managed archived sessions feed */\nexport const ListSessionsFeedRpc = Rpc.make(WS_METHODS.listSessionsFeed, {\n payload: SessionsFeedPayload,\n success: SessionsFeedListResult,\n error: PanRpcError,\n})\n\n/** Get facet buckets for the unified sessions feed */\nexport const GetSessionsFeedFacetsRpc = Rpc.make(WS_METHODS.getSessionsFeedFacets, {\n payload: SessionsFeedPayload,\n success: SessionsFeedFacetsSnapshot,\n error: PanRpcError,\n})\n\n/** Get a single discovered session by ID */\nexport const GetDiscoveredSessionRpc = Rpc.make(WS_METHODS.getDiscoveredSession, {\n payload: Schema.Struct({ id: Schema.Number }),\n success: DiscoveredSessionSnapshot,\n error: PanRpcError,\n})\n\n/** Enrich sessions by ID or filter */\nexport const EnrichSessionsRpc = Rpc.make(WS_METHODS.enrichSessions, {\n payload: Schema.Struct({\n ids: Schema.optional(Schema.Array(Schema.Number)),\n filter: Schema.optional(ConversationFilter),\n level: Schema.Literals([1, 2, 3]),\n model: Schema.optional(Schema.String),\n fullTranscript: Schema.optional(Schema.Boolean),\n customPrompt: Schema.optional(Schema.String),\n upgrade: Schema.optional(Schema.Boolean),\n limit: Schema.optional(Schema.Number),\n confirmed: Schema.optional(Schema.Boolean),\n force: Schema.optional(Schema.Boolean),\n }),\n success: Schema.Struct({\n processed: Schema.Number,\n totalCost: Schema.Number,\n failures: Schema.Number,\n }),\n error: PanRpcError,\n})\n\n/** Generate or update embeddings for enriched sessions */\nexport const EmbedSessionsRpc = Rpc.make(WS_METHODS.embedSessions, {\n payload: Schema.Struct({\n ids: Schema.optional(Schema.Array(Schema.Number)),\n regenerate: Schema.optional(Schema.Boolean),\n }),\n success: Schema.Struct({\n total: Schema.Number,\n embedded: Schema.Number,\n model: Schema.String,\n }),\n error: PanRpcError,\n})\n\n/** Aggregate cost totals for discovered sessions */\nexport const GetConversationCostRpc = Rpc.make(WS_METHODS.getConversationCost, {\n payload: ConversationFilter,\n success: ConversationCostTotals,\n error: PanRpcError,\n})\n\n/** Aggregate workspace cost totals for the full filtered corpus */\nexport const GetConversationCostByWorkspaceRpc = Rpc.make(WS_METHODS.getConversationCostByWorkspace, {\n payload: ConversationFilter,\n success: ConversationCostSummary,\n error: PanRpcError,\n})\n\n/** Discovery index statistics */\nexport const GetConversationStatsRpc = Rpc.make(WS_METHODS.getConversationStats, {\n payload: Schema.Struct({}),\n success: DiscoveredSessionStatsResult,\n error: PanRpcError,\n})\n\n// ─── RPC Group ────────────────────────────────────────────────────────────────\n\n/** All Overdeck WebSocket RPC methods */\nexport const PanRpcGroup = RpcGroup.make(\n SubscribeDomainEventsRpc,\n SubscribeIssueEventsRpc,\n SubscribeTerminalRpc,\n SubscribeAgentOutputRpc,\n GetSnapshotRpc,\n ReplayEventsRpc,\n ReadWorkspaceFileRpc,\n ReadFileAtPathRpc,\n WriteFileAtPathRpc,\n ResolveFilePathExistsRpc,\n TerminalOpenRpc,\n TerminalWriteRpc,\n TerminalResizeRpc,\n TerminalCloseRpc,\n StartPlanningRpc,\n StartAgentRpc,\n DeepWipeRpc,\n SendTerminalInputRpc,\n ResizeTerminalRpc,\n SubscribeConversationMessagesRpc,\n SubscribeProjectSessionTreeRpc,\n ShellOpenInEditorRpc,\n GetAvailableEditorsRpc,\n ScanConversationsRpc,\n SearchConversationsRpc,\n ListDiscoveredSessionsRpc,\n ListSessionsFeedRpc,\n GetSessionsFeedFacetsRpc,\n GetDiscoveredSessionRpc,\n EnrichSessionsRpc,\n EmbedSessionsRpc,\n GetConversationCostRpc,\n GetConversationCostByWorkspaceRpc,\n GetConversationStatsRpc,\n)\nexport type PanRpcGroup = typeof PanRpcGroup\n","/**\n * Runtime-map helpers shared by the reducers (PAN-4522).\n */\nimport type { AgentRuntimeSnapshot } from './types'\n\nexport function defaultRuntimeSnapshot(agentId: string, timestamp: string, sequence: number): AgentRuntimeSnapshot {\n return { id: agentId, activity: 'idle', lastActivity: timestamp, updatedAtSequence: sequence }\n}\n\n/**\n * Merge a snapshot's runtime map into the client's, per agent. A freshly booted\n * server may serve an older or missing entry; a client entry with a strictly\n * newer `lastActivity` (or an equal stamp with a higher `updatedAtSequence`)\n * survives, and an agent the snapshot omits keeps its entry.\n */\nexport function mergeSnapshotRuntimeById(\n current: Readonly<Record<string, AgentRuntimeSnapshot>>,\n incoming: Readonly<Record<string, AgentRuntimeSnapshot>> | undefined,\n): Record<string, AgentRuntimeSnapshot> {\n if (!incoming) return { ...current }\n const merged: Record<string, AgentRuntimeSnapshot> = { ...current }\n for (const [agentId, next] of Object.entries(incoming)) {\n const held = current[agentId]\n merged[agentId] = held && heldIsNewer(held, next) ? held : next\n }\n return merged\n}\n\n/** Newer `lastActivity` wins; equal stamps fall to the higher `updatedAtSequence`. */\nfunction heldIsNewer(held: AgentRuntimeSnapshot, next: AgentRuntimeSnapshot): boolean {\n const heldAt = Date.parse(held.lastActivity)\n const nextAt = Date.parse(next.lastActivity)\n if (heldAt > nextAt) return true\n if (heldAt !== nextAt) return false\n return Number.isFinite(held.updatedAtSequence) && Number.isFinite(next.updatedAtSequence)\n && held.updatedAtSequence > next.updatedAtSequence\n}\n","/** Index patches preserve the complete tracker rows and their exact ordering. */\nexport interface IssueDelta {\n readonly length: number\n readonly changes: ReadonlyArray<{ readonly index: number; readonly issue: unknown }>\n}\n\nexport function createIssueDelta(previous: readonly unknown[], next: readonly unknown[]): IssueDelta | null {\n const changes: Array<{ index: number; issue: unknown }> = []\n for (let index = 0; index < next.length; index++) {\n if (index >= previous.length || JSON.stringify(previous[index]) !== JSON.stringify(next[index])) {\n changes.push({ index, issue: next[index] })\n }\n }\n return changes.length || previous.length !== next.length ? { length: next.length, changes } : null\n}\n\nexport function applyIssueDelta(previous: readonly unknown[], delta: IssueDelta): unknown[] {\n const next = previous.slice(0, delta.length)\n for (const { index, issue } of delta.changes) next[index] = issue\n return next\n}\n","/**\n * Shared event reducers — pure functions for applying domain events to state (PAN-433)\n *\n * Used by:\n * - Server read model (src/dashboard/server/read-model.ts)\n * - Frontend Zustand store (src/dashboard/frontend/src/lib/store.ts)\n *\n * Both produce identical results for the same event, keeping server and client\n * eventually consistent (the T3Code pattern).\n */\n\nimport type {\n AgentRuntimeSnapshot,\n AgentSnapshot,\n ChannelPermissionRequestSnapshot,\n DashboardSnapshot,\n EmbedProgressSnapshot,\n EnrichProgressSnapshot,\n EnrichStatsSnapshot,\n ProjectCiSnapshot,\n ResourceStats,\n RestartGateSnapshot,\n ProjectDeploySnapshot,\n ScanProgressSnapshot,\n TurnDiffSummary,\n} from './types'\nimport { defaultRuntimeSnapshot, mergeSnapshotRuntimeById } from './agent-runtime-merge'\nimport type { DerivedIssueState } from './derived-issue-state'\nimport type { GitHubQuotaSnapshot } from './github-quota'\nimport type { BackendPane } from './backend-pane'\nimport type {\n MemoryObservation,\n MemoryStatus,\n PendingTurn,\n RagDecision,\n ResetMarker,\n} from './memory'\nimport type { DomainEvent } from './events'\nimport { applyIssueDelta } from './issue-delta'\n\n// ─── Read model state shape ──────────────────────────────────────────────────\n\nexport interface ResolvedChannelPermissionDecision {\n requestId: string\n agentId: string\n issueId?: string\n behavior: 'allow' | 'deny'\n}\n\nexport interface MemoryHealthSnapshot {\n projectId: string\n issueId: string\n status: 'healthy' | 'degraded' | 'failing'\n reason: string | null\n /** Human-readable cause of the most recent failure (provider error text). */\n detail?: string\n ragDecision?: RagDecision\n updatedAt: string\n}\n\nexport interface MemoryRollupTriggerSnapshot {\n projectId: string\n workspaceId: string\n issueId: string\n pendingTurns: PendingTurn[]\n pendingCount: number\n threshold: number\n triggeredAt: string\n}\n\nexport interface MemoryReadModelState {\n observationsByIssueId: Record<string, MemoryObservation[]>\n statusByIssueId: Record<string, MemoryStatus>\n rollupsByIssueId: Record<string, MemoryRollupTriggerSnapshot[]>\n resetMarkersByScopeId: Record<string, ResetMarker[]>\n healthByIssueId: Record<string, MemoryHealthSnapshot>\n}\n\nexport interface ReadModelState {\n sequence: number\n agentsById: Record<string, AgentSnapshot>\n /**\n * PAN-800 — per-agent runtime state derived from agent.* runtime events.\n * Kept separate from agentsById because it updates on every tool call; merging\n * would cause the whole AgentSnapshot to re-diff on the frontend.\n */\n agentRuntimeById: Record<string, AgentRuntimeSnapshot>\n /** PAN-3917 FR-6 — derived pipeline state, keyed by issue id. Never persisted. */\n derivedIssueStateByIssueId: Record<string, DerivedIssueState>\n /** PAN-3917 FR-12 — live agent panes the terminal backend reports, by pane id. */\n backendPanesById: Record<string, BackendPane>\n resources: ResourceStats | null\n agentOutputById: Record<string, string[]>\n issuesRaw: unknown[]\n recentActivity: unknown[]\n detailedActivity: unknown[]\n ttsActivity: unknown[]\n shadowInferenceByIssueId: Record<string, string>\n turnDiffSummariesByAgentId: Record<string, TurnDiffSummary[]>\n channelPermissionRequestsById: Record<string, ChannelPermissionRequestSnapshot>\n channelPermissionRequestIdsByAgentId: Record<string, string[]>\n resolvedChannelPermissionDecisionsById: Record<string, ResolvedChannelPermissionDecision>\n resolvedChannelPermissionDecisionIdsByAgentId: Record<string, string[]>\n dashboardLifecycle: DashboardLifecycleState\n /** Conversation names currently undergoing Overdeck-native compaction. */\n conversationsCompactingByName: Record<string, boolean>\n /** Conversation names currently waiting for user permission (PermissionRequest hook). */\n conversationsAwaitingPermissionByName: Record<string, boolean>\n /** Bumped whenever a conversation is created, so the sidebar list can refresh\n * immediately instead of waiting for its poll tick. */\n conversationsListRevision: number\n observationsByIssueId: Record<string, MemoryObservation[]>\n statusByIssueId: Record<string, MemoryStatus>\n rollupsByIssueId: Record<string, MemoryRollupTriggerSnapshot[]>\n resetMarkersByScopeId: Record<string, ResetMarker[]>\n healthByIssueId: Record<string, MemoryHealthSnapshot>\n /** PAN-457 — active scan progress snapshot */\n scanProgress: ScanProgressSnapshot | null\n /** PAN-457 — latest enrichment stats */\n enrichStats: EnrichStatsSnapshot | null\n /** PAN-457 — latest per-session enrichment progress */\n enrichProgressBySessionId: Record<number, EnrichProgressSnapshot>\n /** PAN-457 — latest per-session embedding progress */\n embedProgressBySessionId: Record<number, EmbedProgressSnapshot>\n /** PAN-3537 — per-project default-branch CI record, keyed by project key. */\n ciByProjectKey: Record<string, ProjectCiSnapshot>\n /** PAN-3729 — voluntary-restart approval gate; null until the gate first reports. */\n restartGate: RestartGateSnapshot | null\n /** PAN-4264 — GitHub API quota view; null until the publisher first reports. */\n githubQuota: GitHubQuotaSnapshot | null\n /** PAN-3751 — in-flight deploys keyed by project key; derived, never stored. */\n deployByProjectKey: Record<string, ProjectDeploySnapshot>\n /** sessionId (from agent snapshot or runtime claudeSessionId) → agentId index */\n agentIdBySessionId: Record<string, string>\n}\n\nexport interface DashboardLifecycleState {\n active: boolean\n reason: string | null\n issueId: string | null\n trigger: string | null\n startedAt: string | null\n completedAt: string | null\n failedAt: string | null\n error: string | null\n}\n\nexport const INITIAL_READ_MODEL_STATE: ReadModelState = {\n sequence: 0,\n agentsById: {},\n agentRuntimeById: {},\n derivedIssueStateByIssueId: {},\n backendPanesById: {},\n resources: null,\n agentOutputById: {},\n issuesRaw: [],\n recentActivity: [],\n detailedActivity: [],\n ttsActivity: [],\n shadowInferenceByIssueId: {},\n turnDiffSummariesByAgentId: {},\n channelPermissionRequestsById: {},\n channelPermissionRequestIdsByAgentId: {},\n resolvedChannelPermissionDecisionsById: {},\n resolvedChannelPermissionDecisionIdsByAgentId: {},\n conversationsCompactingByName: {},\n conversationsAwaitingPermissionByName: {},\n conversationsListRevision: 0,\n observationsByIssueId: {},\n statusByIssueId: {},\n rollupsByIssueId: {},\n resetMarkersByScopeId: {},\n healthByIssueId: {},\n scanProgress: null,\n enrichStats: null,\n enrichProgressBySessionId: {},\n embedProgressBySessionId: {},\n ciByProjectKey: {},\n restartGate: null,\n githubQuota: null,\n deployByProjectKey: {},\n agentIdBySessionId: {},\n dashboardLifecycle: {\n active: false,\n reason: null,\n issueId: null,\n trigger: null,\n startedAt: null,\n completedAt: null,\n failedAt: null,\n error: null,\n },\n}\n\n// ─── Constants ───────────────────────────────────────────────────────────────\n\nconst MAX_AGENT_OUTPUT_LINES = 200\nconst MAX_ACTIVITY_ENTRIES = 50\nconst MAX_DETAILED_ENTRIES = 200\nconst MAX_TTS_ENTRIES = 50\nconst MAX_SESSION_PROGRESS_ENTRIES = 100\nexport const DEFAULT_MAX_TURN_DIFF_SUMMARIES_PER_AGENT = 200\nexport const DEFAULT_MAX_MEMORY_OBSERVATIONS_PER_ISSUE = 50\n\nexport function getMaxMemoryObservationsPerIssue(): number {\n const raw = (globalThis as { process?: { env?: Record<string, string | undefined> } }).process?.env?.OVERDECK_MEMORY_OBSERVATION_LIMIT\n const parsed = raw ? Number.parseInt(raw, 10) : Number.NaN\n return Number.isInteger(parsed) && parsed > 0 ? parsed : DEFAULT_MAX_MEMORY_OBSERVATIONS_PER_ISSUE\n}\n\nexport function trimMemoryObservations(observations: MemoryObservation[]): MemoryObservation[] {\n const max = getMaxMemoryObservationsPerIssue()\n return observations.length > max ? observations.slice(-max) : observations\n}\n\nexport function getMaxTurnDiffSummariesPerAgent(): number {\n const raw = (globalThis as { process?: { env?: Record<string, string | undefined> } }).process?.env?.OVERDECK_TURN_DIFF_SUMMARY_LIMIT\n const parsed = raw ? Number.parseInt(raw, 10) : Number.NaN\n return Number.isInteger(parsed) && parsed > 0 ? parsed : DEFAULT_MAX_TURN_DIFF_SUMMARIES_PER_AGENT\n}\n\nexport function isTerminalTurnDiffSummaryStatus(status: unknown): boolean {\n return status === 'stopped' || status === 'done' || status === 'archived' || status === 'closed'\n}\n\nexport function trimTurnDiffSummaries(summaries: TurnDiffSummary[]): TurnDiffSummary[] {\n const max = getMaxTurnDiffSummariesPerAgent()\n return summaries.length > max ? summaries.slice(-max) : summaries\n}\n\nfunction upsertBoundedSessionProgress<T extends { sessionId: number; timestamp: string }>(\n bySessionId: Record<number, T>,\n progress: T,\n): Record<number, T> {\n const existing = bySessionId[progress.sessionId]\n const entries = Object.values(bySessionId)\n if (existing || entries.length < MAX_SESSION_PROGRESS_ENTRIES) {\n return { ...bySessionId, [progress.sessionId]: progress }\n }\n const keep = entries\n .sort((a, b) => a.timestamp.localeCompare(b.timestamp))\n .slice(-(MAX_SESSION_PROGRESS_ENTRIES - 1))\n const next: Record<number, T> = {}\n for (const entry of [...keep, progress]) next[entry.sessionId] = entry\n return next\n}\n\nexport function omitTurnDiffSummariesForAgent(\n turnDiffSummariesByAgentId: ReadModelState['turnDiffSummariesByAgentId'] | undefined,\n agentId: string,\n): ReadModelState['turnDiffSummariesByAgentId'] {\n const { [agentId]: _removed, ...rest } = turnDiffSummariesByAgentId ?? {}\n return rest\n}\n\n/** Remove all entries in agentIdBySessionId that point to the given agentId. */\nfunction removeAgentFromSessionIndex(\n agentIdBySessionId: ReadModelState['agentIdBySessionId'] | undefined,\n agentId: string,\n): ReadModelState['agentIdBySessionId'] {\n const next: Record<string, string> = {}\n for (const [sessionId, id] of Object.entries(agentIdBySessionId ?? {})) {\n if (id !== agentId) next[sessionId] = id\n }\n return next\n}\n\n// ─── syncSnapshot — bootstrap from a full DashboardSnapshot ──────────────────\n\nexport function syncSnapshot(state: ReadModelState, snapshot: DashboardSnapshot): ReadModelState {\n const agentsById: Record<string, AgentSnapshot> = {}\n for (const agent of snapshot.agents) {\n agentsById[agent.id] = agent\n }\n\n const derivedIssueStateByIssueId: Record<string, DerivedIssueState> = {}\n for (const derived of snapshot.derivedIssueStates ?? []) {\n derivedIssueStateByIssueId[derived.issueId] = derived\n }\n\n const backendPanesById: Record<string, BackendPane> = {}\n for (const pane of snapshot.backendPanes ?? []) {\n backendPanesById[pane.id] = pane\n }\n\n const channelPermissionRequestsById: Record<string, ChannelPermissionRequestSnapshot> = {}\n const channelPermissionRequestIdsByAgentId: Record<string, string[]> = {}\n for (const request of snapshot.channelPermissionRequests ?? []) {\n channelPermissionRequestsById[request.requestId] = request\n const existing = channelPermissionRequestIdsByAgentId[request.agentId] ?? []\n channelPermissionRequestIdsByAgentId[request.agentId] = [...existing, request.requestId]\n }\n\n const memory = snapshot.memory as Partial<MemoryReadModelState> | undefined\n\n // PAN-4522: keep a client runtime stamp that is newer than what a freshly\n // booted server served (FR-4).\n const agentRuntimeById = mergeSnapshotRuntimeById(state.agentRuntimeById, snapshot.agentRuntimeById)\n\n // Rebuild sessionId → agentId index from the merged runtime map (FR-5).\n const agentIdBySessionId: Record<string, string> = {}\n for (const agent of snapshot.agents) {\n if (agent.sessionId) agentIdBySessionId[agent.sessionId] = agent.id\n }\n for (const [agentId, runtime] of Object.entries(agentRuntimeById)) {\n if (runtime.claudeSessionId) agentIdBySessionId[runtime.claudeSessionId] = agentId\n }\n\n return {\n ...state,\n sequence: snapshot.sequence,\n agentsById,\n derivedIssueStateByIssueId,\n backendPanesById,\n agentRuntimeById,\n channelPermissionRequestsById,\n channelPermissionRequestIdsByAgentId,\n resolvedChannelPermissionDecisionsById: {},\n resolvedChannelPermissionDecisionIdsByAgentId: {},\n resources: (snapshot.resources as ResourceStats | undefined) ?? null,\n issuesRaw: (snapshot as any).issues ?? state.issuesRaw,\n recentActivity: snapshot.recentActivity ? [...snapshot.recentActivity] : state.recentActivity,\n observationsByIssueId: memory?.observationsByIssueId ?? state.observationsByIssueId,\n statusByIssueId: memory?.statusByIssueId ?? state.statusByIssueId,\n rollupsByIssueId: memory?.rollupsByIssueId ?? state.rollupsByIssueId,\n resetMarkersByScopeId: memory?.resetMarkersByScopeId ?? state.resetMarkersByScopeId,\n healthByIssueId: memory?.healthByIssueId ?? state.healthByIssueId,\n scanProgress: snapshot.scanProgress ?? null,\n enrichStats: snapshot.enrichStats ?? null,\n enrichProgressBySessionId: snapshot.enrichProgressBySessionId ?? {},\n embedProgressBySessionId: snapshot.embedProgressBySessionId ?? {},\n ciByProjectKey: snapshot.ciByProjectKey ?? state.ciByProjectKey,\n restartGate: snapshot.restartGate ?? state.restartGate,\n githubQuota: snapshot.githubQuota ?? state.githubQuota,\n deployByProjectKey: snapshot.deployByProjectKey ?? state.deployByProjectKey,\n agentIdBySessionId,\n }\n}\n\n/**\n * #4105 — `hasLivePane` and its deprecated alias `hasLiveTmuxSession` carry one\n * fact. An agent snapshot from a stored event may carry only the old name; fill\n * whichever one is missing so readers of either name agree.\n */\nexport function withPaneLivenessAlias(agent: AgentSnapshot): AgentSnapshot {\n const pane = agent.hasLivePane ?? agent.hasLiveTmuxSession\n if (pane === undefined || (agent.hasLivePane === pane && agent.hasLiveTmuxSession === pane)) return agent\n return { ...agent, hasLivePane: pane, hasLiveTmuxSession: pane }\n}\n\n// ─── applyEvent — apply a single domain event ───────────────────────────────\n\nexport function applyEvent(state: ReadModelState, event: DomainEvent): ReadModelState {\n switch (event.type) {\n case 'agent.created': {\n const existing = state.agentsById[event.payload.agentId]\n const agent = withPaneLivenessAlias(event.payload.agent)\n const nextAgentIdBySessionId = agent.sessionId\n ? { ...state.agentIdBySessionId, [agent.sessionId]: agent.id }\n : state.agentIdBySessionId\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentsById: {\n ...state.agentsById,\n [event.payload.agentId]: existing\n ? { ...existing, ...agent }\n : agent,\n },\n agentIdBySessionId: nextAgentIdBySessionId,\n }\n }\n\n case 'agent.started': {\n const agent = withPaneLivenessAlias(event.payload.agent)\n const nextAgentIdBySessionId = agent.sessionId\n ? { ...state.agentIdBySessionId, [agent.sessionId]: agent.id }\n : state.agentIdBySessionId\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentsById: {\n ...state.agentsById,\n [event.payload.agentId]: agent,\n },\n agentIdBySessionId: nextAgentIdBySessionId,\n }\n }\n\n case 'agent.enrichment_changed': {\n const agent = state.agentsById[event.payload.agentId]\n if (!agent) return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentsById: {\n ...state.agentsById,\n [event.payload.agentId]: {\n ...agent,\n role: event.payload.role ?? agent.role,\n hasPendingQuestion: event.payload.hasPendingQuestion ?? false,\n pendingQuestionCount: event.payload.pendingQuestionCount ?? 0,\n pendingQuestionPrompt: event.payload.pendingQuestionPrompt,\n pendingQuestionReason: event.payload.pendingQuestionReason,\n pendingInputCount: event.payload.pendingInputCount,\n pendingInputKinds: event.payload.pendingInputKinds,\n pendingAskUserQuestion: event.payload.pendingAskUserQuestion,\n pendingProposedPlan: event.payload.pendingProposedPlan,\n resolution: event.payload.resolution,\n resolutionCount: event.payload.resolutionCount,\n turnEndAssessment: event.payload.turnEndAssessment,\n },\n },\n }\n }\n\n case 'agent.stopped': {\n const stoppedAgent = state.agentsById[event.payload.agentId]\n const nextAgentsById = stoppedAgent\n ? {\n ...state.agentsById,\n [event.payload.agentId]: {\n ...stoppedAgent,\n status: 'stopped' as const,\n hasLivePane: false,\n hasLiveTmuxSession: false,\n lastActivity: event.timestamp,\n },\n }\n : state.agentsById\n // PAN-800 — mark the runtime snapshot stopped too. pan kill bypasses the\n // Stop hook, so without this fold a killed agent shows activity: \"idle\"\n // forever. Retain the row (don't delete) so the projection cache has the\n // last-known snapshot for forensics.\n const runtimeById = state.agentRuntimeById ?? {}\n const prevRuntime = runtimeById[event.payload.agentId]\n const nextRuntimeById = prevRuntime\n ? {\n ...runtimeById,\n [event.payload.agentId]: {\n ...prevRuntime,\n activity: 'stopped' as const,\n currentTool: undefined,\n currentToolDescription: undefined,\n thinking: undefined,\n waiting: undefined,\n channelReply: undefined,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n },\n }\n : runtimeById\n const permissionRequestIdsByAgentId = state.channelPermissionRequestIdsByAgentId ?? {}\n const pendingIds = permissionRequestIdsByAgentId[event.payload.agentId] ?? []\n const nextPermissionRequestsById = { ...state.channelPermissionRequestsById }\n for (const requestId of pendingIds) {\n delete nextPermissionRequestsById[requestId]\n }\n const { [event.payload.agentId]: _removedPendingIds, ...restPendingIds } =\n permissionRequestIdsByAgentId\n\n const resolvedDecisionIdsByAgentId = state.resolvedChannelPermissionDecisionIdsByAgentId ?? {}\n const resolvedIds = resolvedDecisionIdsByAgentId[event.payload.agentId] ?? []\n const nextResolvedDecisionsById = { ...(state.resolvedChannelPermissionDecisionsById ?? {}) }\n for (const requestId of resolvedIds) {\n delete nextResolvedDecisionsById[requestId]\n }\n const { [event.payload.agentId]: _removedResolvedIds, ...restResolvedIds } =\n resolvedDecisionIdsByAgentId\n\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentsById: nextAgentsById,\n agentRuntimeById: nextRuntimeById,\n channelPermissionRequestsById: nextPermissionRequestsById,\n channelPermissionRequestIdsByAgentId: restPendingIds,\n resolvedChannelPermissionDecisionsById: nextResolvedDecisionsById,\n resolvedChannelPermissionDecisionIdsByAgentId: restResolvedIds,\n turnDiffSummariesByAgentId: omitTurnDiffSummariesForAgent(state.turnDiffSummariesByAgentId, event.payload.agentId),\n agentIdBySessionId: removeAgentFromSessionIndex(state.agentIdBySessionId, event.payload.agentId),\n }\n }\n\n case 'agent.status_changed': {\n const agent = state.agentsById[event.payload.agentId] ?? (\n event.payload.role === 'strike' && event.payload.issueId\n ? {\n id: event.payload.agentId,\n issueId: event.payload.issueId,\n status: event.payload.status,\n role: 'strike' as const,\n startedAt: event.timestamp,\n }\n : undefined\n )\n if (!agent) return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n const nextTurnDiffSummariesByAgentId = isTerminalTurnDiffSummaryStatus(event.payload.status)\n ? omitTurnDiffSummariesForAgent(state.turnDiffSummariesByAgentId, event.payload.agentId)\n : state.turnDiffSummariesByAgentId\n const nextAgent: AgentSnapshot = (() => {\n const base: Record<string, unknown> = { ...agent, status: event.payload.status }\n const optionalFields = [\n 'hasLivePane', 'hasLiveTmuxSession', 'stoppedByUser', 'stoppedByPause', 'paused', 'pausedReason', 'pausedAt',\n 'troubled', 'troubledAt', 'consecutiveFailures',\n 'firstFailureInRunAt', 'lastFailureAt', 'lastFailureReason', 'lastFailureNextRetryAt',\n 'kickoffDelivered', 'hostOverride', 'role', 'model', 'workspace', 'sessionId',\n 'lastActivity', 'lastResumeAt', 'stoppedAt', 'branch', 'costSoFar',\n 'phase', 'workType', 'roleRunHead',\n 'flywheelRunId', 'reviewSubRole', 'reviewRunId', 'reviewOutputPath',\n 'reviewSynthesisAgentId', 'reviewDeadlineAt', 'reviewMonitorSignaled', 'reviewRetryAttempt',\n 'inspectSubRole', 'deliveryMethod', 'supervisorEnabled', 'channelsEnabled',\n ] as const\n for (const field of optionalFields) {\n if (field in event.payload) {\n const value = (event.payload as Record<string, unknown>)[field]\n if (value === null || value === undefined) {\n delete base[field]\n } else {\n base[field] = value\n }\n }\n }\n // #4105 — `hasLivePane` and its deprecated alias `hasLiveTmuxSession`\n // carry one fact. A producer (or a stored event) may send either name;\n // the snapshot always carries both, so readers of either agree.\n const payloadPane = event.payload.hasLivePane ?? event.payload.hasLiveTmuxSession\n if ('hasLivePane' in event.payload || 'hasLiveTmuxSession' in event.payload) {\n if (payloadPane === null || payloadPane === undefined) {\n delete base['hasLivePane']\n delete base['hasLiveTmuxSession']\n } else {\n base['hasLivePane'] = payloadPane\n base['hasLiveTmuxSession'] = payloadPane\n }\n }\n // PAN-1520 (fixes #339) — clear stale pending-input fields whenever the\n // agent transitions out of an actively-running state. The enrichment\n // poller stops emitting events for non-running agents, so without this\n // a paused or stopped agent would keep showing INPUT/AskUserQuestion\n // forever from the operator's perspective.\n // PAN-2633 — an idle-alive agent (stopped-shaped status, live tmux pane)\n // is the archetypal awaiting-operator state and must keep its pending-input\n // payload; gate the wipe on the liveness flag carried in the event.\n const sessionAlive = payloadPane === true\n if (event.payload.status !== 'running' && event.payload.status !== 'starting' && !sessionAlive) {\n delete base['hasPendingQuestion']\n delete base['pendingQuestionCount']\n delete base['pendingQuestionPrompt']\n delete base['pendingQuestionReason']\n delete base['pendingInputCount']\n delete base['pendingInputKinds']\n delete base['pendingAskUserQuestion']\n delete base['pendingProposedPlan']\n delete base['turnEndAssessment']\n }\n return base as AgentSnapshot\n })()\n\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentsById: {\n ...state.agentsById,\n [event.payload.agentId]: nextAgent,\n },\n turnDiffSummariesByAgentId: nextTurnDiffSummariesByAgentId,\n agentIdBySessionId: event.payload.sessionId\n ? { ...state.agentIdBySessionId, [event.payload.sessionId]: event.payload.agentId }\n : state.agentIdBySessionId,\n }\n }\n\n case 'agent.heartbeat_dead': {\n const agent = state.agentsById[event.payload.agentId]\n if (!agent) return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n const runtimeById = state.agentRuntimeById ?? {}\n const prevRuntime = runtimeById[event.payload.agentId]\n const nextRuntimeById = prevRuntime\n ? {\n ...runtimeById,\n [event.payload.agentId]: {\n ...prevRuntime,\n activity: 'stopped' as const,\n currentTool: undefined,\n currentToolDescription: undefined,\n thinking: undefined,\n waiting: undefined,\n channelReply: undefined,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n },\n }\n : runtimeById\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentsById: {\n ...state.agentsById,\n [event.payload.agentId]: { ...agent, status: 'error' as const },\n },\n agentRuntimeById: nextRuntimeById,\n }\n }\n\n case 'agent.output_received': {\n const existing = state.agentOutputById[event.payload.agentId] ?? []\n const updated = [...existing, ...event.payload.lines].slice(-MAX_AGENT_OUTPUT_LINES)\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentOutputById: {\n ...state.agentOutputById,\n [event.payload.agentId]: updated,\n },\n }\n }\n\n // PAN-3917 FR-6 — the derived pipeline state of one issue. The server\n // recomputes it from the tracker, the forge, git and the terminal backend\n // and fans it out with `emitOnly`; nothing is stored.\n case 'issue_state.changed':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n derivedIssueStateByIssueId: {\n ...state.derivedIssueStateByIssueId,\n [event.payload.issueState.issueId]: event.payload.issueState,\n },\n }\n\n // PAN-3917 FR-12 — live pane inventory. Also `emitOnly`.\n case 'backend_pane.changed':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n backendPanesById: {\n ...state.backendPanesById,\n [event.payload.pane.id]: event.payload.pane,\n },\n }\n\n case 'backend_pane.removed': {\n const { [event.payload.paneId]: _removed, ...rest } = state.backendPanesById\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n backendPanesById: rest,\n }\n }\n\n // Review lifecycle telemetry. The reviewer roster and its verdict are read\n // from the backend pane inventory and the PR, so these are sequence-only.\n case 'review.reviewer_started':\n case 'review.reviewer_completed':\n case 'review.specialist.timed_out':\n case 'review.coordinator_started':\n case 'review.coordinator.died':\n case 'pipeline.review-started':\n case 'pipeline.review-completed':\n case 'pipeline.test-started':\n case 'pipeline.test-completed':\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n\n case 'merge.ready':\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n\n // PAN-1048 — specialist.* events still flow but no longer feed a separate\n // projection. The same lifecycle is now visible via agent.started /\n // agent.stopped + role-filtered agentsById. Sequence-only update keeps\n // clients in lockstep.\n case 'specialist.started':\n case 'specialist.completed':\n case 'specialist.failed':\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n\n case 'project.ci_suite_observed': {\n const p = event.payload\n const existing = state.ciByProjectKey[p.projectKey]\n const suite = {\n status: p.status,\n conclusion: p.conclusion,\n htmlUrl: p.htmlUrl,\n observedAt: p.observedAt,\n }\n\n let next: ProjectCiSnapshot\n if (!existing) {\n if (p.authoritativeHead !== true) {\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n }\n next = {\n projectKey: p.projectKey, repo: p.repo, branch: p.branch, headSha: p.headSha,\n suites: { [p.suiteId]: suite }, updatedAt: p.observedAt,\n }\n } else if (existing.headSha === p.headSha) {\n const existingSuite = existing.suites[p.suiteId]\n const existingSuiteObservedAt = existingSuite?.observedAt ?? existing.updatedAt\n if (existingSuite && p.observedAt < existingSuiteObservedAt) {\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n }\n next = {\n ...existing,\n suites: { ...existing.suites, [p.suiteId]: suite },\n updatedAt: p.observedAt > existing.updatedAt ? p.observedAt : existing.updatedAt,\n }\n } else if (p.authoritativeHead === true && p.observedAt >= existing.updatedAt) {\n next = {\n projectKey: p.projectKey, repo: p.repo, branch: p.branch, headSha: p.headSha,\n suites: { [p.suiteId]: suite }, updatedAt: p.observedAt,\n }\n } else {\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n }\n\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n ciByProjectKey: { ...state.ciByProjectKey, [p.projectKey]: next },\n }\n }\n\n case 'project.ci_head_observed': {\n const p = event.payload\n const existing = state.ciByProjectKey[p.projectKey]\n if (existing && p.observedAt < existing.updatedAt) {\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n }\n\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n ciByProjectKey: {\n ...state.ciByProjectKey,\n [p.projectKey]: {\n projectKey: p.projectKey,\n repo: p.repo,\n branch: p.branch,\n headSha: p.headSha,\n suites: p.suites,\n updatedAt: p.observedAt,\n },\n },\n }\n }\n\n // PAN-3729: the payload is the complete gate projection, so this is a\n // plain replace — no merge, no ordering guard. The gate has exactly one\n // writer, and it emits after every state transition.\n case 'restart_gate.changed':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n restartGate: {\n status: event.payload.status,\n pending: event.payload.pending,\n // PAN-3731: carries the \"requesters went away without restarting\"\n // notice. Dropping it here would silently starve the banner.\n ...(event.payload.lastOutcome === undefined ? {} : { lastOutcome: event.payload.lastOutcome }),\n },\n }\n\n // PAN-4264: the complete quota snapshot, plain replace — like the restart gate.\n case 'github_quota.changed':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n githubQuota: event.payload,\n }\n\n // PAN-3751: complete projection, plain replace — like the restart gate.\n case 'project.deploy_changed':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n deployByProjectKey: event.payload.deploys,\n }\n\n case 'resources.updated':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n resources: event.payload.resources,\n }\n\n case 'issues.snapshot':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n issuesRaw: event.payload.issues as unknown[],\n }\n\n case 'issues.updated':\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n\n case 'issues.delta':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n issuesRaw: applyIssueDelta(state.issuesRaw, event.payload),\n }\n\n case 'issue.statusChanged': {\n const { issueId, status, canonicalStatus, labels } = event.payload\n const updatedIssues = (state.issuesRaw as Array<Record<string, unknown>>).map(issue => {\n if (issue['identifier'] === issueId || issue['id'] === issueId) {\n const patch: Record<string, unknown> = { ...issue, status, canonicalStatus, state: canonicalStatus }\n if (labels) patch.labels = labels\n return patch\n }\n return issue\n })\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n issuesRaw: updatedIssues,\n }\n }\n\n case 'activity.updated':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n recentActivity: (event.payload.events as unknown[]).slice(0, MAX_ACTIVITY_ENTRIES),\n }\n\n case 'shadow.inference_update':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n shadowInferenceByIssueId: {\n ...state.shadowInferenceByIssueId,\n [event.payload.issueId]: event.payload.content,\n },\n }\n\n case 'planning.started': {\n const sessionName = event.payload.sessionName as string\n const issueId = event.payload.issueId as string\n if (sessionName) {\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentsById: {\n ...state.agentsById,\n [sessionName]: {\n ...state.agentsById[sessionName],\n id: sessionName,\n issueId,\n status: 'running',\n startedAt: event.timestamp,\n runtime: (event.payload.harness as 'claude-code' | 'pi' | 'codex') ?? 'claude-code',\n role: 'plan' as const,\n },\n },\n }\n }\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n }\n case 'workspace.created':\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n\n case 'workspace.wipe_started': {\n const { issueId } = event.payload\n const updatedIssues = (state.issuesRaw as Array<Record<string, unknown>>).map(issue => {\n if (issue['identifier'] === issueId || issue['id'] === issueId) {\n return { ...issue, canonicalStatus: 'wiping', state: 'wiping' }\n }\n return issue\n })\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n issuesRaw: updatedIssues,\n }\n }\n\n case 'workspace.destroyed':\n case 'workspace.deleted': {\n const { issueId } = event.payload\n const removedAgentIds = Object.entries(state.agentsById)\n .filter(([, agent]) => agent.issueId === issueId)\n .map(([agentId]) => agentId)\n const updatedAgents = Object.fromEntries(\n Object.entries(state.agentsById).filter(([, agent]) => agent.issueId !== issueId)\n )\n let nextTurnDiffSummariesByAgentId = state.turnDiffSummariesByAgentId\n let nextAgentIdBySessionId = state.agentIdBySessionId\n for (const agentId of removedAgentIds) {\n nextTurnDiffSummariesByAgentId = omitTurnDiffSummariesForAgent(nextTurnDiffSummariesByAgentId, agentId)\n nextAgentIdBySessionId = removeAgentFromSessionIndex(nextAgentIdBySessionId, agentId)\n }\n const updatedIssues = (state.issuesRaw as Array<Record<string, unknown>>).map(issue => {\n if (issue['identifier'] === issueId || issue['id'] === issueId) {\n return { ...issue, status: 'Todo', canonicalStatus: 'todo', state: 'todo' }\n }\n return issue\n })\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentsById: updatedAgents,\n turnDiffSummariesByAgentId: nextTurnDiffSummariesByAgentId,\n agentIdBySessionId: nextAgentIdBySessionId,\n issuesRaw: updatedIssues,\n }\n }\n\n case 'workspace.aborted': {\n const { issueId, sessionName } = event.payload\n let updatedAgents: typeof state.agentsById\n let nextTurnDiffSummariesByAgentId = state.turnDiffSummariesByAgentId\n let nextAgentIdBySessionId = state.agentIdBySessionId\n if (sessionName) {\n const { [sessionName]: _removed, ...rest } = state.agentsById\n updatedAgents = rest\n nextTurnDiffSummariesByAgentId = omitTurnDiffSummariesForAgent(nextTurnDiffSummariesByAgentId, sessionName)\n nextAgentIdBySessionId = removeAgentFromSessionIndex(nextAgentIdBySessionId, sessionName)\n } else {\n const removedAgentIds = Object.entries(state.agentsById)\n .filter(([, agent]) => agent.issueId === issueId)\n .map(([agentId]) => agentId)\n updatedAgents = Object.fromEntries(\n Object.entries(state.agentsById).filter(([, agent]) => agent.issueId !== issueId)\n )\n for (const agentId of removedAgentIds) {\n nextTurnDiffSummariesByAgentId = omitTurnDiffSummariesForAgent(nextTurnDiffSummariesByAgentId, agentId)\n nextAgentIdBySessionId = removeAgentFromSessionIndex(nextAgentIdBySessionId, agentId)\n }\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentsById: updatedAgents,\n turnDiffSummariesByAgentId: nextTurnDiffSummariesByAgentId,\n agentIdBySessionId: nextAgentIdBySessionId,\n }\n }\n\n case 'planning.failed':\n case 'planning.sync':\n case 'plan.item_status_changed':\n case 'plan.subitem_status_changed':\n case 'plan.items_unblocked':\n case 'operator.intervention':\n case 'substrate.bug_filed':\n case 'cost.event_recorded':\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n\n case 'memory.observation_created': {\n const observation = event.payload.observation\n // A null issueId (main/scratch workspace turn, PRD D-6) falls back to\n // workspaceId as the read-model key until events-workspaceid widens this.\n const observationKey = observation.issueId ?? observation.workspaceId\n const existing = state.observationsByIssueId[observationKey] ?? []\n const index = existing.findIndex(entry => entry.id === observation.id)\n const updated = trimMemoryObservations(index === -1\n ? [...existing, observation]\n : existing.map((entry, entryIndex) => entryIndex === index ? observation : entry))\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n observationsByIssueId: {\n ...state.observationsByIssueId,\n [observationKey]: updated,\n },\n }\n }\n\n case 'memory.status_updated': {\n const { identity, status } = event.payload\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n statusByIssueId: {\n ...state.statusByIssueId,\n [identity.issueId]: status,\n },\n }\n }\n\n case 'memory.rollup_triggered': {\n const trigger: MemoryRollupTriggerSnapshot = {\n projectId: event.payload.projectId,\n workspaceId: event.payload.workspaceId,\n issueId: event.payload.issueId,\n pendingTurns: [],\n pendingCount: event.payload.pendingCount,\n threshold: event.payload.threshold,\n triggeredAt: event.timestamp,\n }\n const existing = state.rollupsByIssueId[event.payload.issueId] ?? []\n const updated = [...existing, trigger].slice(-10)\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n rollupsByIssueId: {\n ...state.rollupsByIssueId,\n [event.payload.issueId]: updated,\n },\n }\n }\n\n case 'memory.reset_marker_created': {\n const { marker } = event.payload\n const key = `${marker.scope}:${marker.scopeId}`\n const existing = state.resetMarkersByScopeId[key] ?? []\n const index = existing.findIndex(entry => entry.id === marker.id)\n const updated = index === -1\n ? [...existing, marker]\n : existing.map((entry, entryIndex) => entryIndex === index ? marker : entry)\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n resetMarkersByScopeId: {\n ...state.resetMarkersByScopeId,\n [key]: updated,\n },\n }\n }\n\n case 'memory.health_changed': {\n const health: MemoryHealthSnapshot = {\n projectId: event.payload.projectId,\n issueId: event.payload.issueId,\n status: event.payload.status,\n reason: event.payload.reason,\n // Omit absent optionals entirely — an explicit `key: undefined` is not a\n // valid JSON value and makes the whole DashboardSnapshot fail the\n // Schema.Json codec used for the `memory` field, breaking the RPC bootstrap.\n ...(event.payload.detail !== undefined ? { detail: event.payload.detail } : {}),\n ...(event.payload.ragDecision !== undefined ? { ragDecision: event.payload.ragDecision } : {}),\n updatedAt: event.timestamp,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n healthByIssueId: {\n ...state.healthByIssueId,\n [event.payload.issueId]: health,\n },\n }\n }\n\n // ─── PAN-800 Agent Runtime Events ──────────────────────────────────────\n case 'agent.hook_fired':\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n\n case 'agent.activity_changed': {\n const { agentId, activity, currentTool, toolDescription } = event.payload\n const prev = state.agentRuntimeById[agentId]\n ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence)\n const next: AgentRuntimeSnapshot = {\n ...prev,\n activity,\n currentTool: activity === 'working' ? currentTool : undefined,\n currentToolDescription: activity === 'working' ? toolDescription : undefined,\n // Clear thinking/waiting on transitions away from those activities.\n thinking: activity === 'thinking' ? prev.thinking : undefined,\n waiting: activity === 'waiting' ? prev.waiting : undefined,\n channelReply: activity === 'working' ? undefined : prev.channelReply,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n }\n }\n\n case 'agent.thinking_started': {\n const { agentId, lastToolAt } = event.payload\n const prev = state.agentRuntimeById[agentId]\n ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence)\n const next: AgentRuntimeSnapshot = {\n ...prev,\n activity: 'thinking',\n currentTool: undefined,\n currentToolDescription: undefined,\n thinking: { since: event.timestamp, lastToolAt },\n waiting: undefined,\n channelReply: undefined,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n }\n }\n\n case 'agent.thinking_stopped': {\n const { agentId } = event.payload\n const prev = state.agentRuntimeById[agentId]\n if (!prev) return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n // Clear the thinking state but leave activity for the follow-up event\n // (agent.activity_changed / waiting_started / stopped) to set.\n const next: AgentRuntimeSnapshot = {\n ...prev,\n thinking: undefined,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n }\n }\n\n case 'agent.waiting_started': {\n const { agentId, reason, message } = event.payload\n const prev = state.agentRuntimeById[agentId]\n ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence)\n const next: AgentRuntimeSnapshot = {\n ...prev,\n activity: 'waiting',\n currentTool: undefined,\n currentToolDescription: undefined,\n thinking: undefined,\n waiting: {\n reason,\n startedAt: event.timestamp,\n message,\n },\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n }\n }\n\n case 'agent.waiting_cleared': {\n const { agentId } = event.payload\n const prev = state.agentRuntimeById[agentId]\n if (!prev) return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n const next: AgentRuntimeSnapshot = {\n ...prev,\n waiting: undefined,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n }\n }\n\n case 'agent.permission_requested': {\n const request = event.payload\n const permissionRequestIdsByAgentId = state.channelPermissionRequestIdsByAgentId ?? {}\n const resolvedDecisionsById = state.resolvedChannelPermissionDecisionsById ?? {}\n const resolvedDecisionIdsByAgentId = state.resolvedChannelPermissionDecisionIdsByAgentId ?? {}\n const nextPendingIds = permissionRequestIdsByAgentId[request.agentId] ?? []\n const resolvedDecision = resolvedDecisionsById[request.requestId]\n const nextResolvedDecisionsById = { ...resolvedDecisionsById }\n const nextResolvedIdsByAgentId = { ...resolvedDecisionIdsByAgentId }\n if (resolvedDecision) {\n delete nextResolvedDecisionsById[request.requestId]\n const prevResolvedIds = nextResolvedIdsByAgentId[resolvedDecision.agentId] ?? []\n const filteredResolvedIds = prevResolvedIds.filter((id) => id !== request.requestId)\n if (filteredResolvedIds.length > 0) {\n nextResolvedIdsByAgentId[resolvedDecision.agentId] = filteredResolvedIds\n } else {\n delete nextResolvedIdsByAgentId[resolvedDecision.agentId]\n }\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n channelPermissionRequestsById: {\n ...state.channelPermissionRequestsById,\n [request.requestId]: request,\n },\n channelPermissionRequestIdsByAgentId: {\n ...permissionRequestIdsByAgentId,\n [request.agentId]: nextPendingIds.includes(request.requestId)\n ? nextPendingIds\n : [...nextPendingIds, request.requestId],\n },\n resolvedChannelPermissionDecisionsById: nextResolvedDecisionsById,\n resolvedChannelPermissionDecisionIdsByAgentId: nextResolvedIdsByAgentId,\n }\n }\n\n case 'agent.permission_resolved': {\n const { [event.payload.requestId]: _removed, ...rest } = state.channelPermissionRequestsById\n const nextPendingIdsByAgentId = { ...(state.channelPermissionRequestIdsByAgentId ?? {}) }\n const prevPendingIds = nextPendingIdsByAgentId[event.payload.agentId] ?? []\n const filteredPendingIds = prevPendingIds.filter((id) => id !== event.payload.requestId)\n if (filteredPendingIds.length > 0) {\n nextPendingIdsByAgentId[event.payload.agentId] = filteredPendingIds\n } else {\n delete nextPendingIdsByAgentId[event.payload.agentId]\n }\n\n const resolvedDecisionIdsByAgentId = state.resolvedChannelPermissionDecisionIdsByAgentId ?? {}\n const nextResolvedIds = resolvedDecisionIdsByAgentId[event.payload.agentId] ?? []\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n channelPermissionRequestsById: rest,\n channelPermissionRequestIdsByAgentId: nextPendingIdsByAgentId,\n resolvedChannelPermissionDecisionsById: {\n ...(state.resolvedChannelPermissionDecisionsById ?? {}),\n [event.payload.requestId]: {\n requestId: event.payload.requestId,\n agentId: event.payload.agentId,\n issueId: event.payload.issueId,\n behavior: event.payload.behavior,\n },\n },\n resolvedChannelPermissionDecisionIdsByAgentId: {\n ...resolvedDecisionIdsByAgentId,\n [event.payload.agentId]: nextResolvedIds.includes(event.payload.requestId)\n ? nextResolvedIds\n : [...nextResolvedIds, event.payload.requestId],\n },\n }\n }\n\n case 'agent.message_received': {\n const { agentId, direction } = event.payload\n const prev = state.agentRuntimeById[agentId]\n ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence)\n const next: AgentRuntimeSnapshot = {\n ...prev,\n lastMessageAt: event.timestamp,\n channelReply: direction === 'to_agent' ? undefined : prev.channelReply,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n }\n }\n\n case 'agent.channel_reply': {\n const { agentId, reply } = event.payload\n const prev = state.agentRuntimeById[agentId]\n ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence)\n const next: AgentRuntimeSnapshot = {\n ...prev,\n channelReply: {\n ...reply,\n reportedAt: event.timestamp,\n },\n resolution:\n reply.kind === 'done'\n ? 'done'\n : reply.kind === 'needs_input'\n ? 'needs_input'\n : prev.resolution,\n resolutionUpdatedAt:\n reply.kind === 'done' || reply.kind === 'needs_input'\n ? event.timestamp\n : prev.resolutionUpdatedAt,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n }\n }\n\n case 'agent.model_set': {\n const { agentId, model, claudeSessionId, sessionModel, sessionHarness } = event.payload\n const prev = state.agentRuntimeById[agentId]\n ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence)\n const nextSessionId = claudeSessionId === null\n ? undefined\n : claudeSessionId ?? prev.claudeSessionId\n const next: AgentRuntimeSnapshot = {\n ...prev,\n model,\n claudeSessionId: nextSessionId,\n sessionModel: sessionModel ?? prev.sessionModel,\n sessionHarness: sessionHarness ?? prev.sessionHarness,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n let nextAgentIdBySessionId = state.agentIdBySessionId\n if (claudeSessionId !== undefined && nextSessionId !== prev.claudeSessionId) {\n if (prev.claudeSessionId && state.agentIdBySessionId[prev.claudeSessionId] === agentId) {\n const { [prev.claudeSessionId]: _removed, ...rest } = nextAgentIdBySessionId\n nextAgentIdBySessionId = rest\n }\n if (nextSessionId) {\n nextAgentIdBySessionId = { ...nextAgentIdBySessionId, [nextSessionId]: agentId }\n }\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n agentIdBySessionId: nextAgentIdBySessionId,\n }\n }\n\n case 'agent.current_issue_set': {\n const { agentId, currentIssue } = event.payload\n const prev = state.agentRuntimeById[agentId]\n ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence)\n const next: AgentRuntimeSnapshot = {\n ...prev,\n currentIssue,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n }\n }\n\n case 'agent.context_saturation_changed': {\n const { agentId, contextSaturatedAt } = event.payload\n const prev = state.agentRuntimeById[agentId]\n ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence)\n const next: AgentRuntimeSnapshot = {\n ...prev,\n contextSaturatedAt,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n }\n }\n\n case 'agent.resolution_changed': {\n const { agentId, resolution, resolutionCount } = event.payload\n const prev = state.agentRuntimeById[agentId]\n ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence)\n const next: AgentRuntimeSnapshot = {\n ...prev,\n resolution,\n resolutionCount,\n resolutionUpdatedAt: event.timestamp,\n lastActivity: event.timestamp,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n }\n }\n\n case 'agent.state_restored': {\n const { agentId, snapshot } = event.payload\n // Seed directly from the restored snapshot but use the new event's sequence\n // so downstream consumers key off a monotonic value.\n const next: AgentRuntimeSnapshot = {\n ...snapshot,\n updatedAtSequence: event.sequence,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n agentRuntimeById: { ...state.agentRuntimeById, [agentId]: next },\n }\n }\n\n case 'activity.entry': {\n const entry = event.payload as Record<string, unknown>;\n const previousEntries = state.recentActivity as Array<Record<string, unknown>>;\n const previous = previousEntries.find(candidate => candidate.id === entry.id);\n const newEntry = { ...previous, id: entry.id, timestamp: event.timestamp, ...entry };\n const updated = [\n newEntry,\n ...previousEntries.filter(candidate => candidate.id !== entry.id),\n ].slice(0, MAX_ACTIVITY_ENTRIES);\n return { ...state, sequence: Math.max(state.sequence, event.sequence), recentActivity: updated };\n }\n\n case 'activity.detailed': {\n const entry = event.payload as Record<string, unknown>;\n const newEntry = { id: entry.id, timestamp: event.timestamp, ...entry };\n const updated = [newEntry, ...(state.detailedActivity as Array<Record<string, unknown>>)].slice(0, MAX_DETAILED_ENTRIES);\n return { ...state, sequence: Math.max(state.sequence, event.sequence), detailedActivity: updated };\n }\n\n case 'activity.tts': {\n const entry = event.payload as Record<string, unknown>;\n const newEntry = { id: entry.id, timestamp: event.timestamp, ...entry };\n const updated = [newEntry, ...(state.ttsActivity as Array<Record<string, unknown>>)].slice(0, MAX_TTS_ENTRIES);\n return { ...state, sequence: Math.max(state.sequence, event.sequence), ttsActivity: updated };\n }\n\n case 'dashboard.lifecycle_started': {\n const { reason, issueId, trigger } = event.payload as { reason: string; issueId: string | null; trigger: string };\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n dashboardLifecycle: {\n active: true,\n reason,\n issueId,\n trigger,\n startedAt: event.timestamp,\n completedAt: null,\n failedAt: null,\n error: null,\n },\n };\n }\n\n case 'dashboard.lifecycle_completed': {\n const { reason, issueId } = event.payload as { reason: string; issueId: string | null; durationMs: number };\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n dashboardLifecycle: {\n ...state.dashboardLifecycle,\n active: false,\n reason: reason ?? state.dashboardLifecycle.reason,\n issueId: issueId ?? state.dashboardLifecycle.issueId,\n completedAt: event.timestamp,\n },\n };\n }\n\n case 'dashboard.lifecycle_failed': {\n const { reason, issueId, error } = event.payload as { reason: string; issueId: string | null; error: string };\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n dashboardLifecycle: {\n ...state.dashboardLifecycle,\n active: false,\n reason: reason ?? state.dashboardLifecycle.reason,\n issueId: issueId ?? state.dashboardLifecycle.issueId,\n failedAt: event.timestamp,\n error,\n },\n };\n }\n\n case 'agent.turn_diff_completed': {\n const p = event.payload as {\n agentId: string\n turnId: string\n completedAt: string\n files: Array<{ path: string; kind?: string; additions?: number; deletions?: number }>\n checkpointRef?: string\n assistantMessageId?: string\n checkpointTurnCount?: number\n }\n const existing = state.turnDiffSummariesByAgentId[p.agentId] ?? []\n const summary: TurnDiffSummary = {\n turnId: p.turnId,\n completedAt: p.completedAt,\n files: p.files,\n checkpointRef: p.checkpointRef,\n assistantMessageId: p.assistantMessageId ?? undefined,\n checkpointTurnCount: p.checkpointTurnCount,\n }\n // Deduplicate by turnId — replace if exists, append otherwise\n const idx = existing.findIndex(s => s.turnId === p.turnId)\n const updated = trimTurnDiffSummaries(\n idx >= 0\n ? existing.map((s, i) => i === idx ? summary : s)\n : [...existing, summary]\n )\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n turnDiffSummariesByAgentId: {\n ...state.turnDiffSummariesByAgentId,\n [p.agentId]: updated,\n },\n }\n }\n\n case 'conversation.compacting_changed': {\n const { conversationName, compacting } = event.payload\n if (!compacting) {\n const { [conversationName]: _removed, ...rest } = state.conversationsCompactingByName\n return { ...state, conversationsCompactingByName: rest }\n }\n return {\n ...state,\n conversationsCompactingByName: { ...state.conversationsCompactingByName, [conversationName]: true },\n }\n }\n\n case 'conversation.created': {\n return { ...state, conversationsListRevision: state.conversationsListRevision + 1 }\n }\n\n case 'conversation.moved': {\n return { ...state, conversationsListRevision: state.conversationsListRevision + 1 }\n }\n\n case 'conversation.title_changed': {\n return { ...state, conversationsListRevision: state.conversationsListRevision + 1 }\n }\n\n case 'conversation.pull_requests_changed': {\n return { ...state, conversationsListRevision: state.conversationsListRevision + 1 }\n }\n\n case 'conversation.permission_changed': {\n const { conversationName, waiting } = event.payload\n if (!waiting) {\n const { [conversationName]: _removed, ...rest } = state.conversationsAwaitingPermissionByName\n return { ...state, conversationsAwaitingPermissionByName: rest }\n }\n return {\n ...state,\n conversationsAwaitingPermissionByName: { ...state.conversationsAwaitingPermissionByName, [conversationName]: true },\n }\n }\n\n // ─── Scan events (PAN-457) ───────────────────────────────────────────────\n\n case 'scan.started': {\n const { mode, dirs } = event.payload\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n scanProgress: {\n active: true,\n mode,\n dirs,\n dirsProcessed: 0,\n dirsTotal: 0,\n sessionsFound: 0,\n elapsedMs: 0,\n inserted: 0,\n updated: 0,\n skipped: 0,\n errors: 0,\n durationMs: 0,\n },\n }\n }\n\n case 'scan.progress': {\n if (!state.scanProgress) return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n const { dirsProcessed, dirsTotal, sessionsFound, elapsedMs } = event.payload\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n scanProgress: {\n ...state.scanProgress,\n dirsProcessed,\n dirsTotal,\n sessionsFound,\n elapsedMs,\n },\n }\n }\n\n case 'scan.complete': {\n if (!state.scanProgress) return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n const { inserted, updated, skipped, errors, durationMs } = event.payload\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n scanProgress: {\n ...state.scanProgress,\n active: false,\n inserted,\n updated,\n skipped,\n errors,\n durationMs,\n },\n }\n }\n\n // ─── Enrich events (PAN-457) ─────────────────────────────────────────────\n\n case 'enrich.progress': {\n const { sessionId, level, model, cost, success, error } = event.payload\n const prev = state.enrichStats ?? { processed: 0, totalCost: 0, failures: 0, durationMs: 0 }\n const progress = { sessionId, level, model, cost, success, error, timestamp: event.timestamp }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n enrichStats: {\n processed: prev.processed + 1,\n totalCost: prev.totalCost + (success ? cost : 0),\n failures: prev.failures + (success ? 0 : 1),\n durationMs: 0,\n },\n enrichProgressBySessionId: upsertBoundedSessionProgress(state.enrichProgressBySessionId, progress),\n }\n }\n\n case 'enrich.complete': {\n const { processed, totalCost, failures, durationMs } = event.payload\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n enrichStats: { processed, totalCost, failures, durationMs },\n enrichProgressBySessionId: {},\n }\n }\n\n case 'embed.progress': {\n const { sessionId, model, success, error } = event.payload\n const progress = { sessionId, model, success, error, timestamp: event.timestamp }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n embedProgressBySessionId: upsertBoundedSessionProgress(state.embedProgressBySessionId, progress),\n }\n }\n\n default: {\n void (event as never)\n return state\n }\n }\n}\n\n// ─── applyEvents — batch apply ───────────────────────────────────────────────\n\nexport function applyEvents(state: ReadModelState, events: DomainEvent[]): ReadModelState {\n return events.reduce(applyEvent, state)\n}\n","import type { ProjectCiSnapshot } from './types'\n\nexport type ProjectCiState = 'queued' | 'in_progress' | 'success' | 'failure'\n\nexport interface DerivedProjectCi {\n state: ProjectCiState\n completed: number\n total: number\n /** Where the chip navigates. Always an absolute github.com URL. */\n href: string\n}\n\n/** Conclusions that mean the suite failed. Mirrors FAILING_CHECK_CONCLUSIONS\n * in src/lib/webhook-handlers.ts:196. */\nconst FAILED = new Set(['failure', 'timed_out', 'cancelled', 'action_required', 'startup_failure', 'stale'])\n\nexport function deriveProjectCi(record: ProjectCiSnapshot): DerivedProjectCi {\n const suites = Object.values(record.suites)\n const total = suites.length\n const completed = suites.filter((s) => s.status === 'completed').length\n\n const state: ProjectCiState =\n suites.some((s) => s.conclusion != null && FAILED.has(s.conclusion.toLowerCase())) ? 'failure'\n : suites.some((s) => s.status === 'in_progress') ? 'in_progress'\n : completed < total || total === 0 ? 'queued'\n : 'success'\n\n const only = total === 1 ? suites[0] : undefined\n const href = only?.htmlUrl\n ?? `https://github.com/${record.repo}/commit/${record.headSha}/checks`\n\n return { state, completed, total, href }\n}\n","import { Effect, Schema } from \"effect\"\nimport type { EffortLevel } from \"./effort\"\nimport { EffortLevelSchema } from \"./effort\"\n\nexport const FlywheelRunId = Schema.String.check(Schema.isPattern(/^RUN-\\d+$/))\nexport type FlywheelRunId = typeof FlywheelRunId.Type\n\nexport const FlywheelHttpUrl = Schema.String.check(Schema.isPattern(/^https?:\\/\\/\\S+$/i))\nexport type FlywheelHttpUrl = typeof FlywheelHttpUrl.Type\n\nexport const FlywheelHarness = Schema.Literals([\"claude-code\", \"pi\", \"ohmypi\", \"codex\", \"acp\", \"kimi-code\", \"opencode\", \"muse\", \"prime-agent\"])\nexport interface FlywheelOrchestrator {\n harness: typeof FlywheelHarness.Type\n model: string\n effort: EffortLevel\n ctxPercent: number\n}\n\nexport const FlywheelEffort = EffortLevelSchema\nexport const FlywheelOrchestrator = Schema.Struct({\n harness: FlywheelHarness,\n model: Schema.String,\n effort: FlywheelEffort,\n ctxPercent: Schema.Number,\n})\n\n/**\n * Which projects the Flywheel orchestrator inventories. PAN-1696: this is the\n * ORCHESTRATOR's scope, not the merge/UAT trains' — those assemble per project\n * independent of it. Mirrors FlywheelScope in src/lib/config-yaml/schema.ts.\n */\nexport type FlywheelScopeValue = 'pan-only' | 'all-tracked-projects'\n\nexport const FlywheelScope = Schema.Literals(['pan-only', 'all-tracked-projects'])\n\nexport interface FlywheelHeadline {\n bugsFixed: number\n swarmItemsMerged: number\n swarmItemsTotal: number\n prsMerged: number\n awaitingUat: number\n}\n\nexport const FlywheelHeadline = Schema.Struct({\n bugsFixed: Schema.Number,\n swarmItemsMerged: Schema.Number,\n swarmItemsTotal: Schema.Number,\n prsMerged: Schema.Number,\n awaitingUat: Schema.Number,\n})\n\n/**\n * Pipeline verbs — display state only. They no longer gate the merge queue.\n *\n * History worth keeping (PAN-1736 / PAN-1759): the merge queue used to be\n * derived by filtering these verbs, treating only \"shipping\" or \"merging\" as\n * \"at the merge gate\". Any other verb on an issue that was ready_for_merge in\n * the review DB silently dropped it from the queue and from UAT batch\n * assembly — RUN-18 shipped an empty queue with five ready issues exactly that\n * way — and the queue existed only while a run was emitting a pipeline at all.\n *\n * PAN-1696 removed that coupling. The ready set is now sourced from the\n * review-status records per project (`listEligibleCandidatesByProject` +\n * `computeMergeQueueFromCandidates` in src/lib/flywheel-merge-order.ts), which\n * needs no flywheel run and cannot be affected by which verb an orchestrator\n * chose to report. Adding a verb here therefore has no merge-queue consequence;\n * it only changes what the dashboard displays.\n */\nexport const FlywheelPipelineVerb = Schema.Literals([\n \"planning\",\n \"working\",\n \"reviewing\",\n \"testing\",\n \"shipping\",\n \"merging\",\n \"blocked\",\n \"parked\",\n])\n\nexport const FlywheelPipelineStatus = Schema.Literals([\n \"queued\",\n \"running\",\n \"blocked\",\n \"passed\",\n \"failed\",\n \"merged\",\n \"parked\",\n])\n\nexport interface FlywheelPipelineItem {\n issueId: string\n title: string\n verb: typeof FlywheelPipelineVerb.Type\n status: typeof FlywheelPipelineStatus.Type\n progressPercent?: number | undefined\n agentId?: string | undefined\n pr?: number | undefined\n mergeOrder?: number | undefined\n conflictsWith?: readonly string[] | undefined\n}\n\nexport const FlywheelPipelineItem = Schema.Struct({\n issueId: Schema.String,\n title: Schema.String,\n verb: FlywheelPipelineVerb,\n status: FlywheelPipelineStatus,\n progressPercent: Schema.optional(Schema.Number),\n agentId: Schema.optional(Schema.String),\n pr: Schema.optional(Schema.Number),\n mergeOrder: Schema.optional(Schema.Number),\n conflictsWith: Schema.optional(Schema.Array(Schema.String)),\n})\n\nexport const FlywheelSubstrateBugStatus = Schema.Literals([\"filed\", \"fixed\", \"workaround\"])\n\nexport interface FlywheelSubstrateBug {\n issueId: string\n title: string\n status: typeof FlywheelSubstrateBugStatus.Type\n commitSha?: string | undefined\n url?: FlywheelHttpUrl | undefined\n}\n\nexport const FlywheelSubstrateBug = Schema.Struct({\n issueId: Schema.String,\n title: Schema.String,\n status: FlywheelSubstrateBugStatus,\n commitSha: Schema.optional(Schema.String),\n url: Schema.optional(FlywheelHttpUrl),\n})\n\nexport const FlywheelAgentStatus = Schema.Literals([\n \"starting\",\n \"running\",\n \"waiting\",\n \"idle\",\n \"stopped\",\n \"error\",\n])\n\nexport interface FlywheelAgent {\n id: string\n label: string\n status: typeof FlywheelAgentStatus.Type\n issueId?: string | undefined\n role?: string | undefined\n model?: string | undefined\n ctxPercent?: number | undefined\n currentAction?: string | undefined\n}\n\nexport const FlywheelAgent = Schema.Struct({\n id: Schema.String,\n label: Schema.String,\n status: FlywheelAgentStatus,\n issueId: Schema.optional(Schema.String),\n role: Schema.optional(Schema.String),\n model: Schema.optional(Schema.String),\n ctxPercent: Schema.optional(Schema.Number),\n currentAction: Schema.optional(Schema.String),\n})\n\nexport interface FlywheelParkedItem {\n issueId: string\n title: string\n reason: string\n parkedAt?: string | undefined\n}\n\nexport const FlywheelParkedItem = Schema.Struct({\n issueId: Schema.String,\n title: Schema.String,\n reason: Schema.String,\n parkedAt: Schema.optional(Schema.String),\n})\n\nexport const FlywheelSuggestionAction = Schema.Literals([\n \"start\",\n \"resume\",\n \"plan\",\n \"review\",\n \"merge\",\n \"unblock\",\n \"park\",\n \"investigate\",\n \"wait\",\n])\nexport type FlywheelSuggestionAction = typeof FlywheelSuggestionAction.Type\n\nexport const FlywheelSuggestionPriority = Schema.Literals([\"urgent\", \"high\", \"medium\", \"low\"])\nexport type FlywheelSuggestionPriority = typeof FlywheelSuggestionPriority.Type\n\nexport interface FlywheelSuggestion {\n action: FlywheelSuggestionAction\n issueId?: string | undefined\n rationale: string\n priority: FlywheelSuggestionPriority\n filedBy?: \"agent\" | \"operator\" | undefined\n weight?: number | undefined\n weightReason?: string | undefined\n}\n\nexport const FlywheelSuggestion = Schema.Struct({\n action: FlywheelSuggestionAction,\n issueId: Schema.optional(Schema.String),\n rationale: Schema.String,\n priority: FlywheelSuggestionPriority,\n filedBy: Schema.optional(Schema.Literals([\"agent\", \"operator\"])),\n weight: Schema.optional(Schema.Number),\n weightReason: Schema.optional(Schema.String),\n})\n\nexport interface FlywheelSystemStatus {\n mainHead: string\n ramUsedMb: number\n ramTotalMb: number\n swapUsedMb: number\n swapTotalMb: number\n agentsActive: number\n agentsCap: number\n}\n\nexport const FlywheelSystemStatus = Schema.Struct({\n mainHead: Schema.String,\n ramUsedMb: Schema.Number,\n ramTotalMb: Schema.Number,\n swapUsedMb: Schema.Number,\n swapTotalMb: Schema.Number,\n agentsActive: Schema.Number,\n agentsCap: Schema.Number,\n})\n\nexport interface FlywheelOrders {\n bookId: string\n bookName: string\n landed: number\n total: number\n laneAInFlight: ReadonlyArray<string>\n laneBInFlight?: string | undefined\n drained: boolean\n}\n\nexport const FlywheelOrders = Schema.Struct({\n bookId: Schema.String,\n bookName: Schema.String,\n landed: Schema.Number,\n total: Schema.Number,\n laneAInFlight: Schema.Array(Schema.String),\n laneBInFlight: Schema.optional(Schema.String),\n drained: Schema.Boolean,\n})\n\nexport interface FlywheelStatus {\n runId: FlywheelRunId\n startedAt: string\n elapsedMs: number\n orchestrator: FlywheelOrchestrator\n headline: FlywheelHeadline\n activePipeline: ReadonlyArray<FlywheelPipelineItem>\n substrateBugs: ReadonlyArray<FlywheelSubstrateBug>\n agents: ReadonlyArray<FlywheelAgent>\n parked: ReadonlyArray<FlywheelParkedItem>\n suggestions: ReadonlyArray<FlywheelSuggestion>\n system: FlywheelSystemStatus\n openQuestions: ReadonlyArray<string>\n orders?: FlywheelOrders | undefined\n /**\n * PAN-1696: the orchestrator scope this run was actually STARTED or RESUMED\n * with, stamped server-side from the run's launch metadata. It is deliberately\n * not the live settings value: scope is baked into the run prompt at spawn, so\n * a settings change does not reach a running orchestrator until the next start\n * or resume. Optional because runs recorded before PAN-1696 have none.\n */\n scope?: FlywheelScopeValue | undefined\n ticks: number\n lastTickAt: string\n}\n\nexport const FlywheelStatus = Schema.Struct({\n runId: FlywheelRunId,\n startedAt: Schema.String,\n elapsedMs: Schema.Number,\n orchestrator: FlywheelOrchestrator,\n headline: FlywheelHeadline,\n activePipeline: Schema.Array(FlywheelPipelineItem),\n substrateBugs: Schema.Array(FlywheelSubstrateBug),\n agents: Schema.Array(FlywheelAgent),\n parked: Schema.Array(FlywheelParkedItem),\n suggestions: Schema.Array(FlywheelSuggestion).pipe(\n Schema.withDecodingDefaultKey(Effect.succeed([])),\n ),\n system: FlywheelSystemStatus,\n openQuestions: Schema.Array(Schema.String),\n orders: Schema.optional(FlywheelOrders),\n scope: Schema.optional(FlywheelScope),\n ticks: Schema.Number,\n lastTickAt: Schema.String,\n})\n","// Flywheel substrate stats (PAN-3964 FR-4, D2).\n//\n// Computed on read from the tracker (issues labelled `substrate-improvement`)\n// and the forge (merged PRs in the window). Nothing is stored. Only criteria\n// c1 (discovery rate) and c2 (P0 count) exist: the v1 c3–c7 criteria read the\n// run-record telemetry that PAN-3917 deleted, so they are non-goals.\n\nimport { Schema } from \"effect\"\n\nexport const FlywheelStatsCriterionStatus = Schema.Literals([\n \"green\",\n \"yellow\",\n \"red\",\n \"insufficient_data\",\n])\nexport type FlywheelStatsCriterionStatus = typeof FlywheelStatsCriterionStatus.Type\n\nexport const FlywheelStatsTrend = Schema.Literals([\"up\", \"down\", \"flat\"])\nexport type FlywheelStatsTrend = typeof FlywheelStatsTrend.Type\n\nexport const FlywheelSubstrateSeverity = Schema.Literals([\"P0\", \"P1\", \"P2\", \"unknown\"])\nexport type FlywheelSubstrateSeverity = typeof FlywheelSubstrateSeverity.Type\n\nexport const FlywheelStatsWindow = Schema.Struct({\n days: Schema.Number,\n since: Schema.String,\n until: Schema.String,\n})\nexport type FlywheelStatsWindow = typeof FlywheelStatsWindow.Type\n\n/** c1: substrate bugs filed per merged PR in the window. */\nexport const FlywheelBugRateCriterion = Schema.Struct({\n /** `null` when no PR merged in the window (the rate is undefined). */\n value: Schema.NullOr(Schema.Number),\n count: Schema.Number,\n denominator: Schema.Number,\n status: FlywheelStatsCriterionStatus,\n trend: FlywheelStatsTrend,\n dataSufficient: Schema.Boolean,\n})\nexport type FlywheelBugRateCriterion = typeof FlywheelBugRateCriterion.Type\n\n/** c2: P0 substrate bugs filed in the window. */\nexport const FlywheelP0Criterion = Schema.Struct({\n value: Schema.Number,\n status: FlywheelStatsCriterionStatus,\n trend: FlywheelStatsTrend,\n dataSufficient: Schema.Boolean,\n})\nexport type FlywheelP0Criterion = typeof FlywheelP0Criterion.Type\n\nexport const FlywheelSubstrateBugRow = Schema.Struct({\n number: Schema.Number,\n title: Schema.String,\n createdAt: Schema.String,\n closedAt: Schema.NullOr(Schema.String),\n severity: FlywheelSubstrateSeverity,\n})\nexport type FlywheelSubstrateBugRow = typeof FlywheelSubstrateBugRow.Type\n\nexport const FlywheelStats = Schema.Struct({\n window: FlywheelStatsWindow,\n generatedAt: Schema.String,\n criteria: Schema.Struct({\n c1_bugRate: FlywheelBugRateCriterion,\n c2_p0Bugs: FlywheelP0Criterion,\n }),\n bugs: Schema.Array(FlywheelSubstrateBugRow),\n})\nexport type FlywheelStats = typeof FlywheelStats.Type\n\nexport const decodeFlywheelStats = Schema.decodeUnknownSync(FlywheelStats)\nexport const encodeFlywheelStats = Schema.encodeSync(FlywheelStats)\n","// Derived flywheel status (PAN-3964 FR-1, FR-2).\n//\n// The flywheel is a conversation running the `pan-flywheel` loop skill. It has\n// no run record: every field here is computed on read from the flywheel\n// conversation's row and transcript, the pipeline journals of the project's\n// feature workspaces, the control settings, and the running order book. The\n// derivation lives in `src/lib/flywheel/derive-status.ts`; `pan flywheel\n// status`, `GET /api/flywheel/status`, and the Flywheel page all consume it.\n\nimport { Schema } from \"effect\"\n\nimport { DerivedPrState, IssueAttention, IssueState } from \"./derived-issue-state\"\n\n/** The loop's phases, as the skill reports them in its tick marker. */\nexport const TickMarkerPhase = Schema.Literals([\n \"orient\",\n \"pick\",\n \"launch\",\n \"watch\",\n \"park\",\n \"idle\",\n \"stopping\",\n])\nexport type TickMarkerPhase = typeof TickMarkerPhase.Type\n\n/**\n * One parsed tick marker line:\n * `flywheel-tick: tick=<n> pick=<ID|none> phase=<phase> in-flight=<ID,…|none> needs-you=<text|none>`.\n */\nexport const TickMarker = Schema.Struct({\n tick: Schema.Number,\n pick: Schema.NullOr(Schema.String),\n phase: TickMarkerPhase,\n inFlight: Schema.Array(Schema.String),\n needsYou: Schema.NullOr(Schema.String),\n})\nexport type TickMarker = typeof TickMarker.Type\n\n/** `running` = row + live session; `paused` = row, no live session; `idle` = no row. */\nexport const FlywheelRunState = Schema.Literals([\"running\", \"paused\", \"idle\"])\nexport type FlywheelRunState = typeof FlywheelRunState.Type\n\n/** Age of the last tick: ≤ 60 s live, ≤ 20 min breathing, older stalled. */\nexport const FlywheelFreshness = Schema.Literals([\"live\", \"breathing\", \"stalled\"])\nexport type FlywheelFreshness = typeof FlywheelFreshness.Type\n\nexport const FlywheelConversationSummary = Schema.Struct({\n name: Schema.String,\n id: Schema.Number,\n title: Schema.NullOr(Schema.String),\n model: Schema.NullOr(Schema.String),\n harness: Schema.NullOr(Schema.String),\n cwd: Schema.String,\n /** When the conversation row was created — the page's elapsed run time. */\n createdAt: Schema.String,\n sessionAlive: Schema.Boolean,\n})\nexport type FlywheelConversationSummary = typeof FlywheelConversationSummary.Type\n\nexport const FlywheelLastTick = Schema.Struct({\n tick: Schema.Number,\n pick: Schema.NullOr(Schema.String),\n phase: TickMarkerPhase,\n inFlight: Schema.Array(Schema.String),\n needsYou: Schema.NullOr(Schema.String),\n /** The assistant message's `createdAt`. */\n at: Schema.String,\n})\nexport type FlywheelLastTick = typeof FlywheelLastTick.Type\n\nexport const FlywheelPolicies = Schema.Struct({\n auto_pickup_backlog: Schema.Boolean,\n require_uat_before_merge: Schema.Boolean,\n merge_train_enabled: Schema.Boolean,\n})\nexport type FlywheelPolicies = typeof FlywheelPolicies.Type\n\nexport const FlywheelJournalSummary = Schema.Struct({\n at: Schema.String,\n type: Schema.String,\n source: Schema.optional(Schema.String),\n})\nexport type FlywheelJournalSummary = typeof FlywheelJournalSummary.Type\n\n/** One live agent pane in the flywheel's project, as the backend inventory reports it. */\nexport const FlywheelAgentSummary = Schema.Struct({\n issueId: Schema.String,\n role: Schema.String,\n harness: Schema.String,\n model: Schema.String,\n state: Schema.String,\n agentId: Schema.optional(Schema.String),\n})\nexport type FlywheelAgentSummary = typeof FlywheelAgentSummary.Type\n\nexport const FlywheelInFlightRow = Schema.Struct({\n issueId: Schema.String,\n /** The tracker's title, or `null` when no tracker answered for this issue. */\n title: Schema.NullOr(Schema.String),\n state: IssueState,\n attention: Schema.optional(IssueAttention),\n pr: Schema.optional(DerivedPrState),\n /** Set when no configured tracker answered: the state is a guess, not a fact. */\n trackerUnknown: Schema.optional(Schema.Literal(true)),\n /** Live agent panes on this issue. `working` with 0 means nobody is driving it. */\n liveAgents: Schema.Number,\n /** The loop named this id in its newest tick marker's in-flight list. */\n inTick: Schema.Boolean,\n lastJournal: Schema.NullOr(FlywheelJournalSummary),\n})\nexport type FlywheelInFlightRow = typeof FlywheelInFlightRow.Type\n\nexport const FlywheelOrderBookSummary = Schema.Struct({\n id: Schema.String,\n name: Schema.String,\n status: Schema.String,\n landed: Schema.Number,\n total: Schema.Number,\n})\nexport type FlywheelOrderBookSummary = typeof FlywheelOrderBookSummary.Type\n\nexport const FlywheelDerivedStatus = Schema.Struct({\n run: FlywheelRunState,\n conversation: Schema.NullOr(FlywheelConversationSummary),\n lastTick: Schema.NullOr(FlywheelLastTick),\n freshness: Schema.NullOr(FlywheelFreshness),\n policies: FlywheelPolicies,\n inFlight: Schema.Array(FlywheelInFlightRow),\n /** Every live agent on an in-flight issue, by issue then role. */\n agents: Schema.Array(FlywheelAgentSummary),\n /**\n * Which list the header counts: `tick` when a running loop named its own\n * in-flight ids, `census` when the rows are just the feature workspaces.\n */\n inFlightSource: Schema.Literals([\"tick\", \"census\"]),\n orderBook: Schema.NullOr(FlywheelOrderBookSummary),\n projectRoot: Schema.String,\n generatedAt: Schema.String,\n})\nexport type FlywheelDerivedStatus = typeof FlywheelDerivedStatus.Type\n\nexport const decodeFlywheelDerivedStatus = Schema.decodeUnknownSync(FlywheelDerivedStatus)\n","import { Schema } from \"effect\"\n\nexport const OrderBookLane = Schema.Literals([\"A\", \"B\"])\nexport type OrderBookLane = typeof OrderBookLane.Type\n\nexport const OrderBookStatus = Schema.Literals([\n \"draft\",\n \"ready\",\n \"running\",\n \"drained\",\n \"complete\",\n])\nexport type OrderBookStatus = typeof OrderBookStatus.Type\n\nexport const OrderBookPosture = Schema.Literals([\"open\", \"drain\"])\nexport type OrderBookPosture = typeof OrderBookPosture.Type\n\nexport interface OrderBookItem {\n issue: string\n lane: OrderBookLane\n order: number\n prereqs: ReadonlyArray<string>\n reVerify: boolean\n planAtPickup?: boolean | undefined\n addedAt: string\n addedBy: string\n}\n\nexport const OrderBookItem = Schema.Struct({\n issue: Schema.String,\n lane: OrderBookLane,\n order: Schema.Number,\n prereqs: Schema.Array(Schema.String),\n reVerify: Schema.Boolean,\n planAtPickup: Schema.optional(Schema.Boolean),\n addedAt: Schema.String,\n addedBy: Schema.String,\n})\n\nexport interface OrderBookSettings {\n laneAConcurrency: number\n briefOverlay?: string | undefined\n posture: OrderBookPosture\n postureSetAt?: string | undefined\n postureSetBy?: string | undefined\n postureReason?: string | undefined\n}\n\nexport const OrderBookSettings = Schema.Struct({\n laneAConcurrency: Schema.Number,\n briefOverlay: Schema.optional(Schema.String),\n posture: OrderBookPosture,\n postureSetAt: Schema.optional(Schema.String),\n postureSetBy: Schema.optional(Schema.String),\n postureReason: Schema.optional(Schema.String),\n})\n\nexport interface OrderBook {\n id: string\n name: string\n status: OrderBookStatus\n settings: OrderBookSettings\n items: ReadonlyArray<OrderBookItem>\n runId?: string | undefined\n createdAt: string\n updatedAt: string\n}\n\nexport const OrderBook = Schema.Struct({\n id: Schema.String,\n name: Schema.String,\n status: OrderBookStatus,\n settings: OrderBookSettings,\n items: Schema.Array(OrderBookItem),\n runId: Schema.optional(Schema.String),\n createdAt: Schema.String,\n updatedAt: Schema.String,\n})\n\nexport interface OrderBookIndexEntry {\n id: string\n name: string\n status: OrderBookStatus\n runId?: string | undefined\n updatedAt: string\n}\n\nexport const OrderBookIndexEntry = Schema.Struct({\n id: Schema.String,\n name: Schema.String,\n status: OrderBookStatus,\n runId: Schema.optional(Schema.String),\n updatedAt: Schema.String,\n})\n","import { Schema } from \"effect\"\nimport type { Harness } from \"./types\"\n\nexport const CONTEXT_LAYER_KINDS = [\"global\", \"project\", \"workspace\"] as const\nexport const CONTEXT_PREVIEW_HARNESSES = [\"claude-code\", \"ohmypi\", \"codex\", \"acp\", \"kimi-code\", \"opencode\", \"muse\", \"prime-agent\"] as const satisfies readonly Harness[]\n\nexport const ContextLayerKind = Schema.Literals(CONTEXT_LAYER_KINDS)\nexport type ContextLayerKind = typeof ContextLayerKind.Type\n\nexport const ContextPreviewHarness = Schema.Literals(CONTEXT_PREVIEW_HARNESSES)\nexport type ContextPreviewHarness = typeof ContextPreviewHarness.Type\n\nexport const ContextProjectSummary = Schema.Struct({\n projectKey: Schema.String,\n name: Schema.String,\n path: Schema.String,\n issuePrefix: Schema.optional(Schema.String),\n tracker: Schema.optional(Schema.Literals([\"linear\", \"github\", \"gitlab\", \"rally\"])),\n workspaceRoot: Schema.optional(Schema.String),\n})\nexport type ContextProjectSummary = typeof ContextProjectSummary.Type\n\nexport const ContextWorkspaceSummary = Schema.Struct({\n projectKey: Schema.String,\n path: Schema.String,\n name: Schema.String,\n issueId: Schema.optional(Schema.String),\n branch: Schema.optional(Schema.String),\n})\nexport type ContextWorkspaceSummary = typeof ContextWorkspaceSummary.Type\n\nconst ContextLayerBase = {\n file: Schema.String,\n exists: Schema.Boolean,\n content: Schema.String,\n editable: Schema.Boolean,\n}\n\nexport const GlobalContextLayerRecord = Schema.Struct({\n kind: Schema.Literal(\"global\"),\n ...ContextLayerBase,\n})\nexport type GlobalContextLayerRecord = typeof GlobalContextLayerRecord.Type\n\nexport const ProjectContextLayerRecord = Schema.Struct({\n kind: Schema.Literal(\"project\"),\n projectKey: Schema.String,\n ...ContextLayerBase,\n})\nexport type ProjectContextLayerRecord = typeof ProjectContextLayerRecord.Type\n\nexport const WorkspaceContextLayerRecord = Schema.Struct({\n kind: Schema.Literal(\"workspace\"),\n projectKey: Schema.String,\n workspacePath: Schema.String,\n ...ContextLayerBase,\n})\nexport type WorkspaceContextLayerRecord = typeof WorkspaceContextLayerRecord.Type\n\nexport const ContextEditableLayerRecord = Schema.Union([\n GlobalContextLayerRecord,\n ProjectContextLayerRecord,\n WorkspaceContextLayerRecord,\n])\nexport type ContextEditableLayerRecord = typeof ContextEditableLayerRecord.Type\n\nexport const GlobalContextLayerTarget = Schema.Struct({\n kind: Schema.Literal(\"global\"),\n})\nexport type GlobalContextLayerTarget = typeof GlobalContextLayerTarget.Type\n\nexport const ProjectContextLayerTarget = Schema.Struct({\n kind: Schema.Literal(\"project\"),\n projectKey: Schema.String,\n})\nexport type ProjectContextLayerTarget = typeof ProjectContextLayerTarget.Type\n\nexport const WorkspaceContextLayerTarget = Schema.Struct({\n kind: Schema.Literal(\"workspace\"),\n projectKey: Schema.String,\n workspacePath: Schema.String,\n})\nexport type WorkspaceContextLayerTarget = typeof WorkspaceContextLayerTarget.Type\n\nexport const ContextLayerTarget = Schema.Union([\n GlobalContextLayerTarget,\n ProjectContextLayerTarget,\n WorkspaceContextLayerTarget,\n])\nexport type ContextLayerTarget = typeof ContextLayerTarget.Type\n\nexport const ContextLayerDraft = Schema.Struct({\n target: ContextLayerTarget,\n content: Schema.String,\n})\nexport type ContextLayerDraft = typeof ContextLayerDraft.Type\n\n/**\n * An Overdeck-owned rendered artifact delivered only to managed sessions.\n */\nexport const ContextSyncTarget = Schema.Struct({\n harness: ContextPreviewHarness,\n layerKind: Schema.Literals([\"global\", \"project\"]),\n projectKey: Schema.optional(Schema.String),\n /** Short human label, e.g. \"Claude Code · global\". */\n label: Schema.String,\n /** Resolved absolute path of the target file. */\n path: Schema.String,\n exists: Schema.Boolean,\n deliveryChannel: Schema.Literals([\"claude-append-system-prompt\", \"pi-append-system-prompt\", \"codex-developer-instructions\"]),\n byteCount: Schema.Number,\n sha256: Schema.optional(Schema.String),\n})\nexport type ContextSyncTarget = typeof ContextSyncTarget.Type\n\nexport const ContextLayersResponse = Schema.Struct({\n operation: Schema.Literal(\"load\"),\n projects: Schema.Array(ContextProjectSummary),\n workspaces: Schema.Array(ContextWorkspaceSummary),\n layers: Schema.Array(ContextEditableLayerRecord),\n /** Overdeck-owned artifacts delivered at managed-session launch. */\n targets: Schema.Array(ContextSyncTarget),\n})\nexport type ContextLayersResponse = typeof ContextLayersResponse.Type\n\nexport const ContextPreviewRequest = Schema.Struct({\n operation: Schema.Literal(\"preview\"),\n selectedLayer: ContextLayerTarget,\n drafts: Schema.Array(ContextLayerDraft),\n})\nexport type ContextPreviewRequest = typeof ContextPreviewRequest.Type\n\nexport const ContextHarnessPreviews = Schema.Struct({\n \"claude-code\": Schema.String,\n ohmypi: Schema.String,\n codex: Schema.String,\n acp: Schema.String,\n \"kimi-code\": Schema.String,\n opencode: Schema.optional(Schema.String),\n muse: Schema.String,\n \"prime-agent\": Schema.String,\n fullPrompt: Schema.String,\n})\nexport type ContextHarnessPreviews = typeof ContextHarnessPreviews.Type\n\nexport const ContextPreviewDiagnostic = Schema.Struct({\n level: Schema.Literals([\"info\", \"warning\", \"error\"]),\n message: Schema.String,\n layer: Schema.optional(ContextLayerTarget),\n})\nexport type ContextPreviewDiagnostic = typeof ContextPreviewDiagnostic.Type\n\nexport const ContextPreviewResponse = Schema.Struct({\n operation: Schema.Literal(\"preview\"),\n previews: ContextHarnessPreviews,\n diagnostics: Schema.Array(ContextPreviewDiagnostic),\n})\nexport type ContextPreviewResponse = typeof ContextPreviewResponse.Type\n\nexport const ContextLayerSaveRequest = Schema.Struct({\n operation: Schema.Literal(\"save\"),\n target: ContextLayerTarget,\n content: Schema.String,\n})\nexport type ContextLayerSaveRequest = typeof ContextLayerSaveRequest.Type\n\nexport const ContextLayerSaveResponse = Schema.Struct({\n operation: Schema.Literal(\"save\"),\n layer: ContextEditableLayerRecord,\n savedAt: Schema.String,\n})\nexport type ContextLayerSaveResponse = typeof ContextLayerSaveResponse.Type\n\nexport const ContextSyncRequest = Schema.Struct({\n operation: Schema.Literal(\"sync\"),\n})\nexport type ContextSyncRequest = typeof ContextSyncRequest.Type\n\nexport const ContextSyncResponse = Schema.Struct({\n operation: Schema.Literal(\"sync\"),\n success: Schema.Boolean,\n exitCode: Schema.optional(Schema.Number),\n stdout: Schema.String,\n stderr: Schema.String,\n syncedAt: Schema.String,\n})\nexport type ContextSyncResponse = typeof ContextSyncResponse.Type\n","import { Schema } from \"effect\"\n\nexport const ArtifactId = Schema.String\nexport type ArtifactId = typeof ArtifactId.Type\n\nexport const ArtifactSlug = Schema.String\nexport type ArtifactSlug = typeof ArtifactSlug.Type\n\nexport const ArtifactHash = Schema.String\nexport type ArtifactHash = typeof ArtifactHash.Type\n\nexport const ArtifactAgentRole = Schema.Literals([\"plan\", \"work\", \"review\", \"test\", \"ship\", \"flywheel\", \"user\"])\nexport type ArtifactAgentRole = typeof ArtifactAgentRole.Type\n\nexport const ArtifactAgentHarness = Schema.Literals([\"claude-code\", \"pi\", \"ohmypi\", \"codex\", \"acp\", \"kimi-code\", \"opencode\", \"muse\", \"prime-agent\", \"user\"])\nexport type ArtifactAgentHarness = typeof ArtifactAgentHarness.Type\n\nexport const ArtifactLifecycleState = Schema.Literals([\n \"published\",\n \"pending_changes\",\n \"unshared\",\n])\nexport type ArtifactLifecycleState = typeof ArtifactLifecycleState.Type\n\nexport const ArtifactValidationCode = Schema.Literals([\n \"invalid_file_type\",\n \"not_a_file\",\n \"size_limit_exceeded\",\n \"forbidden_asset_url\",\n \"secret_detected\",\n \"secret_allowed\",\n \"high_entropy_string\",\n \"inline_event_handler\",\n \"missing_image_alt\",\n])\nexport type ArtifactValidationCode = typeof ArtifactValidationCode.Type\n\nexport const ArtifactValidationFinding = Schema.Struct({\n code: ArtifactValidationCode,\n message: Schema.String,\n line: Schema.optional(Schema.Number),\n column: Schema.optional(Schema.Number),\n rule: Schema.optional(Schema.String),\n strict: Schema.optional(Schema.Boolean),\n})\nexport type ArtifactValidationFinding = typeof ArtifactValidationFinding.Type\n\nexport const ArtifactValidationResult = Schema.Struct({\n ok: Schema.Boolean,\n filePath: Schema.optional(Schema.String),\n size: Schema.Number,\n hash: ArtifactHash,\n strict: Schema.Boolean,\n errors: Schema.Array(ArtifactValidationFinding),\n warnings: Schema.Array(ArtifactValidationFinding),\n})\nexport type ArtifactValidationResult = typeof ArtifactValidationResult.Type\n\nexport const ArtifactMetadata = Schema.Struct({\n artifactId: ArtifactId,\n slug: ArtifactSlug,\n issueId: Schema.optional(Schema.NullOr(Schema.String)),\n workspaceId: Schema.optional(Schema.NullOr(Schema.String)),\n agentRole: Schema.optional(Schema.NullOr(ArtifactAgentRole)),\n agentHarness: Schema.optional(Schema.NullOr(ArtifactAgentHarness)),\n runId: Schema.optional(Schema.NullOr(Schema.String)),\n sessionId: Schema.optional(Schema.NullOr(Schema.String)),\n filePath: Schema.String,\n currentHash: ArtifactHash,\n lastPublishedHash: Schema.optional(Schema.NullOr(ArtifactHash)),\n supersedes: Schema.optional(Schema.NullOr(ArtifactId)),\n title: Schema.optional(Schema.NullOr(Schema.String)),\n description: Schema.optional(Schema.NullOr(Schema.String)),\n createdAt: Schema.String,\n publishedAt: Schema.optional(Schema.NullOr(Schema.String)),\n unsharedAt: Schema.optional(Schema.NullOr(Schema.String)),\n})\nexport type ArtifactMetadata = typeof ArtifactMetadata.Type\n\nexport const ArtifactUrls = Schema.Struct({\n wrapperUrl: Schema.String,\n rawUrl: Schema.String,\n})\nexport type ArtifactUrls = typeof ArtifactUrls.Type\n\nexport const ArtifactStatusResponse = Schema.Struct({\n artifact: Schema.optional(ArtifactMetadata),\n filePath: Schema.String,\n currentHash: ArtifactHash,\n lastPublishedHash: Schema.optional(Schema.NullOr(ArtifactHash)),\n pendingChanges: Schema.Boolean,\n validation: Schema.optional(ArtifactValidationResult),\n})\nexport type ArtifactStatusResponse = typeof ArtifactStatusResponse.Type\n\nexport const ArtifactCreateResponse = Schema.Struct({\n artifact: ArtifactMetadata,\n urls: ArtifactUrls,\n validation: ArtifactValidationResult,\n published: Schema.Boolean,\n})\nexport type ArtifactCreateResponse = typeof ArtifactCreateResponse.Type\n\nexport const ArtifactPublishResponse = Schema.Struct({\n artifact: ArtifactMetadata,\n urls: ArtifactUrls,\n validation: ArtifactValidationResult,\n published: Schema.Boolean,\n pendingChanges: Schema.Boolean,\n})\nexport type ArtifactPublishResponse = typeof ArtifactPublishResponse.Type\n\nexport const ArtifactUnshareResponse = Schema.Struct({\n artifact: ArtifactMetadata,\n unshared: Schema.Boolean,\n})\nexport type ArtifactUnshareResponse = typeof ArtifactUnshareResponse.Type\n\nexport const ArtifactListEntry = Schema.Struct({\n artifact: ArtifactMetadata,\n urls: ArtifactUrls,\n status: ArtifactLifecycleState,\n pendingChanges: Schema.Boolean,\n thumbnailUrl: Schema.optional(Schema.String),\n})\nexport type ArtifactListEntry = typeof ArtifactListEntry.Type\n\nexport const ArtifactListResponse = Schema.Struct({\n artifacts: Schema.Array(ArtifactListEntry),\n})\nexport type ArtifactListResponse = typeof ArtifactListResponse.Type\n\nexport const ArtifactDetailResponse = Schema.Struct({\n artifact: ArtifactMetadata,\n urls: ArtifactUrls,\n status: ArtifactLifecycleState,\n pendingChanges: Schema.Boolean,\n})\nexport type ArtifactDetailResponse = typeof ArtifactDetailResponse.Type\n\nexport const WorkspaceArtifactsResponse = Schema.Struct({\n issueId: Schema.optional(Schema.String),\n workspaceId: Schema.optional(Schema.String),\n artifacts: Schema.Array(ArtifactListEntry),\n})\nexport type WorkspaceArtifactsResponse = typeof WorkspaceArtifactsResponse.Type\n","import { Schema } from \"effect\"\n\nexport const FeatureRegistryStatus = Schema.Literals([\n \"active\",\n \"archived\",\n \"merged\",\n \"deferred\",\n])\nexport type FeatureRegistryStatus = typeof FeatureRegistryStatus.Type\n\nexport const FeatureRegistryEntry = Schema.Struct({\n featureId: Schema.String,\n featureName: Schema.String,\n description: Schema.NullOr(Schema.String),\n owningWorkspaceId: Schema.NullOr(Schema.String),\n owningIssueId: Schema.NullOr(Schema.String),\n owningAgentId: Schema.NullOr(Schema.String),\n status: FeatureRegistryStatus,\n createdAt: Schema.String,\n updatedAt: Schema.String,\n tags: Schema.Array(Schema.String),\n})\nexport type FeatureRegistryEntry = typeof FeatureRegistryEntry.Type\n\nexport interface FeatureRegistryListFilter {\n featureName?: string\n issueId?: string\n workspaceId?: string\n agentId?: string\n status?: FeatureRegistryStatus\n tags?: string[]\n limit?: number\n}\n\nexport interface FeatureRegistryTagInput {\n issueId: string\n featureName: string\n description?: string\n workspaceId?: string | null\n agentId?: string | null\n status?: FeatureRegistryStatus\n tags?: string[]\n now?: string\n}\n\nexport interface FeatureRegistryUntagInput {\n issueId: string\n featureName: string\n}\n\nexport interface FeatureRegistryOwnershipUpdate {\n featureName?: string\n issueId?: string | null\n workspaceId?: string | null\n agentId?: string | null\n status?: FeatureRegistryStatus\n tags?: string[]\n now?: string\n}\n","// Declared per-harness behavior decisions (PAN-4562). Consumers read these\n// fields instead of comparing harness names, so a new harness changes behavior\n// by declaring its capabilities, with no consumer code change.\n\n/** How the launcher delivers Overdeck's context layer to the harness (recorded in the context receipt). */\nexport type HarnessContextChannel =\n | \"append-system-prompt-file\"\n | \"append-system-prompt\"\n | \"developer_instructions\"\n | \"initial-message-envelope\"\n | \"acp-initial-context\"\n | \"prime-agent-append-system-prompt\"\nexport type HarnessAttachmentDelivery = \"native\" | \"inline-paths\"\nexport type HarnessBinaryConfigKey = \"acp.kimi.binaryPath\" | \"kimiCode.binaryPath\"\nexport type HarnessLaunchPreflight = \"claude-code-model-minimum\"\n/** claude-project-hash = resolve via HashResolver; agent-dir = first-message cwd, else the agent dir; first-message-only = first-message cwd, else null. */\nexport type HarnessWorkspaceResolution = \"claude-project-hash\" | \"agent-dir\" | \"first-message-only\"\n\nexport interface HarnessCapabilities {\n /** Channel the launcher delivers the context layer through. */\n readonly contextChannel: HarnessContextChannel\n /** A conversation start fails unless the initial prompt is confirmed delivered. */\n readonly initialPromptMustLand: boolean\n /** A failed conversation start stops the runtime it launched. */\n readonly stopRuntimeOnStartFailure: boolean\n /** A resume fails unless the resume contract message is confirmed delivered. */\n readonly resumeContractMustLand: boolean\n /** Stopping a conversation also reaps the harness's private daemon. */\n readonly reapsPrivateDaemonOnStop: boolean\n /** native = the harness takes attachments itself; inline-paths = attachment paths are inlined into the message. */\n readonly attachmentDelivery: HarnessAttachmentDelivery\n /** The harness has a native manual /compact command. */\n readonly nativeManualCompact: boolean\n /** Message sends check the pane for a pending input prompt before pasting. */\n readonly paneInputGuard: boolean\n /** Message delivery is confirmed by reading the transcript for the sent turn. */\n readonly transcriptDeliveryReceipt: boolean\n /** The launch host accepts an effort flag for the harness. */\n readonly hostEffortFlag: boolean\n /** Human label used in binary-resolution messages. */\n readonly binaryLabel: string\n /** Install command shown when the binary is missing, or null for none. */\n readonly installHint: string | null\n /** Config key holding an operator-configured binary path, or null for none. */\n readonly binaryConfigKey: HarnessBinaryConfigKey | null\n /** Preflight check run before a launch, or null for none. */\n readonly launchPreflight: HarnessLaunchPreflight | null\n /** How the conversation scanner resolves a transcript's workspace. */\n readonly workspaceResolution: HarnessWorkspaceResolution\n /** The conversation scanner correlates transcripts to agents by session id. */\n readonly correlatesBySessionId: boolean\n}\n\nexport const HARNESS_CAPABILITY_KEYS = [\n \"contextChannel\",\n \"initialPromptMustLand\",\n \"stopRuntimeOnStartFailure\",\n \"resumeContractMustLand\",\n \"reapsPrivateDaemonOnStop\",\n \"attachmentDelivery\",\n \"nativeManualCompact\",\n \"paneInputGuard\",\n \"transcriptDeliveryReceipt\",\n \"hostEffortFlag\",\n \"binaryLabel\",\n \"installHint\",\n \"binaryConfigKey\",\n \"launchPreflight\",\n \"workspaceResolution\",\n \"correlatesBySessionId\",\n] as const satisfies readonly (keyof HarnessCapabilities)[]\n\nexport const CLAUDE_CODE_CAPABILITIES: HarnessCapabilities = {\n contextChannel: \"append-system-prompt-file\",\n initialPromptMustLand: false,\n stopRuntimeOnStartFailure: false,\n resumeContractMustLand: false,\n reapsPrivateDaemonOnStop: false,\n attachmentDelivery: \"native\",\n nativeManualCompact: true,\n paneInputGuard: true,\n transcriptDeliveryReceipt: true,\n hostEffortFlag: false,\n binaryLabel: \"Claude Code\",\n installHint: \"curl -fsSL https://claude.ai/install.sh | bash\",\n binaryConfigKey: null,\n launchPreflight: \"claude-code-model-minimum\",\n workspaceResolution: \"claude-project-hash\",\n correlatesBySessionId: false,\n}\n\nexport const OHMYPI_CAPABILITIES: HarnessCapabilities = {\n contextChannel: \"append-system-prompt\",\n initialPromptMustLand: false,\n stopRuntimeOnStartFailure: false,\n resumeContractMustLand: false,\n reapsPrivateDaemonOnStop: false,\n attachmentDelivery: \"inline-paths\",\n nativeManualCompact: false,\n paneInputGuard: false,\n transcriptDeliveryReceipt: false,\n hostEffortFlag: false,\n binaryLabel: \"OhMyPi\",\n installHint: null,\n binaryConfigKey: null,\n launchPreflight: null,\n workspaceResolution: \"first-message-only\",\n correlatesBySessionId: true,\n}\n\nexport const CODEX_CAPABILITIES: HarnessCapabilities = {\n contextChannel: \"developer_instructions\",\n initialPromptMustLand: false,\n stopRuntimeOnStartFailure: false,\n resumeContractMustLand: false,\n reapsPrivateDaemonOnStop: false,\n attachmentDelivery: \"inline-paths\",\n nativeManualCompact: false,\n paneInputGuard: false,\n transcriptDeliveryReceipt: false,\n hostEffortFlag: false,\n binaryLabel: \"Codex CLI\",\n installHint: null,\n binaryConfigKey: null,\n launchPreflight: null,\n workspaceResolution: \"agent-dir\",\n correlatesBySessionId: true,\n}\n\nexport const ACP_CAPABILITIES: HarnessCapabilities = {\n contextChannel: \"acp-initial-context\",\n initialPromptMustLand: true,\n stopRuntimeOnStartFailure: true,\n resumeContractMustLand: false,\n reapsPrivateDaemonOnStop: false,\n attachmentDelivery: \"inline-paths\",\n nativeManualCompact: false,\n paneInputGuard: false,\n transcriptDeliveryReceipt: false,\n hostEffortFlag: false,\n binaryLabel: \"Kimi Code CLI\",\n installHint: null,\n binaryConfigKey: \"acp.kimi.binaryPath\",\n launchPreflight: null,\n workspaceResolution: \"agent-dir\",\n correlatesBySessionId: true,\n}\n\nexport const KIMI_CODE_CAPABILITIES: HarnessCapabilities = {\n contextChannel: \"initial-message-envelope\",\n initialPromptMustLand: true,\n stopRuntimeOnStartFailure: true,\n resumeContractMustLand: true,\n reapsPrivateDaemonOnStop: false,\n attachmentDelivery: \"inline-paths\",\n nativeManualCompact: false,\n paneInputGuard: false,\n transcriptDeliveryReceipt: false,\n hostEffortFlag: false,\n binaryLabel: \"Kimi Code CLI\",\n installHint: null,\n binaryConfigKey: \"kimiCode.binaryPath\",\n launchPreflight: null,\n workspaceResolution: \"first-message-only\",\n correlatesBySessionId: true,\n}\n\nexport const OPENCODE_CAPABILITIES: HarnessCapabilities = {\n contextChannel: \"acp-initial-context\",\n initialPromptMustLand: true,\n stopRuntimeOnStartFailure: true,\n resumeContractMustLand: false,\n reapsPrivateDaemonOnStop: false,\n attachmentDelivery: \"inline-paths\",\n nativeManualCompact: false,\n paneInputGuard: false,\n transcriptDeliveryReceipt: false,\n hostEffortFlag: true,\n binaryLabel: \"OpenCode\",\n installHint: null,\n binaryConfigKey: null,\n launchPreflight: null,\n workspaceResolution: \"agent-dir\",\n correlatesBySessionId: true,\n}\n\nexport const MUSE_CAPABILITIES: HarnessCapabilities = {\n contextChannel: \"append-system-prompt-file\",\n initialPromptMustLand: false,\n stopRuntimeOnStartFailure: true,\n resumeContractMustLand: false,\n reapsPrivateDaemonOnStop: false,\n attachmentDelivery: \"inline-paths\",\n nativeManualCompact: false,\n paneInputGuard: false,\n transcriptDeliveryReceipt: false,\n hostEffortFlag: false,\n binaryLabel: \"Muse Code\",\n installHint: null,\n binaryConfigKey: null,\n launchPreflight: null,\n workspaceResolution: \"first-message-only\",\n correlatesBySessionId: true,\n}\n\nexport const PRIME_AGENT_CAPABILITIES: HarnessCapabilities = {\n contextChannel: \"prime-agent-append-system-prompt\",\n initialPromptMustLand: true,\n stopRuntimeOnStartFailure: true,\n resumeContractMustLand: false,\n reapsPrivateDaemonOnStop: true,\n attachmentDelivery: \"inline-paths\",\n nativeManualCompact: false,\n paneInputGuard: false,\n transcriptDeliveryReceipt: false,\n hostEffortFlag: false,\n binaryLabel: \"Prime Agent\",\n installHint: null,\n binaryConfigKey: null,\n launchPreflight: null,\n workspaceResolution: \"first-message-only\",\n correlatesBySessionId: true,\n}\n","import { KNOWN_HARNESSES, type Harness } from \"./types\"\nimport type { EffortLevel } from \"./effort\"\nimport {\n ACP_CAPABILITIES,\n CLAUDE_CODE_CAPABILITIES,\n CODEX_CAPABILITIES,\n KIMI_CODE_CAPABILITIES,\n MUSE_CAPABILITIES,\n OHMYPI_CAPABILITIES,\n OPENCODE_CAPABILITIES,\n PRIME_AGENT_CAPABILITIES,\n type HarnessCapabilities,\n} from \"./harness-capabilities\"\n\nexport type RuntimeName = Harness\nexport type HarnessName = RuntimeName | \"pi\"\n\nexport type HarnessLaunchCommandKind = \"claude-code\" | \"ohmypi-rpc\" | \"codex-work-tui\" | \"codex-app-server\" | \"acp-host\" | \"kimi-code-tui\" | \"muse-tui\" | \"prime-agent-host\"\nexport type HarnessDeliveryKind =\n | \"pty-supervisor\"\n | \"rpc-fifo\"\n | \"codex-exec-resume\"\n | \"codex-app-server-rpc\"\n | \"acp-host-rpc\"\n | \"prime-agent-host-rpc\"\n | \"tmux-paste\"\nexport type HarnessReadinessKind =\n | \"claude-session-signal\"\n | \"ohmypi-ready-file\"\n | \"codex-tui-prompt\"\n | \"codex-app-server-ready\"\n | \"acp-host-ready\"\n | \"kimi-session-signal\"\n | \"muse-tui-prompt\"\n | \"prime-agent-host-ready\"\nexport type HarnessTranscriptKind = \"claude-jsonl\" | \"ohmypi-jsonl\" | \"codex-rollout-jsonl\" | \"acp-jsonl\" | \"kimi-wire-jsonl\" | \"muse-jsonl\" | \"prime-agent-jsonl\"\nexport type HarnessSessionIdSource = \"launcher-session-id\" | \"transcript-jsonl\" | \"codex-thread-id\" | \"acp-session-id\" | \"kimi-session-newest\" | \"muse-session-log\" | \"prime-agent-session-id\"\nexport type HarnessContextLayerKind = \"claude\" | \"pi\" | \"codex\" | \"acp\" | \"kimi-code\" | \"opencode\" | \"muse\" | \"prime-agent\"\n/** How Overdeck can steer a running turn (PAN-4292): Claude Code send-now keys, the Pi control channel, or null = no steer. */\nexport type HarnessSteerKind = \"send-now-keys\" | \"control-channel\" | null\nexport type HarnessFeedKind = \"claude_code\" | \"pi\" | \"codex\" | \"acp\" | \"kimi_code\" | \"muse\" | \"prime_agent\"\n\nconst AGENT_SESSION_PREFIXES = [\"agent-\", \"planning-\", \"specialist-\", \"strike-\", \"inspect-\"] as const\nconst AGENT_SESSION_SINGLETONS = new Set([\"flywheel-orchestrator\", \"conv-flywheel-orchestrator\"])\n\n/** Canonical synthetic agent-session identity shared by dashboard client/server. */\nexport function isAgentSessionName(name: string): boolean {\n return AGENT_SESSION_SINGLETONS.has(name) || AGENT_SESSION_PREFIXES.some((prefix) => name.startsWith(prefix))\n}\n\nexport interface HarnessNativeCommand {\n readonly name: string\n readonly description: string\n readonly insert: string\n}\n\nexport interface HarnessBehavior {\n readonly displayName: string\n readonly nativeCommands?: readonly HarnessNativeCommand[]\n readonly executableName: string\n readonly processNames: readonly string[]\n readonly launchCommandKind: HarnessLaunchCommandKind\n readonly deliveryKind: HarnessDeliveryKind\n readonly readinessKind: HarnessReadinessKind\n readonly transcriptKind: HarnessTranscriptKind\n readonly sessionIdSource: HarnessSessionIdSource\n readonly contextLayerKind: HarnessContextLayerKind\n readonly feedKind: HarnessFeedKind\n readonly supportsPtySupervisor: boolean\n readonly supportsChannelsBridge: boolean\n readonly supportsConversationStreaming: boolean\n readonly supportsPatchProjection: boolean\n readonly usesRpcFifo: boolean\n readonly usesCodexHome: boolean\n readonly injectsPromptTimeMemory: boolean\n readonly workAgentMode: \"claude-code\" | \"ohmypi-rpc\" | \"codex-work-tui\" | \"codex-app-server\" | \"acp-host\" | \"kimi-code-tui\" | \"muse-tui\" | \"prime-agent-host\"\n readonly readyTimeoutSeconds: number\n /** How a running turn can be steered from Overdeck (PAN-4292). null = no steer. */\n readonly steerKind: HarnessSteerKind\n /** Effort levels this harness accepts, when narrower than the full {@link EFFORT_LEVELS} set. Undefined = no known restriction. */\n readonly effortLevels?: readonly EffortLevel[]\n /** Declared behavior decisions consumers read instead of comparing harness names (PAN-4562). */\n readonly capabilities: HarnessCapabilities\n}\n\nexport const CLAUDE_CODE_BEHAVIOR: HarnessBehavior = {\n displayName: \"Claude Code\",\n capabilities: CLAUDE_CODE_CAPABILITIES,\n // Verified from the installed Claude Code 2.1.209 binary on 2026-07-24.\n nativeCommands: [\n { name: \"/model\", description: \"Switch the AI model for this conversation\", insert: \"/model \" },\n { name: \"/context\", description: \"Inspect or expand the current context window\", insert: \"/context \" },\n { name: \"/effort\", description: \"Set the reasoning effort level\", insert: \"/effort \" },\n { name: \"/cancel\", description: \"Cancel the current operation\", insert: \"/cancel\" },\n ],\n executableName: \"claude\",\n processNames: [\"claude\"],\n launchCommandKind: \"claude-code\",\n deliveryKind: \"pty-supervisor\",\n readinessKind: \"claude-session-signal\",\n transcriptKind: \"claude-jsonl\",\n sessionIdSource: \"launcher-session-id\",\n contextLayerKind: \"claude\",\n feedKind: \"claude_code\",\n supportsPtySupervisor: true,\n supportsChannelsBridge: true,\n supportsConversationStreaming: false,\n supportsPatchProjection: true,\n usesRpcFifo: false,\n usesCodexHome: false,\n injectsPromptTimeMemory: false,\n workAgentMode: \"claude-code\",\n readyTimeoutSeconds: 30,\n steerKind: \"send-now-keys\",\n}\n\nexport const OHMYPI_BEHAVIOR: HarnessBehavior = {\n displayName: \"Pi\",\n capabilities: OHMYPI_CAPABILITIES,\n // omp 16.3.11 does not expose a machine-readable native slash-command inventory (checked 2026-07-24).\n nativeCommands: [],\n executableName: \"omp\",\n processNames: [\"omp\"],\n launchCommandKind: \"ohmypi-rpc\",\n deliveryKind: \"rpc-fifo\",\n readinessKind: \"ohmypi-ready-file\",\n transcriptKind: \"ohmypi-jsonl\",\n sessionIdSource: \"transcript-jsonl\",\n contextLayerKind: \"pi\",\n feedKind: \"pi\",\n supportsPtySupervisor: false,\n supportsChannelsBridge: false,\n supportsConversationStreaming: true,\n supportsPatchProjection: false,\n usesRpcFifo: true,\n usesCodexHome: false,\n injectsPromptTimeMemory: true,\n workAgentMode: \"ohmypi-rpc\",\n readyTimeoutSeconds: 120,\n steerKind: \"control-channel\",\n effortLevels: [\"low\", \"medium\", \"high\", \"xhigh\"],\n}\n\nexport const CODEX_BEHAVIOR: HarnessBehavior = {\n displayName: \"Codex\",\n capabilities: CODEX_CAPABILITIES,\n // Codex CLI 0.144.4 does not expose a machine-readable native slash-command inventory (checked 2026-07-24).\n nativeCommands: [],\n executableName: \"codex\",\n processNames: [\"codex\"],\n launchCommandKind: \"codex-work-tui\",\n deliveryKind: \"codex-exec-resume\",\n readinessKind: \"codex-tui-prompt\",\n transcriptKind: \"codex-rollout-jsonl\",\n sessionIdSource: \"codex-thread-id\",\n contextLayerKind: \"codex\",\n feedKind: \"codex\",\n supportsPtySupervisor: true,\n supportsChannelsBridge: false,\n supportsConversationStreaming: true,\n supportsPatchProjection: true,\n usesRpcFifo: false,\n usesCodexHome: true,\n injectsPromptTimeMemory: false,\n workAgentMode: \"codex-work-tui\",\n readyTimeoutSeconds: 30,\n steerKind: null,\n}\n\nexport const ACP_BEHAVIOR: HarnessBehavior = {\n displayName: \"ACP\",\n capabilities: ACP_CAPABILITIES,\n // Kimi Code CLI 0.28.1 via ACP does not expose a machine-readable native slash-command inventory (checked 2026-07-24).\n nativeCommands: [],\n executableName: \"acp-host\",\n processNames: [\"acp-host\", \"kimi\"],\n launchCommandKind: \"acp-host\",\n deliveryKind: \"acp-host-rpc\",\n readinessKind: \"acp-host-ready\",\n transcriptKind: \"acp-jsonl\",\n sessionIdSource: \"acp-session-id\",\n contextLayerKind: \"acp\",\n feedKind: \"acp\",\n supportsPtySupervisor: false,\n supportsChannelsBridge: false,\n supportsConversationStreaming: true,\n supportsPatchProjection: false,\n usesRpcFifo: false,\n usesCodexHome: false,\n injectsPromptTimeMemory: false,\n workAgentMode: \"acp-host\",\n readyTimeoutSeconds: 30,\n steerKind: null,\n}\n\nexport const KIMI_CODE_BEHAVIOR: HarnessBehavior = {\n displayName: \"Kimi Code\",\n capabilities: KIMI_CODE_CAPABILITIES,\n nativeCommands: [], // no machine-readable inventory verified yet\n executableName: \"kimi\",\n processNames: [\"kimi\"],\n launchCommandKind: \"kimi-code-tui\",\n deliveryKind: \"pty-supervisor\",\n readinessKind: \"kimi-session-signal\",\n transcriptKind: \"kimi-wire-jsonl\",\n sessionIdSource: \"kimi-session-newest\",\n contextLayerKind: \"kimi-code\",\n feedKind: \"kimi_code\",\n supportsPtySupervisor: true,\n supportsChannelsBridge: false,\n supportsConversationStreaming: true,\n supportsPatchProjection: false,\n usesRpcFifo: false,\n usesCodexHome: false,\n injectsPromptTimeMemory: false,\n workAgentMode: \"kimi-code-tui\",\n readyTimeoutSeconds: 60,\n steerKind: null,\n}\n\nexport const OPENCODE_BEHAVIOR: HarnessBehavior = {\n ...ACP_BEHAVIOR,\n displayName: \"OpenCode\",\n capabilities: OPENCODE_CAPABILITIES,\n contextLayerKind: \"opencode\",\n executableName: \"opencode\",\n processNames: [\"acp-host\", \"opencode\"],\n}\n\nexport const MUSE_BEHAVIOR: HarnessBehavior = {\n displayName: \"Muse Code\",\n capabilities: MUSE_CAPABILITIES,\n nativeCommands: [],\n executableName: \"muse\",\n processNames: [\"muse\", \"muse-bin\"],\n launchCommandKind: \"muse-tui\",\n deliveryKind: \"pty-supervisor\",\n readinessKind: \"muse-tui-prompt\",\n transcriptKind: \"muse-jsonl\",\n sessionIdSource: \"muse-session-log\",\n contextLayerKind: \"muse\",\n feedKind: \"muse\",\n supportsPtySupervisor: true,\n supportsChannelsBridge: false,\n supportsConversationStreaming: true,\n supportsPatchProjection: false,\n usesRpcFifo: false,\n usesCodexHome: false,\n injectsPromptTimeMemory: false,\n workAgentMode: \"muse-tui\",\n readyTimeoutSeconds: 60,\n steerKind: null,\n effortLevels: [\"low\", \"medium\", \"high\", \"xhigh\"],\n}\n\nexport const PRIME_AGENT_BEHAVIOR: HarnessBehavior = {\n displayName: \"Prime Agent\",\n capabilities: PRIME_AGENT_CAPABILITIES,\n nativeCommands: [], // 0.8.0 exposes get_commands only for extension/skill commands; none are Overdeck-relevant\n executableName: \"prime-agent\",\n processNames: [\"prime-agent\"],\n launchCommandKind: \"prime-agent-host\",\n deliveryKind: \"prime-agent-host-rpc\",\n readinessKind: \"prime-agent-host-ready\",\n transcriptKind: \"prime-agent-jsonl\",\n sessionIdSource: \"prime-agent-session-id\",\n contextLayerKind: \"prime-agent\",\n feedKind: \"prime_agent\",\n supportsPtySupervisor: false,\n supportsChannelsBridge: false,\n supportsConversationStreaming: true,\n supportsPatchProjection: false,\n usesRpcFifo: false,\n usesCodexHome: false,\n injectsPromptTimeMemory: false,\n workAgentMode: \"prime-agent-host\",\n readyTimeoutSeconds: 60,\n steerKind: null,\n}\n\nconst BEHAVIORS: Record<RuntimeName, HarnessBehavior> = {\n \"opencode\": OPENCODE_BEHAVIOR,\n \"claude-code\": CLAUDE_CODE_BEHAVIOR,\n ohmypi: OHMYPI_BEHAVIOR,\n codex: CODEX_BEHAVIOR,\n acp: ACP_BEHAVIOR,\n \"kimi-code\": KIMI_CODE_BEHAVIOR,\n muse: MUSE_BEHAVIOR,\n \"prime-agent\": PRIME_AGENT_BEHAVIOR,\n}\n\nconst LEGACY_PI_HARNESS = \"pi\"\n\n/** True for the legacy stored harness alias `pi` (PAN-1989), which now means ohmypi. */\nexport function isLegacyPiHarnessName(raw: unknown): boolean {\n return raw === LEGACY_PI_HARNESS\n}\n\n/** Map a stored or requested harness string to a RuntimeName; legacy `pi` → `ohmypi`; anything else → null. */\nexport function normalizeHarnessName(raw: unknown): RuntimeName | null {\n if (isLegacyPiHarnessName(raw)) return \"ohmypi\"\n return typeof raw === \"string\" && KNOWN_HARNESSES.has(raw) ? (raw as RuntimeName) : null\n}\n\nexport function getHarnessBehavior(harness: HarnessName | undefined | null): HarnessBehavior {\n return BEHAVIORS[normalizeHarnessName(harness) ?? \"claude-code\"]\n}\n\nexport function getRuntimeBehavior(runtime: RuntimeName): HarnessBehavior {\n return BEHAVIORS[runtime]\n}\n","import { Schema } from \"effect\"\n\nexport const HygieneFinding = Schema.Struct({\n id: Schema.String,\n summary: Schema.String,\n detail: Schema.optional(Schema.String),\n urgent: Schema.optional(Schema.Boolean),\n})\nexport type HygieneFinding = typeof HygieneFinding.Type\n\nexport const HygienePullRequest = Schema.Struct({\n number: Schema.Number,\n branch: Schema.String,\n url: Schema.String,\n blocking: Schema.Literals([\"review-pending\", \"test-pending\", \"failing-checks\", \"awaiting-UAT\", \"clean\"]),\n})\n\nexport const HygieneReport = Schema.Struct({\n generatedAt: Schema.String,\n root: Schema.String,\n needsAttention: Schema.Boolean,\n skipped: Schema.Array(Schema.String),\n push: Schema.Struct({ ahead: Schema.Number, commits: Schema.Array(Schema.String) }),\n tree: Schema.Struct({ files: Schema.Array(Schema.String), backups: Schema.Array(Schema.String) }),\n prs: Schema.Array(HygienePullRequest),\n agents: Schema.Struct({\n counts: Schema.Record(Schema.String, Schema.Number),\n problems: Schema.Array(HygieneFinding),\n }),\n sessions: Schema.Struct({ total: Schema.Number, zombies: Schema.Array(Schema.String) }),\n branches: Schema.Struct({ stale: Schema.Array(Schema.String) }),\n workspaces: Schema.Struct({ stale: Schema.Array(Schema.String) }),\n disk: Schema.Struct({ availableGb: Schema.Number, thresholdGb: Schema.Number, urgent: Schema.Boolean }),\n fixes: Schema.Struct({\n branchesDeleted: Schema.Array(Schema.String),\n workspacesRemoved: Schema.Array(Schema.Struct({ path: Schema.String, freedBytes: Schema.Number })),\n errors: Schema.Array(Schema.String),\n }),\n})\nexport type HygieneReport = typeof HygieneReport.Type\n","export const OVERDECK_DASHBOARD_PROTOCOL_VERSION = 1;\nexport const OVERDECK_AGENT_PROTOCOL_VERSION = 1;\n\nexport type UpdateChannel = 'stable' | 'canary';\nexport type UpdatePhase =\n | 'idle'\n | 'checking'\n | 'current'\n | 'available'\n | 'downloading'\n | 'installing'\n | 'ready'\n | 'error';\nexport type UpdateInstallMode = 'desktop' | 'npm-global' | 'development';\nexport type UpdateCompatibility = 'compatible' | 'active-agents-block' | 'unknown';\n\nexport interface UpdateSnapshot {\n phase: UpdatePhase;\n installMode: UpdateInstallMode;\n channel: UpdateChannel;\n currentVersion: string;\n targetVersion: string | null;\n releaseName: string | null;\n releaseNotes: string | null;\n releaseUrl: string | null;\n publishedAt: string | null;\n progressPercent: number | null;\n error: string | null;\n lastCheckedAt: string | null;\n compatibility: UpdateCompatibility;\n currentDashboardProtocol: number;\n currentAgentProtocol: number;\n targetDashboardProtocol: number | null;\n targetAgentProtocol: number | null;\n}\n","import { Schema } from \"effect\"\n\nexport const DeployStalenessSnapshot = Schema.Struct({\n status: Schema.Literals([\"fresh\", \"stale\", \"unknown\"]),\n buildCommit: Schema.NullOr(Schema.String),\n originMainSha: Schema.NullOr(Schema.String),\n behindTotal: Schema.NullOr(Schema.Number),\n behindBuildInputs: Schema.NullOr(Schema.Number),\n originMainLastCommitAt: Schema.NullOr(Schema.Number),\n originMainLastBuildInputCommitAt: Schema.NullOr(Schema.Number),\n computedAt: Schema.Number,\n reason: Schema.optional(Schema.String),\n})\nexport type DeployStalenessSnapshot = typeof DeployStalenessSnapshot.Type\n","const collator = new Intl.Collator(\"en\", { numeric: true, sensitivity: \"base\" })\n\n/**\n * Compares issue identifiers numerically within their prefix, so PAN-532 sorts\n * before PAN-2822. Every issue-id sort should use this comparator (PAN-2831).\n */\nexport function compareIssueIds(a: string, b: string): number {\n return collator.compare(a, b)\n}\n","import type { Harness } from \"./types\"\n\nexport const TELEMETRY_EVENT_NAMES = [\n \"dashboard_tab_viewed\",\n \"agent_spawned\",\n \"project_created\",\n \"issue_merged\",\n \"force_merge_triggered\",\n \"issue_closed_out\",\n \"bulk_close_out_initiated\",\n \"auto_merge_toggled\",\n \"conversation_forked\",\n \"plan_approved\",\n \"plan_changes_requested\",\n \"agent_question_answered\",\n \"server_boot\",\n \"cli_command_run\",\n \"pipeline_stage_changed\",\n \"github_quota_sample\",\n \"github_rate_limited\",\n \"instance_heartbeat\",\n] as const\n\nexport type TelemetryEventName = typeof TELEMETRY_EVENT_NAMES[number]\n\nexport const TELEMETRY_CLI_VERBS = [\n \"abort\",\n \"approve\",\n \"backlog\",\n \"backup\",\n \"clean\",\n \"context\",\n \"destroy\",\n \"dev\",\n \"diff\",\n \"doctor\",\n \"done\",\n \"down\",\n \"edit\",\n \"finalize\",\n \"fork\",\n \"handoff\",\n \"health\",\n \"init\",\n \"issues\",\n \"kill\",\n \"list\",\n \"migrate\",\n \"mode\",\n \"open\",\n \"pause\",\n \"pending\",\n \"plan\",\n \"project\",\n \"projects\",\n \"recover\",\n \"reload\",\n \"reopen\",\n \"request\",\n \"reset\",\n \"restart\",\n \"restore\",\n \"resume\",\n \"review\",\n \"scope\",\n \"serve\",\n \"show\",\n \"skills\",\n \"spawn-reviewer\",\n \"staffing\",\n \"start\",\n \"status\",\n \"strike\",\n \"sync\",\n \"sync-main\",\n \"tell\",\n \"unarchive-conversation\",\n \"unpause\",\n \"untroubled\",\n \"up\",\n \"update\",\n \"validate\",\n \"wipe\",\n \"write-sequence\",\n \"other\",\n] as const\n\nconst TELEMETRY_HARNESSES = [\"claude-code\", \"ohmypi\", \"codex\", \"acp\", \"kimi-code\", \"opencode\", \"muse\", \"prime-agent\"] as const satisfies readonly Harness[]\n\n/**\n * PAN-4264: GitHub quota callers as telemetry values (`-` → `_`). Mirrors\n * `GITHUB_QUOTA_CALLERS` in ./github-quota; a unit test keeps them in step.\n */\nconst TELEMETRY_GITHUB_CALLERS = [\n \"pipeline_membership\",\n \"pr_cache\",\n \"pr_sync\",\n \"ci_repair\",\n \"issue_poller\",\n \"close_out\",\n \"tracker_client\",\n \"app_rest\",\n \"quota_sampler\",\n \"agent\",\n \"pr_adoption\",\n \"other\",\n] as const\n\nexport const TELEMETRY_PROPERTY_DOMAINS = {\n agent_spawn_mode: [\"spawn-and-send\", \"spawn-work-and-send\"],\n answer_type: [\"custom\", \"selection\"],\n auto_merge_variant: [\"segmented\", \"badge\"],\n boolean: [false, true],\n cli_verb: TELEMETRY_CLI_VERBS,\n close_out_variant: [\"card\", \"inspector\"],\n count_bucket: [\"0\", \"1-2\", \"3-5\", \"6-10\", \"11+\"],\n dashboard_tab: [\n \"home\",\n \"pipeline\",\n \"kanban\",\n \"command-deck\",\n \"agents\",\n \"flywheel\",\n \"orders\",\n \"backlog\",\n \"resources\",\n \"knowledge\",\n \"skills\",\n \"context\",\n \"health\",\n \"activity\",\n \"metrics\",\n \"costs\",\n \"autopreso\",\n \"settings\",\n \"god-view\",\n \"deacon\",\n \"sessions\",\n \"awaiting-merge\",\n \"workspace-new\",\n \"project-new\",\n \"workspace\",\n ],\n decision_subject: [\"agent\", \"conversation\"],\n duration_bucket: [\"under_100ms\", \"100ms-999ms\", \"1s-9s\", \"10s+\"],\n forge: [\"github\", \"gitlab\"],\n fork_kind: [\"summary\", \"handoff\", \"plain\"],\n github_caller: TELEMETRY_GITHUB_CALLERS,\n harness: TELEMETRY_HARNESSES,\n merge_kind: [\"pipeline\"],\n model_family: [\"claude\", \"gpt\", \"gemini\", \"kimi\", \"minimax\", \"glm\", \"mimo\", \"other\"],\n pipeline_stage: [\"work_done\", \"review_passed\", \"verification_passed\", \"merged\", \"closed_out\"],\n // \"clone\" ships with PAN-3836; without it the dimension cannot show whether\n // cloning is actually used, which is the reason the event carries a mode.\n project_mode: [\"clone\", \"existing\", \"new\"],\n quota_points_bucket: [\"0\", \"1-49\", \"50-199\", \"200-499\", \"500-999\", \"1000-2499\", \"2500+\"],\n quota_remaining_bucket: [\"0\", \"1-99\", \"100-499\", \"500-999\", \"1000-2499\", \"2500+\", \"unknown\"],\n rate_limit_kind: [\"primary\", \"secondary\"],\n} as const\n\nexport type TelemetryPropertyDomainName = keyof typeof TELEMETRY_PROPERTY_DOMAINS\n\nexport const TELEMETRY_EVENT_CATALOG = {\n dashboard_tab_viewed: { tab: \"dashboard_tab\" },\n agent_spawned: { spawn_mode: \"agent_spawn_mode\", has_message: \"boolean\" },\n project_created: { mode: \"project_mode\" },\n issue_merged: { merge_kind: \"merge_kind\" },\n force_merge_triggered: { forge: \"forge\" },\n issue_closed_out: { variant: \"close_out_variant\" },\n bulk_close_out_initiated: { issue_count: \"count_bucket\" },\n auto_merge_toggled: { auto_merge: \"boolean\", variant: \"auto_merge_variant\" },\n conversation_forked: {\n fork_intent: \"fork_kind\",\n fork_mode: \"fork_kind\",\n fast_summary: \"boolean\",\n launch_harness: \"harness\",\n fresh_start: \"boolean\",\n },\n plan_approved: { subject_kind: \"decision_subject\" },\n plan_changes_requested: { subject_kind: \"decision_subject\" },\n agent_question_answered: {\n subject_kind: \"decision_subject\",\n answer_type: \"answer_type\",\n question_count: \"count_bucket\",\n },\n server_boot: { project_count: \"count_bucket\", active_agent_count: \"count_bucket\" },\n cli_command_run: { verb: \"cli_verb\", ok: \"boolean\", duration_ms: \"duration_bucket\" },\n pipeline_stage_changed: { stage: \"pipeline_stage\", harness: \"harness\", model: \"model_family\" },\n github_quota_sample: {\n graphql_pipeline_membership: \"quota_points_bucket\",\n rest_pipeline_membership: \"quota_points_bucket\",\n graphql_pr_cache: \"quota_points_bucket\",\n rest_pr_cache: \"quota_points_bucket\",\n graphql_pr_sync: \"quota_points_bucket\",\n rest_pr_sync: \"quota_points_bucket\",\n graphql_ci_repair: \"quota_points_bucket\",\n rest_ci_repair: \"quota_points_bucket\",\n graphql_issue_poller: \"quota_points_bucket\",\n rest_issue_poller: \"quota_points_bucket\",\n graphql_close_out: \"quota_points_bucket\",\n rest_close_out: \"quota_points_bucket\",\n graphql_tracker_client: \"quota_points_bucket\",\n rest_tracker_client: \"quota_points_bucket\",\n graphql_app_rest: \"quota_points_bucket\",\n rest_app_rest: \"quota_points_bucket\",\n graphql_agent: \"quota_points_bucket\",\n rest_agent: \"quota_points_bucket\",\n graphql_other: \"quota_points_bucket\",\n rest_other: \"quota_points_bucket\",\n graphql_unattributed: \"quota_points_bucket\",\n min_remaining_graphql: \"quota_remaining_bucket\",\n min_remaining_rest: \"quota_remaining_bucket\",\n primary_limit_errors: \"count_bucket\",\n secondary_limit_errors: \"count_bucket\",\n },\n github_rate_limited: { caller: \"github_caller\", kind: \"rate_limit_kind\", own_usage_low: \"boolean\" },\n instance_heartbeat: { project_count: \"count_bucket\", active_agent_count: \"count_bucket\", dashboard_running: \"boolean\" },\n} as const satisfies Record<TelemetryEventName, Record<string, TelemetryPropertyDomainName>>\n\ntype TelemetryPropertyValue<Domain extends TelemetryPropertyDomainName> =\n (typeof TELEMETRY_PROPERTY_DOMAINS)[Domain][number]\n\ntype EventProperties<Event extends TelemetryEventName> = {\n readonly [Property in keyof (typeof TELEMETRY_EVENT_CATALOG)[Event]]:\n TelemetryPropertyValue<(typeof TELEMETRY_EVENT_CATALOG)[Event][Property] & TelemetryPropertyDomainName>\n}\n\nexport type TelemetryCountBucket = TelemetryPropertyValue<\"count_bucket\">\nexport type TelemetryDurationBucket = TelemetryPropertyValue<\"duration_bucket\">\nexport type TelemetryDecisionSubjectKind = TelemetryPropertyValue<\"decision_subject\">\nexport type TelemetryModelFamily = TelemetryPropertyValue<\"model_family\">\nexport type TelemetryCliVerb = TelemetryPropertyValue<\"cli_verb\">\nexport type TelemetryDashboardTab = TelemetryPropertyValue<\"dashboard_tab\">\n\nexport type DashboardTabViewedProperties = EventProperties<\"dashboard_tab_viewed\">\nexport type AgentSpawnedProperties = EventProperties<\"agent_spawned\">\nexport type ProjectCreatedProperties = EventProperties<\"project_created\">\nexport type IssueMergedProperties = EventProperties<\"issue_merged\">\nexport type ForceMergeTriggeredProperties = EventProperties<\"force_merge_triggered\">\nexport type IssueClosedOutProperties = EventProperties<\"issue_closed_out\">\nexport type BulkCloseOutInitiatedProperties = EventProperties<\"bulk_close_out_initiated\">\nexport type AutoMergeToggledProperties = EventProperties<\"auto_merge_toggled\">\nexport type ConversationForkedProperties = EventProperties<\"conversation_forked\">\nexport type PlanApprovedProperties = EventProperties<\"plan_approved\">\nexport type PlanChangesRequestedProperties = EventProperties<\"plan_changes_requested\">\nexport type AgentQuestionAnsweredProperties = EventProperties<\"agent_question_answered\">\nexport type ServerBootProperties = EventProperties<\"server_boot\">\nexport type CliCommandRunProperties = EventProperties<\"cli_command_run\">\nexport type PipelineStageChangedProperties = EventProperties<\"pipeline_stage_changed\">\nexport type GitHubQuotaSampleProperties = EventProperties<\"github_quota_sample\">\nexport type GitHubRateLimitedProperties = EventProperties<\"github_rate_limited\">\nexport type InstanceHeartbeatProperties = EventProperties<\"instance_heartbeat\">\nexport type TelemetryQuotaPointsBucket = TelemetryPropertyValue<\"quota_points_bucket\">\nexport type TelemetryQuotaRemainingBucket = TelemetryPropertyValue<\"quota_remaining_bucket\">\nexport type TelemetryGitHubCaller = TelemetryPropertyValue<\"github_caller\">\n\n/** PAN-4264: GitHub quota points as a coarse bucket (raw counts are never sent). */\nexport function bucketQuotaPoints(points: number): TelemetryQuotaPointsBucket {\n if (!(points > 0)) return \"0\"\n if (points < 50) return \"1-49\"\n if (points < 200) return \"50-199\"\n if (points < 500) return \"200-499\"\n if (points < 1000) return \"500-999\"\n if (points < 2500) return \"1000-2499\"\n return \"2500+\"\n}\n\n/** PAN-4264: GitHub quota remaining as a coarse bucket; `unknown` without a sample. */\nexport function bucketQuotaRemaining(remaining: number | undefined): TelemetryQuotaRemainingBucket {\n if (remaining === undefined || !Number.isFinite(remaining)) return \"unknown\"\n if (remaining <= 0) return \"0\"\n if (remaining < 100) return \"1-99\"\n if (remaining < 500) return \"100-499\"\n if (remaining < 1000) return \"500-999\"\n if (remaining < 2500) return \"1000-2499\"\n return \"2500+\"\n}\n\nexport type TelemetryEventProperties = {\n readonly [Event in TelemetryEventName]: EventProperties<Event>\n}\n\nexport type TelemetryPropertiesFor<Event extends TelemetryEventName> = TelemetryEventProperties[Event]\n","// GENERATED FILE — do not edit by hand.\n// Source: the pan CLI command registry via `pan admin commands --json`.\n// Regenerate: npm run generate:slash-commands (drift-gated by scripts/lint-slash-commands.sh)\nimport type { ComposerCommandManifestEntry } from \"./composer-commands\"\n\nexport const COMPOSER_COMMAND_MANIFEST: ComposerCommandManifestEntry[] = [\n {\"id\":\"pan-init\",\"path\":[\"init\"],\"display\":\"/pan init\",\"description\":\"Initialize Overdeck (~/.overdeck/)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-sync\",\"path\":[\"sync\"],\"display\":\"/pan sync\",\"description\":\"Sync skills and render managed launch context\",\"args\":[],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Show what would be synced\",\"required\":false,\"valueHint\":null},{\"flags\":\"--force\",\"description\":\"Overwrite files modified since Overdeck installed them\",\"required\":false,\"valueHint\":null},{\"flags\":\"--diff\",\"description\":\"Show diff for modified files\",\"required\":false,\"valueHint\":null},{\"flags\":\"--backup-only\",\"description\":\"Only create backup\",\"required\":false,\"valueHint\":null},{\"flags\":\"--if-changed\",\"description\":\"Skip the sync when inputs are unchanged (used by startup)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-context\",\"path\":[\"context\"],\"display\":\"/pan context\",\"description\":\"Manage the layered context model (global / project / workspace)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-context-list\",\"path\":[\"context\",\"list\"],\"display\":\"/pan context list\",\"description\":\"Show all three layers' files\",\"args\":[],\"options\":[{\"flags\":\"--layer <layer>\",\"description\":\"Limit to one layer: global, project, or workspace\",\"required\":true,\"valueHint\":\"layer\"},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-context-edit\",\"path\":[\"context\",\"edit\"],\"display\":\"/pan context edit\",\"description\":\"Open a context layer in $EDITOR\",\"args\":[],\"options\":[{\"flags\":\"--layer <layer>\",\"description\":\"Layer to edit: global (default), project, or workspace\",\"required\":true,\"valueHint\":\"layer\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-context-sync\",\"path\":[\"context\",\"sync\"],\"display\":\"/pan context sync\",\"description\":\"Refresh Overdeck-managed session context artifacts\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-context-diff\",\"path\":[\"context\",\"diff\"],\"display\":\"/pan context diff\",\"description\":\"Show what each harness would receive after templating\",\"args\":[],\"options\":[{\"flags\":\"--harness <harness>\",\"description\":\"Limit to one harness: claude or pi\",\"required\":true,\"valueHint\":\"harness\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-context-validate\",\"path\":[\"context\",\"validate\"],\"display\":\"/pan context validate\",\"description\":\"Lint layer templates for unclosed or unknown harness blocks\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-context-migrate\",\"path\":[\"context\",\"migrate\"],\"display\":\"/pan context migrate\",\"description\":\"One-shot migration from the deprecated sync.devroot model\",\"args\":[],\"options\":[{\"flags\":\"--yes\",\"description\":\"Register every discovered project without prompting\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-context-detach\",\"path\":[\"context\",\"detach\"],\"display\":\"/pan context detach\",\"description\":\"Explicitly remove historical Overdeck managed regions from native instruction files\",\"args\":[],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Preview exact files and managed blocks without changing anything\",\"required\":false,\"valueHint\":null},{\"flags\":\"--apply\",\"description\":\"Back up each file and remove only an unambiguous managed block\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-restore\",\"path\":[\"restore\"],\"display\":\"/pan restore\",\"description\":\"Restore from backup\",\"args\":[{\"name\":\"timestamp\",\"required\":false,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-backup\",\"path\":[\"backup\"],\"display\":\"/pan backup\",\"description\":\"Manage backups\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-backup-list\",\"path\":[\"backup\",\"list\"],\"display\":\"/pan backup list\",\"description\":\"List all backups\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-backup-clean\",\"path\":[\"backup\",\"clean\"],\"display\":\"/pan backup clean\",\"description\":\"Remove old backups\",\"args\":[],\"options\":[{\"flags\":\"--keep <count>\",\"description\":\"Number of backups to keep\",\"required\":true,\"valueHint\":\"count\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-skills\",\"path\":[\"skills\"],\"display\":\"/pan skills\",\"description\":\"List skills and set per-level on/off overrides\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-list\",\"path\":[\"skills\",\"list\"],\"display\":\"/pan skills list\",\"description\":\"List skills with effective on/off state and its source\",\"args\":[],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Resolve for a project\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--issue <id>\",\"description\":\"Resolve for an issue\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-set\",\"path\":[\"skills\",\"set\"],\"display\":\"/pan skills set\",\"description\":\"Set a skill (<skill> <state>) or a pack (--pack <id> <state>) on, off, or inherit\",\"args\":[{\"name\":\"args\",\"required\":true,\"variadic\":true}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Project override\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--issue <id>\",\"description\":\"Issue override\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--pack <id>\",\"description\":\"Set a whole skill pack instead of one skill\",\"required\":true,\"valueHint\":\"id\"}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack\",\"path\":[\"skills\",\"pack\"],\"display\":\"/pan skills pack\",\"description\":\"Register, update, and cache external skill packs pinned to a commit\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack-add\",\"path\":[\"skills\",\"pack\",\"add\"],\"display\":\"/pan skills pack add\",\"description\":\"Register a git skill pack at the commit a ref resolves to (enables nothing)\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"url\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--ref <ref>\",\"description\":\"Tag or branch to pin\",\"required\":true,\"valueHint\":\"ref\"},{\"flags\":\"--adapter <adapter>\",\"description\":\"plain, claude-plugin, or deft-readonly\",\"required\":true,\"valueHint\":\"adapter\"},{\"flags\":\"--yes\",\"description\":\"Trust the resolved commit without asking\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack-update\",\"path\":[\"skills\",\"pack\",\"update\"],\"display\":\"/pan skills pack update\",\"description\":\"Move a pack to the commit its ref (or --ref) now resolves to\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--ref <ref>\",\"description\":\"Switch to a different tag or branch\",\"required\":true,\"valueHint\":\"ref\"},{\"flags\":\"--yes\",\"description\":\"Trust the new commit without asking\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack-list\",\"path\":[\"skills\",\"pack\",\"list\"],\"display\":\"/pan skills pack list\",\"description\":\"List registered skill packs\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--offline\",\"description\":\"Skip the update check (no network)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack-remove\",\"path\":[\"skills\",\"pack\",\"remove\"],\"display\":\"/pan skills pack remove\",\"description\":\"Unregister a pack, clear its global toggles, and delete its cache\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack-sync\",\"path\":[\"skills\",\"pack\",\"sync\"],\"display\":\"/pan skills pack sync\",\"description\":\"Re-fetch packs and extract their trusted commits (all packs when omitted)\",\"args\":[{\"name\":\"id\",\"required\":false,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack-gc\",\"path\":[\"skills\",\"pack\",\"gc\"],\"display\":\"/pan skills pack gc\",\"description\":\"Remove unused skill pack mounts and dangling launch links\",\"args\":[],\"options\":[{\"flags\":\"--max-age-days <n>\",\"description\":\"Keep unused mounts younger than this\",\"required\":true,\"valueHint\":\"n\"}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack-sageox\",\"path\":[\"skills\",\"pack\",\"sageox\"],\"display\":\"/pan skills pack sageox\",\"description\":\"SageOx pack state and per-project upload opt-in (PAN-2444)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack-sageox-status\",\"path\":[\"skills\",\"pack\",\"sageox\",\"status\"],\"display\":\"/pan skills pack sageox status\",\"description\":\"Show, per project, the sageox pack state and the upload state\",\"args\":[],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Only this project\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-pack-sageox-upload\",\"path\":[\"skills\",\"pack\",\"sageox\",\"upload\"],\"display\":\"/pan skills pack sageox upload\",\"description\":\"Turn SageOx uploads on or off for a project (off by default)\",\"args\":[{\"name\":\"state\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Project key\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-deft\",\"path\":[\"skills\",\"deft\"],\"display\":\"/pan skills deft\",\"description\":\"Deft Directive detection, ownership report, and managed mode\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-deft-status\",\"path\":[\"skills\",\"deft\",\"status\"],\"display\":\"/pan skills deft status\",\"description\":\"Show Directive detection, the deft pack, the skill map, managed mode, and the ownership report\",\"args\":[],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Registered project (default: the current repo)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-deft-enable\",\"path\":[\"skills\",\"deft\",\"enable\"],\"display\":\"/pan skills deft enable\",\"description\":\"Enable Deft managed mode for a Directive project after showing the ownership plan\",\"args\":[],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Registered project\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--yes\",\"description\":\"Accept the printed plan without asking\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-skills-deft-disable\",\"path\":[\"skills\",\"deft\",\"disable\"],\"display\":\"/pan skills deft disable\",\"description\":\"Disable Deft managed mode; project files are untouched\",\"args\":[],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Registered project\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-pair\",\"path\":[\"pair\"],\"display\":\"/pan pair\",\"description\":\"Print a one-time URL that pairs another device with this dashboard (see configuration/remote-access.mdx)\",\"args\":[],\"options\":[{\"flags\":\"--label <name>\",\"description\":\"Name to record for the pairing in the activity log\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--url <base>\",\"description\":\"Base URL the other device can reach (default: this dashboard's API URL)\",\"required\":true,\"valueHint\":\"base\"},{\"flags\":\"--json\",\"description\":\"Print { url, credential, expiresAt } as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-devices\",\"path\":[\"devices\"],\"display\":\"/pan devices\",\"description\":\"List or revoke paired devices (see configuration/remote-access.mdx)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-devices-list\",\"path\":[\"devices\",\"list\"],\"display\":\"/pan devices list\",\"description\":\"List paired devices with created, last-used and revoked times\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Print the devices as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-devices-revoke\",\"path\":[\"devices\",\"revoke\"],\"display\":\"/pan devices revoke\",\"description\":\"Revoke a paired device and close its live connections\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-token\",\"path\":[\"token\"],\"display\":\"/pan token\",\"description\":\"Create, list or revoke scoped access tokens (see configuration/remote-access.mdx)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-token-create\",\"path\":[\"token\",\"create\"],\"display\":\"/pan token create\",\"description\":\"Create a scoped access token and print it once\",\"args\":[{\"name\":\"name\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--scopes <list>\",\"description\":\"Comma-separated scopes: read:events, read:state, read:conversations, tell, operate, admin\",\"required\":true,\"valueHint\":\"list\"},{\"flags\":\"--json\",\"description\":\"Print { id, name, scopes, token } as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-token-list\",\"path\":[\"token\",\"list\"],\"display\":\"/pan token list\",\"description\":\"List access tokens with scopes and created, last-used and revoked times\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Print the tokens as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-token-revoke\",\"path\":[\"token\",\"revoke\"],\"display\":\"/pan token revoke\",\"description\":\"Revoke an access token and close its live connections\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-issues\",\"path\":[\"issues\"],\"display\":\"/pan issues\",\"description\":\"List and triage work across configured trackers\",\"args\":[],\"options\":[{\"flags\":\"--all\",\"description\":\"Include closed issues\",\"required\":false,\"valueHint\":null},{\"flags\":\"--mine\",\"description\":\"Show only my assigned issues\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--tracker <type>\",\"description\":\"Query specific tracker (linear/github/gitlab)\",\"required\":true,\"valueHint\":\"type\"},{\"flags\":\"--all-trackers\",\"description\":\"Query all configured trackers\",\"required\":false,\"valueHint\":null},{\"flags\":\"--triage\",\"description\":\"Show triage queue\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-show\",\"path\":[\"show\"],\"display\":\"/pan show\",\"description\":\"Unified lens: derived issue state, CV, context, health for one issue\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--cv\",\"description\":\"Agent work history only\",\"required\":false,\"valueHint\":null},{\"flags\":\"--context\",\"description\":\"Context engineering state only\",\"required\":false,\"valueHint\":null},{\"flags\":\"--health\",\"description\":\"Health + heartbeat only\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-open\",\"path\":[\"open\"],\"display\":\"/pan open\",\"description\":\"Open an issue workspace in your preferred editor\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"-e, --editor <editor>\",\"description\":\"Editor to use (cursor, windsurf, vscode, zed, etc.)\",\"required\":true,\"valueHint\":\"editor\"}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-review\",\"path\":[\"review\"],\"display\":\"/pan review\",\"description\":\"Review-loop management: request re-review, abort reviewers, restart a round\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Review\"},\n {\"id\":\"pan-review-request\",\"path\":[\"review\",\"request\"],\"display\":\"/pan review request\",\"description\":\"Request re-review after fixing feedback\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"-m, --message <text>\",\"description\":\"Message describing the fixes applied\",\"required\":true,\"valueHint\":\"text\"}],\"aliases\":[],\"category\":\"Review\"},\n {\"id\":\"pan-review-waive-test-removal\",\"path\":[\"review\",\"waive-test-removal\"],\"display\":\"/pan review waive-test-removal\",\"description\":\"Operator-only: let a net test removal past the test-skip gate at the current head\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--reason <text>\",\"description\":\"Why the removed tests are gone and nothing replaces them\",\"required\":true,\"valueHint\":\"text\"}],\"aliases\":[],\"category\":\"Review\"},\n {\"id\":\"pan-review-abort\",\"path\":[\"review\",\"abort\"],\"display\":\"/pan review abort\",\"description\":\"Kill all running reviewer sessions and leave the worker idle\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Review\"},\n {\"id\":\"pan-review-restart\",\"path\":[\"review\",\"restart\"],\"display\":\"/pan review restart\",\"description\":\"Resume review and re-dispatch reviewers missing a report\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--model <model>\",\"description\":\"Override model for all reviewers (e.g. gpt-5.4, claude-sonnet-5)\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--role <role>\",\"description\":\"Restart only a specific reviewer role (correctness/security/performance/requirements)\",\"required\":true,\"valueHint\":\"role\"}],\"aliases\":[],\"category\":\"Review\"},\n {\"id\":\"pan-staffing\",\"path\":[\"staffing\"],\"display\":\"/pan staffing\",\"description\":\"Show the work model and swarm policy in effect for an issue\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-backlog\",\"path\":[\"backlog\"],\"display\":\"/pan backlog\",\"description\":\"Backlog sequencer management\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-backlog-write-sequence\",\"path\":[\"backlog\",\"write-sequence\"],\"display\":\"/pan backlog write-sequence\",\"description\":\"Validate a SequenceDoc JSON file, write it to .pan/backlog/sequence.md, and commit it\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project-root <path>\",\"description\":\"Project root (default: cwd)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-plan\",\"path\":[\"plan\"],\"display\":\"/pan plan\",\"description\":\"Planning lifecycle commands\",\"args\":[{\"name\":\"id\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--auto\",\"description\":\"Run non-interactive planning; inferred choices are recorded in plan.autoDecisions[]\",\"required\":false,\"valueHint\":null},{\"flags\":\"--auto-start\",\"description\":\"[deprecated: use pan start <id>] After planning completes, automatically start the work agent — used by autonomous orchestrators\",\"required\":false,\"valueHint\":null},{\"flags\":\"--probe\",\"description\":\"Add an adversarial pre-finalize probe pass to the planning prompt\",\"required\":false,\"valueHint\":null},{\"flags\":\"--model <model>\",\"description\":\"Model to use for the planning role\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--harness <harness>\",\"description\":\"Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse | prime-agent (defaults to role/provider settings)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--effort <level>\",\"description\":\"Planning effort: low | medium | high | xhigh | max\",\"required\":true,\"valueHint\":\"level\"},{\"flags\":\"--remote\",\"description\":\"Use remote planning workspace (Fly.io)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--local\",\"description\":\"Use local planning workspace\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-plan-finalize\",\"path\":[\"plan\",\"finalize\"],\"display\":\"/pan plan finalize\",\"description\":\"Mark the workspace plan as proposed and promote it to canonical state\",\"args\":[],\"options\":[{\"flags\":\"-w, --workspace <path>\",\"description\":\"Workspace path (defaults to cwd, walks up to find .pan/)\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--json\",\"description\":\"Emit JSON result\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-promote\",\"description\":\"Skip auto-promotion to main; leave spec at status=proposed for manual Done\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-quality-lint\",\"description\":\"Emergency bypass for xBRIEF quality lint during finalize\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-prd\",\"description\":\"Bypass the PRD-first gate for a genuinely trivial issue (loud; prefer writing the PRD)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--critic\",\"description\":\"Require an independent different-family plan critique before promotion (automatic for architecture, substrate-improvement and security labels)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-plan-done\",\"path\":[\"plan\",\"done\"],\"display\":\"/pan plan done\",\"description\":\"Complete planning — promote the xBRIEF and transition the issue to Planned\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--no-prd\",\"description\":\"Bypass the PRD-first gate for a genuinely trivial issue (loud; prefer writing the PRD)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-tell\",\"path\":[\"tell\"],\"display\":\"/pan tell\",\"description\":\"Send message to running agent\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"message\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Deliver even to a critic or verifier lane that already filed its verdict\",\"required\":false,\"valueHint\":null},{\"flags\":\"--steer\",\"description\":\"Interrupt the running turn and send now (Claude Code send-now; Ctrl+X Ctrl+S)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-ask\",\"path\":[\"ask\"],\"display\":\"/pan ask\",\"description\":\"Ask the operator a blocking decision; it appears in the dashboard Needs-you\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"question\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--option <label>\",\"description\":\"A choice the operator can pick (repeat 2-4 times)\",\"required\":true,\"valueHint\":\"label\"},{\"flags\":\"--context <text>\",\"description\":\"What you already tried or know, shown with the question\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--withdraw\",\"description\":\"Close your open decision request (answered another way, or no longer needed)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-answer\",\"path\":[\"answer\"],\"display\":\"/pan answer\",\"description\":\"Show a pending pane choice, or answer its numbered option\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"option\",\"required\":false,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-monitor\",\"path\":[\"monitor\"],\"display\":\"/pan monitor\",\"description\":\"Long-running background inbox: drain agent mail to stdout (run inside the agent session; PAN-3015)\",\"args\":[{\"name\":\"id\",\"required\":false,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-inbox\",\"path\":[\"inbox\"],\"display\":\"/pan inbox\",\"description\":\"Print full bodies of recent agent mail (unread + read archive); moves nothing\",\"args\":[{\"name\":\"id\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--limit <n>\",\"description\":\"Max messages to print (default 10)\",\"required\":true,\"valueHint\":\"n\"}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-kill\",\"path\":[\"kill\"],\"display\":\"/pan kill\",\"description\":\"Stop one qualified agent, or all agents when given an issue ID (workspace preserved)\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Force kill without confirmation\",\"required\":false,\"valueHint\":null}],\"aliases\":[\"stop\"],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-reset-session\",\"path\":[\"reset-session\"],\"display\":\"/pan reset-session\",\"description\":\"Clear saved session pointers so the next start creates a fresh session\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-pause\",\"path\":[\"pause\"],\"display\":\"/pan pause\",\"description\":\"Persistently pause an agent and stop it if running\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--reason <reason>\",\"description\":\"Reason to store with the pause gate\",\"required\":true,\"valueHint\":\"reason\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-unpause\",\"path\":[\"unpause\"],\"display\":\"/pan unpause\",\"description\":\"Clear an agent pause gate without spawning it\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-untroubled\",\"path\":[\"untroubled\"],\"display\":\"/pan untroubled\",\"description\":\"Clear an agent troubled gate without spawning it\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-fork\",\"path\":[\"fork\"],\"display\":\"/pan fork\",\"description\":\"Summary Fork a conversation — creates new session from a summary of previous work; omit <conv> to fork the conversation you are in\",\"args\":[{\"name\":\"conv\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--model <model>\",\"description\":\"Model for the summary-forked session\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--effort <level>\",\"description\":\"Reasoning effort for the new conversation: low, medium, high, xhigh or max; defaults to the source conversation's effort\",\"required\":true,\"valueHint\":\"level\"},{\"flags\":\"--cwd <path>\",\"description\":\"Working directory for the summary-forked session\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--allow-primary\",\"description\":\"Operator only: allow --cwd to be a project's primary checkout (refused for agent sessions)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--project <key>\",\"description\":\"Project (yaml key or display name) for the new conversation; defaults to inheriting the source conversation's project\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--plain\",\"description\":\"Skip summary generation and copy raw conversation history\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-handoff\",\"path\":[\"handoff\"],\"display\":\"/pan handoff\",\"description\":\"Conversation handoff that spawns a new conversation; omit <conv> (or pass \\\"self\\\") to hand off the conversation you are in; trailing text becomes the focus — MAX 10000 characters (keep it short; long briefs belong in a file the focus points at). Very large source conversations are auto-degraded (truncated smart summary → heuristic → focus-only) and still hand off without aborting.\",\"args\":[{\"name\":\"conv\",\"required\":false,\"variadic\":false},{\"name\":\"focus\",\"required\":false,\"variadic\":true}],\"options\":[{\"flags\":\"--model <model>\",\"description\":\"Model for the handoff-forked (new) conversation\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--effort <level>\",\"description\":\"Reasoning effort for the new conversation: low, medium, high, xhigh or max; defaults to the source conversation's effort\",\"required\":true,\"valueHint\":\"level\"},{\"flags\":\"--harness <harness>\",\"description\":\"Ignored: harness is provider-default-only (PAN-1984)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--cwd <path>\",\"description\":\"Working directory for the new conversation\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--allow-primary\",\"description\":\"Operator only: allow --cwd to be a project's primary checkout (refused for agent sessions)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--project <key>\",\"description\":\"Project (yaml key or display name) for the new conversation; defaults to inheriting the source conversation's project\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--issue <id>\",\"description\":\"Issue ID to associate with the new conversation; without --cwd the new conversation starts in the issue workspace when it exists\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--role <role>\",\"description\":\"Pane role for the new conversation: conversation (default), work, review, test, plan. With --issue, review makes the handoff the issue's Review row\",\"required\":true,\"valueHint\":\"role\"},{\"flags\":\"--title <title>\",\"description\":\"Title for the new conversation; defaults to \\\"Handoff: <focus>\\\" (first ~70 chars) or \\\"Handoff: <source title>\\\" without focus\",\"required\":true,\"valueHint\":\"title\"},{\"flags\":\"--author <author>\",\"description\":\"Who authors the handoff doc: external (default) or source\",\"required\":true,\"valueHint\":\"author\"},{\"flags\":\"--author-model <model>\",\"description\":\"Model for the external authoring session (only when --author=external)\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--author-harness <harness>\",\"description\":\"Ignored: author harness is provider-default-only (PAN-1984)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--skill <name>\",\"description\":\"Turn this skill on for the new conversation only (repeatable); a pack skill is <pack>/<skill>\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--pack <id>\",\"description\":\"Turn every skill of this cached skill pack on for the new conversation only (repeatable)\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--hold\",\"description\":\"Create and launch the new conversation without sending the kickoff; start it with Send in the dashboard or pan handoff start <conv>\",\"required\":false,\"valueHint\":null},{\"flags\":\"--fresh\",\"description\":\"Start a clean conversation: no handoff document, no summary, no parent link; the focus is its first message. Project, cwd, model and effort still default from the source\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-unarchive-conversation\",\"path\":[\"unarchive-conversation\"],\"display\":\"/pan unarchive-conversation\",\"description\":\"Restore an archived conversation by exact name or matching title\",\"args\":[{\"name\":\"query\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-resume\",\"path\":[\"resume\"],\"display\":\"/pan resume\",\"description\":\"Resume from saved Claude session\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--host\",\"description\":\"Bypass workspace docker stack-health gate and resume on the host\",\"required\":false,\"valueHint\":null},{\"flags\":\"--yes\",\"description\":\"Confirm --host in non-interactive contexts\",\"required\":false,\"valueHint\":null},{\"flags\":\"--compact\",\"description\":\"Summarize the saved session out-of-band and respawn a fresh session seeded with the summary (recovers a context-wedged agent without the harness /compact deadlock)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-recover\",\"path\":[\"recover\"],\"display\":\"/pan recover\",\"description\":\"Recover crashed or stopped agent\",\"args\":[{\"name\":\"id\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--all\",\"description\":\"Auto-recover all crashed agents\",\"required\":false,\"valueHint\":null},{\"flags\":\"--compact\",\"description\":\"Compact-respawn a context-wedged agent, including troubled/user-stopped work agents that automatic recovery will not resume\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--model <model>\",\"description\":\"Override model on recovery (e.g. switch off Kimi when quota is exhausted)\",\"required\":true,\"valueHint\":\"model\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-sync-main\",\"path\":[\"sync-main\"],\"display\":\"/pan sync-main\",\"description\":\"Merge latest main into workspace feature branch\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-done\",\"path\":[\"done\"],\"display\":\"/pan done\",\"description\":\"Mark work complete, move to review\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"-c, --comment <message>\",\"description\":\"Comment for the tracker\",\"required\":true,\"valueHint\":\"message\"},{\"flags\":\"--force\",\"description\":\"Skip pre-flight completion checks\",\"required\":false,\"valueHint\":null},{\"flags\":\"--test-waived <reason>\",\"description\":\"Skip the test-requirement gate; reason must include rationale and SHA of an existing test that covers the requirement\",\"required\":true,\"valueHint\":\"reason\"},{\"flags\":\"--strike\",\"description\":\"Strike shape: verify the strike branch is contained in origin/main; no PR is opened\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-reopen\",\"path\":[\"reopen\"],\"display\":\"/pan reopen\",\"description\":\"Re-enter the pipeline for a closed/completed/cancelled issue (resets specialist state). For issues already in progress, use `pan review restart`.\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--reason <reason>\",\"description\":\"Reason for reopening\",\"required\":true,\"valueHint\":\"reason\"},{\"flags\":\"--force\",\"description\":\"Skip the in-progress guard and confirmation prompt\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-wipe\",\"path\":[\"wipe\"],\"display\":\"/pan wipe\",\"description\":\"Destructive: removes workspace files, kills processes, deletes branches, clears review state, and resets tracker status\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Skip confirmation\",\"required\":false,\"valueHint\":null},{\"flags\":\"-y, --yes\",\"description\":\"Skip confirmation\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-destroy\",\"path\":[\"destroy\"],\"display\":\"/pan destroy\",\"description\":\"Alias for workspace destroy: remove the issue workspace worktree and branch\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Force removal even with uncommitted changes\",\"required\":false,\"valueHint\":null},{\"flags\":\"--project <path>\",\"description\":\"Explicit project path (overrides registry)\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--shape <shape>\",\"description\":\"Limit to one shape: base|strike|slot|all (default: all)\",\"required\":true,\"valueHint\":\"shape\"}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-close\",\"path\":[\"close\"],\"display\":\"/pan close\",\"description\":\"Verify, clean up, and close issue on tracker\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Skip confirmation prompt\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--accept-review\",\"description\":\"Accept a missed DoD row 1 (Review passed) — recorded as an explicit override in the close-out record\",\"required\":false,\"valueHint\":null},{\"flags\":\"--accept-tests\",\"description\":\"Accept a missed DoD row 2 (Tests passed) — recorded as an explicit override in the close-out record\",\"required\":false,\"valueHint\":null},{\"flags\":\"--accept-verification\",\"description\":\"Accept a missed DoD row 3 (Verification green on the branch) — recorded as an explicit override in the close-out record\",\"required\":false,\"valueHint\":null},{\"flags\":\"--accept-merged\",\"description\":\"Accept a missed DoD row 4 (Merged to main) — recorded as an explicit override in the close-out record\",\"required\":false,\"valueHint\":null},{\"flags\":\"--accept-post-merge\",\"description\":\"Accept a missed DoD row 5 (Post-merge lifecycle ran) — recorded as an explicit override in the close-out record\",\"required\":false,\"valueHint\":null},{\"flags\":\"--accept-main-verify\",\"description\":\"Accept a missed DoD row 6 (Verified on main) — recorded as an explicit override in the close-out record\",\"required\":false,\"valueHint\":null},{\"flags\":\"--accept-ship\",\"description\":\"Accept a missed DoD row 7 (Version strings propagated) — recorded as an explicit override in the close-out record\",\"required\":false,\"valueHint\":null},{\"flags\":\"--accept-deploy\",\"description\":\"Accept a missed DoD row 8 (Deployed) — recorded as an explicit override in the close-out record\",\"required\":false,\"valueHint\":null},{\"flags\":\"--abandon <reason>\",\"description\":\"Record an abandoned disposition (PAN-3211): skip the DoD gate and close without landing evidence. Operator-conversation only; cannot be combined with --accept-* flags\",\"required\":true,\"valueHint\":\"reason\"},{\"flags\":\"--residue <reason>\",\"description\":\"Record a residue disposition (PAN-3396): close stale convention PRs/MRs, skip the DoD gate with verified evidence, and mark terminal without merge claim. Operator-conversation only; cannot be combined with --abandon or --accept-* flags\",\"required\":true,\"valueHint\":\"reason\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-start\",\"path\":[\"start\"],\"display\":\"/pan start\",\"description\":\"Create workspace and spawn agent for an issue\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--model <model>\",\"description\":\"Work model for this session (defaults to Cloister config)\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--harness <harness>\",\"description\":\"Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse | prime-agent (defaults to role/provider settings)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--effort <level>\",\"description\":\"Claude Code effort: low | medium | high | xhigh | max (defaults to roles.work.effort)\",\"required\":true,\"valueHint\":\"level\"},{\"flags\":\"--tier <tier>\",\"description\":\"Remote workspace resiliency tier: ephemeral | durable (defaults to remote.resiliency_tier)\",\"required\":true,\"valueHint\":\"tier\"},{\"flags\":\"--dry-run\",\"description\":\"Show what would be created\",\"required\":false,\"valueHint\":null},{\"flags\":\"--remote\",\"description\":\"Use remote workspace (Fly.io)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--local\",\"description\":\"Use local workspace (explicit override)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--plan <mode>\",\"description\":\"Planning depth when no plan exists yet: interactive | auto | skip (default: config planning.default_mode, shipped default auto)\",\"required\":true,\"valueHint\":\"mode\"},{\"flags\":\"--plan-model <model>\",\"description\":\"Planning model override when this start auto-plans (defaults to roles.plan.model); the work model stays --model\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--auto\",\"description\":\"[deprecated: use --plan skip] Skip planning agent by synthesizing a minimal xBRIEF from the issue title/body\",\"required\":false,\"valueHint\":null},{\"flags\":\"--force\",\"description\":\"Clear paused, troubled, and pending-operator-decision gates and start anyway\",\"required\":false,\"valueHint\":null},{\"flags\":\"--fresh\",\"description\":\"Drop the saved Claude session (non-destructive) and start a new one — replaces a live session too, so it recovers an inert agent without a separate pan kill\",\"required\":false,\"valueHint\":null},{\"flags\":\"--host\",\"description\":\"Bypass workspace docker stack-health gate and spawn on the host\",\"required\":false,\"valueHint\":null},{\"flags\":\"--yes\",\"description\":\"Confirm --host in non-interactive contexts\",\"required\":false,\"valueHint\":null},{\"flags\":\"--skip-freshness\",\"description\":\"Bypass the plan-freshness preflight and spawn even if the plan names files deleted since it was written\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-strike\",\"path\":[\"strike\"],\"display\":\"/pan strike\",\"description\":\"Spawn strike agent(s) — implement a fix on a strike branch and open a PR against main for the operator to merge. Bypasses plan/review/test/ship.\",\"args\":[{\"name\":\"ids\",\"required\":true,\"variadic\":true}],\"options\":[{\"flags\":\"--model <model>\",\"description\":\"Model override (defaults to roles.strike.model from config)\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--harness <harness>\",\"description\":\"Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse | prime-agent (defaults to role/provider settings)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--effort <level>\",\"description\":\"Strike effort: low | medium | high | xhigh | max (default high)\",\"required\":true,\"valueHint\":\"level\"},{\"flags\":\"--dry-run\",\"description\":\"Print what would happen without spawning\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-knowledge\",\"path\":[\"knowledge\"],\"display\":\"/pan knowledge\",\"description\":\"Maintain or open the project OKF bundle\",\"args\":[{\"name\":\"id\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--focus <topic>\",\"description\":\"Run /okf study for a focused topic before syncing\",\"required\":true,\"valueHint\":\"topic\"},{\"flags\":\"--retro\",\"description\":\"Run /okf retro before syncing\",\"required\":false,\"valueHint\":null},{\"flags\":\"--model <model>\",\"description\":\"Model override (defaults to roles.knowledge.model from config)\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--effort <level>\",\"description\":\"Knowledge effort: low | medium | high | xhigh | max\",\"required\":true,\"valueHint\":\"level\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-knowledge-open\",\"path\":[\"knowledge\",\"open\"],\"display\":\"/pan knowledge open\",\"description\":\"Open the project OKF bundle in the local knowledge viewer\",\"args\":[],\"options\":[{\"flags\":\"--no-install\",\"description\":\"Do not install @inkeep/open-knowledge when the ok binary is missing\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-browser\",\"description\":\"Start or reuse the viewer without opening a browser\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-swarm\",\"path\":[\"swarm\"],\"display\":\"/pan swarm\",\"description\":\"Start or recover parallel swarm slots for a planned issue\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-swarm-dispatch\",\"path\":[\"swarm\",\"dispatch\"],\"display\":\"/pan swarm dispatch\",\"description\":\"Run one gated swarm dispatch pass\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print structured dispatch results\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-swarm-merge\",\"path\":[\"swarm\",\"merge\"],\"display\":\"/pan swarm merge\",\"description\":\"Verify and merge one completed swarm slot\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"slotIndex\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print structured merge results\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-swarm-recover\",\"path\":[\"swarm\",\"recover\"],\"display\":\"/pan swarm recover\",\"description\":\"Recover a failed swarm slot\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"slotIndex\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--action <action>\",\"description\":\"Recovery action: retry, drop, handoff, or reclaim\",\"required\":true,\"valueHint\":\"action\"},{\"flags\":\"--operator\",\"description\":\"Override the three-intervention limit for this failure class\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-swarm-freeze\",\"path\":[\"swarm\",\"freeze\"],\"display\":\"/pan swarm freeze\",\"description\":\"Freeze swarm coordination for an issue: the Deacon skips it until resume\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--reason <text>\",\"description\":\"Reason recorded on the hold\",\"required\":true,\"valueHint\":\"text\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-swarm-resume\",\"path\":[\"swarm\",\"resume\"],\"display\":\"/pan swarm resume\",\"description\":\"Resume swarm coordination for a frozen issue on the next Deacon patrol\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-swarm-status\",\"path\":[\"swarm\",\"status\"],\"display\":\"/pan swarm status\",\"description\":\"Read-only reconciled swarm state: per-slot rows, hold state, and capacity\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print structured status including foreman, hold, and interventions\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-swarm-wait\",\"path\":[\"swarm\",\"wait\"],\"display\":\"/pan swarm wait\",\"description\":\"Wait for a swarm slot, foreman, or hold state transition\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--timeout <seconds>\",\"description\":\"Maximum wait in seconds\",\"required\":true,\"valueHint\":\"seconds\"},{\"flags\":\"--json\",\"description\":\"Print the structured status delta\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-swarm-stop\",\"path\":[\"swarm\",\"stop\"],\"display\":\"/pan swarm stop\",\"description\":\"Freeze swarm coordination, then stop all live slot agents (branches and worktrees preserved)\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--reason <text>\",\"description\":\"Reason recorded on the hold\",\"required\":true,\"valueHint\":\"text\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-swarm-reset\",\"path\":[\"swarm\",\"reset\"],\"display\":\"/pan swarm reset\",\"description\":\"Work-preserving reset: stop slots, push unmerged slot branches to origin, remove slot worktrees/branches, retire dead slot records, clear recorded slot state (hold stays set)\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Continue deleting even when pushing an unmerged branch to origin fails\",\"required\":false,\"valueHint\":null},{\"flags\":\"--reason <text>\",\"description\":\"Reason recorded on the hold\",\"required\":true,\"valueHint\":\"text\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task\",\"path\":[\"task\"],\"display\":\"/pan task\",\"description\":\"Read and update xBRIEF item state for one issue\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task-next\",\"path\":[\"task\",\"next\"],\"display\":\"/pan task next\",\"description\":\"\",\"args\":[{\"name\":\"issue\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task-show\",\"path\":[\"task\",\"show\"],\"display\":\"/pan task show\",\"description\":\"\",\"args\":[{\"name\":\"issue\",\"required\":true,\"variadic\":false},{\"name\":\"item\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task-claim\",\"path\":[\"task\",\"claim\"],\"display\":\"/pan task claim\",\"description\":\"\",\"args\":[{\"name\":\"issue\",\"required\":true,\"variadic\":false},{\"name\":\"item\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--steal\",\"description\":\"Claim even when a running agent holds this item or an overlapping one (foreman/operator override)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task-done\",\"path\":[\"task\",\"done\"],\"display\":\"/pan task done\",\"description\":\"Record an item as done. Requires a commit carrying \\\"Item: <item>\\\" on a pushed branch.\",\"args\":[{\"name\":\"issue\",\"required\":true,\"variadic\":false},{\"name\":\"item\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task-block\",\"path\":[\"task\",\"block\"],\"display\":\"/pan task block\",\"description\":\"\",\"args\":[{\"name\":\"issue\",\"required\":true,\"variadic\":false},{\"name\":\"item\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--on <refs...>\",\"description\":\"Issues or PRs this item waits on (PAN-123, #45, owner/repo#45, PR URL); Overdeck wakes the agent when all have merged\",\"required\":true,\"valueHint\":\"refs...\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task-unblock\",\"path\":[\"task\",\"unblock\"],\"display\":\"/pan task unblock\",\"description\":\"\",\"args\":[{\"name\":\"issue\",\"required\":true,\"variadic\":false},{\"name\":\"item\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task-reopen\",\"path\":[\"task\",\"reopen\"],\"display\":\"/pan task reopen\",\"description\":\"\",\"args\":[{\"name\":\"issue\",\"required\":true,\"variadic\":false},{\"name\":\"item\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task-cancel\",\"path\":[\"task\",\"cancel\"],\"display\":\"/pan task cancel\",\"description\":\"\",\"args\":[{\"name\":\"issue\",\"required\":true,\"variadic\":false},{\"name\":\"item\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-workspace\",\"path\":[\"workspace\"],\"display\":\"/pan workspace\",\"description\":\"Workspace management\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-create\",\"path\":[\"workspace\",\"create\"],\"display\":\"/pan workspace create\",\"description\":\"Create workspace for issue\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Show what would be created\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-skills\",\"description\":\"Skip skills/agents installation\",\"required\":false,\"valueHint\":null},{\"flags\":\"--labels <labels>\",\"description\":\"Comma-separated labels for routing (e.g., docs,marketing)\",\"required\":true,\"valueHint\":\"labels\"},{\"flags\":\"--project <path>\",\"description\":\"Explicit project path (overrides registry)\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--docker\",\"description\":\"Start Docker containers after workspace creation\",\"required\":false,\"valueHint\":null},{\"flags\":\"--remote\",\"description\":\"Create workspace on remote VM (Fly.io)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--local\",\"description\":\"Create workspace locally (explicit override)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-migrate\",\"path\":[\"workspace\",\"migrate\"],\"display\":\"/pan workspace migrate\",\"description\":\"Migrate workspace between local and remote (stops+pauses the local agent, commits and pushes all work first)\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--to <location>\",\"description\":\"Target location: \\\"remote\\\" or \\\"local\\\" (default: auto-detect from current location)\",\"required\":true,\"valueHint\":\"location\"},{\"flags\":\"--keep\",\"description\":\"Keep the source workspace after migration\",\"required\":false,\"valueHint\":null},{\"flags\":\"--force\",\"description\":\"Overwrite an existing destination workspace / ignore branch-drift guard\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-ssh\",\"path\":[\"workspace\",\"ssh\"],\"display\":\"/pan workspace ssh\",\"description\":\"SSH into remote workspace VM\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-sync-auth\",\"path\":[\"workspace\",\"sync-auth\"],\"display\":\"/pan workspace sync-auth\",\"description\":\"Sync Claude Code credentials to remote workspace\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-start\",\"path\":[\"workspace\",\"start\"],\"display\":\"/pan workspace start\",\"description\":\"Start a stopped remote workspace\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-stop\",\"path\":[\"workspace\",\"stop\"],\"display\":\"/pan workspace stop\",\"description\":\"Stop (hibernate) a remote workspace\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-list\",\"path\":[\"workspace\",\"list\"],\"display\":\"/pan workspace list\",\"description\":\"List all workspaces\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--all\",\"description\":\"List workspaces across all registered projects\",\"required\":false,\"valueHint\":null},{\"flags\":\"--kind <kind>\",\"description\":\"Filter by workspace kind (main|issue|scratch), reading through the resolver\",\"required\":true,\"valueHint\":\"kind\"},{\"flags\":\"--archived\",\"description\":\"Include archived workspaces (only applies with --kind)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--stale\",\"description\":\"Show reclaim candidates: merged branches still on disk, with sizes\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-destroy\",\"path\":[\"workspace\",\"destroy\"],\"display\":\"/pan workspace destroy\",\"description\":\"Destroy workspace (all shapes by default: base, strike, and slot worktrees)\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Force removal even with uncommitted changes\",\"required\":false,\"valueHint\":null},{\"flags\":\"--project <path>\",\"description\":\"Explicit project path (overrides registry)\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--shape <shape>\",\"description\":\"Limit to one shape: base|strike|slot|all (default: all)\",\"required\":true,\"valueHint\":\"shape\"},{\"flags\":\"--purge-memory\",\"description\":\"Also permanently delete the workspace's memory home (irreversible)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-new\",\"path\":[\"workspace\",\"new\"],\"display\":\"/pan workspace new\",\"description\":\"Create a scratch workspace (shared dir by default; --isolated for a git worktree)\",\"args\":[{\"name\":\"name\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Registered project key (defaults to the sole project, or the one resolved from cwd)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--isolated\",\"description\":\"Create an isolated git worktree instead of sharing the project directory\",\"required\":false,\"valueHint\":null},{\"flags\":\"--parent-branch <branch>\",\"description\":\"Parent branch for the isolated worktree (default: inferred from the project's current branch)\",\"required\":true,\"valueHint\":\"branch\"},{\"flags\":\"--target-path <dir>\",\"description\":\"Target an existing directory as the workspace path (rejects --isolated)\",\"required\":true,\"valueHint\":\"dir\"},{\"flags\":\"--dry-run\",\"description\":\"Print the resolved intent as JSON and create nothing\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-main\",\"path\":[\"workspace\",\"main\"],\"display\":\"/pan workspace main\",\"description\":\"Resolve or create the project's singleton main workspace\",\"args\":[],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Registered project key (defaults to the sole project, or the one resolved from cwd)\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-get\",\"path\":[\"workspace\",\"get\"],\"display\":\"/pan workspace get\",\"description\":\"Show a workspace row by id\",\"args\":[{\"name\":\"ws\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-activate\",\"path\":[\"workspace\",\"activate\"],\"display\":\"/pan workspace activate\",\"description\":\"Touch a workspace's last-accessed time and print its layout hint\",\"args\":[{\"name\":\"ws\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-archive\",\"path\":[\"workspace\",\"archive\"],\"display\":\"/pan workspace archive\",\"description\":\"Archive a workspace (reversible; refuses kind=main)\",\"args\":[{\"name\":\"ws\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-relocate\",\"path\":[\"workspace\",\"relocate\"],\"display\":\"/pan workspace relocate\",\"description\":\"Point a workspace at a new path (refuses kind=issue; kind=main requires --force)\",\"args\":[{\"name\":\"ws\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--path <dir>\",\"description\":\"New path (must be an existing directory)\",\"required\":true,\"valueHint\":\"dir\"},{\"flags\":\"--force\",\"description\":\"Allow relocating the main workspace, diverging it from projects.yaml\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-render-devcontainer\",\"path\":[\"workspace\",\"render-devcontainer\"],\"display\":\"/pan workspace render-devcontainer\",\"description\":\"Re-render <workspace>/.devcontainer/ from the project compose template\",\"args\":[{\"name\":\"featureName\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Project key in projects.yaml (e.g. mind-your-now)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--workspace <path>\",\"description\":\"Override the inferred workspace path\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--json\",\"description\":\"Emit JSON instead of human-readable output\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-deep-clean\",\"path\":[\"workspace\",\"deep-clean\"],\"display\":\"/pan workspace deep-clean\",\"description\":\"Interactive: git clean -fd against a workspace (preserves protected paths)\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--yes\",\"description\":\"Skip confirmation prompt (still requires a TTY)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-rebuild\",\"path\":[\"workspace\",\"rebuild\"],\"display\":\"/pan workspace rebuild\",\"description\":\"Tear down, re-render, and restart a single workspace Docker stack\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-reap\",\"path\":[\"workspace\",\"reap\"],\"display\":\"/pan workspace reap\",\"description\":\"List or remove orphaned unhealthy workspace Docker stacks and orphaned workspace networks\",\"args\":[],\"options\":[{\"flags\":\"--days <days>\",\"description\":\"Minimum age in days\",\"required\":true,\"valueHint\":\"days\"},{\"flags\":\"--apply\",\"description\":\"Run docker compose down -v --remove-orphans for stack candidates and remove orphaned workspace networks\",\"required\":false,\"valueHint\":null},{\"flags\":\"--yes\",\"description\":\"Skip confirmation when using --apply\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-update\",\"path\":[\"workspace\",\"update\"],\"display\":\"/pan workspace update\",\"description\":\"Update skills/agents/rules in an existing workspace\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Overwrite user-modified files\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-use-config\",\"path\":[\"workspace\",\"use-config\"],\"display\":\"/pan workspace use-config\",\"description\":\"Copy installed Overdeck config into workspace (makes it user settings)\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <path>\",\"description\":\"Explicit project path (overrides registry)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-workspace-add-repo\",\"path\":[\"workspace\",\"add-repo\"],\"display\":\"/pan workspace add-repo\",\"description\":\"Add configured repositories or register a new repository in a polyrepo workspace\",\"args\":[{\"name\":\"workspaceId\",\"required\":true,\"variadic\":false},{\"name\":\"repoNames\",\"required\":false,\"variadic\":true}],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Show what would be added\",\"required\":false,\"valueHint\":null},{\"flags\":\"--group <groupName>\",\"description\":\"Add all repos from a named group (from groups_file)\",\"required\":true,\"valueHint\":\"groupName\"},{\"flags\":\"--new <gitUrl>\",\"description\":\"Register a repository that was created during this issue\",\"required\":true,\"valueHint\":\"gitUrl\"},{\"flags\":\"--project <key>\",\"description\":\"Explicit project key from projects.yaml (overrides registry)\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Workspace\"},\n {\"id\":\"pan-vault\",\"path\":[\"vault\"],\"display\":\"/pan vault\",\"description\":\"Session Vault: encrypted off-machine storage and cross-machine resume for agent conversations\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-setup\",\"path\":[\"vault\",\"setup\"],\"display\":\"/pan vault setup\",\"description\":\"Enable the vault against your own git remote and print the recovery phrase once\",\"args\":[{\"name\":\"git-url\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--hooks\",\"description\":\"Also register the Claude Code Stop hook that saves after each turn\",\"required\":false,\"valueHint\":null},{\"flags\":\"--passphrase-file <path>\",\"description\":\"Also enable passphrase unlock with the passphrase in this file\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--generate-passphrase\",\"description\":\"Also enable passphrase unlock with a generated 6-word passphrase, printed once\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-passphrase\",\"description\":\"Do not offer passphrase unlock\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-join\",\"path\":[\"vault\",\"join\"],\"display\":\"/pan vault join\",\"description\":\"Join an existing vault from another machine with the vault passphrase or the recovery phrase\",\"args\":[{\"name\":\"git-url\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--phrase-file <path>\",\"description\":\"Read the 24-word recovery phrase from a file instead of prompting\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--passphrase-file <path>\",\"description\":\"Read the vault passphrase from a file instead of prompting\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-passphrase\",\"path\":[\"vault\",\"passphrase\"],\"display\":\"/pan vault passphrase\",\"description\":\"Turn passphrase unlock for new machines on (set) or off (remove); the vault key stays the same\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-passphrase-set\",\"path\":[\"vault\",\"passphrase\",\"set\"],\"display\":\"/pan vault passphrase set\",\"description\":\"Wrap the vault key under a passphrase so a new machine can join without the recovery phrase\",\"args\":[],\"options\":[{\"flags\":\"--passphrase-file <path>\",\"description\":\"Read the passphrase from a file instead of prompting\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--generate\",\"description\":\"Generate a 6-word passphrase and print it once\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-passphrase-remove\",\"path\":[\"vault\",\"passphrase\",\"remove\"],\"display\":\"/pan vault passphrase remove\",\"description\":\"Delete the passphrase unlock object; joining then needs the recovery phrase\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-rotate-key\",\"path\":[\"vault\",\"rotate-key\"],\"display\":\"/pan vault rotate-key\",\"description\":\"Replace the vault key after losing a device: re-encrypt refs under a new key, keep old chunks readable, print a new recovery phrase\",\"args\":[],\"options\":[{\"flags\":\"--yes\",\"description\":\"Rotate without the confirmation prompt\",\"required\":false,\"valueHint\":null},{\"flags\":\"--passphrase-file <path>\",\"description\":\"Re-wrap passphrase unlock under the new key with the passphrase in this file\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--generate-passphrase\",\"description\":\"Re-wrap passphrase unlock under the new key with a generated 6-word passphrase, printed once\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-passphrase\",\"description\":\"Turn passphrase unlock off\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-status\",\"path\":[\"vault\",\"status\"],\"display\":\"/pan vault status\",\"description\":\"Show backend, this machine, owned records, last sync and the machine list\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output in JSON format\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-save\",\"path\":[\"vault\",\"save\"],\"display\":\"/pan vault save\",\"description\":\"Settle one transcript (by session id or path) or many into the vault\",\"args\":[{\"name\":\"session-id-or-path\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--all\",\"description\":\"Settle every discovered transcript\",\"required\":false,\"valueHint\":null},{\"flags\":\"--since <date>\",\"description\":\"With --all: only transcripts modified on or after this date\",\"required\":true,\"valueHint\":\"date\"},{\"flags\":\"--harness <harness>\",\"description\":\"With --all: only this harness (claude-code, codex, ...)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--hook\",\"description\":\"Claude Code Stop-hook mode: read {session_id, transcript_path} JSON from stdin, print nothing, exit 0\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-sync\",\"path\":[\"vault\",\"sync\"],\"display\":\"/pan vault sync\",\"description\":\"Settle owned transcripts that grew, register this machine and refresh the list\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-list\",\"path\":[\"vault\",\"list\"],\"display\":\"/pan vault list\",\"description\":\"List saved conversations from the local cache (never contacts the backend)\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output in JSON format\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-show\",\"path\":[\"vault\",\"show\"],\"display\":\"/pan vault show\",\"description\":\"Print a saved conversation read-only with its versions\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output in JSON format\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-resume\",\"path\":[\"vault\",\"resume\"],\"display\":\"/pan vault resume\",\"description\":\"Continue a saved conversation here: <id> or <id>@<version>; adopts it and launches the harness\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--cwd <dir>\",\"description\":\"Working directory to resume in (default: the saved cwd)\",\"required\":true,\"valueHint\":\"dir\"},{\"flags\":\"--no-launch\",\"description\":\"Print the launch command instead of running it\",\"required\":false,\"valueHint\":null},{\"flags\":\"--on-drift <choice>\",\"description\":\"When the cwd state differs from the saved state: continue | note | cancel\",\"required\":true,\"valueHint\":\"choice\"},{\"flags\":\"--no-code\",\"description\":\"Do not apply the saved code snapshot; only continue the conversation\",\"required\":false,\"valueHint\":null},{\"flags\":\"--worktree <dir>\",\"description\":\"Apply the code snapshot into a new git worktree at <dir> instead of the target checkout\",\"required\":true,\"valueHint\":\"dir\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-exclude\",\"path\":[\"vault\",\"exclude\"],\"display\":\"/pan vault exclude\",\"description\":\"Exclude conversations by cwd path, git origin or session id; an excluded saved record becomes a tombstone\",\"args\":[{\"name\":\"path\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--origin <url>\",\"description\":\"Exclude conversations whose git origin is this URL\",\"required\":true,\"valueHint\":\"url\"},{\"flags\":\"--session <id>\",\"description\":\"Exclude one session by native session id or vault id\",\"required\":true,\"valueHint\":\"id\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-include\",\"path\":[\"vault\",\"include\"],\"display\":\"/pan vault include\",\"description\":\"Remove an exclusion added with pan vault exclude\",\"args\":[{\"name\":\"path\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--origin <url>\",\"description\":\"Include conversations whose git origin is this URL again\",\"required\":true,\"valueHint\":\"url\"},{\"flags\":\"--session <id>\",\"description\":\"Include one session again\",\"required\":true,\"valueHint\":\"id\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-allow-secret\",\"path\":[\"vault\",\"allow-secret\"],\"display\":\"/pan vault allow-secret\",\"description\":\"Allow one blocked transcript line, or the blocked code lines of one file, for that record only\",\"args\":[{\"name\":\"id-or-path\",\"required\":true,\"variadic\":false},{\"name\":\"line\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--file <path>\",\"description\":\"Allow the blocked lines of this file in the code snapshot (path relative to the repository root)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-evict\",\"path\":[\"vault\",\"evict\"],\"display\":\"/pan vault evict\",\"description\":\"Review the pending-deletion batch (default) or act on it; nothing is deleted without --confirm\",\"args\":[],\"options\":[{\"flags\":\"--review\",\"description\":\"Scan and print the batch with its fingerprint (default)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--confirm <fingerprint>\",\"description\":\"Delete the reviewed files if the batch still matches this fingerprint\",\"required\":true,\"valueHint\":\"fingerprint\"},{\"flags\":\"--decline <vaultId>\",\"description\":\"Remove an entry from the batch and do not offer it again\",\"required\":true,\"valueHint\":\"vaultId\"},{\"flags\":\"--reoffer <vaultId>\",\"description\":\"Allow a declined entry to be offered again\",\"required\":true,\"valueHint\":\"vaultId\"},{\"flags\":\"--clear\",\"description\":\"Empty the batch without deleting or declining anything\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-vault-restore\",\"path\":[\"vault\",\"restore\"],\"display\":\"/pan vault restore\",\"description\":\"Rebuild an evicted transcript byte for byte at its original path\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--to <path>\",\"description\":\"Write the rebuilt file here instead of the recorded path\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-test\",\"path\":[\"test\"],\"display\":\"/pan test\",\"description\":\"Test running and management\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-test-run\",\"path\":[\"test\",\"run\"],\"display\":\"/pan test run\",\"description\":\"Run tests for a project or workspace\",\"args\":[{\"name\":\"target\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--project <name>\",\"description\":\"Project name from registry\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--tests <names>\",\"description\":\"Comma-separated test names to run\",\"required\":true,\"valueHint\":\"names\"},{\"flags\":\"--no-notify\",\"description\":\"Skip desktop notification\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-test-list\",\"path\":[\"test\",\"list\"],\"display\":\"/pan test list\",\"description\":\"List configured tests for a project\",\"args\":[{\"name\":\"project\",\"required\":false,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts\",\"path\":[\"tts\"],\"display\":\"/pan tts\",\"description\":\"Local TTS daemon helpers\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-voices\",\"path\":[\"tts\",\"voices\"],\"display\":\"/pan tts voices\",\"description\":\"List and inspect saved TTS voices\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-voices-list\",\"path\":[\"tts\",\"voices\",\"list\"],\"display\":\"/pan tts voices list\",\"description\":\"List saved TTS voices\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-voices-show\",\"path\":[\"tts\",\"voices\",\"show\"],\"display\":\"/pan tts voices show\",\"description\":\"Show saved TTS voice details\",\"args\":[{\"name\":\"name\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-voices-play\",\"path\":[\"tts\",\"voices\",\"play\"],\"display\":\"/pan tts voices play\",\"description\":\"Speak with a saved TTS voice\",\"args\":[{\"name\":\"name\",\"required\":true,\"variadic\":false},{\"name\":\"text\",\"required\":false,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-voices-delete\",\"path\":[\"tts\",\"voices\",\"delete\"],\"display\":\"/pan tts voices delete\",\"description\":\"Delete a saved TTS voice\",\"args\":[{\"name\":\"name\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-voices-set-default\",\"path\":[\"tts\",\"voices\",\"set-default\"],\"display\":\"/pan tts voices set-default\",\"description\":\"Set the system TTS voice\",\"args\":[{\"name\":\"name\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-voices-map\",\"path\":[\"tts\",\"voices\",\"map\"],\"display\":\"/pan tts voices map\",\"description\":\"Map a TTS event key to a saved voice\",\"args\":[{\"name\":\"event\",\"required\":true,\"variadic\":false},{\"name\":\"name\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-start\",\"path\":[\"tts\",\"start\"],\"display\":\"/pan tts start\",\"description\":\"Start the local Qwen TTS daemon\",\"args\":[],\"options\":[{\"flags\":\"--detach\",\"description\":\"Run the daemon detached in the background\",\"required\":false,\"valueHint\":null},{\"flags\":\"--foreground\",\"description\":\"Run the daemon in the foreground\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-wait-for-health\",\"description\":\"Return without waiting for /health\",\"required\":false,\"valueHint\":null},{\"flags\":\"--timeout-ms <ms>\",\"description\":\"Health wait timeout in milliseconds\",\"required\":true,\"valueHint\":\"ms\"}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-stop\",\"path\":[\"tts\",\"stop\"],\"display\":\"/pan tts stop\",\"description\":\"Stop the local Qwen TTS daemon\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-status\",\"path\":[\"tts\",\"status\"],\"display\":\"/pan tts status\",\"description\":\"Show local Qwen TTS daemon status\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-restart\",\"path\":[\"tts\",\"restart\"],\"display\":\"/pan tts restart\",\"description\":\"Restart the local Qwen TTS daemon\",\"args\":[],\"options\":[{\"flags\":\"--no-wait-for-health\",\"description\":\"Return without waiting for /health\",\"required\":false,\"valueHint\":null},{\"flags\":\"--timeout-ms <ms>\",\"description\":\"Health wait timeout in milliseconds\",\"required\":true,\"valueHint\":\"ms\"}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-install-systemd\",\"path\":[\"tts\",\"install-systemd\"],\"display\":\"/pan tts install-systemd\",\"description\":\"Install a user systemd unit for the local Qwen TTS daemon\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-tts-test\",\"path\":[\"tts\",\"test\"],\"display\":\"/pan tts test\",\"description\":\"Speak a test phrase using the configured system (priority) voice\",\"args\":[{\"name\":\"text\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--status\",\"description\":\"Use the status voice instead of the system (priority) voice\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-release\",\"path\":[\"release\"],\"display\":\"/pan release\",\"description\":\"Intentional release flow for stable and canary publishes\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-release-check\",\"path\":[\"release\",\"check\"],\"display\":\"/pan release check\",\"description\":\"Run release preflight checks\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-release-stable\",\"path\":[\"release\",\"stable\"],\"display\":\"/pan release stable\",\"description\":\"Create a stable release commit and tag\",\"args\":[],\"options\":[{\"flags\":\"--version <version>\",\"description\":\"Stable semver version (x.y.z)\",\"required\":true,\"valueHint\":\"version\"},{\"flags\":\"--skip-tests\",\"description\":\"Skip the test suite in preflight (build + guards still run)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-release-canary\",\"path\":[\"release\",\"canary\"],\"display\":\"/pan release canary\",\"description\":\"Create a canary release commit and tag\",\"args\":[],\"options\":[{\"flags\":\"--version <version>\",\"description\":\"Canary semver version (x.y.z-canary.n)\",\"required\":true,\"valueHint\":\"version\"},{\"flags\":\"--skip-tests\",\"description\":\"Skip the test suite in preflight (build + guards still run)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-release-sourcemaps\",\"path\":[\"release\",\"sourcemaps\"],\"display\":\"/pan release sourcemaps\",\"description\":\"Upload the built dashboard sourcemaps to PostHog\",\"args\":[],\"options\":[{\"flags\":\"--version <version>\",\"description\":\"Release version associated with the built dashboard\",\"required\":true,\"valueHint\":\"version\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-release-notes\",\"path\":[\"release\",\"notes\"],\"display\":\"/pan release notes\",\"description\":\"Draft release notes from git history\",\"args\":[{\"name\":\"from\",\"required\":false,\"variadic\":false},{\"name\":\"to\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--write <path>\",\"description\":\"Write the generated notes to a file\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-rollout\",\"path\":[\"rollout\"],\"display\":\"/pan rollout\",\"description\":\"Post-merge release status and retry\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-rollout-status\",\"path\":[\"rollout\",\"status\"],\"display\":\"/pan rollout status\",\"description\":\"Print the release set for an issue (overall + per-component status)\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-rollout-retry\",\"path\":[\"rollout\",\"retry\"],\"display\":\"/pan rollout retry\",\"description\":\"Re-run the release engine for an issue and print the resulting status\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-memory\",\"path\":[\"memory\"],\"display\":\"/pan memory\",\"description\":\"Search and inspect Overdeck memory\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-search\",\"path\":[\"memory\",\"search\"],\"display\":\"/pan memory search\",\"description\":\"Search memory observations\",\"args\":[{\"name\":\"query\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <id>\",\"description\":\"Project ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--workspace <id|name>\",\"description\":\"Workspace id or name\",\"required\":true,\"valueHint\":\"id|name\"},{\"flags\":\"--issue <id>\",\"description\":\"Issue ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--tag <tag>\",\"description\":\"Filter by tag\",\"required\":true,\"valueHint\":\"tag\"},{\"flags\":\"--sibling\",\"description\":\"Search same-project sibling issues instead of the selected issue\",\"required\":false,\"valueHint\":null},{\"flags\":\"--global\",\"description\":\"Search across all registered projects instead of just one\",\"required\":false,\"valueHint\":null},{\"flags\":\"--target [path]\",\"description\":\"Search all workspaces whose path targets a directory (bare flag = cwd); mutually exclusive with --workspace/--issue/--global\",\"required\":false,\"valueHint\":\"path\"},{\"flags\":\"--include-archived\",\"description\":\"Include observations hidden by reset markers\",\"required\":false,\"valueHint\":null},{\"flags\":\"--limit <n>\",\"description\":\"Maximum results\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-status\",\"path\":[\"memory\",\"status\"],\"display\":\"/pan memory status\",\"description\":\"Show current memory status for an issue, a workspace, or the current directory\",\"args\":[{\"name\":\"issue\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--project <id>\",\"description\":\"Project ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--workspace <id|name>\",\"description\":\"Workspace id or name instead of an issue positional\",\"required\":true,\"valueHint\":\"id|name\"},{\"flags\":\"--history <n>\",\"description\":\"Also print up to N archived statuses, newest first (max 50)\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-timeline\",\"path\":[\"memory\",\"timeline\"],\"display\":\"/pan memory timeline\",\"description\":\"Print chronological observations for a workspace or the current directory\",\"args\":[],\"options\":[{\"flags\":\"--workspace <id|name>\",\"description\":\"Workspace id or name (defaults to the workspace owning the cwd)\",\"required\":true,\"valueHint\":\"id|name\"},{\"flags\":\"--days <n>\",\"description\":\"Most recent N days, today counting as day 1 (default 7)\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--limit <n>\",\"description\":\"Maximum observation rows\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-read\",\"path\":[\"memory\",\"read\"],\"display\":\"/pan memory read\",\"description\":\"Print a file from a workspace's memory home (path is relative to that home)\",\"args\":[{\"name\":\"path\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--workspace <id|name>\",\"description\":\"Workspace id or name (defaults to the workspace owning the cwd)\",\"required\":true,\"valueHint\":\"id|name\"},{\"flags\":\"--from <n>\",\"description\":\"First line to print, 1-based\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--lines <n>\",\"description\":\"Maximum number of lines to print\",\"required\":true,\"valueHint\":\"n\"}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-reset\",\"path\":[\"memory\",\"reset\"],\"display\":\"/pan memory reset\",\"description\":\"Create a memory reset marker\",\"args\":[{\"name\":\"scope\",\"required\":true,\"variadic\":false},{\"name\":\"scopeId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <id>\",\"description\":\"Project ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--reason <text>\",\"description\":\"Reason for the reset marker\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--from <iso>\",\"description\":\"Reset from timestamp\",\"required\":true,\"valueHint\":\"iso\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-summary\",\"path\":[\"memory\",\"summary\"],\"display\":\"/pan memory summary\",\"description\":\"Generate a daily markdown memory summary for an issue, a workspace, or the current directory\",\"args\":[{\"name\":\"issue\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--project <id>\",\"description\":\"Project ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--workspace <id|name>\",\"description\":\"Workspace id or name instead of an issue positional\",\"required\":true,\"valueHint\":\"id|name\"},{\"flags\":\"--date <yyyy-mm-dd>\",\"description\":\"Summary date\",\"required\":true,\"valueHint\":\"yyyy-mm-dd\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-doctor\",\"path\":[\"memory\",\"doctor\"],\"display\":\"/pan memory doctor\",\"description\":\"Print memory health, pending counts, and provider configuration\",\"args\":[],\"options\":[{\"flags\":\"--project <id>\",\"description\":\"Project ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-backfill\",\"path\":[\"memory\",\"backfill\"],\"display\":\"/pan memory backfill\",\"description\":\"Backfill memory observations from historical Claude Code JSONL transcripts\",\"args\":[],\"options\":[{\"flags\":\"--workspace <id>\",\"description\":\"Only backfill sessions resolved to this workspace id\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--project <id>\",\"description\":\"Only backfill sessions resolved to this project id\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--dry-run\",\"description\":\"Report matched sessions without extracting or writing anything\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-pin\",\"path\":[\"memory\",\"pin\"],\"display\":\"/pan memory pin\",\"description\":\"Pin a doc for prompt-time memory injection (path is stored project-relative)\",\"args\":[{\"name\":\"doc-path\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <id>\",\"description\":\"Project key to pin at project scope\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--workspace <id>\",\"description\":\"Workspace id to pin at workspace scope (overrides --project)\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-unpin\",\"path\":[\"memory\",\"unpin\"],\"display\":\"/pan memory unpin\",\"description\":\"Remove a pinned doc\",\"args\":[{\"name\":\"doc-path\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <id>\",\"description\":\"Project key the pin was made at project scope\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--workspace <id>\",\"description\":\"Workspace id the pin was made at workspace scope (overrides --project)\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-pins\",\"path\":[\"memory\",\"pins\"],\"display\":\"/pan memory pins\",\"description\":\"List pinned docs for a project or workspace\",\"args\":[],\"options\":[{\"flags\":\"--project <id>\",\"description\":\"Project key to list project-scoped pins for\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--workspace <id>\",\"description\":\"Workspace id to list workspace-scoped pins for (overrides --project)\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-config\",\"path\":[\"memory\",\"config\"],\"display\":\"/pan memory config\",\"description\":\"Show memory provider and rollup configuration\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-show\",\"path\":[\"memory\",\"show\"],\"display\":\"/pan memory show\",\"description\":\"Print a curated memory fact\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Project key (defaults to the project owning the cwd)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--user\",\"description\":\"Read from the operator store (travels with you; synced when set up)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--machine\",\"description\":\"Read from the machine store (this machine only)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--here\",\"description\":\"Read from the cwd checkout's store instead of the primary checkout\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-list\",\"path\":[\"memory\",\"list\"],\"display\":\"/pan memory list\",\"description\":\"List curated memory facts\",\"args\":[],\"options\":[{\"flags\":\"--type <type>\",\"description\":\"Filter by fact type (feedback|project|reference|user)\",\"required\":true,\"valueHint\":\"type\"},{\"flags\":\"--query <q>\",\"description\":\"Filter by a fact-matching query (see pan memory search)\",\"required\":true,\"valueHint\":\"q\"},{\"flags\":\"--review\",\"description\":\"Show only facts carrying a review marker (default: active facts only)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--project <key>\",\"description\":\"Project key (defaults to the project owning the cwd)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--user\",\"description\":\"List the operator store (travels with you; synced when set up)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--machine\",\"description\":\"List the machine store (this machine only)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--here\",\"description\":\"List the cwd checkout's store instead of the primary checkout\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-add\",\"path\":[\"memory\",\"add\"],\"display\":\"/pan memory add\",\"description\":\"Add a curated memory fact\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--type <type>\",\"description\":\"Fact type (feedback|project|reference|user)\",\"required\":true,\"valueHint\":\"type\"},{\"flags\":\"--description <text>\",\"description\":\"One-line index description (<= 200 chars)\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--title <text>\",\"description\":\"Fact title (defaults to the id, dashes as spaces, capitalized)\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--body <text>\",\"description\":\"Fact body\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--body-file <path>\",\"description\":\"Read the fact body from a file\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--tags <a,b>\",\"description\":\"Comma-separated tags\",\"required\":true,\"valueHint\":\"a,b\"},{\"flags\":\"--project <key>\",\"description\":\"Project key (defaults to the project owning the cwd)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--user\",\"description\":\"Write to the operator store (travels with you; synced when set up)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--machine\",\"description\":\"Write to the machine store (this machine only)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-edit\",\"path\":[\"memory\",\"edit\"],\"display\":\"/pan memory edit\",\"description\":\"Edit a curated memory fact\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--type <type>\",\"description\":\"Fact type (feedback|project|reference|user)\",\"required\":true,\"valueHint\":\"type\"},{\"flags\":\"--title <text>\",\"description\":\"Fact title\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--description <text>\",\"description\":\"One-line index description (<= 200 chars)\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--body <text>\",\"description\":\"Fact body\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--body-file <path>\",\"description\":\"Read the fact body from a file\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--tags <a,b>\",\"description\":\"Comma-separated tags\",\"required\":true,\"valueHint\":\"a,b\"},{\"flags\":\"--clear-review\",\"description\":\"Remove the review marker, re-activating the fact\",\"required\":false,\"valueHint\":null},{\"flags\":\"--project <key>\",\"description\":\"Project key (defaults to the project owning the cwd)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--user\",\"description\":\"Edit the operator store (travels with you; synced when set up)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--machine\",\"description\":\"Edit the machine store (this machine only)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-retire\",\"path\":[\"memory\",\"retire\"],\"display\":\"/pan memory retire\",\"description\":\"Remove a curated memory fact (git history is the archive)\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Project key (defaults to the project owning the cwd)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--user\",\"description\":\"Retire from the operator store (travels with you; synced when set up)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--machine\",\"description\":\"Retire from the machine store (this machine only)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-memory-sync\",\"path\":[\"memory\",\"sync\"],\"display\":\"/pan memory sync\",\"description\":\"Sync the operator memory store with your private git remote\",\"args\":[],\"options\":[{\"flags\":\"--setup <git-url>\",\"description\":\"Turn on sync: use this private git repository as the remote, then sync\",\"required\":true,\"valueHint\":\"git-url\"},{\"flags\":\"--status\",\"description\":\"Show sync state without touching the network\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-briefing\",\"path\":[\"briefing\"],\"display\":\"/pan briefing\",\"description\":\"Print the live Overdeck session briefing markdown\",\"args\":[],\"options\":[{\"flags\":\"--cwd <path>\",\"description\":\"Resolve workspace context from this directory\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-compliance\",\"path\":[\"compliance\"],\"display\":\"/pan compliance\",\"description\":\"Inspect memory-first compliance state\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-compliance-status\",\"path\":[\"compliance\",\"status\"],\"display\":\"/pan compliance status\",\"description\":\"Show compliance mode and recent compliance misses\",\"args\":[],\"options\":[{\"flags\":\"--project <id>\",\"description\":\"Project ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--workspace <id>\",\"description\":\"Workspace ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--issue <id>\",\"description\":\"Issue ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--session <id>\",\"description\":\"Session ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--since-hours <n>\",\"description\":\"Hours to count recent misses\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-registry\",\"path\":[\"registry\"],\"display\":\"/pan registry\",\"description\":\"Manage and inspect feature ownership records\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-registry-tag\",\"path\":[\"registry\",\"tag\"],\"display\":\"/pan registry tag\",\"description\":\"Create or update a feature ownership record for an issue\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false},{\"name\":\"feature\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--description <text>\",\"description\":\"Feature description\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--workspace <id>\",\"description\":\"Owning workspace ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--agent <id>\",\"description\":\"Owning agent ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--status <status>\",\"description\":\"Feature status: active, archived, merged, deferred\",\"required\":true,\"valueHint\":\"status\"},{\"flags\":\"--tag <tag...>\",\"description\":\"Feature tags\",\"required\":true,\"valueHint\":\"tag...\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-registry-list\",\"path\":[\"registry\",\"list\"],\"display\":\"/pan registry list\",\"description\":\"List feature ownership records\",\"args\":[],\"options\":[{\"flags\":\"--issue <id>\",\"description\":\"Owning issue ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--workspace <id>\",\"description\":\"Owning workspace ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--agent <id>\",\"description\":\"Owning agent ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--status <status>\",\"description\":\"Feature status: active, archived, merged, deferred\",\"required\":true,\"valueHint\":\"status\"},{\"flags\":\"--tag <tag...>\",\"description\":\"Require tag(s)\",\"required\":true,\"valueHint\":\"tag...\"},{\"flags\":\"--limit <n>\",\"description\":\"Maximum rows\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-registry-show\",\"path\":[\"registry\",\"show\"],\"display\":\"/pan registry show\",\"description\":\"Show one feature ownership record\",\"args\":[{\"name\":\"feature\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-orders\",\"path\":[\"orders\"],\"display\":\"/pan orders\",\"description\":\"Create and manage Flywheel order books\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-orders-create\",\"path\":[\"orders\",\"create\"],\"display\":\"/pan orders create\",\"description\":\"Create a draft order book\",\"args\":[{\"name\":\"name\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Resolve the order book in another registered project\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-orders-list\",\"path\":[\"orders\",\"list\"],\"display\":\"/pan orders list\",\"description\":\"List order books\",\"args\":[],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Resolve the order book in another registered project\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-orders-show\",\"path\":[\"orders\",\"show\"],\"display\":\"/pan orders show\",\"description\":\"Show an order book\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Resolve the order book in another registered project\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-orders-add\",\"path\":[\"orders\",\"add\"],\"display\":\"/pan orders add\",\"description\":\"Add issues to an order book\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"issues\",\"required\":true,\"variadic\":true}],\"options\":[{\"flags\":\"--lane <lane>\",\"description\":\"Target lane: A or B\",\"required\":true,\"valueHint\":\"lane\"},{\"flags\":\"--after <issue>\",\"description\":\"Insert after an issue in the target lane\",\"required\":true,\"valueHint\":\"issue\"},{\"flags\":\"--reverify\",\"description\":\"Require PRD re-verification before pickup\",\"required\":false,\"valueHint\":null},{\"flags\":\"--project <key>\",\"description\":\"Resolve the order book in another registered project\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-orders-remove\",\"path\":[\"orders\",\"remove\"],\"display\":\"/pan orders remove\",\"description\":\"Remove an issue from an order book\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"issue\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Resolve the order book in another registered project\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-orders-move\",\"path\":[\"orders\",\"move\"],\"display\":\"/pan orders move\",\"description\":\"Move an issue within or between lanes\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"issue\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--lane <lane>\",\"description\":\"Target lane: A or B\",\"required\":true,\"valueHint\":\"lane\"},{\"flags\":\"--order <n>\",\"description\":\"One-based position in the target lane\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--project <key>\",\"description\":\"Resolve the order book in another registered project\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-orders-queue\",\"path\":[\"orders\",\"queue\"],\"display\":\"/pan orders queue\",\"description\":\"Mark a draft order book ready for dispatch\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Resolve the order book in another registered project\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-orders-start\",\"path\":[\"orders\",\"start\"],\"display\":\"/pan orders start\",\"description\":\"Start a Flywheel run bound to an order book\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Resolve the order book in another registered project\",\"required\":true,\"valueHint\":\"key\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-models\",\"path\":[\"models\"],\"display\":\"/pan models\",\"description\":\"Model settings: provider presets\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-models-preset\",\"path\":[\"models\",\"preset\"],\"display\":\"/pan models preset\",\"description\":\"Apply eval-backed provider model presets (writes explicit values once; never auto-applies)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-models-preset-list\",\"path\":[\"models\",\"preset\",\"list\"],\"display\":\"/pan models preset list\",\"description\":\"List presets, their versions and what was last applied\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-models-preset-show\",\"path\":[\"models\",\"preset\",\"show\"],\"display\":\"/pan models preset show\",\"description\":\"Show the per-setting diff a preset would make to config.yaml\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Print the plan JSON (same body as GET /api/model-presets/:id/plan)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-models-preset-apply\",\"path\":[\"models\",\"preset\",\"apply\"],\"display\":\"/pan models preset apply\",\"description\":\"Apply a preset: print the diff, confirm, then write only the changed settings\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Print the diff and write nothing\",\"required\":false,\"valueHint\":null},{\"flags\":\"--yes\",\"description\":\"Apply without the confirmation prompt\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-models-preset-undo\",\"path\":[\"models\",\"preset\",\"undo\"],\"display\":\"/pan models preset undo\",\"description\":\"Restore the values the last preset apply replaced\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-parked\",\"path\":[\"parked\"],\"display\":\"/pan parked\",\"description\":\"List every issue parked in a stall orbit (operator gates, zombie sessions, idle-running agents), oldest first, with why + release condition\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Print the raw parked rows as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-docs\",\"path\":[\"docs\"],\"display\":\"/pan docs\",\"description\":\"Overdeck documentation RAG (PAN-1203)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-docs-query\",\"path\":[\"docs\",\"query\"],\"display\":\"/pan docs query\",\"description\":\"Query the docs index for relevant snippets\",\"args\":[{\"name\":\"text\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--top <n>\",\"description\":\"Maximum number of snippets to return\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--format <fmt>\",\"description\":\"Output format: markdown | json | text\",\"required\":true,\"valueHint\":\"fmt\"},{\"flags\":\"--index-path <path>\",\"description\":\"Override the docs index path\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--kind <kind>\",\"description\":\"Filter by doc kind (docs|skill|rule|claude-md|prd)\",\"required\":true,\"valueHint\":\"kind\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-docs-reindex\",\"path\":[\"docs\",\"reindex\"],\"display\":\"/pan docs reindex\",\"description\":\"Regenerate the docs index from current docs/, skills/, etc.\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-docs-disable\",\"path\":[\"docs\",\"disable\"],\"display\":\"/pan docs disable\",\"description\":\"Disable docs RAG injection\",\"args\":[],\"options\":[{\"flags\":\"--scope <scope>\",\"description\":\"Scope: session | project | global\",\"required\":true,\"valueHint\":\"scope\"},{\"flags\":\"--reason <text>\",\"description\":\"Reason recorded in disable state\",\"required\":true,\"valueHint\":\"text\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-docs-enable\",\"path\":[\"docs\",\"enable\"],\"display\":\"/pan docs enable\",\"description\":\"Re-enable docs RAG injection\",\"args\":[],\"options\":[{\"flags\":\"--scope <scope>\",\"description\":\"Scope: session | project | global\",\"required\":true,\"valueHint\":\"scope\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-admin\",\"path\":[\"admin\"],\"display\":\"/pan admin\",\"description\":\"Plumbing commands: watchdog, specialists, infra, db, config, and more\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-commands\",\"path\":[\"admin\",\"commands\"],\"display\":\"/pan admin commands\",\"description\":\"List every visible pan command (plumbing; feeds composer autocomplete codegen)\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Emit machine-readable JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-seed-uat-fixtures\",\"path\":[\"admin\",\"seed-uat-fixtures\"],\"display\":\"/pan admin seed-uat-fixtures\",\"description\":\"Seed the obviously-fake FIX-1 issue fixture into a workspace container for UI UAT. Host mode: `pan admin seed-uat-fixtures <issue-id>` seeds and restarts that issue's workspace container from the host. `--local` runs the seed itself against the current OVERDECK_HOME — used by the host wrapper, or manually inside a container.\",\"args\":[{\"name\":\"issue-id\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--local\",\"description\":\"Seed the current (container-local) OVERDECK_HOME directly, without a host wrapper step\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-migrate-plan-home\",\"path\":[\"admin\",\"migrate-plan-home\"],\"display\":\"/pan admin migrate-plan-home\",\"description\":\"One-time bridge: copy open-issue planning artifacts and item progress from ~/.overdeck/state/<project>/ into <planHome>/.pan/ (PAN-3917 D8)\",\"args\":[{\"name\":\"project-key\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--commit\",\"description\":\"Commit the copied artifacts in the plan home\",\"required\":false,\"valueHint\":null},{\"flags\":\"--dry-run\",\"description\":\"Preview what would be copied without writing anything\",\"required\":false,\"valueHint\":null},{\"flags\":\"--repair-ignore\",\"description\":\"Only remove Overdeck's legacy .pan/ line from .gitignore and commit that file (no copy)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--state-root <dir>\",\"description\":\"Override the state worktree root (tests / odd setups)\",\"required\":true,\"valueHint\":\"dir\"},{\"flags\":\"--plan-home <dir>\",\"description\":\"Override the plan home (tests / odd setups)\",\"required\":true,\"valueHint\":\"dir\"},{\"flags\":\"--open-issues <file>\",\"description\":\"Read open issue ids from a file instead of calling the tracker\",\"required\":true,\"valueHint\":\"file\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-agents\",\"path\":[\"admin\",\"agents\"],\"display\":\"/pan admin agents\",\"description\":\"Agent state plumbing\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-agents-exited\",\"path\":[\"admin\",\"agents\",\"exited\"],\"display\":\"/pan admin agents exited\",\"description\":\"Record that an agent process exited (reported by its launcher; PAN-3848)\",\"args\":[{\"name\":\"agentId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--code <n>\",\"description\":\"Process exit code\",\"required\":true,\"valueHint\":\"n\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-cloister\",\"path\":[\"admin\",\"cloister\"],\"display\":\"/pan admin cloister\",\"description\":\"Cloister agent watchdog commands\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-cloister-status\",\"path\":[\"admin\",\"cloister\",\"status\"],\"display\":\"/pan admin cloister status\",\"description\":\"Show Cloister service status and agent health\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output in JSON format\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-cloister-start\",\"path\":[\"admin\",\"cloister\",\"start\"],\"display\":\"/pan admin cloister start\",\"description\":\"Start Cloister monitoring service\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-cloister-stop\",\"path\":[\"admin\",\"cloister\",\"stop\"],\"display\":\"/pan admin cloister stop\",\"description\":\"Stop Cloister monitoring (agents continue running)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-cloister-emergency-stop\",\"path\":[\"admin\",\"cloister\",\"emergency-stop\"],\"display\":\"/pan admin cloister emergency-stop\",\"description\":\"Emergency stop - kill ALL agents immediately\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-specialists\",\"path\":[\"admin\",\"specialists\"],\"display\":\"/pan admin specialists\",\"description\":\"Manage specialist agents (review-agent, test-agent, merge-agent)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-specialists-list\",\"path\":[\"admin\",\"specialists\",\"list\"],\"display\":\"/pan admin specialists list\",\"description\":\"Show all specialists with their status\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output in JSON format\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-specialists-wake\",\"path\":[\"admin\",\"specialists\",\"wake\"],\"display\":\"/pan admin specialists wake\",\"description\":\"Wake up a specialist agent (for testing/debugging)\",\"args\":[{\"name\":\"name\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--task <description>\",\"description\":\"Optional task description to wake with\",\"required\":true,\"valueHint\":\"description\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-specialists-reset\",\"path\":[\"admin\",\"specialists\",\"reset\"],\"display\":\"/pan admin specialists reset\",\"description\":\"Reset a specialist (clear session, start fresh)\",\"args\":[{\"name\":\"name\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Skip confirmation prompt\",\"required\":false,\"valueHint\":null},{\"flags\":\"--all\",\"description\":\"Reset ALL specialists (wipe all context)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-specialists-done\",\"path\":[\"admin\",\"specialists\",\"done\"],\"display\":\"/pan admin specialists done\",\"description\":\"Post a specialist verdict to the issue's pull/merge request (review, test, uat)\",\"args\":[{\"name\":\"type\",\"required\":true,\"variadic\":false},{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--status <status>\",\"description\":\"Result status: passed, failed, or review-only blocked\",\"required\":true,\"valueHint\":\"status\"},{\"flags\":\"--notes <notes>\",\"description\":\"Optional notes about the result\",\"required\":true,\"valueHint\":\"notes\"},{\"flags\":\"--uat-status <status>\",\"description\":\"Test only: required browser UAT result (passed or failed)\",\"required\":true,\"valueHint\":\"status\"},{\"flags\":\"--uat-notes <notes>\",\"description\":\"Test only: browser UAT evidence or blocking condition\",\"required\":true,\"valueHint\":\"notes\"},{\"flags\":\"--tested-sha <sha>\",\"description\":\"Test/UAT only: the commit the run exercised (git rev-parse HEAD before the gates)\",\"required\":true,\"valueHint\":\"sha\"},{\"flags\":\"--run-id <runId>\",\"description\":\"Review cycle ID used to deduplicate review feedback\",\"required\":true,\"valueHint\":\"runId\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-remote\",\"path\":[\"admin\",\"remote\"],\"display\":\"/pan admin remote\",\"description\":\"Remote workspace management (Fly.io)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-remote-status\",\"path\":[\"admin\",\"remote\",\"status\"],\"display\":\"/pan admin remote status\",\"description\":\"Show Fly.io connection and machine status\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output in JSON format\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-remote-init\",\"path\":[\"admin\",\"remote\",\"init\"],\"display\":\"/pan admin remote init\",\"description\":\"Initialize Fly.io app for workspace machines\",\"args\":[],\"options\":[{\"flags\":\"--app <app>\",\"description\":\"Fly app name\",\"required\":true,\"valueHint\":\"app\"},{\"flags\":\"--org <org>\",\"description\":\"Fly org slug\",\"required\":true,\"valueHint\":\"org\"},{\"flags\":\"--region <region>\",\"description\":\"Default region\",\"required\":true,\"valueHint\":\"region\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-remote-resources\",\"path\":[\"admin\",\"remote\",\"resources\"],\"display\":\"/pan admin remote resources\",\"description\":\"Show RAM/disk usage across VMs\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output in JSON format\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-remote-setup\",\"path\":[\"admin\",\"remote\",\"setup\"],\"display\":\"/pan admin remote setup\",\"description\":\"Setup Fly.io integration (install flyctl, configure auth)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-remote-reap\",\"path\":[\"admin\",\"remote\",\"reap\"],\"display\":\"/pan admin remote reap\",\"description\":\"Hand completed remote agents (PAN_REMOTE_DONE) to the review pipeline and stop their machines\",\"args\":[],\"options\":[{\"flags\":\"--issue <id>\",\"description\":\"Target a single issue instead of scanning all remote agents\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--dry-run\",\"description\":\"Report what would be reaped without acting\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db\",\"path\":[\"admin\",\"db\"],\"display\":\"/pan admin db\",\"description\":\"Database seeding and management\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db-snapshot\",\"path\":[\"admin\",\"db\",\"snapshot\"],\"display\":\"/pan admin db snapshot\",\"description\":\"Create a database snapshot from an external source\",\"args\":[],\"options\":[{\"flags\":\"--project <key>\",\"description\":\"Project key\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--output <path>\",\"description\":\"Output file path\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--sanitize\",\"description\":\"Run sanitization script after snapshot\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db-seed\",\"path\":[\"admin\",\"db\",\"seed\"],\"display\":\"/pan admin db seed\",\"description\":\"Seed a workspace database with the configured seed file\",\"args\":[{\"name\":\"workspaceOrIssue\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Force reseed even if already initialized\",\"required\":false,\"valueHint\":null},{\"flags\":\"--file <path>\",\"description\":\"Override seed file path\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db-status\",\"path\":[\"admin\",\"db\",\"status\"],\"display\":\"/pan admin db status\",\"description\":\"Check database status for a workspace\",\"args\":[{\"name\":\"workspaceOrIssue\",\"required\":false,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db-clean\",\"path\":[\"admin\",\"db\",\"clean\"],\"display\":\"/pan admin db clean\",\"description\":\"Clean kubectl/stderr garbage from a database dump file\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--output <path>\",\"description\":\"Output file (default: overwrite input)\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--dry-run\",\"description\":\"Show what would be cleaned without modifying\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db-config\",\"path\":[\"admin\",\"db\",\"config\"],\"display\":\"/pan admin db config\",\"description\":\"Show database configuration for a project\",\"args\":[{\"name\":\"project\",\"required\":false,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db-rebuild-workspaces\",\"path\":[\"admin\",\"db\",\"rebuild-workspaces\"],\"display\":\"/pan admin db rebuild-workspaces\",\"description\":\"Rebuild the projects/workspaces tables from projects.yaml, worktree scan, and memory-home identity records (PAN-1990)\",\"args\":[],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Show what would be created without writing\",\"required\":false,\"valueHint\":null},{\"flags\":\"--verbose\",\"description\":\"Log each processed workspace\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db-gc-agents\",\"path\":[\"admin\",\"db\",\"gc-agents\"],\"display\":\"/pan admin db gc-agents\",\"description\":\"Remove stopped work-agent rows for terminal issues\",\"args\":[],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Show what would be removed without writing\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db-rebuild\",\"path\":[\"admin\",\"db\",\"rebuild\"],\"display\":\"/pan admin db rebuild\",\"description\":\"Reconstruct the dashboard cache from git + GitHub sources (PAN-1920)\",\"args\":[],\"options\":[{\"flags\":\"--verbose\",\"description\":\"Log each enumerated issue and agent\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-config\",\"path\":[\"admin\",\"config\"],\"display\":\"/pan admin config\",\"description\":\"Manage Overdeck configuration\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-config-shadow\",\"path\":[\"admin\",\"config\",\"shadow\"],\"display\":\"/pan admin config shadow\",\"description\":\"Manage shadow mode settings\",\"args\":[],\"options\":[{\"flags\":\"--enable\",\"description\":\"Enable global shadow mode\",\"required\":false,\"valueHint\":null},{\"flags\":\"--disable\",\"description\":\"Disable global shadow mode\",\"required\":false,\"valueHint\":null},{\"flags\":\"--status\",\"description\":\"Show current shadow mode configuration\",\"required\":false,\"valueHint\":null},{\"flags\":\"--tracker <type>\",\"description\":\"Configure specific tracker (linear/github/gitlab/rally)\",\"required\":true,\"valueHint\":\"type\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-config-tiers\",\"path\":[\"admin\",\"config\",\"tiers\"],\"display\":\"/pan admin config tiers\",\"description\":\"Show the effective model per tiered_execution tier and whether it overrides roles.work\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-hooks\",\"path\":[\"admin\",\"hooks\"],\"display\":\"/pan admin hooks\",\"description\":\"Manage heartbeat hooks\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-hooks-install\",\"path\":[\"admin\",\"hooks\",\"install\"],\"display\":\"/pan admin hooks install\",\"description\":\"Configure heartbeat hooks for Claude Code and/or Pi\",\"args\":[],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Preview the proposed settings.json diff without writing\",\"required\":false,\"valueHint\":null},{\"flags\":\"--harness <harness>\",\"description\":\"Target harness: claude-code, pi, or both\",\"required\":true,\"valueHint\":\"harness\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-hooks-status\",\"path\":[\"admin\",\"hooks\",\"status\"],\"display\":\"/pan admin hooks status\",\"description\":\"Show installed hook harness support\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-fpp\",\"path\":[\"admin\",\"fpp\"],\"display\":\"/pan admin fpp\",\"description\":\"FPP hooks: check, push, pop, clear, mail\",\"args\":[{\"name\":\"action\",\"required\":false,\"variadic\":false},{\"name\":\"idOrMessage\",\"required\":false,\"variadic\":true}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-conversations\",\"path\":[\"admin\",\"conversations\"],\"display\":\"/pan admin conversations\",\"description\":\"Conversation maintenance utilities\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-conversations-backfill-titles\",\"path\":[\"admin\",\"conversations\",\"backfill-titles\"],\"display\":\"/pan admin conversations backfill-titles\",\"description\":\"Backfill titles for conversations stuck on \\\"New conversation\\\"\",\"args\":[],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Preview changes without writing to the database\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-tracker\",\"path\":[\"admin\",\"tracker\"],\"display\":\"/pan admin tracker\",\"description\":\"Tracker-specific operations (Linear, GitHub, etc.)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-tracker-linear-states\",\"path\":[\"admin\",\"tracker\",\"linear-states\"],\"display\":\"/pan admin tracker linear-states\",\"description\":\"Manage Linear workflow states\",\"args\":[],\"options\":[{\"flags\":\"-t, --team <team>\",\"description\":\"Team key (default: MIN)\",\"required\":true,\"valueHint\":\"team\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-tracker-linear-cleanup\",\"path\":[\"admin\",\"tracker\",\"linear-cleanup\"],\"display\":\"/pan admin tracker linear-cleanup\",\"description\":\"Archive old Linear custom states\",\"args\":[],\"options\":[{\"flags\":\"-t, --team <team>\",\"description\":\"Team key (default: MIN)\",\"required\":true,\"valueHint\":\"team\"},{\"flags\":\"-s, --state <state>\",\"description\":\"State name to archive (default: Planning)\",\"required\":true,\"valueHint\":\"state\"},{\"flags\":\"--dry-run\",\"description\":\"Show what would be archived without making changes\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-migrate-config\",\"path\":[\"admin\",\"migrate-config\"],\"display\":\"/pan admin migrate-config\",\"description\":\"One-time migration from settings.json to config.yaml\",\"args\":[],\"options\":[{\"flags\":\"--force\",\"description\":\"Force migration even if config.yaml exists\",\"required\":false,\"valueHint\":null},{\"flags\":\"--preview\",\"description\":\"Preview migration without applying changes\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-backup\",\"description\":\"Do not back up settings.json\",\"required\":false,\"valueHint\":null},{\"flags\":\"--delete-legacy\",\"description\":\"Delete settings.json after migration\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-conversations\",\"path\":[\"conversations\"],\"display\":\"/pan conversations\",\"description\":\"Discover, index, and search Claude Code session history\",\"args\":[],\"options\":[],\"aliases\":[\"conv\"],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-scan\",\"path\":[\"conversations\",\"scan\"],\"display\":\"/pan conversations scan\",\"description\":\"Scan ~/.claude/projects/ and index discovered sessions\",\"args\":[{\"name\":\"dirs\",\"required\":false,\"variadic\":true}],\"options\":[{\"flags\":\"--watched\",\"description\":\"Scan configured watch directories (from config.yaml)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--system\",\"description\":\"Scan system-wide ~/.claude/projects/ (default when no dirs given)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--dry-run\",\"description\":\"Preview without writing to database\",\"required\":false,\"valueHint\":null},{\"flags\":\"--max-parallel <n>\",\"description\":\"Override parallelism (default: auto)\",\"required\":true,\"valueHint\":\"n\"}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-search\",\"path\":[\"conversations\",\"search\"],\"display\":\"/pan conversations search\",\"description\":\"Full-text search across session summaries and tags\",\"args\":[{\"name\":\"query\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--workspace <path>\",\"description\":\"Filter by workspace path\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--model <name>\",\"description\":\"Filter by primary model\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--since <time>\",\"description\":\"Filter sessions after time (ISO or \\\"7d\\\", \\\"today\\\")\",\"required\":true,\"valueHint\":\"time\"},{\"flags\":\"--after <time>\",\"description\":\"Alias for --since (sessions after this time)\",\"required\":true,\"valueHint\":\"time\"},{\"flags\":\"--before <time>\",\"description\":\"Filter sessions before time\",\"required\":true,\"valueHint\":\"time\"},{\"flags\":\"--min-cost <n>\",\"description\":\"Filter by minimum estimated cost\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--max-cost <n>\",\"description\":\"Filter by maximum estimated cost\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--min-messages <n>\",\"description\":\"Filter sessions with at least N messages\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--managed\",\"description\":\"Show only Overdeck-managed sessions\",\"required\":false,\"valueHint\":null},{\"flags\":\"--unmanaged\",\"description\":\"Show only unmanaged (personal) sessions\",\"required\":false,\"valueHint\":null},{\"flags\":\"--enriched\",\"description\":\"Show only enriched sessions\",\"required\":false,\"valueHint\":null},{\"flags\":\"--not-enriched\",\"description\":\"Show only unenriched sessions\",\"required\":false,\"valueHint\":null},{\"flags\":\"--tag <value>\",\"description\":\"Filter by tag (repeatable: --tag foo --tag bar)\",\"required\":true,\"valueHint\":\"value\"},{\"flags\":\"--tool <name>\",\"description\":\"Filter by tool used (repeatable)\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--file <path>\",\"description\":\"Filter by file referenced (repeatable)\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--issue <id>\",\"description\":\"Filter by associated issue ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--similar <id>\",\"description\":\"Find sessions similar to this session ID (semantic)\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--semantic <query>\",\"description\":\"Find sessions semantically similar to query text\",\"required\":true,\"valueHint\":\"query\"},{\"flags\":\"--format <fmt>\",\"description\":\"Output format: table | json | brief | ids\",\"required\":true,\"valueHint\":\"fmt\"},{\"flags\":\"--limit <n>\",\"description\":\"Maximum results\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--offset <n>\",\"description\":\"Pagination offset\",\"required\":true,\"valueHint\":\"n\"}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-list\",\"path\":[\"conversations\",\"list\"],\"display\":\"/pan conversations list\",\"description\":\"List discovered sessions with structured filters\",\"args\":[],\"options\":[{\"flags\":\"--workspace <path>\",\"description\":\"Filter by workspace path\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--model <name>\",\"description\":\"Filter by primary model\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--since <time>\",\"description\":\"Sessions after time (ISO or relative)\",\"required\":true,\"valueHint\":\"time\"},{\"flags\":\"--managed\",\"description\":\"Show only Overdeck-managed sessions\",\"required\":false,\"valueHint\":null},{\"flags\":\"--enriched\",\"description\":\"Show only enriched sessions\",\"required\":false,\"valueHint\":null},{\"flags\":\"--format <fmt>\",\"description\":\"Output: table | json | brief | ids\",\"required\":true,\"valueHint\":\"fmt\"},{\"flags\":\"--limit <n>\",\"description\":\"Maximum results\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--offset <n>\",\"description\":\"Pagination offset\",\"required\":true,\"valueHint\":\"n\"}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-show\",\"path\":[\"conversations\",\"show\"],\"display\":\"/pan conversations show\",\"description\":\"Show detailed information for a session by ID\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-jsonl\",\"path\":[\"conversations\",\"jsonl\"],\"display\":\"/pan conversations jsonl\",\"description\":\"Print the Claude JSONL transcript path for a conversation id (the /conv/<N> number)\",\"args\":[{\"name\":\"conv-id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output status/path as JSON; read the status field\",\"required\":false,\"valueHint\":null}],\"aliases\":[\"transcript\"],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-move\",\"path\":[\"conversations\",\"move\"],\"display\":\"/pan conversations move\",\"description\":\"Reassign a conversation to a different project (exact name, then fuzzy title match)\",\"args\":[{\"name\":\"query\",\"required\":true,\"variadic\":false},{\"name\":\"projectKey\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-link-pr\",\"path\":[\"conversations\",\"link-pr\"],\"display\":\"/pan conversations link-pr\",\"description\":\"Link a pull request (URL, #42, or owner/repo#42) to a conversation\",\"args\":[{\"name\":\"query\",\"required\":true,\"variadic\":false},{\"name\":\"ref\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--source <source>\",\"description\":\"agent or manual (default: agent inside an agent, else manual)\",\"required\":true,\"valueHint\":\"source\"}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-unlink-pr\",\"path\":[\"conversations\",\"unlink-pr\"],\"display\":\"/pan conversations unlink-pr\",\"description\":\"Unlink a pull request from a conversation (the sweep will not re-add it)\",\"args\":[{\"name\":\"query\",\"required\":true,\"variadic\":false},{\"name\":\"ref\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-prs\",\"path\":[\"conversations\",\"prs\"],\"display\":\"/pan conversations prs\",\"description\":\"List the pull requests linked to a conversation (* = the one shown)\",\"args\":[{\"name\":\"query\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output { links, effective } as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-auto-archive-on-merge\",\"path\":[\"conversations\",\"auto-archive-on-merge\"],\"display\":\"/pan conversations auto-archive-on-merge\",\"description\":\"Show or set (on|off) archiving operator conversations once all their linked PRs are merged or closed (default off)\",\"args\":[{\"name\":\"value\",\"required\":false,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-heal\",\"path\":[\"conversations\",\"heal\"],\"display\":\"/pan conversations heal\",\"description\":\"Clear stale fork/spawn failure state for a live conversation\",\"args\":[{\"name\":\"query\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-current\",\"path\":[\"conversations\",\"current\"],\"display\":\"/pan conversations current\",\"description\":\"Print the conversation you are currently running inside (deterministic — no scanning/guessing)\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[\"whoami\"],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-cost\",\"path\":[\"conversations\",\"cost\"],\"display\":\"/pan conversations cost\",\"description\":\"Summarize estimated API costs across discovered sessions\",\"args\":[],\"options\":[{\"flags\":\"--since <time>\",\"description\":\"Summarize sessions since time (ISO or relative)\",\"required\":true,\"valueHint\":\"time\"},{\"flags\":\"--workspace <path>\",\"description\":\"Filter by workspace path\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--by <field>\",\"description\":\"Group by: workspace | model | day | month\",\"required\":true,\"valueHint\":\"field\"},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-embed\",\"path\":[\"conversations\",\"embed\"],\"display\":\"/pan conversations embed\",\"description\":\"Generate embeddings for enriched sessions (required for --semantic search)\",\"args\":[{\"name\":\"ids\",\"required\":false,\"variadic\":true}],\"options\":[{\"flags\":\"--regenerate\",\"description\":\"Regenerate embeddings even for sessions that already have them\",\"required\":false,\"valueHint\":null},{\"flags\":\"--status\",\"description\":\"Show embedding coverage stats and exit\",\"required\":false,\"valueHint\":null},{\"flags\":\"--provider <name>\",\"description\":\"Embedding provider: openai | voyage | ollama\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--model <name>\",\"description\":\"Embedding model override\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--max-parallel <n>\",\"description\":\"Override parallelism\",\"required\":true,\"valueHint\":\"n\"}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-conversations-enrich\",\"path\":[\"conversations\",\"enrich\"],\"display\":\"/pan conversations enrich\",\"description\":\"Enrich sessions with AI-generated summaries and tags\",\"args\":[{\"name\":\"ids\",\"required\":false,\"variadic\":true}],\"options\":[{\"flags\":\"--tier <n>\",\"description\":\"Enrichment tier: 1 (quick) | 2 (detailed) | 3 (deep)\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--deep\",\"description\":\"Shorthand for --tier 3\",\"required\":false,\"valueHint\":null},{\"flags\":\"--full\",\"description\":\"Use full-transcript enrichment with --with; enrich even already-enriched sessions\",\"required\":false,\"valueHint\":null},{\"flags\":\"--upgrade\",\"description\":\"Re-enrich sessions at a lower tier than requested\",\"required\":false,\"valueHint\":null},{\"flags\":\"--with <model>\",\"description\":\"Override the model used for enrichment\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--prompt <text>\",\"description\":\"Append custom prompt text to the enrichment request\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--limit <n>\",\"description\":\"Cap the number of sessions to enrich\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--workspace <path>\",\"description\":\"Restrict to sessions from this workspace path\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--since <time>\",\"description\":\"Only enrich sessions after this time (ISO or relative)\",\"required\":true,\"valueHint\":\"time\"},{\"flags\":\"--ids <ids>\",\"description\":\"Comma-separated session IDs to enrich (legacy; prefer positional args)\",\"required\":true,\"valueHint\":\"ids\"},{\"flags\":\"--max-parallel <n>\",\"description\":\"Override parallelism\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--yes\",\"description\":\"Skip cost confirmation prompt\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Conversation\"},\n {\"id\":\"pan-ohmypi-auth\",\"path\":[\"ohmypi-auth\"],\"display\":\"/pan ohmypi-auth\",\"description\":\"Manage omp's ChatGPT/Codex (openai-codex) OAuth login used by GPT-5.x omp conversations\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-ohmypi-auth-status\",\"path\":[\"ohmypi-auth\",\"status\"],\"display\":\"/pan ohmypi-auth status\",\"description\":\"Show whether omp's openai-codex login is valid (auto-refreshes if possible)\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-ohmypi-auth-login\",\"path\":[\"ohmypi-auth\",\"login\"],\"display\":\"/pan ohmypi-auth login\",\"description\":\"Re-authenticate omp's openai-codex login via headless device code\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-install\",\"path\":[\"install\"],\"display\":\"/pan install\",\"description\":\"Install Overdeck prerequisites\",\"args\":[],\"options\":[{\"flags\":\"--check\",\"description\":\"Check prerequisites only\",\"required\":false,\"valueHint\":null},{\"flags\":\"--minimal\",\"description\":\"Skip Traefik and mkcert (use port-based routing)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--skip-mkcert\",\"description\":\"Skip mkcert/HTTPS setup\",\"required\":false,\"valueHint\":null},{\"flags\":\"--skip-docker\",\"description\":\"Skip Docker network setup\",\"required\":false,\"valueHint\":null},{\"flags\":\"--skip-moonshine\",\"description\":\"Skip Moonshine voice sidecar build (AutoPreso + Voice STT will not work without it)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--skip-tts-daemon\",\"description\":\"Skip Qwen TTS daemon venv install (CUDA torch download is large)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--skip-herdr\",\"description\":\"Skip Herdr terminal backend install/verify (tmux-only hosts)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--skip-ollama\",\"description\":\"Skip Ollama local-model detection and optional gemma4:12b pull\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-caveman-compress\",\"path\":[\"caveman-compress\"],\"display\":\"/pan caveman-compress\",\"description\":\"Compress a static reference doc using caveman-compress (manual use only, never automated). Calls the Claude API recursively to compress prose by ~65-75% while preserving technical accuracy.\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-scope\",\"path\":[\"scope\"],\"display\":\"/pan scope\",\"description\":\"xBRIEF lifecycle management\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-scope-list\",\"path\":[\"scope\",\"list\"],\"display\":\"/pan scope list\",\"description\":\"List all scope xBRIEFs across registered projects (lifecycle dirs + in-flight worktrees)\",\"args\":[],\"options\":[{\"flags\":\"--project <path>\",\"description\":\"Limit to a single project path (defaults to all registered projects)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-scope-show\",\"path\":[\"scope\",\"show\"],\"display\":\"/pan scope show\",\"description\":\"Display xBRIEF plan + items + continue-state summary\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <path>\",\"description\":\"Project path (defaults to resolved from issue)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-scope-propose\",\"path\":[\"scope\",\"propose\"],\"display\":\"/pan scope propose\",\"description\":\"Move xBRIEF to proposed/\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <path>\",\"description\":\"Project path (defaults to resolved from issue)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-scope-approve\",\"path\":[\"scope\",\"approve\"],\"display\":\"/pan scope approve\",\"description\":\"Move xBRIEF to active/ and set status approved\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <path>\",\"description\":\"Project path (defaults to resolved from issue)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-scope-complete\",\"path\":[\"scope\",\"complete\"],\"display\":\"/pan scope complete\",\"description\":\"Move xBRIEF to completed/\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <path>\",\"description\":\"Project path (defaults to resolved from issue)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-scope-cancel\",\"path\":[\"scope\",\"cancel\"],\"display\":\"/pan scope cancel\",\"description\":\"Move xBRIEF to cancelled/\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <path>\",\"description\":\"Project path (defaults to resolved from issue)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-scope-restore\",\"path\":[\"scope\",\"restore\"],\"display\":\"/pan scope restore\",\"description\":\"Restore xBRIEF from completed/ or cancelled/ to active/\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--project <path>\",\"description\":\"Project path (defaults to resolved from issue)\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-spawn\",\"path\":[\"spawn\"],\"display\":\"/pan spawn\",\"description\":\"Create a worker pane for one xBRIEF item in its own item worktree\",\"args\":[],\"options\":[{\"flags\":\"--issue <id>\",\"description\":\"Issue the worker belongs to\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--item <item>\",\"description\":\"xBRIEF item the worker takes\",\"required\":true,\"valueHint\":\"item\"},{\"flags\":\"--model <model>\",\"description\":\"Model the worker runs on\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--harness <harness>\",\"description\":\"Coding-agent harness (default: claude-code)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--effort <level>\",\"description\":\"Reasoning effort: low | medium | high | xhigh | max (defaults to the item/plan metadata, then roles.worker.effort)\",\"required\":true,\"valueHint\":\"level\"},{\"flags\":\"--shared\",\"description\":\"Run the worker in the issue workspace instead of an item worktree (foreman/operator only; serial use)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-worker\",\"path\":[\"worker\"],\"display\":\"/pan worker\",\"description\":\"Registered workers: spawn an issue-linked agent and get its report back; register external agents\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-worker-run\",\"path\":[\"worker\",\"run\"],\"display\":\"/pan worker run\",\"description\":\"Start a worker for an issue and wait for its report (exit 0 done, 4 blocked/failed, 2 no report, 3 timeout, 1 error)\",\"args\":[],\"options\":[{\"flags\":\"--issue <id>\",\"description\":\"Issue the worker belongs to (required)\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--prompt <text>\",\"description\":\"The brief, inline\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--brief <file>\",\"description\":\"The brief, from a file\",\"required\":true,\"valueHint\":\"file\"},{\"flags\":\"--model <model>\",\"description\":\"Model override (default: roles.worker.model)\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--harness <harness>\",\"description\":\"Harness override (default: routed from the model)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--effort <level>\",\"description\":\"Reasoning effort: low | medium | high | xhigh | max (defaults to roles.worker.effort)\",\"required\":true,\"valueHint\":\"level\"},{\"flags\":\"--read-only\",\"description\":\"Run in the issue workspace with git writes blocked\",\"required\":false,\"valueHint\":null},{\"flags\":\"--cwd <path>\",\"description\":\"Working directory inside the issue workspace\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--parent <id>\",\"description\":\"Spawning agent or conversation (default: $OVERDECK_AGENT_ID, then $OVERDECK_CONVERSATION)\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--name <label>\",\"description\":\"Label shown in the Agents Directory\",\"required\":true,\"valueHint\":\"label\"},{\"flags\":\"--detach\",\"description\":\"Print the worker id and return without waiting\",\"required\":false,\"valueHint\":null},{\"flags\":\"--timeout <seconds>\",\"description\":\"Stop waiting after this many seconds (exit 3; the worker keeps running)\",\"required\":true,\"valueHint\":\"seconds\"},{\"flags\":\"--stop-after-report\",\"description\":\"Stop the worker after its first report\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-worker-wait\",\"path\":[\"worker\",\"wait\"],\"display\":\"/pan worker wait\",\"description\":\"Wait for a worker's report (same exit codes as run); the status line names its seq\",\"args\":[{\"name\":\"worker-id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--after <seq>\",\"description\":\"Return the next report after this seq (default: the newest report, whenever written)\",\"required\":true,\"valueHint\":\"seq\"},{\"flags\":\"--timeout <seconds>\",\"description\":\"Stop waiting after this many seconds (exit 3)\",\"required\":true,\"valueHint\":\"seconds\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-worker-report\",\"path\":[\"worker\",\"report\"],\"display\":\"/pan worker report\",\"description\":\"Record a worker's report (run by the worker itself)\",\"args\":[{\"name\":\"worker-id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--file <path>\",\"description\":\"Read the Markdown report from a file\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--stdin\",\"description\":\"Read the Markdown report from stdin\",\"required\":false,\"valueHint\":null},{\"flags\":\"--status <status>\",\"description\":\"done | blocked | failed (default: done)\",\"required\":true,\"valueHint\":\"status\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-worker-list\",\"path\":[\"worker\",\"list\"],\"display\":\"/pan worker list\",\"description\":\"List workers with their parent, live state and newest report\",\"args\":[],\"options\":[{\"flags\":\"--issue <id>\",\"description\":\"Only this issue's workers\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--parent <id>\",\"description\":\"Only workers of this parent\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-worker-register\",\"path\":[\"worker\",\"register\"],\"display\":\"/pan worker register\",\"description\":\"Record an agent another tool launched so the Agents Directory shows it (read-only; prints its id)\",\"args\":[],\"options\":[{\"flags\":\"--source <name>\",\"description\":\"Who launched it ([a-z0-9-], not codex-plugin) (required)\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--external-id <id>\",\"description\":\"The launcher's id for it (required)\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--harness <harness>\",\"description\":\"codex, claude-code, … (required)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--model <model>\",\"description\":\"Model it runs\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--cwd <path>\",\"description\":\"Its working directory\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--issue <id>\",\"description\":\"Issue it works on\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--parent <id>\",\"description\":\"Spawning agent id, conversation tmux session, or claude-session:<uuid>\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--label <text>\",\"description\":\"Label shown in the Agents Directory\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--pid <n>\",\"description\":\"Its process id (liveness is read from it)\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--transcript <path>\",\"description\":\"Its transcript file\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--session-id <id>\",\"description\":\"Its session or thread id\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--json\",\"description\":\"Print { id, created }\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-lane\",\"path\":[\"lane\"],\"display\":\"/pan lane\",\"description\":\"Gauntlet lanes: launch, list, show, wait on, report from, stop and reap lane conversations\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-lane-start\",\"path\":[\"lane\",\"start\"],\"display\":\"/pan lane start\",\"description\":\"Launch a lane conversation under the calling conversation (any harness)\",\"args\":[],\"options\":[{\"flags\":\"--key <key>\",\"description\":\"Lane key inside the run (required unless --for)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--for <builder-key>\",\"description\":\"Critic (required) or verifier: the builder lane judged; --key defaults to it\",\"required\":true,\"valueHint\":\"builder-key\"},{\"flags\":\"--role <role>\",\"description\":\"builder | critic | verifier | play | orchestrator (required)\",\"required\":true,\"valueHint\":\"role\"},{\"flags\":\"--brief <file>\",\"description\":\"The brief, from a file\",\"required\":true,\"valueHint\":\"file\"},{\"flags\":\"--prompt <text>\",\"description\":\"The brief, inline\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--run <key>\",\"description\":\"Run key (required from a root; inherited inside an orchestrator lane)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--parent <conv>\",\"description\":\"Launching conversation (default: $OVERDECK_CONVERSATION)\",\"required\":true,\"valueHint\":\"conv\"},{\"flags\":\"--project <key>\",\"description\":\"Project (default: the parent's project)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--model <model>\",\"description\":\"Model (default: projects.<key>.gauntlet.roles.<role>.model)\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--harness <harness>\",\"description\":\"Harness (default: role config, else routed from the model)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--effort <effort>\",\"description\":\"low | medium | high\",\"required\":true,\"valueHint\":\"effort\"},{\"flags\":\"--title <title>\",\"description\":\"Conversation title (default: <run> <key> · <role>)\",\"required\":true,\"valueHint\":\"title\"},{\"flags\":\"--branch <branch>\",\"description\":\"Builder branch (default: <run>/<key>, <run>/<key>-i<n> after)\",\"required\":true,\"valueHint\":\"branch\"},{\"flags\":\"--from <ref>\",\"description\":\"Base ref for a new builder branch\",\"required\":true,\"valueHint\":\"ref\"},{\"flags\":\"--at <ref>\",\"description\":\"Commit a critic or verifier judges (default with --for: the builder's newest done head)\",\"required\":true,\"valueHint\":\"ref\"},{\"flags\":\"--reuse\",\"description\":\"Continue in the directory of the latest earlier lane with the same run, key and role\",\"required\":false,\"valueHint\":null},{\"flags\":\"--replace\",\"description\":\"Stop the live lane with the same run, key and role first\",\"required\":false,\"valueHint\":null},{\"flags\":\"--force\",\"description\":\"Launch even while the host is CPU-saturated\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-wait\",\"description\":\"Return without waiting for the lane to start\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Print the launch result as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-lane-list\",\"path\":[\"lane\",\"list\"],\"display\":\"/pan lane list\",\"description\":\"List lanes with their activity, newest report, git facts and cost\",\"args\":[],\"options\":[{\"flags\":\"--run <key>\",\"description\":\"Only this run's lanes\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--parent <conv>\",\"description\":\"Only lanes launched by this conversation\",\"required\":true,\"valueHint\":\"conv\"},{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-lane-show\",\"path\":[\"lane\",\"show\"],\"display\":\"/pan lane show\",\"description\":\"Print the builder → critic chain of a run and key, then one line per lane\",\"args\":[{\"name\":\"lane\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--run <key>\",\"description\":\"Run key (with --key)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--key <key>\",\"description\":\"Lane key (with --run)\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--json\",\"description\":\"Print { run, key, steps }\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-lane-wait\",\"path\":[\"lane\",\"wait\"],\"display\":\"/pan lane wait\",\"description\":\"Wait for a lane report (exit 0 done, 4 blocked/failed, 2 no report, 3 timeout, 1 error)\",\"args\":[{\"name\":\"lane\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--run <key>\",\"description\":\"Wait for the next report of any lane in this run\",\"required\":true,\"valueHint\":\"key\"},{\"flags\":\"--parent <conv>\",\"description\":\"Wait for the next report of any lane launched by this conversation\",\"required\":true,\"valueHint\":\"conv\"},{\"flags\":\"--after <seq-or-cursor>\",\"description\":\"Report seq for one lane; cursor <atMs>.<name>.<seq> for a run or parent\",\"required\":true,\"valueHint\":\"seq-or-cursor\"},{\"flags\":\"--timeout <seconds>\",\"description\":\"Stop waiting after this many seconds (exit 3)\",\"required\":true,\"valueHint\":\"seconds\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-lane-report\",\"path\":[\"lane\",\"report\"],\"display\":\"/pan lane report\",\"description\":\"Record this lane's report (run inside the lane)\",\"args\":[],\"options\":[{\"flags\":\"--file <path>\",\"description\":\"Read the Markdown report from a file\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--stdin\",\"description\":\"Read the Markdown report from stdin\",\"required\":false,\"valueHint\":null},{\"flags\":\"--status <status>\",\"description\":\"done | blocked | failed (default: done)\",\"required\":true,\"valueHint\":\"status\"},{\"flags\":\"--allow-unpushed\",\"description\":\"Let a builder report done with commits not on its upstream\",\"required\":false,\"valueHint\":null},{\"flags\":\"--verdict <value>\",\"description\":\"Critic or verifier done report: WOWED | IMPRESSED | NOT_YET | PASS | DEFECTS\",\"required\":true,\"valueHint\":\"value\"},{\"flags\":\"--defects <n>\",\"description\":\"Defect count (default: the verdict file's defects array length)\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--verdict-file <path>\",\"description\":\"The verdict JSON the lane wrote\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-lane-stop\",\"path\":[\"lane\",\"stop\"],\"display\":\"/pan lane stop\",\"description\":\"Stop a lane through the conversation stop door\",\"args\":[{\"name\":\"lane\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-lane-reap\",\"path\":[\"lane\",\"reap\"],\"display\":\"/pan lane reap\",\"description\":\"Remove a lane's directory and archive its conversation (never kills, never discards work)\",\"args\":[{\"name\":\"lane\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--park\",\"description\":\"Save uncommitted work to a verified patch before removing a dirty worktree\",\"required\":false,\"valueHint\":null},{\"flags\":\"--keep\",\"description\":\"Keep the conversation listed instead of archiving it\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-flywheel\",\"path\":[\"flywheel\"],\"display\":\"/pan flywheel\",\"description\":\"Start, stop, pause, resume, or inspect the flywheel conversation\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-start\",\"path\":[\"flywheel\",\"start\"],\"display\":\"/pan flywheel start\",\"description\":\"Launch a conversation running /pan-flywheel\",\"args\":[],\"options\":[{\"flags\":\"--model <model>\",\"description\":\"Model for the flywheel conversation\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--harness <harness>\",\"description\":\"Harness for the flywheel conversation\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--cwd <path>\",\"description\":\"Working directory (default: cwd)\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--orders <book-id>\",\"description\":\"Order book the flywheel works from\",\"required\":true,\"valueHint\":\"book-id\"},{\"flags\":\"--fresh\",\"description\":\"Replace a paused flywheel conversation instead of refusing\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-stop\",\"path\":[\"flywheel\",\"stop\"],\"display\":\"/pan flywheel stop\",\"description\":\"Ask the loop to write its report, wait for it, then pause\",\"args\":[],\"options\":[{\"flags\":\"--timeout <ms>\",\"description\":\"How long to wait for the report (default 120000)\",\"required\":true,\"valueHint\":\"ms\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-abort\",\"path\":[\"flywheel\",\"abort\"],\"display\":\"/pan flywheel abort\",\"description\":\"Stop the flywheel conversation without a report\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-pause\",\"path\":[\"flywheel\",\"pause\"],\"display\":\"/pan flywheel pause\",\"description\":\"Stop the flywheel session, keeping its conversation and transcript\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-resume\",\"path\":[\"flywheel\",\"resume\"],\"display\":\"/pan flywheel resume\",\"description\":\"Respawn a paused flywheel and re-send /pan-flywheel\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-report\",\"path\":[\"flywheel\",\"report\"],\"display\":\"/pan flywheel report\",\"description\":\"Ask a running loop for its report, or print .pan/flywheel/report.md\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-status\",\"path\":[\"flywheel\",\"status\"],\"display\":\"/pan flywheel status\",\"description\":\"Show the derived flywheel status: run, last tick, policies, in-flight issues, order book\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-stats\",\"path\":[\"flywheel\",\"stats\"],\"display\":\"/pan flywheel stats\",\"description\":\"Substrate-bug discovery rate and P0 count, computed from the tracker and forge\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--window <days>\",\"description\":\"Window in days (default 30)\",\"required\":true,\"valueHint\":\"days\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-merge\",\"path\":[\"merge\"],\"display\":\"/pan merge\",\"description\":\"Merge workflow helpers\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Review\"},\n {\"id\":\"pan-merge-cancel\",\"path\":[\"merge\",\"cancel\"],\"display\":\"/pan merge cancel\",\"description\":\"Cancel a pending Flywheel auto-merge during its cooldown window\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Review\"},\n {\"id\":\"pan-artifacts\",\"path\":[\"artifacts\"],\"display\":\"/pan artifacts\",\"description\":\"Create, publish, validate, inspect, and open shared HTML artifacts\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-artifacts-create\",\"path\":[\"artifacts\",\"create\"],\"display\":\"/pan artifacts create\",\"description\":\"Validate and publish an HTML artifact\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--issue <id>\",\"description\":\"Issue ID for artifact provenance\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--workspace <id>\",\"description\":\"Workspace ID for artifact provenance\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--agent-role <role>\",\"description\":\"Agent role: plan, work, review, test, ship, flywheel, or user\",\"required\":true,\"valueHint\":\"role\"},{\"flags\":\"--agent-harness <harness>\",\"description\":\"Agent harness: claude-code, pi, ohmypi, codex, acp, kimi-code, opencode, muse, prime-agent, or user\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--run-id <id>\",\"description\":\"Run ID for artifact provenance\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--session-id <id>\",\"description\":\"Session ID for artifact provenance\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--title <title>\",\"description\":\"Artifact title\",\"required\":true,\"valueHint\":\"title\"},{\"flags\":\"--description <text>\",\"description\":\"Artifact description\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--strict\",\"description\":\"Enable strict validation warnings\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Emit JSON result\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-artifacts-publish\",\"path\":[\"artifacts\",\"publish\"],\"display\":\"/pan artifacts publish\",\"description\":\"Revalidate and republish an existing artifact when changes are pending\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--strict\",\"description\":\"Enable strict validation warnings\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Emit JSON result\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-artifacts-unshare\",\"path\":[\"artifacts\",\"unshare\"],\"display\":\"/pan artifacts unshare\",\"description\":\"Disable an artifact URL without deleting source, snapshots, or metadata\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--yes\",\"description\":\"Confirm unsharing without an interactive prompt\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Emit JSON result\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-artifacts-share\",\"path\":[\"artifacts\",\"share\"],\"display\":\"/pan artifacts share\",\"description\":\"Share an artifact through an external tunnel\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--tunnel\",\"description\":\"Request tunnel-backed sharing\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Emit JSON result\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-artifacts-validate\",\"path\":[\"artifacts\",\"validate\"],\"display\":\"/pan artifacts validate\",\"description\":\"Validate an artifact HTML file\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--strict\",\"description\":\"Enable strict warnings\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Output validation result as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-artifacts-status\",\"path\":[\"artifacts\",\"status\"],\"display\":\"/pan artifacts status\",\"description\":\"Show artifact hash and publication status for a file\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output status as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-artifacts-list\",\"path\":[\"artifacts\",\"list\"],\"display\":\"/pan artifacts list\",\"description\":\"List artifacts\",\"args\":[],\"options\":[{\"flags\":\"--workspace <id>\",\"description\":\"Filter artifacts by workspace ID\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--json\",\"description\":\"Output artifacts as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-artifacts-url\",\"path\":[\"artifacts\",\"url\"],\"display\":\"/pan artifacts url\",\"description\":\"Print the wrapper URL for an artifact file\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output URL metadata as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-artifacts-open\",\"path\":[\"artifacts\",\"open\"],\"display\":\"/pan artifacts open\",\"description\":\"Open the wrapper URL for an artifact file\",\"args\":[{\"name\":\"file\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output opened URL as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-status\",\"path\":[\"status\"],\"display\":\"/pan status\",\"description\":\"Show running agents\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--context\",\"description\":\"Show context window usage % for each agent\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-dev\",\"path\":[\"dev\"],\"display\":\"/pan dev\",\"description\":\"Start dashboard in development mode with Vite HMR\",\"args\":[],\"options\":[{\"flags\":\"--skip-traefik\",\"description\":\"Skip Traefik startup\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-deacon\",\"description\":\"Skip Cloister/Deacon auto-start (escape hatch when deacon's startup scan is starving the event loop)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-resume\",\"description\":\"Disable agent auto-resume (opt out of the default-on auto-resume)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-up\",\"path\":[\"up\"],\"display\":\"/pan up\",\"description\":\"Start dashboard (and Traefik if enabled)\",\"args\":[],\"options\":[{\"flags\":\"--detach\",\"description\":\"Run in background\",\"required\":false,\"valueHint\":null},{\"flags\":\"--skip-traefik\",\"description\":\"Skip Traefik startup\",\"required\":false,\"valueHint\":null},{\"flags\":\"--deacon\",\"description\":\"Force Cloister/Deacon auto-start even if the shell inherited OVERDECK_DISABLE_DEACON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-deacon\",\"description\":\"Skip Cloister/Deacon auto-start (escape hatch when deacon's startup scan is starving the event loop)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--resume\",\"description\":\"Enable agent auto-resume on boot — auto-resume is ON by default (flag kept for explicitness)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-resume\",\"description\":\"Disable agent auto-resume (opt out of the default-on auto-resume)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-open\",\"description\":\"Do not open the dashboard app/browser after startup\",\"required\":false,\"valueHint\":null},{\"flags\":\"--seed-from-legacy\",\"description\":\"Seed a fresh local database from the legacy database (copy conversations + reconstruct in-flight agents/issues). Default is an empty local database.\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-down\",\"path\":[\"down\"],\"display\":\"/pan down\",\"description\":\"Stop dashboard (and Traefik if enabled)\",\"args\":[],\"options\":[{\"flags\":\"--skip-traefik\",\"description\":\"Skip Traefik shutdown\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-reload\",\"path\":[\"reload\"],\"display\":\"/pan reload\",\"description\":\"Build Overdeck, then restart the dashboard only after the build succeeds\",\"args\":[],\"options\":[{\"flags\":\"--skip-build\",\"description\":\"Skip npm run build and restart the existing bundle\",\"required\":false,\"valueHint\":null},{\"flags\":\"--force\",\"description\":\"Bypass the agent deploy-window gate (agent-initiated reloads are otherwise refused while deploy-window block reasons are active)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--health-timeout <duration>\",\"description\":\"Dashboard /api/health wait budget — ms, or Ns/Nm suffix (default 30s; floor 1000ms)\",\"required\":true,\"valueHint\":\"duration\"},{\"flags\":\"--deacon\",\"description\":\"Start Cloister/Deacon on the reloaded dashboard (always on after a reload)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-deacon\",\"description\":\"Refused: a Deacon-off dashboard is a peer and cannot hold the host dashboard port\",\"required\":false,\"valueHint\":null},{\"flags\":\"--resume\",\"description\":\"Enable agent auto-resume on the reloaded dashboard (default: keep the running dashboard's resume gate)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-resume\",\"description\":\"Disable agent auto-resume on the reloaded dashboard (default: keep the running dashboard's resume gate)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-restart\",\"path\":[\"restart\"],\"display\":\"/pan restart\",\"description\":\"Restart a platform component (default: dashboard only — leaves CLIProxy and Traefik running)\",\"args\":[],\"options\":[{\"flags\":\"--dashboard\",\"description\":\"Restart only the dashboard (default)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--cliproxy\",\"description\":\"Restart only the CLIProxy sidecar\",\"required\":false,\"valueHint\":null},{\"flags\":\"--traefik\",\"description\":\"Restart only Traefik\",\"required\":false,\"valueHint\":null},{\"flags\":\"--full\",\"description\":\"Restart the entire stack (equivalent to pan down && pan up)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--force\",\"description\":\"For --cliproxy: redownload binary at the pinned version before restarting (use after bumping CLIPROXY_RELEASE_VERSION). For dashboard scope: bypass the agent deploy-window gate (agent-initiated restarts are otherwise refused while deploy-window block reasons are active)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--health-timeout <duration>\",\"description\":\"Dashboard /api/health wait budget — ms, or Ns/Nm suffix (default 15s; floor 1000ms)\",\"required\":true,\"valueHint\":\"duration\"},{\"flags\":\"--deacon\",\"description\":\"Force Cloister/Deacon auto-start even if the shell inherited OVERDECK_DISABLE_DEACON\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-deacon\",\"description\":\"Skip Cloister/Deacon auto-start on restart (escape hatch when deacon's startup scan is starving the event loop)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--resume\",\"description\":\"Enable agent auto-resume on boot — auto-resume is ON by default (flag kept for explicitness)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-resume\",\"description\":\"Disable agent auto-resume on restart (opt out of the default-on auto-resume)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--now\",\"description\":\"Skip the operator-approval wait: approve everything already waiting, then restart the dashboard immediately\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-restart-approve\",\"path\":[\"restart\",\"approve\"],\"display\":\"/pan restart approve\",\"description\":\"Approve every dashboard restart request that is waiting for the operator\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-project\",\"path\":[\"project\"],\"display\":\"/pan project\",\"description\":\"Project registry for multi-project workspace support\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-project-add\",\"path\":[\"project\",\"add\"],\"display\":\"/pan project add\",\"description\":\"Register a project with Overdeck\",\"args\":[{\"name\":\"path\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--name <name>\",\"description\":\"Project name\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--type <type>\",\"description\":\"Project type (standalone/monorepo)\",\"required\":true,\"valueHint\":\"type\"},{\"flags\":\"--linear-team <team>\",\"description\":\"Linear team prefix (e.g., MIN, PAN)\",\"required\":true,\"valueHint\":\"team\"},{\"flags\":\"--rally-project <oid>\",\"description\":\"Rally project OID (e.g., /project/822404704163)\",\"required\":true,\"valueHint\":\"oid\"},{\"flags\":\"--dry-run\",\"description\":\"Validate without creating (resolve-before-create pattern)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-project-clone\",\"path\":[\"project\",\"clone\"],\"display\":\"/pan project clone\",\"description\":\"Clone a GitHub or GitLab repository and register it as a project\",\"args\":[{\"name\":\"url\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--parent <dir>\",\"description\":\"Parent directory (default: ~/Projects)\",\"required\":true,\"valueHint\":\"dir\"},{\"flags\":\"--name <name>\",\"description\":\"Project name (default: repository name)\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--issue-prefix <prefix>\",\"description\":\"Issue prefix (default: derived from the name)\",\"required\":true,\"valueHint\":\"prefix\"},{\"flags\":\"--dry-run\",\"description\":\"Print the resolved intent as JSON and create nothing\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-project-finish-setup\",\"path\":[\"project\",\"finish-setup\"],\"display\":\"/pan project finish-setup\",\"description\":\"Finish setup for a registered project whose creation did not complete\",\"args\":[{\"name\":\"key\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--path <path>\",\"description\":\"Expected project path; refuses if it does not match the registration\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-project-list\",\"path\":[\"project\",\"list\"],\"display\":\"/pan project list\",\"description\":\"List all registered projects\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-project-show\",\"path\":[\"project\",\"show\"],\"display\":\"/pan project show\",\"description\":\"Show details for a specific project\",\"args\":[{\"name\":\"key\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-project-rename\",\"path\":[\"project\",\"rename\"],\"display\":\"/pan project rename\",\"description\":\"Rename a project's display name (the registration key stays unchanged)\",\"args\":[{\"name\":\"key\",\"required\":true,\"variadic\":false},{\"name\":\"newName\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-project-remove\",\"path\":[\"project\",\"remove\"],\"display\":\"/pan project remove\",\"description\":\"Remove a project from the registry\",\"args\":[{\"name\":\"nameOrPath\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-project-init\",\"path\":[\"project\",\"init\"],\"display\":\"/pan project init\",\"description\":\"Initialize projects.yaml with example configuration\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-project-add-target\",\"path\":[\"project\",\"add-target\"],\"display\":\"/pan project add-target\",\"description\":\"Add a secondary target path for a registered project\",\"args\":[{\"name\":\"project\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--path <path>\",\"description\":\"Target path to add\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--primary\",\"description\":\"Make this the primary target (demotes any existing primary)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects\",\"path\":[\"projects\"],\"display\":\"/pan projects\",\"description\":\"Project registry for multi-project workspace support\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects-add\",\"path\":[\"projects\",\"add\"],\"display\":\"/pan projects add\",\"description\":\"Register a project with Overdeck\",\"args\":[{\"name\":\"path\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--name <name>\",\"description\":\"Project name\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--type <type>\",\"description\":\"Project type (standalone/monorepo)\",\"required\":true,\"valueHint\":\"type\"},{\"flags\":\"--linear-team <team>\",\"description\":\"Linear team prefix (e.g., MIN, PAN)\",\"required\":true,\"valueHint\":\"team\"},{\"flags\":\"--rally-project <oid>\",\"description\":\"Rally project OID (e.g., /project/822404704163)\",\"required\":true,\"valueHint\":\"oid\"},{\"flags\":\"--dry-run\",\"description\":\"Validate without creating (resolve-before-create pattern)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects-clone\",\"path\":[\"projects\",\"clone\"],\"display\":\"/pan projects clone\",\"description\":\"Clone a GitHub or GitLab repository and register it as a project\",\"args\":[{\"name\":\"url\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--parent <dir>\",\"description\":\"Parent directory (default: ~/Projects)\",\"required\":true,\"valueHint\":\"dir\"},{\"flags\":\"--name <name>\",\"description\":\"Project name (default: repository name)\",\"required\":true,\"valueHint\":\"name\"},{\"flags\":\"--issue-prefix <prefix>\",\"description\":\"Issue prefix (default: derived from the name)\",\"required\":true,\"valueHint\":\"prefix\"},{\"flags\":\"--dry-run\",\"description\":\"Print the resolved intent as JSON and create nothing\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects-finish-setup\",\"path\":[\"projects\",\"finish-setup\"],\"display\":\"/pan projects finish-setup\",\"description\":\"Finish setup for a registered project whose creation did not complete\",\"args\":[{\"name\":\"key\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--path <path>\",\"description\":\"Expected project path; refuses if it does not match the registration\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects-list\",\"path\":[\"projects\",\"list\"],\"display\":\"/pan projects list\",\"description\":\"List all registered projects\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects-show\",\"path\":[\"projects\",\"show\"],\"display\":\"/pan projects show\",\"description\":\"Show details for a specific project\",\"args\":[{\"name\":\"key\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects-rename\",\"path\":[\"projects\",\"rename\"],\"display\":\"/pan projects rename\",\"description\":\"Rename a project's display name (the registration key stays unchanged)\",\"args\":[{\"name\":\"key\",\"required\":true,\"variadic\":false},{\"name\":\"newName\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects-remove\",\"path\":[\"projects\",\"remove\"],\"display\":\"/pan projects remove\",\"description\":\"Remove a project from the registry\",\"args\":[{\"name\":\"nameOrPath\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects-init\",\"path\":[\"projects\",\"init\"],\"display\":\"/pan projects init\",\"description\":\"Initialize projects.yaml with example configuration\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-projects-add-target\",\"path\":[\"projects\",\"add-target\"],\"display\":\"/pan projects add-target\",\"description\":\"Add a secondary target path for a registered project\",\"args\":[{\"name\":\"project\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--path <path>\",\"description\":\"Target path to add\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--primary\",\"description\":\"Make this the primary target (demotes any existing primary)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Project\"},\n {\"id\":\"pan-health\",\"path\":[\"health\"],\"display\":\"/pan health\",\"description\":\"Show runtime health of Overdeck services\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-doctor\",\"path\":[\"doctor\"],\"display\":\"/pan doctor\",\"description\":\"Check system health and dependencies\",\"args\":[],\"options\":[{\"flags\":\"--strict\",\"description\":\"Exit non-zero if any optional dependency is missing (e.g. Pi binary)\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-doctor-github-quota\",\"path\":[\"doctor\",\"github-quota\"],\"display\":\"/pan doctor github-quota\",\"description\":\"Show GitHub API quota use per caller, active pauses, and skipped projects\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-resources\",\"path\":[\"resources\"],\"display\":\"/pan resources\",\"description\":\"Show RAM usage by agents, conversations, and system processes\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Observation\"},\n {\"id\":\"pan-hygiene\",\"path\":[\"hygiene\"],\"display\":\"/pan hygiene\",\"description\":\"Audit push, worktree, PR, agent, session, branch, workspace, and disk hygiene\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Emit a schema-validated JSON report\",\"required\":false,\"valueHint\":null},{\"flags\":\"--strict\",\"description\":\"Exit 1 when any finding needs attention\",\"required\":false,\"valueHint\":null},{\"flags\":\"--skip <check...>\",\"description\":\"Skip checks: push tree prs agents sessions branches workspaces\",\"required\":true,\"valueHint\":\"check...\"},{\"flags\":\"--since <duration>\",\"description\":\"Age threshold for stale branches/workspaces\",\"required\":true,\"valueHint\":\"duration\"},{\"flags\":\"--fix-safe\",\"description\":\"Delete only confirmed merged branches; under disk pressure remove independently verified clean terminal workspaces\",\"required\":false,\"valueHint\":null},{\"flags\":\"--fix-disk-pressure-floor <GB>\",\"description\":\"Override the disk cleanup floor used with --fix-safe\",\"required\":true,\"valueHint\":\"GB\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-update\",\"path\":[\"update\"],\"display\":\"/pan update\",\"description\":\"Update Overdeck to latest version\",\"args\":[],\"options\":[{\"flags\":\"--check\",\"description\":\"Only check for updates, don't install\",\"required\":false,\"valueHint\":null},{\"flags\":\"--force\",\"description\":\"Force update even if on latest\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-cost\",\"path\":[\"cost\"],\"display\":\"/pan cost\",\"description\":\"Track and report AI usage costs\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-today\",\"path\":[\"cost\",\"today\"],\"display\":\"/pan cost today\",\"description\":\"Show today's cost summary\",\"args\":[],\"options\":[{\"flags\":\"-d, --detail\",\"description\":\"Show individual entries\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-week\",\"path\":[\"cost\",\"week\"],\"display\":\"/pan cost week\",\"description\":\"Show weekly cost summary\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-month\",\"path\":[\"cost\",\"month\"],\"display\":\"/pan cost month\",\"description\":\"Show monthly cost summary\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-report\",\"path\":[\"cost\",\"report\"],\"display\":\"/pan cost report\",\"description\":\"Generate a cost report\",\"args\":[],\"options\":[{\"flags\":\"-s, --start <date>\",\"description\":\"Start date (YYYY-MM-DD)\",\"required\":true,\"valueHint\":\"date\"},{\"flags\":\"-e, --end <date>\",\"description\":\"End date (YYYY-MM-DD)\",\"required\":true,\"valueHint\":\"date\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-issue\",\"path\":[\"cost\",\"issue\"],\"display\":\"/pan cost issue\",\"description\":\"Show costs for a specific issue\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"-d, --days <n>\",\"description\":\"Number of days to look back\",\"required\":true,\"valueHint\":\"n\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-effort\",\"path\":[\"cost\",\"effort\"],\"display\":\"/pan cost effort\",\"description\":\"Show costs grouped by reasoning effort\",\"args\":[],\"options\":[{\"flags\":\"-i, --issue <issueId>\",\"description\":\"Limit to one issue\",\"required\":true,\"valueHint\":\"issueId\"},{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-budget\",\"path\":[\"cost\",\"budget\"],\"display\":\"/pan cost budget\",\"description\":\"Manage cost budgets\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-budget-create\",\"path\":[\"cost\",\"budget\",\"create\"],\"display\":\"/pan cost budget create\",\"description\":\"Create a cost budget\",\"args\":[{\"name\":\"name\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"-l, --limit <amount>\",\"description\":\"Budget limit in USD\",\"required\":true,\"valueHint\":\"amount\"},{\"flags\":\"-t, --type <type>\",\"description\":\"Budget type (daily, monthly, project, issue, feature)\",\"required\":true,\"valueHint\":\"type\"},{\"flags\":\"-a, --alert <threshold>\",\"description\":\"Alert threshold (0-1)\",\"required\":true,\"valueHint\":\"threshold\"}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-budget-list\",\"path\":[\"cost\",\"budget\",\"list\"],\"display\":\"/pan cost budget list\",\"description\":\"List all budgets\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-budget-check\",\"path\":[\"cost\",\"budget\",\"check\"],\"display\":\"/pan cost budget check\",\"description\":\"Check budget status\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-budget-delete\",\"path\":[\"cost\",\"budget\",\"delete\"],\"display\":\"/pan cost budget delete\",\"description\":\"Delete a budget\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-sync\",\"path\":[\"cost\",\"sync\"],\"display\":\"/pan cost sync\",\"description\":\"Import cost events from per-project WAL files into the local database\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-cost-backfill\",\"path\":[\"cost\",\"backfill\"],\"display\":\"/pan cost backfill\",\"description\":\"Reconstruct cost events from stored harness session transcripts\",\"args\":[],\"options\":[{\"flags\":\"--write\",\"description\":\"Persist non-duplicate reconstructed cost events\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Data\"},\n {\"id\":\"pan-serve\",\"path\":[\"serve\"],\"display\":\"/pan serve\",\"description\":\"Start the dashboard server and open it in the default browser (npx launcher)\",\"args\":[],\"options\":[{\"flags\":\"--port <port>\",\"description\":\"Port to listen on\",\"required\":true,\"valueHint\":\"port\"}],\"aliases\":[],\"category\":\"CLI\"},\n]\n\nexport const COMPOSER_COMMAND_INSERT_OVERRIDES: Readonly<Record<string, string>> = {\n \"plan finalize\": \"/pan plan finalize \",\n \"admin specialists done\": \"/pan admin specialists done\"\n}\n\nexport const COMPOSER_COMMAND_VARIANTS = [\n {\"id\":\"pan-show-cv\",\"path\":[\"show\"],\"display\":\"/pan show --cv\",\"description\":\"Show agent work history (CV)\",\"insert\":\"/pan show --cv\",\"category\":\"Observation\"},\n {\"id\":\"pan-show-context\",\"path\":[\"show\"],\"display\":\"/pan show --context\",\"description\":\"Show context engineering state\",\"insert\":\"/pan show --context\",\"category\":\"Observation\"},\n {\"id\":\"pan-show-health\",\"path\":[\"show\"],\"display\":\"/pan show --health\",\"description\":\"Show health + heartbeat status\",\"insert\":\"/pan show --health\",\"category\":\"Observation\"},\n {\"id\":\"pan-plan-auto-start\",\"path\":[\"plan\"],\"display\":\"/pan plan --auto --auto-start\",\"description\":\"Auto-plan the issue, then auto-start the work agent\",\"insert\":\"/pan plan --auto --auto-start \",\"category\":\"Lifecycle\"},\n {\"id\":\"pan-fork-plain\",\"path\":[\"fork\"],\"display\":\"/pan fork --plain\",\"description\":\"Plain fork — copy raw history, skip summary\",\"insert\":\"/pan fork --plain\",\"category\":\"Conversation\"},\n {\"id\":\"pan-handoff-model\",\"path\":[\"handoff\"],\"display\":\"/pan handoff --model\",\"description\":\"Model for the new conversation\",\"insert\":\"/pan handoff --model \",\"category\":\"Conversation\"},\n {\"id\":\"pan-handoff-harness\",\"path\":[\"handoff\"],\"display\":\"/pan handoff --harness\",\"description\":\"Harness for the new conversation (claude-code|pi)\",\"insert\":\"/pan handoff --harness \",\"category\":\"Conversation\"},\n {\"id\":\"pan-handoff-cwd\",\"path\":[\"handoff\"],\"display\":\"/pan handoff --cwd\",\"description\":\"Working directory for the new conversation\",\"insert\":\"/pan handoff --cwd \",\"category\":\"Conversation\"},\n] as const\n","export interface WiredHookInventoryEntry {\n readonly name: string\n readonly wired: true\n readonly color: `#${string}`\n}\n\nexport interface UnwiredHookInventoryEntry {\n readonly name: string\n readonly wired: false\n}\n\nexport type HookInventoryEntry = WiredHookInventoryEntry | UnwiredHookInventoryEntry\n\nexport const HOOK_INVENTORY = [\n { name: \"PreToolUse\", wired: true, color: \"#00d4ff\" },\n { name: \"PostToolUse\", wired: true, color: \"#39ff14\" },\n { name: \"PostToolUseFailure\", wired: true, color: \"#ff4444\" },\n { name: \"Stop\", wired: true, color: \"#ff2d7c\" },\n { name: \"SessionStart\", wired: true, color: \"#9d4edd\" },\n { name: \"Notification\", wired: true, color: \"#ffb800\" },\n { name: \"UserPromptSubmit\", wired: true, color: \"#00d4ff\" },\n { name: \"PreCompact\", wired: true, color: \"#ff7700\" },\n { name: \"PostCompact\", wired: true, color: \"#ff7700\" },\n { name: \"PermissionRequest\", wired: true, color: \"#ffb800\" },\n { name: \"SessionEnd\", wired: false },\n { name: \"SubagentStart\", wired: false },\n { name: \"SubagentStop\", wired: false },\n { name: \"StopFailure\", wired: false },\n { name: \"PermissionDenied\", wired: false },\n { name: \"TaskCreated\", wired: false },\n { name: \"TaskCompleted\", wired: false },\n { name: \"TeammateIdle\", wired: false },\n { name: \"ConfigChange\", wired: false },\n { name: \"WorktreeCreate\", wired: false },\n { name: \"InstructionsLoaded\", wired: false },\n] as const satisfies readonly HookInventoryEntry[]\n\nexport type HookInventoryName = (typeof HOOK_INVENTORY)[number][\"name\"]\n\nexport const WIRED_HOOK_INVENTORY = HOOK_INVENTORY.filter((hook) => hook.wired)\nexport const WIRED_HOOK_NAMES = WIRED_HOOK_INVENTORY.map((hook) => hook.name)\n","// Terminal backend vocabulary (PAN-3917 FR-3, D10).\n//\n// The terminal backend owns agent terminals and their liveness. Two adapters\n// exist: Herdr (default) and tmux. These are the names the dashboard, the CLI,\n// and the adapters all speak, so they live in the shared contracts package.\n\n/** Adapter that owns agent terminals. */\nexport type TerminalBackendName = \"herdr\" | \"tmux\"\n\n/**\n * Agent lifecycle state. `idle | working | blocked | done | unknown` are\n * Herdr's states verbatim; `exited` is the tmux adapter's dead-pane state and\n * Herdr's `pane_exited`.\n */\nexport type AgentState = \"idle\" | \"working\" | \"blocked\" | \"done\" | \"exited\" | \"unknown\"\n\n/** Pane role, stamped as a metadata token by every launcher (FR-5). */\nexport type AgentRole = \"work\" | \"worker\" | \"review\" | \"test\" | \"uat\" | \"strike\" | \"plan\" | \"conversation\"\n\n/**\n * Metadata tokens stamped on every agent pane. An operator conversation\n * carries role `conversation` and no `issue` token (FR-5), which is also what\n * the prompt guard uses to recognize an operator sender (FR-17). An\n * issue-scoped conversation carries role `conversation` plus the issue; it is\n * not the issue's work pane.\n */\nexport interface PaneTokens {\n /** Issue id (e.g. `PAN-3917`); absent for operator conversations. */\n readonly issue?: string\n readonly role: AgentRole\n readonly harness: string\n readonly model: string\n /** Agent or conversation that spawned this pane (PAN-3920 workers); it may prompt the pane. */\n readonly parent?: string\n}\n\n/** One agent pane as the backend reports it. */\nexport interface BackendAgentSnapshot {\n readonly backend: TerminalBackendName\n /** Backend-native pane handle (Herdr `w1:p1`, tmux session name). */\n readonly paneId: string\n /** Overdeck agent id, when the pane carries one (PAN-3920). */\n readonly agentId?: string\n /** Handle the terminal WebSocket attaches to. */\n readonly terminalId: string\n /** Issue workspace the pane belongs to. */\n readonly workspaceId: string\n readonly state: AgentState\n readonly tokens: Partial<PaneTokens>\n readonly cwd?: string\n readonly title?: string\n}\n\nexport const TERMINAL_BACKEND_NAMES: readonly TerminalBackendName[] = [\"herdr\", \"tmux\"]\n\nexport const AGENT_ROLES: readonly AgentRole[] = [\"work\", \"worker\", \"review\", \"test\", \"uat\", \"strike\", \"plan\", \"conversation\"]\n\nexport function isTerminalBackendName(value: unknown): value is TerminalBackendName {\n return typeof value === \"string\" && (TERMINAL_BACKEND_NAMES as readonly string[]).includes(value)\n}\n\nexport function isAgentRole(value: unknown): value is AgentRole {\n return typeof value === \"string\" && (AGENT_ROLES as readonly string[]).includes(value)\n}\n","// Agents Directory (PAN-3920). One row per agent-like thing the dashboard can show.\n//\n// Derived on every read from state files, the pane inventory, conversations and\n// transcripts; never stored (D1). `GET /api/agent-directory` answers with an\n// `AgentDirectoryResponse`; the dashboard's three-pane Agents Directory renders it.\n\nimport { Schema } from \"effect\"\nimport { EffortLevelSchema } from \"./effort\"\n\nexport const DirectoryEntryKind = Schema.Literals([\"agent\", \"conversation\", \"subagent\", \"external\"])\nexport type DirectoryEntryKind = typeof DirectoryEntryKind.Type\n\nexport const DirectoryEntryState = Schema.Literals([\"working\", \"idle\", \"blocked\", \"done\", \"stopped\", \"unknown\"])\nexport type DirectoryEntryState = typeof DirectoryEntryState.Type\n\nexport const DirectoryEntrySource = Schema.Literals([\n \"overdeck\", // state.json agent (incl. workers)\n \"pane\", // pane-only (pan spawn)\n \"conversation\", // overdeck.db conversation row\n \"claude-subagent\",\n \"codex-subagent\",\n \"registered\", // pan worker register / POST /api/workers/register (Phase C)\n \"codex-plugin\", // Codex-plugin job adapter (Phase C)\n])\nexport type DirectoryEntrySource = typeof DirectoryEntrySource.Type\n\nexport const DirectoryTranscriptRef = Schema.Union([\n Schema.Struct({ route: Schema.Literal(\"agent\"), agentId: Schema.String }),\n Schema.Struct({ route: Schema.Literal(\"agent-subagent\"), agentId: Schema.String, subagentId: Schema.String }),\n Schema.Struct({ route: Schema.Literal(\"conversation\"), conversationName: Schema.String }),\n Schema.Struct({\n route: Schema.Literal(\"conversation-subagent\"),\n conversationName: Schema.String,\n subagentId: Schema.String,\n }),\n])\nexport type DirectoryTranscriptRef = typeof DirectoryTranscriptRef.Type\n\nexport const DirectoryEntryLocation = Schema.Literals([\"local\", \"remote\"])\nexport type DirectoryEntryLocation = typeof DirectoryEntryLocation.Type\n\nexport const DirectoryPauseBy = Schema.Literals([\"operator\", \"scheduler\", \"machine\"])\nexport type DirectoryPauseBy = typeof DirectoryPauseBy.Type\n\nexport const DirectoryPause = Schema.Struct({\n by: DirectoryPauseBy,\n reason: Schema.NullOr(Schema.String),\n since: Schema.NullOr(Schema.String),\n})\nexport type DirectoryPause = typeof DirectoryPause.Type\n\n/** A provider error (billing, usage limit, ...) detected at the end of a transcript (PAN-4222). */\nexport const DirectoryProviderError = Schema.Struct({\n message: Schema.String,\n at: Schema.String,\n})\nexport type DirectoryProviderError = typeof DirectoryProviderError.Type\n\nexport const DirectoryEntry = Schema.Struct({\n id: Schema.String,\n kind: DirectoryEntryKind,\n label: Schema.String,\n location: DirectoryEntryLocation,\n /** projects.yaml key; `unassigned` when none (D5). */\n projectKey: Schema.String,\n /** Uppercase issue id, e.g. `PAN-3920`. */\n issueId: Schema.NullOr(Schema.String),\n /** The issue's title from the dashboard's tracker cache; null when unknown. */\n issueTitle: Schema.NullOr(Schema.String),\n parentId: Schema.NullOr(Schema.String),\n role: Schema.NullOr(Schema.String),\n /** `unknown` when not known. */\n harness: Schema.String,\n /** `unknown` when not known. */\n model: Schema.String,\n /** The launch effort from state.json, native agents only (PAN-4259). */\n effort: Schema.optional(EffortLevelSchema),\n /** Where `effort` came from (an EffortSource), native agents only. */\n effortSource: Schema.optional(Schema.String),\n state: DirectoryEntryState,\n startedAt: Schema.NullOr(Schema.String),\n lastActivityAt: Schema.NullOr(Schema.String),\n costUsd: Schema.NullOr(Schema.Number),\n source: DirectoryEntrySource,\n transcript: Schema.NullOr(DirectoryTranscriptRef),\n /** The pause gate from state.json, native agents only (PAN-4197). */\n pause: Schema.optional(DirectoryPause),\n /** PAN-4223: gauntlet lane facts; conversation entries that are lanes only. */\n lane: Schema.optional(Schema.Struct({\n run: Schema.String,\n key: Schema.String,\n role: Schema.String,\n iteration: Schema.Number,\n reportStatus: Schema.NullOr(Schema.Literals([\"done\", \"blocked\", \"failed\"])),\n /** Critic/verifier: its verdict (or `pending`); builder: the newest critic verdict. */\n verdict: Schema.optional(Schema.NullOr(Schema.String)),\n /** Critic/verifier: the judged builder's legacy conversation id. */\n criticOf: Schema.optional(Schema.Number),\n })),\n /** PAN-4223: the predecessor's legacy conversation id; successors only (links to /conv/<id>). */\n continuesFrom: Schema.optional(Schema.Number),\n /** The id runtime events (agentRuntimeById) are keyed under, when it differs from `id` (PAN-4222). */\n runtimeId: Schema.optional(Schema.String),\n /** A provider error detected at the transcript's end, conversations only (PAN-4222). */\n providerError: Schema.optional(DirectoryProviderError),\n})\nexport type DirectoryEntry = typeof DirectoryEntry.Type\n\n/**\n * `window`: live entries plus finished ones active inside `windowHours`.\n * `live` (PAN-4197): what is running or waiting now; `windowHours` is 0.\n */\nexport const DirectoryScope = Schema.Literals([\"window\", \"live\"])\nexport type DirectoryScope = typeof DirectoryScope.Type\n\nexport const AgentDirectoryResponse = Schema.Struct({\n generatedAt: Schema.String,\n windowHours: Schema.Number,\n scope: Schema.optional(DirectoryScope),\n entries: Schema.Array(DirectoryEntry),\n})\nexport type AgentDirectoryResponse = typeof AgentDirectoryResponse.Type\n","/**\n * Companion terminal seam (PAN-3974, reused by PAN-3835).\n *\n * A companion terminal is a second terminal session, separate from the\n * conversation's own (owner) session, running a harness's native interactive\n * client attached to the owner's live runtime and exact session. Dashboard\n * delivery never goes through it; it exists so the operator can drive the\n * native CLI from the conversation TERMINAL view.\n *\n * This module is the shared vocabulary between the dashboard server lifecycle\n * (`src/lib/overdeck/companion-terminal/`) and the conversation UI\n * (`ConversationTerminalView.tsx`). Adding a harness means adding a kind here,\n * mapping it in `companionTerminalKindFor`, and registering a server adapter —\n * the lifecycle, routes, and UI stay unchanged.\n */\n\n/** The native-client attach strategies Overdeck knows how to run. */\nexport type CompanionTerminalKind =\n /** `opencode attach <url> --session <id>` (PAN-3974). */\n | \"opencode-attach\"\n /** `codex resume --remote unix://<socket> <threadId>` (PAN-3835). */\n | \"codex-resume-remote\"\n\n/** Why a companion cannot be opened right now. */\nexport type CompanionTerminalUnavailableReason =\n /** The conversation predates the recorded server port; restart it to attach. */\n | \"restart-required\"\n /** The owner conversation is not running. */\n | \"owner-not-running\"\n /** The owner is starting or its server is not answering yet. */\n | \"owner-starting\"\n /** The owner's server does not know the recorded session. */\n | \"session-missing\"\n /** The native client binary is not installed. */\n | \"binary-missing\"\n /** The installed CLI is too old to attach its native client. */\n | \"cli-unsupported\"\n /** The conversation has no saved harness session yet; send a message first. */\n | \"session-not-started\"\n /** The owner restarted while the companion was being opened. */\n | \"owner-changed\"\n /** This conversation's harness has no companion terminal. */\n | \"unsupported\"\n\nexport type CompanionTerminalState =\n | {\n readonly status: \"attached\"\n readonly kind: CompanionTerminalKind\n /** The terminal session to stream through `/ws/terminal?session=`. */\n readonly sessionName: string\n /** Owner generation the companion was created for; required by Close. */\n readonly generation: string\n /** True when an existing companion for this generation was reused. */\n readonly reused: boolean\n }\n | {\n readonly status: \"closed\"\n readonly kind: CompanionTerminalKind\n }\n | {\n readonly status: \"unavailable\"\n readonly kind: CompanionTerminalKind | null\n readonly reason: CompanionTerminalUnavailableReason\n readonly message: string\n }\n\n/** The conversation fields the mapping reads. */\nexport interface CompanionTerminalOwnerShape {\n readonly harness?: string | null\n}\n\n/**\n * Which companion terminal a conversation gets, or `null` for \"keep the\n * owner pane as TERMINAL\". A Codex conversation still on the legacy\n * `codex.transport: tui` runs the native TUI in its owner pane; the server\n * adapter reports that as `unsupported` and points at the runtime pane.\n */\nexport function companionTerminalKindFor(\n conversation: CompanionTerminalOwnerShape,\n): CompanionTerminalKind | null {\n if (conversation.harness === \"opencode\") return \"opencode-attach\"\n if (conversation.harness === \"codex\") return \"codex-resume-remote\"\n return null\n}\n\n/** Body keys each mutation accepts. Anything else is rejected as target injection. */\nexport const COMPANION_TERMINAL_OPEN_BODY_KEYS: ReadonlyArray<string> = []\nexport const COMPANION_TERMINAL_CLOSE_BODY_KEYS: ReadonlyArray<string> = [\"generation\"]\n","/**\n * Pull-request references (PAN-3822): parse what an operator or agent types\n * (a PR/MR URL, `#42`, `owner/repo#42`) into a PR key, rebuild the canonical\n * URL from a key, and decide whether a ref belongs to a repository configured\n * for the conversation's project.\n *\n * The URL shape decides the forge, not the host, so self-hosted GitLab and\n * GitHub Enterprise both parse. Host and repository are lower-cased; the stored\n * URL is always rebuilt from the key, never the pasted text. Shared by the\n * server (link commands, the pipeline) and the dashboard (transcript links).\n */\n\nimport type { PullRequestKey } from './pull-request-links';\n\nexport type PullRequestForge = 'github' | 'gitlab';\n\n/** A repository PRs can be linked from. */\nexport interface PullRequestRepo {\n readonly host: string;\n readonly repository: string;\n readonly forge: PullRequestForge;\n}\n\nexport interface ParsedPullRequestRef extends PullRequestKey {\n readonly url: string;\n readonly forge: PullRequestForge;\n}\n\nconst SCHEME = String.raw`(?:https?:\\/\\/)?`;\nconst HOST = String.raw`([a-z0-9.-]+(?::\\d+)?)`;\nconst TAIL = String.raw`(?:\\/[^?#]*)?(?:[?#].*)?$`;\nconst GITLAB_MR = new RegExp(String.raw`^${SCHEME}${HOST}\\/((?:[\\w.-]+\\/)+[\\w.-]+)\\/-\\/merge_requests\\/(\\d+)${TAIL}`, 'i');\nconst GITHUB_PR = new RegExp(String.raw`^${SCHEME}${HOST}\\/([\\w.-]+\\/[\\w.-]+)\\/pull\\/(\\d+)${TAIL}`, 'i');\nconst GITLAB_MR_LEGACY = new RegExp(String.raw`^${SCHEME}${HOST}\\/((?:[\\w.-]+\\/)+[\\w.-]+)\\/merge_requests\\/(\\d+)${TAIL}`, 'i');\nconst SHORT_REF = /^(?:((?:[\\w.-]+\\/)+[\\w.-]+))?[#!](\\d+)$/;\n\nexport function canonicalPullRequestUrl(key: PullRequestKey, forge: PullRequestForge): string {\n return forge === 'gitlab'\n ? `https://${key.host}/${key.repository}/-/merge_requests/${key.number}`\n : `https://${key.host}/${key.repository}/pull/${key.number}`;\n}\n\nfunction build(host: string, repository: string, number: number, forge: PullRequestForge): ParsedPullRequestRef | null {\n if (!Number.isSafeInteger(number) || number <= 0) return null;\n const key = { host: host.toLowerCase(), repository: repository.toLowerCase().replace(/\\.git$/, ''), number };\n return { ...key, forge, url: canonicalPullRequestUrl(key, forge) };\n}\n\n/**\n * Accepts a full PR/MR URL, `#42`, or `owner/repo#42` (`!42` for GitLab MRs).\n * The short forms need `defaultRepo` for host and forge (`#42` for the\n * repository too) and return null without it. Anything else returns null.\n */\nexport function parsePullRequestRef(input: string, defaultRepo?: PullRequestRepo | null): ParsedPullRequestRef | null {\n const text = input.trim();\n if (!text) return null;\n for (const [pattern, forge] of [\n [GITLAB_MR, 'gitlab'],\n [GITHUB_PR, 'github'],\n [GITLAB_MR_LEGACY, 'gitlab'],\n ] as const) {\n const match = pattern.exec(text);\n if (match) return build(match[1]!, match[2]!, Number(match[3]), forge);\n }\n const short = SHORT_REF.exec(text);\n if (!short || !defaultRepo) return null;\n return build(defaultRepo.host, short[1] ?? defaultRepo.repository, Number(short[2]), defaultRepo.forge);\n}\n\n/**\n * The repository behind a git remote URL (https, ssh://, or scp-style), or null\n * when the host names neither GitHub nor GitLab.\n */\nexport function repoFromRemoteUrl(remote: string | null | undefined): PullRequestRepo | null {\n if (!remote) return null;\n const text = remote.trim();\n const match = /^[a-z][a-z0-9+.-]*:\\/\\/(?:[^@/]*@)?([^/:]+)(?::\\d+)?\\/(.+?)(?:\\.git)?\\/?$/i.exec(text)\n ?? /^(?:[^@/]+@)?([^/:]+):(.+?)(?:\\.git)?\\/?$/i.exec(text);\n if (!match) return null;\n const host = match[1]!.toLowerCase();\n const forge: PullRequestForge | null = host.includes('gitlab') ? 'gitlab' : host.includes('github') ? 'github' : null;\n if (!forge) return null;\n return { host, repository: match[2]!.toLowerCase(), forge };\n}\n\n/** True when the ref's host and repository match one of the configured repos. */\nexport function isConfiguredPullRequestRepo(ref: PullRequestKey, repos: readonly PullRequestRepo[]): boolean {\n return repos.some((repo) => repo.host === ref.host && repo.repository === ref.repository);\n}\n","/**\n * Conversation-row classifiers shared by the dashboard server (`src/lib`) and\n * the frontend (PAN-4301). One rule per question: which rows are singleton\n * runners, and what a lane conversation is doing right now (D10).\n */\n\n/** Singleton runners spawn under their bare id (see src/lib/agents/identity.ts normalizeAgentId). */\nexport const SINGLETON_AGENT_IDS: ReadonlySet<string> = new Set([\"flywheel-orchestrator\", \"sequencer-runner\"])\n\nexport function isSingletonConversation(row: { name: string; issueId?: string | null }): boolean {\n return SINGLETON_AGENT_IDS.has(row.name.toLowerCase())\n || (row.issueId != null && SINGLETON_AGENT_IDS.has(row.issueId.toLowerCase()))\n}\n\nexport type LaneActivity = \"failed-to-start\" | \"needs-you\" | \"working\" | \"idle\" | \"starting\" | \"stopped\"\n\n/** D10 `starting`: not alive, not ended, created less than this long ago. */\nexport const LANE_STARTING_GRACE_MS = 3 * 60_000\n\nexport interface LaneActivityInput {\n archivedAt?: string | null\n spawnError?: string | null\n status?: \"active\" | \"ended\" | string | null\n createdAt: string\n sessionAlive?: boolean\n isWorking?: boolean\n pendingInputCount?: number\n}\n\n/** D10, first match wins. */\nexport function laneActivityOf(row: LaneActivityInput, now: number): LaneActivity {\n if (row.archivedAt != null) return \"stopped\"\n if (row.spawnError) return \"failed-to-start\"\n if (row.sessionAlive) {\n if ((row.pendingInputCount ?? 0) > 0) return \"needs-you\"\n if (row.isWorking) return \"working\"\n return \"idle\"\n }\n if (row.status === \"active\" && now - Date.parse(row.createdAt) < LANE_STARTING_GRACE_MS) return \"starting\"\n return \"stopped\"\n}\n","/**\n * Conversation window contract shared by the dashboard server and the\n * frontend (PAN-4558). A cold open carries only the newest slice of a\n * transcript; older history is paged in by cursor. The constants bound every\n * open, and the timeline key gives entries one total order on both sides.\n */\n\n/** Most timeline rows a window or page carries. */\nexport const CONVERSATION_WINDOW_MAX_ROWS = 75\n/** Most encoded entry bytes a window carries (960 KiB, leaving 64 KiB for metadata). */\nexport const CONVERSATION_WINDOW_MAX_BYTES = 983_040\n/** Whole-payload ceiling for an initial HTTP body or first WS event. */\nexport const CONVERSATION_PAYLOAD_BUDGET_BYTES = 1_048_576\n/** Default `limit` for a paged read. */\nexport const CONVERSATION_PAGE_DEFAULT_LIMIT = 75\n/** Largest `limit` a paged read accepts; larger values clamp to it. */\nexport const CONVERSATION_PAGE_MAX_LIMIT = 200\n/** A tool `result` (or `detail`/`toolInput` string) above this many UTF-8 bytes leaves the wire. */\nexport const TOOL_BODY_INLINE_MAX_BYTES = 4096\n/** Characters kept from an oversized `detail`/`toolInput` string. */\nexport const TOOL_BODY_PREVIEW_CHARS = 512\n/** Most open entry ids a resume may name. */\nexport const RESUME_OPEN_IDS_MAX = 200\n/** Most open tool calls pinned into a window beyond its contiguous slice. */\nexport const WINDOW_PINNED_OPEN_TOOLS_MAX = 10\n\n/** `[createdAt, sequence ?? 0, kindRank, id]`; kindRank is 0 for a message, 1 for a work entry. */\nexport type TimelineKey = readonly [createdAt: string, sequence: number, kindRank: 0 | 1, id: string]\n\ninterface TimelineEntryLike {\n createdAt: string\n sequence?: number\n id: string\n}\n\nexport function timelineKeyOfMessage(m: TimelineEntryLike): TimelineKey {\n return [m.createdAt, m.sequence ?? 0, 0, m.id]\n}\n\nexport function timelineKeyOfWork(e: TimelineEntryLike): TimelineKey {\n return [e.createdAt, e.sequence ?? 0, 1, e.id]\n}\n\nfunction compareStrings(a: string, b: string): number {\n return a < b ? -1 : a > b ? 1 : 0\n}\n\n/** Total order: createdAt (string compare), then sequence, then message before work, then id. */\nexport function compareTimelineKeys(a: TimelineKey, b: TimelineKey): number {\n return compareStrings(a[0], b[0])\n || a[1] - b[1]\n || a[2] - b[2]\n || compareStrings(a[3], b[3])\n}\n\nexport function encodeTimelineCursor(key: TimelineKey): string {\n return JSON.stringify(key)\n}\n\n/** Returns null for anything that is not an encoded 4-tuple of string, finite number, 0|1, string. */\nexport function decodeTimelineCursor(cursor: string): TimelineKey | null {\n let value: unknown\n try {\n value = JSON.parse(cursor)\n } catch {\n return null\n }\n if (!Array.isArray(value) || value.length !== 4) return null\n const [createdAt, sequence, kindRank, id] = value\n if (typeof createdAt !== \"string\") return null\n if (typeof sequence !== \"number\" || !Number.isFinite(sequence)) return null\n if (kindRank !== 0 && kindRank !== 1) return null\n if (typeof id !== \"string\") return null\n return [createdAt, sequence, kindRank, id]\n}\n\n/** A tool entry has a result when it carries one inline or the wire projection elided it. */\nexport function hasToolResult(e: { result?: string; resultBytes?: number }): boolean {\n return !!e.result || (e.resultBytes ?? 0) > 0\n}\n","// Environment descriptor and environment-scoped references (PAN-3762 FR-1, FR-2, FR-11).\n//\n// Every Overdeck server is an \"environment\" with a stable public identity. The\n// descriptor is served unauthenticated by `GET /api/environment`, so it carries\n// no paths, usernames, tokens or secrets. Scoped refs pair a server-local id\n// with the environment that owns it, so a client talking to several machines\n// never confuses two agents (or issues, terminals, …) that share a local id.\n\nimport { Schema } from \"effect\"\n\n/** Wire protocol version a client and server must agree on. */\nexport const ENVIRONMENT_PROTOCOL_VERSION = 1\n\nexport const EnvironmentId = Schema.String.pipe(Schema.brand(\"EnvironmentId\"))\nexport type EnvironmentId = typeof EnvironmentId.Type\n\nexport const EnvironmentCapabilities = Schema.Struct({\n /** `POST /api/pairing/*` is available. */\n pairing: Schema.Boolean,\n /** `GET/DELETE /api/devices` is available. */\n deviceSessions: Schema.Boolean,\n /** `/ws/*` upgrades require a credential (PAN-1166). */\n terminalAuth: Schema.Boolean,\n})\nexport type EnvironmentCapabilities = typeof EnvironmentCapabilities.Type\n\nexport const EnvironmentDescriptor = Schema.Struct({\n descriptorVersion: Schema.Literal(1),\n environmentId: EnvironmentId,\n label: Schema.String,\n platform: Schema.Struct({ os: Schema.String, arch: Schema.String }),\n /** Exact package version of the serving Overdeck. */\n serverVersion: Schema.String,\n /** The server's `ENVIRONMENT_PROTOCOL_VERSION`. */\n protocolVersion: Schema.Number,\n capabilities: EnvironmentCapabilities,\n})\nexport type EnvironmentDescriptor = typeof EnvironmentDescriptor.Type\n\n/** A server-local id qualified by the environment that owns it. */\nexport const ScopedRef = <A extends Schema.Top>(localId: A) =>\n Schema.Struct({ environmentId: EnvironmentId, localId })\n\nexport const ScopedProjectRef = ScopedRef(Schema.String)\nexport type ScopedProjectRef = typeof ScopedProjectRef.Type\n\nexport const ScopedIssueRef = ScopedRef(Schema.String)\nexport type ScopedIssueRef = typeof ScopedIssueRef.Type\n\nexport const ScopedAgentRef = ScopedRef(Schema.String)\nexport type ScopedAgentRef = typeof ScopedAgentRef.Type\n\nexport const ScopedConversationRef = ScopedRef(Schema.String)\nexport type ScopedConversationRef = typeof ScopedConversationRef.Type\n\nexport const ScopedTerminalRef = ScopedRef(Schema.String)\nexport type ScopedTerminalRef = typeof ScopedTerminalRef.Type\n\n/** True only when the server speaks exactly the client's protocol version. */\nexport function isProtocolCompatible(\n descriptor: Pick<EnvironmentDescriptor, \"protocolVersion\">,\n clientProtocolVersion: number,\n): boolean {\n return descriptor.protocolVersion === clientProtocolVersion\n}\n"],"mappings":"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S,OAAO,OAAO;EACrB,SAAS,OAAO;EAChB,OAAO,OAAO;EACd,gBAAgB,OAAO;EACvB,WAAW,OAAO,SAAS,OAAO,QAAQ;EAC1C,SAAS,OAAO,SAAS,OAAO,OAAO;EACxC,CAAC;CACH,CAAC;;AAMF,MAAa,cAAc,OAAO,MAAM;CACtC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC;;;AC3mDF,MAAa,UAAU;CACrB;EAAE,IAAI;EAAU,OAAO;EAAU,SAAS;EAAU,cAAc;EAAM;CACxE;EAAE,IAAI;EAAY,OAAO;EAAY,SAAS;EAAY,cAAc;EAAM;CAC9E;EAAE,IAAI;EAAQ,OAAO;EAAQ,SAAS;EAAQ,cAAc;EAAM;CAClE;EAAE,IAAI;EAAQ,OAAO;EAAQ,SAAS;EAAQ,cAAc;EAAM;CAClE;EAAE,IAAI;EAAU,OAAO;EAAW,SAAS;EAAQ,cAAc;EAAM;CACvE;EAAE,IAAI;EAAmB,OAAO;EAAoB,SAAS;EAAiB,cAAc;EAAM;CAClG;EAAE,IAAI;EAAY,OAAO;EAAY,SAAS;EAAU,cAAc;EAAM;CAC5E;EAAE,IAAI;EAAO,OAAO;EAAO,SAAS;EAAO,cAAc;EAAO;CAChE;EAAE,IAAI;EAAe,OAAO;EAAe,SAAS;EAAO,cAAc;EAA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"}
|