@codedrifters/configulator 0.0.191 → 0.0.193

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
@@ -1,12 +1,12 @@
1
1
  import { Component, Project as Project$1, typescript } from 'projen';
2
2
  import { Project, Component as Component$1, Task } from 'projen/lib';
3
+ import { NodeProject } from 'projen/lib/javascript';
3
4
  import { AwsCdkTypeScriptApp } from 'projen/lib/awscdk';
4
5
  import { AwsStageType, DeploymentTargetRoleType, AwsEnvironmentType, AWS_STAGE_TYPE } from '@codedrifters/utils';
5
6
  import * as spec from '@jsii/spec';
6
7
  import { TypeScriptProject as TypeScriptProject$1, TypeScriptAppProject, TypeScriptProjectOptions as TypeScriptProjectOptions$1 } from 'projen/lib/typescript';
7
8
  import { ValueOf } from 'type-fest';
8
9
  import { BuildWorkflowOptions, BuildWorkflow } from 'projen/lib/build';
9
- import { NodeProject } from 'projen/lib/javascript';
10
10
  import { JobStep } from 'projen/lib/github/workflows-model';
11
11
 
12
12
  /**
@@ -390,6 +390,56 @@ interface McpServerConfig {
390
390
  readonly disabledTools?: ReadonlyArray<string>;
391
391
  }
392
392
 
393
+ /** A single GitHub label definition for EndBug/label-sync. */
394
+ interface LabelDefinition {
395
+ /** Label name (e.g. "priority:high"). */
396
+ readonly name: string;
397
+ /** Hex color without the leading `#` (e.g. "B60205"). */
398
+ readonly color: string;
399
+ /** Short description shown in the GitHub UI. */
400
+ readonly description: string;
401
+ }
402
+ /** Options for the sync-labels workflow and labels config file. */
403
+ interface SyncLabelsOptions {
404
+ /**
405
+ * Additional labels to sync alongside the standard defaults.
406
+ * Merged with DEFAULT_STATUS_LABELS, DEFAULT_PRIORITY_LABELS, and
407
+ * DEFAULT_TYPE_LABELS (standard labels are always included).
408
+ */
409
+ readonly labels?: ReadonlyArray<LabelDefinition>;
410
+ /**
411
+ * Remove labels from the repo that are not in the config file.
412
+ * @default true
413
+ */
414
+ readonly deleteOtherLabels?: boolean;
415
+ /**
416
+ * Workflow file name (display name in the Actions tab).
417
+ * @default "sync-labels"
418
+ */
419
+ readonly workflowName?: string;
420
+ /**
421
+ * Agent bundles whose contributed labels should be merged into
422
+ * `.github/labels.yml`. Typically populated by the project type from
423
+ * `AgentConfig.of(project)?.activeBundles` so bundle-supplied labels
424
+ * only appear when the bundle is actually enabled.
425
+ *
426
+ * Merge order: Tier 1 defaults → bundle labels → user-supplied `labels`
427
+ * (later entries override earlier ones on name collision).
428
+ */
429
+ readonly bundles?: ReadonlyArray<AgentRuleBundle>;
430
+ }
431
+ /** Default status labels. */
432
+ declare const DEFAULT_STATUS_LABELS: ReadonlyArray<LabelDefinition>;
433
+ /** Default priority labels. */
434
+ declare const DEFAULT_PRIORITY_LABELS: ReadonlyArray<LabelDefinition>;
435
+ /** Default type labels — one per conventional commit type. */
436
+ declare const DEFAULT_TYPE_LABELS: ReadonlyArray<LabelDefinition>;
437
+ /**
438
+ * Adds a labels config file and a GitHub Actions workflow that syncs
439
+ * labels to the repository using EndBug/label-sync.
440
+ */
441
+ declare function addSyncLabelsWorkflow(project: NodeProject, options: SyncLabelsOptions): void;
442
+
393
443
  /*******************************************************************************
394
444
  *
395
445
  * Agent Rule Bundle
@@ -448,6 +498,15 @@ interface AgentRuleBundle {
448
498
  readonly allow?: ReadonlyArray<string>;
449
499
  readonly deny?: ReadonlyArray<string>;
450
500
  };
501
+ /**
502
+ * GitHub labels contributed by this bundle. When the bundle is active in a
503
+ * project that also uses the sync-labels workflow, these labels are merged
504
+ * into `.github/labels.yml` alongside the Tier 1 defaults.
505
+ *
506
+ * User-supplied labels (via `SyncLabelsOptions.labels`) override bundle
507
+ * labels on name collision.
508
+ */
509
+ readonly labels?: ReadonlyArray<LabelDefinition>;
451
510
  }
