/** * Type definitions for the FORGE template system */ /** * Template data context for variable interpolation */ export interface TemplateContext { projectName: string; tagline?: string; version: string; timestamp: string; currentPhase?: string; phaseName?: string; phaseDescription?: string; phaseDuration?: string; phaseOwner?: string; phaseDependencies?: string; currentStatus?: string; status: string; vision: string; problemStatement?: string; solution?: string; techStack: { backend?: { language: string; framework: string; runtime: string; keyLibraries?: string; }; frontend?: { language: string; framework: string; build: string; styling?: string; stateManagement?: string; }; database?: { primary: string; cache?: string; orm?: string; migrations?: string; }; infrastructure?: { hosting: string; cicd: string; monitoring?: string; }; }; architectureDiagram?: string; codeStructure?: string; namingConventions?: string; importAliases?: Array<{ from: string; to: string; }>; patterns: Array<{ name: string; description: string; example?: string; lang?: string; }>; rules: Array<{ category: string; items: Array<{ title: string; description: string; }>; }>; features: Array<{ name: string; description: string; userStories?: Array<{ role: string; want: string; why: string; }>; acceptanceCriteria?: Array<{ given: string; when: string; then: string; }>; dependencies?: string; apiContracts?: string; }>; nfrs?: { performance?: string[]; security?: string[]; reliability?: string[]; maintainability?: string[]; scalability?: string[]; }; dataRequirements?: { entities: Array<{ name: string; fields: Array<{ name: string; type: string; required: boolean; description: string; }>; }>; }; apiRequirements?: Array<{ name: string; method: string; path: string; description: string; authentication: string; rateLimit: string; request?: { format: string; schema: string; }; response?: { format: string; schema: string; }; errors?: Array<{ code: string; description: string; }>; }>; uiRequirements?: { principles?: string[]; screens?: Array<{ name: string; description: string; states: Array<{ name: string; description: string; }>; interactions: string[]; }>; }; testing?: { structure: string; coverage: string; command: string; types?: string[]; performance?: string; security?: string; }; deployment?: { strategy: string; environments: Array<{ name: string; description: string; }>; }; commitFormat?: string; commitTypes?: Array<{ type: string; description: string; }>; envVars?: Array<{ name: string; required: string; description: string; }>; successMetrics?: Array<{ name: string; description: string; target: string; }>; constraints?: Array<{ type: string; description: string; }>; outOfScope?: string[]; assumptions?: string[]; dependencies?: Array<{ name: string; version: string; purpose: string; }>; compliance?: Array<{ area: string; requirement: string; }>; projectStatus?: { currentMilestone: string; currentPhase: string; progress: number; estimatedCompletion: string; }; milestones: Array<{ name: string; description: string; status: string; duration: string; dependencies?: string; deliverables: string[]; }>; phases: Array<{ name: string; description: string; duration: string; dependencies?: string; tasks: Array<{ id: string; name: string; owner: string; status: string; }>; deliverables: string[]; notes?: string; }>; dependencyGraph?: Array<{ from: string; fromLabel: string; to?: string; toLabel?: string; deps?: string[]; }>; criticalPath?: string[]; parallelTasks?: Array<{ name: string; description: string; }>; resources?: Array<{ role: string; agent: string; taskCount: number; estimatedHours: number; }>; contracts?: Array<{ name: string; path: string; format: string; version: string; provider: string; consumers: string; }>; parallelStrategy?: string; rolloutPlan?: string; testingStrategy?: string; risks?: Array<{ name: string; description: string; impact: string; mitigation: string; contingency?: string; }>; successCriteria?: string[]; notes?: string; nextSprint?: Array<{ task: string; description: string; owner: string; }>; backlog?: Array<{ priority: string; name: string; description: string; }>; definitionOfDone: string[]; changes?: Array<{ date: string; description: string; author: string; }>; tasks: Array<{ id: string; name: string; description: string; owner: string; type: string; priority: string; status: string; dependencies?: string; inputs?: string; outputs?: string; contracts?: string; acceptance: string[]; verify: string; }>; taskDependencies?: Array<{ id: string; label: string; deps?: string[]; }>; mode: string; depth: string; maxTeammates: number; taskLimit: number; agentProfile: string; workflow: { research: boolean; planCheck: boolean; tribunal: boolean; contractFirst: boolean; }; git: { strategy: string; branchTemplate: string; squashOnShip: boolean; }; securityPrinciples?: string[]; passwordPolicy?: string; sessionManagement?: string; mfa?: string; accessControl?: string; roles?: Array<{ name: string; description: string; }>; inputValidation?: string; sqlPrevention?: string; xssPrevention?: string; encryptionAtRest?: string; encryptionInTransit?: string; encryption?: { db: string; files: string; secrets: string; backup: string; }; piiHandling?: string; rateLimiting?: string; apiKeyManagement?: string; cors?: string; supplyChain?: string; vulnScanning?: string; secretsPolicy?: string; secretsStorage?: string; secretsManager?: string; ciSecrets?: string; securityLogging?: string; alerting?: string; sastTool?: string; scaTool?: string; dastTool?: string; containerScanTool?: string; incidentResponse?: string; deploymentChecklist?: string[]; designPrinciples?: string[]; componentStructure?: string; componentNaming?: string; styling?: string; formPatterns?: string; loadingStates?: string; emptyStates?: string; breakpoints?: string; accessibility?: string; tablePatterns?: string; performance?: string; icons?: string; iconSet?: string; typography?: string; apiUrlStructure?: string; httpMethods?: Array<{ method: string; usage: string; }>; responseFormat?: string; errorCodes?: Array<{ code: number; description: string; }>; errorNaming?: string; authPatterns?: string; pagination?: string; apiVersioning?: string; validationRules?: string; openApiRequirements?: string; testingPhilosophy?: string; testStructure?: string; testNaming?: string; unitTestScope?: string; integrationScope?: string; dbTesting?: string; e2eFramework?: string; e2eTool?: string; e2eScenarios?: string[]; e2eChecklist?: string[]; testFactories?: string; seedingStrategy?: string; mockingGuidelines?: string; performanceTests?: string; securityTests?: string; testCommands?: string; ciTesting?: string; } /** * Token limit configuration */ export interface TokenLimits { claude: number; requirements: number; plan: number; rules: number; } /** * Template configuration */ export interface TemplateConfig { templatesDir: string; outputDir: string; tokenLimits: TokenLimits; } /** * Template render result */ export interface RenderResult { content: string; tokenCount: number; withinLimit: boolean; warnings: string[]; } /** * XML Task Spec structure */ export interface XmlTaskSpec { id: string; type: 'auto' | 'manual'; owner: string; name: string; deps?: string; files?: string; contracts?: string; action: string; acceptance: string[]; verify: string; } /** * Token counter result */ export interface TokenCountResult { count: number; estimated: boolean; warnings: string[]; } //# sourceMappingURL=types.d.ts.map