/** * @traqr/core — Template Engine * * Template variable generation, slot derivation, feature flags, * and the render engine for {{VAR}} / {{#IF_TIER}} / {{#IF_FEATURE}} templates. */ import type { TraqrConfig } from './config-schema.js'; /** * Template variables derived from TraqrConfig. * Used by the template engine to replace {{VAR}} placeholders. */ export interface TemplateVars { PROJECT_NAME: string; PROJECT_DISPLAY_NAME: string; PROJECT_DESCRIPTION: string; REPO_PATH: string; WORKTREES_PATH: string; GH_ORG_REPO: string; SHIP_ENV_VAR: string; SESSION_PREFIX: string; PREFIX: string; PREFIX_UPPER: string; CO_AUTHOR: string; TIER: string; STARTER_PACK: string; AUTOMATION_SCORE: string; FRAMEWORK: string; PACKAGE_MANAGER: string; BUILD_COMMAND: string; TYPECHECK_COMMAND: string; DEPLOY_PLATFORM: string; MEMORY_API_BASE: string; MEMORY_PROVIDER: string; TRAQR_PROJECT_SLUG: string; VAULT_PATH: string; KV_PREFIX: string; ALIAS_PREFIX: string; CRON_SECRET_VAR: string; INTERNAL_API_KEY_VAR: string; PROJECT_API_BASE: string; GUARDIAN_PR_LABEL: string; TICKET_PREFIX: string; LINEAR_TEAM_ID: string; LINEAR_WORKSPACE_SLUG: string; ISSUE_PROVIDER: string; VCS_PROVIDER: string; VCS_PROJECT_ID: string; VCS_BASE_URL: string; VCS_REPO_URL: string; VCS_MR_URL_PREFIX: string; VCS_PR_NOUN: string; VCS_PR_NOUN_LONG: string; SLACK_LEVEL: string; SLACK_CHANNEL_PREFIX: string; SLACK_DEPLOY_CHANNEL: string; SLACK_TRIAGE_CHANNEL: string; SLACK_ANALYTICS_CHANNEL: string; SLACK_FEEDBACK_CHANNEL: string; SLACK_MARKETING_CHANNEL: string; SLACK_ARCHIVE_CHANNEL: string; SLACK_IDEAS_CHANNEL: string; SLACK_MEMORY_CHANNEL: string; SLACK_SIGNUPS_CHANNEL: string; SLACK_CONTROL_CENTER_CHANNEL: string; SLACK_DASHBOARD_CHANNEL: string; ERROR_TRACKING: string; ANALYTICS_PROVIDER: string; UPTIME_PROVIDER: string; EMAIL_PROVIDER: string; DESIGN_FLAVOR: string; DESIGN_PRIMARY: string; DESIGN_SECONDARY: string; DESIGN_ACCENT: string; DESIGN_BG: string; DESIGN_FG: string; DESIGN_CARD: string; DESIGN_BORDER: string; DESIGN_MUTED: string; DESIGN_DARK_BG: string; DESIGN_DARK_FG: string; DESIGN_DARK_CARD: string; DESIGN_DARK_BORDER: string; DESIGN_DARK_MUTED: string; DESIGN_FONT_SANS: string; DESIGN_FONT_MONO: string; DESIGN_GOOGLE_FONTS: string; DESIGN_RADIUS_SM: string; DESIGN_RADIUS_MD: string; DESIGN_RADIUS_LG: string; DESIGN_RADIUS_CARD: string; DESIGN_TRANSITION_DURATION: string; DESIGN_ENTRANCE_Y: string; DESIGN_HOVER_LIFT: string; DESIGN_HOVER_SCALE: string; DESIGN_SPRING_STIFFNESS: string; DESIGN_SPRING_DAMPING: string; DESIGN_SHADOW_LEVEL: string; DESIGN_APP_DISPLAY_NAME: string; CO_AUTHOR_EMAIL: string; DEMO_MODE: string; MONOREPO_APP_TABLE: string; MONOREPO_TICKET_PREFIXES: string; IS_MONOREPO: string; APP_DIR: string; APP_NAME: string; APP_DISPLAY_NAME: string; MONOREPO_ROOT: string; TRANSPILE_PACKAGES: string; WORKSPACE_DEPS: string; COMPANION_PACKAGE: string; PORT_OFFSET: string; APP_PORT: string; AUTH_PROVIDER: string; LINEAR_APP_TEAM_ID: string; LINEAR_APP_TICKET_PREFIX: string; SLACK_APP_CHANNEL_PREFIX: string; APP_SLACK_DEPLOY_CHANNEL: string; APP_SLACK_TRIAGE_CHANNEL: string; APP_SLACK_ANALYTICS_CHANNEL: string; RAQR_ART_WELCOME: string; RAQR_ART_CELEBRATE: string; RAQR_ART_ALERT: string; RAQR_ART_STRAINING: string; RAQR_ART_THINKING: string; RAQR_ART_EXCITED: string; RAQR_ART_SLEEPY: string; RAQR_ART_DIZZY: string; RAQR_ART_SAD: string; RAQR_ART_CURIOUS: string; RAQR_ART_RELIEVED: string; RAQR_ART_GREEDY: string; RAQR_ART_LOVING: string; RAQR_FRAME_START: string; RAQR_FRAME_END: string; RAQR_HR: string; RAQR_HR_MEDIUM: string; RAQR_PROGRESS_0: string; RAQR_PROGRESS_1: string; RAQR_PROGRESS_2: string; RAQR_PROGRESS_3: string; RAQR_PROGRESS_4: string; RAQR_PROGRESS_5: string; RAQR_PROGRESS_6: string; RAQR_PROGRESS_7: string; RAQR_PROGRESS_FAIL: string; SLOT_TABLE: string; SLOT_TABLE_PRINTF: string; SLOT_BASH_ARRAY: string; SLOT_PATHS: string; PORT_TABLE: string; SLOT_ALIASES_JUMP: string; SLOT_ALIASES_CLAUDE: string; SLOT_PORT_EXPORTS: string; SLOT_PORT_CASES: string; SLOT_RESET_CASES: string; SLOT_STATUS_ROWS: string; SLOT_HELP_SUMMARY: string; } /** * Generate a slot list from config. * Returns array of { name, branch, port } for all configured slots. */ export declare function generateSlots(config: TraqrConfig): Array<{ name: string; branch: string; port: number; category: 'marketing' | 'feature' | 'bugfix' | 'devops' | 'guardian' | 'analysis'; }>; /** * Build template variables from a TraqrConfig. * This is used by the /traqr-init wizard to generate all files. */ export declare function buildTemplateVars(config: TraqrConfig): TemplateVars; /** * Feature flags derived from config — used for {{#IF_FEATURE}} conditionals. */ export declare function getFeatureFlags(config: TraqrConfig): Record; /** * Replace all {{VAR}} placeholders, {{#IF_TIER_N+}}...{{/IF_TIER_N+}} conditionals, * and {{#IF_FEATURE}}...{{/IF_FEATURE}} feature conditionals in a template. * * Pass an optional `warnings` array to collect unknown variable names * instead of silently passing them through. */ export declare function renderTemplate(template: string, vars: TemplateVars, tier: number, featureFlags?: Record, warnings?: string[]): string; /** * Build template variables for a monorepo sub-app. * Overlays app-specific values on top of the base config's template vars. */ export declare function buildSubAppTemplateVars(config: TraqrConfig, appSlug: string): TemplateVars; //# sourceMappingURL=template-engine.d.ts.map