@codedrifters/configulator 0.0.255 → 0.0.257

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
@@ -970,6 +970,314 @@ interface PriorityRule {
970
970
  */
971
971
  readonly rationale: string;
972
972
  }
973
+ /*******************************************************************************
974
+ *
975
+ * Focus Scoring
976
+ *
977
+ ******************************************************************************/
978
+ /**
979
+ * Match predicate for a single focus area. At least one sub-field
980
+ * should be set; multiple sub-fields on the same match combine as a
981
+ * logical OR (any one matching contributes the focus area's weight).
982
+ *
983
+ * @see FocusArea
984
+ */
985
+ interface FocusAreaMatch {
986
+ /** Any of these labels present on the issue matches. */
987
+ readonly labels?: ReadonlyArray<string>;
988
+ /**
989
+ * Case-insensitive substrings matched against the issue title.
990
+ * A hit on any single keyword fires the match.
991
+ */
992
+ readonly titleKeywords?: ReadonlyArray<string>;
993
+ /**
994
+ * Case-insensitive substrings matched against the issue body.
995
+ * A hit on any single keyword fires the match.
996
+ */
997
+ readonly bodyKeywords?: ReadonlyArray<string>;
998
+ }
999
+ /**
1000
+ * A single scored focus area — a named customer, segment,
1001
+ * organization, software product, regulation, or person the project
1002
+ * cares about right now. Matching issues receive this area's
1003
+ * `weight` as a priority boost at triage time.
1004
+ *
1005
+ * @see FocusConfig
1006
+ * @see ./bundles/focus.ts#renderFocusSection
1007
+ */
1008
+ interface FocusArea {
1009
+ /** Human-readable name for the focus area (e.g. "Acme Corp"). */
1010
+ readonly name: string;
1011
+ /**
1012
+ * Consuming-repo-defined vocabulary describing what kind of entity
1013
+ * this focus area represents (e.g. `"customer"`, `"segment"`,
1014
+ * `"organization"`, `"software"`, `"regulation"`, `"person"`).
1015
+ * The `AgentExpansionRules.allowedTypes` /
1016
+ * `AgentExpansionRules.forbiddenTypes` lists gate what values
1017
+ * agents are permitted to introduce.
1018
+ */
1019
+ readonly type: string;
1020
+ /**
1021
+ * Provenance. `"human"` entries are curated by a maintainer;
1022
+ * `"agent"` entries were appended by an agent under the
1023
+ * agent-expansion rules and must carry a `discoveredIn` reference.
1024
+ */
1025
+ readonly source: "human" | "agent";
1026
+ /**
1027
+ * Issue reference (e.g. `"#123"`) that introduced the focus area.
1028
+ * Required when `source` is `"agent"` so the provenance of every
1029
+ * agent-appended entry is auditable; optional for human entries.
1030
+ */
1031
+ readonly discoveredIn?: string;
1032
+ /** Match predicate that decides which issues this area applies to. */
1033
+ readonly match: FocusAreaMatch;
1034
+ /**
1035
+ * Positive integer weight contributed to the issue's focus score
1036
+ * when the match fires. Consuming repos typically cap this with
1037
+ * `AgentExpansionRules.maxWeight` (default 8 in openhi's reference
1038
+ * implementation).
1039
+ */
1040
+ readonly weight: number;
1041
+ }
1042
+ /**
1043
+ * Guard-rails on what agents are allowed to append to `focus.json`
1044
+ * without human review. The agent-expansion contract is append-only:
1045
+ * agents never modify or remove existing entries.
1046
+ */
1047
+ interface AgentExpansionRules {
1048
+ /**
1049
+ * Hard cap on the `weight` an agent may set on a newly appended
1050
+ * focus area. Human curators may use higher weights.
1051
+ */
1052
+ readonly maxWeight: number;
1053
+ /**
1054
+ * Whitelist of `FocusArea.type` values agents are permitted to
1055
+ * introduce. Any type outside this list must be added by a human.
1056
+ */
1057
+ readonly allowedTypes: ReadonlyArray<string>;
1058
+ /**
1059
+ * Explicit blocklist of `FocusArea.type` values agents must never
1060
+ * introduce, even if the list accidentally overlaps
1061
+ * `allowedTypes`. `forbiddenTypes` wins on conflict.
1062
+ */
1063
+ readonly forbiddenTypes: ReadonlyArray<string>;
1064
+ /**
1065
+ * Optional cap on the number of entries in each keyword array
1066
+ * (`match.labels`, `match.titleKeywords`, `match.bodyKeywords`)
1067
+ * on an agent-appended focus area. Prevents runaway keyword
1068
+ * expansion. Human entries are not subject to this cap.
1069
+ */
1070
+ readonly maxKeywords?: number;
1071
+ }
1072
+ /**
1073
+ * Top-level configuration for the focus-scoring engine. The schema
1074
+ * and agent-expansion rules live in the configulator bundle; the
1075
+ * actual `focus.json` file is authored and curated in the consuming
1076
+ * repo.
1077
+ *
1078
+ * When supplied via `AgentConfigOptions.focus`, the `base` bundle
1079
+ * appends a "Focus scoring" subsection to the
1080
+ * `issue-label-conventions` rule that teaches agents how to read
1081
+ * `focus.json`, how focus weight interacts with the
1082
+ * `priority:*` taxonomy, and what they may and may not append to
1083
+ * the file.
1084
+ *
1085
+ * @see FocusArea
1086
+ * @see AgentExpansionRules
1087
+ * @see ./bundles/focus.ts#renderFocusSection
1088
+ */
1089
+ interface FocusConfig {
1090
+ /**
1091
+ * Path to the focus file relative to the repo root.
1092
+ * @default ".claude/focus.json"
1093
+ */
1094
+ readonly focusFilePath?: string;
1095
+ /**
1096
+ * Schema version the consuming repo's `focus.json` conforms to.
1097
+ * Bump when the schema changes in a backwards-incompatible way.
1098
+ * @default 1
1099
+ */
1100
+ readonly schemaVersion?: number;
1101
+ /**
1102
+ * Cumulative focus-score thresholds that map into the
1103
+ * `priority:*` taxonomy. An issue whose total focus score
1104
+ * (sum of matched focus-area weights) reaches `high` is boosted
1105
+ * to `priority:high`; reaching `medium` keeps it at
1106
+ * `priority:medium`. Scores below `medium` do not affect the
1107
+ * inferred priority.
1108
+ *
1109
+ * @remarks `high` and `medium` must be integers. The JSON schema
1110
+ * at `schemas/focus.schema.json` enforces this for `focus.json`.
1111
+ */
1112
+ readonly thresholds?: {
1113
+ readonly high: number;
1114
+ readonly medium: number;
1115
+ };
1116
+ /**
1117
+ * Guard-rails that govern what agents may append to `focus.json`.
1118
+ * When omitted, the rendered rule documents that agents must
1119
+ * **not** append to `focus.json` without human review.
1120
+ */
1121
+ readonly agentExpansionRules?: AgentExpansionRules;
1122
+ }
1123
+ /*******************************************************************************
1124
+ *
1125
+ * Meetings Config
1126
+ *
1127
+ ******************************************************************************/
1128
+ /**
1129
+ * Scope classifier for a meeting type. Used by the `meeting-analysis`
1130
+ * bundle to reason about where a given meeting belongs (internal vs
1131
+ * external) and, for external meetings, the nature of the other party.
1132
+ *
1133
+ * - `internal-recurring` — recurring internal meeting (weekly standup,
1134
+ * team sync, planning cadence).
1135
+ * - `internal-oneoff` — one-off internal meeting (brainstorm, kickoff,
1136
+ * retro).
1137
+ * - `external-customer` — meeting with an existing paying customer.
1138
+ * - `external-prospect` — meeting with a sales prospect not yet under
1139
+ * contract.
1140
+ * - `external-partner` — meeting with a partner (integration, vendor,
1141
+ * channel).
1142
+ * - `external-other` — any external meeting that does not fit the
1143
+ * customer / prospect / partner buckets.
1144
+ */
1145
+ type MeetingScope = "internal-recurring" | "internal-oneoff" | "external-customer" | "external-prospect" | "external-partner" | "external-other";
1146
+ /**
1147
+ * A single meeting-type taxonomy entry declared by the consuming repo.
1148
+ * Each entry names a kind of meeting the project recognizes
1149
+ * (`founders-weekly`, `customer-discovery`, etc.) and supplies the
1150
+ * per-type metadata agents need to route, default, and template that
1151
+ * meeting.
1152
+ *
1153
+ * When `AgentConfigOptions.meetings.meetingTypes` is non-empty, the
1154
+ * `meeting-analysis` bundle renders a "Recognized meeting types"
1155
+ * subsection listing every declared type so agents pick from the
1156
+ * project's vocabulary rather than guessing.
1157
+ *
1158
+ * @see MeetingsConfig
1159
+ * @see ./bundles/meeting-types.ts#renderMeetingTypesSection
1160
+ */
1161
+ interface MeetingType {
1162
+ /**
1163
+ * Stable machine identifier for the meeting type. Used as the
1164
+ * `meeting_type` frontmatter value on meeting notes and as the key
1165
+ * that the future `agenda` bundle will look up when selecting a
1166
+ * pre-meeting template.
1167
+ * @example 'founders-weekly', 'customer-discovery', 'sprint-review'
1168
+ */
1169
+ readonly id: string;
1170
+ /** Human-readable label shown in generated rule content. */
1171
+ readonly label: string;
1172
+ /**
1173
+ * Scope classification — whether the meeting is internal (recurring
1174
+ * or one-off) or external (customer / prospect / partner / other).
1175
+ */
1176
+ readonly scope: MeetingScope;
1177
+ /**
1178
+ * Default scheduled duration in minutes. Optional; agents may use
1179
+ * this when proposing calendar holds or when validating a
1180
+ * transcript's recorded duration against the type's expected
1181
+ * duration.
1182
+ */
1183
+ readonly defaultDurationMinutes?: number;
1184
+ /**
1185
+ * Path to a pre-meeting agenda skeleton for this type, resolved
1186
+ * relative to `MeetingsConfig.agendaTemplateRoot`. Optional — a
1187
+ * type without a template simply has no canned agenda.
1188
+ * @example 'founders-weekly.md', 'customer-discovery/v2.md'
1189
+ */
1190
+ readonly agendaTemplatePath?: string;
1191
+ /**
1192
+ * Human-readable cadence descriptor. Free-form text — agents
1193
+ * surface the string verbatim rather than parsing it.
1194
+ * @example 'weekly', 'every 2 weeks', 'one-off'
1195
+ */
1196
+ readonly cadence?: string;
1197
+ }
1198
+ /**
1199
+ * A single meeting-area entry. Meeting areas provide a coarse
1200
+ * routing map from an `area` frontmatter value on a meeting note to
1201
+ * the sub-tree of the docs root where phase-4 direct edits should
1202
+ * land.
1203
+ *
1204
+ * Example: declaring `{ id: 'product-engineering', label: 'Product &
1205
+ * Engineering', docRoot: 'product' }` tells the `meeting-analysis`
1206
+ * bundle that a meeting whose frontmatter carries
1207
+ * `area: product-engineering` should have its direct edits routed
1208
+ * under `<docsRoot>/product/`.
1209
+ *
1210
+ * When `AgentConfigOptions.meetings.meetingAreas` is non-empty, the
1211
+ * `meeting-analysis` bundle renders an "Area → doc-root mapping"
1212
+ * subsection documenting every declared area and its resolved
1213
+ * destination.
1214
+ *
1215
+ * @see MeetingsConfig
1216
+ * @see ./bundles/meeting-types.ts#renderMeetingTypesSection
1217
+ */
1218
+ interface MeetingArea {
1219
+ /**
1220
+ * Stable machine identifier for the area. Matches the `area`
1221
+ * frontmatter value on meeting notes.
1222
+ * @example 'product-engineering', 'go-to-market', 'operations'
1223
+ */
1224
+ readonly id: string;
1225
+ /** Human-readable label shown in generated rule content. */
1226
+ readonly label: string;
1227
+ /**
1228
+ * Destination folder for phase-4 direct edits on meeting notes
1229
+ * carrying this area. Interpreted **relative to the resolved
1230
+ * docs root** (`AgentPathsConfig.docsRoot`, default
1231
+ * `docs/src/content/docs`). Do not include a leading slash.
1232
+ * @example 'product', 'gtm', 'operations'
1233
+ */
1234
+ readonly docRoot: string;
1235
+ }
1236
+ /**
1237
+ * Meeting-analysis injection points — the set of typed
1238
+ * configurations agents consult when classifying, routing, and
1239
+ * templating a meeting. Every field is optional.
1240
+ *
1241
+ * - `meetingTypes` — the set of meeting types the repo recognizes.
1242
+ * - `meetingAreas` — maps `area` frontmatter to doc-root sub-trees.
1243
+ * - `agendaTemplateRoot` — where pre-meeting agenda skeletons live.
1244
+ *
1245
+ * When supplied, the `meeting-analysis` bundle conditionally renders
1246
+ * two new subsections into the `meeting-processing-workflow` rule —
1247
+ * "Recognized meeting types" (when `meetingTypes` is non-empty) and
1248
+ * "Area → doc-root mapping" (when `meetingAreas` is non-empty).
1249
+ *
1250
+ * @see MeetingType
1251
+ * @see MeetingArea
1252
+ * @see ./bundles/meeting-types.ts#renderMeetingTypesSection
1253
+ */
1254
+ interface MeetingsConfig {
1255
+ /**
1256
+ * Meeting-type taxonomy. An empty or missing list means the
1257
+ * consuming repo does not classify meetings by type; the
1258
+ * `meeting-analysis` bundle falls back to its generic 4-phase
1259
+ * behaviour.
1260
+ */
1261
+ readonly meetingTypes?: ReadonlyArray<MeetingType>;
1262
+ /**
1263
+ * Meeting-area map. An empty or missing list means the consuming
1264
+ * repo does not route meetings by area; phase-4 direct edits
1265
+ * continue to land under the default meetings root.
1266
+ */
1267
+ readonly meetingAreas?: ReadonlyArray<MeetingArea>;
1268
+ /**
1269
+ * Root folder containing pre-meeting agenda-template skeletons.
1270
+ * Resolved at issue-creation time by the (future) `agenda` bundle
1271
+ * when selecting a template for a given `meeting_type`.
1272
+ *
1273
+ * When unset, the `meeting-analysis` bundle documents the default
1274
+ * of `<meetingsRoot>/_agenda-templates` — consumers that wire a
1275
+ * custom `AgentPathsConfig.meetingsRoot` inherit the override
1276
+ * automatically.
1277
+ * @default "<meetingsRoot>/_agenda-templates"
1278
+ */
1279
+ readonly agendaTemplateRoot?: string;
1280
+ }
973
1281
  /*******************************************************************************
974
1282
  *
975
1283
  * AgentConfig Options
@@ -1082,6 +1390,46 @@ interface AgentConfigOptions {
1082
1390
  * @see ./bundles/priority-rules.ts#renderPriorityRulesSection
1083
1391
  */