452
511
  /*******************************************************************************
453
512
  *
@@ -882,6 +941,15 @@ declare class AgentConfig extends Component {
882
941
  private static mergeClaudeDefaults;
883
942
  private readonly options;
884
943
  constructor(project: Project$1, options?: AgentConfigOptions);
944
+ /**
945
+ * Returns the bundles that are active for this project: auto-detected
946
+ * bundles (when `autoDetectBundles !== false`) plus force-included
947
+ * bundles, minus explicitly excluded bundles. Deduplicated by name.
948
+ *
949
+ * Exposed so sibling components (e.g. the sync-labels workflow) can
950
+ * consume bundle-contributed configuration.
951
+ */
952
+ get activeBundles(): ReadonlyArray<AgentRuleBundle>;
885
953
  preSynthesize(): void;
886
954
  private resolvePlatforms;
887
955
  private resolveRules;
@@ -1247,6 +1315,100 @@ interface TemplateResolveResult {
1247
1315
  */
1248
1316
  declare function resolveTemplateVariables(template: string, metadata: ResolvedProjectMetadata | undefined): TemplateResolveResult;
1249
1317
 
1318
+ /**
1319
+ * Astro output mode.
1320
+ *
1321
+ * @see https://docs.astro.build/en/reference/configuration-reference/#output
1322
+ */
1323
+ declare const AstroOutput: {
1324
+ readonly STATIC: "static";
1325
+ readonly SERVER: "server";
1326
+ readonly HYBRID: "hybrid";
1327
+ };
1328
+ type AstroOutput = (typeof AstroOutput)[keyof typeof AstroOutput];
1329
+ /**
1330
+ * Declarative spec for an Astro integration or adapter import.
1331
+ *
1332
+ * Rendered into `astro.config.mjs` as an import plus an invocation in
1333
+ * the `integrations` array (or as the `adapter` field).
1334
+ */
1335
+ interface AstroIntegrationSpec {
1336
+ /**
1337
+ * Local binding used in the generated config, e.g. "react".
1338
+ */
1339
+ readonly name: string;
1340
+ /**
1341
+ * Module to import from, e.g. "@astrojs/react".
1342
+ */
1343
+ readonly importPath: string;
1344
+ /**
1345
+ * Raw argument expression passed to the integration call.
1346
+ *
1347
+ * Written verbatim inside the parentheses, e.g. `"{ include: ['**\/*.tsx'] }"`.
1348
+ * When omitted the integration is invoked with no arguments.
1349
+ */
1350
+ readonly args?: string;
1351
+ /**
1352
+ * When true, use a default import (`import name from ...`).
1353
+ * When false or omitted, use a named import (`import { name } from ...`).
1354
+ *
1355
+ * @default true
1356
+ */
1357
+ readonly defaultImport?: boolean;
1358
+ }
1359
+ /**
1360
+ * Options controlling the rendered `astro.config.mjs`.
1361
+ */
1362
+ interface AstroConfigOptions {
1363
+ /**
1364
+ * Site URL (used for canonical URLs, sitemaps, RSS).
1365
+ */
1366
+ readonly site?: string;
1367
+ /**
1368
+ * Base path the site is deployed under.
1369
+ */
1370
+ readonly base?: string;
1371
+ /**
1372
+ * Output mode.
1373
+ *
1374
+ * @default AstroOutput.STATIC
1375
+ */
1376
+ readonly output?: AstroOutput;
1377
+ /**
1378
+ * Integrations rendered into the `integrations` array.
1379
+ */
1380
+ readonly integrations?: Array<AstroIntegrationSpec>;
1381
+ /**
1382
+ * SSR adapter rendered into the `adapter` field.
1383
+ */
1384
+ readonly adapter?: AstroIntegrationSpec;
1385
+ }
1386
+
1387
+ /**
1388
+ * Renders `astro.config.mjs` for an Astro project.
1389
+ */
1390
+ declare class AstroConfig extends Component {
1391
+ readonly project: NodeProject;
1392
+ /**
1393
+ * Find the AstroConfig component on a project.
1394
+ */
1395
+ static of(project: NodeProject): AstroConfig | undefined;
1396
+ private readonly configFilePath;
1397
+ private readonly site?;
1398
+ private readonly base?;
1399
+ private readonly output?;
1400
+ private readonly integrations;
1401
+ private readonly adapter?;
1402
+ constructor(project: NodeProject, options?: AstroConfigOptions);
1403
+ /**
1404
+ * Render the config file contents as an array of lines.
1405
+ *
1406
+ * Exposed for unit testing — `synthesizeConfig` writes these to disk.
1407
+ */
1408
+ renderConfig(): Array<string>;
1409
+ private synthesizeConfig;
1410
+ }
1411
+
1250
1412
  /*******************************************************************************
1251
1413
  *
1252
1414
  * Git configs for this repo. This venn diagram has a great deal of overlap
@@ -1605,6 +1767,10 @@ interface AwsOrganization {
1605
1767
  declare function getLatestEligibleVersion(packageName: string, minimumReleaseAgeMinutes: number): Promise<string | null>;
1606
1768
 
1607
1769
  declare const VERSION: {
1770
+ /**
1771
+ * Version of Astro to pin for AstroProject scaffolding.
1772
+ */
1773
+ readonly ASTRO_VERSION: "5.14.1";
1608
1774
  /**
1609
1775
  * CDK CLI for workflows and command line operations.
1610
1776
  *
@@ -2029,6 +2195,192 @@ declare class ResetTask extends Component {
2029
2195
  constructor(project: Project$1, options?: ResetTaskOptions);
2030
2196
  }
2031
2197
 
2198
+ /**
2199
+ * Options for the Vitest config (test block in vitest.config).
2200
+ *
2201
+ * @see https://vitest.dev/config/
2202
+ */
2203
+ interface VitestConfigOptions {
2204
+ /**
2205
+ * Glob patterns for test files.
2206
+ *
2207
+ * @default ["**\/*.{test,spec}.?(c|m)[jt]s?(x)"]
2208
+ */
2209
+ readonly include?: string[];
2210
+ /**
2211
+ * Glob patterns to exclude from test files.
2212
+ *
2213
+ * @default ["**\/node_modules\/**", "**\/dist\/**", "**\/lib\/**", "**\/.?\*"]
2214
+ */
2215
+ readonly exclude?: string[];
2216
+ /**
2217
+ * Test environment.
2218
+ *
2219
+ * @default "node"
2220
+ */
2221
+ readonly environment?: "node" | "jsdom" | "happy-dom" | "edge-runtime";
2222
+ /**
2223
+ * Do not fail when no tests are found.
2224
+ *
2225
+ * @default true
2226
+ */
2227
+ readonly passWithNoTests?: boolean;
2228
+ /**
2229
+ * Enable coverage collection.
2230
+ *
2231
+ * @default true
2232
+ */
2233
+ readonly coverageEnabled?: boolean;
2234
+ /**
2235
+ * Coverage reports directory.
2236
+ *
2237
+ * @default "coverage"
2238
+ */
2239
+ readonly coverageDirectory?: string;
2240
+ /**
2241
+ * Coverage reporters.
2242
+ *
2243
+ * @default ["text", "lcov"]
2244
+ */
2245
+ readonly coverageReporters?: string[];
2246
+ }
2247
+ /**
2248
+ * Options for the Vitest component.
2249
+ */
2250
+ interface VitestOptions {
2251
+ /**
2252
+ * Config file path.
2253
+ *
2254
+ * @default "vitest.config.ts"
2255
+ */
2256
+ readonly configFilePath?: string;
2257
+ /**
2258
+ * Vitest config (test block).
2259
+ */
2260
+ readonly config?: VitestConfigOptions;
2261
+ /**
2262
+ * Vitest version (overrides VERSION.VITEST_VERSION).
2263
+ */
2264
+ readonly vitestVersion?: string;
2265
+ }
2266
+ /**
2267
+ * Vitest component for Node/TypeScript projects.
2268
+ *
2269
+ * Adds Vitest as the test runner: devDeps, vitest.config.ts, and test/watch tasks.
2270
+ * Incompatible with Jest; use jest: false when constructing the project.
2271
+ */
2272
+ declare class Vitest extends Component {
2273
+ readonly project: NodeProject;
2274
+ /**
2275
+ * Find the Vitest component on a project.
2276
+ */
2277
+ static of(project: NodeProject): Vitest | undefined;
2278
+ private readonly configFilePath;
2279
+ private readonly include;
2280
+ private readonly exclude;
2281
+ private readonly environment;
2282
+ private readonly passWithNoTests;
2283
+ private readonly coverageEnabled;
2284
+ private readonly coverageDirectory;
2285
+ private readonly coverageReporters;
2286
+ private readonly version;
2287
+ constructor(project: NodeProject, options?: VitestOptions);
2288
+ preSynthesize(): void;
2289
+ private addTestTasks;
2290
+ private synthesizeConfig;
2291
+ private renderConfig;
2292
+ }
2293
+
2294
+ /**
2295
+ * Test runner for TypeScript projects.
2296
+ */
2297
+ declare const TestRunner: {
2298
+ readonly JEST: "jest";
2299
+ readonly VITEST: "vitest";
2300
+ };
2301
+ type TestRunner = (typeof TestRunner)[keyof typeof TestRunner];
2302
+ /**
2303
+ * Configuration options for TypeScriptProject.
2304
+ */
2305
+ interface TypeScriptProjectOptions extends Omit<typescript.TypeScriptProjectOptions, "defaultReleaseBranch"> {
2306
+ /**
2307
+ * Test runner to use.
2308
+ *
2309
+ * @default TestRunner.JEST
2310
+ */
2311
+ readonly testRunner?: TestRunner;
2312
+ /**
2313
+ * Options for Vitest (only used when testRunner is 'vitest').
2314
+ */
2315
+ readonly vitestOptions?: VitestOptions;
2316
+ /**
2317
+ * Enable the reset task that deletes all build artifacts.
2318
+ *
2319
+ * @default true
2320
+ */
2321
+ readonly resetTask?: boolean;
2322
+ /**
2323
+ * Options for the reset task.
2324
+ */
2325
+ readonly resetTaskOptions?: ResetTaskOptions;
2326
+ /**
2327
+ * AI agent configuration (Cursor, Claude Code rules).
2328
+ * Generates rule files with auto-detected bundles based on project tooling.
2329
+ *
2330
+ * - `true` or `{}`: enable with auto-detected defaults
2331
+ * - `AgentConfigOptions`: enable with explicit configuration
2332
+ * - `false` or `undefined`: disabled (default)
2333
+ *
2334
+ * Sub-projects do not inherit `AgentConfig` from their parent
2335
+ * `MonorepoProject`. Agent rule files are rendered only on projects that
2336
+ * explicitly opt in, so a monorepo's root `AgentConfig` does not duplicate
2337
+ * `.cursor/`, `.claude/`, or `CLAUDE.md` into each sub-project's `outdir`.
2338
+ *
2339
+ * @default false
2340
+ */
2341
+ readonly agentConfig?: AgentConfigOptions | boolean;
2342
+ }
2343
+ declare class TypeScriptProject extends typescript.TypeScriptProject {
2344
+ constructor(userOptions: TypeScriptProjectOptions);
2345
+ }
2346
+
2347
+ /**
2348
+ * Configuration options for AstroProject.
2349
+ */
2350
+ interface AstroProjectOptions extends TypeScriptProjectOptions, AstroConfigOptions {
2351
+ /**
2352
+ * Astro package version.
2353
+ *
2354
+ * @default VERSION.ASTRO_VERSION
2355
+ */
2356
+ readonly astroVersion?: string;
2357
+ /**
2358
+ * Emit sample Astro starter files (`src/pages/index.astro`, `public/favicon.svg`).
2359
+ *
2360
+ * @default false
2361
+ */
2362
+ readonly sampleCode?: boolean;
2363
+ /**
2364
+ * Astro tsconfig preset to extend.
2365
+ *
2366
+ * @default "astro/tsconfigs/strict"
2367
+ */
2368
+ readonly astroTsconfigExtends?: string;
2369
+ }
2370
+ /**
2371
+ * Minimal Astro site scaffolded on top of {@link TypeScriptProject}.
2372
+ *
2373
+ * Replaces the `tsc` compile step with `astro check && astro build`, writes
2374
+ * `astro.config.mjs`, sets `"type": "module"`, and wires dev/preview tasks.
2375
+ */
2376
+ declare class AstroProject extends TypeScriptProject {
2377
+ /**
2378
+ * Rendered Astro config component.
2379
+ */
2380
+ readonly astroConfig: AstroConfig;
2381
+ constructor(userOptions: AstroProjectOptions);
2382
+ }
2383
+
2032
2384
  /**
2033
2385
  * Each of the below options corresponds to a task property found here:
2034
2386
  * * https://turborepo.com/docs/reference/configuration#defining-tasks
@@ -2507,46 +2859,6 @@ interface ApproveMergeUpgradeOptions {
2507
2859
  */
2508
2860
  declare function addApproveMergeUpgradeWorkflow(project: NodeProject, options: ApproveMergeUpgradeOptions): void;
2509
2861
 
2510
- /** A single GitHub label definition for EndBug/label-sync. */
2511
- interface LabelDefinition {
2512
- /** Label name (e.g. "priority:high"). */
2513
- readonly name: string;
2514
- /** Hex color without the leading `#` (e.g. "B60205"). */
2515
- readonly color: string;
2516
- /** Short description shown in the GitHub UI. */
2517
- readonly description: string;
2518
- }
2519
- /** Options for the sync-labels workflow and labels config file. */
2520
- interface SyncLabelsOptions {
2521
- /**
2522
- * Additional labels to sync alongside the standard defaults.
2523
- * Merged with DEFAULT_STATUS_LABELS, DEFAULT_PRIORITY_LABELS, and
2524
- * DEFAULT_TYPE_LABELS (standard labels are always included).
2525
- */
2526
- readonly labels?: ReadonlyArray<LabelDefinition>;
2527
- /**
2528
- * Remove labels from the repo that are not in the config file.
2529
- * @default true
2530
- */
2531
- readonly deleteOtherLabels?: boolean;
2532
- /**
2533
- * Workflow file name (display name in the Actions tab).
2534
- * @default "sync-labels"
2535
- */
2536
- readonly workflowName?: string;
2537
- }
2538
- /** Default status labels. */
2539
- declare const DEFAULT_STATUS_LABELS: ReadonlyArray<LabelDefinition>;
2540
- /** Default priority labels. */
2541
- declare const DEFAULT_PRIORITY_LABELS: ReadonlyArray<LabelDefinition>;
2542
- /** Default type labels — one per conventional commit type. */
2543
- declare const DEFAULT_TYPE_LABELS: ReadonlyArray<LabelDefinition>;
2544
- /**
2545
- * Adds a labels config file and a GitHub Actions workflow that syncs
2546
- * labels to the repository using EndBug/label-sync.
2547
- */
2548
- declare function addSyncLabelsWorkflow(project: NodeProject, options: SyncLabelsOptions): void;
2549
-
2550
2862
  /*******************************************************************************
2551
2863
  *
2552
2864
  * Monorepo Root Project.
@@ -2709,155 +3021,6 @@ declare class ProjectMetadata extends Component {
2709
3021
  private autoDetectRepository;
2710
3022
  }
2711
3023
 
2712
- /**
2713
- * Options for the Vitest config (test block in vitest.config).
2714
- *
2715
- * @see https://vitest.dev/config/
2716
- */
2717
- interface VitestConfigOptions {
2718
- /**
2719
- * Glob patterns for test files.
2720
- *
2721
- * @default ["**\/*.{test,spec}.?(c|m)[jt]s?(x)"]
2722
- */
2723
- readonly include?: string[];
2724
- /**
2725
- * Glob patterns to exclude from test files.
2726
- *
2727
- * @default ["**\/node_modules\/**", "**\/dist\/**", "**\/lib\/**", "**\/.?\*"]
2728
- */
2729
- readonly exclude?: string[];
2730
- /**
2731
- * Test environment.
2732
- *
2733
- * @default "node"
2734
- */
2735
- readonly environment?: "node" | "jsdom" | "happy-dom" | "edge-runtime";
2736
- /**
2737
- * Do not fail when no tests are found.
2738
- *
2739
- * @default true
2740
- */
2741
- readonly passWithNoTests?: boolean;
2742
- /**
2743
- * Enable coverage collection.
2744
- *
2745
- * @default true
2746
- */
2747
- readonly coverageEnabled?: boolean;
2748
- /**
2749
- * Coverage reports directory.
2750
- *
2751
- * @default "coverage"
2752
- */
2753
- readonly coverageDirectory?: string;
2754
- /**
2755
- * Coverage reporters.
2756
- *
2757
- * @default ["text", "lcov"]
2758
- */
2759
- readonly coverageReporters?: string[];
2760
- }
2761
- /**
2762
- * Options for the Vitest component.
2763
- */
2764
- interface VitestOptions {
2765
- /**
2766
- * Config file path.
2767
- *
2768
- * @default "vitest.config.ts"
2769
- */
2770
- readonly configFilePath?: string;
2771
- /**
2772
- * Vitest config (test block).
2773
- */
2774
- readonly config?: VitestConfigOptions;
2775
- /**
2776
- * Vitest version (overrides VERSION.VITEST_VERSION).
2777
- */
2778
- readonly vitestVersion?: string;
2779
- }
2780
- /**
2781
- * Vitest component for Node/TypeScript projects.
2782
- *
2783
- * Adds Vitest as the test runner: devDeps, vitest.config.ts, and test/watch tasks.
2784
- * Incompatible with Jest; use jest: false when constructing the project.
2785
- */
2786
- declare class Vitest extends Component {
2787
- readonly project: NodeProject;
2788
- /**
2789
- * Find the Vitest component on a project.
2790
- */
2791
- static of(project: NodeProject): Vitest | undefined;
2792
- private readonly configFilePath;
2793
- private readonly include;
2794
- private readonly exclude;
2795
- private readonly environment;
2796
- private readonly passWithNoTests;
2797
- private readonly coverageEnabled;
2798
- private readonly coverageDirectory;
2799
- private readonly coverageReporters;
2800
- private readonly version;
2801
- constructor(project: NodeProject, options?: VitestOptions);
2802
- preSynthesize(): void;
2803
- private addTestTasks;
2804
- private synthesizeConfig;
2805
- private renderConfig;
2806
- }
2807
-
2808
- /**
2809
- * Test runner for TypeScript projects.
2810
- */
2811
- declare const TestRunner: {
2812
- readonly JEST: "jest";
2813
- readonly VITEST: "vitest";
2814
- };
2815
- type TestRunner = (typeof TestRunner)[keyof typeof TestRunner];
2816
- /**
2817
- * Configuration options for TypeScriptProject.
2818
- */
2819
- interface TypeScriptProjectOptions extends Omit<typescript.TypeScriptProjectOptions, "defaultReleaseBranch"> {
2820
- /**
2821
- * Test runner to use.
2822
- *
2823
- * @default TestRunner.JEST
2824
- */
2825
- readonly testRunner?: TestRunner;
2826
- /**
2827
- * Options for Vitest (only used when testRunner is 'vitest').
2828
- */
2829
- readonly vitestOptions?: VitestOptions;
2830
- /**
2831
- * Enable the reset task that deletes all build artifacts.
2832
- *
2833
- * @default true
2834
- */
2835
- readonly resetTask?: boolean;
2836
- /**
2837
- * Options for the reset task.
2838
- */
2839
- readonly resetTaskOptions?: ResetTaskOptions;
2840
- /**
2841
- * AI agent configuration (Cursor, Claude Code rules).
2842
- * Generates rule files with auto-detected bundles based on project tooling.
2843
- *
2844
- * - `true` or `{}`: enable with auto-detected defaults
2845
- * - `AgentConfigOptions`: enable with explicit configuration
2846
- * - `false` or `undefined`: disabled (default)
2847
- *
2848
- * Sub-projects do not inherit `AgentConfig` from their parent
2849
- * `MonorepoProject`. Agent rule files are rendered only on projects that
2850
- * explicitly opt in, so a monorepo's root `AgentConfig` does not duplicate
2851
- * `.cursor/`, `.claude/`, or `CLAUDE.md` into each sub-project's `outdir`.
2852
- *
2853
- * @default false
2854
- */
2855
- readonly agentConfig?: AgentConfigOptions | boolean;
2856
- }
2857
- declare class TypeScriptProject extends typescript.TypeScriptProject {
2858
- constructor(userOptions: TypeScriptProjectOptions);
2859
- }
2860
-
2861
3024
  /*******************************************************************************
2862
3025
  *
2863
3026
  * Update / customize typescript configs for a project.
@@ -2973,4 +3136,4 @@ declare const COMPLETE_JOB_ID = "complete";
2973
3136
  */
2974
3137
  declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
2975
3138
 
2976
- 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, type AwsAccount, 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 };
3139
+ 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, 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 };