@codedrifters/configulator 0.0.256 → 0.0.258
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 +419 -3
- package/lib/index.d.ts +420 -4
- package/lib/index.js +358 -7
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +354 -7
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.d.mts
CHANGED
|
@@ -1120,6 +1120,302 @@ interface FocusConfig {
|
|
|
1120
1120
|
*/
|
|
1121
1121
|
readonly agentExpansionRules?: AgentExpansionRules;
|
|
1122
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
|
+
}
|
|
1281
|
+
/*******************************************************************************
|
|
1282
|
+
*
|
|
1283
|
+
* Agent Features Config
|
|
1284
|
+
*
|
|
1285
|
+
******************************************************************************/
|
|
1286
|
+
/**
|
|
1287
|
+
* Per-tier lists of domain-specific source examples injected into the
|
|
1288
|
+
* base bundle's "Source Quality & Verification" rule under each of the
|
|
1289
|
+
* T1 / T2 / T3 / T4 headings.
|
|
1290
|
+
*
|
|
1291
|
+
* Every field is optional. When a field is set, the `base` bundle
|
|
1292
|
+
* renders a bullet list of the supplied examples beneath the
|
|
1293
|
+
* corresponding tier heading; when a field is unset, the tier heading
|
|
1294
|
+
* renders with its generic examples only.
|
|
1295
|
+
*
|
|
1296
|
+
* The examples are emitted verbatim — supply fully-formed descriptive
|
|
1297
|
+
* strings ("FHIR R4 capability statements", "SEC EDGAR filings").
|
|
1298
|
+
*
|
|
1299
|
+
* @see AgentFeaturesConfig
|
|
1300
|
+
* @see ./bundles/features.ts#renderSourceTierExamples
|
|
1301
|
+
*/
|
|
1302
|
+
interface SourceTierExamples {
|
|
1303
|
+
/**
|
|
1304
|
+
* Primary living sources — T1. Examples that update when reality
|
|
1305
|
+
* changes (official product docs, company about/leadership pages,
|
|
1306
|
+
* live government registries).
|
|
1307
|
+
*/
|
|
1308
|
+
readonly t1?: ReadonlyArray<string>;
|
|
1309
|
+
/**
|
|
1310
|
+
* Primary snapshot sources — T2. Examples that capture a moment in
|
|
1311
|
+
* time from the authoritative party (press releases, earnings
|
|
1312
|
+
* transcripts, regulatory filings, conference presentations).
|
|
1313
|
+
*/
|
|
1314
|
+
readonly t2?: ReadonlyArray<string>;
|
|
1315
|
+
/**
|
|
1316
|
+
* Secondary sources — T3. Examples that interpret primary material
|
|
1317
|
+
* (news articles, trade press, analyst reports, industry databases).
|
|
1318
|
+
*/
|
|
1319
|
+
readonly t3?: ReadonlyArray<string>;
|
|
1320
|
+
/**
|
|
1321
|
+
* Self-reported or marketing sources — T4. Examples that require
|
|
1322
|
+
* corroboration before any factual claim rides on them (vendor
|
|
1323
|
+
* comparison pages, testimonials, social posts, job listings,
|
|
1324
|
+
* Wikipedia).
|
|
1325
|
+
*/
|
|
1326
|
+
readonly t4?: ReadonlyArray<string>;
|
|
1327
|
+
}
|
|
1328
|
+
/**
|
|
1329
|
+
* A single consumer-supplied doc-section template injected into a
|
|
1330
|
+
* bundle's rule content at rule-generation time.
|
|
1331
|
+
*
|
|
1332
|
+
* The configulator framework is deliberately generic here — it
|
|
1333
|
+
* matches by `bundleName` and appends `body` verbatim under a new
|
|
1334
|
+
* `## <sectionTitle>` heading after the first rule in the target
|
|
1335
|
+
* bundle whose content contains `## <afterSection>`. Named feature
|
|
1336
|
+
* toggles (stealth-mode, consortium-model, etc.) belong in downstream
|
|
1337
|
+
* consumer repos that compose the primitive this interface exposes.
|
|
1338
|
+
*
|
|
1339
|
+
* Placeholder substitution (`{{foo}}`) is **not** performed at
|
|
1340
|
+
* rule-generation time — the `body` string is emitted verbatim.
|
|
1341
|
+
* Any templating is the agent's responsibility at document-authoring
|
|
1342
|
+
* time, not configulator's.
|
|
1343
|
+
*
|
|
1344
|
+
* @see AgentFeaturesConfig
|
|
1345
|
+
* @see ./bundles/features.ts#renderCustomDocSection
|
|
1346
|
+
*/
|
|
1347
|
+
interface CustomDocSection {
|
|
1348
|
+
/**
|
|
1349
|
+
* Target bundle id. Must match an `AgentRuleBundle.name` that is
|
|
1350
|
+
* active in the project. If no active bundle has this name, the
|
|
1351
|
+
* section is silently dropped.
|
|
1352
|
+
* @example 'company-profile', 'meeting-analysis', 'bcm-writer'
|
|
1353
|
+
*/
|
|
1354
|
+
readonly bundleName: string;
|
|
1355
|
+
/**
|
|
1356
|
+
* Heading text (without any leading `#` characters) of the existing
|
|
1357
|
+
* section this custom section is inserted after. The framework
|
|
1358
|
+
* searches every rule in the target bundle for a heading line at
|
|
1359
|
+
* any level (`#` through `######`) whose text equals `afterSection`;
|
|
1360
|
+
* the first rule that contains such a heading is the insertion site.
|
|
1361
|
+
* Matching any level lets consumers hook into single-`#` bundle-rule
|
|
1362
|
+
* titles (e.g. `# Company Profile Workflow`) as well as nested `##` /
|
|
1363
|
+
* `###` subsections. If no rule contains a matching heading, the
|
|
1364
|
+
* section is silently dropped.
|
|
1365
|
+
*
|
|
1366
|
+
* Multiple entries targeting the same heading render in supplied
|
|
1367
|
+
* order — the first entry lands directly beneath the target heading
|
|
1368
|
+
* block, the second below it, and so on.
|
|
1369
|
+
* @example 'Company Profile Workflow', 'Company Type Taxonomy', 'Output Boundaries'
|
|
1370
|
+
*/
|
|
1371
|
+
readonly afterSection: string;
|
|
1372
|
+
/**
|
|
1373
|
+
* Heading text for the injected section, rendered as
|
|
1374
|
+
* `## <sectionTitle>`.
|
|
1375
|
+
* @example 'Consortium Membership', 'Vortex Relevance'
|
|
1376
|
+
*/
|
|
1377
|
+
readonly sectionTitle: string;
|
|
1378
|
+
/**
|
|
1379
|
+
* Markdown body emitted verbatim beneath the `## <sectionTitle>`
|
|
1380
|
+
* heading. Trailing newlines are trimmed before rendering.
|
|
1381
|
+
*/
|
|
1382
|
+
readonly body: string;
|
|
1383
|
+
}
|
|
1384
|
+
/**
|
|
1385
|
+
* Framework injection points for source-tier customization and
|
|
1386
|
+
* custom doc sections. Supplied via `AgentConfigOptions.features`.
|
|
1387
|
+
*
|
|
1388
|
+
* - `sourceTierExamples` — per-tier domain-specific examples that get
|
|
1389
|
+
* listed under each tier in the base bundle's "Source Quality &
|
|
1390
|
+
* Verification" rule.
|
|
1391
|
+
* - `customDocSections` — per-bundle section templates that render
|
|
1392
|
+
* verbatim after an existing section heading in the target bundle's
|
|
1393
|
+
* rule content.
|
|
1394
|
+
*
|
|
1395
|
+
* Named feature toggles (`consortium-model`, `stealth-mode`, etc.)
|
|
1396
|
+
* are deliberately **not** part of this config surface. They belong
|
|
1397
|
+
* in downstream consumer repos built on top of the generic
|
|
1398
|
+
* `customDocSections` primitive.
|
|
1399
|
+
*
|
|
1400
|
+
* @see SourceTierExamples
|
|
1401
|
+
* @see CustomDocSection
|
|
1402
|
+
* @see ./bundles/features.ts
|
|
1403
|
+
*/
|
|
1404
|
+
interface AgentFeaturesConfig {
|
|
1405
|
+
/**
|
|
1406
|
+
* Per-tier lists of domain-specific source examples injected under
|
|
1407
|
+
* T1 / T2 / T3 / T4 in the base bundle's "Source Quality &
|
|
1408
|
+
* Verification" rule.
|
|
1409
|
+
*/
|
|
1410
|
+
readonly sourceTierExamples?: SourceTierExamples;
|
|
1411
|
+
/**
|
|
1412
|
+
* Custom doc-section templates to inject into active bundles at
|
|
1413
|
+
* rule-generation time. Each entry names the target bundle, the
|
|
1414
|
+
* section heading to insert after, the injected section's title,
|
|
1415
|
+
* and the body to emit verbatim.
|
|
1416
|
+
*/
|
|
1417
|
+
readonly customDocSections?: ReadonlyArray<CustomDocSection>;
|
|
1418
|
+
}
|
|
1123
1419
|
/*******************************************************************************
|
|
1124
1420
|
*
|
|
1125
1421
|
* AgentConfig Options
|
|
@@ -1252,6 +1548,47 @@ interface AgentConfigOptions {
|
|
|
1252
1548
|
* @see ./bundles/focus.ts#renderFocusSection
|
|
1253
1549
|
*/
|
|
1254
1550
|
readonly focus?: FocusConfig;
|
|
1551
|
+
/**
|
|
1552
|
+
* Meeting-analysis injection points — typed configs the
|
|
1553
|
+
* `meeting-analysis` bundle consults when classifying, routing, and
|
|
1554
|
+
* templating meetings. Supplies the meeting-type taxonomy, the
|
|
1555
|
+
* area → doc-root routing map, and the agenda-template root used
|
|
1556
|
+
* by the (future) `agenda` bundle.
|
|
1557
|
+
*
|
|
1558
|
+
* When `meetingTypes` is non-empty, the `meeting-analysis` bundle
|
|
1559
|
+
* appends a "Recognized meeting types" subsection to the
|
|
1560
|
+
* `meeting-processing-workflow` rule. When `meetingAreas` is
|
|
1561
|
+
* non-empty, it appends an "Area → doc-root mapping" subsection.
|
|
1562
|
+
* When both are empty or unset, the generated rule content is
|
|
1563
|
+
* unchanged from the no-config baseline.
|
|
1564
|
+
*
|
|
1565
|
+
* @see MeetingsConfig
|
|
1566
|
+
* @see MeetingType
|
|
1567
|
+
* @see MeetingArea
|
|
1568
|
+
* @see ./bundles/meeting-types.ts#renderMeetingTypesSection
|
|
1569
|
+
*/
|
|
1570
|
+
readonly meetings?: MeetingsConfig;
|
|
1571
|
+
/**
|
|
1572
|
+
* Framework injection points for source-tier customization and
|
|
1573
|
+
* custom doc sections.
|
|
1574
|
+
*
|
|
1575
|
+
* - `sourceTierExamples` — domain-specific examples injected under
|
|
1576
|
+
* T1 / T2 / T3 / T4 in the base bundle's "Source Quality &
|
|
1577
|
+
* Verification" rule.
|
|
1578
|
+
* - `customDocSections` — consumer-supplied section templates that
|
|
1579
|
+
* render verbatim after an existing section heading in a target
|
|
1580
|
+
* bundle's rule content.
|
|
1581
|
+
*
|
|
1582
|
+
* Named feature toggles (`consortium-model`, `stealth-mode`, etc.)
|
|
1583
|
+
* are intentionally out of scope here — build those on top of
|
|
1584
|
+
* `customDocSections` inside the consuming repo's projen config.
|
|
1585
|
+
*
|
|
1586
|
+
* @see AgentFeaturesConfig
|
|
1587
|
+
* @see SourceTierExamples
|
|
1588
|
+
* @see CustomDocSection
|
|
1589
|
+
* @see ./bundles/features.ts
|
|
1590
|
+
*/
|
|
1591
|
+
readonly features?: AgentFeaturesConfig;
|
|
1255
1592
|
}
|
|
1256
1593
|
|
|
1257
1594
|
/**
|
|
@@ -1281,6 +1618,14 @@ declare class AgentConfig extends Component {
|
|
|
1281
1618
|
* Find the AgentConfig component on a project.
|
|
1282
1619
|
*/
|
|
1283
1620
|
static of(project: Project$1): AgentConfig | undefined;
|
|
1621
|
+
/**
|
|
1622
|
+
* Returns `true` when at least one tier array on the supplied
|
|
1623
|
+
* `SourceTierExamples` is non-empty, signalling that the consuming
|
|
1624
|
+
* repo has opted into rendering the base bundle's
|
|
1625
|
+
* `source-quality-verification` rule. Returns `false` for
|
|
1626
|
+
* `undefined`, `{}`, or a fully-empty `{ t1: [], t2: [], t3: [], t4: [] }`.
|
|
1627
|
+
*/
|
|
1628
|
+
private static hasActiveTierExamples;
|
|
1284
1629
|
/**
|
|
1285
1630
|
* Merges default Claude permissions with bundle and user-supplied settings.
|
|
1286
1631
|
*
|
|
@@ -1305,8 +1650,11 @@ declare class AgentConfig extends Component {
|
|
|
1305
1650
|
/**
|
|
1306
1651
|
* Return a bundle's rules with `filePatterns` narrowed to the projects
|
|
1307
1652
|
* that actually matched the bundle's detection predicate (when the bundle
|
|
1308
|
-
* provides `findApplicableProjects`)
|
|
1309
|
-
*
|
|
1653
|
+
* provides `findApplicableProjects`) and any project-specified
|
|
1654
|
+
* `features.customDocSections` entries injected into the matching rule
|
|
1655
|
+
* content. Rules with `ALWAYS` scope and rules on bundles that don't
|
|
1656
|
+
* implement the hook are returned with only the custom-section
|
|
1657
|
+
* transformation (if any) applied.
|
|
1310
1658
|
*/
|
|
1311
1659
|
private bundleRulesFor;
|
|
1312
1660
|
private resolveSkills;
|
|
@@ -1524,6 +1872,51 @@ declare const prReviewBundle: AgentRuleBundle;
|
|
|
1524
1872
|
*/
|
|
1525
1873
|
declare const projenBundle: AgentRuleBundle;
|
|
1526
1874
|
|
|
1875
|
+
/**
|
|
1876
|
+
* Inject domain-specific source-tier examples into the content of the
|
|
1877
|
+
* base bundle's "Source Quality & Verification" rule.
|
|
1878
|
+
*
|
|
1879
|
+
* For every tier whose examples array is non-empty, a
|
|
1880
|
+
* `**Project-specific examples:**` line followed by a bullet list of
|
|
1881
|
+
* the supplied strings is appended immediately beneath the tier's
|
|
1882
|
+
* `### T<n> — ...` heading paragraph block. Tiers whose examples array
|
|
1883
|
+
* is missing or empty are left untouched.
|
|
1884
|
+
*
|
|
1885
|
+
* Returns the original `content` verbatim when the supplied config is
|
|
1886
|
+
* undefined or has no non-empty tier arrays, so callers can
|
|
1887
|
+
* unconditionally pipe content through this function.
|
|
1888
|
+
*/
|
|
1889
|
+
declare function renderSourceTierExamples(content: string, examples: SourceTierExamples | undefined): string;
|
|
1890
|
+
/**
|
|
1891
|
+
* Apply every {@link CustomDocSection} that targets `bundle.name` to
|
|
1892
|
+
* the bundle's rules, returning a new bundle whose matched rules have
|
|
1893
|
+
* the section bodies appended after the configured `afterSection`
|
|
1894
|
+
* heading. Entries that reference a bundle name other than
|
|
1895
|
+
* `bundle.name`, or whose `afterSection` cannot be located in any
|
|
1896
|
+
* rule in the bundle, are silently dropped.
|
|
1897
|
+
*
|
|
1898
|
+
* Entries that target the same `afterSection` heading render in
|
|
1899
|
+
* supplied order — the first supplied entry appears immediately
|
|
1900
|
+
* beneath the target heading block, the second below that, and so on.
|
|
1901
|
+
* This is achieved by advancing the insertion anchor to each
|
|
1902
|
+
* just-injected section's `## <sectionTitle>` heading; the next
|
|
1903
|
+
* same-target entry then lands at the end of that newly-opened
|
|
1904
|
+
* section, which places it immediately after the previous entry
|
|
1905
|
+
* regardless of the original heading's level.
|
|
1906
|
+
*
|
|
1907
|
+
* Returns `bundle` unchanged when `sections` is empty or no entries
|
|
1908
|
+
* match, so callers can unconditionally pipe bundles through this
|
|
1909
|
+
* function without penalty.
|
|
1910
|
+
*/
|
|
1911
|
+
declare function renderCustomDocSections(bundle: AgentRuleBundle, sections: ReadonlyArray<CustomDocSection>): AgentRuleBundle;
|
|
1912
|
+
/**
|
|
1913
|
+
* Render a {@link CustomDocSection} into the markdown block that
|
|
1914
|
+
* `renderCustomDocSections` splices after the target heading block.
|
|
1915
|
+
* Exposed for tests that exercise the renderer directly without
|
|
1916
|
+
* touching a full bundle.
|
|
1917
|
+
*/
|
|
1918
|
+
declare function renderCustomDocSectionBlock(section: CustomDocSection): string;
|
|
1919
|
+
|
|
1527
1920
|
/**
|
|
1528
1921
|
* Render the markdown subsection appended to the
|
|
1529
1922
|
* `issue-label-conventions` rule when `AgentConfigOptions.focus` is
|
|
@@ -1542,6 +1935,29 @@ declare const projenBundle: AgentRuleBundle;
|
|
|
1542
1935
|
*/
|
|
1543
1936
|
declare function renderFocusSection(focus: FocusConfig | undefined): string;
|
|
1544
1937
|
|
|
1938
|
+
/**
|
|
1939
|
+
* Render the markdown subsections appended to the
|
|
1940
|
+
* `meeting-processing-workflow` rule when `AgentConfigOptions.meetings`
|
|
1941
|
+
* is supplied. Returns an empty string when the supplied config has
|
|
1942
|
+
* nothing to render (no meeting types and no meeting areas) so callers
|
|
1943
|
+
* can unconditionally concatenate the result.
|
|
1944
|
+
*
|
|
1945
|
+
* Two subsections are rendered, each gated on its own input array:
|
|
1946
|
+
*
|
|
1947
|
+
* 1. **Recognized meeting types** — rendered when `meetingTypes` is
|
|
1948
|
+
* non-empty. Lists every declared type with its scope, optional
|
|
1949
|
+
* cadence, default duration, and agenda template path. Also
|
|
1950
|
+
* documents the resolved `agendaTemplateRoot`.
|
|
1951
|
+
* 2. **Area → doc-root mapping** — rendered when `meetingAreas` is
|
|
1952
|
+
* non-empty. Lists every declared area with its `id`, label, and
|
|
1953
|
+
* docs-root-relative destination folder.
|
|
1954
|
+
*
|
|
1955
|
+
* Bundles consume the rendered string by appending it to their own
|
|
1956
|
+
* rule content. A caller that has no meeting types and no meeting
|
|
1957
|
+
* areas receives an empty string and can safely concatenate.
|
|
1958
|
+
*/
|
|
1959
|
+
declare function renderMeetingTypesSection(meetings: MeetingsConfig | undefined): string;
|
|
1960
|
+
|
|
1545
1961
|
/**
|
|
1546
1962
|
* Render the markdown subsection appended to the
|
|
1547
1963
|
* `issue-label-conventions` rule when `AgentConfigOptions.priorityRules`
|
|
@@ -4276,4 +4692,4 @@ declare const COMPLETE_JOB_ID = "complete";
|
|
|
4276
4692
|
*/
|
|
4277
4693
|
declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
|
|
4278
4694
|
|
|
4279
|
-
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 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, renderPriorityRulesSection, requirementsAnalystBundle, requirementsReviewerBundle, requirementsWriterBundle, researchPipelineBundle, resolveAgentPaths, resolveAstroProjectOutdir, resolveAwsCdkProjectOutdir, resolveModelAlias, resolveOutdirFromPackageName, resolveTemplateVariables, resolveTypeScriptProjectOutdir, slackBundle, softwareProfileBundle, turborepoBundle, typescriptBundle, validateMonorepoLayout, validateStarlightSingleton, vitestBundle };
|
|
4695
|
+
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, type AgentConfigOptions, type AgentExpansionRules, type AgentFeaturesConfig, 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, type CustomDocSection, 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 SourceTierExamples, 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, renderCustomDocSectionBlock, renderCustomDocSections, renderFocusSection, renderMeetingTypesSection, renderPriorityRulesSection, renderSourceTierExamples, requirementsAnalystBundle, requirementsReviewerBundle, requirementsWriterBundle, researchPipelineBundle, resolveAgentPaths, resolveAstroProjectOutdir, resolveAwsCdkProjectOutdir, resolveModelAlias, resolveOutdirFromPackageName, resolveTemplateVariables, resolveTypeScriptProjectOutdir, slackBundle, softwareProfileBundle, turborepoBundle, typescriptBundle, validateMonorepoLayout, validateStarlightSingleton, vitestBundle };
|