1084
1392
  readonly priorityRules?: ReadonlyArray<PriorityRule>;
1393
+ /**
1394
+ * Focus-scoring configuration. Declares the path to the consuming
1395
+ * repo's `focus.json` file, score thresholds, and the
1396
+ * agent-expansion rules that govern what agents may append to the
1397
+ * file.
1398
+ *
1399
+ * When set, the `base` bundle appends a "Focus scoring"
1400
+ * subsection to the `issue-label-conventions` rule that teaches
1401
+ * agents (a) how to read `focus.json`, (b) how focus weight
1402
+ * interacts with the `priority:*` taxonomy, and (c) the
1403
+ * agent-driven expansion contract. The actual `focus.json` file
1404
+ * is authored and curated in the consuming repo — configulator
1405
+ * ships the schema and agent instructions only.
1406
+ *
1407
+ * @see FocusConfig
1408
+ * @see FocusArea
1409
+ * @see AgentExpansionRules
1410
+ * @see ./bundles/focus.ts#renderFocusSection
1411
+ */
1412
+ readonly focus?: FocusConfig;
1413
+ /**
1414
+ * Meeting-analysis injection points — typed configs the
1415
+ * `meeting-analysis` bundle consults when classifying, routing, and
1416
+ * templating meetings. Supplies the meeting-type taxonomy, the
1417
+ * area → doc-root routing map, and the agenda-template root used
1418
+ * by the (future) `agenda` bundle.
1419
+ *
1420
+ * When `meetingTypes` is non-empty, the `meeting-analysis` bundle
1421
+ * appends a "Recognized meeting types" subsection to the
1422
+ * `meeting-processing-workflow` rule. When `meetingAreas` is
1423
+ * non-empty, it appends an "Area → doc-root mapping" subsection.
1424
+ * When both are empty or unset, the generated rule content is
1425
+ * unchanged from the no-config baseline.
1426
+ *
1427
+ * @see MeetingsConfig
1428
+ * @see MeetingType
1429
+ * @see MeetingArea
1430
+ * @see ./bundles/meeting-types.ts#renderMeetingTypesSection
1431
+ */
1432
+ readonly meetings?: MeetingsConfig;
1085
1433
  }
