@codedrifters/configulator 0.0.256 → 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 +202 -1
- package/lib/index.d.ts +203 -2
- package/lib/index.js +82 -0
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +81 -0
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.d.mts
CHANGED
|
@@ -1120,6 +1120,164 @@ 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
|
+
}
|
|
1123
1281
|
/*******************************************************************************
|
|
1124
1282
|
*
|
|
1125
1283
|
* AgentConfig Options
|
|
@@ -1252,6 +1410,26 @@ interface AgentConfigOptions {
|
|
|
1252
1410
|
* @see ./bundles/focus.ts#renderFocusSection
|
|
1253
1411
|
*/
|
|
1254
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;
|
|
1255
1433
|
}
|
|
1256
1434
|
|
|
1257
1435
|
/**
|
|
@@ -1542,6 +1720,29 @@ declare const projenBundle: AgentRuleBundle;
|
|
|
1542
1720
|
*/
|
|
1543
1721
|
declare function renderFocusSection(focus: FocusConfig | undefined): string;
|
|
1544
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
|
+
|
|
1545
1746
|
/**
|
|
1546
1747
|
* Render the markdown subsection appended to the
|
|
1547
1748
|
* `issue-label-conventions` rule when `AgentConfigOptions.priorityRules`
|
|
@@ -4276,4 +4477,4 @@ declare const COMPLETE_JOB_ID = "complete";
|
|
|
4276
4477
|
*/
|
|
4277
4478
|
declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
|
|
4278
4479
|
|
|
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 };
|
|
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 };
|
package/lib/index.d.ts
CHANGED
|
@@ -1169,6 +1169,164 @@ interface FocusConfig {
|
|
|
1169
1169
|
*/
|
|
1170
1170
|
readonly agentExpansionRules?: AgentExpansionRules;
|
|
1171
1171
|
}
|
|
1172
|
+
/*******************************************************************************
|
|
1173
|
+
*
|
|
1174
|
+
* Meetings Config
|
|
1175
|
+
*
|
|
1176
|
+
******************************************************************************/
|
|
1177
|
+
/**
|
|
1178
|
+
* Scope classifier for a meeting type. Used by the `meeting-analysis`
|
|
1179
|
+
* bundle to reason about where a given meeting belongs (internal vs
|
|
1180
|
+
* external) and, for external meetings, the nature of the other party.
|
|
1181
|
+
*
|
|
1182
|
+
* - `internal-recurring` — recurring internal meeting (weekly standup,
|
|
1183
|
+
* team sync, planning cadence).
|
|
1184
|
+
* - `internal-oneoff` — one-off internal meeting (brainstorm, kickoff,
|
|
1185
|
+
* retro).
|
|
1186
|
+
* - `external-customer` — meeting with an existing paying customer.
|
|
1187
|
+
* - `external-prospect` — meeting with a sales prospect not yet under
|
|
1188
|
+
* contract.
|
|
1189
|
+
* - `external-partner` — meeting with a partner (integration, vendor,
|
|
1190
|
+
* channel).
|
|
1191
|
+
* - `external-other` — any external meeting that does not fit the
|
|
1192
|
+
* customer / prospect / partner buckets.
|
|
1193
|
+
*/
|
|
1194
|
+
type MeetingScope = "internal-recurring" | "internal-oneoff" | "external-customer" | "external-prospect" | "external-partner" | "external-other";
|
|
1195
|
+
/**
|
|
1196
|
+
* A single meeting-type taxonomy entry declared by the consuming repo.
|
|
1197
|
+
* Each entry names a kind of meeting the project recognizes
|
|
1198
|
+
* (`founders-weekly`, `customer-discovery`, etc.) and supplies the
|
|
1199
|
+
* per-type metadata agents need to route, default, and template that
|
|
1200
|
+
* meeting.
|
|
1201
|
+
*
|
|
1202
|
+
* When `AgentConfigOptions.meetings.meetingTypes` is non-empty, the
|
|
1203
|
+
* `meeting-analysis` bundle renders a "Recognized meeting types"
|
|
1204
|
+
* subsection listing every declared type so agents pick from the
|
|
1205
|
+
* project's vocabulary rather than guessing.
|
|
1206
|
+
*
|
|
1207
|
+
* @see MeetingsConfig
|
|
1208
|
+
* @see ./bundles/meeting-types.ts#renderMeetingTypesSection
|
|
1209
|
+
*/
|
|
1210
|
+
interface MeetingType {
|
|
1211
|
+
/**
|
|
1212
|
+
* Stable machine identifier for the meeting type. Used as the
|
|
1213
|
+
* `meeting_type` frontmatter value on meeting notes and as the key
|
|
1214
|
+
* that the future `agenda` bundle will look up when selecting a
|
|
1215
|
+
* pre-meeting template.
|
|
1216
|
+
* @example 'founders-weekly', 'customer-discovery', 'sprint-review'
|
|
1217
|
+
*/
|
|
1218
|
+
readonly id: string;
|
|
1219
|
+
/** Human-readable label shown in generated rule content. */
|
|
1220
|
+
readonly label: string;
|
|
1221
|
+
/**
|
|
1222
|
+
* Scope classification — whether the meeting is internal (recurring
|
|
1223
|
+
* or one-off) or external (customer / prospect / partner / other).
|
|
1224
|
+
*/
|
|
1225
|
+
readonly scope: MeetingScope;
|
|
1226
|
+
/**
|
|
1227
|
+
* Default scheduled duration in minutes. Optional; agents may use
|
|
1228
|
+
* this when proposing calendar holds or when validating a
|
|
1229
|
+
* transcript's recorded duration against the type's expected
|
|
1230
|
+
* duration.
|
|
1231
|
+
*/
|
|
1232
|
+
readonly defaultDurationMinutes?: number;
|
|
1233
|
+
/**
|
|
1234
|
+
* Path to a pre-meeting agenda skeleton for this type, resolved
|
|
1235
|
+
* relative to `MeetingsConfig.agendaTemplateRoot`. Optional — a
|
|
1236
|
+
* type without a template simply has no canned agenda.
|
|
1237
|
+
* @example 'founders-weekly.md', 'customer-discovery/v2.md'
|
|
1238
|
+
*/
|
|
1239
|
+
readonly agendaTemplatePath?: string;
|
|
1240
|
+
/**
|
|
1241
|
+
* Human-readable cadence descriptor. Free-form text — agents
|
|
1242
|
+
* surface the string verbatim rather than parsing it.
|
|
1243
|
+
* @example 'weekly', 'every 2 weeks', 'one-off'
|
|
1244
|
+
*/
|
|
1245
|
+
readonly cadence?: string;
|
|
1246
|
+
}
|
|
1247
|
+
/**
|
|
1248
|
+
* A single meeting-area entry. Meeting areas provide a coarse
|
|
1249
|
+
* routing map from an `area` frontmatter value on a meeting note to
|
|
1250
|
+
* the sub-tree of the docs root where phase-4 direct edits should
|
|
1251
|
+
* land.
|
|
1252
|
+
*
|
|
1253
|
+
* Example: declaring `{ id: 'product-engineering', label: 'Product &
|
|
1254
|
+
* Engineering', docRoot: 'product' }` tells the `meeting-analysis`
|
|
1255
|
+
* bundle that a meeting whose frontmatter carries
|
|
1256
|
+
* `area: product-engineering` should have its direct edits routed
|
|
1257
|
+
* under `<docsRoot>/product/`.
|
|
1258
|
+
*
|
|
1259
|
+
* When `AgentConfigOptions.meetings.meetingAreas` is non-empty, the
|
|
1260
|
+
* `meeting-analysis` bundle renders an "Area → doc-root mapping"
|
|
1261
|
+
* subsection documenting every declared area and its resolved
|
|
1262
|
+
* destination.
|
|
1263
|
+
*
|
|
1264
|
+
* @see MeetingsConfig
|
|
1265
|
+
* @see ./bundles/meeting-types.ts#renderMeetingTypesSection
|
|
1266
|
+
*/
|
|
1267
|
+
interface MeetingArea {
|
|
1268
|
+
/**
|
|
1269
|
+
* Stable machine identifier for the area. Matches the `area`
|
|
1270
|
+
* frontmatter value on meeting notes.
|
|
1271
|
+
* @example 'product-engineering', 'go-to-market', 'operations'
|
|
1272
|
+
*/
|
|
1273
|
+
readonly id: string;
|
|
1274
|
+
/** Human-readable label shown in generated rule content. */
|
|
1275
|
+
readonly label: string;
|
|
1276
|
+
/**
|
|
1277
|
+
* Destination folder for phase-4 direct edits on meeting notes
|
|
1278
|
+
* carrying this area. Interpreted **relative to the resolved
|
|
1279
|
+
* docs root** (`AgentPathsConfig.docsRoot`, default
|
|
1280
|
+
* `docs/src/content/docs`). Do not include a leading slash.
|
|
1281
|
+
* @example 'product', 'gtm', 'operations'
|
|
1282
|
+
*/
|
|
1283
|
+
readonly docRoot: string;
|
|
1284
|
+
}
|
|
1285
|
+
/**
|
|
1286
|
+
* Meeting-analysis injection points — the set of typed
|
|
1287
|
+
* configurations agents consult when classifying, routing, and
|
|
1288
|
+
* templating a meeting. Every field is optional.
|
|
1289
|
+
*
|
|
1290
|
+
* - `meetingTypes` — the set of meeting types the repo recognizes.
|
|
1291
|
+
* - `meetingAreas` — maps `area` frontmatter to doc-root sub-trees.
|
|
1292
|
+
* - `agendaTemplateRoot` — where pre-meeting agenda skeletons live.
|
|
1293
|
+
*
|
|
1294
|
+
* When supplied, the `meeting-analysis` bundle conditionally renders
|
|
1295
|
+
* two new subsections into the `meeting-processing-workflow` rule —
|
|
1296
|
+
* "Recognized meeting types" (when `meetingTypes` is non-empty) and
|
|
1297
|
+
* "Area → doc-root mapping" (when `meetingAreas` is non-empty).
|
|
1298
|
+
*
|
|
1299
|
+
* @see MeetingType
|
|
1300
|
+
* @see MeetingArea
|
|
1301
|
+
* @see ./bundles/meeting-types.ts#renderMeetingTypesSection
|
|
1302
|
+
*/
|
|
1303
|
+
interface MeetingsConfig {
|
|
1304
|
+
/**
|
|
1305
|
+
* Meeting-type taxonomy. An empty or missing list means the
|
|
1306
|
+
* consuming repo does not classify meetings by type; the
|
|
1307
|
+
* `meeting-analysis` bundle falls back to its generic 4-phase
|
|
1308
|
+
* behaviour.
|
|
1309
|
+
*/
|
|
1310
|
+
readonly meetingTypes?: ReadonlyArray<MeetingType>;
|
|
1311
|
+
/**
|
|
1312
|
+
* Meeting-area map. An empty or missing list means the consuming
|
|
1313
|
+
* repo does not route meetings by area; phase-4 direct edits
|
|
1314
|
+
* continue to land under the default meetings root.
|
|
1315
|
+
*/
|
|
1316
|
+
readonly meetingAreas?: ReadonlyArray<MeetingArea>;
|
|
1317
|
+
/**
|
|
1318
|
+
* Root folder containing pre-meeting agenda-template skeletons.
|
|
1319
|
+
* Resolved at issue-creation time by the (future) `agenda` bundle
|
|
1320
|
+
* when selecting a template for a given `meeting_type`.
|
|
1321
|
+
*
|
|
1322
|
+
* When unset, the `meeting-analysis` bundle documents the default
|
|
1323
|
+
* of `<meetingsRoot>/_agenda-templates` — consumers that wire a
|
|
1324
|
+
* custom `AgentPathsConfig.meetingsRoot` inherit the override
|
|
1325
|
+
* automatically.
|
|
1326
|
+
* @default "<meetingsRoot>/_agenda-templates"
|
|
1327
|
+
*/
|
|
1328
|
+
readonly agendaTemplateRoot?: string;
|
|
1329
|
+
}
|
|
1172
1330
|
/*******************************************************************************
|
|
1173
1331
|
*
|
|
1174
1332
|
* AgentConfig Options
|
|
@@ -1301,6 +1459,26 @@ interface AgentConfigOptions {
|
|
|
1301
1459
|
* @see ./bundles/focus.ts#renderFocusSection
|
|
1302
1460
|
*/
|
|
1303
1461
|
readonly focus?: FocusConfig;
|
|
1462
|
+
/**
|
|
1463
|
+
* Meeting-analysis injection points — typed configs the
|
|
1464
|
+
* `meeting-analysis` bundle consults when classifying, routing, and
|
|
1465
|
+
* templating meetings. Supplies the meeting-type taxonomy, the
|
|
1466
|
+
* area → doc-root routing map, and the agenda-template root used
|
|
1467
|
+
* by the (future) `agenda` bundle.
|
|
1468
|
+
*
|
|
1469
|
+
* When `meetingTypes` is non-empty, the `meeting-analysis` bundle
|
|
1470
|
+
* appends a "Recognized meeting types" subsection to the
|
|
1471
|
+
* `meeting-processing-workflow` rule. When `meetingAreas` is
|
|
1472
|
+
* non-empty, it appends an "Area → doc-root mapping" subsection.
|
|
1473
|
+
* When both are empty or unset, the generated rule content is
|
|
1474
|
+
* unchanged from the no-config baseline.
|
|
1475
|
+
*
|
|
1476
|
+
* @see MeetingsConfig
|
|
1477
|
+
* @see MeetingType
|
|
1478
|
+
* @see MeetingArea
|
|
1479
|
+
* @see ./bundles/meeting-types.ts#renderMeetingTypesSection
|
|
1480
|
+
*/
|
|
1481
|
+
readonly meetings?: MeetingsConfig;
|
|
1304
1482
|
}
|
|
1305
1483
|
|
|
1306
1484
|
/**
|
|
@@ -1591,6 +1769,29 @@ declare const projenBundle: AgentRuleBundle;
|
|
|
1591
1769
|
*/
|
|
1592
1770
|
declare function renderFocusSection(focus: FocusConfig | undefined): string;
|
|
1593
1771
|
|
|
1772
|
+
/**
|
|
1773
|
+
* Render the markdown subsections appended to the
|
|
1774
|
+
* `meeting-processing-workflow` rule when `AgentConfigOptions.meetings`
|
|
1775
|
+
* is supplied. Returns an empty string when the supplied config has
|
|
1776
|
+
* nothing to render (no meeting types and no meeting areas) so callers
|
|
1777
|
+
* can unconditionally concatenate the result.
|
|
1778
|
+
*
|
|
1779
|
+
* Two subsections are rendered, each gated on its own input array:
|
|
1780
|
+
*
|
|
1781
|
+
* 1. **Recognized meeting types** — rendered when `meetingTypes` is
|
|
1782
|
+
* non-empty. Lists every declared type with its scope, optional
|
|
1783
|
+
* cadence, default duration, and agenda template path. Also
|
|
1784
|
+
* documents the resolved `agendaTemplateRoot`.
|
|
1785
|
+
* 2. **Area → doc-root mapping** — rendered when `meetingAreas` is
|
|
1786
|
+
* non-empty. Lists every declared area with its `id`, label, and
|
|
1787
|
+
* docs-root-relative destination folder.
|
|
1788
|
+
*
|
|
1789
|
+
* Bundles consume the rendered string by appending it to their own
|
|
1790
|
+
* rule content. A caller that has no meeting types and no meeting
|
|
1791
|
+
* areas receives an empty string and can safely concatenate.
|
|
1792
|
+
*/
|
|
1793
|
+
declare function renderMeetingTypesSection(meetings: MeetingsConfig | undefined): string;
|
|
1794
|
+
|
|
1594
1795
|
/**
|
|
1595
1796
|
* Render the markdown subsection appended to the
|
|
1596
1797
|
* `issue-label-conventions` rule when `AgentConfigOptions.priorityRules`
|
|
@@ -4325,5 +4526,5 @@ declare const COMPLETE_JOB_ID = "complete";
|
|
|
4325
4526
|
*/
|
|
4326
4527
|
declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
|
|
4327
4528
|
|
|
4328
|
-
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_AGENT_PATHS, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, DEFAULT_TEARDOWN_BRANCH_PATTERNS, DEFAULT_TYPE_LABELS, JsiiFaker, LAYOUT_ENFORCEMENT, LAYOUT_ROOT_BY_PROJECT_TYPE, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MONOREPO_LAYOUT, MonorepoProject, PROD_DEPLOY_NAME, PnpmWorkspace, ProjectMetadata, REQUIREMENTS_WRITER_PATHS, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, ResetTask, STARLIGHT_ROLE, StarlightProject, TestRunner, TurboRepo, TurboRepoTask, TypeScriptConfig, TypeScriptProject, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, Vitest, 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 };
|
|
4329
|
-
export type { AgentConfigOptions, AgentExpansionRules, AgentModel, AgentPathsConfig, 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, FocusArea, FocusAreaMatch, FocusConfig, GitBranch, GitHubBoardMetadata, GitHubProjectMetadata, GitHubSprintMetadata, IDependencyResolver, LabelDefinition, LayoutEnforcement, LayoutViolation, McpServerConfig, McpTransport, MergeMethod, MonorepoLayoutRoot, MonorepoProjectOptions, OrganizationMetadata, PnpmWorkspaceOptions, PriorityRule, ProjectMetadataOptions, RemoteCacheOptions, RepositoryMetadata, ResetTaskOptions, ResolvedAgentPaths, ResolvedProjectMetadata, SlackMetadata, StarlightEditLink, StarlightLogo, StarlightProjectOptions, StarlightRole, StarlightSidebarItem, StarlightSingletonViolation, StarlightSocialLink, SyncLabelsOptions, TemplateResolveResult, TurboRepoOptions, TurboRepoTaskOptions, TypeScriptProjectOptions, VersionKey, VitestConfigOptions, VitestOptions };
|
|
4529
|
+
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_AGENT_PATHS, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, DEFAULT_TEARDOWN_BRANCH_PATTERNS, DEFAULT_TYPE_LABELS, JsiiFaker, LAYOUT_ENFORCEMENT, LAYOUT_ROOT_BY_PROJECT_TYPE, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MONOREPO_LAYOUT, MonorepoProject, PROD_DEPLOY_NAME, PnpmWorkspace, ProjectMetadata, REQUIREMENTS_WRITER_PATHS, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, ResetTask, STARLIGHT_ROLE, StarlightProject, TestRunner, TurboRepo, TurboRepoTask, TypeScriptConfig, TypeScriptProject, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, Vitest, 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 };
|
|
4530
|
+
export type { AgentConfigOptions, AgentExpansionRules, AgentModel, AgentPathsConfig, 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, FocusArea, FocusAreaMatch, FocusConfig, GitBranch, GitHubBoardMetadata, GitHubProjectMetadata, GitHubSprintMetadata, IDependencyResolver, LabelDefinition, LayoutEnforcement, LayoutViolation, McpServerConfig, McpTransport, MeetingArea, MeetingScope, MeetingType, MeetingsConfig, MergeMethod, MonorepoLayoutRoot, MonorepoProjectOptions, OrganizationMetadata, PnpmWorkspaceOptions, PriorityRule, ProjectMetadataOptions, RemoteCacheOptions, RepositoryMetadata, ResetTaskOptions, ResolvedAgentPaths, ResolvedProjectMetadata, SlackMetadata, StarlightEditLink, StarlightLogo, StarlightProjectOptions, StarlightRole, StarlightSidebarItem, StarlightSingletonViolation, StarlightSocialLink, SyncLabelsOptions, TemplateResolveResult, TurboRepoOptions, TurboRepoTaskOptions, TypeScriptProjectOptions, VersionKey, VitestConfigOptions, VitestOptions };
|
package/lib/index.js
CHANGED
|
@@ -244,6 +244,7 @@ __export(index_exports, {
|
|
|
244
244
|
prReviewBundle: () => prReviewBundle,
|
|
245
245
|
projenBundle: () => projenBundle,
|
|
246
246
|
renderFocusSection: () => renderFocusSection,
|
|
247
|
+
renderMeetingTypesSection: () => renderMeetingTypesSection,
|
|
247
248
|
renderPriorityRulesSection: () => renderPriorityRulesSection,
|
|
248
249
|
requirementsAnalystBundle: () => requirementsAnalystBundle,
|
|
249
250
|
requirementsReviewerBundle: () => requirementsReviewerBundle,
|
|
@@ -14702,6 +14703,70 @@ function renderFocusSection(focus) {
|
|
|
14702
14703
|
return lines.join("\n");
|
|
14703
14704
|
}
|
|
14704
14705
|
|
|
14706
|
+
// src/agent/bundles/meeting-types.ts
|
|
14707
|
+
var DEFAULT_AGENDA_TEMPLATE_ROOT = "<meetingsRoot>/_agenda-templates";
|
|
14708
|
+
function renderMeetingTypesSection(meetings) {
|
|
14709
|
+
if (!meetings) {
|
|
14710
|
+
return "";
|
|
14711
|
+
}
|
|
14712
|
+
const types = meetings.meetingTypes ?? [];
|
|
14713
|
+
const areas = meetings.meetingAreas ?? [];
|
|
14714
|
+
if (types.length === 0 && areas.length === 0) {
|
|
14715
|
+
return "";
|
|
14716
|
+
}
|
|
14717
|
+
const sections = [];
|
|
14718
|
+
if (types.length > 0) {
|
|
14719
|
+
sections.push(renderMeetingTypes(types, meetings.agendaTemplateRoot));
|
|
14720
|
+
}
|
|
14721
|
+
if (areas.length > 0) {
|
|
14722
|
+
sections.push(renderMeetingAreas(areas));
|
|
14723
|
+
}
|
|
14724
|
+
return sections.join("\n\n");
|
|
14725
|
+
}
|
|
14726
|
+
function renderMeetingTypes(types, agendaTemplateRoot) {
|
|
14727
|
+
const resolvedRoot = agendaTemplateRoot ?? DEFAULT_AGENDA_TEMPLATE_ROOT;
|
|
14728
|
+
const lines = [
|
|
14729
|
+
"## Recognized meeting types",
|
|
14730
|
+
"",
|
|
14731
|
+
"This project declares a meeting-type taxonomy through",
|
|
14732
|
+
"`AgentConfigOptions.meetings.meetingTypes`. When classifying a",
|
|
14733
|
+
"meeting transcript, pick the `id` from this list that best fits the",
|
|
14734
|
+
"meeting; do **not** invent new type identifiers. Agenda-template",
|
|
14735
|
+
`paths below are resolved relative to \`${resolvedRoot}\`.`,
|
|
14736
|
+
"",
|
|
14737
|
+
"| ID | Label | Scope | Cadence | Default duration | Agenda template |",
|
|
14738
|
+
"|----|-------|-------|---------|------------------|-----------------|"
|
|
14739
|
+
];
|
|
14740
|
+
for (const type of types) {
|
|
14741
|
+
const cadence = type.cadence ? `\`${type.cadence}\`` : "\u2014";
|
|
14742
|
+
const duration = type.defaultDurationMinutes !== void 0 ? `${type.defaultDurationMinutes} min` : "\u2014";
|
|
14743
|
+
const template = type.agendaTemplatePath ? `\`${type.agendaTemplatePath}\`` : "\u2014";
|
|
14744
|
+
lines.push(
|
|
14745
|
+
`| \`${type.id}\` | ${type.label} | \`${type.scope}\` | ${cadence} | ${duration} | ${template} |`
|
|
14746
|
+
);
|
|
14747
|
+
}
|
|
14748
|
+
return lines.join("\n");
|
|
14749
|
+
}
|
|
14750
|
+
function renderMeetingAreas(areas) {
|
|
14751
|
+
const lines = [
|
|
14752
|
+
"## Area \u2192 doc-root mapping",
|
|
14753
|
+
"",
|
|
14754
|
+
"This project declares a meeting-area routing map through",
|
|
14755
|
+
"`AgentConfigOptions.meetings.meetingAreas`. When a meeting note's",
|
|
14756
|
+
"frontmatter carries an `area:` value matching an `id` below, route",
|
|
14757
|
+
"phase-4 direct edits into the corresponding sub-tree of the docs",
|
|
14758
|
+
"root (`AgentPathsConfig.docsRoot`). Meetings whose `area` does not",
|
|
14759
|
+
"match any declared entry fall back to the default meetings root.",
|
|
14760
|
+
"",
|
|
14761
|
+
"| Area ID | Label | Doc-root sub-folder |",
|
|
14762
|
+
"|---------|-------|---------------------|"
|
|
14763
|
+
];
|
|
14764
|
+
for (const area of areas) {
|
|
14765
|
+
lines.push(`| \`${area.id}\` | ${area.label} | \`${area.docRoot}\` |`);
|
|
14766
|
+
}
|
|
14767
|
+
return lines.join("\n");
|
|
14768
|
+
}
|
|
14769
|
+
|
|
14705
14770
|
// src/agent/bundles/priority-rules.ts
|
|
14706
14771
|
function renderPriorityRulesSection(rules) {
|
|
14707
14772
|
if (rules.length === 0) {
|
|
@@ -15686,6 +15751,22 @@ ${section}`
|
|
|
15686
15751
|
|
|
15687
15752
|
---
|
|
15688
15753
|
|
|
15754
|
+
${section}`
|
|
15755
|
+
});
|
|
15756
|
+
}
|
|
15757
|
+
}
|
|
15758
|
+
}
|
|
15759
|
+
if (this.options.meetings) {
|
|
15760
|
+
const meetingRule = ruleMap.get("meeting-processing-workflow");
|
|
15761
|
+
if (meetingRule) {
|
|
15762
|
+
const section = renderMeetingTypesSection(this.options.meetings);
|
|
15763
|
+
if (section.length > 0) {
|
|
15764
|
+
ruleMap.set("meeting-processing-workflow", {
|
|
15765
|
+
...meetingRule,
|
|
15766
|
+
content: `${meetingRule.content}
|
|
15767
|
+
|
|
15768
|
+
---
|
|
15769
|
+
|
|
15689
15770
|
${section}`
|
|
15690
15771
|
});
|
|
15691
15772
|
}
|
|
@@ -18503,6 +18584,7 @@ var TypeScriptConfig = class extends import_projen22.Component {
|
|
|
18503
18584
|
prReviewBundle,
|
|
18504
18585
|
projenBundle,
|
|
18505
18586
|
renderFocusSection,
|
|
18587
|
+
renderMeetingTypesSection,
|
|
18506
18588
|
renderPriorityRulesSection,
|
|
18507
18589
|
requirementsAnalystBundle,
|
|
18508
18590
|
requirementsReviewerBundle,
|