@overdeck/contracts 0.51.0 → 0.61.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/types.ts","../src/memory.ts","../src/system-health.ts","../src/events.ts","../src/editor.ts","../src/flywheel.ts","../src/rpc.ts","../src/issue-delta.ts","../src/event-reducers.ts","../src/project-ci.ts","../src/flywheel-stats.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"],"sourcesContent":["import { Schema } from \"effect\"\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 \"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/** 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\"])\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\nexport const ReviewStatusValue = Schema.Literals([\"pending\", \"reviewing\", \"passed\", \"failed\", \"blocked\", \"skipped\"])\nexport type ReviewStatusValue = typeof ReviewStatusValue.Type\n\nexport const TestStatusValue = Schema.Literals([\"pending\", \"testing\", \"passed\", \"failed\", \"skipped\", \"dispatch_failed\"])\nexport type TestStatusValue = typeof TestStatusValue.Type\n\nexport const UatStatusValue = Schema.Literals([\"pending\", \"testing\", \"passed\", \"failed\"])\nexport type UatStatusValue = typeof UatStatusValue.Type\n\nexport const MergeStatusValue = Schema.Literals([\"pending\", \"queued\", \"merging\", \"verifying\", \"merged\", \"failed\"])\nexport type MergeStatusValue = typeof MergeStatusValue.Type\n\nexport const ReleaseStatusValue = Schema.Literals([\"pending\", \"releasing\", \"passed\", \"failed\", \"partial\", \"rolled_back\", \"skipped\"])\nexport type ReleaseStatusValue = typeof ReleaseStatusValue.Type\n\nexport const VerificationStatusValue = Schema.Literals([\"pending\", \"running\", \"passed\", \"failed\", \"skipped\"])\nexport type VerificationStatusValue = typeof VerificationStatusValue.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'\n\nexport const KNOWN_HARNESSES: ReadonlySet<string> = new Set<Harness>(['claude-code', 'ohmypi', 'codex', 'acp', 'kimi-code', 'opencode', 'muse'])\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 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\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 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 // 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 */\nexport const ReviewCycleEntry = Schema.Struct({\n cycle: Schema.Number,\n runId: Schema.String,\n atCommit: Schema.optional(Schema.String),\n blockingCount: Schema.Number,\n recordedAt: Schema.String,\n})\nexport type ReviewCycleEntry = typeof ReviewCycleEntry.Type\n\nexport const ReviewStatusSnapshot = Schema.Struct({\n issueId: IssueId,\n reviewStatus: Schema.optional(ReviewStatusValue),\n testStatus: Schema.optional(TestStatusValue),\n uatStatus: Schema.optional(UatStatusValue),\n uatNotes: Schema.optional(Schema.String),\n mergeStatus: Schema.optional(MergeStatusValue),\n releaseStatus: Schema.optional(ReleaseStatusValue),\n releaseNotes: Schema.optional(Schema.String),\n verificationStatus: Schema.optional(VerificationStatusValue),\n verificationNotes: Schema.optional(Schema.String),\n verificationCycleCount: Schema.optional(Schema.Number),\n readyForMerge: Schema.optional(Schema.Boolean),\n updatedAt: Schema.optional(Schema.String),\n prUrl: Schema.optional(Schema.String),\n /** Persistent stuck flag — set by divergence guard, cleared by /unstick */\n stuck: Schema.optional(Schema.Boolean),\n stuckReason: Schema.optional(Schema.String),\n stuckAt: Schema.optional(Schema.String),\n stuckDetails: Schema.optional(Schema.String),\n /** PAN-3151: review cycle history for convergence detection */\n reviewCycleHistory: Schema.optional(Schema.Array(ReviewCycleEntry)),\n /** Commit SHA at which review passed; deacon uses this to detect new pushes after review */\n reviewedAtCommit: Schema.optional(Schema.String),\n /** Commit SHA at which the pre-review verification gate last passed */\n lastVerifiedCommit: Schema.optional(Schema.String),\n /** Current merge pipeline step (granular visibility for the merge step tracker) */\n mergeStep: Schema.optional(Schema.String),\n /** PAN-699: timestamp when review agents were dispatched */\n reviewSpawnedAt: Schema.optional(Schema.String),\n /** PAN-699: number of test-agent dispatch retries */\n testRetryCount: Schema.optional(Schema.Number),\n /** PAN-794: parallel-review re-dispatch retry counter (current recovery cycle) */\n reviewRetryCount: Schema.optional(Schema.Number),\n /** PAN-796: review auto-requeue count (circuit breaker threshold) */\n autoRequeueCount: Schema.optional(Schema.Number),\n /** PAN-794: ISO timestamp marking the start of the current recovery cycle */\n recoveryStartedAt: Schema.optional(Schema.String),\n /** Human-requested patrol opt-out — when true, Deacon ignores this issue. */\n deaconIgnored: Schema.optional(Schema.Boolean),\n deaconIgnoredAt: Schema.optional(Schema.String),\n deaconIgnoredReason: Schema.optional(Schema.String),\n /** PAN-1691: per-issue auto-merge routing key. undefined = project default, true = auto-merge (fast lane), false = hold for UAT. */\n autoMerge: Schema.optional(Schema.Boolean),\n /** Active review orchestrator tmux session name (e.g. agent-pan-540-review). */\n reviewCoordinatorSessionName: Schema.optional(Schema.String),\n /** Active review sub-role tmux session names (e.g. agent-pan-540-review-correctness). Discovered at emission time. */\n reviewSessionNames: Schema.optional(Schema.Array(Schema.String)),\n /** Per-role review completion status (keyed by role: 'correctness' | 'security' | ...) */\n reviewSubStatuses: Schema.optional(Schema.Record(Schema.String, Schema.Literals([\"running\", \"done\"]))),\n /** PAN-905: queue position in the merge queue */\n queuePosition: Schema.optional(Schema.Number),\n /** PAN-905: currently active specialist (e.g. 'merge-agent') */\n activeSpecialist: Schema.optional(Schema.String),\n /** PAN-905: number of merge retries attempted */\n mergeRetryCount: Schema.optional(Schema.Number),\n /** PAN-905: free-form notes about the merge attempt */\n mergeNotes: Schema.optional(Schema.String),\n /** Merge blocker reasons surfaced to operators. */\n blockerReasons: Schema.optional(Schema.Array(Schema.Struct({\n type: Schema.Literals(['failing_checks', 'merge_conflict', 'unresolved_conversations', 'changes_requested', 'draft_pr', 'not_mergeable', 'unmerged_sibling_repo']),\n summary: Schema.String,\n details: Schema.optional(Schema.String),\n detectedAt: Schema.String,\n }))),\n})\nexport type ReviewStatusSnapshot = typeof ReviewStatusSnapshot.Type\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// ─── 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 reviewStatuses: Schema.Array(ReviewStatusSnapshot),\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 timestamp: Schema.String,\n})\nexport type DashboardSnapshot = typeof DashboardSnapshot.Type\n\n// ─── Workspace Detail ────────────────────────────────────────────────────────\n\nexport const WorkspaceDetail = Schema.Struct({\n workspace: Schema.Unknown,\n reviewStatus: Schema.Unknown,\n planning: Schema.Unknown,\n costs: Schema.Unknown,\n agentOutput: Schema.Array(Schema.String),\n})\nexport type WorkspaceDetail = typeof WorkspaceDetail.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 // Pause gate (PAN-1779 issue-tree redesign): a paused agent is deliberately\n // suppressed from deacon auto-resume — the tree must show it as paused with\n // the reason, never as a generic \"stopped\".\n paused: Schema.optional(Schema.Boolean),\n pausedReason: Schema.optional(Schema.String),\n pausedAt: Schema.optional(Schema.String),\n // Troubled gate (PAN-2257): message delivery queues mail while this is true,\n // so session-tree rows need the gate state and its queue count.\n troubled: Schema.optional(Schema.Boolean),\n troubledAt: Schema.optional(Schema.String),\n troubledReason: Schema.optional(Schema.String),\n consecutiveFailures: Schema.optional(Schema.Number),\n queuedMailCount: Schema.optional(Schema.Number),\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","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 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 ReviewStatusSnapshot,\n Role,\n SequenceNumber,\n WaitingReason,\n} from \"./types\"\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// ─── 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 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 }),\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 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/** Replaces socket.io `pipeline:status` */\nexport const PipelineStatusChangedEvent = Schema.Struct({\n type: Schema.Literal(\"pipeline.status_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), status: ReviewStatusSnapshot }),\n})\nexport type PipelineStatusChangedEvent = typeof PipelineStatusChangedEvent.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 status changed */\nexport const ReviewStatusChangedEvent = Schema.Struct({\n type: Schema.Literal(\"review.status_changed\"),\n sequence: SequenceNumber,\n timestamp: Schema.String,\n payload: Schema.Struct({ issueId: IssueId, workspaceId: Schema.optional(Schema.String), status: ReviewStatusSnapshot }),\n})\nexport type ReviewStatusChangedEvent = typeof ReviewStatusChangedEvent.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 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 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 PipelineStatusChangedEvent,\n MergeReadyEvent,\n ReviewStatusChangedEvent,\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 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 { Effect, Schema } from \"effect\"\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\"])\nexport interface FlywheelOrchestrator {\n harness: typeof FlywheelHarness.Type\n model: string\n effort: \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\"\n ctxPercent: number\n}\n\nexport const FlywheelEffort = Schema.Literals([\"low\", \"medium\", \"high\", \"xhigh\", \"max\"])\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","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 WorkspaceDetail,\n} from \"./types\"\nimport { EditorIdSchema, OpenInEditorInput } from \"./editor\"\nimport { FlywheelStatus } from \"./flywheel\"\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 subscribeFlywheelStatus: \"pan.subscribeFlywheelStatus\",\n\n // Snapshot / replay\n getSnapshot: \"pan.getSnapshot\",\n replayEvents: \"pan.replayEvents\",\n\n // Workspace detail (batched)\n getWorkspaceDetail: \"pan.getWorkspaceDetail\",\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 /** 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\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})\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})\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\n/** 10. Get batched workspace detail (unary) — replaces 5 separate HTTP calls */\nexport const GetWorkspaceDetailRpc = Rpc.make(WS_METHODS.getWorkspaceDetail, {\n payload: Schema.Struct({ issueId: IssueId }),\n success: WorkspaceDetail,\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/** 18. Subscribe to latest Flywheel status snapshots (stream) */\nexport const SubscribeFlywheelStatusRpc = Rpc.make(WS_METHODS.subscribeFlywheelStatus, {\n payload: Schema.Struct({}),\n success: Schema.NullOr(FlywheelStatus),\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 GetWorkspaceDetailRpc,\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 SubscribeFlywheelStatusRpc,\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","/** 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 ReviewStatusSnapshot,\n ScanProgressSnapshot,\n TurnDiffSummary,\n} from './types'\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 reviewStatusByIssueId: Record<string, ReviewStatusSnapshot>\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 /** 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 reviewStatusByIssueId: {},\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 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\nfunction defaultRuntimeSnapshot(agentId: string, timestamp: string, sequence: number): AgentRuntimeSnapshot {\n return {\n id: agentId,\n activity: 'idle',\n lastActivity: timestamp,\n updatedAtSequence: sequence,\n }\n}\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 reviewStatusByIssueId: Record<string, ReviewStatusSnapshot> = {}\n for (const rs of snapshot.reviewStatuses) {\n reviewStatusByIssueId[rs.issueId] = rs\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 // Rebuild sessionId → agentId index from snapshot\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(snapshot.agentRuntimeById ?? {})) {\n if (runtime.claudeSessionId) agentIdBySessionId[runtime.claudeSessionId] = agentId\n }\n\n return {\n ...state,\n sequence: snapshot.sequence,\n agentsById,\n reviewStatusByIssueId,\n agentRuntimeById: snapshot.agentRuntimeById ?? state.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 agentIdBySessionId,\n }\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 = 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 = 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 },\n },\n }\n }\n\n case 'agent.stopped': {\n const { [event.payload.agentId]: _removed, ...rest } = 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 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: rest,\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 '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 // 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 = event.payload.hasLiveTmuxSession === 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 }\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 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 case 'pipeline.status_changed':\n case 'review.status_changed':\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n reviewStatusByIssueId: {\n ...state.reviewStatusByIssueId,\n [event.payload.issueId]: event.payload.status,\n },\n }\n\n // PAN-915 — event-driven reviewer sub-status. Avoids tmux polling in\n // enrichReviewStatusFromSessions for the common case (reviewer dispatched).\n case 'review.reviewer_started': {\n const { issueId, role, sessionName } = event.payload\n const existing = state.reviewStatusByIssueId[issueId]\n const prevSubs = existing?.reviewSubStatuses ?? {}\n const prevNames = existing?.reviewSessionNames ?? []\n const nextNames = prevNames.includes(sessionName) ? prevNames : [...prevNames, sessionName]\n const nextStatus: ReviewStatusSnapshot = {\n ...(existing ?? { issueId }),\n reviewSubStatuses: { ...prevSubs, [role]: 'running' },\n reviewSessionNames: nextNames,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n reviewStatusByIssueId: { ...state.reviewStatusByIssueId, [issueId]: nextStatus },\n }\n }\n\n case 'review.reviewer_completed': {\n const { issueId, role } = event.payload\n const existing = state.reviewStatusByIssueId[issueId]\n if (!existing) return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n const prevSubs = existing.reviewSubStatuses ?? {}\n const nextStatus: ReviewStatusSnapshot = {\n ...existing,\n reviewSubStatuses: { ...prevSubs, [role]: 'done' },\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n reviewStatusByIssueId: { ...state.reviewStatusByIssueId, [issueId]: nextStatus },\n }\n }\n\n case 'review.specialist.timed_out':\n // Telemetry-only event. Sequence update lets clients observe the event\n // stream without mutating the durable review-status snapshot.\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n\n case 'review.coordinator_started': {\n const { issueId, sessionName } = event.payload\n const existing = state.reviewStatusByIssueId[issueId]\n const nextStatus: ReviewStatusSnapshot = {\n ...(existing ?? { issueId }),\n reviewCoordinatorSessionName: sessionName,\n }\n return {\n ...state,\n sequence: Math.max(state.sequence, event.sequence),\n reviewStatusByIssueId: { ...state.reviewStatusByIssueId, [issueId]: nextStatus },\n }\n }\n\n case 'review.coordinator.died':\n // Telemetry-only. The durable review-status row is updated by recovery\n // checks; keep clients in sequence so event stream subscribers can alert.\n return { ...state, sequence: Math.max(state.sequence, event.sequence) }\n\n case 'pipeline.review-started':\n case 'pipeline.review-completed':\n case 'pipeline.test-started':\n case 'pipeline.test-completed':\n // Handled by review.status_changed; sequence-only update keeps clients in lockstep.\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 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 } = 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 // 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 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 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.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 { 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 FlywheelStatsCriterionValueObject = Schema.Record(Schema.String, Schema.Json)\nexport type FlywheelStatsCriterionValueObject = typeof FlywheelStatsCriterionValueObject.Type\n\nexport const FlywheelStatsCriterionValue = Schema.Union([\n Schema.Number,\n FlywheelStatsCriterionValueObject,\n])\nexport type FlywheelStatsCriterionValue = typeof FlywheelStatsCriterionValue.Type\n\nexport interface FlywheelStatsCriterion {\n label: string\n value: FlywheelStatsCriterionValue\n target: FlywheelStatsCriterionValue\n status: FlywheelStatsCriterionStatus\n trend?: FlywheelStatsTrend | undefined\n sampleSize: number\n dataSufficient: boolean\n}\n\nexport const FlywheelStatsCriterion = Schema.Struct({\n label: Schema.String,\n value: FlywheelStatsCriterionValue,\n target: FlywheelStatsCriterionValue,\n status: FlywheelStatsCriterionStatus,\n trend: Schema.optional(FlywheelStatsTrend),\n sampleSize: Schema.Number,\n dataSufficient: Schema.Boolean,\n})\n\nexport interface FlywheelStatsCriteria {\n c1_bugRate: FlywheelStatsCriterion\n c2_p0Bugs: FlywheelStatsCriterion\n c3_passRate: FlywheelStatsCriterion\n c4_mttr: FlywheelStatsCriterion\n c5_intervention: FlywheelStatsCriterion\n c6_timeConsistency: FlywheelStatsCriterion\n c7_flake: FlywheelStatsCriterion\n}\n\nexport const FlywheelStatsCriteria = Schema.Struct({\n c1_bugRate: FlywheelStatsCriterion,\n c2_p0Bugs: FlywheelStatsCriterion,\n c3_passRate: FlywheelStatsCriterion,\n c4_mttr: FlywheelStatsCriterion,\n c5_intervention: FlywheelStatsCriterion,\n c6_timeConsistency: FlywheelStatsCriterion,\n c7_flake: FlywheelStatsCriterion,\n})\n\nexport interface FlywheelStats {\n window: string\n generatedAt: string\n criteria: FlywheelStatsCriteria\n}\n\nexport const FlywheelStats = Schema.Struct({\n window: Schema.String,\n generatedAt: Schema.String,\n criteria: FlywheelStatsCriteria,\n})\n\nexport const decodeFlywheelStats = Schema.decodeUnknownSync(FlywheelStats)\nexport const encodeFlywheelStats = Schema.encodeSync(FlywheelStats)\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\"] 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 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\", \"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\"\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\"\nexport type HarnessDeliveryKind =\n | \"pty-supervisor\"\n | \"rpc-fifo\"\n | \"codex-exec-resume\"\n | \"codex-app-server-rpc\"\n | \"acp-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\"\nexport type HarnessTranscriptKind = \"claude-jsonl\" | \"ohmypi-jsonl\" | \"codex-rollout-jsonl\" | \"acp-jsonl\" | \"kimi-wire-jsonl\" | \"muse-jsonl\"\nexport type HarnessSessionIdSource = \"launcher-session-id\" | \"transcript-jsonl\" | \"codex-thread-id\" | \"acp-session-id\" | \"kimi-session-newest\" | \"muse-session-log\"\nexport type HarnessContextLayerKind = \"claude\" | \"pi\" | \"codex\" | \"acp\" | \"kimi-code\" | \"opencode\" | \"muse\"\nexport type HarnessFeedKind = \"claude_code\" | \"pi\" | \"codex\" | \"acp\" | \"kimi_code\" | \"muse\"\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\"\n readonly readyTimeoutSeconds: number\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}\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}\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}\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}\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}\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}\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}\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 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] 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\"] as const satisfies readonly Harness[]\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 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} 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} 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\">\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 and manage skills\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\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\":\"--shadow-only\",\"description\":\"Show only shadowed issues\",\"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: shadow state, CV, context, health for one issue\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--shadow\",\"description\":\"Shadow state details only\",\"required\":false,\"valueHint\":null},{\"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: pending items, request re-review, reset cycles\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Review\"},\n {\"id\":\"pan-review-pending\",\"path\":[\"review\",\"pending\"],\"display\":\"/pan review pending\",\"description\":\"List completed work awaiting review\",\"args\":[],\"options\":[{\"flags\":\"--ready\",\"description\":\"List issues ready for merge (review+test green, not merged) regardless of origin\",\"required\":false,\"valueHint\":null},{\"flags\":\"--blocked\",\"description\":\"List issues blocked in review/test/merge from the SQLite review-status store\",\"required\":false,\"valueHint\":null}],\"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-reset\",\"path\":[\"review\",\"reset\"],\"display\":\"/pan review reset\",\"description\":\"Reset review/test/merge cycles (human override)\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--session\",\"description\":\"Also clear all saved Claude review-session pointers\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Review\"},\n {\"id\":\"pan-review-resync\",\"path\":[\"review\",\"resync\"],\"display\":\"/pan review resync\",\"description\":\"Re-emit canonical review status (heal a lost pipeline event)\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"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-mode\",\"path\":[\"review\",\"mode\"],\"display\":\"/pan review mode\",\"description\":\"Set per-issue review mode (quick, full, or none)\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false},{\"name\":\"mode\",\"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-verify\",\"path\":[\"verify\"],\"display\":\"/pan verify\",\"description\":\"Verification-gate overrides\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-verify-waive-test-removal\",\"path\":[\"verify\",\"waive-test-removal\"],\"display\":\"/pan verify waive-test-removal\",\"description\":\"Record an operator waiver letting a net test-call removal past the test-skip gate at the current head\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--reason <reason>\",\"description\":\"Why the removed tests are not coming back\",\"required\":true,\"valueHint\":\"reason\"}],\"aliases\":[],\"category\":\"CLI\"},\n {\"id\":\"pan-staffing\",\"path\":[\"staffing\"],\"display\":\"/pan staffing\",\"description\":\"Show or set per-issue work-model and swarm overrides\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--model <model>\",\"description\":\"Set the work model, or default to clear the override\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--swarm <mode>\",\"description\":\"Set swarm mode (off, auto, always), or default to clear the override\",\"required\":true,\"valueHint\":\"mode\"}],\"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 and write it to .pan/backlog/sequence.md (triggers auto-commit)\",\"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-backlog-forecast\",\"path\":[\"backlog\",\"forecast\"],\"display\":\"/pan backlog forecast\",\"description\":\"Pickup forecast (waves / needs-planning / cohort / stats) from sequence.md + SQLite — no HTTP (sandbox-safe)\",\"args\":[],\"options\":[{\"flags\":\"-n, --n <n>\",\"description\":\"Wave size (default 5)\",\"required\":true,\"valueHint\":\"n\"}],\"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 (defaults to role/provider settings)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--effort <level>\",\"description\":\"Planning effort: low | medium | high\",\"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}],\"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\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\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-to-planned\",\"path\":[\"reset-to-planned\"],\"display\":\"/pan reset-to-planned\",\"description\":\"Return a finalized issue to post-planning without deleting its workspace, plan, commits, or branch\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Show the exact reset without changing state\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"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-unstick\",\"path\":[\"unstick\"],\"display\":\"/pan unstick\",\"description\":\"Clear an issue stuck gate without resetting a merged lifecycle\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"aliases\":[],\"category\":\"CLI\"},\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\":\"--cwd <path>\",\"description\":\"Working directory for the summary-forked session\",\"required\":true,\"valueHint\":\"path\"},{\"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\":\"--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\":\"--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\",\"required\":true,\"valueHint\":\"id\"},{\"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\"}],\"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-agent shape: skip review-pipeline dispatch (used by `pan strike` agents that merged directly to main)\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-approve\",\"path\":[\"approve\"],\"display\":\"/pan approve\",\"description\":\"[REMOVED] Use dashboard MERGE button instead\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"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 to use and persist for later respawns (defaults to Cloister config)\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--swarm <mode>\",\"description\":\"Per-issue swarm policy: off | auto | always\",\"required\":true,\"valueHint\":\"mode\"},{\"flags\":\"--review-mode <mode>\",\"description\":\"Per-issue review mode: quick | full | none\",\"required\":true,\"valueHint\":\"mode\"},{\"flags\":\"--review-model <model>\",\"description\":\"Per-issue review model override\",\"required\":true,\"valueHint\":\"model\"},{\"flags\":\"--harness <harness>\",\"description\":\"Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse (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\":\"--shadow\",\"description\":\"Enable shadow mode\",\"required\":false,\"valueHint\":null},{\"flags\":\"--no-shadow\",\"description\":\"Disable shadow mode\",\"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 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\":\"--off-book\",\"description\":\"Allow one work-agent dispatch outside the active order book and log the override\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-strike\",\"path\":[\"strike\"],\"display\":\"/pan strike\",\"description\":\"Spawn strike agent(s) — implement and push a strike branch for Deacon to land through the verified merge door. 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 (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-strike-ready\",\"path\":[\"strike-ready\"],\"display\":\"/pan strike-ready\",\"description\":\"Persist readiness for a pushed strike branch so Deacon can land it\",\"args\":[{\"name\":\"id\",\"required\":true,\"variadic\":false}],\"options\":[],\"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 task 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\":\"--reason <text>\",\"description\":\"Reason for the status change\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--expected-sequence <n>\",\"description\":\"Require the current task sequence\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--force\",\"description\":\"Override a non-terminal transition or claim owner; requires --reason\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\n {\"id\":\"pan-task-done\",\"path\":[\"task\",\"done\"],\"display\":\"/pan task done\",\"description\":\"\",\"args\":[{\"name\":\"issue\",\"required\":true,\"variadic\":false},{\"name\":\"item\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--reason <text>\",\"description\":\"Reason for the status change\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--expected-sequence <n>\",\"description\":\"Require the current task sequence\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--force\",\"description\":\"Override a non-terminal transition or claim owner; requires --reason\",\"required\":false,\"valueHint\":null},{\"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\":\"--reason <text>\",\"description\":\"Reason for the status change\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--expected-sequence <n>\",\"description\":\"Require the current task sequence\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--force\",\"description\":\"Override a non-terminal transition or claim owner; requires --reason\",\"required\":false,\"valueHint\":null},{\"flags\":\"--json\",\"description\":\"Print JSON\",\"required\":false,\"valueHint\":null}],\"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\":\"--reason <text>\",\"description\":\"Reason for the status change\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--expected-sequence <n>\",\"description\":\"Require the current task sequence\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--force\",\"description\":\"Override a non-terminal transition or claim owner; requires --reason\",\"required\":false,\"valueHint\":null},{\"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\":\"--reason <text>\",\"description\":\"Reason for the status change\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--expected-sequence <n>\",\"description\":\"Require the current task sequence\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--force\",\"description\":\"Override a non-terminal transition or claim owner; requires --reason\",\"required\":false,\"valueHint\":null},{\"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\":\"--reason <text>\",\"description\":\"Reason for the status change\",\"required\":true,\"valueHint\":\"text\"},{\"flags\":\"--expected-sequence <n>\",\"description\":\"Require the current task sequence\",\"required\":true,\"valueHint\":\"n\"},{\"flags\":\"--force\",\"description\":\"Override a non-terminal transition or claim owner; requires --reason\",\"required\":false,\"valueHint\":null},{\"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\",\"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 candidates\",\"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-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 (releaseStatus + 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-parked\",\"path\":[\"parked\"],\"display\":\"/pan parked\",\"description\":\"List every issue parked in a stall orbit (stuck flags, gates, failed merges, zombies), 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-parked-ack\",\"path\":[\"parked\",\"ack\"],\"display\":\"/pan parked ack\",\"description\":\"Batch-acknowledge parked rows (default orbit: needs-you), then print the flywheel hand-off\",\"args\":[],\"options\":[{\"flags\":\"--orbit <orbit>\",\"description\":\"Parked orbit to acknowledge\",\"required\":true,\"valueHint\":\"orbit\"},{\"flags\":\"--older-than <days>\",\"description\":\"Only rows parked at least this many days\",\"required\":true,\"valueHint\":\"days\"},{\"flags\":\"--dry-run\",\"description\":\"List what would be acknowledged without writing\",\"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-state\",\"path\":[\"admin\",\"state\"],\"display\":\"/pan admin state\",\"description\":\"Permanent state administration\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-state-migrate\",\"path\":[\"admin\",\"state\",\"migrate\"],\"display\":\"/pan admin state migrate\",\"description\":\"Move permanent state to the orphan overdeck-state branch\",\"args\":[{\"name\":\"project\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Print the exact migration plan without mutating anything\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-state-migrate-xbrief\",\"path\":[\"admin\",\"state\",\"migrate-xbrief\"],\"display\":\"/pan admin state migrate-xbrief\",\"description\":\"Rename state documents to .xbrief.json and migrate legacy envelopes\",\"args\":[{\"name\":\"project\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Print the exact xBRIEF migration plan without mutating anything\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-state-backfill-agents\",\"path\":[\"admin\",\"state\",\"backfill-agents\"],\"display\":\"/pan admin state backfill-agents\",\"description\":\"Reconstruct durable agent runtime records from local and retained state\",\"args\":[{\"name\":\"project\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Report the records and sessions that would be written\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-reconcile-labels\",\"path\":[\"admin\",\"reconcile-labels\"],\"display\":\"/pan admin reconcile-labels\",\"description\":\"Reconcile pipeline labels from permanent issue truth\",\"args\":[],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Print changes without mutating labels\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-migrate-legacy-agent-dirs\",\"path\":[\"admin\",\"migrate-legacy-agent-dirs\"],\"display\":\"/pan admin migrate-legacy-agent-dirs\",\"description\":\"Copy pre-rebrand conv-* agent dirs into the configured Overdeck home without overwriting\",\"args\":[],\"options\":[],\"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-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-cloister-brake\",\"path\":[\"admin\",\"cloister\",\"brake\"],\"display\":\"/pan admin cloister brake\",\"description\":\"Emergency brake - trim running work agents down to the concurrency cap (idle-first, resumable)\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output in JSON format\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-cloister-freeze\",\"path\":[\"admin\",\"cloister\",\"freeze\"],\"display\":\"/pan admin cloister freeze\",\"description\":\"Globally pause the Deacon (patrols run but skip all actions); running agents unaffected\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-cloister-unfreeze\",\"path\":[\"admin\",\"cloister\",\"unfreeze\"],\"display\":\"/pan admin cloister unfreeze\",\"description\":\"Resume the Deacon from a global pause\",\"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\":\"Signal specialist completion (deterministic status update)\",\"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\":\"--item <itemId>\",\"description\":\"xBRIEF item ID (required for inspect verdicts)\",\"required\":true,\"valueHint\":\"itemId\"},{\"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\":\"--run-id <runId>\",\"description\":\"Review cycle ID used to deduplicate review feedback\",\"required\":true,\"valueHint\":\"runId\"}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-specialists-logs\",\"path\":[\"admin\",\"specialists\",\"logs\"],\"display\":\"/pan admin specialists logs\",\"description\":\"View specialist run logs\",\"args\":[{\"name\":\"project\",\"required\":false,\"variadic\":false},{\"name\":\"type\",\"required\":false,\"variadic\":false},{\"name\":\"runId\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output in JSON format\",\"required\":false,\"valueHint\":null},{\"flags\":\"--limit <count>\",\"description\":\"Number of runs to show (default: 10)\",\"required\":true,\"valueHint\":\"count\"},{\"flags\":\"--tail\",\"description\":\"Follow active run log in real-time\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-specialists-cleanup-logs\",\"path\":[\"admin\",\"specialists\",\"cleanup-logs\"],\"display\":\"/pan admin specialists cleanup-logs\",\"description\":\"Clean up old specialist logs\",\"args\":[{\"name\":\"project\",\"required\":false,\"variadic\":false},{\"name\":\"type\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Skip confirmation prompt\",\"required\":false,\"valueHint\":null},{\"flags\":\"--all\",\"description\":\"Clean up logs for all projects\",\"required\":false,\"valueHint\":null}],\"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-agents\",\"path\":[\"admin\",\"db\",\"rebuild-agents\"],\"display\":\"/pan admin db rebuild-agents\",\"description\":\"Rebuild the SQLite agents table from state.json rollback sources (PAN-1908)\",\"args\":[],\"options\":[{\"flags\":\"--dry-run\",\"description\":\"Show what would be backfilled without writing\",\"required\":false,\"valueHint\":null},{\"flags\":\"--verbose\",\"description\":\"Log each processed agent\",\"required\":false,\"valueHint\":null}],\"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-db-backfill-records\",\"path\":[\"admin\",\"db\",\"backfill-records\"],\"display\":\"/pan admin db backfill-records\",\"description\":\"Backfill per-issue permanent records into the infra repo (PAN-1908)\",\"args\":[],\"options\":[{\"flags\":\"--issue-id <id>\",\"description\":\"Backfill only this issue\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--force\",\"description\":\"Overwrite records even if unchanged\",\"required\":false,\"valueHint\":null},{\"flags\":\"--verbose\",\"description\":\"Log each processed issue\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db-restore-verdicts\",\"path\":[\"admin\",\"db\",\"restore-verdicts\"],\"display\":\"/pan admin db restore-verdicts\",\"description\":\"Rebuild review_status verdicts from per-issue records + live GitHub PR state (PAN-1922)\",\"args\":[],\"options\":[{\"flags\":\"--issue-id <id>\",\"description\":\"Restore only this issue\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--dry-run\",\"description\":\"Show what would be restored without writing\",\"required\":false,\"valueHint\":null},{\"flags\":\"--verbose\",\"description\":\"Log each processed issue\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-db-reconcile-merges\",\"path\":[\"admin\",\"db\",\"reconcile-merges\"],\"display\":\"/pan admin db reconcile-merges\",\"description\":\"Backfill fulfilled merge state from tracked PR and branch ancestry evidence (PAN-2311)\",\"args\":[],\"options\":[{\"flags\":\"--issue-id <id>\",\"description\":\"Reconcile only this issue\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--dry-run\",\"description\":\"Show what would be reconciled without writing\",\"required\":false,\"valueHint\":null},{\"flags\":\"--verbose\",\"description\":\"Log each processed issue\",\"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-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-tldr\",\"path\":[\"admin\",\"tldr\"],\"display\":\"/pan admin tldr\",\"description\":\"TLDR daemon: status, start, stop, warm\",\"args\":[{\"name\":\"action\",\"required\":false,\"variadic\":false},{\"name\":\"workspace\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"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-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}],\"aliases\":[],\"category\":\"Core\"},\n {\"id\":\"pan-inspect\",\"path\":[\"inspect\"],\"display\":\"/pan inspect\",\"description\":\"Request inspection of a completed xBRIEF item before proceeding to the next\",\"args\":[{\"name\":\"issueId\",\"required\":true,\"variadic\":false}],\"options\":[{\"flags\":\"--item <itemId>\",\"description\":\"xBRIEF item ID to inspect\",\"required\":true,\"valueHint\":\"itemId\"},{\"flags\":\"--workspace <path>\",\"description\":\"Workspace path (auto-detected if not provided)\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--deep\",\"description\":\"Use the deep inspection sub-role\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Lifecycle\"},\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-flywheel\",\"path\":[\"flywheel\"],\"display\":\"/pan flywheel\",\"description\":\"Flywheel orchestrator lifecycle and status helpers\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-merge-blockers\",\"path\":[\"flywheel\",\"merge-blockers\"],\"display\":\"/pan flywheel merge-blockers\",\"description\":\"PRs that passed review but cannot merge (GitHub-native reasons) — reads SQLite directly, no HTTP (sandbox-safe)\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-weights\",\"path\":[\"flywheel\",\"weights\"],\"display\":\"/pan flywheel weights\",\"description\":\"Weighted substrate bugs by affected v1.0 criterion — reads SQLite directly, no HTTP (sandbox-safe)\",\"args\":[],\"options\":[{\"flags\":\"--issue <id>\",\"description\":\"Filter to a single issue\",\"required\":true,\"valueHint\":\"id\"},{\"flags\":\"--window <dur>\",\"description\":\"Stats window like 30d, 7d (default 30d)\",\"required\":true,\"valueHint\":\"dur\"},{\"flags\":\"--json\",\"description\":\"Output JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-start\",\"path\":[\"flywheel\",\"start\"],\"display\":\"/pan flywheel start\",\"description\":\"Start the Flywheel orchestrator\",\"args\":[],\"options\":[{\"flags\":\"--brief <path>\",\"description\":\"Path to the Flywheel brief\",\"required\":true,\"valueHint\":\"path\"},{\"flags\":\"--orders <book-id>\",\"description\":\"Bind the run to a validated order book\",\"required\":true,\"valueHint\":\"book-id\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-emit-status\",\"path\":[\"flywheel\",\"emit-status\"],\"display\":\"/pan flywheel emit-status\",\"description\":\"Validate and publish a FlywheelStatus JSON snapshot to the local dashboard\",\"args\":[],\"options\":[{\"flags\":\"--file <path>\",\"description\":\"Path to FlywheelStatus JSON, or - to read from stdin\",\"required\":true,\"valueHint\":\"path\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-config\",\"path\":[\"flywheel\",\"config\"],\"display\":\"/pan flywheel config\",\"description\":\"Get or set Flywheel autonomy configuration\",\"args\":[],\"options\":[{\"flags\":\"--get [key]\",\"description\":\"Print Flywheel config values\",\"required\":false,\"valueHint\":\"key\"},{\"flags\":\"--set <key=value>\",\"description\":\"Set a Flywheel config boolean\",\"required\":true,\"valueHint\":\"key=value\"}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-status\",\"path\":[\"flywheel\",\"status\"],\"display\":\"/pan flywheel status\",\"description\":\"Show the active Flywheel run status\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Emit the raw FlywheelStatus JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-stats\",\"path\":[\"flywheel\",\"stats\"],\"display\":\"/pan flywheel stats\",\"description\":\"Show Flywheel v1.0 readiness stats\",\"args\":[],\"options\":[{\"flags\":\"--window <duration>\",\"description\":\"Stats window duration\",\"required\":true,\"valueHint\":\"duration\"},{\"flags\":\"--json\",\"description\":\"Emit the raw FlywheelStats JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-pause\",\"path\":[\"flywheel\",\"pause\"],\"display\":\"/pan flywheel pause\",\"description\":\"Pause the active Flywheel orchestrator run\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-resume\",\"path\":[\"flywheel\",\"resume\"],\"display\":\"/pan flywheel resume\",\"description\":\"Resume the paused Flywheel orchestrator run\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-report\",\"path\":[\"flywheel\",\"report\"],\"display\":\"/pan flywheel report\",\"description\":\"Finalize the active Flywheel run: write report.md, compact over-threshold FLYWHEEL-STATE.md history, commit State changes, and clear the active-run gate. Refuses to run while the orchestrator session is alive (pause or abort first).\",\"args\":[],\"options\":[{\"flags\":\"--force\",\"description\":\"Bypass the orchestrator-alive guard. Intended for the orchestrator role's own end-of-run call.\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-complete\",\"path\":[\"flywheel\",\"complete\"],\"display\":\"/pan flywheel complete\",\"description\":\"Complete a drained order-book run, write its report and retrospective, then continue mechanically\",\"args\":[],\"options\":[{\"flags\":\"--force\",\"description\":\"Complete even when the order book still has non-terminal items\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-stop\",\"path\":[\"flywheel\",\"stop\"],\"display\":\"/pan flywheel stop\",\"description\":\"Stop the Flywheel orchestrator gracefully: kill any live session, write report.md, commit FLYWHEEL-STATE.md changes, and clear the active-run gate\",\"args\":[],\"options\":[],\"aliases\":[],\"category\":\"Flywheel\"},\n {\"id\":\"pan-flywheel-abort\",\"path\":[\"flywheel\",\"abort\"],\"display\":\"/pan flywheel abort\",\"description\":\"Discard the active Flywheel run without writing a report\",\"args\":[],\"options\":[],\"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, 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\":\"--tldr\",\"description\":\"Show TLDR index health across all workspaces\",\"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\":\"--no-deacon\",\"description\":\"Skip Cloister/Deacon auto-start after reload\",\"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, Traefik, TLDR 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-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-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 \"admin specialists logs\": \"/pan admin specialists logs\",\n \"admin specialists cleanup-logs\": \"/pan admin specialists cleanup-logs\"\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-review-reset-session\",\"path\":[\"review\",\"reset\"],\"display\":\"/pan review reset --session\",\"description\":\"Reset review and clear saved Claude session\",\"insert\":\"/pan review reset --session\",\"category\":\"Review\"},\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"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/backend-pane.ts","../src/derived-issue-state.ts","../src/types.ts","../src/memory.ts","../src/system-health.ts","../src/events.ts","../src/editor.ts","../src/rpc.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"],"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\"]),\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","// 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])\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})\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/** 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})\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\"]\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\"\nimport { BackendPane } from \"./backend-pane\"\nimport { DerivedIssueState } from \"./derived-issue-state\"\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 \"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/** 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'\n\nexport const KNOWN_HARNESSES: ReadonlySet<string> = new Set<Harness>(['claude-code', 'ohmypi', 'codex', 'acp', 'kimi-code', 'opencode', 'muse'])\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 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\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 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 // 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// ─── 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 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","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 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 Role,\n SequenceNumber,\n WaitingReason,\n} from \"./types\"\nimport { DerivedIssueState } from \"./derived-issue-state\"\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// ─── 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 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 }),\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 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 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 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 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\"\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\"\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 /** 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\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})\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})\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","/** 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 ScanProgressSnapshot,\n TurnDiffSummary,\n} from './types'\nimport type { DerivedIssueState } from './derived-issue-state'\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 /** 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 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\nfunction defaultRuntimeSnapshot(agentId: string, timestamp: string, sequence: number): AgentRuntimeSnapshot {\n return {\n id: agentId,\n activity: 'idle',\n lastActivity: timestamp,\n updatedAtSequence: sequence,\n }\n}\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 // Rebuild sessionId → agentId index from snapshot\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(snapshot.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: snapshot.agentRuntimeById ?? state.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 agentIdBySessionId,\n }\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 = 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 = 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 },\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 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 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 '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 // 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 = event.payload.hasLiveTmuxSession === 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 }\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 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 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 } = 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 // 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 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 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.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\"\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\"])\nexport interface FlywheelOrchestrator {\n harness: typeof FlywheelHarness.Type\n model: string\n effort: \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\"\n ctxPercent: number\n}\n\nexport const FlywheelEffort = Schema.Literals([\"low\", \"medium\", \"high\", \"xhigh\", \"max\"])\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 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\nexport const FlywheelInFlightRow = Schema.Struct({\n issueId: Schema.String,\n state: IssueState,\n attention: Schema.optional(IssueAttention),\n pr: Schema.optional(DerivedPrState),\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 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\"] 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 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\", \"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\"\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\"\nexport type HarnessDeliveryKind =\n | \"pty-supervisor\"\n | \"rpc-fifo\"\n | \"codex-exec-resume\"\n | \"codex-app-server-rpc\"\n | \"acp-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\"\nexport type HarnessTranscriptKind = \"claude-jsonl\" | \"ohmypi-jsonl\" | \"codex-rollout-jsonl\" | \"acp-jsonl\" | \"kimi-wire-jsonl\" | \"muse-jsonl\"\nexport type HarnessSessionIdSource = \"launcher-session-id\" | \"transcript-jsonl\" | \"codex-thread-id\" | \"acp-session-id\" | \"kimi-session-newest\" | \"muse-session-log\"\nexport type HarnessContextLayerKind = \"claude\" | \"pi\" | \"codex\" | \"acp\" | \"kimi-code\" | \"opencode\" | \"muse\"\nexport type HarnessFeedKind = \"claude_code\" | \"pi\" | \"codex\" | \"acp\" | \"kimi_code\" | \"muse\"\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\"\n readonly readyTimeoutSeconds: number\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}\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}\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}\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}\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}\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}\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}\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 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] 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\"] as const satisfies readonly Harness[]\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 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} 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} 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\">\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 and manage skills\",\"args\":[],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Core\"},\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-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 (defaults to role/provider settings)\",\"required\":true,\"valueHint\":\"harness\"},{\"flags\":\"--effort <level>\",\"description\":\"Planning effort: low | medium | high\",\"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}],\"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\":[],\"aliases\":[],\"category\":\"Lifecycle\"},\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-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\":\"--cwd <path>\",\"description\":\"Working directory for the summary-forked session\",\"required\":true,\"valueHint\":\"path\"},{\"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\":\"--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\":\"--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\",\"required\":true,\"valueHint\":\"id\"},{\"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\"}],\"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 (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 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 that no longer exist\",\"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 (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}],\"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}],\"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\",\"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 candidates\",\"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-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-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-specialists-logs\",\"path\":[\"admin\",\"specialists\",\"logs\"],\"display\":\"/pan admin specialists logs\",\"description\":\"View specialist run logs\",\"args\":[{\"name\":\"project\",\"required\":false,\"variadic\":false},{\"name\":\"type\",\"required\":false,\"variadic\":false},{\"name\":\"runId\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output in JSON format\",\"required\":false,\"valueHint\":null},{\"flags\":\"--limit <count>\",\"description\":\"Number of runs to show (default: 10)\",\"required\":true,\"valueHint\":\"count\"},{\"flags\":\"--tail\",\"description\":\"Follow active run log in real-time\",\"required\":false,\"valueHint\":null}],\"aliases\":[],\"category\":\"Admin\"},\n {\"id\":\"pan-admin-specialists-cleanup-logs\",\"path\":[\"admin\",\"specialists\",\"cleanup-logs\"],\"display\":\"/pan admin specialists cleanup-logs\",\"description\":\"Clean up old specialist logs\",\"args\":[{\"name\":\"project\",\"required\":false,\"variadic\":false},{\"name\":\"type\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--force\",\"description\":\"Skip confirmation prompt\",\"required\":false,\"valueHint\":null},{\"flags\":\"--all\",\"description\":\"Clean up logs for all projects\",\"required\":false,\"valueHint\":null}],\"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-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-tldr\",\"path\":[\"admin\",\"tldr\"],\"display\":\"/pan admin tldr\",\"description\":\"TLDR daemon: status, start, stop, warm\",\"args\":[{\"name\":\"action\",\"required\":false,\"variadic\":false},{\"name\":\"workspace\",\"required\":false,\"variadic\":false}],\"options\":[{\"flags\":\"--json\",\"description\":\"Output as JSON\",\"required\":false,\"valueHint\":null}],\"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-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}],\"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 the issue workspace\",\"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\"}],\"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\":\"--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-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, 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\":\"--tldr\",\"description\":\"Show TLDR index health across all workspaces\",\"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\":\"--no-deacon\",\"description\":\"Skip Cloister/Deacon auto-start after reload\",\"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, Traefik, TLDR 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-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-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 \"admin specialists logs\": \"/pan admin specialists logs\",\n \"admin specialists cleanup-logs\": \"/pan admin specialists cleanup-logs\"\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\"\n\n/**\n * Metadata tokens stamped on every agent pane. An operator conversation\n * carries no `issue` token (FR-5), which is also what the prompt guard uses to\n * recognize an operator sender (FR-17).\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\"]\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\"\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 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 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})\nexport type DirectoryEntry = typeof DirectoryEntry.Type\n\nexport const AgentDirectoryResponse = Schema.Struct({\n generatedAt: Schema.String,\n windowHours: Schema.Number,\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"],"mappings":"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S,OAAO;EAChB,OAAO,OAAO;EACd,QAAQ,OAAO;EAChB,CAAC;CACH,CAAC;;AAIF,MAAa,2BAA2B,OAAO,OAAO;CACpD,MAAM,OAAO,QAAQ,uBAAuB;CAC5C,UAAU;CACV,WAAW,OAAO;CAClB,SAAS,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;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;CACD,CAAC;;;AC9iDF,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;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"}