1086
1434
 
1087
1435
  /**
@@ -1354,6 +1702,47 @@ declare const prReviewBundle: AgentRuleBundle;
1354
1702
  */
1355
1703
  declare const projenBundle: AgentRuleBundle;
1356
1704
 
1705
+ /**
1706
+ * Render the markdown subsection appended to the
1707
+ * `issue-label-conventions` rule when `AgentConfigOptions.focus` is
1708
+ * supplied. Returns an empty string when `focus` is undefined so
1709
+ * callers can unconditionally concatenate the result.
1710
+ *
1711
+ * The section documents three things for agents:
1712
+ *
1713
+ * 1. How to read `focus.json` at triage time
1714
+ * 2. How focus weight interacts with the `priority:*` taxonomy
1715
+ * 3. The agent-driven expansion contract (what agents may append)
1716
+ *
1717
+ * Configulator ships this rule content plus a JSON Schema that
1718
+ * validates the `focus.json` file; the file itself is authored and
1719
+ * curated in the consuming repo.
1720
+ */
1721
+ declare function renderFocusSection(focus: FocusConfig | undefined): string;
1722
+
1723
+ /**
1724
+ * Render the markdown subsections appended to the
1725
+ * `meeting-processing-workflow` rule when `AgentConfigOptions.meetings`
1726
+ * is supplied. Returns an empty string when the supplied config has
1727
+ * nothing to render (no meeting types and no meeting areas) so callers
1728
+ * can unconditionally concatenate the result.
1729
+ *
1730
+ * Two subsections are rendered, each gated on its own input array:
1731
+ *
1732
+ * 1. **Recognized meeting types** — rendered when `meetingTypes` is
1733
+ * non-empty. Lists every declared type with its scope, optional
1734
+ * cadence, default duration, and agenda template path. Also
1735
+ * documents the resolved `agendaTemplateRoot`.
1736
+ * 2. **Area → doc-root mapping** — rendered when `meetingAreas` is
1737
+ * non-empty. Lists every declared area with its `id`, label, and
1738
+ * docs-root-relative destination folder.
1739
+ *
1740
+ * Bundles consume the rendered string by appending it to their own
1741
+ * rule content. A caller that has no meeting types and no meeting
1742
+ * areas receives an empty string and can safely concatenate.
1743
+ */
1744
+ declare function renderMeetingTypesSection(meetings: MeetingsConfig | undefined): string;
1745
+
1357
1746
  /**
1358
1747
  * Render the markdown subsection appended to the
1359
1748
  * `issue-label-conventions` rule when `AgentConfigOptions.priorityRules`
@@ -4088,4 +4477,4 @@ declare const COMPLETE_JOB_ID = "complete";
4088
4477
  */
