@codedrifters/configulator 0.0.196 → 0.0.197

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.d.mts CHANGED
@@ -2462,88 +2462,6 @@ declare class AwsDeployWorkflow extends Component {
2462
2462
  preSynthesize(): void;
2463
2463
  }
2464
2464
 
2465
- /**
2466
- * Configuration options for AwsCdkProject.
2467
- *
2468
- * AwsCdkProject must be parented to a `MonorepoProject` — the constructor
2469
- * throws otherwise. Configulator assumes a single-package repo is still a
2470
- * monorepo (with one workspace) so all conventions hold uniformly.
2471
- */
2472
- interface AwsCdkProjectOptions extends Omit<awscdk.AwsCdkTypeScriptAppOptions, "defaultReleaseBranch"> {
2473
- /**
2474
- * AWS deployment targets (dev / stage / prod accounts and regions). Each
2475
- * entry creates an `AwsDeploymentTarget` component on the project.
2476
- */
2477
- readonly deploymentTargets?: Array<AwsDeploymentTargetOptions>;
2478
- /**
2479
- * AWS deploy workflows. If omitted, one workflow is auto-generated per
2480
- * unique `awsStageType` present in `deploymentTargets`. Each auto-generated
2481
- * workflow renders to its own `.github/workflows/*.yml` file.
2482
- *
2483
- * Pass an empty array (`[]`) to opt out of auto-derivation entirely without
2484
- * supplying any workflows of your own — the array is truthy and short-circuits
2485
- * the default. Useful when you intend to attach deploy jobs to an existing
2486
- * build workflow yourself.
2487
- */
2488
- readonly deployWorkflows?: Array<DeployWorkflowOptions>;
2489
- /**
2490
- * Optional shared `BuildWorkflow` to attach all auto-derived deploy jobs to.
2491
- * When set, every workflow generated from `deploymentTargets` re-uses this
2492
- * build workflow instead of creating its own. Default behavior (omit) is one
2493
- * separate yml file per stage type.
2494
- *
2495
- * Distinct from `buildWorkflow: boolean` inherited from
2496
- * `AwsCdkTypeScriptAppOptions`, which toggles whether the projen-managed
2497
- * build workflow is generated at all.
2498
- */
2499
- readonly sharedBuildWorkflow?: BuildWorkflow;
2500
- /**
2501
- * Test runner to use.
2502
- *
2503
- * @default TestRunner.JEST
2504
- */
2505
- readonly testRunner?: TestRunner;
2506
- /**
2507
- * Options for Vitest (only used when testRunner is 'vitest').
2508
- */
2509
- readonly vitestOptions?: VitestOptions;
2510
- /**
2511
- * Enable the reset task that deletes all build artifacts.
2512
- *
2513
- * @default true
2514
- */
2515
- readonly resetTask?: boolean;
2516
- /**
2517
- * Options for the reset task.
2518
- */
2519
- readonly resetTaskOptions?: ResetTaskOptions;
2520
- /**
2521
- * AI agent configuration (Cursor, Claude Code rules). Opt-in per project;
2522
- * not inherited from the parent `MonorepoProject`.
2523
- *
2524
- * @default false
2525
- */
2526
- readonly agentConfig?: AgentConfigOptions | boolean;
2527
- }
2528
- /**
2529
- * AWS CDK TypeScript application with CodeDrifters conventions baked in.
2530
- *
2531
- * Always creates an `AwsDeploymentConfig` component (even with zero deployment
2532
- * targets) so the `synth` task is consistently rewritten to emit into
2533
- * `dist/<project-path>/cdk.out`. This is intentional and not opt-out: it
2534
- * funnels every package's CDK output into one root-level `dist/` tree so
2535
- * GitHub Actions workflows can pass artifacts between jobs uniformly.
2536
- */
2537
- declare class AwsCdkProject extends awscdk.AwsCdkTypeScriptApp {
2538
- constructor(userOptions: AwsCdkProjectOptions);
2539
- /**
2540
- * Add an AWS deployment target to this project after construction. The
2541
- * target is registered on the existing `AwsDeploymentConfig` and immediately
2542
- * available for `AwsDeployWorkflow` consumption.
2543
- */
2544
- addDeploymentTarget(options: AwsDeploymentTargetOptions): AwsDeploymentTarget;
2545
- }
2546
-
2547
2465
  /**
2548
2466
  * Each of the below options corresponds to a task property found here:
2549
2467
  * * https://turborepo.com/docs/reference/configuration#defining-tasks
@@ -3150,6 +3068,140 @@ declare class MonorepoProject extends TypeScriptAppProject {
3150
3068
  postSynthesize(): void;
3151
3069
  }
3152
3070
 
3071
+ /**
3072
+ * Default branch-delete patterns that trigger the teardown workflow.
3073
+ */
3074
+ declare const DEFAULT_TEARDOWN_BRANCH_PATTERNS: ReadonlyArray<string>;
3075
+ /**
3076
+ * Options for {@link AwsTeardownWorkflow}.
3077
+ */
3078
+ interface AwsTeardownWorkflowOptions {
3079
+ /**
3080
+ * Targets to scan for orphaned CloudFormation stacks.
3081
+ */
3082
+ readonly awsDestructionTargets: Array<AwsDeploymentTarget>;
3083
+ /**
3084
+ * Name of the tag containing the repo name. Used to find CloudFormation
3085
+ * stacks associated with this repo.
3086
+ */
3087
+ readonly repoTagName: string;
3088
+ /**
3089
+ * Name of the tag containing the stage type (e.g. dev, stage, prod).
3090
+ */
3091
+ readonly stageTypeTagName: string;
3092
+ /**
3093
+ * Name of the tag containing the environment type (e.g. primary, secondary).
3094
+ */
3095
+ readonly environmentTypeTagName: string;
3096
+ /**
3097
+ * Name of the tag where branch names are stored. Used to determine if a
3098
+ * stack is orphaned (no matching branch).
3099
+ */
3100
+ readonly branchNameTagName: string;
3101
+ /**
3102
+ * Branch patterns whose deletion triggers the teardown workflow.
3103
+ *
3104
+ * @default ["feat/*", "fix/*", "feature/*"]
3105
+ */
3106
+ readonly deleteBranchPatterns?: Array<string>;
3107
+ }
3108
+ /**
3109
+ * Scheduled GitHub Actions workflow that tears down orphaned CloudFormation
3110
+ * stacks whose associated branch no longer exists.
3111
+ */
3112
+ declare class AwsTeardownWorkflow extends Component {
3113
+ rootProject: MonorepoProject;
3114
+ constructor(rootProject: MonorepoProject, options: AwsTeardownWorkflowOptions);
3115
+ }
3116
+
3117
+ /**
3118
+ * Configuration options for AwsCdkProject.
3119
+ *
3120
+ * AwsCdkProject must be parented to a `MonorepoProject` — the constructor
3121
+ * throws otherwise. Configulator assumes a single-package repo is still a
3122
+ * monorepo (with one workspace) so all conventions hold uniformly.
3123
+ */
3124
+ interface AwsCdkProjectOptions extends Omit<awscdk.AwsCdkTypeScriptAppOptions, "defaultReleaseBranch"> {
3125
+ /**
3126
+ * AWS deployment targets (dev / stage / prod accounts and regions). Each
3127
+ * entry creates an `AwsDeploymentTarget` component on the project.
3128
+ */
3129
+ readonly deploymentTargets?: Array<AwsDeploymentTargetOptions>;
3130
+ /**
3131
+ * AWS deploy workflows. If omitted, one workflow is auto-generated per
3132
+ * unique `awsStageType` present in `deploymentTargets`. Each auto-generated
3133
+ * workflow renders to its own `.github/workflows/*.yml` file.
3134
+ *
3135
+ * Pass an empty array (`[]`) to opt out of auto-derivation entirely without
3136
+ * supplying any workflows of your own — the array is truthy and short-circuits
3137
+ * the default. Useful when you intend to attach deploy jobs to an existing
3138
+ * build workflow yourself.
3139
+ */
3140
+ readonly deployWorkflows?: Array<DeployWorkflowOptions>;
3141
+ /**
3142
+ * Optional shared `BuildWorkflow` to attach all auto-derived deploy jobs to.
3143
+ * When set, every workflow generated from `deploymentTargets` re-uses this
3144
+ * build workflow instead of creating its own. Default behavior (omit) is one
3145
+ * separate yml file per stage type.
3146
+ *
3147
+ * Distinct from `buildWorkflow: boolean` inherited from
3148
+ * `AwsCdkTypeScriptAppOptions`, which toggles whether the projen-managed
3149
+ * build workflow is generated at all.
3150
+ */
3151
+ readonly sharedBuildWorkflow?: BuildWorkflow;
3152
+ /**
3153
+ * Test runner to use.
3154
+ *
3155
+ * @default TestRunner.JEST
3156
+ */
3157
+ readonly testRunner?: TestRunner;
3158
+ /**
3159
+ * Options for Vitest (only used when testRunner is 'vitest').
3160
+ */
3161
+ readonly vitestOptions?: VitestOptions;
3162
+ /**
3163
+ * Enable the reset task that deletes all build artifacts.
3164
+ *
3165
+ * @default true
3166
+ */
3167
+ readonly resetTask?: boolean;
3168
+ /**
3169
+ * Options for the reset task.
3170
+ */
3171
+ readonly resetTaskOptions?: ResetTaskOptions;
3172
+ /**
3173
+ * AI agent configuration (Cursor, Claude Code rules). Opt-in per project;
3174
+ * not inherited from the parent `MonorepoProject`.
3175
+ *
3176
+ * @default false
3177
+ */
3178
+ readonly agentConfig?: AgentConfigOptions | boolean;
3179
+ /**
3180
+ * Scheduled teardown workflow options. When provided, an `AwsTeardownWorkflow`
3181
+ * is attached to the parent `MonorepoProject` that periodically deletes
3182
+ * orphaned CloudFormation stacks whose branch no longer exists.
3183
+ */
3184
+ readonly teardownWorkflow?: AwsTeardownWorkflowOptions;
3185
+ }
3186
+ /**
3187
+ * AWS CDK TypeScript application with CodeDrifters conventions baked in.
3188
+ *
3189
+ * Always creates an `AwsDeploymentConfig` component (even with zero deployment
3190
+ * targets) so the `synth` task is consistently rewritten to emit into
3191
+ * `dist/<project-path>/cdk.out`. This is intentional and not opt-out: it
3192
+ * funnels every package's CDK output into one root-level `dist/` tree so
3193
+ * GitHub Actions workflows can pass artifacts between jobs uniformly.
3194
+ */
3195
+ declare class AwsCdkProject extends awscdk.AwsCdkTypeScriptApp {
3196
+ constructor(userOptions: AwsCdkProjectOptions);
3197
+ /**
3198
+ * Add an AWS deployment target to this project after construction. The
3199
+ * target is registered on the existing `AwsDeploymentConfig` and immediately
3200
+ * available for `AwsDeployWorkflow` consumption.
3201
+ */
3202
+ addDeploymentTarget(options: AwsDeploymentTargetOptions): AwsDeploymentTarget;
3203
+ }
3204
+
3153
3205
  /**
3154
3206
  * Provides structured project metadata consumed by AgentConfig, skills,
3155
3207
  * and other configulator features at synthesis time.
@@ -3218,4 +3270,4 @@ declare const COMPLETE_JOB_ID = "complete";
3218
3270
  */
