kantban-cli 0.1.7 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-ZCUIGFSP.js +4111 -0
- package/dist/chunk-ZCUIGFSP.js.map +1 -0
- package/dist/context-7YDNTI3P.js +30 -0
- package/dist/context-7YDNTI3P.js.map +1 -0
- package/dist/cron-OKQP6QDF.js +112 -0
- package/dist/cron-OKQP6QDF.js.map +1 -0
- package/dist/index.d.ts +0 -2
- package/dist/index.js +179 -44
- package/dist/index.js.map +1 -1
- package/dist/pipeline-HTGCXNPL.js +4049 -0
- package/dist/pipeline-HTGCXNPL.js.map +1 -0
- package/dist/pipeline-init-IGZZOOLK.js +103 -0
- package/dist/pipeline-init-IGZZOOLK.js.map +1 -0
- package/dist/status-4GFXMVIM.js +128 -0
- package/dist/status-4GFXMVIM.js.map +1 -0
- package/dist/work-2V33NZAT.js +81 -0
- package/dist/work-2V33NZAT.js.map +1 -0
- package/package.json +7 -4
- package/dist/client.d.ts +0 -35
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -109
- package/dist/client.js.map +0 -1
- package/dist/commands/context.d.ts +0 -3
- package/dist/commands/context.d.ts.map +0 -1
- package/dist/commands/context.js +0 -27
- package/dist/commands/context.js.map +0 -1
- package/dist/commands/cron.d.ts +0 -3
- package/dist/commands/cron.d.ts.map +0 -1
- package/dist/commands/cron.js +0 -106
- package/dist/commands/cron.js.map +0 -1
- package/dist/commands/pipeline.d.ts +0 -4
- package/dist/commands/pipeline.d.ts.map +0 -1
- package/dist/commands/pipeline.js +0 -645
- package/dist/commands/pipeline.js.map +0 -1
- package/dist/commands/status.d.ts +0 -3
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js +0 -135
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/work.d.ts +0 -3
- package/dist/commands/work.d.ts.map +0 -1
- package/dist/commands/work.js +0 -76
- package/dist/commands/work.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/lib/constraint-evaluator.d.ts +0 -40
- package/dist/lib/constraint-evaluator.d.ts.map +0 -1
- package/dist/lib/constraint-evaluator.js +0 -180
- package/dist/lib/constraint-evaluator.js.map +0 -1
- package/dist/lib/event-queue.d.ts +0 -28
- package/dist/lib/event-queue.d.ts.map +0 -1
- package/dist/lib/event-queue.js +0 -73
- package/dist/lib/event-queue.js.map +0 -1
- package/dist/lib/logger.d.ts +0 -20
- package/dist/lib/logger.d.ts.map +0 -1
- package/dist/lib/logger.js +0 -52
- package/dist/lib/logger.js.map +0 -1
- package/dist/lib/mcp-config.d.ts +0 -9
- package/dist/lib/mcp-config.d.ts.map +0 -1
- package/dist/lib/mcp-config.js +0 -51
- package/dist/lib/mcp-config.js.map +0 -1
- package/dist/lib/orchestrator.d.ts +0 -238
- package/dist/lib/orchestrator.d.ts.map +0 -1
- package/dist/lib/orchestrator.js +0 -616
- package/dist/lib/orchestrator.js.map +0 -1
- package/dist/lib/prompt-composer.d.ts +0 -102
- package/dist/lib/prompt-composer.d.ts.map +0 -1
- package/dist/lib/prompt-composer.js +0 -182
- package/dist/lib/prompt-composer.js.map +0 -1
- package/dist/lib/ralph-loop.d.ts +0 -49
- package/dist/lib/ralph-loop.d.ts.map +0 -1
- package/dist/lib/ralph-loop.js +0 -174
- package/dist/lib/ralph-loop.js.map +0 -1
- package/dist/lib/ws-client.d.ts +0 -31
- package/dist/lib/ws-client.d.ts.map +0 -1
- package/dist/lib/ws-client.js +0 -110
- package/dist/lib/ws-client.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/stuck-detector.ts","../src/lib/parse-utils.ts","../src/lib/gate-config.ts","../../types/src/api-response.ts","../../types/src/common.ts","../../types/src/user.schema.ts","../../types/src/project.schema.ts","../../types/src/palette.ts","../../types/src/project-member.schema.ts","../../types/src/project-invitation.schema.ts","../../types/src/board.schema.ts","../../types/src/board-member.schema.ts","../../types/src/column.schema.ts","../../types/src/ticket.schema.ts","../../types/src/comment.schema.ts","../../types/src/jobs.schema.ts","../../types/src/upload.schema.ts","../../types/src/ticket-attachment.schema.ts","../../types/src/board-ws.schema.ts","../../types/src/field-definition.schema.ts","../../types/src/field-override.schema.ts","../../types/src/transition-rule.schema.ts","../../types/src/signal.schema.ts","../../types/src/pipeline-session.schema.ts","../../types/src/firing-constraint.schema.ts","../../types/src/pipeline-event.schema.ts","../../types/src/chat.schema.ts","../../types/src/call.schema.ts","../../types/src/api-token.schema.ts","../../types/src/doc-space.schema.ts","../../types/src/document.schema.ts","../../types/src/search.schema.ts","../../types/src/entity-reference.schema.ts","../../types/src/notification.schema.ts","../../types/src/field-value.schema.ts","../../types/src/transition-requirement.schema.ts","../../types/src/transition-blocked.schema.ts","../../types/src/ticket-link.schema.ts","../../types/src/column-tombstone.schema.ts","../../types/src/gif.schema.ts","../../types/src/preferences.schema.ts","../../types/src/activity.schema.ts","../../types/src/ticket-metrics.schema.ts","../../types/src/daily-snapshot.schema.ts","../../types/src/compound.schema.ts","../../types/src/dashboard.schema.ts","../../types/src/github.schema.ts","../../types/src/ticket-reference.schema.ts","../../types/src/analytics.schema.ts","../../types/src/pipeline-template.schema.ts","../../types/src/time-unit.ts","../../types/src/pipeline-analytics.schema.ts","../../types/src/ticket-transition.schema.ts","../../types/src/pipeline-context.schema.ts","../../types/src/gate.schema.ts","../src/lib/prompt-composer.ts","../src/lib/ralph-loop.ts","../src/lib/mcp-config.ts"],"sourcesContent":["import { z } from 'zod';\nimport { parseJsonFromLlmOutput } from './parse-utils.js';\nimport type { GateSnapshot, GateDelta } from '@kantban/types';\n\nexport interface StuckPattern {\n status: 'progressing' | 'spinning' | 'regressing' | 'blocked';\n evidence: string;\n confidence: number;\n}\n\n// Legacy exports preserved for backward compatibility during transition\nexport interface StuckDetectionConfig {\n enabled: boolean;\n firstCheck?: number;\n interval?: number;\n}\n\nexport function shouldCheckStuckDetection(config: StuckDetectionConfig, iteration: number): boolean {\n if (!config.enabled) return false;\n const firstCheck = config.firstCheck ?? 3;\n const interval = config.interval ?? 2;\n if (interval <= 0) return iteration === firstCheck;\n if (iteration < firstCheck) return false;\n if (iteration === firstCheck) return true;\n return (iteration - firstCheck) % interval === 0;\n}\n\n// Legacy types — kept for ralph-loop.ts compatibility until Task 12 replaces them\nexport interface StuckDetectionInput {\n ticketNumber: number;\n ticketTitle: string;\n columnName: string;\n iteration: number;\n maxIterations: number;\n recentComments: Array<{ author: string; body: string }>;\n}\n\n// Legacy function — kept for pipeline.ts compatibility until orchestrator layer is updated\nexport function composeStuckDetectionPrompt(input: StuckDetectionInput): string {\n const commentLines =\n input.recentComments.length > 0\n ? input.recentComments.map((c) => ` [${c.author}] ${c.body.slice(0, 200)}`).join('\\n')\n : ' (no comments)';\n\n return `You are a pipeline trajectory classifier. Analyze recent agent activity and classify the trajectory.\n\nTicket: #${String(input.ticketNumber)} \"${input.ticketTitle}\"\nColumn: ${input.columnName}\nIteration: ${String(input.iteration)} of ${String(input.maxIterations)}\n\nRecent iteration comments:\n${commentLines}\n\nClassify as one of:\n- \"progressing\" — each iteration makes distinct forward progress (new code, new tests, new fields set)\n- \"spinning\" — agent is active but repeating similar actions without advancing (same error, same approach retried, output duplicated)\n- \"blocked\" — agent cannot make progress due to external dependency, missing information, or fundamental task issue\n\nRespond with ONLY a JSON object:\n{\"status\": \"progressing|spinning|blocked\", \"confidence\": 0.0-1.0, \"evidence\": \"one sentence\"}`;\n}\n\nconst StuckDetectionResponseSchema = z.object({\n status: z.enum(['progressing', 'spinning', 'blocked']),\n confidence: z.number().min(0).max(1),\n evidence: z.string(),\n});\n\nexport type StuckDetectionResult = z.infer<typeof StuckDetectionResponseSchema>;\n\n// Legacy function — kept for pipeline.ts compatibility until orchestrator layer is updated\nexport function parseStuckDetectionResponse(raw: string): StuckDetectionResult {\n let parsed: unknown;\n try {\n parsed = parseJsonFromLlmOutput(raw);\n } catch (err) {\n throw new Error(`StuckDetectionResponse: ${err instanceof Error ? err.message : String(err)}`);\n }\n\n // Clamp confidence before validation\n if (parsed && typeof parsed === 'object' && 'confidence' in parsed) {\n const p = parsed as Record<string, unknown>;\n if (typeof p.confidence === 'number') {\n p.confidence = Math.min(1, Math.max(0, p.confidence));\n }\n }\n\n const result = StuckDetectionResponseSchema.safeParse(parsed);\n if (!result.success) {\n throw new Error(`StuckDetectionResponse: validation failed — ${result.error.message}`);\n }\n\n return result.data;\n}\n\n/**\n * Deterministic trajectory classification from gate snapshot history.\n * Replaces the Haiku-based comment classifier.\n */\nexport function classifyTrajectory(snapshots: GateSnapshot[]): StuckPattern {\n if (snapshots.length === 0) {\n return { status: 'progressing', evidence: 'no data', confidence: 0.5 };\n }\n\n const recent = snapshots.slice(-3);\n const deltas = recent.map((s) => s.delta_from_previous);\n\n // Filter out first_check — it's not a real signal\n const meaningful = deltas.filter((d): d is Exclude<GateDelta, 'first_check'> => d !== 'first_check');\n\n if (meaningful.length === 0) {\n return { status: 'progressing', evidence: 'only initial checks', confidence: 0.5 };\n }\n\n // All same = spinning\n if (meaningful.every((d) => d === 'same')) {\n return { status: 'spinning', evidence: 'identical gate results', confidence: 1.0 };\n }\n\n // Monotonic regression\n if (meaningful.every((d) => d === 'regressed' || d === 'same')) {\n return { status: 'regressing', evidence: 'gate results degrading', confidence: 1.0 };\n }\n\n // Recent improvement takes precedence over oscillation\n if (meaningful.some((d) => d === 'improved')) {\n const lastMeaningful = meaningful[meaningful.length - 1];\n if (lastMeaningful === 'improved') {\n return { status: 'progressing', evidence: 'gate results improving', confidence: 1.0 };\n }\n }\n\n // Oscillation: improved AND regressed, but last delta is NOT improved\n if (meaningful.some((d) => d === 'improved') && meaningful.some((d) => d === 'regressed')) {\n return { status: 'spinning', evidence: 'oscillating gate results', confidence: 1.0 };\n }\n\n // Stale improvement — has improved sometime but no recent progress\n if (meaningful.some((d) => d === 'improved')) {\n return { status: 'spinning', evidence: 'stale improvement — no recent progress', confidence: 0.8 };\n }\n\n return { status: 'spinning', evidence: 'no improvement detected', confidence: 1.0 };\n}\n","/**\n * Strip markdown code fences from LLM output and parse as JSON.\n * Used by advisor, light-call, and stuck-detector response parsers.\n */\nexport function parseJsonFromLlmOutput(raw: string): unknown {\n // First: try parsing the whole string (handles pure JSON input from tests/structured responses)\n try {\n return JSON.parse(raw.trim());\n } catch {\n // Not a bare JSON string — fall through to fence and brace extraction\n }\n\n // Second: try code fence extraction\n const fenceMatch = raw.match(/```(?:json)?\\s*([\\s\\S]*?)```/i);\n if (fenceMatch?.[1]) {\n const fenced = fenceMatch[1].trim();\n try {\n return JSON.parse(fenced);\n } catch {\n // Fence content wasn't valid JSON — fall through to brace matching\n }\n }\n\n // Fallback: find valid JSON objects with string-context-aware brace matching\n for (let i = 0; i < raw.length; i++) {\n if (raw[i] !== '{') continue;\n let depth = 0;\n let inString = false;\n let escape = false;\n for (let j = i; j < raw.length; j++) {\n const ch = raw[j];\n if (escape) {\n escape = false;\n continue;\n }\n if (ch === '\\\\' && inString) {\n escape = true;\n continue;\n }\n if (ch === '\"') {\n inString = !inString;\n continue;\n }\n if (inString) continue;\n if (ch === '{') depth++;\n if (ch === '}') depth--;\n if (depth === 0) {\n const candidate = raw.slice(i, j + 1);\n try {\n return JSON.parse(candidate);\n } catch {\n break; // This opening brace didn't work, try next\n }\n }\n }\n }\n\n throw new Error(`Invalid JSON in LLM output: ${raw.slice(0, 120)}`);\n}\n","import { load, JSON_SCHEMA } from 'js-yaml';\nimport { GateConfigSchema, type GateConfig, type GateDefinition } from '@kantban/types';\n\nconst DANGEROUS_KEYS = new Set(['__proto__', 'constructor', 'prototype']);\n\nexport const VALID_BRANCH_RE = /^[a-zA-Z0-9][a-zA-Z0-9._\\-/]*$/;\n\nfunction assertNoPrototypePollutionKeys(value: unknown, depth = 0): void {\n if (depth > 20 || value === null || typeof value !== 'object') return;\n for (const key of Object.keys(value as object)) {\n if (DANGEROUS_KEYS.has(key)) {\n throw new Error(`Unsafe key \"${key}\" detected in YAML input`);\n }\n assertNoPrototypePollutionKeys((value as Record<string, unknown>)[key], depth + 1);\n }\n}\n\nexport function parseGateConfig(yamlContent: string): GateConfig {\n const raw = load(yamlContent, { schema: JSON_SCHEMA });\n assertNoPrototypePollutionKeys(raw);\n return GateConfigSchema.parse(raw);\n}\n\nexport function resolveGatesForColumn(config: GateConfig, columnName: string): GateDefinition[] {\n const lowerName = columnName.toLowerCase();\n\n // Find column override (case-insensitive)\n const overrideKey = config.columns\n ? Object.keys(config.columns).find((k) => k.toLowerCase() === lowerName)\n : undefined;\n const override = overrideKey ? config.columns![overrideKey] : undefined;\n\n if (!override) {\n return [...config.default];\n }\n\n if (!override.extend) {\n if (override.gates.length === 0) {\n console.error(` [warn] Column \"${columnName}\" has extend:false with no gates — all gate enforcement disabled for this column`);\n }\n return [...override.gates];\n }\n\n // Extend: default gates + column gates, column overrides by name\n const overrideNames = new Set(override.gates.map((g) => g.name));\n const merged = config.default.filter((g) => !overrideNames.has(g.name));\n return [...merged, ...override.gates];\n}\n\nexport function resolveGatesForColumnWithWorktree(\n config: GateConfig,\n columnName: string,\n worktreeEnabled: boolean,\n integrationBranch: string = 'main',\n): GateDefinition[] {\n const gates = resolveGatesForColumn(config, columnName);\n if (!worktreeEnabled) return gates;\n\n if (!VALID_BRANCH_RE.test(integrationBranch)) {\n throw new Error(`Invalid branch name for worktree merge gate: \"${integrationBranch}\"`);\n }\n\n const mergeGate: GateDefinition = {\n name: '__worktree_merge',\n run: `git merge '${integrationBranch}' --no-edit`,\n required: true,\n timeout: '30s',\n };\n\n return [mergeGate, ...gates];\n}\n\nconst DEFAULT_TIMEOUT_MS = 60_000;\n\nexport function parseTimeout(timeout: string | undefined): number {\n if (!timeout) return DEFAULT_TIMEOUT_MS;\n const match = timeout.match(/^(\\d+)(s|m)$/);\n if (!match) return DEFAULT_TIMEOUT_MS;\n const value = parseInt(match[1]!, 10);\n if (value <= 0) return DEFAULT_TIMEOUT_MS;\n return match[2] === 'm' ? value * 60_000 : value * 1_000;\n}\n","import { z } from 'zod';\n\nexport const ApiSuccessSchema = <T extends z.ZodType>(dataSchema: T) =>\n z.object({ success: z.literal(true), data: dataSchema });\n\nexport const ApiErrorSchema = z.object({\n success: z.literal(false),\n error: z.object({ code: z.string(), message: z.string() }),\n});\n\nexport const ApiPaginatedSuccessSchema = <T extends z.ZodType>(itemSchema: T) =>\n z.object({\n success: z.literal(true),\n data: z.array(itemSchema),\n total: z.number().int().min(0),\n page: z.number().int().min(1),\n limit: z.number().int().min(1),\n });\n\n// Derive generic types from schema factories to stay in sync (RV1)\ntype _ApiSuccessBase = z.infer<ReturnType<typeof ApiSuccessSchema<z.ZodUnknown>>>;\nexport type ApiSuccess<T> = Omit<_ApiSuccessBase, 'data'> & { data: T };\n\nexport type ApiError = z.infer<typeof ApiErrorSchema>;\nexport type ApiResponse<T> = ApiSuccess<T> | ApiError;\n\ntype _ApiPaginatedBase = z.infer<\n ReturnType<typeof ApiPaginatedSuccessSchema<z.ZodUnknown>>\n>;\nexport type ApiPaginatedSuccess<T> = Omit<_ApiPaginatedBase, 'data'> & {\n data: T[];\n};\n","import { z } from 'zod';\n\nexport const IdSchema = z.string().uuid();\nexport type Id = z.infer<typeof IdSchema>;\n\nexport const SortOrderSchema = z.enum(['asc', 'desc']);\nexport type SortOrder = z.infer<typeof SortOrderSchema>;\n\nexport const PaginationParamsSchema = z.object({\n page: z.coerce.number().int().min(1).default(1),\n limit: z.coerce.number().int().min(1).max(100).default(20),\n sort_by: z.string().optional(),\n sort_order: SortOrderSchema.default('asc'),\n});\nexport type PaginationParams = z.infer<typeof PaginationParamsSchema>;\n\nexport const TimestampsSchema = z.object({\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type Timestamps = z.infer<typeof TimestampsSchema>;\n","import { z } from 'zod';\n\nexport const UserProfileSchema = z.object({\n id: z.string().uuid(),\n display_name: z.string().min(1),\n avatar_url: z.string().url().nullable(),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type UserProfile = z.infer<typeof UserProfileSchema>;\n\nexport const CreateUserProfileSchema = z.object({\n display_name: z.string().min(1),\n avatar_url: z.string().url().nullable().optional(),\n});\nexport type CreateUserProfile = z.infer<typeof CreateUserProfileSchema>;\n\nexport const UpdateUserProfileSchema = z.object({\n display_name: z.string().min(1).optional(),\n avatar_url: z.string().url().nullable().optional(),\n});\nexport type UpdateUserProfile = z.infer<typeof UpdateUserProfileSchema>;\n","import { z } from 'zod';\nimport { PALETTE_KEYS } from './palette.js';\n\nexport const ProjectRoleSchema = z.enum(['owner', 'admin', 'editor', 'viewer']);\nexport type ProjectRole = z.infer<typeof ProjectRoleSchema>;\n\nexport const ProjectSchema = z.object({\n id: z.string().uuid(),\n name: z.string().min(1),\n owner_id: z.string().uuid(),\n icon: z.string().nullable().default(null),\n color: z.string().nullable().default(null),\n ticket_prefix: z.string().regex(/^[A-Z]{2,10}$/),\n ticket_counter: z.number().int().nonnegative(),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type Project = z.infer<typeof ProjectSchema>;\n\nexport const ProjectWithRoleSchema = ProjectSchema.extend({\n role: ProjectRoleSchema,\n});\nexport type ProjectWithRole = z.infer<typeof ProjectWithRoleSchema>;\n\nexport const CreateProjectSchema = z.object({\n name: z.string().trim().min(1).max(100),\n ticket_prefix: z.string().regex(/^[A-Z]{2,10}$/),\n});\nexport type CreateProject = z.infer<typeof CreateProjectSchema>;\n\nconst IconSchema = z.string().min(1).refine(\n (val) => val.length <= 3 || val.includes('/') || val.includes('.'),\n 'Must be 1-3 character initials or a storage path',\n);\n\nexport const UpdateProjectSchema = z.object({\n name: z.string().trim().min(1).max(100).optional(),\n icon: IconSchema.nullable().optional(),\n color: z.enum(PALETTE_KEYS).nullable().optional(),\n ticket_prefix: z.string().regex(/^[A-Z]{2,10}$/).optional(),\n});\nexport type UpdateProject = z.infer<typeof UpdateProjectSchema>;\n\nexport const DeleteProjectPreviewSchema = z.object({\n boards: z.number().int().nonnegative(),\n tickets: z.number().int().nonnegative(),\n documents: z.number().int().nonnegative(),\n doc_spaces: z.number().int().nonnegative(),\n fields: z.number().int().nonnegative(),\n members: z.number().int().nonnegative(),\n conversations: z.number().int().nonnegative(),\n});\nexport type DeleteProjectPreview = z.infer<typeof DeleteProjectPreviewSchema>;\n","export const PALETTE_KEYS = [\n 'red-500',\n 'orange-500',\n 'amber-500',\n 'yellow-500',\n 'lime-500',\n 'green-500',\n 'emerald-500',\n 'teal-500',\n 'cyan-500',\n 'sky-500',\n 'blue-500',\n 'indigo-500',\n 'violet-500',\n 'purple-500',\n 'fuchsia-500',\n 'pink-500',\n 'rose-500',\n 'stone-500',\n 'zinc-500',\n] as const;\n\nexport type PaletteKey = (typeof PALETTE_KEYS)[number];\n\nexport const COLOR_MAP: Record<PaletteKey, string> = {\n 'red-500': 'bg-red-500',\n 'orange-500': 'bg-orange-500',\n 'amber-500': 'bg-amber-500',\n 'yellow-500': 'bg-yellow-500',\n 'lime-500': 'bg-lime-500',\n 'green-500': 'bg-green-500',\n 'emerald-500': 'bg-emerald-500',\n 'teal-500': 'bg-teal-500',\n 'cyan-500': 'bg-cyan-500',\n 'sky-500': 'bg-sky-500',\n 'blue-500': 'bg-blue-500',\n 'indigo-500': 'bg-indigo-500',\n 'violet-500': 'bg-violet-500',\n 'purple-500': 'bg-purple-500',\n 'fuchsia-500': 'bg-fuchsia-500',\n 'pink-500': 'bg-pink-500',\n 'rose-500': 'bg-rose-500',\n 'stone-500': 'bg-stone-500',\n 'zinc-500': 'bg-zinc-500',\n};\n","import { z } from 'zod';\nimport { ProjectRoleSchema } from './project.schema.js';\nimport { UserProfileSchema } from './user.schema.js';\n\nexport const ProjectMemberSchema = z.object({\n id: z.string().uuid(),\n project_id: z.string().uuid(),\n user_id: z.string().uuid(),\n role: ProjectRoleSchema,\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type ProjectMember = z.infer<typeof ProjectMemberSchema>;\n\nexport const ProjectMemberWithProfileSchema = ProjectMemberSchema.extend({\n user: UserProfileSchema,\n});\nexport type ProjectMemberWithProfile = z.infer<typeof ProjectMemberWithProfileSchema>;\n\nexport const UpdateProjectMemberSchema = z.object({\n role: z.enum(['admin', 'editor', 'viewer']),\n});\nexport type UpdateProjectMember = z.infer<typeof UpdateProjectMemberSchema>;\n","import { z } from 'zod';\nimport { UserProfileSchema } from './user.schema.js';\n\nexport const InvitationStatusSchema = z.enum(['pending', 'accepted', 'declined', 'revoked']);\nexport type InvitationStatus = z.infer<typeof InvitationStatusSchema>;\n\nexport const ProjectInvitationSchema = z.object({\n id: z.string().uuid(),\n project_id: z.string().uuid(),\n invited_by: z.string().uuid(),\n email: z.string().email(),\n role: z.enum(['admin', 'editor', 'viewer']),\n token: z.string(),\n status: InvitationStatusSchema,\n expires_at: z.string().datetime({ offset: true }),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type ProjectInvitation = z.infer<typeof ProjectInvitationSchema>;\n\nexport const ProjectInvitationWithInviterSchema = ProjectInvitationSchema.extend({\n inviter: UserProfileSchema,\n});\nexport type ProjectInvitationWithInviter = z.infer<typeof ProjectInvitationWithInviterSchema>;\n\nexport const CreateProjectInvitationSchema = z.object({\n email: z.string().email(),\n role: z.enum(['admin', 'editor', 'viewer']).default('editor'),\n});\nexport type CreateProjectInvitation = z.infer<typeof CreateProjectInvitationSchema>;\n","import { z } from 'zod';\nimport { BoardRoleSchema } from './board-member.schema.js';\nimport { PALETTE_KEYS } from './palette.js';\n\nexport const BoardVisibilitySchema = z.enum(['public', 'private']);\nexport type BoardVisibility = z.infer<typeof BoardVisibilitySchema>;\n\nexport const BoardSchema = z.object({\n id: z.string().uuid(),\n project_id: z.string().uuid(),\n name: z.string().min(1),\n visibility: BoardVisibilitySchema,\n icon: z.string().nullable().default(null),\n color: z.string().nullable().default(null),\n circuit_breaker_threshold: z.number().int().positive().nullable().default(null),\n circuit_breaker_target_id: z.string().uuid().nullable().default(null),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type Board = z.infer<typeof BoardSchema>;\n\nexport const BoardWithRoleSchema = BoardSchema.extend({\n role: BoardRoleSchema,\n});\nexport type BoardWithRole = z.infer<typeof BoardWithRoleSchema>;\n\nexport const CreateBoardSchema = z.object({\n name: z.string().min(1).max(100),\n create_default_columns: z.boolean().optional().default(false),\n visibility: BoardVisibilitySchema.optional().default('private'),\n});\nexport type CreateBoard = z.infer<typeof CreateBoardSchema>;\n\nconst IconSchema = z.string().min(1).refine(\n (val) => val.length <= 3 || val.includes('/') || val.includes('.'),\n 'Must be 1-3 character initials or a storage path',\n);\n\nexport const UpdateBoardSchema = z.object({\n name: z.string().min(1).max(100).optional(),\n visibility: BoardVisibilitySchema.optional(),\n icon: IconSchema.nullable().optional(),\n color: z.enum(PALETTE_KEYS).nullable().optional(),\n circuit_breaker_threshold: z.number().int().positive().nullable().optional(),\n circuit_breaker_target_id: z.string().uuid().nullable().optional(),\n});\nexport type UpdateBoard = z.infer<typeof UpdateBoardSchema>;\n\nexport const TicketActionSchema = z.enum(['move_to_backlog', 'archive', 'delete']);\nexport type TicketAction = z.infer<typeof TicketActionSchema>;\n\nexport const DeleteBoardBodySchema = z.object({\n ticket_action: TicketActionSchema.default('move_to_backlog'),\n});\nexport type DeleteBoardBody = z.infer<typeof DeleteBoardBodySchema>;\n\nexport const DeleteBoardPreviewSchema = z.object({\n tickets: z.number().int().nonnegative(),\n columns: z.number().int().nonnegative(),\n transition_rules: z.number().int().nonnegative(),\n});\nexport type DeleteBoardPreview = z.infer<typeof DeleteBoardPreviewSchema>;\n","import { z } from 'zod';\nimport { UserProfileSchema } from './user.schema.js';\n\nexport const BoardRoleSchema = z.enum(['owner', 'admin', 'editor', 'viewer']);\nexport type BoardRole = z.infer<typeof BoardRoleSchema>;\n\nexport const BoardMemberSchema = z.object({\n id: z.string().uuid(),\n board_id: z.string().uuid(),\n user_id: z.string().uuid(),\n role: BoardRoleSchema,\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type BoardMember = z.infer<typeof BoardMemberSchema>;\n\nexport const BoardMemberWithProfileSchema = BoardMemberSchema.extend({\n user: UserProfileSchema,\n});\nexport type BoardMemberWithProfile = z.infer<typeof BoardMemberWithProfileSchema>;\n\nexport const UpdateBoardMemberSchema = z.object({\n role: z.enum(['admin', 'editor', 'viewer']),\n});\nexport type UpdateBoardMember = z.infer<typeof UpdateBoardMemberSchema>;\n\nexport const AddBoardMemberSchema = z.object({\n user_id: z.string().uuid(),\n role: z.enum(['admin', 'editor', 'viewer']),\n});\nexport type AddBoardMember = z.infer<typeof AddBoardMemberSchema>;\n","import { z } from 'zod';\nimport { TicketActionSchema } from './board.schema.js';\n\nexport const ColumnTypeSchema = z.enum(['start', 'in_progress', 'done', 'default', 'evaluator']);\nexport type ColumnType = z.infer<typeof ColumnTypeSchema>;\n\nexport const ArchiveModeSchema = z.enum(['off', 'immediate', 'delayed', 'manual']);\nexport type ArchiveMode = z.infer<typeof ArchiveModeSchema>;\n\nexport const ColumnSchema = z.object({\n id: z.string().uuid(),\n board_id: z.string().uuid(),\n name: z.string().min(1),\n color: z.string(),\n position: z.number().int(),\n description: z.string().nullable(),\n column_type: ColumnTypeSchema,\n wip_limit: z.number().int().nullable(),\n default_assignee_id: z.string().uuid().nullable(),\n archive_mode: ArchiveModeSchema.default('off'),\n archive_delay_hours: z.number().positive().nullable().default(null),\n archive_overflow_limit: z.number().int().positive().nullable().default(null),\n prompt_document_id: z.string().uuid().nullable().default(null),\n goal: z.string().nullable().default(null),\n agent_config: z.record(z.string(), z.unknown()).nullable().default(null),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type Column = z.infer<typeof ColumnSchema>;\n\nexport const CreateColumnSchema = z.object({\n name: z.string().min(1).max(100),\n color: z.string().optional(),\n});\nexport type CreateColumn = z.infer<typeof CreateColumnSchema>;\n\nexport const UpdateColumnSchema = z.object({\n name: z.string().min(1).max(100).optional(),\n color: z.string().optional(),\n description: z.string().nullable().optional(),\n column_type: ColumnTypeSchema.optional(),\n wip_limit: z.number().int().nullable().optional(),\n default_assignee_id: z.string().uuid().nullable().optional(),\n archive_mode: ArchiveModeSchema.optional(),\n archive_delay_hours: z.number().positive().nullable().optional(),\n archive_overflow_limit: z.number().int().positive().nullable().optional(),\n prompt_document_id: z.string().uuid().nullable().optional(),\n goal: z.string().max(1000).nullable().optional(),\n agent_config: z.record(z.string(), z.unknown()).nullable().optional(),\n}).superRefine((data, ctx) => {\n if (data.archive_mode === 'delayed' && data.archive_delay_hours == null) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'archive_delay_hours is required when archive_mode is delayed',\n path: ['archive_delay_hours'],\n });\n }\n});\nexport type UpdateColumn = z.infer<typeof UpdateColumnSchema>;\n\nexport const ReorderColumnsSchema = z.array(\n z.object({\n id: z.string().uuid(),\n position: z.number().int().nonnegative(),\n })\n);\nexport type ReorderColumns = z.infer<typeof ReorderColumnsSchema>;\n\nexport const DeleteColumnBodySchema = z.object({\n ticket_action: TicketActionSchema.default('move_to_backlog'),\n});\nexport type DeleteColumnBody = z.infer<typeof DeleteColumnBodySchema>;\n\nexport const DeleteColumnPreviewSchema = z.object({\n tickets: z.number().int().nonnegative(),\n transition_rules_broken: z.number().int().nonnegative(),\n field_requirements_broken: z.number().int().nonnegative(),\n});\nexport type DeleteColumnPreview = z.infer<typeof DeleteColumnPreviewSchema>;\n","import { z } from 'zod';\nimport { UserProfileSchema } from './user.schema.js';\n\nexport const TicketSchema = z.object({\n id: z.string().uuid(),\n board_id: z.string().uuid().nullable(),\n column_id: z.string().uuid().nullable(),\n project_id: z.string().uuid(),\n ticket_number: z.number().int().positive(),\n title: z.string().min(1).max(500),\n description: z.string().max(10000),\n position: z.number().int(),\n assignee_id: z.string().uuid().nullable(),\n reporter_id: z.string().uuid(),\n custom_fields: z.record(z.string(), z.unknown()).default({}),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n archived_at: z.string().datetime({ offset: true }).nullable().default(null),\n column_entered_at: z.string().datetime({ offset: true }).nullable().default(null),\n first_active_at: z.string().datetime({ offset: true }).nullable().default(null),\n done_at: z.string().datetime({ offset: true }).nullable().default(null),\n backward_transitions: z.number().int().default(0),\n parent_id: z.string().uuid().nullable().default(null),\n});\nexport type Ticket = z.infer<typeof TicketSchema>;\n\nexport const TicketWithProfilesSchema = TicketSchema.extend({\n assignee: UserProfileSchema.nullable(),\n reporter: UserProfileSchema,\n});\nexport type TicketWithProfiles = z.infer<typeof TicketWithProfilesSchema>;\n\nexport const CreateTicketSchema = z.object({\n board_id: z.string().uuid().nullable().optional().default(null),\n column_id: z.string().uuid().nullable().optional().default(null),\n title: z.string().min(1).max(500),\n description: z.string().max(10000).optional(),\n assignee_id: z.string().uuid().nullable().optional(),\n field_values: z.record(z.string(), z.unknown()).optional(),\n parent_id: z.string().uuid().nullable().optional(),\n});\nexport type CreateTicket = z.infer<typeof CreateTicketSchema>;\n\nexport const UpdateTicketSchema = z.object({\n title: z.string().min(1).max(500).optional(),\n description: z.string().max(10000).optional(),\n assignee_id: z.string().uuid().nullable().optional(),\n parent_id: z.string().uuid().nullable().optional(),\n});\nexport type UpdateTicket = z.infer<typeof UpdateTicketSchema>;\n\nexport const MoveTicketSchema = z.object({\n column_id: z.string().uuid().nullable(),\n position: z.number().int().nonnegative(),\n handoff: z.record(z.string(), z.unknown()).optional(),\n force: z.boolean().optional().default(false),\n field_values: z.record(z.string(), z.unknown()).optional()\n .describe('Map of field name → value. Names are resolved to field IDs server-side.'),\n});\nexport type MoveTicket = z.infer<typeof MoveTicketSchema>;\n\nexport const MoveToBoardSchema = z.object({\n board_id: z.string().uuid(),\n column_id: z.string().uuid(),\n});\nexport type MoveToBoard = z.infer<typeof MoveToBoardSchema>;\n\nexport const CreateBacklogTicketSchema = z.object({\n title: z.string().min(1).max(500),\n description: z.string().max(10000).optional(),\n assignee_id: z.string().uuid().nullable().optional(),\n});\nexport type CreateBacklogTicket = z.infer<typeof CreateBacklogTicketSchema>;\n\nexport const ReorderTicketsSchema = z.array(\n z.object({\n id: z.string().uuid(),\n column_id: z.string().uuid().nullable(),\n position: z.number().int().nonnegative(),\n })\n);\nexport type ReorderTickets = z.infer<typeof ReorderTicketsSchema>;\n\nexport const DeleteTicketPreviewSchema = z.object({\n comments: z.number().int().nonnegative(),\n attachments: z.number().int().nonnegative(),\n});\nexport type DeleteTicketPreview = z.infer<typeof DeleteTicketPreviewSchema>;\n","import { z } from 'zod';\nimport { UserProfileSchema } from './user.schema.js';\n\nexport const CommentSchema = z.object({\n id: z.string().uuid(),\n ticket_id: z.string().uuid(),\n author_id: z.string().uuid(),\n body: z.string().min(1),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n pinned: z.boolean().default(false),\n});\nexport type Comment = z.infer<typeof CommentSchema>;\n\nexport const CommentWithAuthorSchema = CommentSchema.extend({\n author: UserProfileSchema,\n});\nexport type CommentWithAuthor = z.infer<typeof CommentWithAuthorSchema>;\n\nexport const CreateCommentSchema = z.object({\n body: z.string().min(1).max(10000),\n});\nexport type CreateComment = z.infer<typeof CreateCommentSchema>;\n\nexport const UpdateCommentSchema = z.object({\n body: z.string().min(1).max(10000).optional(),\n pinned: z.boolean().optional(),\n});\nexport type UpdateComment = z.infer<typeof UpdateCommentSchema>;\n","import { z } from 'zod';\n\nexport const WelcomeEmailJobDataSchema = z.object({\n userId: z.string().uuid(),\n email: z.string().email(),\n displayName: z.string(),\n});\nexport type WelcomeEmailJobData = z.infer<typeof WelcomeEmailJobDataSchema>;\n\nexport const InvitationEmailJobDataSchema = z.object({\n email: z.string().email(),\n projectName: z.string(),\n token: z.string(),\n role: z.string(),\n invitedBy: z.string().uuid(),\n});\nexport type InvitationEmailJobData = z.infer<typeof InvitationEmailJobDataSchema>;\n","import { z } from 'zod';\n\nexport const UploadResultSchema = z.object({\n path: z.string(),\n url: z.string().url().nullable(),\n});\nexport type UploadResult = z.infer<typeof UploadResultSchema>;\n","import { z } from 'zod';\n\nexport const TicketAttachmentSchema = z.object({\n id: z.string().uuid(),\n ticket_id: z.string().uuid(),\n uploader_id: z.string().uuid(),\n storage_path: z.string().min(1),\n file_name: z.string().min(1),\n mime_type: z.string().min(1),\n file_size: z.number().int().positive(),\n created_at: z.string().datetime({ offset: true }),\n});\nexport type TicketAttachment = z.infer<typeof TicketAttachmentSchema>;\n\nexport const TicketAttachmentWithUrlSchema = TicketAttachmentSchema.extend({\n url: z.string(),\n});\nexport type TicketAttachmentWithUrl = z.infer<typeof TicketAttachmentWithUrlSchema>;\n\nexport const CreateTicketAttachmentSchema = z.object({\n storage_path: z.string().min(1),\n file_name: z.string().min(1),\n mime_type: z.string().min(1),\n file_size: z.number().int().positive(),\n});\nexport type CreateTicketAttachment = z.infer<typeof CreateTicketAttachmentSchema>;\n","import { z } from 'zod';\nimport { BoardSchema, BoardWithRoleSchema } from './board.schema.js';\nimport { ColumnSchema } from './column.schema.js';\nimport { TicketWithProfilesSchema } from './ticket.schema.js';\nimport { CommentWithAuthorSchema } from './comment.schema.js';\nimport { TicketAttachmentWithUrlSchema } from './ticket-attachment.schema.js';\nimport { FieldDefinitionSchema } from './field-definition.schema.js';\nimport { BoardFieldOverrideSchema } from './field-override.schema.js';\nimport { TransitionRuleSchema } from './transition-rule.schema.js';\nimport { BoardMemberWithProfileSchema } from './board-member.schema.js';\nimport { SignalSchema } from './signal.schema.js';\nimport { InvocationTypeSchema, ExitReasonSchema } from './pipeline-session.schema.js';\nimport { FiringConstraintSchema } from './firing-constraint.schema.js';\nimport { PipelineEventSchema } from './pipeline-event.schema.js';\n\n// ── Actor ──\n\nexport const WsActorSchema = z\n .object({\n id: z.string().uuid(),\n displayName: z.string(),\n })\n .nullable();\nexport type WsActor = z.infer<typeof WsActorSchema>;\n\n// ── Client Events ──\n\nconst WsBoardSubscribeSchema = z.object({\n type: z.literal('board:subscribe'),\n payload: z.object({\n boardId: z.string().uuid(),\n projectId: z.string().uuid(),\n }),\n});\n\nconst WsBoardUnsubscribeSchema = z.object({\n type: z.literal('board:unsubscribe'),\n payload: z.object({\n boardId: z.string().uuid(),\n }),\n});\n\n// ── Client Events — Pipeline ──\n\n// Shared constraint for pipeline identifiers — prevents Redis key injection\nconst pipelineIdString = z.string().min(1).max(128).regex(/^[a-zA-Z0-9_-]+$/);\n\nconst WsPipelineStreamClientSchema = z.object({\n type: z.literal('pipeline:stream'),\n payload: z.object({\n boardId: z.string().uuid(),\n ticketId: z.string().uuid().nullable(),\n columnId: z.string().uuid().nullable(),\n runId: pipelineIdString,\n sessionId: pipelineIdString,\n event: z.record(z.unknown()),\n }),\n});\n\nconst WsPipelineSessionStartClientSchema = z.object({\n type: z.literal('pipeline:session-start'),\n payload: z.object({\n boardId: z.string().uuid(),\n ticketId: z.string().uuid().nullable(),\n columnId: z.string().uuid().nullable(),\n runId: pipelineIdString,\n sessionId: pipelineIdString,\n model: z.string(),\n invocationType: InvocationTypeSchema,\n iteration: z.number().int().nullable(),\n }),\n});\n\nconst WsPipelineSessionEndClientSchema = z.object({\n type: z.literal('pipeline:session-end'),\n payload: z.object({\n boardId: z.string().uuid(),\n runId: pipelineIdString,\n exitReason: ExitReasonSchema.nullable(),\n tokensIn: z.number().int().nonnegative(),\n tokensOut: z.number().int().nonnegative(),\n toolCallCount: z.number().int().nonnegative(),\n durationMs: z.number().int().nonnegative(),\n }),\n});\n\nconst WsPipelineStoppedClientSchema = z.object({\n type: z.literal('pipeline:stopped'),\n payload: z.object({\n boardId: z.string().uuid(),\n }),\n});\n\nexport const WsBoardClientEvents = [\n WsBoardSubscribeSchema,\n WsBoardUnsubscribeSchema,\n WsPipelineStreamClientSchema,\n WsPipelineSessionStartClientSchema,\n WsPipelineSessionEndClientSchema,\n WsPipelineStoppedClientSchema,\n] as const;\n\n// ── Server Events — Board ──\n\nconst WsBoardUpdatedSchema = z.object({\n type: z.literal('board:updated'),\n payload: z.object({\n board: BoardWithRoleSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsBoardDeletedSchema = z.object({\n type: z.literal('board:deleted'),\n payload: z.object({\n boardId: z.string().uuid(),\n actor: WsActorSchema,\n }),\n});\n\nconst WsBoardSubscribedSchema = z.object({\n type: z.literal('board:subscribed'),\n payload: z.object({\n boardId: z.string().uuid(),\n }),\n});\n\nconst WsBoardUnsubscribedSchema = z.object({\n type: z.literal('board:unsubscribed'),\n payload: z.object({\n boardId: z.string().uuid(),\n }),\n});\n\nconst WsBoardAccessRevokedSchema = z.object({\n type: z.literal('board:access-revoked'),\n payload: z.object({\n boardId: z.string().uuid(),\n reason: z.string(),\n }),\n});\n\n// ── Server Events — Column ──\n\nconst WsColumnCreatedSchema = z.object({\n type: z.literal('column:created'),\n payload: z.object({\n boardId: z.string().uuid(),\n column: ColumnSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsColumnUpdatedSchema = z.object({\n type: z.literal('column:updated'),\n payload: z.object({\n boardId: z.string().uuid(),\n column: ColumnSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsColumnDeletedSchema = z.object({\n type: z.literal('column:deleted'),\n payload: z.object({\n columnId: z.string().uuid(),\n ticketAction: z.enum(['delete', 'archive', 'move_to_backlog']),\n ticketIds: z.array(z.string().uuid()),\n actor: WsActorSchema,\n }),\n});\n\nconst WsColumnReorderedSchema = z.object({\n type: z.literal('column:reordered'),\n payload: z.object({\n boardId: z.string().uuid(),\n columns: z.array(z.object({ id: z.string().uuid(), position: z.number().int() })),\n actor: WsActorSchema,\n }),\n});\n\n// ── Server Events — Ticket ──\n\nconst WsTicketCreatedSchema = z.object({\n type: z.literal('ticket:created'),\n payload: z.object({\n boardId: z.string().uuid(),\n columnId: z.string().uuid().nullable(),\n ticket: TicketWithProfilesSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsTicketUpdatedSchema = z.object({\n type: z.literal('ticket:updated'),\n payload: z.object({\n boardId: z.string().uuid(),\n ticket: TicketWithProfilesSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsTicketDeletedSchema = z.object({\n type: z.literal('ticket:deleted'),\n payload: z.object({\n boardId: z.string().uuid(),\n ticketId: z.string().uuid(),\n actor: WsActorSchema,\n }),\n});\n\nconst WsTicketMovedSchema = z.object({\n type: z.literal('ticket:moved'),\n payload: z.object({\n boardId: z.string().uuid(),\n ticket: TicketWithProfilesSchema,\n fromColumnId: z.string().uuid().nullable(),\n actor: WsActorSchema,\n }),\n});\n\nconst WsTicketReorderedSchema = z.object({\n type: z.literal('ticket:reordered'),\n payload: z.object({\n boardId: z.string().uuid(),\n tickets: z.array(z.object({\n id: z.string().uuid(),\n columnId: z.string().uuid().nullable(),\n position: z.number().int(),\n })),\n actor: WsActorSchema,\n }),\n});\n\nconst WsTicketArchivedSchema = z.object({\n type: z.literal('ticket:archived'),\n payload: z.object({\n boardId: z.string().uuid(),\n ticketId: z.string().uuid(),\n archivedAt: z.string().datetime({ offset: true }),\n actor: WsActorSchema,\n }),\n});\n\nconst WsTicketUnarchivedSchema = z.object({\n type: z.literal('ticket:unarchived'),\n payload: z.object({\n ticket: TicketWithProfilesSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsTicketBulkArchivedSchema = z.object({\n type: z.literal('ticket:bulk-archived'),\n payload: z.object({\n columnId: z.string().uuid(),\n ticketIds: z.array(z.string().uuid()),\n actor: WsActorSchema,\n }),\n});\n\n// ── Server Events — Comment ──\n\nconst WsCommentCreatedSchema = z.object({\n type: z.literal('comment:created'),\n payload: z.object({\n boardId: z.string().uuid(),\n ticketId: z.string().uuid(),\n comment: CommentWithAuthorSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsCommentUpdatedSchema = z.object({\n type: z.literal('comment:updated'),\n payload: z.object({\n boardId: z.string().uuid(),\n ticketId: z.string().uuid(),\n comment: CommentWithAuthorSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsCommentDeletedSchema = z.object({\n type: z.literal('comment:deleted'),\n payload: z.object({\n boardId: z.string().uuid(),\n ticketId: z.string().uuid(),\n commentId: z.string().uuid(),\n actor: WsActorSchema,\n }),\n});\n\n// ── Server Events — Attachment ──\n\nconst WsAttachmentCreatedSchema = z.object({\n type: z.literal('attachment:created'),\n payload: z.object({\n boardId: z.string().uuid(),\n ticketId: z.string().uuid(),\n attachment: TicketAttachmentWithUrlSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsAttachmentDeletedSchema = z.object({\n type: z.literal('attachment:deleted'),\n payload: z.object({\n boardId: z.string().uuid(),\n ticketId: z.string().uuid(),\n attachmentId: z.string().uuid(),\n actor: WsActorSchema,\n }),\n});\n\n// ── Server Events — Field Value ──\n\nconst WsFieldValueUpdatedSchema = z.object({\n type: z.literal('field-value:updated'),\n payload: z.object({\n ticketId: z.string().uuid(),\n fieldId: z.string().uuid(),\n value: z.unknown(),\n customFields: z.record(z.string(), z.unknown()),\n actor: WsActorSchema,\n }),\n});\n\nconst WsFieldValueRemovedSchema = z.object({\n type: z.literal('field-value:removed'),\n payload: z.object({\n ticketId: z.string().uuid(),\n fieldId: z.string().uuid(),\n customFields: z.record(z.string(), z.unknown()),\n actor: WsActorSchema,\n }),\n});\n\n// ── Server Events — Field Definition ──\n\nconst WsFieldDefinitionCreatedSchema = z.object({\n type: z.literal('field-definition:created'),\n payload: z.object({\n projectId: z.string().uuid(),\n field: FieldDefinitionSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsFieldDefinitionUpdatedSchema = z.object({\n type: z.literal('field-definition:updated'),\n payload: z.object({\n projectId: z.string().uuid(),\n field: FieldDefinitionSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsFieldDefinitionDeletedSchema = z.object({\n type: z.literal('field-definition:deleted'),\n payload: z.object({\n projectId: z.string().uuid(),\n fieldId: z.string().uuid(),\n actor: WsActorSchema,\n }),\n});\n\nconst WsFieldDefinitionReorderedSchema = z.object({\n type: z.literal('field-definition:reordered'),\n payload: z.object({\n projectId: z.string().uuid(),\n fields: z.array(z.object({ id: z.string().uuid(), position: z.number().int() })),\n actor: WsActorSchema,\n }),\n});\n\n// ── Server Events — Field Override ──\n\nconst WsFieldOverrideUpdatedSchema = z.object({\n type: z.literal('field-override:updated'),\n payload: z.object({\n boardId: z.string().uuid(),\n fieldOverride: BoardFieldOverrideSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsFieldOverrideDeletedSchema = z.object({\n type: z.literal('field-override:deleted'),\n payload: z.object({\n boardId: z.string().uuid(),\n fieldId: z.string().uuid(),\n actor: WsActorSchema,\n }),\n});\n\n// ── Server Events — Transition Rules ──\n\nconst WsTransitionRulesUpdatedSchema = z.object({\n type: z.literal('transition-rules:updated'),\n payload: z.object({\n boardId: z.string().uuid(),\n rules: z.array(TransitionRuleSchema),\n actor: WsActorSchema,\n }),\n});\n\n// ── Server Events — Board Membership ──\n\nconst WsBoardMemberAddedSchema = z.object({\n type: z.literal('board-member:added'),\n payload: z.object({\n boardId: z.string().uuid(),\n member: BoardMemberWithProfileSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsBoardMemberUpdatedSchema = z.object({\n type: z.literal('board-member:updated'),\n payload: z.object({\n boardId: z.string().uuid(),\n member: BoardMemberWithProfileSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsBoardMemberRemovedSchema = z.object({\n type: z.literal('board-member:removed'),\n payload: z.object({\n boardId: z.string().uuid(),\n userId: z.string().uuid(),\n actor: WsActorSchema,\n }),\n});\n\n// ── Server Events — Backlog ──\n\nconst WsBacklogTicketAddedSchema = z.object({\n type: z.literal('backlog:ticket-added'),\n payload: z.object({\n ticket: TicketWithProfilesSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsBacklogTicketRemovedSchema = z.object({\n type: z.literal('backlog:ticket-removed'),\n payload: z.object({\n ticketId: z.string().uuid(),\n actor: WsActorSchema,\n }),\n});\n\nconst WsBacklogTicketUpdatedSchema = z.object({\n type: z.literal('backlog:ticket-updated'),\n payload: z.object({\n ticket: TicketWithProfilesSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsBacklogTicketArchivedSchema = z.object({\n type: z.literal('backlog:ticket-archived'),\n payload: z.object({\n ticketId: z.string().uuid(),\n actor: WsActorSchema,\n }),\n});\n\nconst WsBacklogTicketUnarchivedSchema = z.object({\n type: z.literal('backlog:ticket-unarchived'),\n payload: z.object({\n ticket: TicketWithProfilesSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsBacklogTicketsAddedSchema = z.object({\n type: z.literal('backlog:tickets-added'),\n payload: z.object({\n ticketIds: z.array(z.string().uuid()),\n projectId: z.string().uuid(),\n }),\n});\n\n// ── Server Events — Board List ──\n\nconst WsBoardlistCreatedSchema = z.object({\n type: z.literal('boardlist:created'),\n payload: z.object({\n projectId: z.string().uuid(),\n board: BoardSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsBoardlistUpdatedSchema = z.object({\n type: z.literal('boardlist:updated'),\n payload: z.object({\n projectId: z.string().uuid(),\n board: BoardSchema.partial().extend({ id: z.string().uuid() }),\n actor: WsActorSchema,\n }),\n});\n\nconst WsBoardlistDeletedSchema = z.object({\n type: z.literal('boardlist:deleted'),\n payload: z.object({\n projectId: z.string().uuid(),\n boardId: z.string().uuid(),\n actor: WsActorSchema,\n }),\n});\n\n// ── Server Events — Signal ──\n\nconst WsSignalCreatedSchema = z.object({\n type: z.literal('signal:created'),\n payload: z.object({\n signal: SignalSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsSignalUpdatedSchema = z.object({\n type: z.literal('signal:updated'),\n payload: z.object({\n signal: SignalSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsSignalDeletedSchema = z.object({\n type: z.literal('signal:deleted'),\n payload: z.object({\n signalId: z.string().uuid(),\n actor: WsActorSchema,\n }),\n});\n\nconst WsSignalPromotedSchema = z.object({\n type: z.literal('signal:promoted'),\n payload: z.object({\n signal: SignalSchema,\n actor: WsActorSchema,\n }),\n});\n\n// ── Server Events — Firing Constraints ──\n\nconst WsFiringConstraintCreatedSchema = z.object({\n type: z.literal('firing_constraint:created'),\n payload: z.object({\n boardId: z.string().uuid(),\n constraint: FiringConstraintSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsFiringConstraintUpdatedSchema = z.object({\n type: z.literal('firing_constraint:updated'),\n payload: z.object({\n boardId: z.string().uuid(),\n constraint: FiringConstraintSchema,\n actor: WsActorSchema,\n }),\n});\n\nconst WsFiringConstraintDeletedSchema = z.object({\n type: z.literal('firing_constraint:deleted'),\n payload: z.object({\n boardId: z.string().uuid(),\n constraintId: z.string().uuid(),\n actor: WsActorSchema,\n }),\n});\n\n// ── Server Events — Pipeline ──\n\nconst WsPipelineStreamSchema = z.object({\n type: z.literal('pipeline:stream'),\n payload: z.object({\n boardId: z.string().uuid(),\n ticketId: z.string().uuid().nullable(),\n columnId: z.string().uuid().nullable(),\n runId: pipelineIdString,\n sessionId: pipelineIdString,\n event: z.record(z.unknown()),\n }),\n});\n\nconst WsPipelineSessionStartSchema = z.object({\n type: z.literal('pipeline:session-start'),\n payload: z.object({\n boardId: z.string().uuid(),\n ticketId: z.string().uuid().nullable(),\n columnId: z.string().uuid().nullable(),\n runId: pipelineIdString,\n sessionId: pipelineIdString,\n model: z.string(),\n invocationType: InvocationTypeSchema,\n iteration: z.number().int().nullable(),\n }),\n});\n\nconst WsPipelineSessionEndSchema = z.object({\n type: z.literal('pipeline:session-end'),\n payload: z.object({\n boardId: z.string().uuid(),\n runId: pipelineIdString,\n exitReason: ExitReasonSchema.nullable(),\n tokensIn: z.number().int().nonnegative(),\n tokensOut: z.number().int().nonnegative(),\n toolCallCount: z.number().int().nonnegative(),\n durationMs: z.number().int().nonnegative(),\n }),\n});\n\nconst WsPipelineStoppedSchema = z.object({\n type: z.literal('pipeline:stopped'),\n payload: z.object({\n boardId: z.string().uuid(),\n }),\n});\n\nconst WsPipelineEventSchema = z.object({\n type: z.literal('pipeline:event'),\n payload: PipelineEventSchema,\n});\n\n// ── Exported Arrays ──\n\nexport const WsBoardServerEvents = [\n WsBoardUpdatedSchema,\n WsBoardDeletedSchema,\n WsBoardSubscribedSchema,\n WsBoardUnsubscribedSchema,\n WsBoardAccessRevokedSchema,\n WsColumnCreatedSchema,\n WsColumnUpdatedSchema,\n WsColumnDeletedSchema,\n WsColumnReorderedSchema,\n WsTicketCreatedSchema,\n WsTicketUpdatedSchema,\n WsTicketDeletedSchema,\n WsTicketMovedSchema,\n WsTicketReorderedSchema,\n WsTicketArchivedSchema,\n WsTicketUnarchivedSchema,\n WsTicketBulkArchivedSchema,\n WsCommentCreatedSchema,\n WsCommentUpdatedSchema,\n WsCommentDeletedSchema,\n WsAttachmentCreatedSchema,\n WsAttachmentDeletedSchema,\n WsFieldValueUpdatedSchema,\n WsFieldValueRemovedSchema,\n WsFieldDefinitionCreatedSchema,\n WsFieldDefinitionUpdatedSchema,\n WsFieldDefinitionDeletedSchema,\n WsFieldDefinitionReorderedSchema,\n WsFieldOverrideUpdatedSchema,\n WsFieldOverrideDeletedSchema,\n WsTransitionRulesUpdatedSchema,\n WsBoardMemberAddedSchema,\n WsBoardMemberUpdatedSchema,\n WsBoardMemberRemovedSchema,\n WsBacklogTicketAddedSchema,\n WsBacklogTicketRemovedSchema,\n WsBacklogTicketUpdatedSchema,\n WsBacklogTicketArchivedSchema,\n WsBacklogTicketUnarchivedSchema,\n WsBacklogTicketsAddedSchema,\n WsBoardlistCreatedSchema,\n WsBoardlistUpdatedSchema,\n WsBoardlistDeletedSchema,\n WsSignalCreatedSchema,\n WsSignalUpdatedSchema,\n WsSignalDeletedSchema,\n WsSignalPromotedSchema,\n WsFiringConstraintCreatedSchema,\n WsFiringConstraintUpdatedSchema,\n WsFiringConstraintDeletedSchema,\n WsPipelineStreamSchema,\n WsPipelineSessionStartSchema,\n WsPipelineSessionEndSchema,\n WsPipelineStoppedSchema,\n WsPipelineEventSchema,\n] as const;\n\n// ── Derived Types ──\n\nexport type WsBoardSubscribe = z.infer<typeof WsBoardSubscribeSchema>;\nexport type WsBoardUnsubscribe = z.infer<typeof WsBoardUnsubscribeSchema>;\nexport type WsPipelineStreamClient = z.infer<typeof WsPipelineStreamClientSchema>;\nexport type WsPipelineSessionStartClient = z.infer<typeof WsPipelineSessionStartClientSchema>;\nexport type WsPipelineSessionEndClient = z.infer<typeof WsPipelineSessionEndClientSchema>;\nexport type WsPipelineStoppedClient = z.infer<typeof WsPipelineStoppedClientSchema>;\nexport type WsBoardClientEvent =\n | WsBoardSubscribe\n | WsBoardUnsubscribe\n | WsPipelineStreamClient\n | WsPipelineSessionStartClient\n | WsPipelineSessionEndClient\n | WsPipelineStoppedClient;\n\nexport type WsBoardServerEvent = z.infer<\n (typeof WsBoardServerEvents)[number]\n>;\n","import { z } from 'zod';\n\nexport const FieldTypeSchema = z.enum([\n 'short_text',\n 'long_text',\n 'rich_text',\n 'number',\n 'date',\n 'single_select',\n 'multi_select',\n 'checkbox',\n 'user',\n 'ticket_link',\n 'document_link',\n 'github_pr',\n]);\nexport type FieldType = z.infer<typeof FieldTypeSchema>;\n\n// New schema for creating fields — excludes deprecated ticket_link\nexport const CreateFieldTypeSchema = z.enum([\n 'short_text', 'long_text', 'rich_text', 'number', 'date',\n 'single_select', 'multi_select', 'checkbox',\n 'user', 'document_link', 'github_pr',\n]);\nexport type CreateFieldType = z.infer<typeof CreateFieldTypeSchema>;\n\nexport const SelectOptionSchema = z.object({\n id: z.string().uuid(),\n label: z.string().min(1).max(100),\n color: z.string(),\n});\nexport type SelectOption = z.infer<typeof SelectOptionSchema>;\n\nexport const FieldConfigSchema = z.object({\n placeholder: z.string().optional(),\n max_length: z.number().int().positive().optional(),\n regex: z.string().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n decimals: z.number().int().min(0).optional(),\n unit: z.string().optional(),\n allow_past: z.boolean().optional(),\n allow_time: z.boolean().optional(),\n options: z.array(SelectOptionSchema).optional(),\n max_selections: z.number().int().positive().optional(),\n default_checked: z.boolean().optional(),\n scope: z.enum(['board', 'project']).optional(),\n show_checks: z.boolean().optional(),\n show_reviews: z.boolean().optional(),\n}).default({});\nexport type FieldConfig = z.infer<typeof FieldConfigSchema>;\n\nexport const FieldDefinitionSchema = z.object({\n id: z.string().uuid(),\n project_id: z.string().uuid(),\n name: z.string().min(1).max(100),\n type: FieldTypeSchema,\n config: FieldConfigSchema,\n position: z.number().int(),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type FieldDefinition = z.infer<typeof FieldDefinitionSchema>;\n\nexport const CreateFieldDefinitionSchema = z.object({\n name: z.string().min(1).max(100),\n type: FieldTypeSchema,\n config: FieldConfigSchema.optional(),\n});\nexport type CreateFieldDefinition = z.infer<typeof CreateFieldDefinitionSchema>;\n\nexport const UpdateFieldDefinitionSchema = z.object({\n name: z.string().min(1).max(100).optional(),\n config: FieldConfigSchema.optional(),\n position: z.number().int().optional(),\n});\nexport type UpdateFieldDefinition = z.infer<typeof UpdateFieldDefinitionSchema>;\n\nexport const ReorderFieldDefinitionsSchema = z.object({\n items: z.array(\n z.object({\n id: z.string().uuid(),\n position: z.number().int(),\n }),\n ),\n});\nexport type ReorderFieldDefinitions = z.infer<typeof ReorderFieldDefinitionsSchema>;\n\nexport const DeleteFieldDefinitionPreviewSchema = z.object({\n tickets_affected: z.number().int().nonnegative(),\n field_values: z.number().int().nonnegative(),\n board_overrides: z.number().int().nonnegative(),\n});\nexport type DeleteFieldDefinitionPreview = z.infer<typeof DeleteFieldDefinitionPreviewSchema>;\n","import { z } from 'zod';\nimport { SelectOptionSchema, FieldDefinitionSchema } from './field-definition.schema.js';\n\nexport const BoardFieldOverrideSchema = z.object({\n id: z.string().uuid(),\n board_id: z.string().uuid(),\n field_id: z.string().uuid(),\n is_enabled: z.boolean(),\n is_required: z.boolean(),\n show_on_card: z.boolean(),\n position: z.number().int().nullable(),\n default_value: z.unknown().nullable(),\n extra_options: z.array(SelectOptionSchema).nullable(),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type BoardFieldOverride = z.infer<typeof BoardFieldOverrideSchema>;\n\nexport const UpsertFieldOverrideSchema = z.object({\n is_enabled: z.boolean().optional(),\n is_required: z.boolean().optional(),\n show_on_card: z.boolean().optional(),\n position: z.number().int().nullable().optional(),\n default_value: z.unknown().nullable().optional(),\n extra_options: z.array(SelectOptionSchema).nullable().optional(),\n});\nexport type UpsertFieldOverride = z.infer<typeof UpsertFieldOverrideSchema>;\n\nexport const MergedFieldSchema = FieldDefinitionSchema.extend({\n is_enabled: z.boolean().default(true),\n is_required: z.boolean().default(false),\n show_on_card: z.boolean().default(false),\n effective_position: z.number().int(),\n default_value: z.unknown().nullable().default(null),\n extra_options: z.array(SelectOptionSchema).default([]),\n all_options: z.array(SelectOptionSchema).default([]),\n});\nexport type MergedField = z.infer<typeof MergedFieldSchema>;\n","import { z } from 'zod';\n\nexport const TransitionRuleStatusSchema = z.enum(['active', 'broken']);\nexport type TransitionRuleStatus = z.infer<typeof TransitionRuleStatusSchema>;\n\nexport const TransitionRuleSchema = z.object({\n id: z.string().uuid(),\n board_id: z.string().uuid(),\n from_column_id: z.string().uuid().nullable(),\n to_column_id: z.string().uuid().nullable(),\n from_tombstone_id: z.string().uuid().nullable(),\n to_tombstone_id: z.string().uuid().nullable(),\n status: TransitionRuleStatusSchema,\n instruction: z.string().nullable(),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type TransitionRule = z.infer<typeof TransitionRuleSchema>;\n\nexport const TransitionRuleWithTombstoneSchema = TransitionRuleSchema.extend({\n from_tombstone_name: z.string().nullable().default(null),\n to_tombstone_name: z.string().nullable().default(null),\n});\nexport type TransitionRuleWithTombstone = z.infer<typeof TransitionRuleWithTombstoneSchema>;\n\nexport const BulkUpsertTransitionRulesSchema = z.object({\n rules: z.array(\n z.object({\n from_column_id: z.string().uuid().nullable(),\n to_column_id: z.string().uuid(),\n instruction: z.string().nullable().optional(),\n }),\n ),\n});\nexport type BulkUpsertTransitionRules = z.infer<typeof BulkUpsertTransitionRulesSchema>;\n","import { z } from 'zod';\n\nexport const SignalScopeTypeSchema = z.enum(['project', 'board', 'column', 'ticket']);\nexport type SignalScopeType = z.infer<typeof SignalScopeTypeSchema>;\n\nexport const SignalSourceSchema = z.enum(['human', 'agent']);\nexport type SignalSource = z.infer<typeof SignalSourceSchema>;\n\nexport const SignalSchema = z.object({\n id: z.string().uuid(),\n project_id: z.string().uuid(),\n scope_type: SignalScopeTypeSchema,\n scope_id: z.string().uuid(),\n content: z.string().min(1),\n source: SignalSourceSchema,\n created_by: z.string().uuid().nullable(),\n session_id: z.string().uuid().nullable(),\n iteration: z.number().int().nullable(),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type Signal = z.infer<typeof SignalSchema>;\n\nexport const CreateSignalSchema = z.object({\n scopeType: SignalScopeTypeSchema,\n scopeId: z.string().uuid(),\n content: z.string().min(1).max(5000),\n});\nexport type CreateSignal = z.infer<typeof CreateSignalSchema>;\n\nexport const UpdateSignalSchema = z.object({\n content: z.string().min(1).max(5000),\n});\nexport type UpdateSignal = z.infer<typeof UpdateSignalSchema>;\n\nexport const PromoteSignalSchema = z.object({\n newScopeType: SignalScopeTypeSchema,\n newScopeId: z.string().uuid(),\n});\nexport type PromoteSignal = z.infer<typeof PromoteSignalSchema>;\n","import { z } from 'zod';\n\nexport const InvocationTypeSchema = z.enum(['heavy', 'light', 'advisor', 'stuck_detection', 'orchestrator']);\nexport type InvocationType = z.infer<typeof InvocationTypeSchema>;\n\nexport const ExitReasonSchema = z.enum(['moved', 'stalled', 'error', 'max_iterations', 'stopped', 'deleted']);\nexport type ExitReason = z.infer<typeof ExitReasonSchema>;\n\nexport const PipelineSessionSchema = z.object({\n id: z.string().uuid(),\n project_id: z.string().uuid(),\n board_id: z.string().uuid(),\n ticket_id: z.string().uuid().nullable(),\n column_id: z.string().uuid().nullable(),\n run_id: z.string().min(1).max(128),\n session_id: z.string().min(1).max(128),\n model: z.string().min(1).max(100),\n invocation_type: InvocationTypeSchema,\n iteration: z.number().int().nullable(),\n tokens_in: z.number().int().nonnegative(),\n tokens_out: z.number().int().nonnegative(),\n tool_call_count: z.number().int().nonnegative(),\n duration_ms: z.number().int().nonnegative(),\n exit_reason: ExitReasonSchema.nullable(),\n started_at: z.string().datetime({ offset: true }),\n ended_at: z.string().datetime({ offset: true }).nullable(),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }).nullable(),\n});\n\nexport type PipelineSession = z.infer<typeof PipelineSessionSchema>;\n\nexport const CreatePipelineSessionSchema = z.object({\n project_id: z.string().uuid(),\n board_id: z.string().uuid(),\n ticket_id: z.string().uuid().nullable(),\n column_id: z.string().uuid().nullable(),\n run_id: z.string().min(1).max(128),\n session_id: z.string().min(1).max(128),\n model: z.string().min(1).max(100),\n invocation_type: InvocationTypeSchema,\n iteration: z.number().int().nullable().optional(),\n started_at: z.string().datetime({ offset: true }).optional(),\n});\n\nexport type CreatePipelineSession = z.infer<typeof CreatePipelineSessionSchema>;\n\nexport const UpdatePipelineSessionSchema = z.object({\n tokens_in: z.number().int().nonnegative(),\n tokens_out: z.number().int().nonnegative(),\n tool_call_count: z.number().int().nonnegative(),\n duration_ms: z.number().int().nonnegative(),\n exit_reason: ExitReasonSchema.nullable(),\n ended_at: z.string().datetime({ offset: true }),\n});\n\nexport type UpdatePipelineSession = z.infer<typeof UpdatePipelineSessionSchema>;\n\nexport const PipelineSessionQuerySchema = z.object({\n ticketId: z.string().uuid().optional(),\n boardId: z.string().uuid().optional(),\n sessionId: z.string().optional(),\n limit: z.coerce.number().int().min(1).max(100).optional().default(50),\n cursor: z.string().optional(),\n});\n\nexport type PipelineSessionQuery = z.infer<typeof PipelineSessionQuerySchema>;\n","import { z } from 'zod';\n\nexport const FiringConstraintSubjectTypeSchema = z.enum([\n 'column.ticket_count',\n 'column.active_loops',\n 'column.wip_remaining',\n 'column.last_fired_at',\n 'board.total_active_loops',\n 'board.circuit_breaker_count',\n 'backlog.ticket_count',\n 'ticket.field_value',\n 'time.hour',\n]);\nexport type FiringConstraintSubjectType = z.infer<typeof FiringConstraintSubjectTypeSchema>;\n\nexport const FiringConstraintOperatorSchema = z.enum(['lt', 'lte', 'gt', 'gte', 'eq', 'neq']);\nexport type FiringConstraintOperator = z.infer<typeof FiringConstraintOperatorSchema>;\n\nexport const FiringConstraintScopeSchema = z.enum(['column', 'ticket']);\nexport type FiringConstraintScope = z.infer<typeof FiringConstraintScopeSchema>;\n\nexport const FiringConstraintSchema = z.object({\n id: z.string().uuid(),\n project_id: z.string().uuid(),\n board_id: z.string().uuid(),\n column_id: z.string().uuid().nullable(),\n name: z.string().min(1).max(200),\n description: z.string().nullable(),\n enabled: z.boolean(),\n subject_type: FiringConstraintSubjectTypeSchema,\n subject_ref: z.string().nullable(),\n subject_param: z.string().nullable(),\n operator: FiringConstraintOperatorSchema,\n value: z.union([z.number(), z.string(), z.boolean()]),\n scope: FiringConstraintScopeSchema,\n notify: z.boolean(),\n position: z.number().int(),\n fail_open: z.boolean(),\n system: z.boolean(),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type FiringConstraint = z.infer<typeof FiringConstraintSchema>;\n\nexport const CreateFiringConstraintSchema = z.object({\n column_id: z.string().uuid().nullable().optional(),\n name: z.string().min(1).max(200),\n description: z.string().nullable().optional(),\n subject_type: FiringConstraintSubjectTypeSchema,\n subject_ref: z.string().nullable().optional(),\n subject_param: z.string().nullable().optional(),\n operator: FiringConstraintOperatorSchema,\n value: z.union([z.number(), z.string(), z.boolean()]),\n scope: FiringConstraintScopeSchema.default('column'),\n notify: z.boolean().default(false),\n enabled: z.boolean().default(true),\n fail_open: z.boolean().default(false),\n system: z.boolean().default(false),\n});\nexport type CreateFiringConstraint = z.infer<typeof CreateFiringConstraintSchema>;\n\nexport const UpdateFiringConstraintSchema = z.object({\n column_id: z.string().uuid().nullable().optional(),\n name: z.string().min(1).max(200).optional(),\n description: z.string().nullable().optional(),\n enabled: z.boolean().optional(),\n subject_type: FiringConstraintSubjectTypeSchema.optional(),\n subject_ref: z.string().nullable().optional(),\n subject_param: z.string().nullable().optional(),\n operator: FiringConstraintOperatorSchema.optional(),\n value: z.union([z.number(), z.string(), z.boolean()]).optional(),\n scope: FiringConstraintScopeSchema.optional(),\n notify: z.boolean().optional(),\n position: z.number().int().optional(),\n fail_open: z.boolean().optional(),\n});\nexport type UpdateFiringConstraint = z.infer<typeof UpdateFiringConstraintSchema>;\n\nexport const EvaluateFiringConstraintResultSchema = z.object({\n constraint_id: z.string().uuid(),\n name: z.string(),\n column_id: z.string().uuid().nullable(),\n passed: z.boolean(),\n resolved_value: z.union([z.number(), z.string(), z.boolean()]).nullable(),\n threshold: z.object({\n operator: z.string(),\n value: z.union([z.number(), z.string(), z.boolean()]),\n }),\n error: z.string().optional(),\n});\nexport type EvaluateFiringConstraintResult = z.infer<typeof EvaluateFiringConstraintResultSchema>;\n\nexport const EvaluateFiringConstraintsResponseSchema = z.object({\n board_id: z.string().uuid(),\n results: z.array(EvaluateFiringConstraintResultSchema),\n summary: z.object({\n total: z.number().int(),\n passed: z.number().int(),\n failed: z.number().int(),\n errors: z.number().int(),\n }),\n});\nexport type EvaluateFiringConstraintsResponse = z.infer<typeof EvaluateFiringConstraintsResponseSchema>;\n","import { z } from 'zod';\n\n// --- Enums ---\n\nexport const PipelineEventLayerSchema = z.enum([\n 'gate',\n 'advisor',\n 'evaluator',\n 'constraint',\n 'cost',\n 'session',\n 'replanner',\n]);\nexport type PipelineEventLayer = z.infer<typeof PipelineEventLayerSchema>;\n\nexport const PipelineEventSeveritySchema = z.enum(['info', 'warning', 'failure']);\nexport type PipelineEventSeverity = z.infer<typeof PipelineEventSeveritySchema>;\n\n// --- Core schema ---\n\nexport const PipelineEventSchema = z.object({\n id: z.string().uuid(),\n project_id: z.string().uuid(),\n board_id: z.string().uuid(),\n ticket_id: z.string().uuid().nullable(),\n column_id: z.string().uuid().nullable(),\n run_id: z.string().nullable(),\n session_id: z.string().nullable(),\n layer: PipelineEventLayerSchema,\n event_type: z.string().min(1).max(100),\n severity: PipelineEventSeveritySchema,\n summary: z.string().min(1).max(1000),\n detail: z.record(z.unknown()).nullable(),\n iteration: z.number().int().nullable(),\n created_at: z.string().datetime({ offset: true }),\n});\nexport type PipelineEvent = z.infer<typeof PipelineEventSchema>;\n\n// --- Create (CLI → API) ---\n\nexport const CreatePipelineEventSchema = z.object({\n board_id: z.string().uuid(),\n ticket_id: z.string().uuid().nullable().optional(),\n column_id: z.string().uuid().nullable().optional(),\n run_id: z.string().nullable().optional(),\n session_id: z.string().nullable().optional(),\n layer: PipelineEventLayerSchema,\n event_type: z.string().min(1).max(100),\n severity: PipelineEventSeveritySchema,\n summary: z.string().min(1).max(1000),\n detail: z.record(z.unknown()).nullable().optional(),\n iteration: z.number().int().nullable().optional(),\n});\nexport type CreatePipelineEvent = z.infer<typeof CreatePipelineEventSchema>;\n\nexport const CreatePipelineEventBatchSchema = z.object({\n events: z.array(CreatePipelineEventSchema).min(1).max(100),\n});\nexport type CreatePipelineEventBatch = z.infer<typeof CreatePipelineEventBatchSchema>;\n\n// --- Query (Frontend → API) ---\n\nexport const PipelineEventsQuerySchema = z.object({\n boardId: z.string().uuid(),\n layer: z.string().optional().transform((val) => {\n if (!val) return undefined;\n const parts = val.split(',').map(s => s.trim());\n for (const p of parts) {\n PipelineEventLayerSchema.parse(p);\n }\n return val;\n }),\n severity: z.string().optional().transform((val) => {\n if (!val) return undefined;\n const parts = val.split(',').map(s => s.trim());\n for (const p of parts) {\n PipelineEventSeveritySchema.parse(p);\n }\n return val;\n }),\n ticketId: z.string().uuid().optional(),\n columnId: z.string().uuid().optional(),\n runId: z.string().optional(),\n since: z.string().datetime({ offset: true }).optional(),\n until: z.string().datetime({ offset: true }).optional(),\n cursor: z.string().optional(),\n limit: z.coerce.number().int().min(1).max(200).default(50),\n});\nexport type PipelineEventsQuery = z.infer<typeof PipelineEventsQuerySchema>;\n\n// --- Summary (for layer cards) ---\n\nexport const LayerSummarySchema = z.object({\n gates: z.object({\n total: z.number(),\n passed: z.number(),\n failed: z.number(),\n top_failing_gate: z.string().nullable(),\n top_failing_count: z.number(),\n }),\n advisor: z.object({\n total: z.number(),\n by_action: z.record(z.number()),\n }),\n evaluator: z.object({\n total: z.number(),\n approved: z.number(),\n rejected: z.number(),\n blocker_count: z.number(),\n }),\n constraints: z.object({\n total_evaluations: z.number(),\n currently_blocked: z.number(),\n top_blocking_name: z.string().nullable(),\n top_blocking_column: z.string().nullable(),\n }),\n cost: z.object({\n total_tokens_in: z.number(),\n total_tokens_out: z.number(),\n max_tokens: z.number().nullable(),\n top_ticket_id: z.string().uuid().nullable(),\n top_ticket_tokens: z.number(),\n }),\n truncated: z.boolean(),\n});\nexport type LayerSummary = z.infer<typeof LayerSummarySchema>;\n","import { z } from 'zod';\nimport { UserProfileSchema } from './user.schema.js';\nimport {\n WsCallStartSchema,\n WsCallAcceptSchema,\n WsCallDeclineSchema,\n WsCallLeaveSchema,\n WsCallEndSchema,\n WsStatusSetSchema,\n WsServerCallRingSchema,\n WsServerCallStartedSchema,\n WsServerCallParticipantJoinedSchema,\n WsServerCallParticipantLeftSchema,\n WsServerCallEndedSchema,\n WsServerCallDeclinedSchema,\n WsServerCallMissedSchema,\n WsServerStatusUpdateSchema,\n UserStatusSchema,\n} from './call.schema.js';\nimport {\n WsBoardClientEvents,\n WsBoardServerEvents,\n} from './board-ws.schema.js';\n\n// ── Enums ──\n\nexport const ChatConversationTypeSchema = z.enum(['group', 'direct']);\nexport type ChatConversationType = z.infer<typeof ChatConversationTypeSchema>;\n\nexport const PushPlatformSchema = z.enum(['web', 'ios', 'android']);\nexport type PushPlatform = z.infer<typeof PushPlatformSchema>;\n\n// ── Conversation ──\n\nexport const ChatConversationSchema = z.object({\n id: z.string().uuid(),\n project_id: z.string().uuid(),\n type: ChatConversationTypeSchema,\n name: z.string().nullable(),\n created_by: z.string().uuid(),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type ChatConversation = z.infer<typeof ChatConversationSchema>;\n\nconst MessagePreviewSchema = z.object({\n id: z.string().uuid(),\n body: z.string(),\n sender_id: z.string().uuid(),\n created_at: z.string().datetime({ offset: true }),\n});\n\nexport const ChatConversationWithPreviewSchema = ChatConversationSchema.extend({\n lastMessage: MessagePreviewSchema.nullable(),\n unreadCount: z.number().int().min(0),\n participants: z.array(UserProfileSchema),\n projectName: z.string(),\n muted_at: z.string().datetime({ offset: true }).nullable(),\n pinned_at: z.string().datetime({ offset: true }).nullable(),\n enter_sends_override: z.boolean().nullable().default(null),\n});\nexport type ChatConversationWithPreview = z.infer<typeof ChatConversationWithPreviewSchema>;\n\n// ── Participant ──\n\nexport const ChatParticipantSchema = z.object({\n id: z.string().uuid(),\n conversation_id: z.string().uuid(),\n user_id: z.string().uuid(),\n joined_at: z.string().datetime({ offset: true }),\n left_at: z.string().datetime({ offset: true }).nullable(),\n deleted_at: z.string().datetime({ offset: true }).nullable(),\n muted_at: z.string().datetime({ offset: true }).nullable(),\n pinned_at: z.string().datetime({ offset: true }).nullable(),\n enter_sends_override: z.boolean().nullable().default(null),\n});\nexport type ChatParticipant = z.infer<typeof ChatParticipantSchema>;\n\nexport const ChatParticipantWithProfileSchema = ChatParticipantSchema.extend({\n user: UserProfileSchema,\n});\nexport type ChatParticipantWithProfile = z.infer<typeof ChatParticipantWithProfileSchema>;\n\n// ── Message ──\n\nexport const ChatMessageSchema = z.object({\n id: z.string().uuid(),\n conversation_id: z.string().uuid(),\n sender_id: z.string().uuid(),\n body: z.string().min(1).max(4000),\n attachment_url: z.string().nullable(),\n attachment_type: z.string().nullable(),\n mentions: z.array(z.string().uuid()),\n reply_to_id: z.string().uuid().nullable().default(null),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n deleted_at: z.string().datetime({ offset: true }).nullable(),\n});\nexport type ChatMessage = z.infer<typeof ChatMessageSchema>;\n\nexport const ReplyPreviewSchema = z.object({\n id: z.string().uuid(),\n sender_id: z.string().uuid(),\n sender_name: z.string(),\n body: z.string(),\n});\nexport type ReplyPreview = z.infer<typeof ReplyPreviewSchema>;\n\nconst ReactionAggregateSchema = z.object({\n emoji: z.string().min(1),\n count: z.number().int().min(1),\n userIds: z.array(z.string().uuid()),\n});\n\nexport const ChatMessageWithReactionsSchema = ChatMessageSchema.extend({\n sender: UserProfileSchema,\n reactions: z.array(ReactionAggregateSchema),\n reply_to: ReplyPreviewSchema.nullable().default(null),\n});\nexport type ChatMessageWithReactions = z.infer<typeof ChatMessageWithReactionsSchema>;\n\n// ── Reaction ──\n\nexport const ChatReactionSchema = z.object({\n id: z.string().uuid(),\n message_id: z.string().uuid(),\n user_id: z.string().uuid(),\n emoji: z.string().min(1),\n created_at: z.string().datetime({ offset: true }),\n});\nexport type ChatReaction = z.infer<typeof ChatReactionSchema>;\n\n// ── Read Cursor ──\n\nexport const ChatReadCursorSchema = z.object({\n id: z.string().uuid(),\n conversation_id: z.string().uuid(),\n user_id: z.string().uuid(),\n last_read_message_id: z.string().uuid(),\n last_read_at: z.string().datetime({ offset: true }),\n});\nexport type ChatReadCursor = z.infer<typeof ChatReadCursorSchema>;\n\n// ── Push Subscription ──\n\nexport const PushSubscriptionSchema = z.object({\n id: z.string().uuid(),\n user_id: z.string().uuid(),\n platform: PushPlatformSchema,\n token: z.string().min(1),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type PushSubscription = z.infer<typeof PushSubscriptionSchema>;\n\n// ── Notification Preferences ──\n\nexport const NotificationPreferencesSchema = z.object({\n id: z.string(),\n user_id: z.string().uuid(),\n push_enabled: z.boolean(),\n push_dms: z.boolean(),\n push_group: z.boolean(),\n push_mentions: z.boolean(),\n quiet_hours_start: z.string().nullable(),\n quiet_hours_end: z.string().nullable(),\n updated_at: z.string().datetime({ offset: true }),\n chat_enter_sends: z.boolean().default(true),\n});\nexport type NotificationPreferences = z.infer<typeof NotificationPreferencesSchema>;\n\n// ── Input Schemas ──\n\nexport const CreateDMSchema = z.object({\n type: z.literal('direct'),\n participantId: z.string().uuid(),\n});\nexport type CreateDM = z.infer<typeof CreateDMSchema>;\n\nexport const CreateGroupSchema = z.object({\n type: z.literal('group'),\n name: z.string().min(1).max(50).refine(\n (n) => n.toLowerCase() !== 'general',\n { message: 'The name \"general\" is reserved' },\n ),\n participantIds: z.array(z.string().uuid()).min(2),\n});\nexport type CreateGroup = z.infer<typeof CreateGroupSchema>;\n\nexport const CreateConversationSchema = z.discriminatedUnion('type', [\n CreateDMSchema,\n CreateGroupSchema,\n]);\nexport type CreateConversation = z.infer<typeof CreateConversationSchema>;\n\nexport const SendMessageSchema = z.object({\n conversationId: z.string().uuid(),\n body: z.string().max(4000),\n attachmentUrl: z.string().optional(),\n attachmentType: z.string().optional(),\n mentions: z.array(z.string().uuid()).optional(),\n replyToId: z.string().uuid().optional(),\n}).refine(\n (d) => d.body.length > 0 || !!d.attachmentUrl,\n { message: 'Either body or attachmentUrl is required' },\n);\nexport type SendMessage = z.infer<typeof SendMessageSchema>;\n\nexport const UpdateMessageSchema = z.object({\n messageId: z.string().uuid(),\n body: z.string().min(1).max(4000),\n});\nexport type UpdateMessage = z.infer<typeof UpdateMessageSchema>;\n\nexport const CreatePushSubscriptionSchema = z.object({\n platform: PushPlatformSchema,\n token: z.string().min(1),\n});\nexport type CreatePushSubscription = z.infer<typeof CreatePushSubscriptionSchema>;\n\nexport const UpdateNotificationPreferencesSchema = z.object({\n push_enabled: z.boolean().optional(),\n push_dms: z.boolean().optional(),\n push_group: z.boolean().optional(),\n push_mentions: z.boolean().optional(),\n quiet_hours_start: z.string().nullable().optional(),\n quiet_hours_end: z.string().nullable().optional(),\n chat_enter_sends: z.boolean().optional(),\n});\nexport type UpdateNotificationPreferences = z.infer<typeof UpdateNotificationPreferencesSchema>;\n\n// ── WebSocket Event Schemas ──\n\nconst WsMessageSendSchema = z.object({\n type: z.literal('message:send'),\n payload: SendMessageSchema,\n});\nconst WsMessageEditSchema = z.object({\n type: z.literal('message:edit'),\n payload: UpdateMessageSchema,\n});\nconst WsMessageDeleteSchema = z.object({\n type: z.literal('message:delete'),\n payload: z.object({ messageId: z.string().uuid() }),\n});\nconst WsTypingStartSchema = z.object({\n type: z.literal('typing:start'),\n payload: z.object({ conversationId: z.string().uuid() }),\n});\nconst WsTypingStopSchema = z.object({\n type: z.literal('typing:stop'),\n payload: z.object({ conversationId: z.string().uuid() }),\n});\nconst WsReactionAddSchema = z.object({\n type: z.literal('reaction:add'),\n payload: z.object({ messageId: z.string().uuid(), emoji: z.string().min(1) }),\n});\nconst WsReactionRemoveSchema = z.object({\n type: z.literal('reaction:remove'),\n payload: z.object({ messageId: z.string().uuid(), emoji: z.string().min(1) }),\n});\nconst WsCursorUpdateSchema = z.object({\n type: z.literal('cursor:update'),\n payload: z.object({\n conversationId: z.string().uuid(),\n lastReadMessageId: z.string().uuid(),\n }),\n});\nconst WsPingSchema = z.object({\n type: z.literal('ping'),\n payload: z.object({}),\n});\n\nexport const WsChatClientEvents = [\n WsMessageSendSchema,\n WsMessageEditSchema,\n WsMessageDeleteSchema,\n WsTypingStartSchema,\n WsTypingStopSchema,\n WsReactionAddSchema,\n WsReactionRemoveSchema,\n WsCursorUpdateSchema,\n WsPingSchema,\n WsCallStartSchema,\n WsCallAcceptSchema,\n WsCallDeclineSchema,\n WsCallLeaveSchema,\n WsCallEndSchema,\n WsStatusSetSchema,\n] as const;\n\nexport const WsClientEventSchema = z.discriminatedUnion('type', [\n ...WsChatClientEvents,\n ...WsBoardClientEvents,\n]);\nexport type WsClientEvent = z.infer<typeof WsClientEventSchema>;\n\nconst WsServerMessageNewSchema = z.object({\n type: z.literal('message:new'),\n payload: z.object({ projectId: z.string().uuid(), message: ChatMessageWithReactionsSchema }),\n});\nconst WsServerMessageUpdatedSchema = z.object({\n type: z.literal('message:updated'),\n payload: z.object({ projectId: z.string().uuid(), message: ChatMessageWithReactionsSchema }),\n});\nconst WsServerMessageDeletedSchema = z.object({\n type: z.literal('message:deleted'),\n payload: z.object({ projectId: z.string().uuid(), messageId: z.string().uuid(), conversationId: z.string().uuid() }),\n});\nconst WsServerTypingUpdateSchema = z.object({\n type: z.literal('typing:update'),\n payload: z.object({\n projectId: z.string().uuid(),\n conversationId: z.string().uuid(),\n userId: z.string().uuid(),\n isTyping: z.boolean(),\n }),\n});\nconst WsServerPresenceJoinSchema = z.object({\n type: z.literal('presence:join'),\n payload: z.object({ userId: z.string().uuid(), projectId: z.string().uuid() }),\n});\nconst WsServerPresenceLeaveSchema = z.object({\n type: z.literal('presence:leave'),\n payload: z.object({ userId: z.string().uuid(), projectId: z.string().uuid() }),\n});\nconst WsServerPresenceStateSchema = z.object({\n type: z.literal('presence:state'),\n payload: z.object({\n online: z.array(z.string().uuid()),\n statuses: z.record(z.string(), UserStatusSchema).optional(),\n }),\n});\nconst WsServerReactionAddedSchema = z.object({\n type: z.literal('reaction:added'),\n payload: z.object({\n projectId: z.string().uuid(),\n messageId: z.string().uuid(),\n reaction: z.object({\n userId: z.string().uuid(),\n emoji: z.string().min(1),\n }),\n }),\n});\nconst WsServerReactionRemovedSchema = z.object({\n type: z.literal('reaction:removed'),\n payload: z.object({\n projectId: z.string().uuid(),\n messageId: z.string().uuid(),\n userId: z.string().uuid(),\n emoji: z.string().min(1),\n }),\n});\nconst WsServerCursorUpdatedSchema = z.object({\n type: z.literal('cursor:updated'),\n payload: z.object({\n projectId: z.string().uuid(),\n conversationId: z.string().uuid(),\n userId: z.string().uuid(),\n lastReadMessageId: z.string().uuid(),\n }),\n});\nconst WsServerPongSchema = z.object({\n type: z.literal('pong'),\n payload: z.object({}),\n});\nconst WsServerErrorSchema = z.object({\n type: z.literal('error'),\n payload: z.object({ code: z.string(), message: z.string() }),\n});\n\nexport const WsServerSubscriptionUpdateSchema = z.object({\n type: z.literal('subscription:update'),\n payload: z.object({\n projectId: z.string().uuid(),\n action: z.enum(['added', 'removed']),\n project: z.object({\n id: z.string().uuid(),\n name: z.string(),\n role: z.string(),\n }).optional(),\n }),\n});\nexport type WsServerSubscriptionUpdate = z.infer<typeof WsServerSubscriptionUpdateSchema>;\n\nexport const WsServerConversationCreatedSchema = z.object({\n type: z.literal('conversation:created'),\n payload: z.object({\n conversation: ChatConversationWithPreviewSchema,\n }),\n});\nexport type WsServerConversationCreated = z.infer<typeof WsServerConversationCreatedSchema>;\n\nexport const WsServerConversationUpdatedSchema = z.object({\n type: z.literal('conversation:updated'),\n payload: z.object({\n conversationId: z.string().uuid(),\n changes: z.object({\n name: z.string().optional(),\n participantsAdded: z.array(z.string().uuid()).optional(),\n participantsRemoved: z.array(z.string().uuid()).optional(),\n }),\n }),\n});\nexport type WsServerConversationUpdated = z.infer<typeof WsServerConversationUpdatedSchema>;\n\nexport const WsServerConversationDeletedSchema = z.object({\n type: z.literal('conversation:deleted'),\n payload: z.object({\n conversationId: z.string().uuid(),\n projectId: z.string().uuid(),\n }),\n});\nexport type WsServerConversationDeleted = z.infer<typeof WsServerConversationDeletedSchema>;\n\nexport const WsServerUnreadSyncSchema = z.object({\n type: z.literal('unread:sync'),\n payload: z.object({\n projects: z.array(z.object({ projectId: z.string().uuid(), count: z.number().int().min(0) })),\n conversations: z.array(z.object({ conversationId: z.string().uuid(), count: z.number().int().min(0) })),\n }),\n});\nexport type WsServerUnreadSync = z.infer<typeof WsServerUnreadSyncSchema>;\n\n// ── Doc/Space WebSocket Events ──\n\nconst WsServerDocumentCreatedSchema = z.object({\n type: z.literal('document:created'),\n payload: z.object({\n projectId: z.string().uuid(),\n spaceId: z.string().uuid(),\n document: z.object({ id: z.string().uuid(), title: z.string() }),\n }),\n});\nconst WsServerDocumentUpdatedSchema = z.object({\n type: z.literal('document:updated'),\n payload: z.object({\n projectId: z.string().uuid(),\n spaceId: z.string().uuid(),\n document: z.object({ id: z.string().uuid(), title: z.string() }),\n }),\n});\nconst WsServerDocumentDeletedSchema = z.object({\n type: z.literal('document:deleted'),\n payload: z.object({\n projectId: z.string().uuid(),\n spaceId: z.string().uuid(),\n documentId: z.string().uuid(),\n }),\n});\nconst WsServerSpaceCreatedSchema = z.object({\n type: z.literal('space:created'),\n payload: z.object({\n projectId: z.string().uuid(),\n space: z.object({ id: z.string().uuid(), name: z.string() }),\n }),\n});\nconst WsServerSpaceUpdatedSchema = z.object({\n type: z.literal('space:updated'),\n payload: z.object({\n projectId: z.string().uuid(),\n space: z.object({ id: z.string().uuid(), name: z.string() }),\n }),\n});\nconst WsServerSpaceDeletedSchema = z.object({\n type: z.literal('space:deleted'),\n payload: z.object({\n projectId: z.string().uuid(),\n spaceId: z.string().uuid(),\n }),\n});\n\nexport const WsChatServerEvents = [\n WsServerMessageNewSchema,\n WsServerMessageUpdatedSchema,\n WsServerMessageDeletedSchema,\n WsServerTypingUpdateSchema,\n WsServerPresenceJoinSchema,\n WsServerPresenceLeaveSchema,\n WsServerPresenceStateSchema,\n WsServerReactionAddedSchema,\n WsServerReactionRemovedSchema,\n WsServerCursorUpdatedSchema,\n WsServerPongSchema,\n WsServerErrorSchema,\n WsServerSubscriptionUpdateSchema,\n WsServerConversationCreatedSchema,\n WsServerConversationUpdatedSchema,\n WsServerConversationDeletedSchema,\n WsServerUnreadSyncSchema,\n WsServerDocumentCreatedSchema,\n WsServerDocumentUpdatedSchema,\n WsServerDocumentDeletedSchema,\n WsServerSpaceCreatedSchema,\n WsServerSpaceUpdatedSchema,\n WsServerSpaceDeletedSchema,\n WsServerCallRingSchema,\n WsServerCallStartedSchema,\n WsServerCallParticipantJoinedSchema,\n WsServerCallParticipantLeftSchema,\n WsServerCallEndedSchema,\n WsServerCallDeclinedSchema,\n WsServerCallMissedSchema,\n WsServerStatusUpdateSchema,\n] as const;\n\nexport const WsServerEventSchema = z.discriminatedUnion('type', [\n ...WsChatServerEvents,\n ...WsBoardServerEvents,\n]);\nexport type WsServerEvent = z.infer<typeof WsServerEventSchema>;\n","import { z } from 'zod';\nimport { UserProfileSchema } from './user.schema.js';\n\n// ── Enums ──\n\nexport const CallTypeSchema = z.enum(['audio', 'screen_share']);\nexport type CallType = z.infer<typeof CallTypeSchema>;\n\nexport const CallStatusSchema = z.enum(['ringing', 'active', 'ended', 'missed']);\nexport type CallStatus = z.infer<typeof CallStatusSchema>;\n\nexport const UserStatusSchema = z.enum(['online', 'away', 'in_call', 'dnd', 'offline']);\nexport type UserStatus = z.infer<typeof UserStatusSchema>;\n\n// ── Call Session ──\n\nexport const CallSessionSchema = z.object({\n id: z.string().uuid(),\n project_id: z.string().uuid(),\n conversation_id: z.string().uuid().nullable(),\n status: CallStatusSchema,\n created_by: z.string().uuid(),\n livekit_room_name: z.string(),\n started_at: z.string().datetime({ offset: true }).nullable(),\n ended_at: z.string().datetime({ offset: true }).nullable(),\n created_at: z.string().datetime({ offset: true }),\n});\nexport type CallSession = z.infer<typeof CallSessionSchema>;\n\n// ── Call Participant ──\n\nexport const CallParticipantSchema = z.object({\n id: z.string().uuid(),\n session_id: z.string().uuid(),\n user_id: z.string().uuid(),\n joined_at: z.string().datetime({ offset: true }).nullable(),\n left_at: z.string().datetime({ offset: true }).nullable(),\n});\nexport type CallParticipant = z.infer<typeof CallParticipantSchema>;\n\nexport const CallParticipantWithProfileSchema = CallParticipantSchema.extend({\n user: UserProfileSchema,\n});\nexport type CallParticipantWithProfile = z.infer<typeof CallParticipantWithProfileSchema>;\n\n// ── Call Session with Participants ──\n\nexport const CallSessionWithParticipantsSchema = CallSessionSchema.extend({\n participants: z.array(CallParticipantWithProfileSchema),\n creator: UserProfileSchema,\n});\nexport type CallSessionWithParticipants = z.infer<typeof CallSessionWithParticipantsSchema>;\n\n// ── Input Schemas ──\n\nexport const StartCallSchema = z.object({\n conversationId: z.string().uuid().optional(),\n participantIds: z.array(z.string().uuid()).min(1).max(4),\n});\nexport type StartCall = z.infer<typeof StartCallSchema>;\n\nexport const JoinCallSchema = z.object({\n sessionId: z.string().uuid(),\n});\nexport type JoinCall = z.infer<typeof JoinCallSchema>;\n\n// ── Token Response ──\n\nexport const CallTokenResponseSchema = z.object({\n token: z.string(),\n wsUrl: z.string(),\n roomName: z.string(),\n sessionId: z.string().uuid(),\n});\nexport type CallTokenResponse = z.infer<typeof CallTokenResponseSchema>;\n\n// ── WebSocket Client Events (Call) ──\n\nexport const WsCallStartSchema = z.object({\n type: z.literal('call:start'),\n payload: StartCallSchema.extend({\n projectId: z.string().uuid(),\n }),\n});\n\nexport const WsCallAcceptSchema = z.object({\n type: z.literal('call:accept'),\n payload: z.object({ sessionId: z.string().uuid() }),\n});\n\nexport const WsCallDeclineSchema = z.object({\n type: z.literal('call:decline'),\n payload: z.object({ sessionId: z.string().uuid() }),\n});\n\nexport const WsCallLeaveSchema = z.object({\n type: z.literal('call:leave'),\n payload: z.object({ sessionId: z.string().uuid() }),\n});\n\nexport const WsCallEndSchema = z.object({\n type: z.literal('call:end'),\n payload: z.object({ sessionId: z.string().uuid() }),\n});\n\nexport const WsStatusSetSchema = z.object({\n type: z.literal('status:set'),\n payload: z.object({ status: z.enum(['online', 'away', 'dnd']) }),\n});\n\n// Exported individually for type extraction\nexport type WsCallStart = z.infer<typeof WsCallStartSchema>;\nexport type WsCallAccept = z.infer<typeof WsCallAcceptSchema>;\nexport type WsCallDecline = z.infer<typeof WsCallDeclineSchema>;\nexport type WsCallLeave = z.infer<typeof WsCallLeaveSchema>;\nexport type WsCallEnd = z.infer<typeof WsCallEndSchema>;\nexport type WsStatusSet = z.infer<typeof WsStatusSetSchema>;\n\n// ── WebSocket Server Events (Call) ──\n\nexport const WsServerCallRingSchema = z.object({\n type: z.literal('call:ring'),\n payload: z.object({\n sessionId: z.string().uuid(),\n projectId: z.string().uuid(),\n conversationId: z.string().uuid().nullable(),\n callerId: z.string().uuid(),\n callerName: z.string(),\n participantIds: z.array(z.string().uuid()),\n }),\n});\n\nexport const WsServerCallStartedSchema = z.object({\n type: z.literal('call:started'),\n payload: z.object({\n sessionId: z.string().uuid(),\n projectId: z.string().uuid(),\n conversationId: z.string().uuid().nullable(),\n }),\n});\n\nexport const WsServerCallParticipantJoinedSchema = z.object({\n type: z.literal('call:participant-joined'),\n payload: z.object({\n sessionId: z.string().uuid(),\n userId: z.string().uuid(),\n displayName: z.string(),\n }),\n});\n\nexport const WsServerCallParticipantLeftSchema = z.object({\n type: z.literal('call:participant-left'),\n payload: z.object({\n sessionId: z.string().uuid(),\n userId: z.string().uuid(),\n }),\n});\n\nexport const WsServerCallEndedSchema = z.object({\n type: z.literal('call:ended'),\n payload: z.object({\n sessionId: z.string().uuid(),\n projectId: z.string().uuid(),\n }),\n});\n\nexport const WsServerCallDeclinedSchema = z.object({\n type: z.literal('call:declined'),\n payload: z.object({\n sessionId: z.string().uuid(),\n userId: z.string().uuid(),\n }),\n});\n\nexport const WsServerCallMissedSchema = z.object({\n type: z.literal('call:missed'),\n payload: z.object({\n sessionId: z.string().uuid(),\n projectId: z.string().uuid(),\n callerId: z.string().uuid(),\n callerName: z.string(),\n }),\n});\n\nexport const WsServerStatusUpdateSchema = z.object({\n type: z.literal('status:update'),\n payload: z.object({\n userId: z.string().uuid(),\n status: UserStatusSchema,\n }),\n});\n\n// Types for server events\nexport type WsServerCallRing = z.infer<typeof WsServerCallRingSchema>;\nexport type WsServerCallStarted = z.infer<typeof WsServerCallStartedSchema>;\nexport type WsServerCallParticipantJoined = z.infer<typeof WsServerCallParticipantJoinedSchema>;\nexport type WsServerCallParticipantLeft = z.infer<typeof WsServerCallParticipantLeftSchema>;\nexport type WsServerCallEnded = z.infer<typeof WsServerCallEndedSchema>;\nexport type WsServerCallDeclined = z.infer<typeof WsServerCallDeclinedSchema>;\nexport type WsServerCallMissed = z.infer<typeof WsServerCallMissedSchema>;\nexport type WsServerStatusUpdate = z.infer<typeof WsServerStatusUpdateSchema>;\n","import { z } from 'zod';\n\nexport const ApiTokenMetadataSchema = z.object({\n id: z.string().uuid(),\n name: z.string().min(1),\n token_prefix: z.string(),\n last_used_at: z.string().datetime({ offset: true }).nullable(),\n created_at: z.string().datetime({ offset: true }),\n});\nexport type ApiTokenMetadata = z.infer<typeof ApiTokenMetadataSchema>;\n\nexport const GenerateApiTokenResponseSchema = z.object({\n id: z.string().uuid(),\n name: z.string().min(1),\n token_prefix: z.string(),\n token: z.string(),\n created_at: z.string().datetime({ offset: true }),\n});\nexport type GenerateApiTokenResponse = z.infer<typeof GenerateApiTokenResponseSchema>;\n\nexport const CreateApiTokenBodySchema = z.object({\n name: z.string().min(1).max(100).optional().default('Claude Code'),\n});\nexport type CreateApiTokenBody = z.infer<typeof CreateApiTokenBodySchema>;\n","import { z } from 'zod';\n\nexport const DocSpaceSchema = z.object({\n id: z.string().uuid(),\n project_id: z.string().uuid(),\n name: z.string().min(1).max(100),\n prefix: z.string().regex(/^[A-Z]{2,10}$/),\n doc_counter: z.number().int().nonnegative(),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type DocSpace = z.infer<typeof DocSpaceSchema>;\n\nexport const DocSpaceWithCountSchema = DocSpaceSchema.extend({\n document_count: z.number().int().nonnegative(),\n can_write: z.boolean(),\n});\nexport type DocSpaceWithCount = z.infer<typeof DocSpaceWithCountSchema>;\n\nexport const CreateDocSpaceSchema = z.object({\n name: z.string().trim().min(1).max(100),\n prefix: z.string().regex(/^[A-Z]{2,10}$/),\n});\nexport type CreateDocSpace = z.infer<typeof CreateDocSpaceSchema>;\n\nexport const UpdateDocSpaceSchema = z.object({\n name: z.string().trim().min(1).max(100).optional(),\n prefix: z.string().regex(/^[A-Z]{2,10}$/).optional(),\n});\nexport type UpdateDocSpace = z.infer<typeof UpdateDocSpaceSchema>;\n\nexport const DocumentActionSchema = z.enum(['delete', 'move']);\nexport type DocumentAction = z.infer<typeof DocumentActionSchema>;\n\nexport const DeleteDocSpaceBodySchema = z.object({\n document_action: DocumentActionSchema.default('delete'),\n target_space_id: z.string().uuid().optional(),\n}).superRefine((data, ctx) => {\n if (data.document_action === 'move' && !data.target_space_id) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'target_space_id is required when document_action is move',\n path: ['target_space_id'],\n });\n }\n});\nexport type DeleteDocSpaceBody = z.infer<typeof DeleteDocSpaceBodySchema>;\n\nexport const DeleteDocSpacePreviewSchema = z.object({\n documents: z.number().int().nonnegative(),\n});\nexport type DeleteDocSpacePreview = z.infer<typeof DeleteDocSpacePreviewSchema>;\n","import { z } from 'zod';\nimport { UserProfileSchema } from './user.schema.js';\n\nexport const DocumentSchema = z.object({\n id: z.string().uuid(),\n space_id: z.string().uuid(),\n project_id: z.string().uuid(),\n parent_id: z.string().uuid().nullable(),\n doc_number: z.number().int().positive(),\n title: z.string().min(1).max(500),\n content: z.string(),\n position: z.number().int(),\n created_by: z.string().uuid(),\n updated_by: z.string().uuid(),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type Document = z.infer<typeof DocumentSchema>;\n\nexport const DocumentWithProfilesSchema = DocumentSchema.extend({\n creator: UserProfileSchema,\n updater: UserProfileSchema,\n});\nexport type DocumentWithProfiles = z.infer<typeof DocumentWithProfilesSchema>;\n\nexport const DocumentTreeNodeSchema: z.ZodType<DocumentTreeNode> = DocumentSchema.extend({\n children: z.lazy(() => DocumentTreeNodeSchema.array()),\n});\nexport type DocumentTreeNode = z.infer<typeof DocumentSchema> & {\n children: DocumentTreeNode[];\n};\n\nexport const CreateDocumentSchema = z.object({\n title: z.string().trim().min(1).max(500),\n content: z.string().optional().default(''),\n parent_id: z.string().uuid().nullable().optional().default(null),\n});\nexport type CreateDocument = z.infer<typeof CreateDocumentSchema>;\n\nexport const UpdateDocumentSchema = z.object({\n title: z.string().trim().min(1).max(500).optional(),\n content: z.string().optional(),\n});\nexport type UpdateDocument = z.infer<typeof UpdateDocumentSchema>;\n\nexport const MoveDocumentSchema = z.object({\n parent_id: z.string().uuid().nullable().optional(),\n position: z.number().int().nonnegative().optional(),\n});\nexport type MoveDocument = z.infer<typeof MoveDocumentSchema>;\n\nexport const DeleteDocumentPreviewSchema = z.object({\n child_documents: z.number().int().nonnegative(),\n});\nexport type DeleteDocumentPreview = z.infer<typeof DeleteDocumentPreviewSchema>;\n","import { z } from 'zod';\n\nexport const SearchResultTypeSchema = z.enum(['ticket', 'document', 'message']);\nexport type SearchResultType = z.infer<typeof SearchResultTypeSchema>;\n\nexport const SearchResultSchema = z.object({\n type: SearchResultTypeSchema,\n id: z.string().uuid(),\n display_id: z.string().nullable(),\n project_id: z.string().uuid(),\n project_name: z.string(),\n title: z.string(),\n snippet: z.string(),\n meta: z.record(z.string(), z.unknown()).optional(),\n});\nexport type SearchResult = z.infer<typeof SearchResultSchema>;\n\nexport const SearchQuerySchema = z.object({\n q: z.string().min(2),\n type: SearchResultTypeSchema.optional(),\n project_id: z.string().uuid().optional(),\n limit: z.coerce.number().int().min(1).max(50).optional().default(20),\n});\nexport type SearchQuery = z.infer<typeof SearchQuerySchema>;\n\nexport const SearchResponseSchema = z.object({\n results: z.array(SearchResultSchema),\n total: z.number().int().nonnegative(),\n});\nexport type SearchResponse = z.infer<typeof SearchResponseSchema>;\n\nexport const MentionResultTypeSchema = z.enum(['ticket', 'document', 'user']);\nexport type MentionResultType = z.infer<typeof MentionResultTypeSchema>;\n\nexport const MentionResultSchema = z.object({\n type: MentionResultTypeSchema,\n id: z.string().uuid(),\n displayId: z.string(),\n title: z.string(),\n avatarUrl: z.string().optional(),\n});\nexport type MentionResult = z.infer<typeof MentionResultSchema>;\n","import { z } from 'zod';\n\nexport const EntityReferenceSourceTypeSchema = z.enum(['ticket', 'document', 'comment', 'chat_message']);\nexport const EntityReferenceTargetTypeSchema = z.enum(['ticket', 'document']);\n\nexport const EntityReferenceSchema = z.object({\n id: z.string().uuid(),\n source_type: EntityReferenceSourceTypeSchema,\n source_id: z.string().uuid(),\n target_type: EntityReferenceTargetTypeSchema,\n target_id: z.string().uuid(),\n project_id: z.string().uuid(),\n created_at: z.string().datetime({ offset: true }),\n});\nexport type EntityReference = z.infer<typeof EntityReferenceSchema>;\n\nexport const BacklinkSchema = z.object({\n source_type: EntityReferenceSourceTypeSchema,\n source_id: z.string().uuid(),\n display_id: z.string(),\n title: z.string(),\n});\nexport type Backlink = z.infer<typeof BacklinkSchema>;\n\nexport const BacklinksResponseSchema = z.object({\n backlinks: z.array(BacklinkSchema),\n total: z.number().int().nonnegative(),\n});\nexport type BacklinksResponse = z.infer<typeof BacklinksResponseSchema>;\n\nexport const ResolveResultSchema = z.object({\n type: EntityReferenceTargetTypeSchema,\n id: z.string().uuid(),\n boardId: z.string().uuid().optional(),\n spaceId: z.string().uuid().optional(),\n});\nexport type ResolveResult = z.infer<typeof ResolveResultSchema>;\n\nexport const BatchResolveResponseSchema = z.object({\n results: z.record(z.string(), ResolveResultSchema),\n});\nexport type BatchResolveResponse = z.infer<typeof BatchResolveResponseSchema>;\n","import { z } from 'zod';\n\nexport const NotificationTypeSchema = z.enum(['mention']);\nexport type NotificationType = z.infer<typeof NotificationTypeSchema>;\n\nexport const NotificationSchema = z.object({\n id: z.string().uuid(),\n project_id: z.string().uuid(),\n user_id: z.string().uuid(),\n actor_id: z.string().uuid(),\n type: NotificationTypeSchema,\n source_type: z.string(),\n source_id: z.string().uuid(),\n display_id: z.string(),\n title: z.string(),\n read: z.boolean(),\n created_at: z.string().datetime({ offset: true }),\n});\nexport type Notification = z.infer<typeof NotificationSchema>;\n\nexport const NotificationWithActorSchema = NotificationSchema.extend({\n actor: z.object({\n id: z.string().uuid(),\n display_name: z.string(),\n avatar_url: z.string().nullable(),\n }).nullable(),\n});\nexport type NotificationWithActor = z.infer<typeof NotificationWithActorSchema>;\n\nexport const NotificationsResponseSchema = z.object({\n notifications: z.array(NotificationWithActorSchema),\n unread_count: z.number().int().nonnegative(),\n});\nexport type NotificationsResponse = z.infer<typeof NotificationsResponseSchema>;\n","import { z } from 'zod';\n\nexport const FieldValueSchema = z.object({\n id: z.string().uuid(),\n ticket_id: z.string().uuid(),\n field_id: z.string().uuid(),\n text_value: z.string().nullable(),\n number_value: z.number().nullable(),\n date_value: z.string().nullable(),\n json_value: z.unknown().nullable(),\n ref_user_id: z.string().uuid().nullable(),\n ref_ticket_id: z.string().uuid().nullable(),\n ref_document_id: z.string().uuid().nullable(),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type FieldValue = z.infer<typeof FieldValueSchema>;\n\nexport const FieldValueWithDefinitionSchema = FieldValueSchema.extend({\n field_name: z.string(),\n field_type: z.string(),\n});\nexport type FieldValueWithDefinition = z.infer<typeof FieldValueWithDefinitionSchema>;\n\nexport const SetFieldValueSchema = z.object({\n value: z.unknown(),\n});\nexport type SetFieldValue = z.infer<typeof SetFieldValueSchema>;\n\nexport const BatchSetFieldValuesSchema = z.object({\n values: z.record(z.string(), z.unknown()),\n});\nexport type BatchSetFieldValues = z.infer<typeof BatchSetFieldValuesSchema>;\n","import { z } from 'zod';\nimport { TransitionRuleStatusSchema } from './transition-rule.schema.js';\n\nexport const TransitionFieldRequirementSchema = z.object({\n id: z.string().uuid(),\n board_id: z.string().uuid(),\n to_column_id: z.string().uuid().nullable(),\n field_id: z.string().uuid(),\n to_tombstone_id: z.string().uuid().nullable(),\n status: TransitionRuleStatusSchema,\n instruction: z.string().nullable(),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type TransitionFieldRequirement = z.infer<typeof TransitionFieldRequirementSchema>;\n\nexport const TransitionFieldRequirementWithTombstoneSchema =\n TransitionFieldRequirementSchema.extend({\n to_tombstone_name: z.string().nullable().default(null),\n field_name: z.string().default(''),\n field_type: z.string().default(''),\n });\nexport type TransitionFieldRequirementWithTombstone = z.infer<\n typeof TransitionFieldRequirementWithTombstoneSchema\n>;\n\nexport const BulkUpsertTransitionRequirementsSchema = z.object({\n requirements: z.array(\n z.object({\n to_column_id: z.string().uuid(),\n field_id: z.string().uuid(),\n instruction: z.string().nullable().optional(),\n }),\n ),\n});\nexport type BulkUpsertTransitionRequirements = z.infer<\n typeof BulkUpsertTransitionRequirementsSchema\n>;\n","import { z } from 'zod';\n\nconst ColumnInfoSchema = z.object({\n id: z.string().uuid(),\n name: z.string(),\n});\n\nexport const WorkflowViolationSchema = z.object({\n type: z.literal('workflow'),\n message: z.string(),\n from_column: ColumnInfoSchema,\n to_column: ColumnInfoSchema,\n allowed_targets: z.array(ColumnInfoSchema),\n});\nexport type WorkflowViolation = z.infer<typeof WorkflowViolationSchema>;\n\nexport const MissingFieldsViolationSchema = z.object({\n type: z.literal('missing_fields'),\n message: z.string(),\n fields: z.array(\n z.object({\n field_id: z.string().uuid(),\n name: z.string(),\n type: z.string(),\n config: z.record(z.string(), z.unknown()).default({}),\n }),\n ),\n});\nexport type MissingFieldsViolation = z.infer<typeof MissingFieldsViolationSchema>;\n\nexport const UnresolvedDependenciesViolationSchema = z.object({\n type: z.literal('unresolved_dependencies'),\n message: z.string(),\n blocking_tickets: z.array(\n z.object({\n id: z.string().uuid(),\n ticket_number: z.number().int(),\n title: z.string(),\n column: z.string(),\n }),\n ),\n});\nexport type UnresolvedDependenciesViolation = z.infer<typeof UnresolvedDependenciesViolationSchema>;\n\nexport const TransitionViolationSchema = z.discriminatedUnion('type', [\n WorkflowViolationSchema,\n MissingFieldsViolationSchema,\n UnresolvedDependenciesViolationSchema,\n]);\nexport type TransitionViolation = z.infer<typeof TransitionViolationSchema>;\n\nexport const TransitionBlockedErrorSchema = z.object({\n success: z.literal(false),\n error: z.object({\n code: z.literal('TRANSITION_BLOCKED'),\n violations: z.array(TransitionViolationSchema),\n }),\n});\nexport type TransitionBlockedError = z.infer<typeof TransitionBlockedErrorSchema>;\n","import { z } from 'zod';\n\nexport const TicketLinkTypeSchema = z.enum(['blocks', 'relates_to', 'duplicates']);\nexport type TicketLinkType = z.infer<typeof TicketLinkTypeSchema>;\n\nexport const ResolvedWhenSchema = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('column'),\n column_ids: z.array(z.string().uuid()).min(1),\n }),\n z.object({\n type: z.literal('archived'),\n }),\n z.object({\n type: z.literal('column_or_archived'),\n column_ids: z.array(z.string().uuid()),\n }),\n]);\nexport type ResolvedWhen = z.infer<typeof ResolvedWhenSchema>;\n\nexport const TicketLinkSchema = z.object({\n id: z.string().uuid(),\n source_id: z.string().uuid(),\n target_id: z.string().uuid(),\n link_type: TicketLinkTypeSchema,\n project_id: z.string().uuid(),\n created_by: z.string().uuid(),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n resolved_at: z.string().datetime({ offset: true }).nullable().optional(),\n resolved_by: z.string().uuid().nullable().optional(),\n});\nexport type TicketLink = z.infer<typeof TicketLinkSchema>;\n\nexport const TicketLinkWithDetailsSchema = TicketLinkSchema.extend({\n source: z.object({\n id: z.string().uuid(),\n ticket_number: z.number().int(),\n title: z.string(),\n column_name: z.string().nullable(),\n }),\n target: z.object({\n id: z.string().uuid(),\n ticket_number: z.number().int(),\n title: z.string(),\n column_name: z.string().nullable(),\n }),\n});\nexport type TicketLinkWithDetails = z.infer<typeof TicketLinkWithDetailsSchema>;\n\nexport const CreateTicketLinkSchema = z.object({\n source_ticket_id: z.string().uuid(),\n target_ticket_id: z.string().uuid(),\n link_type: TicketLinkTypeSchema,\n});\nexport type CreateTicketLink = z.infer<typeof CreateTicketLinkSchema>;\n\nexport const DependencyRequirementSchema = z.object({\n id: z.string().uuid(),\n board_id: z.string().uuid(),\n to_column_id: z.string().uuid().nullable().optional(),\n to_tombstone_id: z.string().uuid().nullable().optional(),\n instruction: z.string().nullable().optional(),\n status: z.enum(['active', 'broken']),\n resolved_when: ResolvedWhenSchema.nullable().optional(),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type DependencyRequirement = z.infer<typeof DependencyRequirementSchema>;\n","import { z } from 'zod';\n\nexport const ColumnTombstoneSchema = z.object({\n id: z.string().uuid(),\n board_id: z.string().uuid(),\n name: z.string(),\n color: z.string(),\n deleted_at: z.string().datetime({ offset: true }),\n});\nexport type ColumnTombstone = z.infer<typeof ColumnTombstoneSchema>;\n","import { z } from 'zod';\n\nexport const GifSchema = z.object({\n id: z.string(),\n title: z.string(),\n url: z.string().url(),\n preview_url: z.string().url(),\n width: z.number().int(),\n height: z.number().int(),\n});\nexport type Gif = z.infer<typeof GifSchema>;\n\nexport const GifSearchQuerySchema = z.object({\n q: z.string().min(1).max(100),\n});\n\nexport const GifResponseSchema = z.object({\n gifs: z.array(GifSchema),\n});\nexport type GifResponse = z.infer<typeof GifResponseSchema>;\n","import { z } from 'zod';\n\nexport const ThemePaletteSchema = z.enum(['kantban', 'seventies-coffee']);\nexport type ThemePalette = z.infer<typeof ThemePaletteSchema>;\n\nexport const ThemeModeSchema = z.enum(['light', 'dark', 'system']);\nexport type ThemeMode = z.infer<typeof ThemeModeSchema>;\n\nexport const UserPreferencesSchema = z.object({\n user_id: z.string().uuid(),\n theme_palette: ThemePaletteSchema,\n theme_mode: ThemeModeSchema,\n});\nexport type UserPreferences = z.infer<typeof UserPreferencesSchema>;\n\nexport const UpdateUserPreferencesSchema = z.object({\n theme_palette: ThemePaletteSchema.optional(),\n theme_mode: ThemeModeSchema.optional(),\n});\nexport type UpdateUserPreferences = z.infer<typeof UpdateUserPreferencesSchema>;\n","import { z } from 'zod';\n\nexport const ActivityActionSchema = z.enum([\n 'ticket_created', 'ticket_moved', 'ticket_updated',\n 'comment_added', 'field_changed', 'ticket_archived',\n 'github_reference_created', 'github_reference_updated', 'template_executed', 'sprint_closed',\n 'signal_created',\n 'document_updated', 'board_updated', 'column_updated', 'signal_deleted', 'transition_rule_changed',\n 'firing_constraint_created', 'firing_constraint_updated', 'firing_constraint_deleted',\n 'pipeline_session_completed',\n]);\nexport type ActivityAction = z.infer<typeof ActivityActionSchema>;\n\nexport const ActivityResourceTypeSchema = z.enum([\n 'ticket', 'comment', 'field_value', 'board', 'document', 'ticket_reference', 'pipeline_template', 'signal', 'column',\n 'pipeline_session',\n]);\nexport type ActivityResourceType = z.infer<typeof ActivityResourceTypeSchema>;\n\nexport const ActivityLogSchema = z.object({\n id: z.string().uuid(),\n project_id: z.string().uuid(),\n actor_id: z.string().uuid(),\n action: ActivityActionSchema,\n resource_type: ActivityResourceTypeSchema,\n resource_id: z.string().uuid(),\n board_id: z.string().uuid().nullable().default(null),\n ticket_id: z.string().uuid().nullable().default(null),\n metadata: z.record(z.string(), z.unknown()).default({}),\n created_at: z.string().datetime({ offset: true }),\n});\nexport type ActivityLog = z.infer<typeof ActivityLogSchema>;\n\nexport const ActivityFeedQuerySchema = z.object({\n since: z.string().datetime({ offset: true }).optional(),\n types: z.string().optional(),\n via: z.string().optional(),\n boardId: z.string().uuid().optional(),\n ticketId: z.string().uuid().optional(),\n columnId: z.string().uuid().optional(),\n sessionId: z.string().uuid().optional(),\n limit: z.coerce.number().int().min(1).max(200).optional().default(20),\n cursor: z.string().optional(),\n});\nexport type ActivityFeedQuery = z.infer<typeof ActivityFeedQuerySchema>;\n","import { z } from 'zod';\n\nexport const TicketMetricsSchema = z.object({\n ticket_id: z.string().uuid(),\n board_id: z.string().uuid(),\n project_id: z.string().uuid(),\n created_at: z.string().datetime({ offset: true }),\n first_active_at: z.string().datetime({ offset: true }).nullable(),\n done_at: z.string().datetime({ offset: true }),\n lead_time_hours: z.number(),\n cycle_time_hours: z.number().nullable(),\n column_transitions: z.number().int(),\n backward_moves: z.number().int(),\n assignee_changes: z.number().int(),\n labels: z.record(z.string(), z.unknown()).default({}),\n});\nexport type TicketMetrics = z.infer<typeof TicketMetricsSchema>;\n","import { z } from 'zod';\n\nexport const DailySnapshotSchema = z.object({\n id: z.string().uuid(),\n project_id: z.string().uuid(),\n board_id: z.string().uuid(),\n snapshot_date: z.string(),\n column_id: z.string().uuid(),\n column_name: z.string(),\n ticket_count: z.number().int(),\n});\nexport type DailySnapshot = z.infer<typeof DailySnapshotSchema>;\n","import { z } from 'zod';\n\n// plan_to_tickets\nexport const PlanItemSchema = z.object({\n title: z.string().min(1).max(500),\n description: z.string().max(10000).optional(),\n columnName: z.string().optional(),\n fieldValues: z.record(z.string(), z.unknown()).optional(),\n subtasks: z.array(z.object({\n title: z.string().min(1).max(500),\n description: z.string().max(10000).optional(),\n })).optional(),\n});\nexport type PlanItem = z.infer<typeof PlanItemSchema>;\n\nexport const PlanToTicketsBodySchema = z.object({\n plan: z.array(PlanItemSchema).min(1).max(50),\n dryRun: z.boolean().optional().default(true),\n});\nexport type PlanToTicketsBody = z.infer<typeof PlanToTicketsBodySchema>;\n\n// suggest_next_task\nexport const SuggestNextTaskQuerySchema = z.object({\n boardId: z.string().uuid().optional(),\n userId: z.string().uuid().optional(),\n count: z.coerce.number().optional().default(5),\n});\nexport type SuggestNextTaskQuery = z.infer<typeof SuggestNextTaskQuerySchema>;\n\nexport const TaskScoreSchema = z.object({\n ticketId: z.string().uuid(),\n ticketNumber: z.number(),\n title: z.string(),\n score: z.number(),\n breakdown: z.record(z.string(), z.number()),\n reasoning: z.string(),\n columnName: z.string(),\n boardName: z.string(),\n assigneeName: z.string().nullable(),\n timeInColumn: z.number(),\n timeUnit: z.enum(['minutes', 'hours', 'days']).default('days'),\n});\nexport type TaskScore = z.infer<typeof TaskScoreSchema>;\n\n// start_working_on\nexport const StartWorkingBodySchema = z.object({\n moveToColumn: z.string().optional(),\n});\nexport type StartWorkingBody = z.infer<typeof StartWorkingBodySchema>;\n\n// complete_task\nexport const CompleteTaskBodySchema = z.object({\n moveToColumn: z.string().optional(),\n completionComment: z.string().max(10000).optional(),\n suggestNext: z.boolean().optional().default(true),\n handoff: z.record(z.string(), z.unknown()).optional(),\n});\nexport type CompleteTaskBody = z.infer<typeof CompleteTaskBodySchema>;\n\n// detect_bottlenecks\nexport const BottleneckResultSchema = z.object({\n wip_violations: z.array(z.object({\n column: z.string(),\n limit: z.number(),\n actual: z.number(),\n tickets: z.array(z.object({ id: z.string(), title: z.string(), ticket_number: z.number() })),\n })),\n stuck_tickets: z.array(z.object({\n ticket: z.object({ id: z.string(), title: z.string(), ticket_number: z.number() }),\n column: z.string(),\n time_in_column: z.number(),\n time_unit: z.enum(['minutes', 'hours', 'days']).default('days'),\n last_activity_at: z.string().nullable(),\n })),\n blocked_chains: z.array(z.object({\n blocking_ticket: z.object({ id: z.string(), title: z.string(), ticket_number: z.number() }),\n blocked_tickets: z.array(z.object({ id: z.string(), title: z.string(), ticket_number: z.number() })),\n reason: z.string(),\n })),\n unassigned_active: z.array(z.object({\n ticket: z.object({ id: z.string(), title: z.string(), ticket_number: z.number() }),\n column: z.string(),\n })),\n suggestions: z.array(z.string()),\n circuit_breaker_proximity: z.array(z.object({\n ticket: z.object({ id: z.string(), title: z.string(), ticket_number: z.number() }),\n column: z.string(),\n backward_transitions: z.number(),\n threshold: z.number(),\n })).optional(),\n});\nexport type BottleneckResult = z.infer<typeof BottleneckResultSchema>;\n\n// get_ticket_context response\nexport const TicketContextSchema = z.object({\n ticket: z.record(z.string(), z.unknown()),\n comments: z.array(z.record(z.string(), z.unknown())),\n field_values: z.array(z.record(z.string(), z.unknown())),\n linked_tickets: z.array(z.record(z.string(), z.unknown())),\n linked_documents: z.array(z.record(z.string(), z.unknown())),\n references: z.array(z.record(z.string(), z.unknown())),\n signals: z.array(z.record(z.string(), z.unknown())).optional(),\n transitions: z.array(z.record(z.string(), z.unknown())).optional(),\n});\nexport type TicketContext = z.infer<typeof TicketContextSchema>;\n\n// search_documents_chunked\nexport const ChunkedSearchBodySchema = z.object({\n query: z.string().min(1),\n maxChunks: z.number().optional().default(5),\n});\nexport type ChunkedSearchBody = z.infer<typeof ChunkedSearchBodySchema>;\n","import { z } from 'zod';\n\nexport const DashboardBoardSummarySchema = z.object({\n id: z.string().uuid(),\n name: z.string(),\n columns: z.array(z.object({\n id: z.string().uuid(),\n name: z.string(),\n ticket_count: z.number(),\n wip_limit: z.number().nullable(),\n })),\n total_tickets: z.number(),\n});\nexport type DashboardBoardSummary = z.infer<typeof DashboardBoardSummarySchema>;\n\nexport const DashboardProjectSchema = z.object({\n id: z.string().uuid(),\n name: z.string(),\n ticket_prefix: z.string(),\n boards: z.array(DashboardBoardSummarySchema),\n my_tickets: z.array(z.object({\n id: z.string().uuid(),\n ticket_number: z.number(),\n title: z.string(),\n board_name: z.string(),\n column_name: z.string().nullable(),\n time_in_column: z.number().nullable(),\n time_unit: z.enum(['minutes', 'hours', 'days']).default('days'),\n })),\n});\nexport type DashboardProject = z.infer<typeof DashboardProjectSchema>;\n\nexport const UserDashboardSchema = z.object({\n projects: z.array(DashboardProjectSchema),\n urgent: z.array(z.object({\n type: z.string(),\n message: z.string(),\n ticket_id: z.string().uuid().optional(),\n board_id: z.string().uuid().optional(),\n })),\n});\nexport type UserDashboard = z.infer<typeof UserDashboardSchema>;\n","import { z } from 'zod';\n\nexport const GithubConnectionSchema = z.object({\n id: z.string().uuid(),\n user_id: z.string().uuid(),\n github_user_id: z.string(),\n github_username: z.string(),\n scopes: z.array(z.string()),\n created_at: z.string().datetime({ offset: true }),\n});\nexport type GithubConnection = z.infer<typeof GithubConnectionSchema>;\n\n// webhook_secret intentionally omitted — sensitive, same rationale as token fields above\nexport const ProjectGithubRepoSchema = z.object({\n id: z.string().uuid(),\n project_id: z.string().uuid(),\n github_repo_owner: z.string(),\n github_repo_name: z.string(),\n github_repo_id: z.number().int(),\n connected_by: z.string().uuid(),\n webhook_id: z.number().int().nullable(),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type ProjectGithubRepo = z.infer<typeof ProjectGithubRepoSchema>;\n\nexport const ConnectGithubRepoBodySchema = z.object({\n repo_owner: z.string().min(1),\n repo_name: z.string().min(1),\n});\nexport type ConnectGithubRepoBody = z.infer<typeof ConnectGithubRepoBodySchema>;\n","import { z } from 'zod';\n\nexport const TicketReferenceProviderSchema = z.enum(['github']);\nexport type TicketReferenceProvider = z.infer<typeof TicketReferenceProviderSchema>;\n\nexport const TicketReferenceTypeSchema = z.enum(['pull_request', 'branch', 'commit']);\nexport type TicketReferenceType = z.infer<typeof TicketReferenceTypeSchema>;\n\nexport const TicketReferenceStatusSchema = z.enum(['open', 'closed', 'merged', 'draft', 'active', 'deleted', 'none']);\nexport type TicketReferenceStatus = z.infer<typeof TicketReferenceStatusSchema>;\n\nexport const TicketReferenceLinkedBySchema = z.enum(['convention', 'manual']);\nexport type TicketReferenceLinkedBy = z.infer<typeof TicketReferenceLinkedBySchema>;\n\nexport const TicketReferenceSchema = z.object({\n id: z.string().uuid(),\n ticket_id: z.string().uuid(),\n project_id: z.string().uuid(),\n provider: TicketReferenceProviderSchema,\n type: TicketReferenceTypeSchema,\n external_id: z.string(),\n external_url: z.string().url(),\n title: z.string(),\n status: TicketReferenceStatusSchema,\n metadata: z.record(z.string(), z.unknown()).default({}),\n linked_by: TicketReferenceLinkedBySchema,\n synced_at: z.string().datetime({ offset: true }).nullable(),\n created_at: z.string().datetime({ offset: true }),\n});\nexport type TicketReference = z.infer<typeof TicketReferenceSchema>;\n\nexport const LinkGithubReferenceBodySchema = z.object({\n type: TicketReferenceTypeSchema,\n url: z.string().url(),\n});\nexport type LinkGithubReferenceBody = z.infer<typeof LinkGithubReferenceBodySchema>;\n","import { z } from 'zod';\n\n// --- Query params ---\n\nexport const AnalyticsQuerySchema = z.object({\n boardId: z.string().uuid().optional(),\n since: z.string().datetime({ offset: true }).optional(),\n until: z.string().datetime({ offset: true }).optional(),\n assigneeId: z.string().uuid().optional(),\n resolution: z.enum(['auto', 'minutes', 'hours', 'days']).optional().default('auto'),\n});\nexport type AnalyticsQuery = z.infer<typeof AnalyticsQuerySchema>;\n\nexport const VelocityQuerySchema = AnalyticsQuerySchema.extend({\n weeks: z.coerce.number().int().min(1).max(52).optional().default(8),\n});\nexport type VelocityQuery = z.infer<typeof VelocityQuerySchema>;\n\nexport const ForecastQuerySchema = z.object({\n boardId: z.string().uuid().optional(),\n remainingTickets: z.coerce.number().int().min(0).optional(),\n targetDate: z.string().date().optional(),\n});\nexport type ForecastQuery = z.infer<typeof ForecastQuerySchema>;\n\nexport const EstimationQuerySchema = z.object({\n ticketId: z.string().uuid(),\n});\nexport type EstimationQuery = z.infer<typeof EstimationQuerySchema>;\n\nexport const RetrospectiveQuerySchema = AnalyticsQuerySchema.extend({\n periodDays: z.coerce.number().int().min(1).max(365).optional().default(14),\n});\nexport type RetrospectiveQuery = z.infer<typeof RetrospectiveQuerySchema>;\n\n// --- Response schemas ---\n\n// Velocity\n\nexport const VelocityWeekSchema = z.object({\n week_start: z.string(),\n completed: z.number().int(),\n avg_cycle_time_value: z.number().nullable(),\n});\nexport type VelocityWeek = z.infer<typeof VelocityWeekSchema>;\n\nexport const VelocityResponseSchema = z.object({\n weeks: z.array(VelocityWeekSchema),\n trend: z.enum(['up', 'down', 'stable']),\n avg_throughput: z.number(),\n time_unit: z.enum(['minutes', 'hours', 'days']).default('days'),\n});\nexport type VelocityResponse = z.infer<typeof VelocityResponseSchema>;\n\n// Cycle time\n\nexport const CycleTimeDataPointSchema = z.object({\n ticket_id: z.string().uuid(),\n ticket_number: z.number().int().optional(),\n title: z.string().optional(),\n done_at: z.string(),\n cycle_time_value: z.number(),\n});\nexport type CycleTimeDataPoint = z.infer<typeof CycleTimeDataPointSchema>;\n\nexport const CycleTimeResponseSchema = z.object({\n data_points: z.array(CycleTimeDataPointSchema),\n percentiles: z.object({\n p50: z.number(),\n p85: z.number(),\n p95: z.number(),\n }),\n avg_cycle_time_value: z.number(),\n total_tickets: z.number().int(),\n time_unit: z.enum(['minutes', 'hours', 'days']).default('days'),\n});\nexport type CycleTimeResponse = z.infer<typeof CycleTimeResponseSchema>;\n\n// Lead time\n\nexport const LeadTimeBucketSchema = z.object({\n range_label: z.string(),\n min_hours: z.number(),\n max_hours: z.number(),\n count: z.number().int(),\n});\nexport type LeadTimeBucket = z.infer<typeof LeadTimeBucketSchema>;\n\nexport const LeadTimeResponseSchema = z.object({\n buckets: z.array(LeadTimeBucketSchema),\n percentiles: z.object({\n p50: z.number(),\n p85: z.number(),\n p95: z.number(),\n }),\n avg_lead_time_value: z.number(),\n total_tickets: z.number().int(),\n time_unit: z.enum(['minutes', 'hours', 'days']).default('days'),\n});\nexport type LeadTimeResponse = z.infer<typeof LeadTimeResponseSchema>;\n\n// CFD\n\nexport const CfdColumnDataSchema = z.object({\n column_name: z.string(),\n count: z.number().int(),\n});\nexport type CfdColumnData = z.infer<typeof CfdColumnDataSchema>;\n\nexport const CfdDateEntrySchema = z.object({\n date: z.string(),\n columns: z.array(CfdColumnDataSchema),\n});\nexport type CfdDateEntry = z.infer<typeof CfdDateEntrySchema>;\n\nexport const CfdResponseSchema = z.object({\n entries: z.array(CfdDateEntrySchema),\n column_names: z.array(z.string()),\n});\nexport type CfdResponse = z.infer<typeof CfdResponseSchema>;\n\n// Forecast\n\nexport const ForecastProbabilitySchema = z.object({\n confidence: z.number(),\n date: z.string(),\n weeks: z.number(),\n});\nexport type ForecastProbability = z.infer<typeof ForecastProbabilitySchema>;\n\nexport const ForecastResponseSchema = z.object({\n remaining_tickets: z.number().int(),\n simulations: z.number().int(),\n probabilities: z.array(ForecastProbabilitySchema),\n target_date_probability: z.number().nullable(),\n weekly_throughput_avg: z.number(),\n weekly_throughput_stddev: z.number(),\n data_weeks: z.number().int(),\n});\nexport type ForecastResponse = z.infer<typeof ForecastResponseSchema>;\n\n// Estimation\n\nexport const EstimationResponseSchema = z.object({\n ticket_id: z.string().uuid(),\n similar_count: z.number().int(),\n cycle_time_estimate: z.object({\n min: z.number(),\n max: z.number(),\n avg: z.number(),\n median: z.number(),\n p85: z.number(),\n }).nullable(),\n similar_tickets: z.array(z.object({\n ticket_id: z.string().uuid(),\n title: z.string(),\n cycle_time_value: z.number(),\n keyword_overlap: z.number().int(),\n })),\n time_unit: z.enum(['minutes', 'hours', 'days']).default('days'),\n});\nexport type EstimationResponse = z.infer<typeof EstimationResponseSchema>;\n\n// Retrospective\n\nexport const RetrospectiveInsightsSchema = z.object({\n period_days: z.number().int(),\n throughput: z.object({\n created: z.number().int(),\n completed: z.number().int(),\n net: z.number().int(),\n }),\n bottlenecks: z.object({\n high_backward_moves: z.array(z.object({\n ticket_id: z.string().uuid(),\n backward_moves: z.number().int(),\n })),\n avg_backward_moves: z.number(),\n }),\n rework: z.object({\n total_backward_moves: z.number().int(),\n tickets_with_rework: z.number().int(),\n }),\n workload: z.array(z.object({\n assignee_id: z.string().uuid(),\n completed: z.number().int(),\n avg_cycle_time_value: z.number().nullable(),\n })),\n wip: z.object({\n current_in_progress: z.number().int(),\n }),\n time_unit: z.enum(['minutes', 'hours', 'days']).default('days'),\n});\nexport type RetrospectiveInsights = z.infer<typeof RetrospectiveInsightsSchema>;\n\n// Per-board analytics summary\n\nexport const BoardAnalyticsSummarySchema = z.object({\n velocity: VelocityResponseSchema,\n cycle_time: z.object({\n avg_value: z.number(),\n p85_value: z.number(),\n total_completed: z.number().int(),\n time_unit: z.enum(['minutes', 'hours', 'days']).default('days'),\n }),\n wip: z.object({\n current: z.number().int(),\n limit: z.number().int().nullable(),\n }),\n});\nexport type BoardAnalyticsSummary = z.infer<typeof BoardAnalyticsSummarySchema>;\n","import { z } from 'zod';\n\nexport const PipelineTemplateStepSchema = z.object({\n name: z.string(),\n tool: z.string(),\n description: z.string(),\n params: z.record(z.string(), z.unknown()),\n condition: z.string().optional(),\n onError: z.enum(['stop', 'skip', 'warn']),\n});\nexport type PipelineTemplateStep = z.infer<typeof PipelineTemplateStepSchema>;\n\nexport const PipelineTemplateSchema = z.object({\n id: z.string().uuid(),\n project_id: z.string().uuid().nullable(),\n name: z.string(),\n display_name: z.string(),\n description: z.string(),\n steps: z.array(PipelineTemplateStepSchema),\n parameters: z.record(z.string(), z.unknown()).default({}),\n is_builtin: z.boolean(),\n created_at: z.string().datetime({ offset: true }),\n updated_at: z.string().datetime({ offset: true }),\n});\nexport type PipelineTemplate = z.infer<typeof PipelineTemplateSchema>;\n\nexport const CreatePipelineTemplateBodySchema = z.object({\n name: z.string().min(1).max(100),\n display_name: z.string().min(1).max(200),\n description: z.string().max(2000),\n steps: z.array(PipelineTemplateStepSchema).min(1),\n parameters: z.record(z.string(), z.unknown()).optional().default({}),\n});\nexport type CreatePipelineTemplateBody = z.infer<typeof CreatePipelineTemplateBodySchema>;\n\nexport const UpdatePipelineTemplateBodySchema = z.object({\n name: z.string().min(1).max(100).optional(),\n display_name: z.string().min(1).max(200).optional(),\n description: z.string().max(2000).optional(),\n steps: z.array(PipelineTemplateStepSchema).min(1).optional(),\n parameters: z.record(z.string(), z.unknown()).optional(),\n});\nexport type UpdatePipelineTemplateBody = z.infer<typeof UpdatePipelineTemplateBodySchema>;\n\nexport const RunPipelineTemplateBodySchema = z.object({\n parameters: z.record(z.string(), z.unknown()).optional().default({}),\n dryRun: z.boolean().optional().default(true),\n});\nexport type RunPipelineTemplateBody = z.infer<typeof RunPipelineTemplateBodySchema>;\n","import { z } from 'zod';\n\nexport const TimeUnitSchema = z.enum(['minutes', 'hours', 'days']);\nexport type TimeUnit = z.infer<typeof TimeUnitSchema>;\n\n/**\n * Detect the most meaningful display unit from an array of hour values.\n * Uses the median to avoid outlier skew.\n */\nexport function detectTimeUnit(hoursValues: number[]): TimeUnit {\n if (hoursValues.length === 0) return 'days';\n const sorted = [...hoursValues].sort((a, b) => a - b);\n const mid = Math.floor(sorted.length / 2);\n const median = sorted.length % 2 === 0\n ? (sorted[mid - 1]! + sorted[mid]!) / 2\n : sorted[mid]!;\n if (median < 1) return 'minutes';\n if (median < 24) return 'hours';\n return 'days';\n}\n\nexport function convertFromHours(hours: number, unit: TimeUnit): number {\n switch (unit) {\n case 'minutes': return hours * 60;\n case 'hours': return hours;\n case 'days': return hours / 24;\n }\n}\n\nexport function formatDuration(value: number, unit: TimeUnit): string {\n const r = Math.round(value * 10) / 10;\n switch (unit) {\n case 'minutes': return `${Math.round(value)} min`;\n case 'hours': return `${r} ${r === 1 ? 'hr' : 'hrs'}`;\n case 'days': return `${r} ${r === 1 ? 'day' : 'days'}`;\n }\n}\n\nexport function formatDurationShort(value: number, unit: TimeUnit): string {\n const r = Math.round(value * 10) / 10;\n switch (unit) {\n case 'minutes': return `${Math.round(value)}m`;\n case 'hours': return `${r}h`;\n case 'days': return `${r}d`;\n }\n}\n\nexport function timeUnitLabel(unit: TimeUnit): string {\n switch (unit) {\n case 'minutes': return 'Minutes';\n case 'hours': return 'Hours';\n case 'days': return 'Days';\n }\n}\n","import { z } from 'zod';\nimport { TimeUnitSchema } from './time-unit.js';\n\n// --- Shared ---\n\nconst PeriodSchema = z.object({\n since: z.string(),\n until: z.string(),\n});\n\n// --- Query schemas ---\n\nexport const PipelineAnalyticsQuerySchema = z.object({\n boardId: z.string().uuid().optional(),\n since: z.string().datetime({ offset: true }).optional(),\n until: z.string().datetime({ offset: true }).optional(),\n});\nexport type PipelineAnalyticsQuery = z.infer<typeof PipelineAnalyticsQuerySchema>;\n\nexport const PipelineAnalyticsResolutionQuerySchema = PipelineAnalyticsQuerySchema.extend({\n resolution: z.enum(['auto', 'minutes', 'hours', 'days']).optional(),\n});\nexport type PipelineAnalyticsResolutionQuery = z.infer<typeof PipelineAnalyticsResolutionQuerySchema>;\n\nexport const RunsQuerySchema = z.object({\n boardId: z.string().uuid().optional(),\n limit: z.coerce.number().optional().default(10),\n});\nexport type RunsQuery = z.infer<typeof RunsQuerySchema>;\n\nexport const SessionsQuerySchema = z.object({\n boardId: z.string().uuid().optional(),\n since: z.string().datetime({ offset: true }).optional(),\n limit: z.coerce.number().optional().default(20),\n});\nexport type SessionsQuery = z.infer<typeof SessionsQuerySchema>;\n\n// --- Response schemas ---\n\n// Autonomy\n\nexport const AutonomyResponseSchema = z.object({\n total_completed: z.number(),\n fully_autonomous: z.number(),\n human_assisted: z.number(),\n human_only: z.number(),\n autonomy_rate: z.number(),\n period: PeriodSchema,\n});\nexport type AutonomyResponse = z.infer<typeof AutonomyResponseSchema>;\n\n// Runs\n\nexport const RunSchema = z.object({\n started_at: z.string(),\n ended_at: z.string(),\n tickets_entered: z.number(),\n tickets_completed: z.number(),\n tickets_escalated: z.number(),\n duration_minutes: z.number(),\n});\nexport type Run = z.infer<typeof RunSchema>;\n\nexport const RunsResponseSchema = z.object({\n runs: z.array(RunSchema),\n});\nexport type RunsResponse = z.infer<typeof RunsResponseSchema>;\n\n// Sessions\n\nexport const SessionSchema = z.object({\n session_id: z.string(),\n started_at: z.string(),\n last_activity_at: z.string(),\n action_count: z.number(),\n});\nexport type Session = z.infer<typeof SessionSchema>;\n\nexport const SessionsResponseSchema = z.object({\n sessions: z.array(SessionSchema),\n});\nexport type SessionsResponse = z.infer<typeof SessionsResponseSchema>;\n\n// Throughput\n\nexport const ThroughputBucketSchema = z.object({\n timestamp: z.string(),\n autonomous: z.number(),\n human_assisted: z.number(),\n human_only: z.number(),\n escalated: z.number(),\n});\nexport type ThroughputBucket = z.infer<typeof ThroughputBucketSchema>;\n\nexport const ThroughputResponseSchema = z.object({\n buckets: z.array(ThroughputBucketSchema),\n time_unit: TimeUnitSchema,\n period: PeriodSchema,\n});\nexport type ThroughputResponse = z.infer<typeof ThroughputResponseSchema>;\n","import { z } from 'zod';\n\nexport const TransitionQuerySchema = z.object({\n limit: z.coerce.number().int().min(1).max(100).default(20),\n});\nexport type TransitionQuery = z.infer<typeof TransitionQuerySchema>;\n\nexport const TicketTransitionSchema = z.object({\n id: z.string().uuid(),\n project_id: z.string().uuid(),\n board_id: z.string().uuid(),\n ticket_id: z.string().uuid(),\n from_column: z.string().uuid().nullable(),\n to_column: z.string().uuid(),\n moved_by: z.string().uuid().nullable(),\n handoff: z.record(z.string(), z.unknown()).nullable().default(null),\n created_at: z.string().datetime({ offset: true }),\n});\nexport type TicketTransition = z.infer<typeof TicketTransitionSchema>;\n\nexport const TicketTransitionWithColumnsSchema = TicketTransitionSchema.extend({\n from_column_name: z.string().nullable().optional(),\n to_column_name: z.string().nullable().optional(),\n});\nexport type TicketTransitionWithColumns = z.infer<typeof TicketTransitionWithColumnsSchema>;\n","import { z } from 'zod';\nimport { FiringConstraintSubjectTypeSchema, FiringConstraintOperatorSchema } from './firing-constraint.schema.js';\n\n// Advisor configuration — Phase 2\nexport const AdvisorConfigSchema = z.object({\n enabled: z.boolean(),\n max_invocations: z.number().int().positive().optional(),\n model: z.string().optional(),\n});\n\nexport type AdvisorConfig = z.infer<typeof AdvisorConfigSchema>;\n\n// Model routing configuration — Phase 2\nexport const ModelRoutingSchema = z.object({\n initial: z.string(),\n escalation: z.array(z.string()).min(1),\n escalate_after: z.number().int().positive().optional(),\n});\n\nexport type ModelRouting = z.infer<typeof ModelRoutingSchema>;\n\n// Stuck detection configuration — Phase 3\nexport const StuckDetectionConfigSchema = z.object({\n enabled: z.boolean(),\n first_check: z.number().int().positive().optional(),\n interval: z.number().int().positive().optional(),\n});\n\nexport type StuckDetectionConfig = z.infer<typeof StuckDetectionConfigSchema>;\n\n// Agent configuration — per-column execution settings\nexport const AgentConfigSchema = z.object({\n execution_mode: z.enum(['kant_loop', 'cron_poll', 'manual']).optional(),\n model_preference: z.string().optional(),\n max_iterations: z.number().int().positive().optional(),\n max_budget_usd: z.number().positive().nullable().optional(),\n concurrency: z.number().int().positive().optional(),\n gutter_threshold: z.number().int().positive().optional(),\n poll_interval_seconds: z.number().int().positive().optional(),\n worktree: z.object({\n enabled: z.boolean(),\n path_pattern: z.string().optional(), // legacy — still accepted, ignored by orchestrator\n on_move: z.enum(['keep', 'merge', 'cleanup']).optional(),\n on_done: z.enum(['pr', 'merge', 'cleanup']).optional(),\n integration_branch: z.string().optional(),\n }).optional(),\n invocation_tier: z.enum(['auto', 'light', 'heavy']).optional(),\n run_memory: z.boolean().optional(),\n lookahead_column_id: z.string().uuid().optional(),\n advisor: AdvisorConfigSchema.optional(),\n checkpoint: z.boolean().optional(),\n model_routing: ModelRoutingSchema.optional(),\n builtin_tools: z.string().optional(), // Value for --tools flag: space-separated list, '' to strip all\n allowed_tools: z.array(z.string()).optional(),\n disallowed_tools: z.array(z.string()).optional(),\n stuck_detection: StuckDetectionConfigSchema.optional(),\n extensions: z.record(z.string(), z.unknown()).optional(),\n}).strict();\n\nexport type AgentConfig = z.infer<typeof AgentConfigSchema>;\n\n// Ticket fingerprint — multi-table counts for gutter detection\nexport const TicketFingerprintSchema = z.object({\n column_id: z.string().uuid().nullable(),\n updated_at: z.string().datetime({ offset: true }),\n comment_count: z.number(),\n signal_count: z.number(),\n field_value_count: z.number(),\n});\n\nexport type TicketFingerprint = z.infer<typeof TicketFingerprintSchema>;\n\n// Debt item — tracks skipped criteria or missing work\nexport const DebtItemSchema = z.object({\n type: z.enum(['dropped_criterion', 'missing_test', 'missing_functionality', 'unmet_requirement', 'waived_gate']),\n description: z.string(),\n severity: z.enum(['high', 'medium', 'low']),\n source_column: z.string().optional(),\n});\n\nexport type DebtItem = z.infer<typeof DebtItemSchema>;\n\n// Loop checkpoint — persisted state for a running kant loop\nexport const LoopCheckpointSchema = z.object({\n run_id: z.string().uuid(),\n column_id: z.string().uuid(),\n iteration: z.number().int().nonnegative(),\n gutter_count: z.number().int().nonnegative(),\n advisor_invocations: z.number().int().nonnegative(),\n model_tier: z.string(),\n last_fingerprint: TicketFingerprintSchema.optional(),\n worktree_name: z.string().optional(),\n updated_at: z.string().datetime({ offset: true }),\n});\n\nexport type LoopCheckpoint = z.infer<typeof LoopCheckpointSchema>;\n\n// Board scope — orchestration overview\nexport const PipelineContextBoardScopeSchema = z.object({\n scope: z.literal('board'),\n board: z.object({\n id: z.string().uuid(),\n name: z.string(),\n }),\n backlog_ticket_count: z.number().int(),\n columns: z.array(z.object({\n id: z.string().uuid(),\n name: z.string(),\n type: z.string(),\n position: z.number().int(),\n wip_limit: z.number().int().nullable(),\n goal: z.string().nullable().optional(),\n ticket_count: z.number().int(),\n has_prompt: z.boolean(),\n constraint_count: z.number().int().nonnegative().optional(),\n })),\n circuit_breaker: z.object({\n threshold: z.number().int().nullable(),\n target_column_id: z.string().uuid().nullable(),\n }).nullable(),\n tool_prefix: z.string(),\n board_constraint_count: z.number().int().nonnegative().optional(),\n});\nexport type PipelineContextBoardScope = z.infer<typeof PipelineContextBoardScopeSchema>;\n\n// Column scope — agent work queue\nexport const PipelineContextColumnScopeSchema = z.object({\n scope: z.literal('column'),\n column: z.object({\n id: z.string().uuid(),\n name: z.string(),\n goal: z.string().nullable().optional(),\n }),\n prompt_document: z.object({\n id: z.string().uuid(),\n title: z.string(),\n content: z.string(),\n }).nullable().optional(),\n agent_config: z.record(z.string(), z.unknown()).nullable().optional(),\n tickets: z.array(z.object({\n id: z.string().uuid(),\n ticket_number: z.number().int(),\n title: z.string(),\n assignee_name: z.string().nullable(),\n backward_transitions: z.number().int().optional(),\n })),\n transition_rules: z.string().nullable(),\n signals: z.array(z.string()),\n field_definitions: z.array(z.object({\n id: z.string().uuid(),\n name: z.string(),\n type: z.string(),\n })),\n tool_prefix: z.string(),\n firing_constraints: z.array(z.object({\n id: z.string().uuid(),\n name: z.string(),\n enabled: z.boolean(),\n subject_type: FiringConstraintSubjectTypeSchema,\n subject_ref: z.string(),\n operator: FiringConstraintOperatorSchema,\n value: z.unknown(),\n scope: z.string(),\n notify: z.boolean(),\n column_id: z.string().uuid().nullable(),\n })).optional(),\n});\nexport type PipelineContextColumnScope = z.infer<typeof PipelineContextColumnScopeSchema>;\n\n// Ticket scope — working on specific ticket\nexport const PipelineContextTicketScopeSchema = z.object({\n scope: z.literal('ticket'),\n ticket: z.object({\n id: z.string().uuid(),\n ticket_number: z.number().int(),\n title: z.string(),\n description: z.string().nullable(),\n backward_transitions: z.number().int(),\n assignee: z.object({\n id: z.string().uuid(),\n name: z.string(),\n }).nullable(),\n column: z.object({\n id: z.string().uuid(),\n name: z.string(),\n type: z.string(),\n }).nullable(),\n }),\n field_values: z.array(z.object({\n field_name: z.string(),\n value: z.unknown(),\n })),\n transitions: z.array(z.object({\n from: z.string().nullable(),\n to: z.string(),\n handoff: z.record(z.string(), z.unknown()).nullable(),\n timestamp: z.string(),\n })),\n comments: z.array(z.object({\n author: z.string(),\n body: z.string(),\n created_at: z.string(),\n })),\n ticket_links: z.array(z.object({\n direction: z.enum(['outward', 'inward']),\n link_type: z.enum(['blocks', 'relates_to', 'duplicates']),\n ticket_id: z.string().uuid(),\n ticket_number: z.number().int(),\n title: z.string(),\n column_name: z.string().nullable(),\n resolved: z.boolean(),\n })),\n parent: z.object({\n id: z.string().uuid(),\n ticket_number: z.number().int(),\n title: z.string(),\n }).nullable(),\n children: z.array(z.object({\n id: z.string().uuid(),\n ticket_number: z.number().int(),\n title: z.string(),\n column_name: z.string().nullable(),\n })),\n signals: z.array(z.string()),\n linked_documents: z.array(z.object({\n id: z.string().uuid(),\n title: z.string(),\n content: z.string().optional(),\n truncated: z.boolean().optional(),\n })),\n transition_rules: z.string().nullable(),\n dependency_requirements: z.string(),\n tool_prefix: z.string(),\n});\nexport type PipelineContextTicketScope = z.infer<typeof PipelineContextTicketScopeSchema>;\n\nexport const PipelineContextResponseSchema = z.discriminatedUnion('scope', [\n PipelineContextBoardScopeSchema,\n PipelineContextColumnScopeSchema,\n PipelineContextTicketScopeSchema,\n]);\nexport type PipelineContextResponse = z.infer<typeof PipelineContextResponseSchema>;\n","import { z } from 'zod';\n\n// --- Gate Results ---\n\nexport const GateResultSchema = z.object({\n name: z.string(),\n passed: z.boolean(),\n required: z.boolean(),\n duration_ms: z.number().int().nonnegative(),\n output: z.string().max(1_048_576),\n stderr: z.string(),\n exit_code: z.number().int().min(0).max(255),\n timed_out: z.boolean(),\n});\nexport type GateResult = z.infer<typeof GateResultSchema>;\n\nexport const GateDeltaSchema = z.enum(['improved', 'same', 'regressed', 'first_check']);\nexport type GateDelta = z.infer<typeof GateDeltaSchema>;\n\nexport const GateSnapshotSchema = z.object({\n timestamp: z.string().datetime({ offset: true }),\n iteration: z.number().int().nonnegative(),\n results: z.array(GateResultSchema),\n all_required_passed: z.boolean(),\n delta_from_previous: GateDeltaSchema,\n});\nexport type GateSnapshot = z.infer<typeof GateSnapshotSchema>;\n\n// --- Gate Config (pipeline.gates.yaml) ---\n\nexport const GateDefinitionSchema = z.object({\n name: z.string().min(1),\n run: z.string().min(1),\n required: z.boolean().default(true),\n timeout: z.string().regex(/^\\d+(s|m)$/, 'Must be format like \"60s\" or \"5m\"').optional(),\n});\nexport type GateDefinition = z.infer<typeof GateDefinitionSchema>;\n\nexport const ColumnGateOverrideSchema = z.object({\n extend: z.boolean().default(true),\n gates: z.array(GateDefinitionSchema).default([]),\n});\nexport type ColumnGateOverride = z.infer<typeof ColumnGateOverrideSchema>;\n\nexport const BudgetConfigSchema = z.object({\n max_input_tokens: z.number().int().positive(),\n max_output_tokens: z.number().int().positive(),\n warn_pct: z.number().int().min(1).max(100).default(75),\n});\nexport type BudgetConfig = z.infer<typeof BudgetConfigSchema>;\n\nexport const PricingEntrySchema = z.object({\n input_per_mtok: z.number().nonnegative(),\n output_per_mtok: z.number().nonnegative(),\n});\nexport type PricingEntry = z.infer<typeof PricingEntrySchema>;\n\nexport const GateSettingsSchema = z.object({\n cwd: z.string().optional(),\n env: z.record(z.string(), z.string()).optional(),\n total_timeout: z.string().optional(),\n budget: BudgetConfigSchema.optional(),\n pricing: z.record(z.string(), PricingEntrySchema).optional(),\n});\nexport type GateSettings = z.infer<typeof GateSettingsSchema>;\n\nexport const GateConfigSchema = z.object({\n default: z.array(GateDefinitionSchema),\n columns: z.record(z.string(), ColumnGateOverrideSchema).optional(),\n settings: GateSettingsSchema.optional(),\n});\nexport type GateConfig = z.infer<typeof GateConfigSchema>;\n\n// --- Evaluator Verdicts ---\n\nexport const VerdictFindingSchema = z.object({\n severity: z.enum(['blocker', 'warning', 'nit']),\n file: z.string().optional(),\n line: z.number().int().positive().optional(),\n description: z.string(),\n});\nexport type VerdictFinding = z.infer<typeof VerdictFindingSchema>;\n\nexport const VerdictSchema = z.object({\n decision: z.enum(['approve', 'reject']),\n summary: z.string(),\n findings: z.array(VerdictFindingSchema),\n});\nexport type Verdict = z.infer<typeof VerdictSchema>;\n","import type { AgentConfig, GateResult } from '@kantban/types';\nimport { VALID_BRANCH_RE } from './gate-config.js';\n\ninterface ColumnContext {\n scope: 'column';\n column: { id: string; name: string; goal: string | null };\n prompt_document: { id: string; title: string; content: string } | null;\n agent_config: AgentConfig | null;\n tickets: Array<{ id: string; ticket_number: number; title: string }>;\n transition_rules: string;\n signals: string[];\n field_definitions: Array<{ id: string; name: string; type: string }>;\n tool_prefix: string;\n}\n\ninterface TicketContext {\n scope: 'ticket';\n ticket: {\n id: string;\n ticket_number: number;\n title: string;\n description: string;\n backward_transitions: number;\n assignee: { id: string; name: string } | null;\n column: { id: string; name: string; type: string } | null;\n };\n field_values: Array<{ field_name: string; value: unknown }>;\n transitions: Array<{ from: string | null; to: string; handoff: unknown; timestamp: string }>;\n comments: Array<{ author: string; body: string; created_at: string; pinned?: boolean }>;\n ticket_links: Array<{\n direction: 'outward' | 'inward';\n link_type: 'blocks' | 'relates_to' | 'duplicates';\n ticket_id: string;\n ticket_number: number;\n title: string;\n column_name: string | null;\n resolved: boolean;\n }>;\n parent: { id: string; ticket_number: number; title: string } | null;\n children: Array<{ id: string; ticket_number: number; title: string; column_name: string | null }>;\n signals: string[];\n linked_documents: Array<{ id: string; title: string; content?: string; truncated?: boolean }>;\n transition_rules: string;\n dependency_requirements: string;\n tool_prefix: string;\n}\n\ninterface IterationMeta {\n iteration: number;\n maxIterations: number;\n projectId: string;\n gutterCount: number;\n gutterThreshold: number;\n lookaheadDocument?: { title: string; content: string } | undefined;\n runMemoryContent?: string | undefined;\n gateResults?: GateResult[] | undefined;\n rejectionFindings?: string | undefined;\n}\n\nexport type { ColumnContext, TicketContext };\n\n// --- Token budget system ---\n\nexport const PROMPT_BUDGETS = {\n system_preamble: 800,\n gate_results: 500,\n column_prompt: Infinity, // NEVER truncated\n lookahead: 1000,\n run_memory: 1000,\n rejection: 500,\n ticket_details: 1500,\n comments: 2000,\n transition_rules: 500,\n linked_documents: 2000,\n metadata: 200,\n} as const;\n\nexport function estimateTokens(text: string): number {\n return Math.ceil(text.length / 4);\n}\n\nexport function truncateToTokens(text: string, maxTokens: number): string {\n if (maxTokens === Infinity) return text;\n const maxChars = maxTokens * 4;\n if (text.length <= maxChars) return text;\n return text.slice(0, maxChars) + '\\n[...truncated]';\n}\n\nexport function windowComments(\n comments: Array<{ author: string; body: string; created_at: string; pinned?: boolean }>,\n maxTokens: number,\n): string {\n const pinned = comments.filter((c) => c.pinned);\n const unpinned = comments.filter((c) => !c.pinned);\n const recentFull = unpinned.slice(-3);\n const older = unpinned.slice(0, -3);\n\n const parts: string[] = [];\n\n // Pinned always included in full\n for (const c of pinned) {\n parts.push(`[pinned] **${c.author}** (${c.created_at}):\\n${c.body}\\n`);\n }\n\n // Recent 3 in full\n for (const c of recentFull) {\n parts.push(`**${c.author}** (${c.created_at}):\\n${c.body}\\n`);\n }\n\n // Older compressed to one line\n for (const c of older) {\n const firstLine = c.body.split('\\n')[0]?.slice(0, 100) ?? '';\n parts.push(`- ${c.author}: ${firstLine}`);\n }\n\n const joined = parts.join('\\n');\n return truncateToTokens(joined, maxTokens);\n}\n\n// --- Prompt composer ---\n\nexport function composePrompt(\n columnContext: ColumnContext,\n ticketContext: TicketContext,\n meta: IterationMeta,\n): string {\n const parts: string[] = [];\n\n if (!columnContext.prompt_document?.content) {\n throw new Error(\n `Column \"${columnContext.column.name}\" has no prompt document. ` +\n `Configure a prompt document for this column before running the pipeline.`\n );\n }\n\n // --- 1. System preamble (identity, iteration N/M) ---\n const hasUnresolvedBlockers = ticketContext.ticket_links.some(\n (l) => l.direction === 'inward' && l.link_type === 'blocks' && !l.resolved,\n );\n\n parts.push(`# Pipeline Agent Instructions\n\nYou are a pipeline automation agent processing ticket #${String(ticketContext.ticket.ticket_number)}: \"${ticketContext.ticket.title}\".\n\n## Your Goal\nAdvance this ticket through the pipeline. Your success criteria:\n1. Complete the work described in the ticket and column prompt below\n2. Move the ticket to the next column using \\`${ticketContext.tool_prefix}move_ticket\\`\n3. Or mark it complete using \\`${ticketContext.tool_prefix}complete_task\\`\n\n## Iteration ${meta.iteration} of ${meta.maxIterations}\n${meta.iteration >= meta.maxIterations - 1 ? '**FINAL ITERATIONS** — prioritize moving the ticket NOW or it will be marked stalled.' : `You have ${meta.maxIterations - meta.iteration} iterations remaining. Make meaningful progress each iteration.`}\n${meta.gutterCount > 0 ? `\n## Progress Warning\nNo meaningful progress detected for ${meta.gutterCount} consecutive iteration(s).\n${meta.gutterThreshold - meta.gutterCount} iteration(s) remain before this loop is terminated as stalled.\n\nYou MUST change approach. What you've been doing is not working. Consider:\n- Breaking the problem into smaller steps\n- Setting a field value to record partial progress\n- Creating a comment explaining what's blocking you\n- Asking for help via a signal\n` : ''}\n## Available Tools (prefix: ${ticketContext.tool_prefix})\n- **${ticketContext.tool_prefix}check_transition** — ALWAYS call this before moving. Returns allowed/blocked with recovery steps.\n Params: \\`{ projectId, boardId, ticketId, targetColumnId }\\`\n- **${ticketContext.tool_prefix}move_ticket** — Move ticket to a new column. Include handoff data for the next agent.\n Params: \\`{ projectId, ticketId, column_id, handoff: { branch?, commit_sha?, build_status?, notes? } }\\`\n- **${ticketContext.tool_prefix}complete_task** — Move to a done column with handoff data.\n Params: \\`{ projectId, ticketId, handoff: { ... } }\\`\n- **${ticketContext.tool_prefix}set_field_value** — Set a required field before moving (check transition rules).\n Params: \\`{ projectId, ticketId, fieldId, value }\\`\n- **${ticketContext.tool_prefix}create_signal** — Leave knowledge for future agents at any scope.\n- **${ticketContext.tool_prefix}create_comment** — Add progress notes to the ticket.\n- **${ticketContext.tool_prefix}append_run_memory** — Share discoveries with future agents.\n Params: \\`{ section: 'conventions'|'interfaces'|'failures'|'decisions', content: string }\\`\n\n## Iteration Summary\nIf you made meaningful progress this iteration, create a comment using \\`${ticketContext.tool_prefix}create_comment\\` summarizing:\n- What you accomplished\n- What remains to be done\n- Any blockers or issues encountered\n\nThis comment is your handoff to the next iteration. Without it, the next iteration starts blind.\n\n## Critical Rules\n1. **Always call ${ticketContext.tool_prefix}check_transition before ${ticketContext.tool_prefix}move_ticket** — moves that violate workflow rules will fail.\n2. **If the ticket has UNRESOLVED blockers, do not attempt to move it.** Create a comment explaining you are waiting, then stop.\n3. **Include handoff data** when moving — the next agent needs context (branch name, build status, etc.).\n4. **If you cannot make progress**, create a comment explaining why and stop. Do not burn iterations.\n${hasUnresolvedBlockers ? '\\n**WARNING: This ticket has UNRESOLVED blockers. Do NOT attempt to move it. Document your status and stop.**\\n' : ''}\n---\n`);\n\n // Worktree context — operational instructions when worktree isolation is active\n const worktreeConfig = columnContext.agent_config?.worktree;\n if (worktreeConfig?.enabled) {\n const integrationBranch = worktreeConfig.integration_branch ?? 'main';\n\n if (!VALID_BRANCH_RE.test(integrationBranch)) {\n parts.push(`## Git Worktree\\n\\nYou are working in an isolated git worktree. Integration branch name is invalid — contact the pipeline operator.`);\n } else {\n parts.push(`## Git Worktree\n\nYou are working in an isolated git worktree. Before starting any code changes:\n1. Merge \\`${integrationBranch}\\` into your current branch: \\`git merge '${integrationBranch}'\\`\n2. Resolve any merge conflicts before proceeding with ticket work\n3. Never rebase — always merge (rebase destroys traceability across the pipeline)\n\nAfter completing your work, commit all changes to your worktree branch.\n`);\n }\n }\n\n // --- 2. Signals (guardrails — at the top) ---\n if (ticketContext.signals.length > 0) {\n parts.push(`\\n## Signals (Guardrails)\\n`);\n for (const s of ticketContext.signals) {\n parts.push(`- ${s}`);\n }\n }\n\n // --- 3. Previous gate results (what failed) ---\n if (meta.gateResults && meta.gateResults.length > 0) {\n parts.push(`\\n## Previous Gate Results\\n`);\n for (const r of meta.gateResults) {\n const status = r.passed ? 'PASS' : 'FAIL';\n const req = r.required ? '(required)' : '(advisory)';\n parts.push(`- **${r.name}** ${status} ${req} [${String(r.duration_ms)}ms]`);\n if (!r.passed && r.output) {\n parts.push(` \\`\\`\\`\\n ${truncateToTokens(r.output, 200)}\\n \\`\\`\\``);\n }\n }\n }\n\n // --- 4. Rejection elevation ---\n // Prefer meta.rejectionFindings, fall back to comment-based detection for backward compat\n if (meta.rejectionFindings) {\n parts.push(`\\n## Previous Rejection (fix these before resubmitting)\\n`);\n parts.push(truncateToTokens(meta.rejectionFindings, PROMPT_BUDGETS.rejection));\n } else {\n const rejectionComment = ticketContext.comments\n .slice()\n .reverse()\n .find((c) => c.body.startsWith('QA REJECTION:') || c.body.startsWith('REJECTION:'));\n if (rejectionComment) {\n parts.push(`\\n## Previous Rejection (fix these before resubmitting)\\n`);\n parts.push(truncateToTokens(rejectionComment.body, PROMPT_BUDGETS.rejection));\n }\n }\n\n // --- 5. Column prompt document (NEVER truncated) ---\n if (columnContext.prompt_document?.content) {\n parts.push(columnContext.prompt_document.content);\n }\n\n // --- 6. Lookahead — downstream column criteria ---\n if (meta.lookaheadDocument?.content) {\n parts.push(`\\n## Downstream Criteria (build to pass these)\\n`);\n parts.push(`*From: ${meta.lookaheadDocument.title}*\\n`);\n parts.push(truncateToTokens(meta.lookaheadDocument.content, PROMPT_BUDGETS.lookahead));\n }\n\n // --- 7. Run memory — cross-agent knowledge ---\n if (meta.runMemoryContent) {\n parts.push(`\\n## Run Memory\\n`);\n parts.push(truncateToTokens(meta.runMemoryContent, PROMPT_BUDGETS.run_memory));\n parts.push(`\\nYou can contribute to run memory using ${ticketContext.tool_prefix}append_run_memory.`);\n }\n\n // --- 8. Ticket details ---\n parts.push(`## Current Ticket\\n`);\n parts.push(`**Title:** ${ticketContext.ticket.title}`);\n parts.push(`**Ticket ID:** ${ticketContext.ticket.id}`);\n parts.push(`**Ticket Number:** ${String(ticketContext.ticket.ticket_number)}`);\n if (ticketContext.ticket.description) {\n parts.push(`\\n${truncateToTokens(ticketContext.ticket.description, PROMPT_BUDGETS.ticket_details)}`);\n }\n\n // Assignee and column position\n if (ticketContext.ticket.assignee) {\n parts.push(`**Assignee:** ${ticketContext.ticket.assignee.name}`);\n }\n if (ticketContext.ticket.column) {\n parts.push(`**Current Column:** ${ticketContext.ticket.column.name} (${ticketContext.ticket.column.type})`);\n }\n if (ticketContext.ticket.backward_transitions > 0) {\n parts.push(`**Backward Transitions:** ${String(ticketContext.ticket.backward_transitions)}`);\n }\n\n // Field values\n if (ticketContext.field_values.length > 0) {\n parts.push(`\\n## Field Values\\n`);\n for (const fv of ticketContext.field_values) {\n parts.push(`- **${fv.field_name}:** ${fv.value !== null ? JSON.stringify(fv.value) : '(not set)'}`);\n }\n }\n\n // Parent/children\n if (ticketContext.parent) {\n parts.push(`\\n## Parent Ticket\\n`);\n parts.push(`- #${String(ticketContext.parent.ticket_number)}: ${ticketContext.parent.title}`);\n }\n if (ticketContext.children.length > 0) {\n parts.push(`\\n## Child Tickets\\n`);\n for (const child of ticketContext.children) {\n parts.push(`- #${String(child.ticket_number)}: ${child.title}${child.column_name ? ` (${child.column_name})` : ''}`);\n }\n }\n\n // Transition history (handoff chain)\n if (ticketContext.transitions.length > 0) {\n parts.push(`\\n## Transition History\\n`);\n let transitionTokens = 0;\n const TRANSITION_BUDGET = 1000;\n for (const t of ticketContext.transitions) {\n let line = `- ${t.from ?? 'Backlog'} → ${t.to}`;\n if (t.handoff) line += ` (handoff: ${JSON.stringify(t.handoff)})`;\n const lineTokens = estimateTokens(line);\n if (transitionTokens + lineTokens > TRANSITION_BUDGET) {\n parts.push(`- [...truncated — ${String(ticketContext.transitions.length)} total transitions]`);\n break;\n }\n parts.push(line);\n transitionTokens += lineTokens;\n }\n }\n\n // Ticket links\n if (ticketContext.ticket_links.length > 0) {\n parts.push(`\\n## Ticket Links\\n`);\n const blockers = ticketContext.ticket_links.filter(l => l.direction === 'inward' && l.link_type === 'blocks');\n const blocking = ticketContext.ticket_links.filter(l => l.direction === 'outward' && l.link_type === 'blocks');\n const related = ticketContext.ticket_links.filter(l => l.link_type === 'relates_to');\n if (blockers.length > 0) {\n parts.push(`**Blocked by:**`);\n for (const l of blockers) {\n const status = l.resolved ? '(resolved)' : 'UNRESOLVED';\n parts.push(`- #${String(l.ticket_number)}: ${l.title} [${l.column_name ?? 'backlog'}] ${status}`);\n }\n }\n if (blocking.length > 0) {\n parts.push(`**Blocks:**`);\n for (const l of blocking) {\n parts.push(`- #${String(l.ticket_number)}: ${l.title} [${l.column_name ?? 'backlog'}]`);\n }\n }\n if (related.length > 0) {\n parts.push(`**Related:**`);\n for (const l of related) {\n parts.push(`- #${String(l.ticket_number)}: ${l.title}`);\n }\n }\n }\n\n // --- 9. Comments (windowed) ---\n if (ticketContext.comments.length > 0) {\n parts.push(`\\n## Comments\\n`);\n parts.push(windowComments(ticketContext.comments, PROMPT_BUDGETS.comments));\n }\n\n // --- 10. Transition rules ---\n if (ticketContext.transition_rules) {\n parts.push(`\\n## Transition Rules\\n`);\n parts.push(truncateToTokens(ticketContext.transition_rules, PROMPT_BUDGETS.transition_rules));\n }\n\n // Dependency requirements\n if (ticketContext.dependency_requirements && ticketContext.dependency_requirements !== 'No dependency or field requirements configured.') {\n parts.push(`\\n## Dependency & Field Requirements\\n`);\n parts.push(ticketContext.dependency_requirements);\n }\n\n // --- 11. Linked documents (truncated to budget) ---\n if (ticketContext.linked_documents.length > 0) {\n parts.push(`\\n## Linked Documents\\n`);\n let remainingTokens: number = PROMPT_BUDGETS.linked_documents;\n for (const doc of ticketContext.linked_documents) {\n if (doc.content) {\n const docHeader = `### ${doc.title}\\n`;\n const headerTokens = estimateTokens(docHeader);\n const contentTokens = estimateTokens(doc.content);\n if (headerTokens + contentTokens <= remainingTokens) {\n parts.push(docHeader);\n parts.push(doc.content);\n remainingTokens -= headerTokens + contentTokens;\n } else if (remainingTokens > headerTokens + 50) {\n // Truncate the document content to fit remaining budget\n parts.push(docHeader);\n parts.push(truncateToTokens(doc.content, remainingTokens - headerTokens));\n remainingTokens = 0;\n } else {\n parts.push(`- ${doc.title} (truncated — token budget exceeded)`);\n remainingTokens = 0;\n }\n } else if (doc.truncated) {\n parts.push(`- ${doc.title} (document too large — read via kantban_get_document)`);\n }\n if (remainingTokens <= 0) break;\n }\n }\n\n // --- 12. Metadata ---\n parts.push(`\\n## Pipeline Metadata\\n`);\n parts.push(`- Iteration: ${meta.iteration} / ${meta.maxIterations}`);\n parts.push(`- Project ID: ${meta.projectId}`);\n parts.push(`- Tool Prefix: ${ticketContext.tool_prefix}`);\n parts.push(`- Column: ${columnContext.column.name}`);\n parts.push(`- Goal: ${columnContext.column.goal ?? 'No goal set'}`);\n\n return parts.join('\\n');\n}\n","import { composePrompt, type ColumnContext, type TicketContext } from './prompt-composer.js';\nimport type { TicketFingerprint, GateSnapshot } from '@kantban/types';\nimport type { LoopCheckpoint } from './checkpoint.js';\nimport { shouldCheckStuckDetection, classifyTrajectory, type StuckDetectionConfig, type StuckDetectionInput, type StuckDetectionResult } from './stuck-detector.js';\nimport type { StreamJsonEvent } from './stream-parser.js';\n\nexport interface LoopConfig {\n maxIterations: number;\n gutterThreshold: number;\n model?: string;\n maxBudgetUsd?: number | null;\n worktreeName?: string;\n postMoveRetryDelayMs?: number;\n lookaheadColumnId?: string;\n runId?: string;\n startIteration?: number;\n startGutterCount?: number;\n onCheckpoint?: (ticketId: string, checkpoint: LoopCheckpoint) => Promise<void>;\n startFingerprint?: TicketFingerprint;\n stuckDetection?: StuckDetectionConfig;\n invokeStuckDetection?: (input: StuckDetectionInput) => Promise<StuckDetectionResult>;\n /** Run gates after each iteration and record snapshot. Returns GateSnapshot. */\n onPostIterationGates?: (ticketId: string, iteration: number) => Promise<GateSnapshot>;\n /** Resolved tool restrictions from profile */\n toolRestrictions?: {\n tools?: string;\n allowedTools?: string[];\n disallowedTools?: string[];\n includeMcpConfig?: boolean;\n };\n}\n\nexport interface LoopResult {\n reason: 'moved' | 'max_iterations' | 'stalled' | 'stopped' | 'error' | 'deleted';\n iterations: number;\n gutterCount: number;\n lastError?: string;\n model?: string;\n /** Final gate snapshot (if gates enabled) */\n finalGateSnapshot?: GateSnapshot;\n /** Final output from the loop (used by evaluator columns for verdict parsing) */\n output?: string;\n /** Cumulative tokens consumed (input) across all iterations */\n tokensIn?: number;\n /** Cumulative tokens consumed (output) across all iterations */\n tokensOut?: number;\n /** Cumulative tool calls across all iterations */\n toolCallCount?: number;\n /** Total wall-clock duration in ms across all iterations */\n durationMs?: number;\n}\n\nexport interface RalphLoopDeps {\n fetchTicketContext: (ticketId: string) => Promise<TicketContext>;\n fetchColumnContext: (columnId: string) => Promise<ColumnContext>;\n fetchFingerprint: (ticketId: string) => Promise<TicketFingerprint>;\n invokeClaudeP: (prompt: string, options: ClaudeInvokeOptions) => Promise<{ exitCode: number; output: string; toolCallCount: number; tokensIn: number; tokensOut: number }>;\n mcpConfigPath: string;\n projectId: string;\n log?: (message: string) => void;\n /** Fetch run memory content. Returns '' if not available. */\n fetchRunMemoryContent?: (() => Promise<string>) | undefined;\n /** Fetch the lookahead document for QA-forward prompting. */\n fetchLookaheadDocument?: (() => Promise<{ title: string; content: string } | undefined>) | undefined;\n /** Forward each stream-json event (for live pipeline streaming to browser) */\n onStreamEvent?: ((event: StreamJsonEvent, context: { runId: string; ticketId: string; columnId: string }) => void) | undefined;\n /** Emitted before each Claude invocation */\n onSessionStart?: ((meta: { runId: string; model: string; iteration: number }) => void) | undefined;\n /** Emitted after each Claude invocation completes */\n onSessionEnd?: ((meta: { runId: string; exitCode: number; tokensIn: number; tokensOut: number; toolCallCount: number; durationMs: number }) => void) | undefined;\n}\n\nexport interface ClaudeInvokeOptions {\n mcpConfigPath: string;\n model?: string | undefined;\n maxBudgetUsd?: number | null | undefined;\n worktree?: string | undefined;\n maxTurns?: number | undefined;\n /** Value for --tools flag. undefined = use defaults, '' = strip all */\n tools?: string | undefined;\n /** Values for --allowedTools flag */\n allowedTools?: string[] | undefined;\n /** Values for --disallowedTools flag */\n disallowedTools?: string[] | undefined;\n /** If false, omit --mcp-config from args */\n includeMcpConfig?: boolean | undefined;\n /** Callback for each stream-json event (for pipeline streaming) */\n onStreamEvent?: ((event: StreamJsonEvent) => void) | undefined;\n}\n\nconst API_TIMEOUT_MS = 30_000; // 30s timeout for API calls (fingerprint, context)\n\nfunction withTimeout<T>(promise: Promise<T>, ms: number, label: string): Promise<T> {\n let timer: ReturnType<typeof setTimeout>;\n return Promise.race([\n promise.finally(() => clearTimeout(timer)),\n new Promise<never>((_, reject) => {\n timer = setTimeout(() => reject(new Error(`${label} timed out after ${ms}ms`)), ms);\n }),\n ]);\n}\n\nexport class RalphLoop {\n private ticketId: string;\n private columnId: string;\n private config: LoopConfig;\n private deps: RalphLoopDeps;\n private stopped = false;\n private currentIteration = 0;\n\n constructor(ticketId: string, columnId: string, config: LoopConfig, deps: RalphLoopDeps) {\n this.ticketId = ticketId;\n this.columnId = columnId;\n this.config = config;\n this.deps = deps;\n }\n\n stop(): void {\n this.stopped = true;\n }\n\n get iteration(): number {\n return this.currentIteration;\n }\n\n private looksLike404(err: unknown): boolean {\n const statusCode = (err as { statusCode?: number })?.statusCode\n ?? (err as { status?: number })?.status;\n if (statusCode === 404) return true;\n const message = err instanceof Error ? err.message : String(err);\n return message.includes('API error 404');\n }\n\n async run(): Promise<LoopResult> {\n let gutterCount = this.config.startGutterCount ?? 0;\n let lastFingerprint: TicketFingerprint | null = this.config.startFingerprint ?? null;\n const log = this.deps.log ?? (() => {});\n const resolvedModel = this.config.model ?? 'default';\n const gateSnapshots: GateSnapshot[] = [];\n let cumulativeTokensIn = 0;\n let cumulativeTokensOut = 0;\n let cumulativeToolCalls = 0;\n let cumulativeDurationMs = 0;\n\n const withCosts = (r: LoopResult): LoopResult => ({\n ...r,\n tokensIn: cumulativeTokensIn,\n tokensOut: cumulativeTokensOut,\n toolCallCount: cumulativeToolCalls,\n durationMs: cumulativeDurationMs,\n });\n let lastOutput = '';\n\n const startIter = this.config.startIteration ?? 1;\n for (let i = startIter; i <= this.config.maxIterations; i++) {\n if (this.stopped) return withCosts({ reason: 'stopped', iterations: i - 1, gutterCount, model: resolvedModel });\n this.currentIteration = i;\n log(`Iteration ${i}/${this.config.maxIterations} starting`);\n\n // Capture baseline fingerprint on first iteration\n if (!lastFingerprint) {\n try {\n lastFingerprint = await withTimeout(\n this.deps.fetchFingerprint(this.ticketId),\n API_TIMEOUT_MS, 'fetchFingerprint (baseline)',\n );\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n log(`Baseline fingerprint fetch failed: ${message}`);\n if (this.looksLike404(err)) {\n return withCosts({ reason: 'deleted', iterations: i, gutterCount, model: resolvedModel });\n }\n return withCosts({ reason: 'error', iterations: i, gutterCount, lastError: `Baseline fingerprint failed: ${message}`, model: resolvedModel });\n }\n }\n\n // Fetch ticket and column context for this iteration\n let ticketCtx: TicketContext;\n let columnCtx: ColumnContext;\n try {\n [ticketCtx, columnCtx] = await Promise.all([\n withTimeout(this.deps.fetchTicketContext(this.ticketId), API_TIMEOUT_MS, 'fetchTicketContext'),\n withTimeout(this.deps.fetchColumnContext(this.columnId), API_TIMEOUT_MS, 'fetchColumnContext'),\n ]);\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n log(`Context fetch failed: ${message}`);\n if (this.looksLike404(err)) {\n return withCosts({ reason: 'deleted', iterations: i, gutterCount, model: resolvedModel });\n }\n return withCosts({ reason: 'error', iterations: i, gutterCount, lastError: `Context fetch failed: ${message}`, model: resolvedModel });\n }\n\n // Pre-flight column check — bail if ticket already moved\n if (ticketCtx.ticket.column && ticketCtx.ticket.column.id !== this.columnId) {\n log(`Ticket already in column ${ticketCtx.ticket.column.name}, not ${this.columnId} — exiting as moved`);\n return withCosts({ reason: 'moved', iterations: i - 1, gutterCount, model: resolvedModel });\n }\n\n // Fetch run memory and lookahead enrichments — non-blocking, failures are silenced\n const runMemoryContent = this.deps.fetchRunMemoryContent\n ? await this.deps.fetchRunMemoryContent().catch(() => '')\n : undefined;\n\n const lookaheadDocument = this.deps.fetchLookaheadDocument\n ? await this.deps.fetchLookaheadDocument().catch(() => undefined)\n : undefined;\n\n // Compose prompt from column context, ticket context, and enrichments\n let prompt: string;\n try {\n prompt = composePrompt(columnCtx, ticketCtx, {\n iteration: i,\n maxIterations: this.config.maxIterations,\n projectId: this.deps.projectId,\n gutterCount,\n gutterThreshold: this.config.gutterThreshold,\n runMemoryContent: runMemoryContent || undefined,\n lookaheadDocument,\n });\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n log(`Prompt composition failed: ${message}`);\n return withCosts({ reason: 'error', iterations: i, gutterCount, lastError: `Prompt composition failed: ${message}`, model: resolvedModel });\n }\n\n // Invoke Claude with the composed prompt\n if (this.stopped) return withCosts({ reason: 'stopped', iterations: i - 1, gutterCount, model: resolvedModel });\n log(`Invoking Claude (model=${this.config.model ?? 'default'})`);\n\n const iterationRunId = `${this.config.runId ?? this.ticketId}-iter-${String(i)}`;\n const iterationStart = Date.now();\n\n this.deps.onSessionStart?.({\n runId: iterationRunId,\n model: this.config.model ?? 'default',\n iteration: i,\n });\n\n const streamContext = { runId: iterationRunId, ticketId: this.ticketId, columnId: this.columnId };\n const { exitCode, output, toolCallCount, tokensIn, tokensOut } = await this.deps.invokeClaudeP(prompt, {\n mcpConfigPath: this.deps.mcpConfigPath,\n model: this.config.model,\n maxBudgetUsd: this.config.maxBudgetUsd,\n worktree: this.config.worktreeName,\n onStreamEvent: (event) => this.deps.onStreamEvent?.(event, streamContext),\n // Tool scoping\n ...(this.config.toolRestrictions && {\n tools: this.config.toolRestrictions.tools,\n allowedTools: this.config.toolRestrictions.allowedTools,\n disallowedTools: this.config.toolRestrictions.disallowedTools,\n includeMcpConfig: this.config.toolRestrictions.includeMcpConfig,\n }),\n });\n\n const iterationDurationMs = Date.now() - iterationStart;\n cumulativeTokensIn += tokensIn;\n cumulativeTokensOut += tokensOut;\n cumulativeToolCalls += toolCallCount;\n cumulativeDurationMs += iterationDurationMs;\n\n this.deps.onSessionEnd?.({\n runId: iterationRunId,\n exitCode,\n tokensIn,\n tokensOut,\n toolCallCount,\n durationMs: iterationDurationMs,\n });\n\n if (exitCode !== 0) {\n const snippet = output.slice(-200);\n log(`Claude exited with code ${exitCode}: ${snippet}`);\n return withCosts({ reason: 'error', iterations: i, gutterCount, lastError: `non-zero exit code: ${exitCode}. Last output: ${snippet}`, model: resolvedModel });\n }\n log(`Claude exited successfully`);\n lastOutput = output;\n\n // Post-iteration fingerprint check — detect if ticket moved out of column\n let afterFp: TicketFingerprint;\n try {\n const retryDelayMs = this.config.postMoveRetryDelayMs ?? 1500;\n afterFp = await withTimeout(\n this.deps.fetchFingerprint(this.ticketId),\n API_TIMEOUT_MS, 'fetchFingerprint (post-iteration)',\n );\n\n if (afterFp.column_id === this.columnId) {\n for (let retry = 0; retry < 2; retry++) {\n await new Promise((r) => setTimeout(r, retryDelayMs));\n if (this.stopped) break; // Honor stop during retry delay\n try {\n afterFp = await withTimeout(\n this.deps.fetchFingerprint(this.ticketId),\n API_TIMEOUT_MS, 'fetchFingerprint (retry)',\n );\n } catch (err) {\n log(`Fingerprint retry ${retry + 1} failed: ${err instanceof Error ? err.message : String(err)} — using last good value`);\n break; // retry fingerprint failed — use last good value\n }\n if (afterFp.column_id !== this.columnId) break;\n }\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n log(`Post-iteration fingerprint failed: ${message}`);\n if (this.looksLike404(err)) {\n return withCosts({ reason: 'deleted', iterations: i, gutterCount, model: resolvedModel });\n }\n return withCosts({ reason: 'error', iterations: i, gutterCount, lastError: `Post-iteration fingerprint failed: ${message}`, model: resolvedModel });\n }\n\n // Did ticket move?\n if (afterFp.column_id !== this.columnId) {\n log(`Ticket moved to column ${afterFp.column_id ?? 'null'}`);\n return withCosts({ reason: 'moved', iterations: i, gutterCount, model: resolvedModel, output: lastOutput });\n }\n\n // Gate-based gutter detection (preferred) or fingerprint fallback\n if (this.config.onPostIterationGates) {\n try {\n const snapshot = await this.config.onPostIterationGates(this.ticketId, i);\n gateSnapshots.push(snapshot);\n\n // Also check if any field values changed (complementary signal)\n const fieldDelta = lastFingerprint ? afterFp.field_value_count !== lastFingerprint.field_value_count : false;\n\n switch (snapshot.delta_from_previous) {\n case 'improved':\n if (gutterCount > 0) log(`Gate improvement detected — gutter counter reset`);\n gutterCount = 0;\n break;\n case 'same':\n if (!fieldDelta) {\n gutterCount++;\n log(`No gate progress (gutter ${gutterCount}/${this.config.gutterThreshold})`);\n } else {\n log(`Gates unchanged but fields changed — not incrementing gutter`);\n }\n break;\n case 'regressed':\n gutterCount += 2;\n log(`Gate regression detected (gutter ${gutterCount}/${this.config.gutterThreshold})`);\n break;\n case 'first_check':\n // First check — no delta info yet, don't adjust gutter\n break;\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n log(`Post-iteration gate check failed (non-blocking): ${message}`);\n // Fall back to fingerprint gutter on gate failure\n if (lastFingerprint && fingerprintsMatch(lastFingerprint, afterFp)) {\n gutterCount++;\n log(`No progress detected via fingerprint fallback (gutter ${gutterCount}/${this.config.gutterThreshold})`);\n } else {\n if (gutterCount > 0) log(`Progress detected — gutter counter reset`);\n gutterCount = 0;\n }\n }\n } else {\n // Original fingerprint-based gutter detection\n if (lastFingerprint && fingerprintsMatch(lastFingerprint, afterFp)) {\n gutterCount++;\n log(`No progress detected (gutter ${gutterCount}/${this.config.gutterThreshold})`);\n } else {\n if (gutterCount > 0) log(`Progress detected — gutter counter reset`);\n gutterCount = 0;\n }\n }\n lastFingerprint = afterFp;\n\n // Pattern-based stuck detection — classifies trajectory as progressing/spinning/blocked\n if (this.config.stuckDetection && shouldCheckStuckDetection(this.config.stuckDetection, i)) {\n try {\n let sdStatus: 'progressing' | 'spinning' | 'blocked';\n let sdEvidence: string;\n let sdConfidence: number;\n\n if (gateSnapshots.length > 0) {\n // Deterministic classification from gate data\n const trajectory = classifyTrajectory(gateSnapshots);\n sdStatus = trajectory.status === 'regressing' ? 'spinning' : trajectory.status;\n sdEvidence = trajectory.evidence;\n sdConfidence = trajectory.confidence;\n log(`Gate-based stuck detection: ${sdStatus} (confidence=${String(sdConfidence)}) — ${sdEvidence}`);\n } else if (this.config.invokeStuckDetection) {\n // Legacy LLM-based classification\n const sdInput: StuckDetectionInput = {\n ticketNumber: ticketCtx.ticket.ticket_number,\n ticketTitle: ticketCtx.ticket.title,\n columnName: columnCtx.column.name,\n iteration: i,\n maxIterations: this.config.maxIterations,\n recentComments: ticketCtx.comments.slice(-3).map((c) => ({\n author: c.author,\n body: c.body,\n })),\n };\n const sdResult = await this.config.invokeStuckDetection(sdInput);\n sdStatus = sdResult.status;\n sdEvidence = sdResult.evidence;\n sdConfidence = sdResult.confidence;\n log(`Stuck detection: ${sdStatus} (confidence=${String(sdConfidence)}) — ${sdEvidence}`);\n } else {\n // No detection method available — skip\n sdStatus = 'progressing';\n sdEvidence = 'no detection method';\n sdConfidence = 0;\n }\n\n switch (sdStatus) {\n case 'progressing':\n if (gutterCount > 0) {\n log(`Stuck detection override: resetting gutter counter (was ${String(gutterCount)})`);\n gutterCount = 0;\n }\n break;\n case 'spinning':\n gutterCount += 2;\n log(`Stuck detection: spinning — gutter accelerated to ${String(gutterCount)}/${String(this.config.gutterThreshold)}`);\n break;\n case 'blocked':\n log(`Stuck detection: blocked — exiting immediately`);\n return withCosts({\n reason: 'stalled',\n iterations: i,\n gutterCount: this.config.gutterThreshold,\n model: resolvedModel,\n output: lastOutput,\n ...(gateSnapshots.length > 0 && { finalGateSnapshot: gateSnapshots[gateSnapshots.length - 1] }),\n });\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n log(`Stuck detection failed (non-blocking): ${message}`);\n }\n }\n\n // Gutter threshold exit (after stuck detection may have adjusted gutterCount)\n if (gutterCount >= this.config.gutterThreshold) {\n return withCosts({\n reason: 'stalled',\n iterations: i,\n gutterCount,\n model: resolvedModel,\n output: lastOutput,\n ...(gateSnapshots.length > 0 && { finalGateSnapshot: gateSnapshots[gateSnapshots.length - 1] }),\n });\n }\n\n // Write checkpoint after iteration to allow resume on restart\n if (this.config.onCheckpoint) {\n try {\n await this.config.onCheckpoint(this.ticketId, {\n run_id: this.config.runId ?? '00000000-0000-0000-0000-000000000000',\n column_id: this.columnId,\n iteration: i,\n gutter_count: gutterCount,\n advisor_invocations: 0, // tracked by orchestrator, not loop\n model_tier: resolvedModel,\n last_fingerprint: afterFp,\n updated_at: new Date().toISOString(),\n worktree_name: this.config.worktreeName,\n });\n } catch (err) {\n // Checkpoint write must never block the loop\n log(`Checkpoint write failed (non-blocking): ${err instanceof Error ? err.message : String(err)}`);\n }\n }\n }\n\n return withCosts({\n reason: 'max_iterations',\n iterations: this.config.maxIterations,\n gutterCount,\n model: resolvedModel,\n output: lastOutput,\n ...(gateSnapshots.length > 0 && { finalGateSnapshot: gateSnapshots[gateSnapshots.length - 1] }),\n });\n }\n}\n\nfunction fingerprintsMatch(a: TicketFingerprint, b: TicketFingerprint): boolean {\n // column_id change is detected separately (exits as 'moved').\n // signal_count is excluded because dependency-blocked agents inflate it.\n // comment_count IS included because agents are instructed to create\n // iteration summary comments — genuine new comments indicate progress.\n return a.column_id === b.column_id\n && a.field_value_count === b.field_value_count\n && a.comment_count === b.comment_count;\n}\n","import { writeFileSync, unlinkSync, mkdirSync, existsSync, readdirSync } from 'node:fs';\nimport { join, dirname } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { homedir } from 'node:os';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\n/**\n * Generate (or overwrite) a stable MCP config file for the given board.\n * Uses a deterministic path (~/.kantban/pipelines/<boardId>/mcp-config.json)\n * so that child claude -p processes can always find it, even if the\n * orchestrator restarts between iterations.\n */\nexport function generateMcpConfig(apiUrl: string, apiToken: string, boardId: string): string {\n // Use local MCP server if running from the monorepo (dev mode),\n // otherwise fall back to the published npm package.\n const localMcpPath = join(__dirname, '..', '..', '..', 'mcp', 'dist', 'index.js');\n const useLocal = existsSync(localMcpPath);\n\n const kantbanServer = useLocal\n ? {\n command: 'node',\n args: [localMcpPath],\n env: {\n KANTBAN_API_TOKEN: apiToken,\n KANTBAN_API_URL: apiUrl,\n },\n }\n : {\n command: 'npx',\n args: ['-y', 'kantban-mcp@latest'],\n env: {\n KANTBAN_API_TOKEN: apiToken,\n KANTBAN_API_URL: apiUrl,\n },\n };\n\n const config = {\n mcpServers: {\n kantban: kantbanServer,\n },\n };\n\n const dir = join(homedir(), '.kantban', 'pipelines', boardId);\n mkdirSync(dir, { recursive: true, mode: 0o700 });\n const filePath = join(dir, 'mcp-config.json');\n writeFileSync(filePath, JSON.stringify(config, null, 2), { mode: 0o600 });\n return filePath;\n}\n\nexport function cleanupMcpConfig(filePath: string): void {\n try {\n if (existsSync(filePath)) {\n unlinkSync(filePath);\n }\n } catch {\n // Non-critical — file may already be gone\n }\n}\n\n/**\n * Generate an MCP config file that includes BOTH the kantban server AND the\n * gate proxy server for a specific column. The gate proxy runs as a local\n * Node process bundled with the CLI and enforces column-level gates during\n * pipeline execution.\n *\n * The file is written to a deterministic, column-scoped path:\n * ~/.kantban/pipelines/<boardId>/mcp-config-<columnId>.json\n */\nexport function generateGateProxyMcpConfig(\n apiUrl: string,\n apiToken: string,\n boardId: string,\n gateConfigPath: string,\n columnId: string,\n columnName: string,\n projectId: string,\n): string {\n const localMcpPath = join(__dirname, '..', '..', '..', 'mcp', 'dist', 'index.js');\n const useLocal = existsSync(localMcpPath);\n\n const kantbanServer = useLocal\n ? { command: 'node', args: [localMcpPath], env: { KANTBAN_API_TOKEN: apiToken, KANTBAN_API_URL: apiUrl } }\n : { command: 'npx', args: ['-y', 'kantban-mcp@latest'], env: { KANTBAN_API_TOKEN: apiToken, KANTBAN_API_URL: apiUrl } };\n\n // Gate proxy runs as a local Node script bundled with the CLI\n const gateProxyPath = join(__dirname, 'gate-proxy-server.js');\n const gateProxyServer = {\n command: 'node',\n args: [gateProxyPath],\n env: {\n GATE_CONFIG_PATH: gateConfigPath,\n COLUMN_ID: columnId,\n COLUMN_NAME: columnName,\n PROJECT_ID: projectId,\n KANTBAN_API_TOKEN: apiToken,\n KANTBAN_API_URL: apiUrl,\n },\n };\n\n const config = {\n mcpServers: {\n kantban: kantbanServer,\n 'kantban-gates': gateProxyServer,\n },\n };\n\n const dir = join(homedir(), '.kantban', 'pipelines', boardId);\n mkdirSync(dir, { recursive: true, mode: 0o700 });\n const filePath = join(dir, `mcp-config-${columnId}.json`);\n writeFileSync(filePath, JSON.stringify(config, null, 2), { mode: 0o600 });\n return filePath;\n}\n\n/**\n * Remove all gate-proxy MCP config files for a given pipeline directory.\n * Called on shutdown to ensure credentials don't persist on disk.\n */\nexport function cleanupGateProxyConfigs(pipelineDir: string): void {\n try {\n const files = readdirSync(pipelineDir);\n for (const f of files) {\n if (f.startsWith('mcp-config-') && f.endsWith('.json')) {\n try { unlinkSync(join(pipelineDir, f)); } catch { /* ignore */ }\n }\n }\n } catch { /* directory may not exist */ }\n}\n"],"mappings":"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","names":["z","z","z","z","z","z","z","z","z","z","z","z","z","z","IconSchema","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z"]}
|