4089
4478
  declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
4090
4479
 
4091
- export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, type AgentConfigOptions, type AgentModel, type AgentPathsConfig, 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_AGENT_PATHS, 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, LAYOUT_ENFORCEMENT, LAYOUT_ROOT_BY_PROJECT_TYPE, type LabelDefinition, type LayoutEnforcement, type LayoutViolation, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MONOREPO_LAYOUT, type McpServerConfig, type McpTransport, type MergeMethod, type MonorepoLayoutRoot, MonorepoProject, type MonorepoProjectOptions, type OrganizationMetadata, PROD_DEPLOY_NAME, PnpmWorkspace, type PnpmWorkspaceOptions, type PriorityRule, ProjectMetadata, type ProjectMetadataOptions, REQUIREMENTS_WRITER_PATHS, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, type RemoteCacheOptions, type RepositoryMetadata, ResetTask, type ResetTaskOptions, type ResolvedAgentPaths, type ResolvedProjectMetadata, STARLIGHT_ROLE, type SlackMetadata, type StarlightEditLink, type StarlightLogo, StarlightProject, type StarlightProjectOptions, type StarlightRole, type StarlightSidebarItem, type StarlightSingletonViolation, type StarlightSocialLink, 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, bcmWriterBundle, companyProfileBundle, formatLayoutViolation, formatStarlightSingletonViolation, getLatestEligibleVersion, githubWorkflowBundle, industryDiscoveryBundle, jestBundle, maintenanceAuditBundle, meetingAnalysisBundle, orchestratorBundle, peopleProfileBundle, pnpmBundle, prReviewBundle, projenBundle, renderPriorityRulesSection, requirementsAnalystBundle, requirementsReviewerBundle, requirementsWriterBundle, researchPipelineBundle, resolveAgentPaths, resolveAstroProjectOutdir, resolveAwsCdkProjectOutdir, resolveModelAlias, resolveOutdirFromPackageName, resolveTemplateVariables, resolveTypeScriptProjectOutdir, slackBundle, softwareProfileBundle, turborepoBundle, typescriptBundle, validateMonorepoLayout, validateStarlightSingleton, vitestBundle };
4480
+ export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, type AgentConfigOptions, type AgentExpansionRules, type AgentModel, type AgentPathsConfig, 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_AGENT_PATHS, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, DEFAULT_TEARDOWN_BRANCH_PATTERNS, DEFAULT_TYPE_LABELS, type DeployWorkflowOptions, type DeploymentMetadata, type FocusArea, type FocusAreaMatch, type FocusConfig, type GitBranch, type GitHubBoardMetadata, type GitHubProjectMetadata, type GitHubSprintMetadata, type IDependencyResolver, JsiiFaker, LAYOUT_ENFORCEMENT, LAYOUT_ROOT_BY_PROJECT_TYPE, type LabelDefinition, type LayoutEnforcement, type LayoutViolation, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MONOREPO_LAYOUT, type McpServerConfig, type McpTransport, type MeetingArea, type MeetingScope, type MeetingType, type MeetingsConfig, type MergeMethod, type MonorepoLayoutRoot, MonorepoProject, type MonorepoProjectOptions, type OrganizationMetadata, PROD_DEPLOY_NAME, PnpmWorkspace, type PnpmWorkspaceOptions, type PriorityRule, ProjectMetadata, type ProjectMetadataOptions, REQUIREMENTS_WRITER_PATHS, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, type RemoteCacheOptions, type RepositoryMetadata, ResetTask, type ResetTaskOptions, type ResolvedAgentPaths, type ResolvedProjectMetadata, STARLIGHT_ROLE, type SlackMetadata, type StarlightEditLink, type StarlightLogo, StarlightProject, type StarlightProjectOptions, type StarlightRole, type StarlightSidebarItem, type StarlightSingletonViolation, type StarlightSocialLink, 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, bcmWriterBundle, companyProfileBundle, formatLayoutViolation, formatStarlightSingletonViolation, getLatestEligibleVersion, githubWorkflowBundle, industryDiscoveryBundle, jestBundle, maintenanceAuditBundle, meetingAnalysisBundle, orchestratorBundle, peopleProfileBundle, pnpmBundle, prReviewBundle, projenBundle, renderFocusSection, renderMeetingTypesSection, renderPriorityRulesSection, requirementsAnalystBundle, requirementsReviewerBundle, requirementsWriterBundle, researchPipelineBundle, resolveAgentPaths, resolveAstroProjectOutdir, resolveAwsCdkProjectOutdir, resolveModelAlias, resolveOutdirFromPackageName, resolveTemplateVariables, resolveTypeScriptProjectOutdir, slackBundle, softwareProfileBundle, turborepoBundle, typescriptBundle, validateMonorepoLayout, validateStarlightSingleton, vitestBundle };