3219
3271
  declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
3220
3272
 
3221
- export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, type AgentConfigOptions, type AgentModel, type AgentPlatform, type AgentPlatformOverrides, type AgentProcedure, type AgentRule, type AgentRuleBundle, type AgentRuleScope, type AgentSkill, type AgentSubAgent, type AgentSubAgentPlatformOverrides, type ApproveMergeUpgradeOptions, AstroConfig, type AstroConfigOptions, type AstroIntegrationSpec, AstroOutput, AstroProject, type AstroProjectOptions, type AwsAccount, AwsCdkProject, type AwsCdkProjectOptions, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, type AwsDeploymentTargetOptions, type AwsLocalDeploymentConfig, type AwsOrganization, type AwsRegion, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, type CiDeploymentConfig, type ClassTypeOptions, type ClaudeAutoModeConfig, type ClaudeHookAction, type ClaudeHookEntry, type ClaudeHooksConfig, type ClaudePermissionsConfig, type ClaudeRuleTarget, type ClaudeSandboxConfig, type ClaudeSettingsConfig, type CopilotHandoff, type CursorHookAction, type CursorHooksConfig, type CursorSettingsConfig, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, DEFAULT_TYPE_LABELS, type DeployWorkflowOptions, type DeploymentMetadata, type GitBranch, type GitHubBoardMetadata, type GitHubProjectMetadata, type GitHubSprintMetadata, type IDependencyResolver, JsiiFaker, type LabelDefinition, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, type McpServerConfig, type McpTransport, type MergeMethod, MonorepoProject, type MonorepoProjectOptions, type OrganizationMetadata, PROD_DEPLOY_NAME, PnpmWorkspace, type PnpmWorkspaceOptions, ProjectMetadata, type ProjectMetadataOptions, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, type RemoteCacheOptions, type RepositoryMetadata, ResetTask, type ResetTaskOptions, type ResolvedProjectMetadata, type SlackMetadata, type SyncLabelsOptions, type TemplateResolveResult, TestRunner, TurboRepo, type TurboRepoOptions, TurboRepoTask, type TurboRepoTaskOptions, TypeScriptConfig, TypeScriptProject, type TypeScriptProjectOptions, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, type VersionKey, Vitest, type VitestConfigOptions, type VitestOptions, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, awsCdkBundle, baseBundle, getLatestEligibleVersion, githubWorkflowBundle, jestBundle, meetingAnalysisBundle, orchestratorBundle, pnpmBundle, projenBundle, resolveModelAlias, resolveTemplateVariables, slackBundle, turborepoBundle, typescriptBundle, vitestBundle };
3273
+ export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, type AgentConfigOptions, type AgentModel, type AgentPlatform, type AgentPlatformOverrides, type AgentProcedure, type AgentRule, type AgentRuleBundle, type AgentRuleScope, type AgentSkill, type AgentSubAgent, type AgentSubAgentPlatformOverrides, type ApproveMergeUpgradeOptions, AstroConfig, type AstroConfigOptions, type AstroIntegrationSpec, AstroOutput, AstroProject, type AstroProjectOptions, type AwsAccount, AwsCdkProject, type AwsCdkProjectOptions, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, type AwsDeploymentTargetOptions, type AwsLocalDeploymentConfig, type AwsOrganization, type AwsRegion, AwsTeardownWorkflow, type AwsTeardownWorkflowOptions, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, type CiDeploymentConfig, type ClassTypeOptions, type ClaudeAutoModeConfig, type ClaudeHookAction, type ClaudeHookEntry, type ClaudeHooksConfig, type ClaudePermissionsConfig, type ClaudeRuleTarget, type ClaudeSandboxConfig, type ClaudeSettingsConfig, type CopilotHandoff, type CursorHookAction, type CursorHooksConfig, type CursorSettingsConfig, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, DEFAULT_TEARDOWN_BRANCH_PATTERNS, DEFAULT_TYPE_LABELS, type DeployWorkflowOptions, type DeploymentMetadata, type GitBranch, type GitHubBoardMetadata, type GitHubProjectMetadata, type GitHubSprintMetadata, type IDependencyResolver, JsiiFaker, type LabelDefinition, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, type McpServerConfig, type McpTransport, type MergeMethod, MonorepoProject, type MonorepoProjectOptions, type OrganizationMetadata, PROD_DEPLOY_NAME, PnpmWorkspace, type PnpmWorkspaceOptions, ProjectMetadata, type ProjectMetadataOptions, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, type RemoteCacheOptions, type RepositoryMetadata, ResetTask, type ResetTaskOptions, type ResolvedProjectMetadata, type SlackMetadata, type SyncLabelsOptions, type TemplateResolveResult, TestRunner, TurboRepo, type TurboRepoOptions, TurboRepoTask, type TurboRepoTaskOptions, TypeScriptConfig, TypeScriptProject, type TypeScriptProjectOptions, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, type VersionKey, Vitest, type VitestConfigOptions, type VitestOptions, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, awsCdkBundle, baseBundle, getLatestEligibleVersion, githubWorkflowBundle, jestBundle, meetingAnalysisBundle, orchestratorBundle, pnpmBundle, projenBundle, resolveModelAlias, resolveTemplateVariables, slackBundle, turborepoBundle, typescriptBundle, vitestBundle };
package/lib/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import { Project as Project$1, Task, Component as Component$1 } from 'projen/lib
3
3
  import { NodeProject } from 'projen/lib/javascript';
