SYMBOL INDEX (1901 symbols across 162 files) FILE: example-documentation.ts function scaffoldRepo (line 11) | async function scaffoldRepo(repoRoot: string, outputDir: string = path.j... FILE: scripts/build-package-bundles.js function ensureDir (line 10) | function ensureDir(dir) { function readJson (line 14) | function readJson(filePath) { function writeJson (line 18) | function writeJson(filePath, value) { function copyFile (line 22) | function copyFile(src, dest) { function copyDir (line 27) | function copyDir(src, dest) { function resetDir (line 41) | function resetDir(dir) { function writeExecutable (line 46) | function writeExecutable(filePath, content) { function createLocalBinShims (line 52) | function createLocalBinShims(pkgRoot, manifest) { function loadTemplate (line 73) | function loadTemplate(name) { function createManifest (line 77) | function createManifest(rootPkg, packageName, description, main, types, ... function packageDependencies (line 100) | function packageDependencies(rootPkg, names) { function buildBundles (line 110) | function buildBundles() { FILE: scripts/release-packages.js function run (line 15) | function run(command, args) { function assert (line 22) | function assert(condition, message) { function resolveVersion (line 28) | function resolveVersion(input) { function copyDir (line 42) | function copyDir(src, dest) { function rewriteBundleVersion (line 55) | function rewriteBundleVersion(bundleDir, version) { function buildRelease (line 62) | function buildRelease(version) { function main (line 96) | function main() { FILE: scripts/smoke-package-bundles.js function assert (line 54) | function assert(condition, message) { function requireFresh (line 60) | function requireFresh(filePath) { function runBundleCommand (line 66) | function runBundleCommand(bundleRoot, args) { function smokeBundle (line 74) | function smokeBundle(bundle) { function main (line 131) | function main() { FILE: scripts/test-mcp.js function send (line 22) | function send(method, params = {}) { function runTests (line 43) | async function runTests() { function sleep (line 88) | function sleep(ms) { FILE: src/generators/agents/agentConfig.ts constant AGENT_RESPONSIBILITIES (line 3) | const AGENT_RESPONSIBILITIES: Record = { constant AGENT_BEST_PRACTICES (line 96) | const AGENT_BEST_PRACTICES: Record = { FILE: src/generators/agents/agentGenerator.test.ts function createRepoStructure (line 9) | function createRepoStructure(rootPath: string): RepoStructure { FILE: src/generators/agents/agentGenerator.ts type AgentContext (line 19) | interface AgentContext { type AvailableSkill (line 25) | interface AvailableSkill { type AgentGenerationConfig (line 32) | interface AgentGenerationConfig { constant AGENT_SKILL_MAP (line 48) | const AGENT_SKILL_MAP: Partial> = { constant AGENT_PHASES (line 61) | const AGENT_PHASES: Record = { function formatAgentTitle (line 81) | function formatAgentTitle(agentType: AgentType): string { class AgentGenerator (line 88) | class AgentGenerator { method constructor (line 102) | constructor(..._legacyArgs: unknown[]) {} method generateAgentPrompts (line 104) | async generateAgentPrompts( method renderSkillsSection (line 212) | private renderSkillsSection(agentType: AgentType, availableSkills: Ava... method getRelevantSymbolsForAgent (line 230) | private getRelevantSymbolsForAgent(agentType: AgentType, semantics?: S... method resolveAgentSelection (line 321) | private resolveAgentSelection( method buildContext (line 341) | private buildContext(repoStructure: RepoStructure, semantics?: Semanti... FILE: src/generators/agents/agentTypes.ts constant AGENT_TYPES (line 1) | const AGENT_TYPES = [ type AgentType (line 18) | type AgentType = typeof AGENT_TYPES[number]; constant IMPORTANT_FILES (line 20) | const IMPORTANT_FILES = [ FILE: src/generators/agents/templates/indexTemplate.ts function renderAgentIndex (line 4) | function renderAgentIndex(agentTypes: readonly AgentType[]): string { function formatTitle (line 31) | function formatTitle(agentType: string): string { FILE: src/generators/agents/templates/types.ts type DocTouchpoint (line 4) | interface DocTouchpoint { type KeySymbolInfo (line 9) | interface KeySymbolInfo { type AgentTemplateContext (line 16) | interface AgentTemplateContext { FILE: src/generators/documentation/codebaseMapGenerator.ts type KeyFile (line 20) | interface KeyFile { type NavigationHints (line 26) | interface NavigationHints { type SemanticSnapshotMetadata (line 33) | interface SemanticSnapshotMetadata { type CodebaseMap (line 43) | interface CodebaseMap { type CodebaseMapOptions (line 109) | interface CodebaseMapOptions { function createEmptyFunctionalPatterns (line 114) | function createEmptyFunctionalPatterns(): DetectedFunctionalPatterns { constant DIRECTORY_DESCRIPTIONS (line 134) | const DIRECTORY_DESCRIPTIONS: Record = { constant KEY_FILE_PATTERNS (line 189) | const KEY_FILE_PATTERNS: Array<{ pattern: RegExp; description: string; c... class CodebaseMapGenerator (line 208) | class CodebaseMapGenerator { method constructor (line 212) | constructor(options: CodebaseMapOptions = {}) { method generate (line 217) | generate( method buildStackSection (line 241) | private buildStackSection(stackInfo?: StackInfo, repoRoot?: string): C... method buildStructureSection (line 312) | private buildStructureSection(repoStructure: RepoStructure): CodebaseM... method getDirectoryDescription (line 350) | private getDirectoryDescription(dirName: string): string { method buildArchitectureSection (line 372) | private buildArchitectureSection( method categorizeEntryPoints (line 415) | private categorizeEntryPoints(entryPoints: string[]): { method buildDependenciesSection (line 458) | private buildDependenciesSection(repoRoot: string, semantics?: Semanti... method inferFileDescription (line 481) | private inferFileDescription(filePath: string): string | undefined { method buildStatsSection (line 521) | private buildStatsSection(repoStructure: RepoStructure, semantics?: Se... method relativePath (line 549) | private relativePath(repoRoot: string, filePath: string): string { method buildKeyFilesSection (line 556) | private buildKeyFilesSection(repoStructure: RepoStructure, semantics?:... method enhanceFileDescription (line 608) | private enhanceFileDescription( method inferCategory (line 638) | private inferCategory(filePath: string): KeyFile['category'] { method buildNavigationSection (line 655) | private buildNavigationSection(repoStructure: RepoStructure, stackInfo... FILE: src/generators/documentation/documentationGenerator.test.ts function createRepoStructure (line 9) | function createRepoStructure(rootPath: string): RepoStructure { FILE: src/generators/documentation/documentationGenerator.ts constant DOC_CATEGORY_MAP (line 25) | const DOC_CATEGORY_MAP: Record guide.key); function getGuidesByKeys (line 56) | function getGuidesByKeys(keys?: string[]): GuideMeta[] { function getDocFilesByKeys (line 66) | function getDocFilesByKeys(keys?: string[]): Set | undefined { FILE: src/generators/documentation/templates/common.ts function wrapWithFrontMatter (line 9) | function wrapWithFrontMatter( constant KNOWN_DESCRIPTIONS (line 24) | const KNOWN_DESCRIPTIONS: Record = { function formatDirectoryList (line 33) | function formatDirectoryList( function buildDocumentMapTable (line 57) | function buildDocumentMapTable(guides: DocumentationTemplateContext['gui... function formatDirectoryStats (line 62) | function formatDirectoryStats(stats: DirectoryStat[]): string { function formatInlineDirectoryList (line 72) | function formatInlineDirectoryList(directories: string[]): string { function formatSymbolRef (line 86) | function formatSymbolRef( function formatCodeLocation (line 98) | function formatCodeLocation( function formatFileRef (line 111) | function formatFileRef( function buildSymbolTable (line 125) | function buildSymbolTable( function buildSymbolList (line 168) | function buildSymbolList( function groupSymbolsByDirectory (line 188) | function groupSymbolsByDirectory( FILE: src/generators/documentation/templates/indexTemplate.ts function renderIndex (line 4) | function renderIndex(context: DocumentationTemplateContext): string { FILE: src/generators/documentation/templates/types.ts type GuideMeta (line 4) | interface GuideMeta { type DirectoryStat (line 11) | interface DirectoryStat { type DocumentationTemplateContext (line 16) | interface DocumentationTemplateContext { FILE: src/generators/plans/planGenerator.test.ts function createTempOutput (line 7) | function createTempOutput(prefix: string): Promise { FILE: src/generators/plans/planGenerator.ts type PlanGeneratorOptions (line 13) | interface PlanGeneratorOptions { type PlanGenerationResult (line 26) | interface PlanGenerationResult { class PlanGenerator (line 32) | class PlanGenerator { method generatePlan (line 35) | async generatePlan(options: PlanGeneratorOptions): Promise { FILE: src/generators/shared/directoryTemplateHelpers.ts function formatDirectoryList (line 1) | function formatDirectoryList(directories: string[], placeholderMessage?:... FILE: src/generators/shared/generatorUtils.ts class GeneratorUtils (line 6) | class GeneratorUtils { method formatBytes (line 7) | static formatBytes(bytes: number): string { method slugify (line 15) | static slugify(text: string): string { method formatModuleName (line 22) | static formatModuleName(name: string): string { method formatTitle (line 29) | static formatTitle(text: string): string { method ensureDirectoryAndLog (line 35) | static async ensureDirectoryAndLog(dir: string, verbose: boolean, desc... method writeFileWithLogging (line 42) | static async writeFileWithLogging( method logError (line 61) | static logError(message: string, error: any, verbose: boolean): void { method logProgress (line 67) | static logProgress(message: string, verbose: boolean): void { method getFileTypeDistribution (line 73) | static getFileTypeDistribution(repoStructure: RepoStructure): Map = { function createAgentStructure (line 44) | function createAgentStructure( FILE: src/generators/shared/structures/documentation/architecture.ts constant SEMANTIC_SNAPSHOT_GUIDANCE (line 3) | const SEMANTIC_SNAPSHOT_GUIDANCE = FILE: src/generators/shared/structures/documentation/projectOverview.ts constant SEMANTIC_SNAPSHOT_GUIDANCE (line 3) | const SEMANTIC_SNAPSHOT_GUIDANCE = FILE: src/generators/shared/structures/registry.ts constant SCAFFOLD_STRUCTURES (line 15) | const SCAFFOLD_STRUCTURES: Record = { function getScaffoldStructure (line 65) | function getScaffoldStructure(name: string): ScaffoldStructure | undefin... function getStructuresByType (line 72) | function getStructuresByType(fileType: ScaffoldFileType): ScaffoldStruct... FILE: src/generators/shared/structures/serialization.ts function serializeStructureAsMarkdown (line 12) | function serializeStructureAsMarkdown(structure: ScaffoldStructure): str... function formatSectionAsMarkdown (line 40) | function formatSectionAsMarkdown(section: ScaffoldSection): string { function getPlaceholderForContentType (line 72) | function getPlaceholderForContentType(contentType: string, required: boo... function serializeStructureForAI (line 96) | function serializeStructureForAI(structure: ScaffoldStructure): string { FILE: src/generators/shared/structures/skills/factory.ts type SkillDefaultContent (line 10) | interface SkillDefaultContent { constant SECTION_KEY_MAP (line 20) | const SECTION_KEY_MAP: Record = { constant RESOURCE_STRATEGY_DEFAULT (line 26) | const RESOURCE_STRATEGY_DEFAULT = `- Add \`scripts/\` only when the task... function createSkillStructure (line 34) | function createSkillStructure( FILE: src/generators/shared/structures/types.ts type ScaffoldContentType (line 10) | type ScaffoldContentType = type ScaffoldTone (line 21) | type ScaffoldTone = type ScaffoldAudience (line 30) | type ScaffoldAudience = type ScaffoldSection (line 39) | interface ScaffoldSection { type ScaffoldStructure (line 61) | interface ScaffoldStructure { FILE: src/generators/shared/structures/validation.ts function validateStructure (line 11) | function validateStructure(structure: ScaffoldStructure): string[] { function validateAllStructures (line 46) | function validateAllStructures(): Map { FILE: src/generators/skills/skillGenerator.ts type SkillGeneratorOptions (line 30) | interface SkillGeneratorOptions { type SkillGeneratorResult (line 41) | interface SkillGeneratorResult { class SkillGenerator (line 48) | class SkillGenerator { method constructor (line 53) | constructor(options: SkillGeneratorOptions) { method generate (line 62) | async generate(options: { method formatSkillTitle (line 132) | private formatSkillTitle(skillName: string): string { method buildSkillBody (line 139) | private buildSkillBody(skillName: string): string { method generateCustomSkill (line 184) | async generateCustomSkill(options: { method generateIndex (line 223) | async generateIndex(): Promise { function createSkillGenerator (line 243) | function createSkillGenerator(options: SkillGeneratorOptions): SkillGene... FILE: src/generators/skills/templates/indexTemplate.ts type SkillsIndexOptions (line 7) | interface SkillsIndexOptions { function generateSkillsIndex (line 15) | function generateSkillsIndex(options: SkillsIndexOptions): string { FILE: src/generators/skills/templates/skillTemplate.ts type SkillTemplateOptions (line 18) | interface SkillTemplateOptions { function generateSkillContent (line 29) | function generateSkillContent(options: SkillTemplateOptions): string { function buildFrontmatter (line 45) | function buildFrontmatter(options: SkillTemplateOptions): string { function buildBody (line 68) | function buildBody(name: string, description: string): string { function getDefaultPhases (line 109) | function getDefaultPhases(skillName: string): PrevcPhase[] { FILE: src/index.ts function scheduleVersionCheck (line 106) | function scheduleVersionCheck(force: boolean = false): Promise { function registerSyncCommand (line 124) | function registerSyncCommand(parent: Command, name: string, hidden = fal... function registerPreviewSplashCommand (line 300) | function registerPreviewSplashCommand(parent: Command, hidden = false): ... function registerExportRulesCommand (line 317) | function registerExportRulesCommand(parent: Command, hidden = false): Co... function registerReportCommand (line 352) | function registerReportCommand(parent: Command, hidden = false): Command { function registerSkillCommands (line 385) | function registerSkillCommands(parent: Command, hidden = false): Command { function registerWorkflowCommands (line 479) | function registerWorkflowCommands(parent: Command, hidden = false): Comm... function selectLocale (line 654) | async function selectLocale(): Promise { type InteractiveAction (line 669) | type InteractiveAction = 'syncAgents' | 'update' | 'changeLanguage' | 'e... type StateAction (line 670) | type StateAction = 'exit' | 'mcpInstall' | 'reverseSync' | 'settings'; function runInteractive (line 672) | async function runInteractive(): Promise { function runFullMenu (line 763) | async function runFullMenu(): Promise { function displayPendingFiles (line 819) | async function displayPendingFiles(contextDir: string): Promise { function runMcpInstall (line 832) | async function runMcpInstall(): Promise { function runInteractiveSync (line 854) | async function runInteractiveSync(): Promise { function runQuickSync (line 936) | async function runQuickSync(): Promise { function runReverseSync (line 1081) | async function runReverseSync(): Promise { function runSettings (line 1185) | async function runSettings(): Promise { function renderStartupSplash (line 1190) | async function renderStartupSplash( function filterOutLocaleArgs (line 1208) | function filterOutLocaleArgs(args: string[]): string[] { function main (line 1224) | async function main(): Promise { function isUserInterrupt (line 1239) | function isUserInterrupt(error: unknown): boolean { function handleGracefulExit (line 1253) | function handleGracefulExit(): void { FILE: src/mcp/bin.ts type ParsedArgs (line 17) | type ParsedArgs = { function parseMcpPackageArgs (line 61) | function parseMcpPackageArgs(argv: string[]): ParsedArgs { function parseServeArgs (line 84) | function parseServeArgs(args: string[]): ParsedArgs { function parseInstallArgs (line 105) | function parseInstallArgs(args: string[]): ParsedArgs { function printHelp (line 152) | function printHelp(): void { function runInstallCommand (line 167) | async function runInstallCommand(args: ParsedArgs, argv: string[]): Prom... function runServeCommand (line 209) | async function runServeCommand(args: ParsedArgs): Promise { function runMcpPackage (line 225) | async function runMcpPackage(argv: string[]): Promise { FILE: src/prompts/defaults.ts constant UPDATE_SCAFFOLD_PROMPT_FALLBACK (line 1) | const UPDATE_SCAFFOLD_PROMPT_FALLBACK = `# Prompt: Update Repository Doc... constant MCP_SCAFFOLD_ENHANCEMENT_PROMPT (line 34) | const MCP_SCAFFOLD_ENHANCEMENT_PROMPT = `# AI Enhancement Required constant UPDATE_PLAN_PROMPT_FALLBACK (line 74) | const UPDATE_PLAN_PROMPT_FALLBACK = `# Prompt: Update Collaboration Plans FILE: src/services/autoFill/autoFillService.ts type AutoFillContext (line 14) | interface AutoFillContext { type DirectoryStat (line 21) | interface DirectoryStat { constant SEMANTIC_SNAPSHOT_REFERENCE (line 26) | const SEMANTIC_SNAPSHOT_REFERENCE = class AutoFillService (line 29) | class AutoFillService { method fillDocumentation (line 33) | fillDocumentation( method fillAgent (line 60) | fillAgent( method fillSection (line 75) | private fillSection( method fillAgentSection (line 85) | private fillAgentSection( method generateDocContent (line 95) | private generateDocContent( method generateAgentContent (line 117) | private generateAgentContent( method fillProjectOverviewSection (line 147) | private fillProjectOverviewSection(section: ScaffoldSection, ctx: Auto... method fillArchitectureSection (line 185) | private fillArchitectureSection(section: ScaffoldSection, ctx: AutoFil... method fillToolingSection (line 211) | private fillToolingSection(section: ScaffoldSection, ctx: AutoFillCont... method generateProjectOverview (line 231) | private generateProjectOverview(ctx: AutoFillContext): string { method generateQuickFacts (line 249) | private generateQuickFacts(ctx: AutoFillContext): string { method formatEntryPoints (line 275) | private formatEntryPoints(entryPoints: string[]): string { method formatPublicAPI (line 283) | private formatPublicAPI(symbols: ExtractedSymbol[]): string { method formatPublicAPITable (line 297) | private formatPublicAPITable(symbols: ExtractedSymbol[]): string { method formatDirectoryStructure (line 315) | private formatDirectoryStructure(directories: string[]): string { method formatTechStack (line 326) | private formatTechStack(stackInfo?: StackInfo): string { method formatFrameworks (line 356) | private formatFrameworks(stackInfo?: StackInfo): string { method formatBuildTools (line 364) | private formatBuildTools(stackInfo?: StackInfo): string { method formatTestFrameworks (line 372) | private formatTestFrameworks(stackInfo?: StackInfo): string { method formatPackageManager (line 380) | private formatPackageManager(stackInfo?: StackInfo): string { method formatLayers (line 388) | private formatLayers(layers: ArchitectureLayer[]): string { method formatPatterns (line 403) | private formatPatterns(patterns: DetectedPattern[]): string { method generateGettingStarted (line 422) | private generateGettingStarted(stackInfo?: StackInfo): string { method generateKeyFilesForAgent (line 467) | private generateKeyFilesForAgent(agentType: string, ctx: AutoFillConte... method generateRelevantSymbolsForAgent (line 496) | private generateRelevantSymbolsForAgent(agentType: string, ctx: AutoFi... method getFilePatternForAgent (line 515) | private getFilePatternForAgent(agentType: string): RegExp[] { method getRelevantSymbolsForAgent (line 547) | private getRelevantSymbolsForAgent(agentType: string, semantics: Seman... FILE: src/services/cli/mcpInstallService.ts type MCPInstallServiceDependencies (line 25) | type MCPInstallServiceDependencies = BaseDependencies; type MCPInstallOptions (line 27) | interface MCPInstallOptions { type MCPInstallResult (line 40) | interface MCPInstallResult extends OperationResult { type MCPInstallation (line 44) | interface MCPInstallation { type MCPInstallToolChoice (line 52) | interface MCPInstallToolChoice { type MCPInstallToolPrompt (line 57) | interface MCPInstallToolPrompt { type ResolveMcpInstallToolSelectionOptions (line 62) | interface ResolveMcpInstallToolSelectionOptions { type MCPServerConfig (line 74) | interface MCPServerConfig { type MCPConfigTemplate (line 80) | interface MCPConfigTemplate { constant AI_CONTEXT_MCP_SERVER (line 98) | const AI_CONTEXT_MCP_SERVER: MCPServerConfig = { function buildCodexTomlConfig (line 107) | function buildCodexTomlConfig(existingConfig: string, server: MCPServerC... constant MCP_CONFIG_TEMPLATES (line 129) | const MCP_CONFIG_TEMPLATES: MCPConfigTemplate[] = [ class MCPInstallService (line 499) | class MCPInstallService { method constructor (line 500) | constructor(private deps: MCPInstallServiceDependencies) {} method getSupportedTools (line 505) | getSupportedTools(): ToolDefinition[] { method getSupportedToolIds (line 512) | getSupportedToolIds(): string[] { method detectInstalledTools (line 519) | async detectInstalledTools(): Promise { method run (line 540) | async run(options: MCPInstallOptions = {}): Promise { method installForTool (line 607) | private async installForTool( function buildMcpInstallToolChoices (line 719) | function buildMcpInstallToolChoices( function resolveMcpInstallToolSelection (line 744) | async function resolveMcpInstallToolSelection( FILE: src/services/cli/stateDetector.ts type ProjectState (line 18) | type ProjectState = 'new' | 'unfilled' | 'ready' | 'outdated'; type StateDetectionResult (line 20) | interface StateDetectionResult { type StateDetectorOptions (line 34) | interface StateDetectorOptions { constant DEFAULT_SOURCE_DIRS (line 40) | const DEFAULT_SOURCE_DIRS = ['src', 'lib', 'app', 'packages']; class StateDetector (line 42) | class StateDetector { method constructor (line 47) | constructor(options: StateDetectorOptions) { method contextDir (line 53) | get contextDir(): string { method detect (line 60) | async detect(): Promise { method getNewestMtime (line 133) | private async getNewestMtime(dirs: string[]): Promise { method getContextMtime (line 165) | private async getContextMtime(): Promise { method describeState (line 187) | static describeState(result: StateDetectionResult): string { FILE: src/services/export/contextExportService.ts type ContextExportServiceDependencies (line 19) | type ContextExportServiceDependencies = BaseDependencies; type ContextExportOptions (line 21) | interface ContextExportOptions { type ContextExportResult (line 44) | interface ContextExportResult extends OperationResult { class ContextExportService (line 51) | class ContextExportService { method constructor (line 52) | constructor(private deps: ContextExportServiceDependencies) {} method run (line 57) | async run(repoPath: string, options: ContextExportOptions = {}): Promi... FILE: src/services/export/exportRulesService.ts type ExportRulesServiceDependencies (line 24) | type ExportRulesServiceDependencies = BaseDependencies; type ExportTarget (line 26) | interface ExportTarget { type ExportOptions (line 35) | interface ExportOptions { type ExportResult (line 46) | interface ExportResult extends OperationResult { type RuleFile (line 50) | interface RuleFile { function buildExportPresets (line 59) | function buildExportPresets(): Record { function deduplicateTargets (line 91) | function deduplicateTargets(targets: ExportTarget[]): ExportTarget[] { constant EXPORT_PRESETS (line 108) | const EXPORT_PRESETS: Record = buildExportPreset... class ExportRulesService (line 110) | class ExportRulesService { method constructor (line 111) | constructor(private deps: ExportRulesServiceDependencies) {} method run (line 116) | async run(repoPath: string, options: ExportOptions = {}): Promise { constant SKILL_EXPORT_PRESETS (line 68) | const SKILL_EXPORT_PRESETS: Record = buildS... class SkillExportService (line 70) | class SkillExportService { method constructor (line 71) | constructor(private deps: SkillExportServiceDependencies) {} method run (line 76) | async run(repoPath: string, options: SkillExportOptions = {}): Promise... method getSkillsToExport (line 124) | private async getSkillsToExport(repoPath: string, options: SkillExport... method exportToTarget (line 174) | private async exportToTarget( method exportSkill (line 214) | private async exportSkill( method generateSkillContent (line 258) | private generateSkillContent(skill: Skill): string { method resolveTargets (line 273) | private resolveTargets(options: SkillExportOptions): SkillExportTarget... method getAvailablePresets (line 307) | getAvailablePresets(): string[] { FILE: src/services/harness/agentsService.ts type HarnessAgentsServiceOptions (line 18) | interface HarnessAgentsServiceOptions { class HarnessAgentsService (line 22) | class HarnessAgentsService { method constructor (line 23) | constructor(private readonly options: HarnessAgentsServiceOptions) {} method repoPath (line 25) | private get repoPath(): string { method discover (line 29) | async discover(): Promise> { method getInfo (line 48) | async getInfo(agentType: string): Promise> { method orchestrate (line 58) | orchestrate(params: { method getSequence (line 90) | getSequence(params: { method getDocs (line 118) | getDocs(agent: AgentType): Record { method getPhaseDocs (line 137) | getPhaseDocs(phase: PrevcPhase): Record { method listTypes (line 157) | listTypes(): Record { FILE: src/services/harness/contextService.ts type HarnessContextServiceOptions (line 28) | interface HarnessContextServiceOptions { type HarnessContextInitResult (line 33) | interface HarnessContextInitResult { type HarnessContextPlanScaffoldResult (line 44) | interface HarnessContextPlanScaffoldResult { type HarnessBootstrapStatusResult (line 55) | interface HarnessBootstrapStatusResult { class HarnessContextService (line 94) | class HarnessContextService { method constructor (line 95) | constructor(private readonly options: HarnessContextServiceOptions) {} method repoPath (line 97) | private get repoPath(): string { method check (line 101) | async check(repoPath?: string): Promise { method bootstrapStatus (line 108) | async bootstrapStatus(repoPath?: string): Promise { function createInternalTool (line 38) | function createInternalTool( type ScaffoldTarget (line 45) | type ScaffoldTarget = 'docs' | 'agents' | 'skills' | 'plans' | 'sensors'... type ScaffoldFileType (line 46) | type ScaffoldFileType = 'doc' | 'agent' | 'skill' | 'plan' | 'sensor'; type ScaffoldFileInfo (line 48) | interface ScaffoldFileInfo { type RequiredAction (line 55) | interface RequiredAction { function collectScaffoldFiles (line 64) | async function collectScaffoldFiles( function resolveScaffoldFileInfo (line 155) | function resolveScaffoldFileInfo(outputDir: string, filePath: string): S... function getDocFillInstructions (line 205) | function getDocFillInstructions(fileName: string): string { function getAgentFillInstructions (line 209) | function getAgentFillInstructions(agentType: string): string { function getSkillFillInstructions (line 213) | function getSkillFillInstructions(skillSlug: string): string { function getSensorFillInstructions (line 217) | function getSensorFillInstructions(): string { function sensorCatalogNeedsFill (line 221) | async function sensorCatalogNeedsFill(filePath: string): Promise { function hasContent (line 230) | async function hasContent(dirPath: string): Promise { function hasSkillContent (line 239) | async function hasSkillContent(skillsDir: string): Promise { function hasHarnessRuntimeContent (line 256) | async function hasHarnessRuntimeContent(harnessDir: string): Promise { function cleanupSharedContext (line 309) | async function cleanupSharedContext(): Promise { constant TOOL_NAMES (line 1183) | const TOOL_NAMES = [ type ToolName (line 1198) | type ToolName = (typeof TOOL_NAMES)[number]; FILE: src/services/harness/datasetService.ts type HarnessFailureKind (line 10) | type HarnessFailureKind = 'sensor' | 'task' | 'session' | 'trace'; type HarnessFailureRecord (line 12) | interface HarnessFailureRecord { type HarnessFailureCluster (line 24) | interface HarnessFailureCluster { type HarnessFailureDataset (line 33) | interface HarnessFailureDataset { type HarnessDatasetServiceOptions (line 45) | interface HarnessDatasetServiceOptions { type BuildHarnessDatasetOptions (line 50) | interface BuildHarnessDatasetOptions { type HarnessDatasetDependencies (line 55) | interface HarnessDatasetDependencies { function nowIso (line 61) | function nowIso(): string { function normalizeSignature (line 65) | function normalizeSignature(value: string): string { function buildSensorFailures (line 73) | function buildSensorFailures(replay: HarnessReplayRecord): HarnessFailur... function buildTaskFailures (line 93) | async function buildTaskFailures( function buildSessionFailure (line 126) | function buildSessionFailure(replay: HarnessReplayRecord): HarnessFailur... function buildTraceFailures (line 150) | function buildTraceFailures(replay: HarnessReplayRecord): HarnessFailure... function clusterFailures (line 170) | function clusterFailures(failures: HarnessFailureRecord[]): HarnessFailu... class HarnessDatasetService (line 205) | class HarnessDatasetService { method constructor (line 210) | constructor(private readonly options: HarnessDatasetServiceOptions) { method repoPath (line 236) | private get repoPath(): string { method datasetsPath (line 240) | private get datasetsPath(): string { method datasetFile (line 244) | private datasetFile(datasetId: string): string { method ensureLayout (line 248) | private async ensureLayout(): Promise { method buildFailureDataset (line 252) | async buildFailureDataset(options: BuildHarnessDatasetOptions = {}): P... method listDatasets (line 289) | async listDatasets(): Promise { method getDataset (line 301) | async getDataset(datasetId: string): Promise { method getFailureClusters (line 310) | async getFailureClusters(datasetId: string): Promise { method registerPolicy (line 210) | registerPolicy(input: { method getPolicy (line 235) | getPolicy(): Promise { method setPolicy (line 239) | setPolicy(input: { method resetPolicy (line 251) | async resetPolicy(): Promise { method evaluatePolicy (line 255) | evaluatePolicy(input: HarnessPolicyEvaluationInput): Promise { method listReplays (line 263) | listReplays(sessionId?: string): Promise { method exportFailureDataset (line 267) | exportFailureDataset(sessionIds?: string[]): Promise { method getDataset (line 278) | getDataset(datasetId: string): Promise { method getFailureClusters (line 282) | getFailureClusters(datasetId: string): Promise { method getSessionQuality (line 286) | async getSessionQuality( FILE: src/services/harness/plansService.ts type HarnessPlansServiceOptions (line 17) | interface HarnessPlansServiceOptions { class HarnessPlansService (line 21) | class HarnessPlansService { method constructor (line 24) | constructor(private readonly options: HarnessPlansServiceOptions) { method repoPath (line 30) | private get repoPath(): string { method link (line 34) | async link(planSlug: string): Promise> { method getLinked (line 99) | async getLinked(): Promise> { method getDetails (line 104) | async getDetails(planSlug: string): Promise> { method getForPhase (line 126) | async getForPhase(phase: PrevcPhase): Promise> { method updatePhase (line 144) | async updatePhase(planSlug: string, phaseId: string, status: 'pending'... method recordDecision (line 149) | async recordDecision(params: { method updateStep (line 167) | async updateStep(params: { method getStatus (line 192) | async getStatus(planSlug: string): Promise> { method syncMarkdown (line 205) | async syncMarkdown(planSlug: string): Promise> { method commitPhase (line 215) | async commitPhase(params: { FILE: src/services/harness/policyService.ts type HarnessPolicyEffect (line 5) | type HarnessPolicyEffect = 'allow' | 'deny' | 'require_approval'; type HarnessPolicyRisk (line 6) | type HarnessPolicyRisk = 'low' | 'medium' | 'high' | 'critical'; type HarnessPolicyTarget (line 7) | type HarnessPolicyTarget = 'tool' | 'action' | 'path' | 'risk'; type HarnessPolicyScope (line 8) | type HarnessPolicyScope = HarnessPolicyTarget; type HarnessPolicyDefaultEffect (line 9) | type HarnessPolicyDefaultEffect = 'allow' | 'deny'; type HarnessPolicyRuleSelector (line 11) | interface HarnessPolicyRuleSelector { type HarnessPolicyRule (line 18) | interface HarnessPolicyRule { type HarnessPolicyDocument (line 28) | interface HarnessPolicyDocument { type HarnessPolicyApproval (line 34) | interface HarnessPolicyApproval { type HarnessPolicyEvaluationInput (line 39) | interface HarnessPolicyEvaluationInput { type HarnessPolicyLegacyEnforcementInput (line 50) | interface HarnessPolicyLegacyEnforcementInput { type HarnessPolicyMatch (line 60) | interface HarnessPolicyMatch { type HarnessPolicyDecision (line 67) | interface HarnessPolicyDecision { type HarnessPolicyEvaluationResult (line 76) | type HarnessPolicyEvaluationResult = HarnessPolicyDecision; type CreateHarnessPolicyRuleInput (line 78) | interface CreateHarnessPolicyRuleInput { type HarnessPolicyServiceOptions (line 87) | interface HarnessPolicyServiceOptions { type CreateHarnessBootstrapPolicyOptions (line 91) | interface CreateHarnessBootstrapPolicyOptions { class HarnessPolicyBlockedError (line 95) | class HarnessPolicyBlockedError extends Error { method constructor (line 96) | constructor( function normalizePath (line 105) | function normalizePath(input: string): string { function escapeRegex (line 109) | function escapeRegex(input: string): string { function globToRegExp (line 113) | function globToRegExp(pattern: string): RegExp { function matchesAnyPattern (line 127) | function matchesAnyPattern(value: string, patterns: string[]): boolean { function riskRank (line 139) | function riskRank(risk: HarnessPolicyRisk): number { function compareRisk (line 148) | function compareRisk(inputRisk: HarnessPolicyRisk | undefined, ruleRisk:... function normalizeRule (line 158) | function normalizeRule(rule: HarnessPolicyRule): HarnessPolicyRule { function isLegacyEnforcementInput (line 180) | function isLegacyEnforcementInput( constant CORE_DIRECTORY_CANDIDATES (line 186) | const CORE_DIRECTORY_CANDIDATES = [ constant ROOT_CONFIG_FILE_CANDIDATES (line 207) | const ROOT_CONFIG_FILE_CANDIDATES = [ constant ROOT_SOURCE_FILE_EXTENSIONS (line 234) | const ROOT_SOURCE_FILE_EXTENSIONS = new Set([ constant CONFIG_DIRECTORY_PATTERNS (line 252) | const CONFIG_DIRECTORY_PATTERNS: Array<{ path: string; pattern: string }... class HarnessPolicyService (line 266) | class HarnessPolicyService { method constructor (line 267) | constructor(private readonly options: HarnessPolicyServiceOptions) {} method repoPath (line 269) | private get repoPath(): string { method policyPath (line 273) | private get policyPath(): string { method toEvaluationInput (line 277) | private toEvaluationInput( method loadPolicy (line 295) | async loadPolicy(): Promise { method savePolicy (line 312) | async savePolicy(policy: HarnessPolicyDocument): Promise { method evaluateWithPolicy (line 328) | private evaluateWithPolicy(input: HarnessPolicyEvaluationInput, policy... method evaluate (line 397) | async evaluate(input: HarnessPolicyEvaluationInput, policy?: HarnessPo... method evaluateAndAuthorize (line 402) | async evaluateAndAuthorize( method authorize (line 410) | async authorize( method enforce (line 430) | async enforce( method setPolicyFromRules (line 437) | async setPolicyFromRules(input: { method setPolicy (line 448) | async setPolicy(policy: HarnessPolicyDocument): Promise { method evaluatePolicy (line 495) | async evaluatePolicy(input: HarnessPolicyEvaluationInput): Promise { method detectStackInfo (line 507) | private async detectStackInfo(): Promise { method readTopLevelEntries (line 515) | private async readTopLevelEntries(): Promise<{ files: string[]; direct... method getCorePathPatterns (line 543) | private getCorePathPatterns(topLevelEntries: { files: string[]; direct... method getConfigPathPatterns (line 558) | private async getConfigPathPatterns(topLevelEntries: { files: string[]... method buildCoreRuleReason (line 582) | private buildCoreRuleReason(stackInfo?: StackInfo): string { method createBootstrapPolicy (line 596) | async createBootstrapPolicy( FILE: src/services/harness/replayService.ts type HarnessReplayEventSource (line 20) | type HarnessReplayEventSource = type HarnessReplayEvent (line 29) | interface HarnessReplayEvent { type HarnessReplayRecord (line 38) | interface HarnessReplayRecord { type HarnessReplayServiceOptions (line 57) | interface HarnessReplayServiceOptions { type ReplaySessionOptions (line 62) | interface ReplaySessionOptions { type HarnessReplayDependencies (line 67) | interface HarnessReplayDependencies { function nowIso (line 73) | function nowIso(): string { function sortByCreatedAt (line 77) | function sortByCreatedAt(items: T[]): T... class HarnessReplayService (line 81) | class HarnessReplayService { method constructor (line 86) | constructor(private readonly options: HarnessReplayServiceOptions) { method repoPath (line 102) | private get repoPath(): string { method replaysPath (line 106) | private get replaysPath(): string { method replayFile (line 110) | private replayFile(replayId: string): string { method ensureLayout (line 114) | private async ensureLayout(): Promise { method saveReplay (line 118) | private async saveReplay(replay: HarnessReplayRecord): Promise { method readReplay (line 123) | private async readReplay(replayId: string): Promise { FILE: src/services/harness/runtimeStateService.ts type HarnessSessionStatus (line 12) | type HarnessSessionStatus = 'active' | 'paused' | 'completed' | 'failed'; type HarnessTraceLevel (line 13) | type HarnessTraceLevel = 'debug' | 'info' | 'warn' | 'error'; type HarnessArtifactKind (line 14) | type HarnessArtifactKind = 'text' | 'json' | 'file'; type HarnessRuntimeStateServiceOptions (line 16) | interface HarnessRuntimeStateServiceOptions { type HarnessSessionCheckpoint (line 20) | interface HarnessSessionCheckpoint { type HarnessSessionRecord (line 28) | interface HarnessSessionRecord { type HarnessTraceRecord (line 47) | interface HarnessTraceRecord { type HarnessArtifactRecord (line 57) | interface HarnessArtifactRecord { type HarnessRuntimeStatePort (line 68) | interface HarnessRuntimeStatePort { type CreateSessionInput (line 79) | interface CreateSessionInput { type AppendTraceInput (line 84) | interface AppendTraceInput { type AddArtifactInput (line 91) | interface AddArtifactInput { type CheckpointInput (line 99) | interface CheckpointInput { function nowIso (line 106) | function nowIso(): string { function normalizeContent (line 110) | function normalizeContent(content: unknown): unknown { class HarnessRuntimeStateService (line 122) | class HarnessRuntimeStateService { method constructor (line 123) | constructor(private readonly options: HarnessRuntimeStateServiceOption... method repoPath (line 125) | private get repoPath(): string { method contextPath (line 129) | private get contextPath(): string { method harnessPath (line 133) | private get harnessPath(): string { method sessionsPath (line 137) | private get sessionsPath(): string { method tracesPath (line 141) | private get tracesPath(): string { method artifactsPath (line 145) | private get artifactsPath(): string { method sessionFile (line 149) | private sessionFile(sessionId: string): string { method traceFile (line 153) | private traceFile(sessionId: string): string { method artifactFile (line 157) | private artifactFile(sessionId: string, artifactId: string): string { method ensureLayout (line 161) | private async ensureLayout(): Promise { method readSession (line 167) | private async readSession(sessionId: string): Promise { method appendTraceLine (line 181) | private async appendTraceLine(sessionId: string, trace: HarnessTraceRe... method recordTrace (line 186) | private async recordTrace(sessionId: string, trace: HarnessTraceRecord... method createSession (line 198) | async createSession(input: CreateSessionInput): Promise { method getSession (line 241) | async getSession(sessionId: string): Promise { method appendTrace (line 245) | async appendTrace(sessionId: string, input: AppendTraceInput): Promise... method addArtifact (line 260) | async addArtifact(sessionId: string, input: AddArtifactInput): Promise... method listCheckpoints (line 297) | async listCheckpoints(sessionId: string): Promise { method checkpointSession (line 332) | async checkpointSession(sessionId: string, input: CheckpointInput = {}... method resumeSession (line 367) | async resumeSession(sessionId: string): Promise { method completeSession (line 390) | async completeSession(sessionId: string, note?: string): Promise { method loadSync (line 90) | loadSync(): HarnessSensorCatalogDocument | null { method resolveEffectiveSensorsSync (line 98) | resolveEffectiveSensorsSync(): HarnessShellSensorConfig[] { method detectSensorsSync (line 109) | detectSensorsSync(): HarnessShellSensorConfig[] { method detectNodeSensors (line 261) | private detectNodeSensors(packageJsonPath: string): HarnessShellSensor... method serializeStack (line 323) | private serializeStack(stack: StackInfo): HarnessSensorCatalogDocument... FILE: src/services/harness/sensorsService.ts type HarnessSensorSeverity (line 15) | type HarnessSensorSeverity = 'info' | 'warning' | 'critical'; type HarnessSensorStatus (line 16) | type HarnessSensorStatus = 'passed' | 'failed' | 'skipped' | 'blocked'; type HarnessSensorExecutionInput (line 18) | interface HarnessSensorExecutionInput { type HarnessSensorExecutionResult (line 25) | interface HarnessSensorExecutionResult { type HarnessSensorDefinition (line 33) | interface HarnessSensorDefinition { type HarnessSensorRun (line 42) | interface HarnessSensorRun extends HarnessSensorExecutionResult { type HarnessBackpressurePolicy (line 53) | interface HarnessBackpressurePolicy { type HarnessBackpressureResult (line 58) | interface HarnessBackpressureResult { type HarnessSensorsServiceOptions (line 64) | interface HarnessSensorsServiceOptions { class HarnessSensorsService (line 68) | class HarnessSensorsService { method constructor (line 71) | constructor(private readonly options: HarnessSensorsServiceOptions) {} method registerSensor (line 73) | registerSensor(definition: HarnessSensorDefinition): HarnessSensorDefi... method listSensors (line 78) | listSensors(): HarnessSensorDefinition[] { method getSensor (line 82) | getSensor(sensorId: string): HarnessSensorDefinition | undefined { method runSensor (line 86) | async runSensor( method getSessionSensorRuns (line 125) | async getSessionSensorRuns(sessionId: string): Promise> { method getContent (line 179) | async getContent(skillSlug: string): Promise> { method getForPhase (line 206) | async getForPhase(phase: PrevcPhase): Promise> { method scaffold (line 225) | async scaffold(params: { method export (line 242) | async export(params: { method fill (line 268) | async fill(params: { FILE: src/services/harness/taskContractsService.ts type HarnessTaskContractStatus (line 18) | type HarnessTaskContractStatus = type HarnessTaskContract (line 26) | interface HarnessTaskContract { type HarnessHandoffContract (line 43) | interface HarnessHandoffContract { type HarnessTaskCompletionResult (line 55) | interface HarnessTaskCompletionResult { type HarnessTaskContractsServiceOptions (line 66) | interface HarnessTaskContractsServiceOptions { class HarnessTaskContractsService (line 71) | class HarnessTaskContractsService { method constructor (line 72) | constructor(private readonly options: HarnessTaskContractsServiceOptio... method contractsPath (line 74) | private get contractsPath(): string { method tasksPath (line 78) | private get tasksPath(): string { method handoffsPath (line 82) | private get handoffsPath(): string { method ensureLayout (line 86) | private async ensureLayout(): Promise { method taskFile (line 93) | private async taskFile(taskId: string): Promise { method handoffFile (line 98) | private async handoffFile(handoffId: string): Promise { method createTaskContract (line 103) | async createTaskContract(input: { method listTaskContracts (line 148) | async listTaskContracts(): Promise { method getTaskContract (line 160) | async getTaskContract(taskId: string): Promise { method evaluateTaskCompletion (line 235) | async evaluateTaskCompletion(taskId: string, sessionId?: string): Prom... FILE: src/services/harness/workflowStateService.ts type HarnessWorkflowStateServiceOptions (line 13) | interface HarnessWorkflowStateServiceOptions { type WorkflowHarnessBinding (line 17) | interface WorkflowHarnessBinding { type HarnessWorkflowRecord (line 25) | interface HarnessWorkflowRecord { class HarnessWorkflowStateService (line 33) | class HarnessWorkflowStateService { method constructor (line 34) | constructor(private readonly options: HarnessWorkflowStateServiceOptio... method contextPath (line 36) | private get contextPath(): string { method workflowsPath (line 40) | private get workflowsPath(): string { method currentPath (line 44) | private get currentPath(): string { method archivePath (line 48) | private get archivePath(): string { method legacyBindingPath (line 52) | private get legacyBindingPath(): string { method ensureLayout (line 56) | private async ensureLayout(): Promise { method normalizeBinding (line 60) | private normalizeBinding(value: unknown): WorkflowHarnessBinding | null { method normalizeRecord (line 90) | private normalizeRecord( method readLegacyBinding (line 110) | private async readLegacyBinding(): Promise { method exists (line 144) | async exists(): Promise { method loadRecord (line 148) | async loadRecord(): Promise { method load (line 164) | async load(): Promise { method loadRecordSync (line 169) | loadRecordSync(): HarnessWorkflowRecord { method loadSync (line 175) | loadSync(): PrevcStatus { method save (line 180) | async save(status: PrevcStatus): Promise { method getBinding (line 194) | async getBinding(): Promise { method saveBinding (line 202) | async saveBinding(binding: WorkflowHarnessBinding | null): Promise { method archive (line 222) | async archive(name: string): Promise { FILE: src/services/import/agentsDetector.ts function normalizeAgentFilename (line 7) | function normalizeAgentFilename(filePath: string): string { function normalizeAgentName (line 11) | function normalizeAgentName(filePath: string): string { class AgentsDetector (line 15) | class AgentsDetector { method detectAgents (line 19) | async detectAgents(repoPath: string, autoDetect: boolean = true): Prom... method detectFromPaths (line 108) | async detectFromPaths(sourcePaths: string[], repoPath: string): Promis... FILE: src/services/import/importAgentsService.ts class ImportAgentsService (line 16) | class ImportAgentsService { method constructor (line 22) | constructor(dependencies: ImportServiceDependencies) { method run (line 29) | async run(rawOptions: ImportAgentsCommandFlags, repoPath: string = pro... method resolveOptions (line 82) | private async resolveOptions( method importFiles (line 103) | private async importFiles( method displayConfig (line 175) | private displayConfig(options: ImportAgentsOptions): void { method displaySummary (line 194) | private displaySummary(result: ImportResult, dryRun: boolean): void { FILE: src/services/import/importRulesService.ts class ImportRulesService (line 17) | class ImportRulesService { method constructor (line 23) | constructor(dependencies: ImportServiceDependencies) { method run (line 30) | async run(rawOptions: ImportRulesCommandFlags, repoPath: string = proc... method resolveOptions (line 83) | private async resolveOptions( method importFiles (line 106) | private async importFiles( method formatContent (line 181) | private formatContent(content: string, file: RuleFileInfo, format: Imp... method formatAsMarkdown (line 193) | private formatAsMarkdown(content: string, file: RuleFileInfo): string { method formatAsFormatted (line 202) | private formatAsFormatted(content: string, file: RuleFileInfo): string { method displayConfig (line 207) | private displayConfig(options: ImportRulesOptions): void { method displaySummary (line 227) | private displaySummary(result: ImportResult, dryRun: boolean): void { FILE: src/services/import/presets.ts function buildRuleSources (line 15) | function buildRuleSources(): RuleSource[] { function buildAgentSources (line 32) | function buildAgentSources(): RuleSource[] { constant RULE_SOURCES (line 39) | const RULE_SOURCES: RuleSource[] = buildRuleSources(); constant AGENT_SOURCES (line 44) | const AGENT_SOURCES: RuleSource[] = buildAgentSources(); function getRuleSourceByName (line 46) | function getRuleSourceByName(name: string): RuleSource | undefined { function getAgentSourceByName (line 50) | function getAgentSourceByName(name: string): RuleSource | undefined { function getAllRuleSourceNames (line 54) | function getAllRuleSourceNames(): string[] { function getAllAgentSourceNames (line 58) | function getAllAgentSourceNames(): string[] { FILE: src/services/import/rulesDetector.ts class RulesDetector (line 7) | class RulesDetector { method detectRules (line 11) | async detectRules(repoPath: string, autoDetect: boolean = true): Promi... method detectFromPaths (line 107) | async detectFromPaths(sourcePaths: string[], repoPath: string): Promis... method findFilesInDirectory (line 168) | private async findFilesInDirectory(dirPath: string, patterns: string[]... method determineRuleType (line 187) | private determineRuleType(sourceName: string): RuleType { method determineRuleTypeFromPath (line 203) | private determineRuleTypeFromPath(filePath: string): RuleType { method generateTargetFilename (line 220) | private generateTargetFilename(sourcePath: string, type: RuleType): st... FILE: src/services/import/types.ts type RuleType (line 4) | type RuleType = type ImportFormat (line 19) | type ImportFormat = 'markdown' | 'raw' | 'formatted'; type RuleFileInfo (line 21) | interface RuleFileInfo { type ImportRulesCommandFlags (line 30) | interface ImportRulesCommandFlags { type ImportAgentsCommandFlags (line 40) | interface ImportAgentsCommandFlags { type ImportServiceDependencies (line 49) | interface ImportServiceDependencies { type ImportRulesOptions (line 55) | interface ImportRulesOptions { type ImportAgentsOptions (line 65) | interface ImportAgentsOptions { type ImportResult (line 74) | interface ImportResult { type DetectionResult (line 82) | interface DetectionResult { type RuleSource (line 87) | interface RuleSource { FILE: src/services/mcp/actionLogger.ts type ActionStatus (line 14) | type ActionStatus = 'success' | 'error'; type MCPActionLogEntry (line 16) | interface MCPActionLogEntry { constant SENSITIVE_KEYS (line 25) | const SENSITIVE_KEYS = new Set([ constant MAX_DEPTH (line 37) | const MAX_DEPTH = 4; constant MAX_ARRAY (line 38) | const MAX_ARRAY = 20; constant MAX_STRING (line 39) | const MAX_STRING = 200; constant MCP_ACTIVITY_NAME (line 40) | const MCP_ACTIVITY_NAME = 'mcp-activity'; function resolveContextPath (line 44) | async function resolveContextPath(repoPath: string): Promise { function sanitizeValue (line 52) | function sanitizeValue(value: unknown, depth: number = 0): unknown { function sanitizeDetails (line 88) | function sanitizeDetails(details?: Record): Record }) { FILE: src/services/mcp/gateway/context.ts type ContextOptions (line 18) | interface ContextOptions { function handleContext (line 26) | async function handleContext( FILE: src/services/mcp/gateway/explore.ts type ExploreOptions (line 21) | interface ExploreOptions { function handleExplore (line 28) | async function handleExplore( FILE: src/services/mcp/gateway/harness.ts type HarnessOptions (line 13) | interface HarnessOptions { function normalizePolicyEffect (line 17) | function normalizePolicyEffect(effect?: string): HarnessPolicyEffect { function normalizePolicyTarget (line 29) | function normalizePolicyTarget(target?: string, pathPattern?: string, ri... function handleHarness (line 45) | async function handleHarness( FILE: src/services/mcp/gateway/metrics.ts type SessionMetrics (line 11) | interface SessionMetrics { type MetricsSummary (line 26) | interface MetricsSummary { class MetricsStore (line 38) | class MetricsStore { method constructor (line 41) | constructor() { method createNewSession (line 45) | private createNewSession(): SessionMetrics { method recordContextQuery (line 59) | recordContextQuery(type: 'qa' | 'flow' | 'pattern' | 'other'): void { method recordFileRead (line 76) | recordFileRead(estimatedTokens: number = 1000): void { method getMetrics (line 82) | getMetrics(): SessionMetrics { method getSummary (line 86) | getSummary(): MetricsSummary { method reset (line 136) | reset(): void { function recordContextQuery (line 147) | function recordContextQuery(type: 'qa' | 'flow' | 'pattern' | 'other'): ... function recordFileRead (line 154) | function recordFileRead(estimatedTokens?: number): void { function getMetrics (line 161) | function getMetrics(): SessionMetrics { function getMetricsSummary (line 168) | function getMetricsSummary(): MetricsSummary { function resetMetrics (line 175) | function resetMetrics(): void { function handleMetricsAction (line 182) | function handleMetricsAction(action: 'get' | 'summary' | 'reset'): object { FILE: src/services/mcp/gateway/plan.ts type PlanOptions (line 16) | interface PlanOptions { function handlePlan (line 23) | async function handlePlan( FILE: src/services/mcp/gateway/response.ts type MCPToolResponse (line 11) | interface MCPToolResponse { function createJsonResponse (line 27) | function createJsonResponse(data: unknown): MCPToolResponse { function createErrorResponse (line 39) | function createErrorResponse(error: unknown): MCPToolResponse { function createTextResponse (line 55) | function createTextResponse(text: string): MCPToolResponse { function createScaffoldResponse (line 68) | function createScaffoldResponse( function buildEnhancementPrompt (line 123) | function buildEnhancementPrompt(pendingFiles: string[], repoPath?: strin... FILE: src/services/mcp/gateway/skill.ts type SkillOptions (line 15) | interface SkillOptions { function handleSkill (line 22) | async function handleSkill( FILE: src/services/mcp/gateway/sync.ts type SyncOptions (line 21) | interface SyncOptions { function handleSync (line 28) | async function handleSync( FILE: src/services/mcp/gateway/types.ts type ExploreAction (line 16) | type ExploreAction = 'read' | 'list' | 'analyze' | 'search' | 'getStruct... type ContextAction (line 17) | type ContextAction = 'check' | 'bootstrapStatus' | 'init' | 'fill' | 'fi... type SyncAction (line 18) | type SyncAction = 'exportRules' | 'exportDocs' | 'exportAgents' | 'expor... type PlanAction (line 19) | type PlanAction = 'link' | 'getLinked' | 'getDetails' | 'getForPhase' | ... type AgentAction (line 20) | type AgentAction = 'discover' | 'getInfo' | 'orchestrate' | 'getSequence... type SkillAction (line 21) | type SkillAction = 'list' | 'getContent' | 'getForPhase' | 'scaffold' | ... type HarnessAction (line 22) | type HarnessAction = type ExploreParams (line 56) | interface ExploreParams { type ContextParams (line 71) | interface ContextParams { type SyncParams (line 107) | interface SyncParams { type PlanParams (line 128) | interface PlanParams { type AgentParams (line 146) | interface AgentParams { type SkillParams (line 157) | interface SkillParams { type HarnessParams (line 167) | interface HarnessParams { FILE: src/services/mcp/gateway/workflowAdvance.ts type WorkflowAdvanceParams (line 19) | interface WorkflowAdvanceParams { type WorkflowAdvanceOptions (line 25) | interface WorkflowAdvanceOptions { function handleWorkflowAdvance (line 38) | async function handleWorkflowAdvance( FILE: src/services/mcp/gateway/workflowInit.ts type WorkflowInitParams (line 19) | interface WorkflowInitParams { type WorkflowInitOptions (line 30) | interface WorkflowInitOptions { function handleWorkflowInit (line 40) | async function handleWorkflowInit( function buildWorkflowEnhancementPrompt (line 123) | function buildWorkflowEnhancementPrompt(options: { function buildWorkflowNextSteps (line 199) | function buildWorkflowNextSteps(options: { FILE: src/services/mcp/gateway/workflowManage.test.ts function parseResponse (line 10) | function parseResponse(response: { content: Array<{ text: string }> }) { FILE: src/services/mcp/gateway/workflowManage.ts type WorkflowManageParams (line 20) | interface WorkflowManageParams { type WorkflowManageOptions (line 53) | interface WorkflowManageOptions { function handleWorkflowManage (line 60) | async function handleWorkflowManage( FILE: src/services/mcp/gateway/workflowStatus.test.ts function parseResponse (line 9) | function parseResponse(response: { content: Array<{ text: string }> }) { FILE: src/services/mcp/gateway/workflowStatus.ts type WorkflowStatusParams (line 18) | interface WorkflowStatusParams { type WorkflowStatusOptions (line 22) | interface WorkflowStatusOptions { function handleWorkflowStatus (line 29) | async function handleWorkflowStatus( FILE: src/services/mcp/mcpServer.ts type MCPServerOptions (line 56) | interface MCPServerOptions { class AIContextMCPServer (line 67) | class AIContextMCPServer { method constructor (line 76) | constructor(options: MCPServerOptions = {}) { method registerGatewayTools (line 107) | private registerGatewayTools(): void { method registerResources (line 730) | private registerResources(): void { method registerWorkflowResources (line 821) | private registerWorkflowResources(): void { method initializeRepoPath (line 891) | private async initializeRepoPath(): Promise { method findProjectRoot (line 909) | private async findProjectRoot(startPath: string): Promise( method validatePathParams (line 1013) | private validatePathParams(params: TParams, repoPath: string)... method logToolResponse (line 1025) | private async logToolResponse( method logToolError (line 1051) | private async logToolError( method parseResponsePayload (line 1069) | private parseResponsePayload(response: MCPToolResponse): Record): Record { method stop (line 1116) | async stop(): Promise { method log (line 1125) | private log(message: string): void { function startMCPServer (line 1135) | async function startMCPServer(options: MCPServerOptions = {}): Promise { method getBySlug (line 201) | async getBySlug(repoPath: string, slug: string): Promise { FILE: src/services/qa/topicDetector.ts type QATopic (line 16) | interface QATopic { type TopicDetectionResult (line 26) | interface TopicDetectionResult { type ProjectType (line 32) | type ProjectType = class TopicDetector (line 45) | class TopicDetector { method detectTopics (line 49) | detectTopics( method detectProjectType (line 313) | private detectProjectType(stack: StackInfo): ProjectType { method isCLI (line 364) | private isCLI(stack: StackInfo): boolean { method hasWebFramework (line 375) | private hasWebFramework(stack: StackInfo): boolean { method hasFrontendFramework (line 398) | private hasFrontendFramework(stack: StackInfo): boolean { FILE: src/services/quickSync/quickSyncService.ts type QuickSyncServiceDependencies (line 17) | interface QuickSyncServiceDependencies { type QuickSyncOptions (line 23) | interface QuickSyncOptions { type QuickSyncResult (line 51) | interface QuickSyncResult { class QuickSyncService (line 58) | class QuickSyncService { method constructor (line 63) | constructor(deps: QuickSyncServiceDependencies) { method run (line 72) | async run(repoPath: string, options: QuickSyncOptions = {}): Promise { method buildPhasesReport (line 175) | private buildPhasesReport(status: PrevcStatus): PhaseReport[] { method buildRolesForPhase (line 190) | private buildRolesForPhase(status: PrevcStatus, phase: string): RoleRe... method mapOutputs (line 204) | private mapOutputs(outputs?: Array<{ path: string } | string>): string... method buildTimeline (line 211) | private buildTimeline(status: PrevcStatus): TimelineEvent[] { method outputJson (line 247) | private async outputJson(report: WorkflowReport, options: ReportOption... method outputMarkdown (line 255) | private async outputMarkdown(report: WorkflowReport, options: ReportOp... method writeOutput (line 263) | private async writeOutput(content: string, options: ReportOptions): Pr... method outputConsole (line 275) | private outputConsole(report: WorkflowReport): void { method generateVisualDashboard (line 282) | generateVisualDashboard(report: WorkflowReport): string { method getStatusIcon (line 333) | private getStatusIcon(status: string): string { method getStatusLabel (line 343) | private getStatusLabel(status: string): string { method centerText (line 353) | private centerText(text: string, width: number): string { method padText (line 359) | private padText(text: string, width: number): string { method generateMarkdown (line 366) | private generateMarkdown(report: WorkflowReport): string { method generateSummaryTable (line 382) | private generateSummaryTable(report: WorkflowReport): string { method generatePhasesSection (line 396) | private generatePhasesSection(phases: PhaseReport[]): string { method generateTimelineSection (line 412) | private generateTimelineSection(timeline: TimelineEvent[]): string { method generateStackSection (line 422) | private generateStackSection(stack: StackReport): string { method generateRecommendationsSection (line 434) | private generateRecommendationsSection(recommendations: string[]): str... FILE: src/services/reverseSync/importSkillsService.ts type ImportSkillsResult (line 26) | interface ImportSkillsResult { class ImportSkillsService (line 41) | class ImportSkillsService { method constructor (line 47) | constructor(dependencies: ReverseSyncServiceDependencies) { method run (line 54) | async run( method importSkillFiles (line 103) | async importSkillFiles( method resolveOptions (line 110) | private async resolveOptions( method importFiles (line 133) | private async importFiles( method importSingleSkill (line 216) | private async importSingleSkill( method prepareContent (line 271) | private async prepareContent( method addImportMetadata (line 285) | private addImportMetadata(content: string, skill: SkillFileInfo): stri... method mergeContent (line 333) | private async mergeContent( method getRenamedPath (line 357) | private async getRenamedPath(originalPath: string, sourceTool: string)... method logImportAction (line 381) | private logImportAction( method displaySummary (line 408) | private displaySummary(result: ImportSkillsResult, dryRun: boolean): v... method createEmptyResult (line 443) | private createEmptyResult(targetPath: string): ImportSkillsResult { FILE: src/services/reverseSync/presets.ts constant SKILL_SOURCES (line 28) | const SKILL_SOURCES: RuleSource[] = getSkillsImportSources(); constant TOOL_NAME_MAP (line 37) | const TOOL_NAME_MAP: Record = getDirectoryPrefixMap(); constant TOOL_DISPLAY_NAMES (line 42) | const TOOL_DISPLAY_NAMES: Record = getDisplayNameMap(); constant TOOL_CAPABILITIES (line 47) | const TOOL_CAPABILITIES: Record = getCapabilit... constant ALL_TOOL_IDS (line 52) | const ALL_TOOL_IDS = getAllToolIds(); function getSkillSourceByName (line 61) | function getSkillSourceByName(name: string): RuleSource | undefined { function getAllSkillSourceNames (line 68) | function getAllSkillSourceNames(): string[] { function getToolIdFromPath (line 77) | function getToolIdFromPath(filePath: string): string { function getToolDisplayName (line 84) | function getToolDisplayName(toolId: string): string { function getToolCapabilities (line 91) | function getToolCapabilities(toolId: string): ToolCapabilities { FILE: src/services/reverseSync/reverseQuickSyncService.ts class ReverseQuickSyncService (line 32) | class ReverseQuickSyncService { method constructor (line 42) | constructor(deps: ReverseSyncServiceDependencies) { method run (line 56) | async run(repoPath: string, options: ReverseSyncCommandFlags = {}): Pr... method detect (line 201) | async detect(repoPath: string): Promise { method preview (line 208) | async preview(repoPath: string, options: ReverseSyncCommandFlags = {})... method resolveOptions (line 212) | private resolveOptions( method displaySummary (line 232) | private displaySummary(result: ReverseSyncResult, options: ReverseSync... function createReverseQuickSyncService (line 292) | function createReverseQuickSyncService( FILE: src/services/reverseSync/skillsDetector.ts class SkillsDetector (line 14) | class SkillsDetector { method detectSkills (line 18) | async detectSkills(repoPath: string, autoDetect: boolean = true): Prom... method detectFromPaths (line 107) | async detectFromPaths(sourcePaths: string[], repoPath: string): Promis... method createSkillFileInfo (line 171) | private async createSkillFileInfo( method parseSkillMetadata (line 213) | private parseSkillMetadata(content: string): SkillMetadata | undefined { method parseArrayValue (line 263) | private parseArrayValue(value: string): string[] { method slugToName (line 274) | private slugToName(slug: string): string { FILE: src/services/reverseSync/toolDetector.ts class ToolDetector (line 21) | class ToolDetector { method constructor (line 26) | constructor() { method detect (line 36) | async detect(repoPath: string): Promise { method detectTool (line 67) | async detectTool(repoPath: string, toolId: string): Promise { FILE: src/services/semantic/codebaseAnalyzer.ts constant DEFAULT_OPTIONS (line 32) | const DEFAULT_OPTIONS: Required = { class CodebaseAnalyzer (line 41) | class CodebaseAnalyzer { method constructor (line 46) | constructor(options: AnalyzerOptions = {}) { method analyze (line 56) | async analyze(projectPath: string): Promise { method findCodeFiles (line 82) | private async findCodeFiles(projectPath: string): Promise { method analyzeFiles (line 116) | private async analyzeFiles(files: string[]): Promise): DetectedP... method findEntryPoints (line 458) | private findEntryPoints( method findPublicAPI (line 481) | private findPublicAPI(analyses: Map): ExtractedS... method calculateLayerDependencies (line 502) | private calculateLayerDependencies( method getSummary (line 546) | getSummary(context: SemanticContext, projectPath: string): string { method clearCache (line 591) | clearCache(): void { method shutdown (line 598) | async shutdown(): Promise { method enhanceWithLSP (line 608) | private async enhanceWithLSP( method detectFunctionalPatterns (line 673) | async detectFunctionalPatterns(projectPath: string): Promise = { class SemanticContextBuilder (line 45) | class SemanticContextBuilder { method constructor (line 51) | constructor(options: ContextBuilderOptions = {}) { method analyze (line 59) | async analyze(projectPath: string): Promise { method buildDocumentationContext (line 72) | async buildDocumentationContext( method buildPlaybookContext (line 105) | async buildPlaybookContext( method buildPlanContext (line 135) | async buildPlanContext( method buildCompactContext (line 169) | async buildCompactContext(projectPath: string): Promise { method buildSkillContext (line 183) | async buildSkillContext( method getSemanticContext (line 227) | async getSemanticContext(projectPath: string): Promise { method formatArchitectureOverview (line 233) | private formatArchitectureOverview(context: SemanticContext): string { method formatPublicAPI (line 255) | private formatPublicAPI(context: SemanticContext, projectPath: string)... method formatSymbolIndex (line 276) | private formatSymbolIndex(context: SemanticContext, projectPath: strin... method formatSymbolLine (line 307) | private formatSymbolLine(symbol: ExtractedSymbol, projectPath: string)... method formatTargetFileContext (line 330) | private formatTargetFileContext( method formatDependencyOverview (line 362) | private formatDependencyOverview(context: SemanticContext, projectPath... method formatRelevantLayers (line 388) | private formatRelevantLayers( method formatRelevantPatterns (line 415) | private formatRelevantPatterns(patterns: DetectedPattern[]): string { method formatKeyFilesForAgent (line 434) | private formatKeyFilesForAgent( method formatRelevantSymbolsForAgent (line 465) | private formatRelevantSymbolsForAgent( method formatFullArchitecture (line 493) | private formatFullArchitecture( method formatAllPatterns (line 525) | private formatAllPatterns(context: SemanticContext): string { method formatEntryPoints (line 541) | private formatEntryPoints(context: SemanticContext): string { method formatLayerDependencies (line 554) | private formatLayerDependencies(context: SemanticContext): string { method formatSymbolsByLayer (line 571) | private formatSymbolsByLayer( method formatCompactSymbolList (line 601) | private formatCompactSymbolList( method getRelevantLayersForAgent (line 624) | private getRelevantLayersForAgent( method getRelevantPatternsForAgent (line 651) | private getRelevantPatternsForAgent( method getKeyPatternsForAgent (line 671) | private getKeyPatternsForAgent(agentType: string): RegExp[] { method getRelevantPatternsForSkill (line 692) | private getRelevantPatternsForSkill( method getKeyPatternsForSkill (line 717) | private getKeyPatternsForSkill(skillType: string): RegExp[] { method formatKeyFilesForSkill (line 734) | private formatKeyFilesForSkill( method formatRelevantSymbolsForSkill (line 765) | private formatRelevantSymbolsForSkill( method truncateToLimit (line 793) | private truncateToLimit(content: string): string { method clearCache (line 807) | clearCache(): void { method shutdown (line 816) | async shutdown(): Promise { FILE: src/services/semantic/contextCache.ts type CacheEntry (line 20) | interface CacheEntry { type ContextCacheOptions (line 29) | interface ContextCacheOptions { constant DEFAULT_TTL_MS (line 36) | const DEFAULT_TTL_MS = 5 * 60 * 1000; constant DEFAULT_WATCH_DIRS (line 37) | const DEFAULT_WATCH_DIRS = ['src', '.context', 'lib', 'packages']; class ContextCache (line 39) | class ContextCache { method constructor (line 44) | constructor(options: ContextCacheOptions = {}) { method get (line 56) | async get(repoPath: string, contextType: string): Promise { FILE: src/services/semantic/lsp/lspLayer.ts type LSPMessage (line 18) | interface LSPMessage { type PendingRequest (line 27) | interface PendingRequest { constant LSP_SERVER_CONFIGS (line 33) | const LSP_SERVER_CONFIGS: Record = { constant REQUEST_TIMEOUT_MS (line 51) | const REQUEST_TIMEOUT_MS = 10000; class LSPLayer (line 53) | class LSPLayer { method detectLanguage (line 60) | private detectLanguage(filePath: string): SupportedLanguage | null { method getServerConfig (line 65) | private getServerConfig(language: string): LSPServerConfig | null { method ensureServer (line 69) | async ensureServer(language: string, projectPath: string): Promise { method isServerAvailable (line 419) | isServerAvailable(language: string): boolean { method getAvailableLanguages (line 423) | getAvailableLanguages(): string[] { FILE: src/services/semantic/semanticSnapshotService.ts type SemanticSnapshotSection (line 18) | type SemanticSnapshotSection = type SnapshotFileSection (line 30) | type SnapshotFileSection = Exclude = { constant LEGACY_CODEBASE_MAP_PATH (line 108) | const LEGACY_CODEBASE_MAP_PATH = path.join('docs', 'codebase-map.json'); constant FINGERPRINT_IGNORE_PATTERNS (line 110) | const FINGERPRINT_IGNORE_PATTERNS = [ constant FINGERPRINT_ROOT_FILES (line 121) | const FINGERPRINT_ROOT_FILES = new Set([ constant FINGERPRINT_CODE_EXTENSIONS (line 146) | const FINGERPRINT_CODE_EXTENSIONS = new Set([ class SemanticSnapshotService (line 161) | class SemanticSnapshotService { method captureRepoFingerprint (line 164) | async captureRepoFingerprint(repoPath: string): Promise { method writeSnapshot (line 168) | async writeSnapshot( method ensureFreshSummary (line 198) | async ensureFreshSummary( method ensureFreshSection (line 227) | async ensureFreshSection( method readSummary (line 252) | async readSummary( method readSection (line 274) | async readSection( method refreshSnapshot (line 291) | private async refreshSnapshot( method inspectSummary (line 354) | private async inspectSummary( method inspectSection (line 393) | private async inspectSection( method buildSnapshotArtifacts (line 415) | private async buildSnapshotArtifacts( method publishSnapshotArtifacts (line 486) | private async publishSnapshotArtifacts(params: { method buildSectionResult (line 539) | private buildSectionResult( method buildSectionResultFromManifest (line 566) | private async buildSectionResultFromManifest( method extractSectionData (line 600) | private extractSectionData(map: CodebaseMap, section: SemanticSnapshot... method getSectionData (line 625) | private getSectionData(summary: CodebaseMap): Record { method resolveOutputDir (line 722) | private resolveOutputDir(repoPath: string, outputDir?: string): string { method isFresh (line 728) | private async isFresh(repoPath: string, expectedFingerprint: string): ... method computeRepoFingerprint (line 732) | private async computeRepoFingerprint(repoPath: string): Promise { method isFingerprintRelevant (line 759) | private isFingerprintRelevant(relativePath: string): boolean { FILE: src/services/semantic/treeSitter/treeSitterLayer.ts type CacheEntry (line 19) | interface CacheEntry { class TreeSitterLayer (line 24) | class TreeSitterLayer { method constructor (line 30) | constructor() { method initializeParsers (line 34) | private async initializeParsers(): Promise { method analyzeFile (line 57) | async analyzeFile(filePath: string): Promise { method analyzeWithTreeSitter (line 94) | private analyzeWithTreeSitter( method extractFromTreeSitter (line 114) | private extractFromTreeSitter( method extractClassFromTree (line 163) | private extractClassFromTree(node: any, filePath: string): ExtractedSy... method extractInterfaceFromTree (line 178) | private extractInterfaceFromTree(node: any, filePath: string): Extract... method extractFunctionFromTree (line 193) | private extractFunctionFromTree(node: any, filePath: string): Extracte... method extractTypeFromTree (line 208) | private extractTypeFromTree(node: any, filePath: string): ExtractedSym... method extractEnumFromTree (line 223) | private extractEnumFromTree(node: any, filePath: string): ExtractedSym... method extractImportFromTree (line 238) | private extractImportFromTree(node: any): ImportInfo { method extractExportFromTree (line 271) | private extractExportFromTree(node: any): ExportInfo | null { method isNodeExported (line 291) | private isNodeExported(node: any): boolean { method extractDocComment (line 300) | private extractDocComment(node: any): string | undefined { method analyzeWithRegex (line 315) | private analyzeWithRegex( method analyzeTypeScriptWithRegex (line 331) | private analyzeTypeScriptWithRegex( method analyzePythonWithRegex (line 487) | private analyzePythonWithRegex(filePath: string, content: string): Fil... method emptyAnalysis (line 550) | private emptyAnalysis(filePath: string, language: string): FileAnalysis { method clearCache (line 560) | clearCache(): void { method isTreeSitterAvailable (line 564) | async isTreeSitterAvailable(): Promise { FILE: src/services/semantic/types.ts type SymbolKind (line 5) | type SymbolKind = 'class' | 'interface' | 'function' | 'type' | 'variabl... type SymbolLocation (line 7) | interface SymbolLocation { type ParameterInfo (line 13) | interface ParameterInfo { type ExtractedSymbol (line 20) | interface ExtractedSymbol { type ImportInfo (line 37) | interface ImportInfo { type ExportInfo (line 45) | interface ExportInfo { type FileAnalysis (line 52) | interface FileAnalysis { type ArchitectureLayer (line 60) | interface ArchitectureLayer { type DetectedPattern (line 68) | interface DetectedPattern { type FunctionalPatternType (line 79) | type FunctionalPatternType = type FunctionalPattern (line 91) | interface FunctionalPattern { type PatternIndicator (line 98) | interface PatternIndicator { type DetectedFunctionalPatterns (line 105) | interface DetectedFunctionalPatterns { type FlowNode (line 122) | interface FlowNode { type FlowEdge (line 129) | interface FlowEdge { type ExecutionFlow (line 135) | interface ExecutionFlow { type DependencyInfo (line 142) | interface DependencyInfo { type ArchitectureInfo (line 147) | interface ArchitectureInfo { type SemanticStats (line 154) | interface SemanticStats { type SemanticContext (line 161) | interface SemanticContext { type TypeInfo (line 174) | interface TypeInfo { type ReferenceLocation (line 180) | interface ReferenceLocation { type AnalyzerOptions (line 187) | interface AnalyzerOptions { type LSPServerConfig (line 196) | interface LSPServerConfig { type SupportedLanguage (line 202) | type SupportedLanguage = constant LANGUAGE_EXTENSIONS (line 207) | const LANGUAGE_EXTENSIONS: Record = { constant DEFAULT_EXCLUDE_PATTERNS (line 219) | const DEFAULT_EXCLUDE_PATTERNS = [ FILE: src/services/shared/contentTypeRegistry.ts type ContentType (line 12) | interface ContentType { constant CONTENT_TYPE_REGISTRY (line 34) | const CONTENT_TYPE_REGISTRY: ContentType[] = [ function getContentType (line 86) | function getContentType(id: string): ContentType | undefined { function getExportableContentTypes (line 93) | function getExportableContentTypes(): ContentType[] { function getImportableContentTypes (line 100) | function getImportableContentTypes(): ContentType[] { function getContentTypeIds (line 107) | function getContentTypeIds(): string[] { function hasContentType (line 114) | function hasContentType(id: string): boolean { function registerContentType (line 122) | function registerContentType(contentType: ContentType): void { function getContextPath (line 132) | function getContextPath(id: string): string | undefined { function getIndexFile (line 139) | function getIndexFile(id: string): string | undefined { FILE: src/services/shared/contextLayout.ts type ContextLayoutClassification (line 8) | type ContextLayoutClassification = 'versioned' | 'local' | 'runtime'; type ContextLayoutEntry (line 10) | interface ContextLayoutEntry { constant CONTEXT_LAYOUT_REGISTRY (line 18) | const CONTEXT_LAYOUT_REGISTRY: ContextLayoutEntry[] = [ function getContextLayoutByClassification (line 140) | function getContextLayoutByClassification( function getUntrackedContextLayoutEntries (line 146) | function getUntrackedContextLayoutEntries(): ContextLayoutEntry[] { FILE: src/services/shared/contextRootResolver.ts function resolveContextPath (line 17) | function resolveContextPath(repoPath?: string): string { type SimpleContextResult (line 28) | interface SimpleContextResult { function resolveSimpleContext (line 42) | async function resolveSimpleContext(repoPath?: string): Promise { function ensureParentDirectory (line 105) | async function ensureParentDirectory(filePath: string): Promise { function getRelativePath (line 112) | function getRelativePath(fullPath: string, basePath: string): string { function pathExists (line 119) | async function pathExists(targetPath: string): Promise { function isDirectory (line 126) | async function isDirectory(targetPath: string): Promise { function isFile (line 138) | async function isFile(targetPath: string): Promise { function normalizePath (line 150) | function normalizePath(inputPath: string): string { function deduplicatePaths (line 157) | function deduplicatePaths(paths: string[]): string[] { function getExtension (line 164) | function getExtension(filePath: string): string { function getBasename (line 172) | function getBasename(filePath: string): string { function joinPaths (line 179) | function joinPaths(...parts: (string | undefined)[]): string { FILE: src/services/shared/toolRegistry.ts type ToolCapabilities (line 15) | interface ToolCapabilities { type ToolPaths (line 21) | interface ToolPaths { type ToolDefinition (line 46) | interface ToolDefinition { constant TOOL_REGISTRY (line 67) | const TOOL_REGISTRY: ToolDefinition[] = [ function getToolById (line 405) | function getToolById(id: string): ToolDefinition | undefined { function getAllToolIds (line 412) | function getAllToolIds(): string[] { function getToolsWithCapability (line 419) | function getToolsWithCapability(capability: keyof ToolCapabilities): Too... function getToolIdFromPath (line 426) | function getToolIdFromPath(filePath: string): string { function getToolDisplayName (line 458) | function getToolDisplayName(toolId: string): string { function getToolCapabilities (line 466) | function getToolCapabilities(toolId: string): ToolCapabilities { function getDirectoryPrefixMap (line 474) | function getDirectoryPrefixMap(): Record { function getDisplayNameMap (line 485) | function getDisplayNameMap(): Record { function getCapabilitiesMap (line 496) | function getCapabilitiesMap(): Record { function getRulesExportPresets (line 511) | function getRulesExportPresets(): Record { type DryRunOptions (line 58) | interface DryRunOptions { function createEmptyResult (line 67) | function createEmptyResult(): OperationResult { function mergeResults (line 79) | function mergeResults(...results: OperationResult[]): OperationResult { function addError (line 94) | function addError( FILE: src/services/shared/uiHelpers.ts type SpinnerStatus (line 16) | type SpinnerStatus = 'success' | 'fail' | 'warn' | 'info'; function withSpinner (line 21) | async function withSpinner( function displayOperationSummary (line 67) | function displayOperationSummary( function displayProgressBar (line 111) | function displayProgressBar( function displayPhaseIndicator (line 144) | function displayPhaseIndicator( function createBox (line 189) | function createBox( FILE: src/services/stack/projectTypeClassifier.ts constant PROJECT_TYPES (line 10) | const PROJECT_TYPES = [ type ProjectType (line 22) | type ProjectType = (typeof PROJECT_TYPES)[number]; type ProjectClassification (line 24) | interface ProjectClassification { constant FRAMEWORK_CATEGORIES (line 35) | const FRAMEWORK_CATEGORIES = { constant CONFIDENCE_THRESHOLDS (line 86) | const CONFIDENCE_THRESHOLDS = { type ExtendedStackInfo (line 94) | interface ExtendedStackInfo extends StackInfo { function matchesCategory (line 104) | function matchesCategory(frameworks: string[], category: readonly string... function getMatchingFrameworks (line 113) | function getMatchingFrameworks(frameworks: string[], category: readonly ... function classifyProject (line 122) | function classifyProject(stack: StackInfo | ExtendedStackInfo): ProjectC... constant TYPE_PRIORITY (line 225) | const TYPE_PRIORITY: readonly ProjectType[] = [ function prioritizeTypes (line 239) | function prioritizeTypes(detectedTypes: ProjectType[]): { function calculateConfidence (line 262) | function calculateConfidence(reasoningCount: number): 'high' | 'medium' ... function detectCLILibraries (line 275) | function detectCLILibraries(dependencies: Record): strin... function isLibraryPackage (line 282) | function isLibraryPackage(packageJson: { FILE: src/services/stack/scaffoldFilter.ts constant CORE_AGENTS (line 19) | const CORE_AGENTS: readonly AgentType[] = [ constant CORE_DOCS (line 32) | const CORE_DOCS: readonly string[] = [ constant CORE_SKILLS (line 42) | const CORE_SKILLS: readonly BuiltInSkillType[] = [ constant EXTRA_AGENTS_BY_TYPE (line 55) | const EXTRA_AGENTS_BY_TYPE: Record = { constant EXTRA_DOCS_BY_TYPE (line 70) | const EXTRA_DOCS_BY_TYPE: Record = { constant EXTRA_SKILLS_BY_TYPE (line 85) | const EXTRA_SKILLS_BY_TYPE: Record> { function buildSkillsMatrix (line 128) | function buildSkillsMatrix(): Record = { class StackDetector (line 180) | class StackDetector { method detect (line 184) | async detect(repoPath: string): Promise { method getRecommendedAgents (line 273) | getRecommendedAgents(stack: StackInfo): string[] { method getRecommendedRules (line 309) | getRecommendedRules(stack: StackInfo): string[] { method checkFileExists (line 331) | private async checkFileExists(basePath: string, pattern: string): Prom... method countLanguagesByExtension (line 351) | private async countLanguagesByExtension(basePath: string): Promise { method analyzePackageJson (line 399) | private async analyzePackageJson(basePath: string): Promise<{ FILE: src/services/sync/markdownReferenceHandler.ts function getTargetFilename (line 5) | function getTargetFilename(agent: AgentFileInfo, options: HandlerOptions... function createMarkdownReferences (line 10) | async function createMarkdownReferences( function generateReferenceMarkdown (line 61) | function generateReferenceMarkdown( function formatAgentTitle (line 117) | function formatAgentTitle(name: string): string { FILE: src/services/sync/presets.ts function buildTargetPresets (line 8) | function buildTargetPresets(): Record, Target... constant TARGET_PRESETS (line 27) | const TARGET_PRESETS: Record, TargetPreset> =... function resolvePresets (line 29) | function resolvePresets(presetName: PresetName): TargetPreset[] { function getPresetByPath (line 38) | function getPresetByPath(targetPath: string): TargetPreset | undefined { function getAllPresetNames (line 53) | function getAllPresetNames(): PresetName[] { FILE: src/services/sync/symlinkHandler.ts function getTargetFilename (line 5) | function getTargetFilename(agent: AgentFileInfo, options: HandlerOptions... function createSymlinks (line 10) | async function createSymlinks( function createPlatformSymlink (line 66) | async function createPlatformSymlink( function checkSymlinkSupport (line 89) | async function checkSymlinkSupport(): Promise<{ FILE: src/services/sync/syncService.ts class SyncService (line 20) | class SyncService { method constructor (line 25) | constructor(dependencies: SyncServiceDependencies) { method run (line 31) | async run(rawOptions: SyncCommandFlags): Promise { method resolveOptions (line 95) | private async resolveOptions(rawOptions: SyncCommandFlags): Promise { method discoverAgentFiles (line 148) | private async discoverAgentFiles(sourcePath: string): Promise = { constant PHASE_MIN_FILES (line 70) | const PHASE_MIN_FILES: Record = { class AutoAdvanceDetector (line 78) | class AutoAdvanceDetector { method constructor (line 82) | constructor(repoPath: string) { method checkAutoAdvance (line 90) | async checkAutoAdvance( method getExpectedOutputTypes (line 152) | private getExpectedOutputTypes(phase: PrevcPhase): string[] { method watchForOutputs (line 167) | async watchForOutputs( method validatePhaseOutputs (line 208) | async validatePhaseOutputs( FILE: src/services/workflow/workflowService.ts type WorkflowHarnessStatus (line 49) | interface WorkflowHarnessStatus { class HarnessWorkflowBlockedError (line 69) | class HarnessWorkflowBlockedError extends Error { method constructor (line 70) | constructor( type WorkflowServiceDependencies (line 84) | interface WorkflowServiceDependencies { type WorkflowInitOptions (line 96) | interface WorkflowInitOptions { class WorkflowService (line 114) | class WorkflowService { method constructor (line 127) | constructor( method create (line 159) | static async create( method hasWorkflow (line 169) | async hasWorkflow(): Promise { method init (line 176) | async init(options: WorkflowInitOptions): Promise { method getStatus (line 240) | async getStatus(): Promise { method getSummary (line 247) | async getSummary(): Promise { method getFormattedStatus (line 254) | async getFormattedStatus(): Promise { method advance (line 313) | async advance(outputs?: string[], options?: { force?: boolean }): Prom... method checkGates (line 364) | async checkGates(): Promise { method setSettings (line 371) | async setSettings(settings: Partial): Promise { method listAvailableSensors (line 391) | listAvailableSensors(): Array { method markPlanCreated (line 415) | async markPlanCreated(planSlug: string): Promise { method approvePlan (line 428) | async approvePlan(approver: PrevcRole | string, notes?: string): Promi... method getApproval (line 442) | async getApproval(): Promise { method handoff (line 449) | async handoff( method getPhaseOrchestration (line 501) | async getPhaseOrchestration(phase: PrevcPhase): Promise { method isComplete (line 565) | async isComplete(): Promise { method updateTask (line 572) | async updateTask(task: string): Promise { method startRole (line 585) | async startRole(role: PrevcRole): Promise { method completeRole (line 601) | async completeRole(role: PrevcRole, outputs: string[]): Promise { method getHarnessStatus (line 618) | async getHarnessStatus(): Promise { method checkpointHarnessSession (line 674) | async checkpointHarnessSession( method recordHarnessArtifact (line 702) | async recordHarnessArtifact(input: { method defineHarnessTask (line 723) | async defineHarnessTask(input: { method runHarnessSensors (line 756) | async runHarnessSensors(sensorIds: string[], metadata?: Record { method loadHarnessBinding (line 818) | private async loadHarnessBinding(): Promise { method executeShellSensor (line 867) | private async executeShellSensor(command: string, name: string) { method trimEvidence (line 898) | private trimEvidence(value?: string, maxLength: number = 2000): string... FILE: src/types.ts type FileInfo (line 1) | interface FileInfo { type TopLevelDirectoryStats (line 10) | interface TopLevelDirectoryStats { type RepoStructure (line 16) | interface RepoStructure { type AIProvider (line 25) | type AIProvider = 'openrouter' | 'openai' | 'anthropic' | 'google'; type LLMConfig (line 27) | interface LLMConfig { type CLIOptions (line 34) | interface CLIOptions { type AgentPrompt (line 48) | interface AgentPrompt { type TokenUsage (line 56) | interface TokenUsage { type UsageStats (line 62) | interface UsageStats { FILE: src/types/scaffoldFrontmatter.ts type ScaffoldFileType (line 14) | type ScaffoldFileType = 'doc' | 'agent' | 'skill' | 'plan'; type ScaffoldStatus (line 19) | type ScaffoldStatus = 'unfilled' | 'filled'; type BaseScaffoldFrontmatter (line 24) | interface BaseScaffoldFrontmatter { type DocScaffoldFrontmatter (line 42) | interface DocScaffoldFrontmatter extends BaseScaffoldFrontmatter { type AgentScaffoldFrontmatter (line 51) | interface AgentScaffoldFrontmatter extends BaseScaffoldFrontmatter { type SkillScaffoldFrontmatter (line 62) | interface SkillScaffoldFrontmatter extends BaseScaffoldFrontmatter { type PlanScaffoldFrontmatter (line 77) | interface PlanScaffoldFrontmatter extends BaseScaffoldFrontmatter { type ScaffoldFrontmatter (line 94) | type ScaffoldFrontmatter = function isDocFrontmatter (line 103) | function isDocFrontmatter(fm: ScaffoldFrontmatter): fm is DocScaffoldFro... function isAgentFrontmatter (line 110) | function isAgentFrontmatter(fm: ScaffoldFrontmatter): fm is AgentScaffol... function isSkillFrontmatter (line 117) | function isSkillFrontmatter(fm: ScaffoldFrontmatter): fm is SkillScaffol... function isPlanFrontmatter (line 124) | function isPlanFrontmatter(fm: ScaffoldFrontmatter): fm is PlanScaffoldF... function createDocFrontmatter (line 131) | function createDocFrontmatter( function createAgentFrontmatter (line 150) | function createAgentFrontmatter( function createSkillFrontmatter (line 171) | function createSkillFrontmatter( function createPlanFrontmatter (line 198) | function createPlanFrontmatter( function serializeFrontmatter (line 227) | function serializeFrontmatter(fm: ScaffoldFrontmatter): string { FILE: src/utils/cliUI.ts class CLIInterface (line 7) | class CLIInterface { method constructor (line 12) | constructor(private readonly translate: TranslateFn) {} method displayProjectInfo (line 14) | displayProjectInfo(repoPath: string, outputDir: string, mode: string):... method startSpinner (line 23) | startSpinner(text: string): void { method updateSpinner (line 35) | updateSpinner(text: string, type?: 'success' | 'fail' | 'warn' | 'info... method stopSpinner (line 68) | stopSpinner(success: boolean = true): void { method createProgressBar (line 79) | createProgressBar(total: number, title: string): void { method updateProgress (line 94) | updateProgress(current: number, task: string): void { method completeProgress (line 99) | completeProgress(): void { method displayAnalysisResults (line 105) | displayAnalysisResults(totalFiles: number, totalDirs: number, totalSiz... method displayFileTypeDistribution (line 115) | displayFileTypeDistribution(distribution: Map, totalFi... method displayGenerationSummary (line 135) | displayGenerationSummary(docsGenerated: number, agentsGenerated: numbe... method displayError (line 153) | displayError(message: string, error?: Error): void { method displayInfo (line 165) | displayInfo(title: string, message: string): void { method displaySuccess (line 173) | displaySuccess(message: string): void { method displayWarning (line 177) | displayWarning(message: string): void { method displayStep (line 181) | displayStep(step: number, total: number, description: string): void { method formatBytes (line 188) | formatBytes(bytes: number): string { method t (line 196) | private t(key: TranslationKey, params?: TranslateParams): string { FILE: src/utils/fileMapper.ts class FileMapper (line 7) | class FileMapper { method constructor (line 23) | constructor(customExcludes: string[] = []) { method loadGitignorePatterns (line 28) | private async loadGitignorePatterns(repoPath: string): Promise { method getFilesByExtension (line 130) | getFilesByExtension(files: FileInfo[], extension: string): FileInfo[] { method isTextFile (line 134) | isTextFile(filePath: string): boolean { method extractTopLevelSegment (line 147) | private extractTopLevelSegment(relativePath: string): string | null { FILE: src/utils/frontMatter.ts type FrontMatter (line 16) | interface FrontMatter { type ParsedScaffoldFrontmatter (line 25) | interface ParsedScaffoldFrontmatter { function isScaffoldFrontmatter (line 48) | function isScaffoldFrontmatter(fm: FrontMatter | ParsedScaffoldFrontmatt... constant FRONT_MATTER_DELIMITER (line 52) | const FRONT_MATTER_DELIMITER = '---'; function needsFill (line 59) | async function needsFill(filePath: string): Promise { function readFirstLines (line 88) | async function readFirstLines(filePath: string, n: number): Promise { function getFilledStats (line 204) | async function getFilledStats(contextDir: string): Promise<{ function parseScaffoldFrontMatter (line 231) | function parseScaffoldFrontMatter(content: string): { function getDocumentName (line 350) | function getDocumentName(content: string): string | null { function isScaffoldContent (line 369) | function isScaffoldContent(content: string): boolean { FILE: src/utils/gitService.ts type GitChanges (line 7) | interface GitChanges { type GitState (line 14) | interface GitState { type CommitResult (line 18) | interface CommitResult { class GitService (line 24) | class GitService { method constructor (line 28) | constructor(repoPath: string) { method isGitRepository (line 33) | isGitRepository(): boolean { method getCurrentCommit (line 45) | getCurrentCommit(): string { method getChangedFiles (line 56) | getChangedFiles(since?: string): GitChanges { method getStagedFiles (line 133) | getStagedFiles(): string[] { method getStagedChanges (line 146) | getStagedChanges(): GitChanges { method getUncommittedChanges (line 194) | getUncommittedChanges(): GitChanges { method getBranchName (line 246) | getBranchName(): string { method getLastProcessedCommit (line 257) | getLastProcessedCommit(): string | null { method saveState (line 269) | saveState(commit: string): void { method getState (line 285) | getState(): GitState | null { method clearState (line 296) | clearState(): void { method filterRelevantFiles (line 306) | filterRelevantFiles(files: string[], fileMapper: any): string[] { method isFileTracked (line 313) | isFileTracked(filePath: string): boolean { method getTrackedFiles (line 325) | getTrackedFiles(): string[] { method filterTrackedFiles (line 338) | filterTrackedFiles(files: string[]): string[] { method getCommitMessage (line 343) | getCommitMessage(commit: string): string { method getFileHistory (line 354) | getFileHistory(filePath: string, limit: number = 10): Array<{ commit: ... method getAllTrackedFilesAsAdded (line 375) | private getAllTrackedFilesAsAdded(): GitChanges { method isValidCommit (line 395) | isValidCommit(commit: string): boolean { method getUnstagedFiles (line 410) | getUnstagedFiles(): string[] { method stageFiles (line 428) | stageFiles(patterns: string[]): string[] { method commit (line 459) | commit(message: string, coAuthor?: string): CommitResult { method hasUncommittedChanges (line 498) | hasUncommittedChanges(): boolean { method getCommitsBetween (line 511) | getCommitsBetween(fromCommit: string, toCommit: string = 'HEAD'): stri... method getCommitInfo (line 524) | getCommitInfo(commit: string): { hash: string; shortHash: string; mess... method displayCommitTrackingInfo (line 538) | displayCommitTrackingInfo(verbose: boolean = false): void { method hasContextBeenInitialized (line 576) | hasContextBeenInitialized(outputDir: string): boolean { FILE: src/utils/gitignoreManager.ts constant DEFAULT_EXCLUDE_PATTERNS (line 19) | const DEFAULT_EXCLUDE_PATTERNS: readonly string[] = [ type GitIgnoreManagerOptions (line 30) | interface GitIgnoreManagerOptions { class GitIgnoreManager (line 37) | class GitIgnoreManager { method constructor (line 42) | constructor(private readonly options: GitIgnoreManagerOptions = {}) { method loadFromRepo (line 53) | async loadFromRepo(repoPath: string): Promise { method shouldIgnore (line 91) | shouldIgnore(relativePath: string): boolean { method filterPaths (line 117) | filterPaths(relativePaths: string[]): string[] { method isLoaded (line 124) | get isLoaded(): boolean { method clearCache (line 131) | clearCache(): void { method parseGitignore (line 139) | private parseGitignore(content: string): string[] { method applyDefaults (line 149) | private applyDefaults(): void { type EnsureGitignorePatternsOptions (line 156) | interface EnsureGitignorePatternsOptions { function normalizeGitignorePattern (line 160) | function normalizeGitignorePattern(pattern: string): string { function ensureGitignorePatterns (line 173) | async function ensureGitignorePatterns( FILE: src/utils/i18n.ts type Locale (line 1) | type Locale = 'en' | 'pt-BR'; constant SUPPORTED_LOCALES (line 3) | const SUPPORTED_LOCALES: Locale[] = ['en', 'pt-BR']; constant DEFAULT_LOCALE (line 4) | const DEFAULT_LOCALE: Locale = 'en'; type TranslationKey (line 551) | type TranslationKey = keyof typeof englishMessages; type TranslationDictionary (line 553) | type TranslationDictionary = Record; type TranslateParams (line 1105) | type TranslateParams = Record; type TranslateFn (line 1107) | type TranslateFn = (key: TranslationKey, params?: TranslateParams) => st... function createTranslator (line 1109) | function createTranslator(locale: Locale): TranslateFn { function normalizeLocale (line 1119) | function normalizeLocale(locale: string): Locale { function detectLocale (line 1123) | function detectLocale( function extractLocaleFromArgs (line 1144) | function extractLocaleFromArgs(argv: string[]): string | undefined { function fillTemplate (line 1160) | function fillTemplate(template: string, params?: TranslateParams): string { function isSupportedLocale (line 1170) | function isSupportedLocale(locale: string): boolean { function resolveLocaleCandidate (line 1174) | function resolveLocaleCandidate(locale?: string | null): Locale | undefi... FILE: src/utils/pathSecurity.ts class SecurityError (line 21) | class SecurityError extends Error { method constructor (line 25) | constructor(message: string, attemptedPath: string, workspaceRoot: str... class PathValidator (line 39) | class PathValidator { method constructor (line 42) | constructor(private readonly workspaceRoot: string) { method validatePath (line 53) | validatePath(inputPath: string): string { method isWithinBoundary (line 91) | isWithinBoundary(resolvedPath: string): boolean { method safeResolve (line 102) | safeResolve(inputPath: string): string | null { method hasUrlEncodedTraversal (line 113) | private hasUrlEncodedTraversal(input: string): boolean { FILE: src/utils/processShutdown.ts type ShutdownTarget (line 1) | interface ShutdownTarget { type ShutdownController (line 5) | interface ShutdownController { type ShutdownControllerOptions (line 10) | interface ShutdownControllerOptions { function registerProcessShutdown (line 22) | function registerProcessShutdown( FILE: src/utils/prompts/configSummary.ts function displayConfigSummary (line 8) | function displayConfigSummary(summary: ConfigSummary, _t: TranslateFn): ... FILE: src/utils/prompts/index.ts function promptInteractiveMode (line 16) | async function promptInteractiveMode(t: TranslateFn): Promise { function promptLoadEnv (line 100) | async function promptLoadEnv(t: TranslateFn): Promise { FILE: src/utils/prompts/smartDefaults.ts function detectSmartDefaults (line 8) | async function detectSmartDefaults(basePath?: string): Promise = { function themedSelect (line 18) | async function themedSelect(config: { function themedConfirm (line 31) | async function themedConfirm(config: { function themedInput (line 41) | async function themedInput(config: { function themedPassword (line 52) | async function themedPassword(config: { function themedCheckbox (line 62) | async function themedCheckbox(config: { FILE: src/utils/versionChecker.ts type VersionCheckOptions (line 6) | interface VersionCheckOptions { constant DEFAULT_TIMEOUT_MS (line 17) | const DEFAULT_TIMEOUT_MS = 2000; constant DISABLE_ENV_FLAGS (line 19) | const DISABLE_ENV_FLAGS = ['DOTCONTEXT_DISABLE_UPDATE_CHECK', 'NO_UPDATE... function fetchLatestVersion (line 21) | async function fetchLatestVersion(packageName: string, timeoutMs: number... function checkForUpdates (line 45) | async function checkForUpdates(options: VersionCheckOptions): Promise { method discoverBuiltIn (line 92) | async discoverBuiltIn(): Promise { method discoverCustom (line 106) | async discoverCustom(): Promise { method getAgentMetadata (line 137) | async getAgentMetadata(agentType: string): Promise { method agentExists (line 171) | async agentExists(agentType: string): Promise { method getPlaybookContent (line 179) | async getPlaybookContent(agentType: string): Promise { method clearCache (line 192) | clearCache(): void { method extractMetadataFromFile (line 199) | private async extractMetadataFromFile( function createAgentRegistry (line 220) | function createAgentRegistry(repoPath: string): AgentRegistry { FILE: src/workflow/collaboration.ts function generateSessionId (line 20) | function generateSessionId(): string { class CollaborationSession (line 29) | class CollaborationSession { method constructor (line 37) | constructor(topic: string, participants?: PrevcRole[]) { method getId (line 49) | getId(): string { method start (line 56) | async start( method getStatus (line 72) | getStatus(): CollaborationStatus { method contribute (line 85) | contribute(role: PrevcRole, message: string): void { method getContributions (line 106) | getContributions(): Contribution[] { method getContributionsByRole (line 113) | getContributionsByRole(role: PrevcRole): Contribution[] { method synthesize (line 120) | async synthesize(): Promise { method extractDecisions (line 140) | private async extractDecisions(): Promise { method generateRecommendations (line 175) | private async generateRecommendations(): Promise { method selectRelevantRoles (line 219) | private async selectRelevantRoles(topic: string): Promise { method getDurationMinutes (line 283) | getDurationMinutes(): number { method getParticipantNames (line 292) | getParticipantNames(): string[] { method isParticipant (line 299) | isParticipant(role: PrevcRole): boolean { method addParticipant (line 306) | addParticipant(role: PrevcRole): void { method removeParticipant (line 315) | removeParticipant(role: PrevcRole): void { class CollaborationManager (line 325) | class CollaborationManager { method createSession (line 331) | createSession(topic: string, participants?: PrevcRole[]): Collaboratio... method getSession (line 340) | getSession(id: string): CollaborationSession | undefined { method getActiveSessions (line 347) | getActiveSessions(): CollaborationSession[] { method endSession (line 356) | async endSession(id: string): Promise { method clearConcludedSessions (line 369) | clearConcludedSessions(): void { FILE: src/workflow/errors.ts class WorkflowError (line 12) | class WorkflowError extends Error { method constructor (line 13) | constructor(message: string) { class WorkflowGateError (line 22) | class WorkflowGateError extends WorkflowError { method constructor (line 30) | constructor(options: { class NoPlanToApproveError (line 47) | class NoPlanToApproveError extends WorkflowError { method constructor (line 48) | constructor(message = 'No plan is linked to approve. Link a plan first... class NoWorkflowError (line 57) | class NoWorkflowError extends WorkflowError { method constructor (line 58) | constructor(message = 'No workflow found. Run workflowInit first.') { FILE: src/workflow/gates/gateChecker.test.ts function createMockStatus (line 9) | function createMockStatus(overrides: Partial = {}): PrevcSt... FILE: src/workflow/gates/gateChecker.ts type GateStatus (line 19) | interface GateStatus { type GateCheckResult (line 29) | interface GateCheckResult { function getDefaultSettings (line 45) | function getDefaultSettings(scale: ProjectScale | string): WorkflowSetti... class WorkflowGateChecker (line 77) | class WorkflowGateChecker { method checkGates (line 81) | checkGates( method enforceGates (line 171) | enforceGates( method getEffectiveSettings (line 197) | private getEffectiveSettings(status: PrevcStatus): WorkflowSettings { method hasLinkedPlan (line 215) | private hasLinkedPlan(status: PrevcStatus): boolean { method isPlanApproved (line 237) | private isPlanApproved(status: PrevcStatus): boolean { method getNextPhase (line 244) | private getNextPhase(current: PrevcPhase): PrevcPhase | null { function createGateChecker (line 252) | function createGateChecker(): WorkflowGateChecker { FILE: src/workflow/orchestration/agentOrchestrator.ts constant AGENT_TYPES (line 14) | const AGENT_TYPES = [ type AgentType (line 31) | type AgentType = (typeof AGENT_TYPES)[number]; constant PHASE_TO_AGENTS (line 36) | const PHASE_TO_AGENTS: Record = { constant ROLE_TO_AGENTS (line 59) | const ROLE_TO_AGENTS: Record = { constant TASK_KEYWORDS (line 86) | const TASK_KEYWORDS: Record = { class AgentOrchestrator (line 168) | class AgentOrchestrator { method getAgentsForPhase (line 172) | getAgentsForPhase(phase: PrevcPhase): AgentType[] { method getAgentsForRole (line 179) | getAgentsForRole(role: PrevcRole): AgentType[] { method getPrimaryAgentForRole (line 186) | getPrimaryAgentForRole(role: PrevcRole): AgentType | null { method selectAgentsByTask (line 194) | selectAgentsByTask(taskDescription: string): AgentType[] { method getAgentHandoffSequence (line 216) | getAgentHandoffSequence(phases: PrevcPhase[]): AgentType[] { method getTaskAgentSequence (line 236) | getTaskAgentSequence( method specialistToAgent (line 264) | specialistToAgent(specialist: string): AgentType | null { method getAllAgentTypes (line 284) | getAllAgentTypes(): AgentType[] { method isValidAgentType (line 291) | isValidAgentType(type: string): type is AgentType { method getAgentDescription (line 298) | getAgentDescription(agent: AgentType): string { FILE: src/workflow/orchestration/documentLinker.ts type DocType (line 14) | type DocType = type DocGuide (line 29) | interface DocGuide { constant DOCUMENT_GUIDES (line 39) | const DOCUMENT_GUIDES: DocGuide[] = [ constant AGENT_TO_DOCS (line 105) | const AGENT_TO_DOCS: Record = { constant PHASE_TO_DOCS (line 125) | const PHASE_TO_DOCS: Record = { constant ROLE_TO_DOCS (line 136) | const ROLE_TO_DOCS: Record = { class DocumentLinker (line 150) | class DocumentLinker { method getDocsForAgent (line 154) | getDocsForAgent(agent: AgentType): DocGuide[] { method getDocsForPhase (line 162) | getDocsForPhase(phase: PrevcPhase): DocGuide[] { method getDocsForRole (line 170) | getDocsForRole(role: PrevcRole): DocGuide[] { method getPrimaryDocForAgent (line 178) | getPrimaryDocForAgent(agent: AgentType): DocGuide | null { method getAllDocs (line 186) | getAllDocs(): DocGuide[] { method getDocByType (line 193) | getDocByType(type: DocType): DocGuide | null { method getDocPathsForAgent (line 200) | getDocPathsForAgent(agent: AgentType): string[] { method getDocPathsForPhase (line 207) | getDocPathsForPhase(phase: PrevcPhase): string[] { method getDocPathsForRole (line 214) | getDocPathsForRole(role: PrevcRole): string[] { method getDocsForAgents (line 221) | getDocsForAgents(agents: AgentType[]): DocGuide[] { method getDocsForTask (line 235) | getDocsForTask(taskDescription: string): DocGuide[] { method generateAgentDocLinks (line 277) | generateAgentDocLinks(agent: AgentType): string { method generatePhaseDocLinks (line 291) | generatePhaseDocLinks(phase: PrevcPhase): string { method getGuidesByTypes (line 305) | private getGuidesByTypes(types: DocType[]): DocGuide[] { FILE: src/workflow/orchestrator.ts type CompletePhaseOptions (line 32) | interface CompletePhaseOptions { type InitWorkflowOptions (line 40) | interface InitWorkflowOptions { class PrevcOrchestrator (line 52) | class PrevcOrchestrator { method constructor (line 59) | constructor(contextPath: string) { method hasWorkflow (line 71) | async hasWorkflow(): Promise { method initWorkflow (line 78) | async initWorkflow(context: ProjectContext): Promise { method initWorkflowWithScale (line 98) | async initWorkflowWithScale( method resetWorkflow (line 138) | async resetWorkflow(archive: boolean): Promise { method archiveCurrentWorkflow (line 151) | private async archiveCurrentWorkflow(): Promise { method initWorkflowWithOptions (line 170) | async initWorkflowWithOptions(options: InitWorkflowOptions): Promise { method getCurrentPhase (line 184) | async getCurrentPhase(): Promise { method getCurrentRole (line 191) | async getCurrentRole(): Promise { method getCurrentPhaseDefinition (line 198) | async getCurrentPhaseDefinition() { method handoff (line 209) | async handoff( method getNextAgentSuggestion (line 229) | getNextAgentSuggestion(currentAgent: string): { agent: string; reason:... method getPhaseOrchestration (line 249) | async getPhaseOrchestration(phase: PrevcPhase): Promise { method setSettings (line 415) | async setSettings(settings: Partial): Promise { method markPlanCreated (line 429) | async markPlanCreated(planSlug: string): Promise { method approvePlan (line 436) | async approvePlan(approver: PrevcRole | string, notes?: string): Promi... method getApproval (line 443) | async getApproval(): Promise { method advanceToNextPhase (line 450) | async advanceToNextPhase(): Promise { method getNextPhase (line 461) | async getNextPhase(): Promise { method isComplete (line 468) | async isComplete(): Promise { method getRecommendedActions (line 475) | async getRecommendedActions(): Promise { method getSummary (line 507) | async getSummary(): Promise { method updateCurrentTask (line 541) | async updateCurrentTask(task: string): Promise { method startRole (line 554) | async startRole(role: PrevcRole): Promise { method completeRole (line 570) | async completeRole(role: PrevcRole, outputs: string[]): Promise { type WorkflowSummary (line 582) | interface WorkflowSummary { FILE: src/workflow/phases.ts constant PREVC_PHASE_ORDER (line 17) | const PREVC_PHASE_ORDER: PrevcPhase[] = ['P', 'R', 'E', 'V', 'C']; constant PREVC_PHASES (line 22) | const PREVC_PHASES: Record = { constant PHASE_NAMES (line 68) | const PHASE_NAMES: Record = { constant PHASE_NAMES_EN (line 79) | const PHASE_NAMES_EN = PHASE_NAMES; constant PHASE_NAMES_PT (line 84) | const PHASE_NAMES_PT: Record = { function getPhaseDefinition (line 95) | function getPhaseDefinition(phase: PrevcPhase): PhaseDefinition { function getNextPhase (line 102) | function getNextPhase(currentPhase: PrevcPhase): PrevcPhase | null { function getPreviousPhase (line 113) | function getPreviousPhase(currentPhase: PrevcPhase): PrevcPhase | null { function isPhaseOptional (line 124) | function isPhaseOptional(phase: PrevcPhase): boolean { function getRolesForPhase (line 131) | function getRolesForPhase(phase: PrevcPhase): string[] { function getOutputsForPhase (line 138) | function getOutputsForPhase(phase: PrevcPhase): string[] { function isValidPhase (line 145) | function isValidPhase(phase: string): phase is PrevcPhase { function getPhaseOrder (line 152) | function getPhaseOrder(phase: PrevcPhase): number { FILE: src/workflow/plans/planLinker.ts class PlanLinker (line 37) | class PlanLinker { method constructor (line 46) | constructor(repoPath: string, statusManager?: PrevcStatusManager, auto... method create (line 59) | static async create( method ensureWorkflowPlanIndex (line 70) | async ensureWorkflowPlanIndex(): Promise { method discoverAgents (line 86) | async discoverAgents(): Promise { method linkPlan (line 106) | async linkPlan(planSlug: string): Promise { method getLinkedPlans (line 134) | async getLinkedPlans(): Promise { method updatePlanReference (line 152) | async updatePlanReference( method getLinkedPlan (line 183) | async getLinkedPlan(planSlug: string): Promise { method getPlansForPhase (line 203) | async getPlansForPhase(phase: PrevcPhase): Promise { method updatePlanPhase (line 223) | async updatePlanPhase( method recordDecision (line 280) | async recordDecision( method getPhaseMappingForWorkflow (line 328) | getPhaseMappingForWorkflow(plan: LinkedPlan, currentPrevcPhase: PrevcP... method hasPendingWorkForPhase (line 335) | hasPendingWorkForPhase(plan: LinkedPlan, phase: PrevcPhase): boolean { method getPlanProgress (line 343) | async getPlanProgress(planSlug: string): Promise<{ method updatePlanStep (line 382) | async updatePlanStep( method updatePlanApproval (line 501) | async updatePlanApproval( method getPlanExecutionStatus (line 558) | async getPlanExecutionStatus(planSlug: string): Promise { method recordPhaseCommit (line 592) | async recordPhaseCommit( method loadPlanTracking (line 638) | private async loadPlanTracking(planSlug: string): Promise { method clearAllPlans (line 1188) | async clearAllPlans(): Promise { method archivePlans (line 1207) | async archivePlans(): Promise { method autoCommitPhase (line 1242) | private async autoCommitPhase(planSlug: string, phaseId: string): Prom... function createPlanLinker (line 1308) | function createPlanLinker(repoPath: string, statusManager?: PrevcStatusM... FILE: src/workflow/plans/types.ts constant PLAN_PHASE_TO_PREVC (line 13) | const PLAN_PHASE_TO_PREVC: Record = { type PlanReference (line 29) | interface PlanReference { type PlanStep (line 53) | interface PlanStep { type PlanPhase (line 71) | interface PlanPhase { type PlanDecision (line 93) | interface PlanDecision { type PlanRisk (line 117) | interface PlanRisk { type AgentLineupEntry (line 137) | interface AgentLineupEntry { type LinkedPlan (line 147) | interface LinkedPlan { type WorkflowPlans (line 171) | interface WorkflowPlans { type PlanSyncEvent (line 183) | interface PlanSyncEvent { type StepExecution (line 199) | interface StepExecution { type PlanPhaseTracking (line 219) | interface PlanPhaseTracking { type PlanExecutionTracking (line 244) | interface PlanExecutionTracking { FILE: src/workflow/prevcConfig.ts constant ROLE_CONFIG (line 12) | const ROLE_CONFIG: Record = { function getRoleConfig (line 129) | function getRoleConfig(role: PrevcRole): RoleDefinition { function getRolesForPhase (line 136) | function getRolesForPhase(phase: string): PrevcRole[] { function getOutputsForRole (line 150) | function getOutputsForRole(role: PrevcRole): string[] { function getResponsibilitiesForRole (line 157) | function getResponsibilitiesForRole(role: PrevcRole): string[] { FILE: src/workflow/roles.ts constant PREVC_ROLES (line 13) | const PREVC_ROLES = [ constant ROLE_TO_SPECIALISTS (line 29) | const ROLE_TO_SPECIALISTS: Record = { constant SPECIALIST_TO_ROLE (line 51) | const SPECIALIST_TO_ROLE: Record = { constant ROLE_DISPLAY_NAMES (line 71) | const ROLE_DISPLAY_NAMES: Record = { constant ROLE_DISPLAY_NAMES_EN (line 85) | const ROLE_DISPLAY_NAMES_EN = ROLE_DISPLAY_NAMES; constant ROLE_DISPLAY_NAMES_PT (line 90) | const ROLE_DISPLAY_NAMES_PT: Record = { function isValidRole (line 104) | function isValidRole(role: string): role is PrevcRole { function getRoleForSpecialist (line 112) | function getRoleForSpecialist(specialist: string): PrevcRole | null { function getSpecialistsForRole (line 120) | function getSpecialistsForRole(role: PrevcRole): string[] { FILE: src/workflow/scaling.ts constant SCALE_ROUTES (line 13) | const SCALE_ROUTES: Record = { constant BUG_FIX_KEYWORDS (line 40) | const BUG_FIX_KEYWORDS = [ constant SIMPLE_FEATURE_KEYWORDS (line 55) | const SIMPLE_FEATURE_KEYWORDS = [ constant SECURITY_KEYWORDS (line 70) | const SECURITY_KEYWORDS = [ constant DOCUMENTATION_KEYWORDS (line 86) | const DOCUMENTATION_KEYWORDS = [ function isBugFix (line 100) | function isBugFix(description: string): boolean { function isSimpleFeature (line 108) | function isSimpleFeature(description: string): boolean { function requiresSecurityAudit (line 116) | function requiresSecurityAudit(description: string): boolean { function requiresDocumentation (line 124) | function requiresDocumentation(description: string): boolean { function detectProjectScale (line 132) | function detectProjectScale(context: ProjectContext): ProjectScale { function getScaleRoute (line 163) | function getScaleRoute(scale: ProjectScale): ScaleRoute { function getPhasesForScale (line 170) | function getPhasesForScale(scale: ProjectScale): PrevcPhase[] { function getRolesForScale (line 177) | function getRolesForScale(scale: ProjectScale): PrevcRole[] | 'all' { function isPhaseRequiredForScale (line 184) | function isPhaseRequiredForScale( function getScaleName (line 194) | function getScaleName(scale: ProjectScale): string { function getScaleFromName (line 208) | function getScaleFromName(name: string): ProjectScale | null { function getEstimatedTime (line 222) | function getEstimatedTime(scale: ProjectScale): string { FILE: src/workflow/skills/frontmatter.ts function generateFrontmatter (line 14) | function generateFrontmatter(metadata: SkillMetadata, slug?: string): st... function generatePortableFrontmatter (line 41) | function generatePortableFrontmatter(name: string, description: string):... function wrapWithFrontmatter (line 48) | function wrapWithFrontmatter(metadata: SkillMetadata, content: string, s... function wrapWithPortableFrontmatter (line 56) | function wrapWithPortableFrontmatter(name: string, description: string, ... function parseFrontmatter (line 64) | function parseFrontmatter(content: string): { metadata: SkillMetadata; b... function stripQuotes (line 117) | function stripQuotes(value: string): string { function parsePhaseArray (line 124) | function parsePhaseArray(value: string): PrevcPhase[] { FILE: src/workflow/skills/skillRegistry.ts constant SKILLS_DIR (line 24) | const SKILLS_DIR = '.context/skills'; constant AGENTS_SKILLS_DIR (line 27) | const AGENTS_SKILLS_DIR = '.agents/skills'; class SkillRegistry (line 29) | class SkillRegistry { method constructor (line 34) | constructor(repoPath: string) { method discoverAll (line 42) | async discoverAll(): Promise { method getSkillMetadata (line 62) | async getSkillMetadata(slug: string): Promise { method getSkillContent (line 70) | async getSkillContent(slug: string): Promise { method getSkillsForPhase (line 89) | async getSkillsForPhase(phase: PrevcPhase): Promise { method clearCache (line 97) | clearCache(): void { method discoverBuiltInSkills (line 104) | private discoverBuiltInSkills(): Skill[] { method discoverCustomSkills (line 132) | private discoverCustomSkills(): Skill[] { method discoverSkillsFromDirectory (line 149) | private discoverSkillsFromDirectory( method parseSkillFile (line 188) | private parseSkillFile(skillPath: string, slug: string, isBuiltIn: boo... method discoverResources (line 218) | private discoverResources(skillDir: string): string[] { method discoverResourcesRecursive (line 242) | private discoverResourcesRecursive(dir: string): string[] { method createBuiltInSkill (line 266) | private createBuiltInSkill( function createSkillRegistry (line 290) | function createSkillRegistry(repoPath: string): SkillRegistry { FILE: src/workflow/skills/skillTemplates.ts type SkillTemplate (line 29) | interface SkillTemplate { function contentToMarkdown (line 34) | function contentToMarkdown(title: string, overview: string, content: Ski... function extractTriggerBullets (line 53) | function extractTriggerBullets(whenToUse?: string): string[] { function joinNaturalLanguage (line 66) | function joinNaturalLanguage(items: string[]): string { function buildTemplateDescription (line 79) | function buildTemplateDescription(baseDescription: string, content: Skil... function getBuiltInSkillTemplates (line 91) | function getBuiltInSkillTemplates(): Record = { FILE: src/workflow/status/statusManager.ts class PrevcStatusManager (line 38) | class PrevcStatusManager { method constructor (line 43) | constructor(contextPath: string) { method legacyStatusPath (line 48) | private get legacyStatusPath(): string { method exists (line 55) | async exists(): Promise { method load (line 62) | async load(): Promise { method loadSync (line 90) | loadSync(): PrevcStatus { method save (line 118) | async save(status: PrevcStatus): Promise { method remove (line 123) | async remove(): Promise { method archive (line 131) | async archive(name: string): Promise { method persistCanonical (line 143) | private async persistCanonical(status: PrevcStatus): Promise { method create (line 153) | async create(options: { method updatePhase (line 177) | async updatePhase(phase: PrevcPhase, update: PhaseUpdate): Promise { method updateAgent (line 210) | async updateAgent(agentName: string, update: AgentUpdate): Promise { method markPhaseComplete (line 281) | async markPhaseComplete( method getCurrentPhase (line 322) | async getCurrentPhase(): Promise { method getActiveRole (line 330) | async getActiveRole(): Promise { method getNextPhase (line 345) | async getNextPhase(): Promise { method isComplete (line 364) | async isComplete(): Promise { method setSettings (line 383) | async setSettings(settings: Partial): Promise { method markPlanCreated (line 411) | async markPlanCreated(planSlug: string): Promise { method approvePlan (line 448) | async approvePlan(approver: PrevcRole | string, notes?: string): Promi... method getApproval (line 490) | async getApproval(): Promise { method addHistoryEntry (line 498) | async addHistoryEntry(entry: Omit)... method addStepHistoryEntry (line 526) | async addStepHistoryEntry(entry: { method getExecutionHistory (line 573) | async getExecutionHistory(): Promise { method migrateStatus (line 585) | private migrateStatus(status: PrevcStatus): PrevcStatus { method parseYaml (line 673) | private parseYaml(content: string): PrevcStatus { method serializeYaml (line 886) | private serializeYaml(status: PrevcStatus): string { FILE: src/workflow/status/templates.ts constant PHASE_NAMES (line 21) | const PHASE_NAMES: Record = { type StepContext (line 32) | interface StepContext { function generateResumeContext (line 41) | function generateResumeContext( type CreateStatusOptions (line 87) | interface CreateStatusOptions { function createInitialStatus (line 97) | function createInitialStatus(options: CreateStatusOptions): PrevcStatus { function createQuickFlowStatus (line 156) | function createQuickFlowStatus(name: string): PrevcStatus { function createSmallProjectStatus (line 168) | function createSmallProjectStatus(name: string): PrevcStatus { function createMediumProjectStatus (line 180) | function createMediumProjectStatus(name: string): PrevcStatus { function createLargeProjectStatus (line 192) | function createLargeProjectStatus(name: string): PrevcStatus { FILE: src/workflow/types.ts type PrevcPhase (line 15) | type PrevcPhase = 'P' | 'R' | 'E' | 'V' | 'C'; type PrevcRole (line 20) | type PrevcRole = type ProjectScale (line 33) | enum ProjectScale { type StatusType (line 43) | type StatusType = 'pending' | 'in_progress' | 'completed' | 'skipped'; type PhaseDefinition (line 48) | interface PhaseDefinition { type RoleDefinition (line 60) | interface RoleDefinition { type ScaleRoute (line 70) | interface ScaleRoute { type PhaseStatus (line 81) | interface PhaseStatus { type OutputStatus (line 94) | interface OutputStatus { type RoleStatus (line 103) | interface RoleStatus { type AgentStatus (line 114) | interface AgentStatus { type WorkflowPlanRef (line 124) | interface WorkflowPlanRef { type WorkflowSettings (line 133) | interface WorkflowSettings { type GateType (line 145) | type GateType = 'plan_required' | 'approval_required'; type PlanApproval (line 150) | interface PlanApproval { type ExecutionAction (line 166) | type ExecutionAction = type ExecutionHistoryEntry (line 184) | interface ExecutionHistoryEntry { type ExecutionHistory (line 207) | interface ExecutionHistory { type ProjectMetadata (line 216) | interface ProjectMetadata { type PrevcStatus (line 232) | interface PrevcStatus { type ProjectContext (line 248) | interface ProjectContext { type PhaseUpdate (line 259) | interface PhaseUpdate { type RoleUpdate (line 270) | interface RoleUpdate { type AgentUpdate (line 281) | interface AgentUpdate { type Contribution (line 289) | interface Contribution { type CollaborationStatus (line 298) | interface CollaborationStatus { type CollaborationSynthesis (line 309) | interface CollaborationSynthesis { type AgentSequenceStep (line 320) | interface AgentSequenceStep { type SkillSuggestion (line 328) | interface SkillSuggestion { type ToolGuidance (line 339) | interface ToolGuidance { type PhaseOrchestration (line 351) | interface PhaseOrchestration {