{"version":3,"sources":["../node_modules/tsup/assets/cjs_shims.js","../.claude/lib/context-manager.ts","../src/init.ts","../src/cli.ts"],"sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () => \n  typeof document === \"undefined\" \n    ? new URL(`file:${__filename}`).href \n    : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') \n      ? document.currentScript.src \n      : new URL(\"main.js\", document.baseURI).href;\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","/**\n * Agent Context Management System (Layer 2)\n *\n * This system maintains state across all agents without mixing implementation details.\n * It provides:\n * - Task registration and tracking\n * - Inter-agent dependency management\n * - Structured handoff protocols\n * - Context window allocation\n * - Conflict detection\n */\n\nimport { readFileSync, writeFileSync, existsSync, mkdirSync, readdirSync } from 'fs';\nimport { join } from 'path';\nimport { glob } from 'glob';\nimport { parse as parseToml } from 'smol-toml';\n\n// ===========================\n// Type Definitions\n// ===========================\n\nexport interface TechnologyStack {\n  language: 'python' | 'nodejs' | 'go' | 'rust' | 'java' | 'unknown';\n  packageManager: string;\n  framework?: string;\n  projectFiles: string[];\n  suggestedAgents: string[];\n}\n\nexport interface AgentRegistry {\n  language: string;\n  packageFiles: string[];\n  packageManager: string;\n  agents: string[];\n  frameworkDetection?: (dependencies: string[]) => string | undefined;\n}\n\nexport interface Task {\n  taskId: string;\n  description: string;\n  assignedTo: string;\n  status: 'pending' | 'in_progress' | 'completed' | 'blocked';\n  dependencies: string[];\n  interfaces: Record<string, string>;\n  constraints: string[];\n  estimatedContextTokens: number;\n  createdAt: Date;\n  completedAt?: Date;\n  artifacts?: AgentArtifact;\n}\n\nexport type InterfaceDefinition = any;\nexport type CompletionHandoff = AgentArtifact;\n\nexport interface AgentArtifact {\n  agentId: string;\n  taskId: string;\n  files: string[];\n  interfaces: Array<{ name: string; file: string }>;\n  completedAt: Date;\n  metadata: Record<string, any>;\n}\n\nexport interface HandoffProtocol {\n  fromAgent: string;\n  toAgent: string;\n  taskId: string;\n  artifacts: {\n    interfaces: Record<string, string>;\n    implementationNotes: Record<string, string>;\n    dependencies: string[];\n    testRequirements: string[];\n  };\n  contextBudget: number;\n}\n\nexport interface ConflictIssue {\n  id: string;\n  severity: 'HIGH' | 'MEDIUM' | 'LOW';\n  category: string;\n  description: string;\n  affectedTasks: string[];\n  suggestedFix?: string;\n  detectedAt: Date;\n}\n\n// ===========================\n// Technology Detection Registry\n// ===========================\n\nconst TECHNOLOGY_REGISTRY: Record<string, AgentRegistry> = {\n  python: {\n    language: 'python',\n    packageFiles: ['pyproject.toml', 'requirements.txt', 'setup.py'],\n    packageManager: 'uv', // Modern default\n    agents: ['backend-python-specialist', 'ml-specialist'],\n    frameworkDetection: (dependencies: string[]) => {\n      if (dependencies.some((d) => d.includes('fastapi'))) return 'fastapi';\n      if (dependencies.some((d) => d.includes('django'))) return 'django';\n      if (dependencies.some((d) => d.includes('flask'))) return 'flask';\n      if (\n        dependencies.some(\n          (d) => d.includes('torch') || d.includes('tensorflow') || d.includes('sklearn')\n        )\n      ) {\n        return 'ml';\n      }\n      return undefined;\n    },\n  },\n  nodejs: {\n    language: 'nodejs',\n    packageFiles: ['package.json', 'package-lock.json', 'pnpm-lock.yaml', 'yarn.lock'],\n    packageManager: 'npm', // Or pnpm/yarn based on lock file\n    agents: ['backend-nodejs-specialist', 'frontend-specialist'],\n    frameworkDetection: (dependencies: string[]) => {\n      if (dependencies.some((d) => d.includes('express'))) return 'express';\n      if (dependencies.some((d) => d.includes('fastify'))) return 'fastify';\n      if (dependencies.some((d) => d.includes('nestjs'))) return 'nestjs';\n      if (dependencies.some((d) => d.includes('react'))) return 'react';\n      if (dependencies.some((d) => d.includes('vue'))) return 'vue';\n      if (dependencies.some((d) => d.includes('next'))) return 'nextjs';\n      return undefined;\n    },\n  },\n  go: {\n    language: 'go',\n    packageFiles: ['go.mod', 'go.sum'],\n    packageManager: 'go modules',\n    agents: ['backend-go-specialist'],\n    frameworkDetection: (dependencies: string[]) => {\n      if (dependencies.some((d) => d.includes('gin-gonic/gin'))) return 'gin';\n      if (dependencies.some((d) => d.includes('labstack/echo'))) return 'echo';\n      if (dependencies.some((d) => d.includes('gorilla/mux'))) return 'gorilla';\n      return undefined;\n    },\n  },\n  rust: {\n    language: 'rust',\n    packageFiles: ['Cargo.toml', 'Cargo.lock'],\n    packageManager: 'cargo',\n    agents: ['backend-rust-specialist'],\n    frameworkDetection: (dependencies: string[]) => {\n      if (dependencies.some((d) => d.includes('axum'))) return 'axum';\n      if (dependencies.some((d) => d.includes('actix-web'))) return 'actix-web';\n      if (dependencies.some((d) => d.includes('rocket'))) return 'rocket';\n      return undefined;\n    },\n  },\n  java: {\n    language: 'java',\n    packageFiles: ['pom.xml', 'build.gradle', 'build.gradle.kts'],\n    packageManager: 'maven/gradle',\n    agents: ['backend-java-specialist'],\n    frameworkDetection: (dependencies: string[]) => {\n      if (dependencies.some((d) => d.includes('spring-boot'))) return 'spring-boot';\n      if (dependencies.some((d) => d.includes('quarkus'))) return 'quarkus';\n      if (dependencies.some((d) => d.includes('micronaut'))) return 'micronaut';\n      return undefined;\n    },\n  },\n};\n\n// ===========================\n// Technology Detection Functions\n// ===========================\n\nexport class TechnologyDetector {\n  private projectRoot: string;\n\n  constructor(projectRoot: string = '.') {\n    this.projectRoot = projectRoot;\n  }\n\n  /**\n   * Detect the technology stack of the project\n   */\n  async detectStack(): Promise<TechnologyStack> {\n    // Check for each known stack\n    for (const [key, registry] of Object.entries(TECHNOLOGY_REGISTRY)) {\n      const detectedFiles = this.findProjectFiles(registry.packageFiles);\n\n      if (detectedFiles.length > 0) {\n        const dependencies = await this.extractDependencies(detectedFiles[0], key);\n        const framework = registry.frameworkDetection?.(dependencies);\n\n        // Determine which agents to use based on framework\n        let suggestedAgents = [...registry.agents];\n\n        // Special handling for Python: choose between backend and ML\n        if (key === 'python' && framework) {\n          if (framework === 'ml') {\n            suggestedAgents = ['ml-specialist'];\n          } else if (['fastapi', 'django', 'flask'].includes(framework)) {\n            suggestedAgents = ['backend-python-specialist'];\n          }\n        }\n\n        // Special handling for Node.js: choose between backend and frontend\n        if (key === 'nodejs' && framework) {\n          if (['express', 'fastify', 'nestjs'].includes(framework)) {\n            suggestedAgents = ['backend-nodejs-specialist'];\n          } else if (['react', 'vue', 'nextjs'].includes(framework)) {\n            suggestedAgents = ['frontend-specialist'];\n          }\n        }\n\n        return {\n          language: key as any,\n          packageManager: registry.packageManager,\n          framework,\n          projectFiles: detectedFiles,\n          suggestedAgents,\n        };\n      }\n    }\n\n    return {\n      language: 'unknown',\n      packageManager: 'unknown',\n      projectFiles: [],\n      suggestedAgents: [],\n    };\n  }\n\n  /**\n   * Find project files that match the given patterns\n   */\n  private findProjectFiles(patterns: string[]): string[] {\n    const found: string[] = [];\n\n    for (const pattern of patterns) {\n      const filePath = join(this.projectRoot, pattern);\n      if (existsSync(filePath)) {\n        found.push(filePath);\n      }\n    }\n\n    return found;\n  }\n\n  /**\n   * Extract dependencies from project files using proper parsers\n   */\n  private async extractDependencies(filePath: string, language: string): Promise<string[]> {\n    try {\n      const content = readFileSync(filePath, 'utf-8');\n\n      if (language === 'python') {\n        if (filePath.endsWith('pyproject.toml')) {\n          // Use proper TOML parser\n          const parsed = parseToml(content) as any;\n          const deps: string[] = [];\n\n          // Standard dependencies\n          if (parsed.project?.dependencies && Array.isArray(parsed.project.dependencies)) {\n            deps.push(\n              ...parsed.project.dependencies.map((d: string) => d.split(/[<>=!]/)[0].trim())\n            );\n          }\n\n          // Optional dependencies\n          if (parsed.project?.['optional-dependencies']) {\n            for (const group of Object.values(parsed.project['optional-dependencies'])) {\n              if (Array.isArray(group)) {\n                deps.push(...group.map((d: string) => d.split(/[<>=!]/)[0].trim()));\n              }\n            }\n          }\n\n          return [...new Set(deps)]; // Deduplicate\n        } else if (filePath.endsWith('requirements.txt')) {\n          return content\n            .split('\\n')\n            .map((line) => line.trim())\n            .filter((line) => line && !line.startsWith('#'))\n            .map((line) => line.split(/[<>=!]/)[0].trim());\n        }\n      } else if (language === 'nodejs') {\n        const packageJson = JSON.parse(content);\n        return [\n          ...Object.keys(packageJson.dependencies || {}),\n          ...Object.keys(packageJson.devDependencies || {}),\n        ];\n      } else if (language === 'go') {\n        // Parse go.mod - extract module paths from require blocks\n        const lines = content.split('\\n');\n        const deps: string[] = [];\n        let inRequire = false;\n\n        for (const line of lines) {\n          const trimmed = line.trim();\n          if (trimmed.startsWith('require (')) {\n            inRequire = true;\n            continue;\n          }\n          if (inRequire && trimmed === ')') {\n            inRequire = false;\n            continue;\n          }\n          if (inRequire || trimmed.startsWith('require ')) {\n            const match = trimmed.match(/^(?:require\\s+)?([^\\s]+)/);\n            if (match && match[1] && !match[1].startsWith('//')) {\n              deps.push(match[1]);\n            }\n          }\n        }\n        return deps;\n      } else if (language === 'rust') {\n        // Use proper TOML parser for Cargo.toml\n        const parsed = parseToml(content);\n        const deps: string[] = [];\n\n        if (parsed.dependencies) {\n          deps.push(...Object.keys(parsed.dependencies));\n        }\n        if (parsed['dev-dependencies']) {\n          deps.push(...Object.keys(parsed['dev-dependencies']));\n        }\n        if (parsed['build-dependencies']) {\n          deps.push(...Object.keys(parsed['build-dependencies']));\n        }\n\n        return deps;\n      } else if (language === 'java') {\n        // XML (Maven pom.xml) or Gradle dependency extraction\n        const depMatches =\n          content.match(/<artifactId>(.*?)<\\/artifactId>/g) ||\n          content.match(/implementation\\s+[\"'](.+?)[\"']/g) ||\n          [];\n        return depMatches.map((m) =>\n          m\n            .replace(/<\\/?artifactId>/g, '')\n            .replace(/implementation\\s+[\"']/g, '')\n            .replace(/[\"']/g, '')\n        );\n      }\n\n      return [];\n    } catch (error) {\n      console.error(`Error extracting dependencies from ${filePath}:`, error);\n      return [];\n    }\n  }\n\n  /**\n   * Get agent recommendations based on detected stack and task description\n   */\n  getAgentRecommendations(stack: TechnologyStack, taskDescription: string): string[] {\n    const recommendations = [...stack.suggestedAgents];\n\n    // Add additional agents based on task description\n    const lowerTask = taskDescription.toLowerCase();\n\n    if (lowerTask.includes('test') || lowerTask.includes('testing')) {\n      recommendations.push('test-specialist');\n    }\n\n    if (\n      lowerTask.includes('database') ||\n      lowerTask.includes('schema') ||\n      lowerTask.includes('migration')\n    ) {\n      recommendations.push('database-specialist');\n    }\n\n    if (lowerTask.includes('validate') || lowerTask.includes('integration')) {\n      recommendations.push('integration-validator');\n    }\n\n    return [...new Set(recommendations)]; // Remove duplicates\n  }\n}\n\n// ===========================\n// Context Hub\n// ===========================\n\nexport class AgentContextHub {\n  private statePath: string;\n  private projectState: {\n    architecture: Record<string, any>;\n    tasks: Map<string, Task>;\n    dependencies: Map<string, string[]>;\n    completions: Map<string, AgentArtifact>;\n    interfaces: Map<string, any>;\n    conflicts: ConflictIssue[];\n    contextAllocations: Map<string, number>;\n  };\n\n  constructor(statePath: string = './.claude/state') {\n    this.statePath = statePath;\n\n    // Ensure state directory exists\n    if (!existsSync(statePath)) {\n      mkdirSync(statePath, { recursive: true });\n    }\n\n    // Load or initialize state\n    this.projectState = this.loadState();\n  }\n\n  // ===========================\n  // Task Management\n  // ===========================\n\n  registerTask(spec: {\n    description: string;\n    assignedTo: string;\n    dependencies?: string[];\n    interfaces?: Record<string, string>;\n    constraints?: string[];\n    estimatedContextTokens?: number;\n  }): Task {\n    const taskId = this.generateTaskId();\n\n    const task: Task = {\n      taskId,\n      description: spec.description,\n      assignedTo: spec.assignedTo,\n      status: 'pending',\n      dependencies: spec.dependencies || [],\n      interfaces: spec.interfaces || {},\n      constraints: spec.constraints || [],\n      estimatedContextTokens: spec.estimatedContextTokens || 8000,\n      createdAt: new Date(),\n    };\n\n    this.projectState.tasks.set(taskId, task);\n\n    // Register dependencies\n    if (task.dependencies.length > 0) {\n      this.projectState.dependencies.set(taskId, task.dependencies);\n    }\n\n    // Allocate context window\n    this.projectState.contextAllocations.set(task.assignedTo, task.estimatedContextTokens);\n\n    this.saveState();\n\n    return task;\n  }\n\n  updateTaskStatus(\n    taskId: string,\n    status: Task['status'],\n    artifacts?: Partial<AgentArtifact>\n  ): void {\n    const task = this.projectState.tasks.get(taskId);\n\n    if (!task) {\n      throw new Error(`Task ${taskId} not found`);\n    }\n\n    task.status = status;\n\n    if (status === 'completed') {\n      task.completedAt = new Date();\n\n      // Store completion artifacts\n      if (artifacts) {\n        const artifact: AgentArtifact = {\n          agentId: task.assignedTo,\n          taskId,\n          files: artifacts.files || [],\n          interfaces: artifacts.interfaces || [],\n          completedAt: new Date(),\n          metadata: artifacts.metadata || {},\n        };\n\n        this.projectState.completions.set(taskId, artifact);\n\n        // Also store artifacts on the task object\n        task.artifacts = artifact;\n\n        // Extract and store interfaces\n        artifact.interfaces.forEach((iface) => {\n          this.projectState.interfaces.set(iface.name, {\n            file: iface.file,\n            taskId,\n            agentId: task.assignedTo,\n          });\n        });\n      }\n    }\n\n    this.saveState();\n  }\n\n  getTask(taskId: string): Task | undefined {\n    return this.projectState.tasks.get(taskId);\n  }\n\n  getAllTasks(): Task[] {\n    return Array.from(this.projectState.tasks.values());\n  }\n\n  getTasksByStatus(status: Task['status']): Task[] {\n    return Array.from(this.projectState.tasks.values()).filter((task) => task.status === status);\n  }\n\n  getTasksByAgent(agentId: string): Task[] {\n    return Array.from(this.projectState.tasks.values()).filter(\n      (task) => task.assignedTo === agentId\n    );\n  }\n\n  // ===========================\n  // Dependency Management\n  // ===========================\n\n  canStartTask(taskId: string): { canStart: boolean; blockedBy?: string[] } {\n    const task = this.projectState.tasks.get(taskId);\n\n    if (!task) {\n      return { canStart: false };\n    }\n\n    if (task.dependencies.length === 0) {\n      return { canStart: true };\n    }\n\n    const blockedBy: string[] = [];\n\n    for (const depId of task.dependencies) {\n      const depTask = this.projectState.tasks.get(depId);\n\n      if (!depTask || depTask.status !== 'completed') {\n        blockedBy.push(depId);\n      }\n    }\n\n    return {\n      canStart: blockedBy.length === 0,\n      blockedBy: blockedBy.length > 0 ? blockedBy : undefined,\n    };\n  }\n\n  getDependencyGraph(): Map<string, string[]> {\n    return this.projectState.dependencies;\n  }\n\n  // ===========================\n  // Handoff Protocol\n  // ===========================\n\n  prepareHandoff(fromTaskId: string, toAgent: string): HandoffProtocol {\n    const fromTask = this.projectState.tasks.get(fromTaskId);\n\n    if (!fromTask) {\n      throw new Error(`Task ${fromTaskId} not found`);\n    }\n\n    const artifact = this.projectState.completions.get(fromTaskId);\n\n    if (!artifact) {\n      throw new Error(`No completion artifacts for task ${fromTaskId}`);\n    }\n\n    // Calculate available context budget\n    const totalContext = 200000; // Claude's context window\n    const orchestratorContext = 10000;\n    const reservedContext = 20000;\n    const usedContext = Array.from(this.projectState.contextAllocations.values()).reduce(\n      (sum, val) => sum + val,\n      0\n    );\n\n    const availableContext = totalContext - orchestratorContext - reservedContext - usedContext;\n\n    // Build handoff protocol\n    const handoff: HandoffProtocol = {\n      fromAgent: fromTask.assignedTo,\n      toAgent,\n      taskId: fromTaskId,\n      artifacts: {\n        interfaces: this.extractRelevantInterfaces(toAgent),\n        implementationNotes: artifact.metadata.notes || {},\n        dependencies: artifact.metadata.dependencies || [],\n        testRequirements: artifact.metadata.testRequirements || [],\n      },\n      contextBudget: Math.min(availableContext, 30000),\n    };\n\n    return handoff;\n  }\n\n  private extractRelevantInterfaces(agentId: string): Record<string, string> {\n    const relevant: Record<string, string> = {};\n\n    // Get interfaces that this agent needs to know about\n    this.projectState.interfaces.forEach((value, key) => {\n      // Include all shared interfaces\n      relevant[key] = value.file;\n    });\n\n    return relevant;\n  }\n\n  // ===========================\n  // Context Management\n  // ===========================\n\n  allocateContextWindow(agentId: string, tokens: number): void {\n    this.projectState.contextAllocations.set(agentId, tokens);\n    this.saveState();\n  }\n\n  getContextUsage(): {\n    total: number;\n    byAgent: Map<string, number>;\n    available: number;\n  } {\n    const totalContext = 200000;\n    const used = Array.from(this.projectState.contextAllocations.values()).reduce(\n      (sum, val) => sum + val,\n      0\n    );\n\n    return {\n      total: totalContext,\n      byAgent: new Map(this.projectState.contextAllocations),\n      available: totalContext - used,\n    };\n  }\n\n  // ===========================\n  // Conflict Detection\n  // ===========================\n\n  detectConflicts(): ConflictIssue[] {\n    const conflicts: ConflictIssue[] = [];\n\n    // Check for interface conflicts\n    const interfaceConflicts = this.detectInterfaceConflicts();\n    conflicts.push(...interfaceConflicts);\n\n    // Check for dependency conflicts\n    const dependencyConflicts = this.detectDependencyConflicts();\n    conflicts.push(...dependencyConflicts);\n\n    // Store conflicts\n    this.projectState.conflicts = conflicts;\n    this.saveState();\n\n    return conflicts;\n  }\n\n  private detectInterfaceConflicts(): ConflictIssue[] {\n    // TODO: Implement interface conflict detection\n    // This would parse TypeScript files and compare interface definitions\n    return [];\n  }\n\n  private detectDependencyConflicts(): ConflictIssue[] {\n    const conflicts: ConflictIssue[] = [];\n\n    // Check for circular dependencies\n    const visited = new Set<string>();\n    const recursionStack = new Set<string>();\n\n    const hasCycle = (taskId: string): boolean => {\n      visited.add(taskId);\n      recursionStack.add(taskId);\n\n      const dependencies = this.projectState.dependencies.get(taskId) || [];\n\n      for (const depId of dependencies) {\n        if (!visited.has(depId)) {\n          if (hasCycle(depId)) {\n            return true;\n          }\n        } else if (recursionStack.has(depId)) {\n          conflicts.push({\n            id: `circular-dep-${Date.now()}`,\n            severity: 'HIGH',\n            category: 'CIRCULAR_DEPENDENCY',\n            description: `Circular dependency detected: ${taskId} -> ${depId}`,\n            affectedTasks: [taskId, depId],\n            detectedAt: new Date(),\n          });\n          return true;\n        }\n      }\n\n      recursionStack.delete(taskId);\n      return false;\n    };\n\n    this.projectState.tasks.forEach((_, taskId) => {\n      if (!visited.has(taskId)) {\n        hasCycle(taskId);\n      }\n    });\n\n    return conflicts;\n  }\n\n  getConflicts(): ConflictIssue[] {\n    return this.projectState.conflicts;\n  }\n\n  // ===========================\n  // Reporting\n  // ===========================\n\n  getProgressReport(): {\n    totalTasks: number;\n    byStatus: Record<Task['status'], number>;\n    completionRate: number;\n    blockedTasks: string[];\n    activeAgents: string[];\n  } {\n    const tasks = Array.from(this.projectState.tasks.values());\n\n    const byStatus = {\n      pending: 0,\n      in_progress: 0,\n      completed: 0,\n      blocked: 0,\n    };\n\n    const blockedTasks: string[] = [];\n    const activeAgents = new Set<string>();\n\n    tasks.forEach((task) => {\n      byStatus[task.status]++;\n\n      if (task.status === 'blocked') {\n        blockedTasks.push(task.taskId);\n      }\n\n      if (task.status === 'in_progress') {\n        activeAgents.add(task.assignedTo);\n      }\n    });\n\n    const completionRate = tasks.length > 0 ? (byStatus.completed / tasks.length) * 100 : 0;\n\n    return {\n      totalTasks: tasks.length,\n      byStatus,\n      completionRate,\n      blockedTasks,\n      activeAgents: Array.from(activeAgents),\n    };\n  }\n\n  /**\n   * Get comprehensive orchestration status for tracking progress\n   */\n  getOrchestrationStatus(): {\n    progress: {\n      totalTasks: number;\n      byStatus: Record<Task['status'], number>;\n      completionRate: number;\n      blockedTasks: string[];\n      activeAgents: string[];\n    };\n    tasks: Array<{\n      taskId: string;\n      description: string;\n      status: Task['status'];\n      assignedTo: string;\n      dependencies: string[];\n      artifacts?: Task['artifacts'];\n    }>;\n    conflicts: ConflictIssue[];\n    interfaces: Array<{ name: string; definition: InterfaceDefinition }>;\n  } {\n    const tasks = Array.from(this.projectState.tasks.values());\n    const interfaces = Array.from(this.projectState.interfaces.entries()).map(\n      ([name, definition]) => ({ name, definition })\n    );\n\n    return {\n      progress: this.getProgressReport(),\n      tasks: tasks.map((task) => ({\n        taskId: task.taskId,\n        description: task.description,\n        status: task.status,\n        assignedTo: task.assignedTo,\n        dependencies: task.dependencies,\n        artifacts: task.artifacts,\n      })),\n      conflicts: this.projectState.conflicts,\n      interfaces,\n    };\n  }\n\n  /**\n   * Get detailed information for a specific task\n   */\n  getTaskDetails(taskId: string): {\n    task: Task | undefined;\n    dependsOn: Task[];\n    blockedBy: Task[];\n    completion?: CompletionHandoff;\n  } {\n    const task = this.getTask(taskId);\n    if (!task) {\n      return {\n        task: undefined,\n        dependsOn: [],\n        blockedBy: [],\n      };\n    }\n\n    const dependsOn = task.dependencies\n      .map((depId) => this.getTask(depId))\n      .filter((t): t is Task => t !== undefined);\n\n    const blockedBy = dependsOn.filter((t) => t.status !== 'completed');\n\n    return {\n      task,\n      dependsOn,\n      blockedBy,\n      completion: this.projectState.completions.get(taskId),\n    };\n  }\n\n  /**\n   * Get information needed to resume an orchestration session\n   */\n  getResumableOrchestration(): {\n    hasState: boolean;\n    progress: {\n      totalTasks: number;\n      byStatus: Record<Task['status'], number>;\n      completionRate: number;\n      blockedTasks: string[];\n      activeAgents: string[];\n    } | null;\n    nextTasks: Task[];\n    blockedTasks: Array<{ task: Task; blockedBy: string[] }>;\n  } {\n    const tasks = Array.from(this.projectState.tasks.values());\n    if (tasks.length === 0) {\n      return {\n        hasState: false,\n        progress: null,\n        nextTasks: [],\n        blockedTasks: [],\n      };\n    }\n\n    const progress = this.getProgressReport();\n\n    // Find next tasks that can be started (pending with no incomplete dependencies)\n    const nextTasks = tasks.filter((task) => {\n      if (task.status !== 'pending') return false;\n      return task.dependencies.every((depId) => {\n        const dep = this.getTask(depId);\n        return dep?.status === 'completed';\n      });\n    });\n\n    // Find blocked tasks with their blocking dependencies\n    const blockedTasks = tasks\n      .filter((task) => task.status === 'blocked' || task.status === 'pending')\n      .map((task) => {\n        const blockedBy = task.dependencies.filter((depId) => {\n          const dep = this.getTask(depId);\n          return dep?.status !== 'completed';\n        });\n        return { task, blockedBy };\n      })\n      .filter((item) => item.blockedBy.length > 0);\n\n    return {\n      hasState: true,\n      progress,\n      nextTasks,\n      blockedTasks,\n    };\n  }\n\n  // ===========================\n  // State Persistence\n  // ===========================\n\n  private loadState(): typeof this.projectState {\n    const stateFile = join(this.statePath, 'context-state.json');\n\n    if (existsSync(stateFile)) {\n      try {\n        const data = JSON.parse(readFileSync(stateFile, 'utf-8'));\n\n        return {\n          architecture: data.architecture || {},\n          tasks: new Map(Object.entries(data.tasks || {})),\n          dependencies: new Map(Object.entries(data.dependencies || {})),\n          completions: new Map(Object.entries(data.completions || {})),\n          interfaces: new Map(Object.entries(data.interfaces || {})),\n          conflicts: data.conflicts || [],\n          contextAllocations: new Map(Object.entries(data.contextAllocations || {})),\n        };\n      } catch (error) {\n        console.error('Failed to load state, initializing fresh:', error);\n      }\n    }\n\n    return {\n      architecture: {},\n      tasks: new Map(),\n      dependencies: new Map(),\n      completions: new Map(),\n      interfaces: new Map(),\n      conflicts: [],\n      contextAllocations: new Map(),\n    };\n  }\n\n  private saveState(): void {\n    const stateFile = join(this.statePath, 'context-state.json');\n\n    const data = {\n      architecture: this.projectState.architecture,\n      tasks: Object.fromEntries(this.projectState.tasks),\n      dependencies: Object.fromEntries(this.projectState.dependencies),\n      completions: Object.fromEntries(this.projectState.completions),\n      interfaces: Object.fromEntries(this.projectState.interfaces),\n      conflicts: this.projectState.conflicts,\n      contextAllocations: Object.fromEntries(this.projectState.contextAllocations),\n    };\n\n    writeFileSync(stateFile, JSON.stringify(data, null, 2));\n  }\n\n  clearState(): void {\n    this.projectState = {\n      architecture: {},\n      tasks: new Map(),\n      dependencies: new Map(),\n      completions: new Map(),\n      interfaces: new Map(),\n      conflicts: [],\n      contextAllocations: new Map(),\n    };\n\n    this.saveState();\n  }\n\n  // ===========================\n  // Utilities\n  // ===========================\n\n  private generateTaskId(): string {\n    return `task-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n  }\n}\n\n// ===========================\n// Wave Orchestrator\n// ===========================\n\nexport class WaveOrchestrator {\n  private contextHub: AgentContextHub;\n  private maxContextPerWave: number = 100000;\n\n  constructor(contextHub: AgentContextHub) {\n    this.contextHub = contextHub;\n  }\n\n  deployWaves(tasks: Task[]): Task[][] {\n    const waves: Task[][] = [];\n    let currentWave: Task[] = [];\n    let contextBudget = 0;\n\n    // Sort tasks by dependencies (topological sort)\n    const sortedTasks = this.topologicalSort(tasks);\n\n    for (const task of sortedTasks) {\n      const estimatedContext = task.estimatedContextTokens;\n\n      if (contextBudget + estimatedContext > this.maxContextPerWave) {\n        // Start new wave\n        waves.push(currentWave);\n        currentWave = [task];\n        contextBudget = estimatedContext;\n      } else {\n        currentWave.push(task);\n        contextBudget += estimatedContext;\n      }\n    }\n\n    if (currentWave.length > 0) {\n      waves.push(currentWave);\n    }\n\n    return waves;\n  }\n\n  private topologicalSort(tasks: Task[]): Task[] {\n    const sorted: Task[] = [];\n    const visited = new Set<string>();\n    const tempMark = new Set<string>();\n\n    const visit = (taskId: string) => {\n      if (tempMark.has(taskId)) {\n        throw new Error(`Circular dependency detected involving ${taskId}`);\n      }\n\n      if (!visited.has(taskId)) {\n        tempMark.add(taskId);\n\n        const task = this.contextHub.getTask(taskId);\n        if (task) {\n          task.dependencies.forEach((depId) => visit(depId));\n          visited.add(taskId);\n          sorted.push(task);\n        }\n\n        tempMark.delete(taskId);\n      }\n    };\n\n    tasks.forEach((task) => {\n      if (!visited.has(task.taskId)) {\n        visit(task.taskId);\n      }\n    });\n\n    return sorted;\n  }\n}\n\n// ===========================\n// Example Usage\n// ===========================\n\n// NOTE: Example code commented out - use the CLI instead (npx claude-orchestra <command>)\nif (false && require.main === module) {\n  // Initialize context hub\n  const hub = new AgentContextHub();\n\n  // Register tasks\n  const task1 = hub.registerTask({\n    description: 'Define TypeScript interfaces',\n    assignedTo: 'types-specialist',\n    estimatedContextTokens: 5000,\n  });\n\n  const task2 = hub.registerTask({\n    description: 'Implement backend API',\n    assignedTo: 'backend-specialist',\n    dependencies: [task1.taskId],\n    estimatedContextTokens: 15000,\n  });\n\n  const task3 = hub.registerTask({\n    description: 'Implement frontend components',\n    assignedTo: 'frontend-specialist',\n    dependencies: [task1.taskId],\n    estimatedContextTokens: 15000,\n  });\n\n  const task4 = hub.registerTask({\n    description: 'Write integration tests',\n    assignedTo: 'test-specialist',\n    dependencies: [task2.taskId, task3.taskId],\n    estimatedContextTokens: 10000,\n  });\n\n  // Check if tasks can start\n  console.log('Task 1 can start:', hub.canStartTask(task1.taskId));\n  console.log('Task 2 can start:', hub.canStartTask(task2.taskId));\n\n  // Complete task 1\n  hub.updateTaskStatus(task1.taskId, 'completed', {\n    files: ['src/types/user.ts'],\n    interfaces: [{ name: 'User', file: 'src/types/user.ts' }],\n    metadata: {\n      notes: { critical: 'All IDs are strings (UUIDs)' },\n    },\n  });\n\n  // Check again\n  console.log('Task 2 can start:', hub.canStartTask(task2.taskId));\n\n  // Get progress report\n  console.log('Progress:', hub.getProgressReport());\n\n  // Deploy in waves\n  const waveOrch = new WaveOrchestrator(hub);\n  const waves = waveOrch.deployWaves(hub.getAllTasks());\n\n  console.log(`Deploying in ${waves.length} waves:`);\n  waves.forEach((wave, i) => {\n    console.log(\n      `Wave ${i + 1}:`,\n      wave.map((t) => t.description)\n    );\n  });\n}\n","#!/usr/bin/env node\n\n/**\n * Claude Orchestra Initialization CLI\n * Usage: npx claude-orchestra init\n */\n\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { execSync } from 'child_process';\nimport { fileURLToPath } from 'url';\n\n// ES module equivalent of __dirname\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nconst ORCHESTRA_VERSION = '1.0.1';\n\n// ANSI color codes\nconst colors = {\n  reset: '\\x1b[0m',\n  bright: '\\x1b[1m',\n  red: '\\x1b[31m',\n  green: '\\x1b[32m',\n  yellow: '\\x1b[33m',\n  blue: '\\x1b[34m',\n  magenta: '\\x1b[35m',\n};\n\ntype Color = keyof typeof colors;\n\ninterface Config {\n  version?: string;\n  installedAt?: string;\n  lastUpdated?: string;\n  [key: string]: unknown;\n}\n\ninterface Settings {\n  permissions?: {\n    allow?: string[];\n    deny?: string[];\n    ask?: string[];\n  };\n  enabledMcpjsonServers?: string[];\n  enableAllProjectMcpServers?: boolean;\n}\n\nfunction log(msg: string, color: Color = 'reset') {\n  console.log(`${colors[color]}${msg}${colors.reset}`);\n}\n\nfunction detectInstalledVersion(): { version: string; installedAt: string } | null {\n  const configPath = '.claude/config.json';\n  if (fs.existsSync(configPath)) {\n    try {\n      const config = JSON.parse(fs.readFileSync(configPath, 'utf8')) as Config;\n      return {\n        version: config.version || 'unknown',\n        installedAt: config.installedAt || 'unknown',\n      };\n    } catch (_error) {\n      return null;\n    }\n  }\n  return null;\n}\n\nfunction mergeSettingsLocal(): void {\n  const settingsPath = '.claude/settings.local.json';\n  const backupPath = '.claude.backup/settings.local.json';\n\n  if (!fs.existsSync(backupPath)) return;\n\n  try {\n    const userSettings = JSON.parse(fs.readFileSync(backupPath, 'utf8')) as Settings;\n    const defaultSettings = JSON.parse(fs.readFileSync(settingsPath, 'utf8')) as Settings;\n\n    // Deep merge: preserve user customizations, add new defaults\n    const merged = {\n      permissions: {\n        allow: [\n          ...new Set([\n            ...(defaultSettings.permissions?.allow || []),\n            ...(userSettings.permissions?.allow || []),\n          ]),\n        ],\n        deny: userSettings.permissions?.deny || [],\n        ask: userSettings.permissions?.ask || [],\n      },\n      enabledMcpjsonServers:\n        userSettings.enabledMcpjsonServers || defaultSettings.enabledMcpjsonServers || [],\n      enableAllProjectMcpServers:\n        userSettings.enableAllProjectMcpServers ??\n        defaultSettings.enableAllProjectMcpServers ??\n        true,\n    };\n\n    fs.writeFileSync(settingsPath, JSON.stringify(merged, null, 2) + '\\n');\n    log('✅ Merged settings.local.json (preserved your customizations)', 'green');\n  } catch (_error) {\n    log('⚠️  Could not merge settings.local.json, using defaults', 'yellow');\n  }\n}\n\nfunction logHeader() {\n  log('', 'reset');\n  log('🎼 Claude Orchestra v' + ORCHESTRA_VERSION, 'bright');\n  log('==================================', 'bright');\n  log('', 'reset');\n}\n\nfunction checkProjectDirectory() {\n  const hasGit = fs.existsSync('.git');\n  const hasPackageJson = fs.existsSync('package.json');\n\n  if (!hasGit && !hasPackageJson) {\n    log('⚠️  Not in a project directory.', 'yellow');\n    log('   This will create .claude/ in the current directory.', 'yellow');\n    log('', 'reset');\n  }\n}\n\nfunction checkExistingInstallation(options?: { force?: boolean }): boolean {\n  if (!fs.existsSync('.claude')) return false;\n\n  const installed = detectInstalledVersion();\n  const isForce = options?.force || process.argv.includes('--force');\n\n  if (installed) {\n    if (installed.version === ORCHESTRA_VERSION && !isForce) {\n      log('✅ Claude Orchestra is already up to date (v' + ORCHESTRA_VERSION + ')', 'green');\n      log('   Use --force to reinstall anyway', 'yellow');\n      log('', 'reset');\n      return true; // Signal to exit\n    } else if (installed.version !== ORCHESTRA_VERSION) {\n      log(`🔄 Updating from v${installed.version} to v${ORCHESTRA_VERSION}`, 'blue');\n    }\n  }\n\n  log('⚠️  .claude/ directory already exists.', 'yellow');\n  log('   Backing up to .claude.backup/', 'yellow');\n\n  if (fs.existsSync('.claude.backup')) {\n    fs.rmSync('.claude.backup', { recursive: true, force: true });\n  }\n  fs.renameSync('.claude', '.claude.backup');\n  log('✅ Backup created', 'green');\n  log('', 'reset');\n\n  return false; // Continue with install\n}\n\nfunction copyOrchestraFiles() {\n  log('📦 Installing Claude Orchestra...', 'blue');\n  log('', 'reset');\n\n  // The source .claude directory is in the npm package root\n  // When built, dist/ is at package root, so we go up one level\n  const packageRoot = path.join(__dirname, '..');\n  const sourceClaudeDir = path.join(packageRoot, '.claude');\n\n  if (!fs.existsSync(sourceClaudeDir)) {\n    log('❌ Error: Could not find .claude directory in package', 'red');\n    log(`   Expected at: ${sourceClaudeDir}`, 'red');\n    process.exit(1);\n  }\n\n  // Copy .claude directory recursively\n  fs.cpSync(sourceClaudeDir, './.claude', { recursive: true });\n  log('✅ Copied orchestration system to .claude/', 'green');\n\n  // Merge settings if this is an update\n  const isUpdate = fs.existsSync('.claude.backup');\n  if (isUpdate) {\n    mergeSettingsLocal();\n  }\n\n  // Update config.json with version and timestamp\n  const configPath = './.claude/config.json';\n  const config = JSON.parse(fs.readFileSync(configPath, 'utf8')) as Config;\n  const now = new Date().toISOString();\n\n  // Preserve installedAt from backup if this is an update\n  let originalInstalledAt: string | undefined;\n  if (isUpdate) {\n    const backupConfigPath = './.claude.backup/config.json';\n    if (fs.existsSync(backupConfigPath)) {\n      try {\n        const backupConfig = JSON.parse(fs.readFileSync(backupConfigPath, 'utf8')) as Config;\n        originalInstalledAt = backupConfig.installedAt;\n      } catch (_error) {\n        // Ignore parse errors, will use fallback\n      }\n    }\n  }\n\n  config.version = ORCHESTRA_VERSION;\n  config.lastUpdated = now;\n  config.installedAt = originalInstalledAt ? originalInstalledAt : now;\n\n  fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + '\\n');\n\n  // Create state directory\n  const stateDir = './.claude/state';\n  if (!fs.existsSync(stateDir)) {\n    fs.mkdirSync(stateDir, { recursive: true });\n  }\n\n  // Restore state files from backup if this is an update\n  if (isUpdate) {\n    const backupStateDir = './.claude.backup/state';\n    if (fs.existsSync(backupStateDir)) {\n      const stateFiles = fs.readdirSync(backupStateDir);\n      for (const file of stateFiles) {\n        const sourcePath = path.join(backupStateDir, file);\n        const destPath = path.join(stateDir, file);\n        fs.copyFileSync(sourcePath, destPath);\n      }\n      if (stateFiles.length > 0) {\n        log('✅ Restored state files from backup', 'green');\n      }\n    }\n  }\n\n  log('✅ Created state directory', 'green');\n}\n\nfunction updateGitignore() {\n  const gitignorePath = '.gitignore';\n  const stateIgnoreLine = '.claude/state/';\n\n  if (fs.existsSync(gitignorePath)) {\n    const gitignoreContent = fs.readFileSync(gitignorePath, 'utf8');\n    if (!gitignoreContent.includes(stateIgnoreLine)) {\n      fs.appendFileSync(gitignorePath, '\\n# Claude Orchestra state\\n' + stateIgnoreLine + '\\n');\n      log('✅ Added .claude/state/ to .gitignore', 'green');\n    } else {\n      log('✅ .gitignore already includes .claude/state/', 'green');\n    }\n  } else {\n    fs.writeFileSync(gitignorePath, stateIgnoreLine + '\\n');\n    log('✅ Created .gitignore with state directory', 'green');\n  }\n}\n\nfunction createMcpConfig() {\n  const mcpConfigPath = '.mcp.json';\n\n  const mcpConfig = {\n    mcpServers: {\n      context7: {\n        command: 'npx',\n        args: ['-y', '@upstash/context7-mcp@latest'],\n      },\n    },\n  };\n\n  if (!fs.existsSync(mcpConfigPath)) {\n    fs.writeFileSync(mcpConfigPath, JSON.stringify(mcpConfig, null, 2) + '\\n');\n    log('✅ Created .mcp.json with context7 server', 'green');\n  } else {\n    log('✅ .mcp.json already exists', 'green');\n  }\n}\n\nfunction installDependencies() {\n  log('', 'reset');\n  log('📝 Checking dependencies...', 'blue');\n\n  if (!fs.existsSync('package.json')) {\n    log('⚠️  No package.json found. Creating minimal package.json...', 'yellow');\n\n    const minimalPackageJson = {\n      name: path.basename(process.cwd()),\n      version: '1.0.0',\n      dependencies: {\n        'smol-toml': '^1.3.1',\n        glob: '^11.0.0',\n      },\n    };\n\n    fs.writeFileSync('package.json', JSON.stringify(minimalPackageJson, null, 2));\n    log('✅ Created package.json', 'green');\n  }\n\n  // Check if dependencies are installed\n  const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8')) as {\n    dependencies?: Record<string, string>;\n    devDependencies?: Record<string, string>;\n  };\n  const hasSmolToml =\n    (packageJson.dependencies && packageJson.dependencies['smol-toml']) ||\n    (packageJson.devDependencies && packageJson.devDependencies['smol-toml']);\n\n  if (!hasSmolToml) {\n    log('   Adding smol-toml dependency...', 'blue');\n\n    try {\n      // Try yarn first, then npm\n      const hasYarn = fs.existsSync('yarn.lock');\n      const packageManager = hasYarn ? 'yarn' : 'npm';\n\n      if (packageManager === 'yarn') {\n        execSync('yarn add smol-toml glob', { stdio: 'inherit' });\n      } else {\n        execSync('npm install smol-toml glob', { stdio: 'inherit' });\n      }\n\n      log('✅ Installed dependencies', 'green');\n    } catch (_error) {\n      log('⚠️  Could not auto-install. Please run: npm install smol-toml glob', 'yellow');\n    }\n  } else {\n    log('✅ Dependencies already in package.json', 'green');\n  }\n}\n\nfunction printSuccessMessage() {\n  log('', 'reset');\n  log('🎉 Claude Orchestra installed successfully!', 'green');\n  log('', 'reset');\n  log('📚 Quick Start:', 'bright');\n  log('   1. Open this project in Claude Code (VS Code)', 'reset');\n  log('   2. Run: /orchestrate <your task>', 'magenta');\n  log('   3. Watch the orchestrator decompose and coordinate!', 'reset');\n  log('', 'reset');\n  log('📖 Available Commands:', 'bright');\n  log('   /orchestrate <task>   - Start new orchestration', 'reset');\n  log('   /orchestrate status   - Check progress', 'reset');\n  log('   /orchestrate resume   - Resume interrupted work', 'reset');\n  log('   /validate-integration - Validate all interfaces', 'reset');\n  log('', 'reset');\n  log('🔧 CLI Commands:', 'bright');\n  log('   npx claude-orchestra status     - Show orchestration status', 'reset');\n  log('   npx claude-orchestra detect     - Detect tech stack', 'reset');\n  log('   npx claude-orchestra next       - Show next tasks', 'reset');\n  log('   npx claude-orchestra help       - Show all commands', 'reset');\n  log('', 'reset');\n  log('📂 System Files:', 'bright');\n  log('   .claude/agents/       - All specialist agents', 'reset');\n  log('   .claude/commands/     - Workflow commands', 'reset');\n  log('   .claude/docs/         - Shared documentation', 'reset');\n  log('   .claude/lib/          - Context manager', 'reset');\n  log('   .claude/state/        - Runtime state (gitignored)', 'reset');\n  log('', 'reset');\n  log('🔍 Learn More:', 'bright');\n  log('   https://github.com/crs/claude-orchestra', 'blue');\n  log('', 'reset');\n  log('Happy orchestrating! 🎼', 'magenta');\n  log('', 'reset');\n}\n\n// Main execution\nexport function runInit(options?: { force?: boolean }) {\n  logHeader();\n  checkProjectDirectory();\n\n  const shouldExit = checkExistingInstallation(options);\n  if (shouldExit) return;\n\n  copyOrchestraFiles();\n  updateGitignore();\n  createMcpConfig();\n  installDependencies();\n  printSuccessMessage();\n}\n\nexport function runUpdate() {\n  const installed = detectInstalledVersion();\n\n  if (!installed) {\n    log('⚠️  Claude Orchestra not found. Running initial installation...', 'yellow');\n    log('', 'reset');\n    runInit();\n    return;\n  }\n\n  if (installed.version === ORCHESTRA_VERSION) {\n    log('', 'reset');\n    log('✅ Claude Orchestra is already up to date (v' + ORCHESTRA_VERSION + ')', 'green');\n    log('   Installed: ' + installed.installedAt, 'reset');\n    log('', 'reset');\n    return;\n  }\n\n  log('', 'reset');\n  log('🔄 Updating Claude Orchestra', 'blue');\n  log(`   From: v${installed.version}`, 'reset');\n  log(`   To:   v${ORCHESTRA_VERSION}`, 'reset');\n  log('', 'reset');\n\n  // Run init with force (skip early exit)\n  runInit({ force: true });\n}\n","#!/usr/bin/env node\n/**\n * Claude Orchestra CLI\n *\n * Unified command-line interface for context manager operations\n * Usage: npx claude-orchestra <command> [args...]\n */\n\nimport {\n  AgentContextHub,\n  TechnologyDetector,\n  type Task,\n  type AgentArtifact,\n} from '../.claude/lib/context-manager';\nimport { runInit, runUpdate } from './init';\n\n// ===========================\n// CLI Helper Functions\n// ===========================\n\nfunction showHelp() {\n  console.log(`\nClaude Orchestra CLI\n====================\n\nUsage: claude-orchestra <command> [args...]\n\nCommands:\n\n  init [--force]                         Initialize Claude Orchestra in current project\n  update                                 Update Claude Orchestra to latest version\n  status                                 Show comprehensive orchestration status\n  next                                   Show next actionable tasks (for resume)\n  detect                                 Detect project technology stack\n  task <task-id>                         Show detailed task information\n  conflicts                              Detect integration conflicts\n  register <desc> <agent> [deps...]      Register a new task\n  update-task <task-id> <status> [art]   Update task status\n  can-start <task-id>                    Check if task can start\n  help                                   Show this help message\n\nExamples:\n\n  claude-orchestra init\n  claude-orchestra update\n  claude-orchestra init --force\n  claude-orchestra status\n  claude-orchestra detect\n  claude-orchestra task task-123\n  claude-orchestra register \"Build API\" backend-specialist\n\nFor more information, visit: https://github.com/crs/claude-orchestra\n  `);\n}\n\nfunction showStatus() {\n  const hub = new AgentContextHub();\n  const status = hub.getOrchestrationStatus();\n\n  console.log('\\n📊 Orchestration Status');\n  console.log('='.repeat(50));\n\n  // Progress overview\n  const { progress } = status;\n  console.log(\n    `\\nProgress: ${progress.byStatus.completed}/${progress.totalTasks} tasks completed (${progress.completionRate.toFixed(1)}%)`\n  );\n\n  // Tasks by status\n  console.log('\\nTasks by Status:');\n  console.log(`  ✅ Completed: ${progress.byStatus.completed}`);\n  console.log(`  ⚙️  In Progress: ${progress.byStatus.in_progress}`);\n  console.log(`  ⏳ Pending: ${progress.byStatus.pending}`);\n  console.log(`  ⚠️  Blocked: ${progress.byStatus.blocked}`);\n\n  // Active agents\n  if (progress.activeAgents.length > 0) {\n    console.log('\\nActive Agents:');\n    progress.activeAgents.forEach((agent) => {\n      const tasks = status.tasks.filter(\n        (t) => t.assignedTo === agent && t.status === 'in_progress'\n      );\n      tasks.forEach((task) => {\n        console.log(`  - ${agent}: ${task.description}`);\n      });\n    });\n  }\n\n  // Conflicts\n  if (status.conflicts.length > 0) {\n    console.log('\\n⚠️  Conflicts Detected:');\n    status.conflicts.forEach((conflict) => {\n      console.log(`  [${conflict.severity}] ${conflict.description}`);\n    });\n  }\n\n  // Next actions\n  const nextTasks = status.tasks.filter((t) => {\n    if (t.status !== 'pending') return false;\n    return t.dependencies.every((depId) => {\n      const dep = status.tasks.find((task) => task.taskId === depId);\n      return dep?.status === 'completed';\n    });\n  });\n\n  if (nextTasks.length > 0) {\n    console.log('\\n🚀 Next Actionable Tasks:');\n    nextTasks.forEach((task) => {\n      console.log(`  - ${task.taskId}: ${task.description}`);\n      console.log(`    Assigned to: ${task.assignedTo}`);\n    });\n  }\n\n  console.log('');\n}\n\nfunction showNext() {\n  const hub = new AgentContextHub();\n  const resumable = hub.getResumableOrchestration();\n\n  if (!resumable.hasState) {\n    console.log('ℹ️  No active orchestration found');\n    return;\n  }\n\n  console.log('\\n🚀 Next Actionable Tasks:');\n  console.log('='.repeat(50));\n\n  resumable.nextTasks.forEach((task, index) => {\n    console.log(`\\n${index + 1}. ${task.description}`);\n    console.log(`   Task ID: ${task.taskId}`);\n    console.log(`   Assigned to: ${task.assignedTo}`);\n    console.log(`   Estimated tokens: ${task.estimatedContextTokens}`);\n  });\n\n  if (resumable.blockedTasks.length > 0) {\n    console.log('\\n⏳ Blocked Tasks:');\n    resumable.blockedTasks.forEach(({ task, blockedBy }) => {\n      console.log(`\\n   ${task.description}`);\n      console.log(`   Waiting on: ${blockedBy.join(', ')}`);\n    });\n  }\n\n  console.log('');\n}\n\nasync function detectTech() {\n  const detector = new TechnologyDetector();\n  const stack = await detector.detectStack();\n\n  console.log('\\n🔍 Technology Stack Detection');\n  console.log('='.repeat(50));\n\n  if (stack.language === 'unknown') {\n    console.log('\\n❌ No recognized technology stack found');\n    console.log('   Supported: Python, Node.js, Go, Rust, Java');\n    return;\n  }\n\n  console.log(`\\n✅ Detected: ${stack.language.toUpperCase()}`);\n  console.log(`   Package Manager: ${stack.packageManager}`);\n  if (stack.framework) {\n    console.log(`   Framework: ${stack.framework}`);\n  }\n  console.log(`   Project Files: ${stack.projectFiles.join(', ')}`);\n\n  console.log('\\n📋 Suggested Agents:');\n  stack.suggestedAgents.forEach((agent) => {\n    console.log(`   - ${agent}`);\n  });\n\n  console.log('');\n}\n\nfunction showTask(taskId: string) {\n  const hub = new AgentContextHub();\n  const details = hub.getTaskDetails(taskId);\n\n  if (!details.task) {\n    console.log(`❌ Task ${taskId} not found`);\n    return;\n  }\n\n  const task = details.task;\n\n  console.log('\\n📝 Task Details');\n  console.log('='.repeat(50));\n  console.log(`\\nTask ID: ${task.taskId}`);\n  console.log(`Description: ${task.description}`);\n  console.log(`Assigned to: ${task.assignedTo}`);\n  console.log(`Status: ${task.status}`);\n  // Handle Date objects that may have been deserialized as strings\n  const createdAt = task.createdAt instanceof Date ? task.createdAt : new Date(task.createdAt);\n  console.log(`Created: ${createdAt.toISOString()}`);\n  if (task.completedAt) {\n    const completedAt =\n      task.completedAt instanceof Date ? task.completedAt : new Date(task.completedAt);\n    console.log(`Completed: ${completedAt.toISOString()}`);\n  }\n\n  if (task.dependencies.length > 0) {\n    console.log('\\nDependencies:');\n    details.dependsOn.forEach((dep) => {\n      console.log(`  - ${dep.taskId}: ${dep.description} [${dep.status}]`);\n    });\n  }\n\n  if (details.blockedBy.length > 0) {\n    console.log('\\n⚠️  Blocked by:');\n    details.blockedBy.forEach((dep) => {\n      console.log(`  - ${dep.taskId}: ${dep.description} [${dep.status}]`);\n    });\n  }\n\n  if (details.completion) {\n    console.log('\\n✅ Completion Artifacts:');\n    console.log(`   Files: ${details.completion.files.join(', ')}`);\n    if (details.completion.interfaces.length > 0) {\n      console.log('   Interfaces:');\n      details.completion.interfaces.forEach((iface) => {\n        console.log(`     - ${iface.name} (${iface.file})`);\n      });\n    }\n  }\n\n  console.log('');\n}\n\nfunction detectConflicts() {\n  const hub = new AgentContextHub();\n  const conflicts = hub.detectConflicts();\n\n  console.log('\\n🔍 Conflict Detection');\n  console.log('='.repeat(50));\n\n  if (conflicts.length === 0) {\n    console.log('\\n✅ No conflicts detected');\n    return;\n  }\n\n  console.log(`\\n⚠️  ${conflicts.length} conflict(s) found:\\n`);\n\n  conflicts.forEach((conflict, index) => {\n    console.log(`${index + 1}. [${conflict.severity}] ${conflict.category}`);\n    console.log(`   ${conflict.description}`);\n    console.log(`   Affected tasks: ${conflict.affectedTasks.join(', ')}`);\n    if (conflict.suggestedFix) {\n      console.log(`   💡 Suggested fix: ${conflict.suggestedFix}`);\n    }\n    console.log('');\n  });\n}\n\nfunction registerTask(description: string, assignedTo: string, dependencies: string[] = []) {\n  const hub = new AgentContextHub();\n\n  const task = hub.registerTask({\n    description,\n    assignedTo,\n    dependencies,\n    estimatedContextTokens: 10000,\n  });\n\n  console.log(`✅ Task registered: ${task.taskId}`);\n  console.log(`   Assigned to: ${task.assignedTo}`);\n  console.log(`   Status: ${task.status}`);\n  if (dependencies.length > 0) {\n    console.log(`   Dependencies: ${dependencies.join(', ')}`);\n  }\n}\n\nfunction updateTask(taskId: string, status: string, artifactsJson?: string) {\n  const hub = new AgentContextHub();\n\n  const validStatuses: Array<Task['status']> = ['pending', 'in_progress', 'completed', 'blocked'];\n  if (!validStatuses.includes(status as Task['status'])) {\n    console.error(`❌ Invalid status: ${status}`);\n    console.error(`   Valid statuses: ${validStatuses.join(', ')}`);\n    process.exit(1);\n  }\n\n  const artifacts: Partial<AgentArtifact> | undefined = artifactsJson\n    ? (JSON.parse(artifactsJson) as Partial<AgentArtifact>)\n    : undefined;\n\n  hub.updateTaskStatus(taskId, status as Task['status'], artifacts);\n\n  console.log(`✅ Task ${taskId} updated to: ${status}`);\n  if (artifacts?.files) {\n    console.log(`   Files: ${artifacts.files.join(', ')}`);\n  }\n  if (artifacts?.interfaces) {\n    console.log(`   Interfaces: ${artifacts.interfaces.map((i) => i.name).join(', ')}`);\n  }\n}\n\nfunction canStart(taskId: string) {\n  const hub = new AgentContextHub();\n  const result = hub.canStartTask(taskId);\n\n  if (result.canStart) {\n    console.log(`✅ Task ${taskId} can start (all dependencies completed)`);\n  } else {\n    console.log(`⏳ Task ${taskId} is blocked`);\n    if (result.blockedBy) {\n      console.log(`   Waiting on: ${result.blockedBy.join(', ')}`);\n    }\n  }\n}\n\n// ===========================\n// Main CLI Router\n// ===========================\n\nasync function main() {\n  const args = process.argv.slice(2);\n  const command = args[0];\n\n  try {\n    switch (command) {\n      case 'init':\n        runInit({ force: args.includes('--force') });\n        break;\n\n      case 'update':\n        runUpdate();\n        break;\n\n      case 'status':\n        showStatus();\n        break;\n\n      case 'next':\n        showNext();\n        break;\n\n      case 'detect':\n        await detectTech();\n        break;\n\n      case 'task':\n        if (args.length < 2) {\n          console.error('❌ Usage: claude-orchestra task <task-id>');\n          process.exit(1);\n        }\n        showTask(args[1]);\n        break;\n\n      case 'conflicts':\n        detectConflicts();\n        break;\n\n      case 'register':\n        if (args.length < 3) {\n          console.error(\n            '❌ Usage: claude-orchestra register <description> <agent-name> [dependency-ids...]'\n          );\n          process.exit(1);\n        }\n        registerTask(args[1], args[2], args.slice(3));\n        break;\n\n      case 'update-task':\n        if (args.length < 3) {\n          console.error(\n            '❌ Usage: claude-orchestra update-task <task-id> <status> [artifacts-json]'\n          );\n          process.exit(1);\n        }\n        updateTask(args[1], args[2], args[3]);\n        break;\n\n      case 'can-start':\n        if (args.length < 2) {\n          console.error('❌ Usage: claude-orchestra can-start <task-id>');\n          process.exit(1);\n        }\n        canStart(args[1]);\n        break;\n\n      case 'help':\n      case '--help':\n      case '-h':\n        showHelp();\n        break;\n\n      default:\n        if (!command) {\n          showHelp();\n        } else {\n          console.error(`❌ Unknown command: ${command}`);\n          console.log('');\n          showHelp();\n          process.exit(1);\n        }\n    }\n  } catch (error) {\n    console.error('❌ Error:', error instanceof Error ? error.message : error);\n    process.exit(1);\n  }\n}\n\n// Run CLI\nvoid main();\n"],"mappings":"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","names":["parseToml","__filename"]}