4
4
  import { AwsCdkTypeScriptApp } from 'projen/lib/awscdk';
5
5
  import * as spec from '@jsii/spec';
6
- import { TypeScriptProject as TypeScriptProject$1, TypeScriptAppProject, TypeScriptProjectOptions as TypeScriptProjectOptions$1 } from 'projen/lib/typescript';
6
+ import { TypeScriptAppProject, TypeScriptProjectOptions as TypeScriptProjectOptions$1, TypeScriptProject as TypeScriptProject$1 } from 'projen/lib/typescript';
7
7
  import { ValueOf } from 'type-fest';
8
8
  import { BuildWorkflow, BuildWorkflowOptions } from 'projen/lib/build';
9
9
  import { JobStep } from 'projen/lib/github/workflows-model';
@@ -2511,88 +2511,6 @@ declare class AwsDeployWorkflow extends Component {
2511
2511
  preSynthesize(): void;
2512
2512
  }
2513
2513
 
2514
- /**
2515
- * Configuration options for AwsCdkProject.
2516
- *
2517
- * AwsCdkProject must be parented to a `MonorepoProject` — the constructor
2518
- * throws otherwise. Configulator assumes a single-package repo is still a
2519
- * monorepo (with one workspace) so all conventions hold uniformly.
2520
- */
2521
- interface AwsCdkProjectOptions extends Omit<awscdk.AwsCdkTypeScriptAppOptions, "defaultReleaseBranch"> {
2522
- /**
2523
- * AWS deployment targets (dev / stage / prod accounts and regions). Each
2524
- * entry creates an `AwsDeploymentTarget` component on the project.
2525
- */
2526
- readonly deploymentTargets?: Array<AwsDeploymentTargetOptions>;
2527
- /**
2528
- * AWS deploy workflows. If omitted, one workflow is auto-generated per
2529
- * unique `awsStageType` present in `deploymentTargets`. Each auto-generated
2530
- * workflow renders to its own `.github/workflows/*.yml` file.
2531
- *
2532
- * Pass an empty array (`[]`) to opt out of auto-derivation entirely without
2533
- * supplying any workflows of your own — the array is truthy and short-circuits
2534
- * the default. Useful when you intend to attach deploy jobs to an existing
2535
- * build workflow yourself.
2536
- */
2537
- readonly deployWorkflows?: Array<DeployWorkflowOptions>;
2538
- /**
2539
- * Optional shared `BuildWorkflow` to attach all auto-derived deploy jobs to.
2540
- * When set, every workflow generated from `deploymentTargets` re-uses this
2541
- * build workflow instead of creating its own. Default behavior (omit) is one
2542
- * separate yml file per stage type.
2543
- *
2544
- * Distinct from `buildWorkflow: boolean` inherited from
2545
- * `AwsCdkTypeScriptAppOptions`, which toggles whether the projen-managed
2546
- * build workflow is generated at all.
2547
- */
2548
- readonly sharedBuildWorkflow?: BuildWorkflow;
2549
- /**
2550
- * Test runner to use.
2551
- *
2552
- * @default TestRunner.JEST
2553
- */
2554
- readonly testRunner?: TestRunner;
2555
- /**
2556
- * Options for Vitest (only used when testRunner is 'vitest').
2557
- */
2558
- readonly vitestOptions?: VitestOptions;
2559
- /**
2560
- * Enable the reset task that deletes all build artifacts.
2561
- *
2562
- * @default true
2563
- */
2564
- readonly resetTask?: boolean;
2565
- /**
2566
- * Options for the reset task.
2567
- */
2568
- readonly resetTaskOptions?: ResetTaskOptions;
2569
- /**
2570
- * AI agent configuration (Cursor, Claude Code rules). Opt-in per project;
2571
- * not inherited from the parent `MonorepoProject`.
2572
- *
2573
- * @default false
2574
- */
2575
- readonly agentConfig?: AgentConfigOptions | boolean;
2576
- }
2577
- /**
2578
- * AWS CDK TypeScript application with CodeDrifters conventions baked in.
2579
- *
2580
- * Always creates an `AwsDeploymentConfig` component (even with zero deployment
2581
- * targets) so the `synth` task is consistently rewritten to emit into
2582
- * `dist/<project-path>/cdk.out`. This is intentional and not opt-out: it
2583
- * funnels every package's CDK output into one root-level `dist/` tree so
2584
- * GitHub Actions workflows can pass artifacts between jobs uniformly.
2585
- */
2586
- declare class AwsCdkProject extends awscdk.AwsCdkTypeScriptApp {
2587
- constructor(userOptions: AwsCdkProjectOptions);
2588
- /**
2589
- * Add an AWS deployment target to this project after construction. The
2590
- * target is registered on the existing `AwsDeploymentConfig` and immediately
2591
- * available for `AwsDeployWorkflow` consumption.
2592
- */
2593
- addDeploymentTarget(options: AwsDeploymentTargetOptions): AwsDeploymentTarget;
2594
- }
2595
-
2596
2514
  /**
2597
2515
  * Each of the below options corresponds to a task property found here:
2598
2516
  * * https://turborepo.com/docs/reference/configuration#defining-tasks
@@ -3199,6 +3117,140 @@ declare class MonorepoProject extends TypeScriptAppProject {
3199
3117
  postSynthesize(): void;
3200
3118
  }
3201
3119
 
3120
+ /**
3121
+ * Default branch-delete patterns that trigger the teardown workflow.
3122
+ */
3123
+ declare const DEFAULT_TEARDOWN_BRANCH_PATTERNS: ReadonlyArray<string>;
3124
+ /**
3125
+ * Options for {@link AwsTeardownWorkflow}.
3126
+ */
3127
+ interface AwsTeardownWorkflowOptions {
3128
+ /**
3129
+ * Targets to scan for orphaned CloudFormation stacks.
3130
+ */
3131
+ readonly awsDestructionTargets: Array<AwsDeploymentTarget>;
3132
+ /**
3133
+ * Name of the tag containing the repo name. Used to find CloudFormation
3134
+ * stacks associated with this repo.
3135
+ */
3136
+ readonly repoTagName: string;
3137
+ /**
3138
+ * Name of the tag containing the stage type (e.g. dev, stage, prod).
3139
+ */
3140
+ readonly stageTypeTagName: string;
3141
+ /**
3142
+ * Name of the tag containing the environment type (e.g. primary, secondary).
3143
+ */
3144
+ readonly environmentTypeTagName: string;
3145
+ /**
3146
+ * Name of the tag where branch names are stored. Used to determine if a
3147
+ * stack is orphaned (no matching branch).
3148
+ */
3149
+ readonly branchNameTagName: string;
3150
+ /**
3151
+ * Branch patterns whose deletion triggers the teardown workflow.
3152
+ *
3153
+ * @default ["feat/*", "fix/*", "feature/*"]
3154
+ */
3155
+ readonly deleteBranchPatterns?: Array<string>;
3156
+ }
3157
+ /**
3158
+ * Scheduled GitHub Actions workflow that tears down orphaned CloudFormation
3159
+ * stacks whose associated branch no longer exists.
3160
+ */
3161
+ declare class AwsTeardownWorkflow extends Component {
3162
+ rootProject: MonorepoProject;
3163
+ constructor(rootProject: MonorepoProject, options: AwsTeardownWorkflowOptions);
3164
+ }
3165
+
3166
+ /**
3167
+ * Configuration options for AwsCdkProject.
3168
+ *
3169
+ * AwsCdkProject must be parented to a `MonorepoProject` — the constructor
3170
+ * throws otherwise. Configulator assumes a single-package repo is still a
3171
+ * monorepo (with one workspace) so all conventions hold uniformly.
3172
+ */
3173
+ interface AwsCdkProjectOptions extends Omit<awscdk.AwsCdkTypeScriptAppOptions, "defaultReleaseBranch"> {
3174
+ /**
3175
+ * AWS deployment targets (dev / stage / prod accounts and regions). Each
3176
+ * entry creates an `AwsDeploymentTarget` component on the project.
3177
+ */
3178
+ readonly deploymentTargets?: Array<AwsDeploymentTargetOptions>;
3179
+ /**
3180
+ * AWS deploy workflows. If omitted, one workflow is auto-generated per
3181
+ * unique `awsStageType` present in `deploymentTargets`. Each auto-generated
3182
+ * workflow renders to its own `.github/workflows/*.yml` file.
3183
+ *
3184
+ * Pass an empty array (`[]`) to opt out of auto-derivation entirely without
3185
+ * supplying any workflows of your own — the array is truthy and short-circuits
3186
+ * the default. Useful when you intend to attach deploy jobs to an existing
3187
+ * build workflow yourself.
3188
+ */
3189
+ readonly deployWorkflows?: Array<DeployWorkflowOptions>;
3190
+ /**
3191
+ * Optional shared `BuildWorkflow` to attach all auto-derived deploy jobs to.
3192
+ * When set, every workflow generated from `deploymentTargets` re-uses this
3193
+ * build workflow instead of creating its own. Default behavior (omit) is one
3194
+ * separate yml file per stage type.
3195
+ *
3196
+ * Distinct from `buildWorkflow: boolean` inherited from
3197
+ * `AwsCdkTypeScriptAppOptions`, which toggles whether the projen-managed
3198
+ * build workflow is generated at all.
3199
+ */
3200
+ readonly sharedBuildWorkflow?: BuildWorkflow;
3201
+ /**
3202
+ * Test runner to use.
3203
+ *
3204
+ * @default TestRunner.JEST
3205
+ */
3206
+ readonly testRunner?: TestRunner;
3207
+ /**
3208
+ * Options for Vitest (only used when testRunner is 'vitest').
3209
+ */
3210
+ readonly vitestOptions?: VitestOptions;
3211
+ /**
3212
+ * Enable the reset task that deletes all build artifacts.
3213
+ *
3214
+ * @default true
3215
+ */
3216
+ readonly resetTask?: boolean;
3217
+ /**
3218
+ * Options for the reset task.
3219
+ */
3220
+ readonly resetTaskOptions?: ResetTaskOptions;
3221
+ /**
3222
+ * AI agent configuration (Cursor, Claude Code rules). Opt-in per project;
3223
+ * not inherited from the parent `MonorepoProject`.
3224
+ *
3225
+ * @default false
3226
+ */
3227
+ readonly agentConfig?: AgentConfigOptions | boolean;
3228
+ /**
3229
+ * Scheduled teardown workflow options. When provided, an `AwsTeardownWorkflow`
3230
+ * is attached to the parent `MonorepoProject` that periodically deletes
3231
+ * orphaned CloudFormation stacks whose branch no longer exists.
3232
+ */
3233
+ readonly teardownWorkflow?: AwsTeardownWorkflowOptions;
3234
+ }
3235
+ /**
3236
+ * AWS CDK TypeScript application with CodeDrifters conventions baked in.
3237
+ *
3238
+ * Always creates an `AwsDeploymentConfig` component (even with zero deployment
3239
+ * targets) so the `synth` task is consistently rewritten to emit into
3240
+ * `dist/<project-path>/cdk.out`. This is intentional and not opt-out: it
3241
+ * funnels every package's CDK output into one root-level `dist/` tree so
3242
+ * GitHub Actions workflows can pass artifacts between jobs uniformly.
3243
+ */
3244
+ declare class AwsCdkProject extends awscdk.AwsCdkTypeScriptApp {
3245
+ constructor(userOptions: AwsCdkProjectOptions);
3246
+ /**
3247
+ * Add an AWS deployment target to this project after construction. The
3248
+ * target is registered on the existing `AwsDeploymentConfig` and immediately
3249
+ * available for `AwsDeployWorkflow` consumption.
3250
+ */
3251
+ addDeploymentTarget(options: AwsDeploymentTargetOptions): AwsDeploymentTarget;
3252
+ }
3253
+
3202
3254
  /**
3203
3255
  * Provides structured project metadata consumed by AgentConfig, skills,
3204
3256
  * and other configulator features at synthesis time.
@@ -3267,5 +3319,5 @@ declare const COMPLETE_JOB_ID = "complete";
3267
3319
  */
3268
3320
  declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
3269
3321
 
3270
- export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, AstroConfig, AstroOutput, AstroProject, AwsCdkProject, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, DEFAULT_TYPE_LABELS, JsiiFaker, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MonorepoProject, PROD_DEPLOY_NAME, PnpmWorkspace, ProjectMetadata, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, ResetTask, TestRunner, TurboRepo, TurboRepoTask, TypeScriptConfig, TypeScriptProject, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, Vitest, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, awsCdkBundle, baseBundle, getLatestEligibleVersion, githubWorkflowBundle, jestBundle, meetingAnalysisBundle, orchestratorBundle, pnpmBundle, projenBundle, resolveModelAlias, resolveTemplateVariables, slackBundle, turborepoBundle, typescriptBundle, vitestBundle };
3271
- export type { AgentConfigOptions, AgentModel, AgentPlatform, AgentPlatformOverrides, AgentProcedure, AgentRule, AgentRuleBundle, AgentRuleScope, AgentSkill, AgentSubAgent, AgentSubAgentPlatformOverrides, ApproveMergeUpgradeOptions, AstroConfigOptions, AstroIntegrationSpec, AstroProjectOptions, AwsAccount, AwsCdkProjectOptions, AwsDeploymentTargetOptions, AwsLocalDeploymentConfig, AwsOrganization, AwsRegion, CiDeploymentConfig, ClassTypeOptions, ClaudeAutoModeConfig, ClaudeHookAction, ClaudeHookEntry, ClaudeHooksConfig, ClaudePermissionsConfig, ClaudeRuleTarget, ClaudeSandboxConfig, ClaudeSettingsConfig, CopilotHandoff, CursorHookAction, CursorHooksConfig, CursorSettingsConfig, DeployWorkflowOptions, DeploymentMetadata, GitBranch, GitHubBoardMetadata, GitHubProjectMetadata, GitHubSprintMetadata, IDependencyResolver, LabelDefinition, McpServerConfig, McpTransport, MergeMethod, MonorepoProjectOptions, OrganizationMetadata, PnpmWorkspaceOptions, ProjectMetadataOptions, RemoteCacheOptions, RepositoryMetadata, ResetTaskOptions, ResolvedProjectMetadata, SlackMetadata, SyncLabelsOptions, TemplateResolveResult, TurboRepoOptions, TurboRepoTaskOptions, TypeScriptProjectOptions, VersionKey, VitestConfigOptions, VitestOptions };
3322
+ export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, AstroConfig, AstroOutput, AstroProject, AwsCdkProject, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, AwsTeardownWorkflow, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, DEFAULT_TEARDOWN_BRANCH_PATTERNS, DEFAULT_TYPE_LABELS, JsiiFaker, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MonorepoProject, PROD_DEPLOY_NAME, PnpmWorkspace, ProjectMetadata, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, ResetTask, TestRunner, TurboRepo, TurboRepoTask, TypeScriptConfig, TypeScriptProject, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, Vitest, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, awsCdkBundle, baseBundle, getLatestEligibleVersion, githubWorkflowBundle, jestBundle, meetingAnalysisBundle, orchestratorBundle, pnpmBundle, projenBundle, resolveModelAlias, resolveTemplateVariables, slackBundle, turborepoBundle, typescriptBundle, vitestBundle };
3323
+ export type { AgentConfigOptions, AgentModel, AgentPlatform, AgentPlatformOverrides, AgentProcedure, AgentRule, AgentRuleBundle, AgentRuleScope, AgentSkill, AgentSubAgent, AgentSubAgentPlatformOverrides, ApproveMergeUpgradeOptions, AstroConfigOptions, AstroIntegrationSpec, AstroProjectOptions, AwsAccount, AwsCdkProjectOptions, AwsDeploymentTargetOptions, AwsLocalDeploymentConfig, AwsOrganization, AwsRegion, AwsTeardownWorkflowOptions, CiDeploymentConfig, ClassTypeOptions, ClaudeAutoModeConfig, ClaudeHookAction, ClaudeHookEntry, ClaudeHooksConfig, ClaudePermissionsConfig, ClaudeRuleTarget, ClaudeSandboxConfig, ClaudeSettingsConfig, CopilotHandoff, CursorHookAction, CursorHooksConfig, CursorSettingsConfig, DeployWorkflowOptions, DeploymentMetadata, GitBranch, GitHubBoardMetadata, GitHubProjectMetadata, GitHubSprintMetadata, IDependencyResolver, LabelDefinition, McpServerConfig, McpTransport, MergeMethod, MonorepoProjectOptions, OrganizationMetadata, PnpmWorkspaceOptions, ProjectMetadataOptions, RemoteCacheOptions, RepositoryMetadata, ResetTaskOptions, ResolvedProjectMetadata, SlackMetadata, SyncLabelsOptions, TemplateResolveResult, TurboRepoOptions, TurboRepoTaskOptions, TypeScriptProjectOptions, VersionKey, VitestConfigOptions, VitestOptions };