@unbrained/pm-cli 2026.5.4 → 2026.5.6
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/CHANGELOG.md +26 -0
- package/README.md +2 -0
- package/dist/cli/commands/config.js +2 -2
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/core/item/item-format.js +24 -1
- package/dist/core/item/item-format.js.map +1 -1
- package/dist/core/store/item-format-migration.js +35 -23
- package/dist/core/store/item-format-migration.js.map +1 -1
- package/dist/core/telemetry/runtime.js +97 -20
- package/dist/core/telemetry/runtime.js.map +1 -1
- package/docs/QUICKSTART.md +8 -0
- package/docs/RELEASING.md +13 -6
- package/package.json +1 -1
- package/scripts/install.ps1 +12 -1
- package/scripts/install.sh +17 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [2026.5.6] - 2026-05-06
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- Hardened daily auto-release publishing so a newly pushed tag dispatches and waits for the tag-aware Release workflow, avoiding `GITHUB_TOKEN` push-trigger suppression.
|
|
14
|
+
- Clarified GitHub-hosted Sentry issue-threshold gating so release uploads can use CI-scoped Sentry tokens while issue-read checks require `SENTRY_PERSONAL_ADMIN_TOKEN`.
|
|
15
|
+
- Made the Release workflow retry-safe after partial publication by skipping `npm publish` when the target version already exists and by passing the explicit release tag to GitHub Release creation.
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
- Stabilized the linked-test timeout regression on Windows runners by keeping bounded-completion coverage while allowing slower process teardown.
|
|
19
|
+
- Fixed telemetry queue flushing to preserve events appended while another flush is in flight on Windows runners.
|
|
20
|
+
|
|
21
|
+
## [2026.5.5] - 2026-05-05
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
- Added mixed-frontmatter compatibility coverage to the release gate so previous-version `json_markdown` workspaces with YAML wrappers before JSON item data are migrated in a temp project before release.
|
|
25
|
+
- Added `--repair` to bundled install scripts to clear stale global `pm` shims before reinstalling from the npm registry.
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
- Hardened release post-publish verification so npm/npx/bunx checks run from a clean temp directory and fail the release workflow if package execution does not converge.
|
|
29
|
+
- Hardened the daily auto-release pipeline so `.agents/pm`-only tracker commits are ignored for publish eligibility, preventing post-release tracker closure from creating a package-only release.
|
|
30
|
+
- Hardened the Sentry/telemetry release gate so GitHub runners use portable token-based Sentry API checks instead of host-local wrappers, with clearer captured-output diagnostics on gate failures.
|
|
31
|
+
- Documented npm registry installs as the supported global update path and added recovery guidance for broken git-sourced global installs.
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
- Fixed item-format migration to ignore leading YAML wrappers before JSON front matter, continue past unreadable item files with deterministic warnings, and avoid writing `item_format` settings before migration completes.
|
|
35
|
+
|
|
10
36
|
## [2026.5.4] - 2026-05-04
|
|
11
37
|
|
|
12
38
|
### Changed
|
package/README.md
CHANGED
|
@@ -32,6 +32,8 @@ pm --version
|
|
|
32
32
|
pm --help
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
+
Use the npm registry package for global installs and updates. Avoid `npm install -g` from the GitHub git URL for routine updates; npm can leave a stale global shim when replacing git-sourced installs. If that happens, run `bash scripts/install.sh --repair` from a checkout or `npm uninstall -g @unbrained/pm-cli && npm install -g @unbrained/pm-cli`.
|
|
36
|
+
|
|
35
37
|
Project-local invocation also works:
|
|
36
38
|
|
|
37
39
|
```bash
|
|
@@ -804,9 +804,7 @@ export async function runConfig(scopeValue, actionValue, keyValue, options, glob
|
|
|
804
804
|
const nextFormat = normalizeItemFormat(options.format);
|
|
805
805
|
const changed = settings.item_format !== nextFormat || !metadata.has_explicit_item_format;
|
|
806
806
|
let migration = undefined;
|
|
807
|
-
settings.item_format = nextFormat;
|
|
808
807
|
if (changed) {
|
|
809
|
-
await writeSettings(target.pmRoot, settings, "config:set:item_format");
|
|
810
808
|
const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());
|
|
811
809
|
const migrated = await migrateItemFilesToFormat(target.pmRoot, nextFormat, "config:set:item_format:migrate", typeRegistry.type_to_folder, settings.schema);
|
|
812
810
|
migration = {
|
|
@@ -816,6 +814,8 @@ export async function runConfig(scopeValue, actionValue, keyValue, options, glob
|
|
|
816
814
|
removed: migrated.removed,
|
|
817
815
|
warnings: migrated.warnings,
|
|
818
816
|
};
|
|
817
|
+
settings.item_format = nextFormat;
|
|
818
|
+
await writeSettings(target.pmRoot, settings, "config:set:item_format");
|
|
819
819
|
}
|
|
820
820
|
return withWarnings({
|
|
821
821
|
scope,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"/","sources":["cli/commands/config.ts"],"names":[],"mappings":"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","sourcesContent":["import { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { normalizeParentReferencePolicy } from \"../../core/item/parent-reference-policy.js\";\nimport { normalizeSprintReleaseFormatPolicy } from \"../../core/item/sprint-release-format.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { migrateItemFilesToFormat } from \"../../core/store/item-format-migration.js\";\nimport {\n getSettingsPath,\n resolveGlobalPmRoot,\n resolvePmRoot,\n} from \"../../core/store/paths.js\";\nimport { readSettingsWithMetadata, writeSettings } from \"../../core/store/settings.js\";\nimport type {\n ContextDepth,\n GovernanceCloseValidationDefault,\n GovernanceCreateModeDefault,\n GovernanceOwnershipEnforcement,\n GovernancePreset,\n ItemFormat,\n ParentReferencePolicy,\n SprintReleaseFormatPolicy,\n ValidateMetadataProfile,\n ValidateMetadataRequiredField,\n} from \"../../types/index.js\";\nimport { CONTEXT_DEPTH_VALUES, CONTEXT_SECTION_VALUES } from \"../../types/index.js\";\n\nconst CONFIG_SCOPE_VALUES = [\"project\", \"global\"] as const;\ntype ConfigScope = (typeof CONFIG_SCOPE_VALUES)[number];\n\nconst CONFIG_KEY_VALUES = [\n \"definition-of-done\",\n \"definition_of_done\",\n \"item-format\",\n \"item_format\",\n \"history-missing-stream-policy\",\n \"history_missing_stream_policy\",\n \"sprint-release-format-policy\",\n \"sprint_release_format_policy\",\n \"parent-reference-policy\",\n \"parent_reference_policy\",\n \"metadata-validation-profile\",\n \"metadata_validation_profile\",\n \"metadata-required-fields\",\n \"metadata_required_fields\",\n \"lifecycle-stale-blocker-reason-patterns\",\n \"lifecycle_stale_blocker_reason_patterns\",\n \"lifecycle-closure-like-blocked-reason-patterns\",\n \"lifecycle_closure_like_blocked_reason_patterns\",\n \"lifecycle-closure-like-resolution-patterns\",\n \"lifecycle_closure_like_resolution_patterns\",\n \"lifecycle-closure-like-actual-result-patterns\",\n \"lifecycle_closure_like_actual_result_patterns\",\n \"governance-preset\",\n \"governance_preset\",\n \"governance-ownership-enforcement\",\n \"governance_ownership_enforcement\",\n \"governance-create-mode-default\",\n \"governance_create_mode_default\",\n \"governance-close-validation-default\",\n \"governance_close_validation_default\",\n \"governance-parent-reference-policy\",\n \"governance_parent_reference_policy\",\n \"governance-metadata-validation-profile\",\n \"governance_metadata_validation_profile\",\n \"governance-force-required-for-stale-lock\",\n \"governance_force_required_for_stale_lock\",\n \"test-result-tracking\",\n \"test_result_tracking\",\n \"telemetry-tracking\",\n \"telemetry_tracking\",\n \"context\",\n] as const;\ntype ConfigAction = \"get\" | \"set\" | \"list\" | \"export\";\ntype ConfigKey =\n | \"definition_of_done\"\n | \"item_format\"\n | \"history_missing_stream_policy\"\n | \"sprint_release_format_policy\"\n | \"parent_reference_policy\"\n | \"metadata_validation_profile\"\n | \"metadata_required_fields\"\n | \"lifecycle_stale_blocker_reason_patterns\"\n | \"lifecycle_closure_like_blocked_reason_patterns\"\n | \"lifecycle_closure_like_resolution_patterns\"\n | \"lifecycle_closure_like_actual_result_patterns\"\n | \"governance_preset\"\n | \"governance_ownership_enforcement\"\n | \"governance_create_mode_default\"\n | \"governance_close_validation_default\"\n | \"governance_parent_reference_policy\"\n | \"governance_metadata_validation_profile\"\n | \"governance_force_required_for_stale_lock\"\n | \"test_result_tracking\"\n | \"telemetry_tracking\"\n | \"context\";\ntype HistoryMissingStreamPolicy = \"auto_create\" | \"strict_error\";\ntype TestResultTrackingPolicy = \"enabled\" | \"disabled\";\ntype TelemetryTrackingPolicy = \"enabled\" | \"disabled\";\ntype GovernanceForceRequiredForStaleLockPolicy = \"enabled\" | \"disabled\";\ntype ConfigValue =\n | string[]\n | ItemFormat\n | HistoryMissingStreamPolicy\n | SprintReleaseFormatPolicy\n | ParentReferencePolicy\n | ValidateMetadataProfile\n | GovernancePreset\n | GovernanceOwnershipEnforcement\n | GovernanceCreateModeDefault\n | GovernanceCloseValidationDefault\n | GovernanceForceRequiredForStaleLockPolicy\n | TestResultTrackingPolicy\n | TelemetryTrackingPolicy\n | ContextConfigValue;\n\ninterface ContextConfigValue {\n default_depth: string;\n activity_limit: number;\n stale_threshold_days: number;\n sections: Record<string, boolean>;\n}\n\ninterface ConfigKeyDescriptor {\n key: ConfigKey;\n aliases: string[];\n value_kind: \"string_array\" | \"enum\" | \"object\";\n set_flags: string[];\n summary: string;\n value: ConfigValue;\n}\n\nexport interface ConfigCommandOptions {\n criterion?: string[];\n format?: string;\n policy?: string;\n clearCriteria?: boolean;\n defaultDepth?: string;\n activityLimit?: string;\n staleThresholdDays?: string;\n sectionHierarchy?: string;\n sectionActivity?: string;\n sectionProgress?: string;\n sectionBlockers?: string;\n sectionFiles?: string;\n sectionWorkload?: string;\n sectionStaleness?: string;\n sectionTests?: string;\n}\n\nexport interface ConfigResult {\n scope: ConfigScope;\n key?: ConfigKey;\n criteria?: string[];\n format?: ItemFormat;\n policy?:\n | HistoryMissingStreamPolicy\n | SprintReleaseFormatPolicy\n | ParentReferencePolicy\n | ValidateMetadataProfile\n | GovernancePreset\n | GovernanceOwnershipEnforcement\n | GovernanceCreateModeDefault\n | GovernanceCloseValidationDefault\n | GovernanceForceRequiredForStaleLockPolicy\n | TestResultTrackingPolicy\n | TelemetryTrackingPolicy;\n keys?: ConfigKeyDescriptor[];\n values?: Record<ConfigKey, ConfigValue>;\n count?: number;\n context_settings?: ContextConfigValue;\n has_explicit_item_format?: boolean;\n migration?: {\n target_format: ItemFormat;\n scanned: number;\n migrated: string[];\n removed: string[];\n warnings: string[];\n };\n settings_path: string;\n changed: boolean;\n warnings?: string[];\n}\n\nconst CONFIG_KEY_ALIASES: Record<ConfigKey, string[]> = {\n definition_of_done: [\"definition-of-done\", \"definition_of_done\"],\n item_format: [\"item-format\", \"item_format\"],\n history_missing_stream_policy: [\"history-missing-stream-policy\", \"history_missing_stream_policy\"],\n sprint_release_format_policy: [\"sprint-release-format-policy\", \"sprint_release_format_policy\"],\n parent_reference_policy: [\"parent-reference-policy\", \"parent_reference_policy\"],\n metadata_validation_profile: [\"metadata-validation-profile\", \"metadata_validation_profile\"],\n metadata_required_fields: [\"metadata-required-fields\", \"metadata_required_fields\"],\n lifecycle_stale_blocker_reason_patterns: [\n \"lifecycle-stale-blocker-reason-patterns\",\n \"lifecycle_stale_blocker_reason_patterns\",\n ],\n lifecycle_closure_like_blocked_reason_patterns: [\n \"lifecycle-closure-like-blocked-reason-patterns\",\n \"lifecycle_closure_like_blocked_reason_patterns\",\n ],\n lifecycle_closure_like_resolution_patterns: [\n \"lifecycle-closure-like-resolution-patterns\",\n \"lifecycle_closure_like_resolution_patterns\",\n ],\n lifecycle_closure_like_actual_result_patterns: [\n \"lifecycle-closure-like-actual-result-patterns\",\n \"lifecycle_closure_like_actual_result_patterns\",\n ],\n governance_preset: [\"governance-preset\", \"governance_preset\"],\n governance_ownership_enforcement: [\"governance-ownership-enforcement\", \"governance_ownership_enforcement\"],\n governance_create_mode_default: [\"governance-create-mode-default\", \"governance_create_mode_default\"],\n governance_close_validation_default: [\n \"governance-close-validation-default\",\n \"governance_close_validation_default\",\n ],\n governance_parent_reference_policy: [\"governance-parent-reference-policy\", \"governance_parent_reference_policy\"],\n governance_metadata_validation_profile: [\n \"governance-metadata-validation-profile\",\n \"governance_metadata_validation_profile\",\n ],\n governance_force_required_for_stale_lock: [\n \"governance-force-required-for-stale-lock\",\n \"governance_force_required_for_stale_lock\",\n ],\n test_result_tracking: [\"test-result-tracking\", \"test_result_tracking\"],\n telemetry_tracking: [\"telemetry-tracking\", \"telemetry_tracking\"],\n context: [\"context\"],\n};\n\nconst CONFIG_KEY_SUMMARIES: Record<ConfigKey, string> = {\n definition_of_done: \"Definition of Done criteria list.\",\n item_format: \"Default item file format.\",\n history_missing_stream_policy: \"Missing history stream handling policy.\",\n sprint_release_format_policy: \"Sprint/release format validation policy.\",\n parent_reference_policy: \"Parent reference validation policy.\",\n metadata_validation_profile: \"Validate metadata profile policy (core|strict|custom).\",\n metadata_required_fields: \"Validate custom metadata required-fields list.\",\n lifecycle_stale_blocker_reason_patterns:\n \"Validate lifecycle stale-blocker reason substring patterns (criteria list).\",\n lifecycle_closure_like_blocked_reason_patterns:\n \"Validate lifecycle closure-like blocked_reason substring patterns (criteria list).\",\n lifecycle_closure_like_resolution_patterns:\n \"Validate lifecycle closure-like resolution substring patterns (criteria list).\",\n lifecycle_closure_like_actual_result_patterns:\n \"Validate lifecycle closure-like actual_result substring patterns (criteria list).\",\n governance_preset: \"Governance preset policy (minimal|default|strict|custom).\",\n governance_ownership_enforcement: \"Governance ownership enforcement policy (none|warn|strict).\",\n governance_create_mode_default: \"Governance default create mode (progressive|strict).\",\n governance_close_validation_default: \"Governance default close validation mode (off|warn|strict).\",\n governance_parent_reference_policy: \"Governance parent reference policy (warn|strict_error).\",\n governance_metadata_validation_profile: \"Governance metadata validation profile (core|strict|custom).\",\n governance_force_required_for_stale_lock: \"Governance stale-lock force policy (enabled|disabled).\",\n test_result_tracking: \"Item-level linked test result persistence policy.\",\n telemetry_tracking: \"Telemetry usage reporting policy.\",\n context: \"Context command settings (depth, section toggles, limits).\",\n};\n\nconst LIFECYCLE_PATTERN_CONFIG_KEYS: ConfigKey[] = [\n \"lifecycle_stale_blocker_reason_patterns\",\n \"lifecycle_closure_like_blocked_reason_patterns\",\n \"lifecycle_closure_like_resolution_patterns\",\n \"lifecycle_closure_like_actual_result_patterns\",\n];\n\nfunction isCriteriaConfigKey(key: ConfigKey): boolean {\n return key === \"definition_of_done\" || key === \"metadata_required_fields\" || LIFECYCLE_PATTERN_CONFIG_KEYS.includes(key);\n}\n\nfunction normalizeScope(value: string): ConfigScope {\n if ((CONFIG_SCOPE_VALUES as readonly string[]).includes(value)) {\n return value as ConfigScope;\n }\n throw new PmCliError(\n `Invalid config scope \"${value}\". Allowed: ${CONFIG_SCOPE_VALUES.join(\", \")}`,\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeAction(value: string): ConfigAction {\n if (value === \"get\" || value === \"set\" || value === \"list\" || value === \"export\") {\n return value;\n }\n throw new PmCliError(`Invalid config action \"${value}\". Allowed: get, set, list, export`, EXIT_CODE.USAGE);\n}\n\nfunction normalizeKey(value: string): ConfigKey {\n if ((CONFIG_KEY_VALUES as readonly string[]).includes(value)) {\n if (value === \"item-format\" || value === \"item_format\") {\n return \"item_format\";\n }\n if (value === \"history-missing-stream-policy\" || value === \"history_missing_stream_policy\") {\n return \"history_missing_stream_policy\";\n }\n if (value === \"sprint-release-format-policy\" || value === \"sprint_release_format_policy\") {\n return \"sprint_release_format_policy\";\n }\n if (value === \"parent-reference-policy\" || value === \"parent_reference_policy\") {\n return \"parent_reference_policy\";\n }\n if (value === \"metadata-validation-profile\" || value === \"metadata_validation_profile\") {\n return \"metadata_validation_profile\";\n }\n if (value === \"metadata-required-fields\" || value === \"metadata_required_fields\") {\n return \"metadata_required_fields\";\n }\n if (\n value === \"lifecycle-stale-blocker-reason-patterns\" ||\n value === \"lifecycle_stale_blocker_reason_patterns\"\n ) {\n return \"lifecycle_stale_blocker_reason_patterns\";\n }\n if (\n value === \"lifecycle-closure-like-blocked-reason-patterns\" ||\n value === \"lifecycle_closure_like_blocked_reason_patterns\"\n ) {\n return \"lifecycle_closure_like_blocked_reason_patterns\";\n }\n if (\n value === \"lifecycle-closure-like-resolution-patterns\" ||\n value === \"lifecycle_closure_like_resolution_patterns\"\n ) {\n return \"lifecycle_closure_like_resolution_patterns\";\n }\n if (\n value === \"lifecycle-closure-like-actual-result-patterns\" ||\n value === \"lifecycle_closure_like_actual_result_patterns\"\n ) {\n return \"lifecycle_closure_like_actual_result_patterns\";\n }\n if (value === \"governance-preset\" || value === \"governance_preset\") {\n return \"governance_preset\";\n }\n if (value === \"governance-ownership-enforcement\" || value === \"governance_ownership_enforcement\") {\n return \"governance_ownership_enforcement\";\n }\n if (value === \"governance-create-mode-default\" || value === \"governance_create_mode_default\") {\n return \"governance_create_mode_default\";\n }\n if (value === \"governance-close-validation-default\" || value === \"governance_close_validation_default\") {\n return \"governance_close_validation_default\";\n }\n if (value === \"governance-parent-reference-policy\" || value === \"governance_parent_reference_policy\") {\n return \"governance_parent_reference_policy\";\n }\n if (\n value === \"governance-metadata-validation-profile\" ||\n value === \"governance_metadata_validation_profile\"\n ) {\n return \"governance_metadata_validation_profile\";\n }\n if (\n value === \"governance-force-required-for-stale-lock\" ||\n value === \"governance_force_required_for_stale_lock\"\n ) {\n return \"governance_force_required_for_stale_lock\";\n }\n if (value === \"test-result-tracking\" || value === \"test_result_tracking\") {\n return \"test_result_tracking\";\n }\n if (value === \"telemetry-tracking\" || value === \"telemetry_tracking\") {\n return \"telemetry_tracking\";\n }\n if (value === \"context\") {\n return \"context\";\n }\n return \"definition_of_done\";\n }\n throw new PmCliError(\n `Invalid config key \"${value}\". Supported: ${CONFIG_KEY_VALUES.join(\", \")}`,\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeCriteria(values: string[] | undefined, clearCriteria: boolean | undefined): string[] {\n const normalized = [...new Set((values ?? []).map((value) => value.trim()).filter((value) => value.length > 0))].sort(\n (left, right) => left.localeCompare(right),\n );\n if (clearCriteria) {\n if (normalized.length > 0) {\n throw new PmCliError(\n \"Config set definition-of-done cannot combine --clear-criteria with --criterion values\",\n EXIT_CODE.USAGE,\n );\n }\n return [];\n }\n if (normalized.length === 0) {\n throw new PmCliError(\n \"Config set definition-of-done requires at least one non-empty --criterion value (or --clear-criteria to clear)\",\n EXIT_CODE.USAGE,\n );\n }\n return normalized;\n}\n\nfunction normalizeItemFormat(value: string | undefined): ItemFormat {\n const normalized = value?.trim().toLowerCase();\n if (normalized === \"toon\" || normalized === \"json_markdown\") {\n return normalized;\n }\n throw new PmCliError('Config set item-format requires --format with one of: toon, json_markdown', EXIT_CODE.USAGE);\n}\n\nfunction normalizeHistoryMissingStreamPolicy(value: string | undefined): HistoryMissingStreamPolicy {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"auto_create\" || normalized === \"strict_error\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set history-missing-stream-policy requires --policy with one of: auto_create, strict_error\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeTestResultTrackingPolicy(value: string | undefined): TestResultTrackingPolicy {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"enabled\" || normalized === \"disabled\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set test-result-tracking requires --policy with one of: enabled, disabled\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeTelemetryTrackingPolicy(value: string | undefined): TelemetryTrackingPolicy {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"enabled\" || normalized === \"disabled\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set telemetry-tracking requires --policy with one of: enabled, disabled\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeValidateMetadataProfile(value: string | undefined): ValidateMetadataProfile {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"core\" || normalized === \"strict\" || normalized === \"custom\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set metadata-validation-profile requires --policy with one of: core, strict, custom\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeGovernancePreset(value: string | undefined): GovernancePreset {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"minimal\" || normalized === \"default\" || normalized === \"strict\" || normalized === \"custom\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set governance-preset requires --policy with one of: minimal, default, strict, custom\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeGovernanceOwnershipEnforcement(value: string | undefined): GovernanceOwnershipEnforcement {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"none\" || normalized === \"warn\" || normalized === \"strict\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set governance-ownership-enforcement requires --policy with one of: none, warn, strict\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeGovernanceCreateModeDefault(value: string | undefined): GovernanceCreateModeDefault {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"progressive\" || normalized === \"strict\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set governance-create-mode-default requires --policy with one of: progressive, strict\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeGovernanceCloseValidationDefault(value: string | undefined): GovernanceCloseValidationDefault {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"off\" || normalized === \"warn\" || normalized === \"strict\") {\n return normalized;\n }\n if (normalized === \"none\" || normalized === \"disabled\") {\n return \"off\";\n }\n throw new PmCliError(\n \"Config set governance-close-validation-default requires --policy with one of: off, warn, strict\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeGovernanceForceRequiredForStaleLockPolicy(\n value: string | undefined,\n): GovernanceForceRequiredForStaleLockPolicy {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"enabled\" || normalized === \"disabled\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set governance-force-required-for-stale-lock requires --policy with one of: enabled, disabled\",\n EXIT_CODE.USAGE,\n );\n}\n\nconst METADATA_REQUIRED_FIELD_ALIAS_MAP: Record<string, ValidateMetadataRequiredField> = {\n author: \"author\",\n acceptance_criteria: \"acceptance_criteria\",\n \"acceptance-criteria\": \"acceptance_criteria\",\n estimated_minutes: \"estimated_minutes\",\n \"estimated-minutes\": \"estimated_minutes\",\n estimate: \"estimated_minutes\",\n close_reason: \"close_reason\",\n \"close-reason\": \"close_reason\",\n reviewer: \"reviewer\",\n risk: \"risk\",\n confidence: \"confidence\",\n sprint: \"sprint\",\n release: \"release\",\n};\nconst METADATA_REQUIRED_FIELD_OPTIONS = [\n \"author\",\n \"acceptance_criteria\",\n \"estimated_minutes\",\n \"close_reason\",\n \"reviewer\",\n \"risk\",\n \"confidence\",\n \"sprint\",\n \"release\",\n] as const;\n\nfunction normalizeMetadataRequiredFields(\n values: string[] | undefined,\n clearCriteria: boolean | undefined,\n): ValidateMetadataRequiredField[] {\n const normalized = [...new Set((values ?? []).map((value) => value.trim()).filter((value) => value.length > 0))];\n if (clearCriteria) {\n if (normalized.length > 0) {\n throw new PmCliError(\n \"Config set metadata-required-fields cannot combine --clear-criteria with --criterion values\",\n EXIT_CODE.USAGE,\n );\n }\n return [];\n }\n if (normalized.length === 0) {\n throw new PmCliError(\n \"Config set metadata-required-fields requires at least one --criterion value (or --clear-criteria to clear)\",\n EXIT_CODE.USAGE,\n );\n }\n const lowered = normalized.map((value) => value.toLowerCase().replaceAll(\"-\", \"_\"));\n const unsupported = lowered.filter((value) => METADATA_REQUIRED_FIELD_ALIAS_MAP[value] === undefined);\n if (unsupported.length > 0) {\n throw new PmCliError(\n `Config set metadata-required-fields received unsupported values: ${unsupported.join(\", \")}. ` +\n `Supported values: ${METADATA_REQUIRED_FIELD_OPTIONS.join(\", \")}`,\n EXIT_CODE.USAGE,\n );\n }\n return [...new Set(lowered.map((value) => METADATA_REQUIRED_FIELD_ALIAS_MAP[value] as ValidateMetadataRequiredField))].sort(\n (left, right) => left.localeCompare(right),\n );\n}\n\nfunction normalizeLifecyclePatternCriteria(\n key: ConfigKey,\n values: string[] | undefined,\n clearCriteria: boolean | undefined,\n): string[] {\n const normalized = [...new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0))].sort(\n (left, right) => left.localeCompare(right),\n );\n if (clearCriteria) {\n if (normalized.length > 0) {\n throw new PmCliError(\n `Config set ${CONFIG_KEY_ALIASES[key][0]} cannot combine --clear-criteria with --criterion values`,\n EXIT_CODE.USAGE,\n );\n }\n return [];\n }\n if (normalized.length === 0) {\n throw new PmCliError(\n `Config set ${CONFIG_KEY_ALIASES[key][0]} requires at least one --criterion value (or --clear-criteria to clear)`,\n EXIT_CODE.USAGE,\n );\n }\n return normalized;\n}\n\nfunction normalizeWarnings(values: string[]): string[] {\n return [...new Set(values)].sort((left, right) => left.localeCompare(right));\n}\n\nfunction normalizeKeyForAction(action: ConfigAction, value: string | undefined): ConfigKey | undefined {\n if (action === \"list\" || action === \"export\") {\n if (typeof value === \"string\" && value.trim().length > 0) {\n throw new PmCliError(`Config action \"${action}\" does not accept <key>`, EXIT_CODE.USAGE);\n }\n return undefined;\n }\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new PmCliError(`Config action \"${action}\" requires <key>`, EXIT_CODE.USAGE);\n }\n return normalizeKey(value);\n}\n\nfunction readConfigValue(settings: {\n workflow: { definition_of_done: string[] };\n item_format: ItemFormat;\n history: { missing_stream: HistoryMissingStreamPolicy };\n validation: {\n sprint_release_format: SprintReleaseFormatPolicy;\n parent_reference: ParentReferencePolicy;\n metadata_profile: ValidateMetadataProfile;\n metadata_required_fields: ValidateMetadataRequiredField[];\n lifecycle_stale_blocker_reason_patterns: string[];\n lifecycle_closure_like_blocked_reason_patterns: string[];\n lifecycle_closure_like_resolution_patterns: string[];\n lifecycle_closure_like_actual_result_patterns: string[];\n };\n governance: {\n preset: GovernancePreset;\n ownership_enforcement: GovernanceOwnershipEnforcement;\n create_mode_default: GovernanceCreateModeDefault;\n close_validation_default: GovernanceCloseValidationDefault;\n parent_reference: ParentReferencePolicy;\n metadata_profile: ValidateMetadataProfile;\n force_required_for_stale_lock: boolean;\n };\n testing: { record_results_to_items: boolean };\n telemetry: { enabled: boolean };\n context: import(\"../../types/index.js\").ContextSettings;\n}, key: ConfigKey): ConfigValue {\n if (key === \"item_format\") {\n return settings.item_format;\n }\n if (key === \"history_missing_stream_policy\") {\n return settings.history.missing_stream;\n }\n if (key === \"sprint_release_format_policy\") {\n return settings.validation.sprint_release_format;\n }\n if (key === \"parent_reference_policy\") {\n return settings.validation.parent_reference;\n }\n if (key === \"metadata_validation_profile\") {\n return settings.validation.metadata_profile;\n }\n if (key === \"metadata_required_fields\") {\n return [...settings.validation.metadata_required_fields];\n }\n if (key === \"lifecycle_stale_blocker_reason_patterns\") {\n return [...settings.validation.lifecycle_stale_blocker_reason_patterns];\n }\n if (key === \"lifecycle_closure_like_blocked_reason_patterns\") {\n return [...settings.validation.lifecycle_closure_like_blocked_reason_patterns];\n }\n if (key === \"lifecycle_closure_like_resolution_patterns\") {\n return [...settings.validation.lifecycle_closure_like_resolution_patterns];\n }\n if (key === \"lifecycle_closure_like_actual_result_patterns\") {\n return [...settings.validation.lifecycle_closure_like_actual_result_patterns];\n }\n if (key === \"governance_preset\") {\n return settings.governance.preset;\n }\n if (key === \"governance_ownership_enforcement\") {\n return settings.governance.ownership_enforcement;\n }\n if (key === \"governance_create_mode_default\") {\n return settings.governance.create_mode_default;\n }\n if (key === \"governance_close_validation_default\") {\n return settings.governance.close_validation_default;\n }\n if (key === \"governance_parent_reference_policy\") {\n return settings.governance.parent_reference;\n }\n if (key === \"governance_metadata_validation_profile\") {\n return settings.governance.metadata_profile;\n }\n if (key === \"governance_force_required_for_stale_lock\") {\n return settings.governance.force_required_for_stale_lock ? \"enabled\" : \"disabled\";\n }\n if (key === \"test_result_tracking\") {\n return settings.testing.record_results_to_items ? \"enabled\" : \"disabled\";\n }\n if (key === \"telemetry_tracking\") {\n return settings.telemetry.enabled ? \"enabled\" : \"disabled\";\n }\n if (key === \"context\") {\n return {\n default_depth: settings.context.default_depth,\n activity_limit: settings.context.activity_limit,\n stale_threshold_days: settings.context.stale_threshold_days,\n sections: { ...settings.context.sections },\n } satisfies ContextConfigValue;\n }\n return [...settings.workflow.definition_of_done];\n}\n\nfunction withWarnings(result: ConfigResult, warnings: string[]): ConfigResult {\n if (warnings.length === 0) {\n return result;\n }\n return {\n ...result,\n warnings,\n };\n}\n\nasync function resolveSettingsTarget(\n scope: ConfigScope,\n global: GlobalOptions,\n): Promise<{ pmRoot: string; settingsPath: string }> {\n const cwd = process.cwd();\n const pmRoot = scope === \"project\" ? resolvePmRoot(cwd, global.path) : resolveGlobalPmRoot(cwd);\n const settingsPath = getSettingsPath(pmRoot);\n if (scope === \"project\" && !(await pathExists(settingsPath))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n return { pmRoot, settingsPath };\n}\n\nfunction parseSectionToggle(raw: string | undefined): boolean | undefined {\n if (raw === undefined) return undefined;\n const normalized = raw.trim().toLowerCase();\n if (normalized === \"true\" || normalized === \"enabled\" || normalized === \"on\" || normalized === \"1\") return true;\n if (normalized === \"false\" || normalized === \"disabled\" || normalized === \"off\" || normalized === \"0\") return false;\n throw new PmCliError(\n `Context section toggle must be true|false|enabled|disabled, got \"${raw}\"`,\n EXIT_CODE.USAGE,\n );\n}\n\nasync function applyContextConfig(\n settings: import(\"../../types/index.js\").PmSettings,\n options: ConfigCommandOptions,\n target: { pmRoot: string; settingsPath: string },\n scope: ConfigScope,\n warnings: string[],\n): Promise<ConfigResult> {\n let changed = false;\n const ctx = settings.context;\n\n if (options.defaultDepth !== undefined) {\n const normalized = options.defaultDepth.trim().toLowerCase();\n if (!CONTEXT_DEPTH_VALUES.includes(normalized as ContextDepth)) {\n throw new PmCliError(\n `Context --default-depth must be one of ${CONTEXT_DEPTH_VALUES.join(\"|\")}`,\n EXIT_CODE.USAGE,\n );\n }\n if (ctx.default_depth !== normalized) {\n ctx.default_depth = normalized as ContextDepth;\n changed = true;\n }\n }\n\n if (options.activityLimit !== undefined) {\n const parsed = parseInt(options.activityLimit.trim(), 10);\n if (isNaN(parsed) || parsed <= 0) {\n throw new PmCliError(\"Context --activity-limit must be a positive integer\", EXIT_CODE.USAGE);\n }\n if (ctx.activity_limit !== parsed) {\n ctx.activity_limit = parsed;\n changed = true;\n }\n }\n\n if (options.staleThresholdDays !== undefined) {\n const parsed = parseInt(options.staleThresholdDays.trim(), 10);\n if (isNaN(parsed) || parsed <= 0) {\n throw new PmCliError(\"Context --stale-threshold-days must be a positive integer\", EXIT_CODE.USAGE);\n }\n if (ctx.stale_threshold_days !== parsed) {\n ctx.stale_threshold_days = parsed;\n changed = true;\n }\n }\n\n const sectionToggles: [string, string | undefined][] = [\n [\"hierarchy\", options.sectionHierarchy],\n [\"activity\", options.sectionActivity],\n [\"progress\", options.sectionProgress],\n [\"blockers\", options.sectionBlockers],\n [\"files\", options.sectionFiles],\n [\"workload\", options.sectionWorkload],\n [\"staleness\", options.sectionStaleness],\n [\"tests\", options.sectionTests],\n ];\n\n for (const [sectionName, rawValue] of sectionToggles) {\n const toggle = parseSectionToggle(rawValue);\n if (toggle !== undefined) {\n const key = sectionName as keyof typeof ctx.sections;\n if (ctx.sections[key] !== toggle) {\n ctx.sections[key] = toggle;\n changed = true;\n }\n }\n }\n\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:context\");\n }\n\n return withWarnings({\n scope,\n key: \"context\",\n context_settings: {\n default_depth: ctx.default_depth,\n activity_limit: ctx.activity_limit,\n stale_threshold_days: ctx.stale_threshold_days,\n sections: { ...ctx.sections },\n },\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n}\n\nexport async function runConfig(\n scopeValue: string,\n actionValue: string,\n keyValue: string | undefined,\n options: ConfigCommandOptions,\n global: GlobalOptions,\n): Promise<ConfigResult> {\n const scope = normalizeScope(scopeValue);\n const action = normalizeAction(actionValue);\n const key = normalizeKeyForAction(action, keyValue);\n const target = await resolveSettingsTarget(scope, global);\n const { settings, metadata, warnings: settingsReadWarnings } = await readSettingsWithMetadata(target.pmRoot);\n const warnings = normalizeWarnings(settingsReadWarnings);\n\n if (action === \"list\") {\n const keys = (Object.keys(CONFIG_KEY_ALIASES) as ConfigKey[]).map((candidate) => ({\n key: candidate,\n aliases: CONFIG_KEY_ALIASES[candidate],\n value_kind: candidate === \"context\"\n ? (\"object\" as const)\n : isCriteriaConfigKey(candidate) ? (\"string_array\" as const) : (\"enum\" as const),\n set_flags:\n candidate === \"context\"\n ? [\"--default-depth\", \"--activity-limit\", \"--stale-threshold-days\", \"--section-<name>\"]\n : isCriteriaConfigKey(candidate) ? [\"--criterion\", \"--clear-criteria\"] : candidate === \"item_format\" ? [\"--format\"] : [\"--policy\"],\n summary: CONFIG_KEY_SUMMARIES[candidate],\n value: readConfigValue(settings, candidate),\n }));\n return withWarnings(\n {\n scope,\n keys,\n count: keys.length,\n settings_path: target.settingsPath,\n changed: false,\n },\n warnings,\n );\n }\n\n if (action === \"export\") {\n const values = {\n definition_of_done: readConfigValue(settings, \"definition_of_done\"),\n item_format: readConfigValue(settings, \"item_format\"),\n history_missing_stream_policy: readConfigValue(settings, \"history_missing_stream_policy\"),\n sprint_release_format_policy: readConfigValue(settings, \"sprint_release_format_policy\"),\n parent_reference_policy: readConfigValue(settings, \"parent_reference_policy\"),\n metadata_validation_profile: readConfigValue(settings, \"metadata_validation_profile\"),\n metadata_required_fields: readConfigValue(settings, \"metadata_required_fields\"),\n lifecycle_stale_blocker_reason_patterns: readConfigValue(settings, \"lifecycle_stale_blocker_reason_patterns\"),\n lifecycle_closure_like_blocked_reason_patterns: readConfigValue(\n settings,\n \"lifecycle_closure_like_blocked_reason_patterns\",\n ),\n lifecycle_closure_like_resolution_patterns: readConfigValue(settings, \"lifecycle_closure_like_resolution_patterns\"),\n lifecycle_closure_like_actual_result_patterns: readConfigValue(\n settings,\n \"lifecycle_closure_like_actual_result_patterns\",\n ),\n governance_preset: readConfigValue(settings, \"governance_preset\"),\n governance_ownership_enforcement: readConfigValue(settings, \"governance_ownership_enforcement\"),\n governance_create_mode_default: readConfigValue(settings, \"governance_create_mode_default\"),\n governance_close_validation_default: readConfigValue(settings, \"governance_close_validation_default\"),\n governance_parent_reference_policy: readConfigValue(settings, \"governance_parent_reference_policy\"),\n governance_metadata_validation_profile: readConfigValue(settings, \"governance_metadata_validation_profile\"),\n governance_force_required_for_stale_lock: readConfigValue(settings, \"governance_force_required_for_stale_lock\"),\n test_result_tracking: readConfigValue(settings, \"test_result_tracking\"),\n telemetry_tracking: readConfigValue(settings, \"telemetry_tracking\"),\n context: readConfigValue(settings, \"context\"),\n } satisfies Record<ConfigKey, ConfigValue>;\n return withWarnings(\n {\n scope,\n values,\n settings_path: target.settingsPath,\n changed: false,\n },\n warnings,\n );\n }\n\n if (action === \"get\") {\n if (!key) {\n throw new PmCliError('Config action \"get\" requires <key>', EXIT_CODE.USAGE);\n }\n if (key === \"item_format\") {\n return withWarnings({\n scope,\n key,\n format: settings.item_format,\n has_explicit_item_format: metadata.has_explicit_item_format,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"history_missing_stream_policy\") {\n return withWarnings({\n scope,\n key,\n policy: settings.history.missing_stream,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"sprint_release_format_policy\") {\n return withWarnings({\n scope,\n key,\n policy: settings.validation.sprint_release_format,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"parent_reference_policy\") {\n return withWarnings({\n scope,\n key,\n policy: settings.validation.parent_reference,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"metadata_validation_profile\") {\n return withWarnings({\n scope,\n key,\n policy: settings.validation.metadata_profile,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"metadata_required_fields\") {\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.metadata_required_fields],\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"lifecycle_stale_blocker_reason_patterns\") {\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_stale_blocker_reason_patterns],\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"lifecycle_closure_like_blocked_reason_patterns\") {\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_closure_like_blocked_reason_patterns],\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"lifecycle_closure_like_resolution_patterns\") {\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_closure_like_resolution_patterns],\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"lifecycle_closure_like_actual_result_patterns\") {\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_closure_like_actual_result_patterns],\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_preset\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.preset,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_ownership_enforcement\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.ownership_enforcement,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_create_mode_default\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.create_mode_default,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_close_validation_default\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.close_validation_default,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_parent_reference_policy\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.parent_reference,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_metadata_validation_profile\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.metadata_profile,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_force_required_for_stale_lock\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.force_required_for_stale_lock ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"test_result_tracking\") {\n return withWarnings({\n scope,\n key,\n policy: settings.testing.record_results_to_items ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"telemetry_tracking\") {\n return withWarnings({\n scope,\n key,\n policy: settings.telemetry.enabled ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"context\") {\n return withWarnings({\n scope,\n key,\n context_settings: {\n default_depth: settings.context.default_depth,\n activity_limit: settings.context.activity_limit,\n stale_threshold_days: settings.context.stale_threshold_days,\n sections: { ...settings.context.sections },\n },\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n return withWarnings({\n scope,\n key,\n criteria: [...settings.workflow.definition_of_done],\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n\n if (!key) {\n throw new PmCliError('Config action \"set\" requires <key>', EXIT_CODE.USAGE);\n }\n if (options.clearCriteria === true && !isCriteriaConfigKey(key)) {\n throw new PmCliError(\n \"--clear-criteria is only supported with config set criteria-list keys\",\n EXIT_CODE.USAGE,\n );\n }\n if (key === \"item_format\") {\n const nextFormat = normalizeItemFormat(options.format);\n const changed = settings.item_format !== nextFormat || !metadata.has_explicit_item_format;\n let migration: ConfigResult[\"migration\"] = undefined;\n settings.item_format = nextFormat;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:item_format\");\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const migrated = await migrateItemFilesToFormat(\n target.pmRoot,\n nextFormat,\n \"config:set:item_format:migrate\",\n typeRegistry.type_to_folder,\n settings.schema,\n );\n migration = {\n target_format: migrated.target_format,\n scanned: migrated.scanned,\n migrated: migrated.migrated,\n removed: migrated.removed,\n warnings: migrated.warnings,\n };\n }\n return withWarnings({\n scope,\n key,\n format: settings.item_format,\n has_explicit_item_format: true,\n migration,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"history_missing_stream_policy\") {\n const nextPolicy = normalizeHistoryMissingStreamPolicy(options.policy);\n const changed = settings.history.missing_stream !== nextPolicy;\n settings.history.missing_stream = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:history_missing_stream_policy\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.history.missing_stream,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"sprint_release_format_policy\") {\n const nextPolicy = normalizeSprintReleaseFormatPolicy(options.policy);\n const changed = settings.validation.sprint_release_format !== nextPolicy;\n settings.validation.sprint_release_format = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:sprint_release_format_policy\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.validation.sprint_release_format,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"parent_reference_policy\") {\n const nextPolicy = normalizeParentReferencePolicy(options.policy);\n const changed =\n settings.validation.parent_reference !== nextPolicy ||\n settings.governance.preset !== \"custom\" ||\n settings.governance.parent_reference !== nextPolicy;\n settings.validation.parent_reference = nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.parent_reference = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:parent_reference_policy\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.validation.parent_reference,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"metadata_validation_profile\") {\n const nextPolicy = normalizeValidateMetadataProfile(options.policy);\n const changed =\n settings.validation.metadata_profile !== nextPolicy ||\n settings.governance.preset !== \"custom\" ||\n settings.governance.metadata_profile !== nextPolicy;\n settings.validation.metadata_profile = nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.metadata_profile = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:metadata_validation_profile\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.validation.metadata_profile,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"metadata_required_fields\") {\n const nextCriteria = normalizeMetadataRequiredFields(options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== settings.validation.metadata_required_fields.length ||\n nextCriteria.some((value, index) => value !== settings.validation.metadata_required_fields[index]);\n settings.validation.metadata_required_fields = nextCriteria;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:metadata_required_fields\");\n }\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.metadata_required_fields],\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"lifecycle_stale_blocker_reason_patterns\") {\n const nextCriteria = normalizeLifecyclePatternCriteria(key, options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== settings.validation.lifecycle_stale_blocker_reason_patterns.length ||\n nextCriteria.some((value, index) => value !== settings.validation.lifecycle_stale_blocker_reason_patterns[index]);\n settings.validation.lifecycle_stale_blocker_reason_patterns = nextCriteria;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:lifecycle_stale_blocker_reason_patterns\");\n }\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_stale_blocker_reason_patterns],\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"lifecycle_closure_like_blocked_reason_patterns\") {\n const nextCriteria = normalizeLifecyclePatternCriteria(key, options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== settings.validation.lifecycle_closure_like_blocked_reason_patterns.length ||\n nextCriteria.some((value, index) => value !== settings.validation.lifecycle_closure_like_blocked_reason_patterns[index]);\n settings.validation.lifecycle_closure_like_blocked_reason_patterns = nextCriteria;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:lifecycle_closure_like_blocked_reason_patterns\");\n }\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_closure_like_blocked_reason_patterns],\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"lifecycle_closure_like_resolution_patterns\") {\n const nextCriteria = normalizeLifecyclePatternCriteria(key, options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== settings.validation.lifecycle_closure_like_resolution_patterns.length ||\n nextCriteria.some((value, index) => value !== settings.validation.lifecycle_closure_like_resolution_patterns[index]);\n settings.validation.lifecycle_closure_like_resolution_patterns = nextCriteria;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:lifecycle_closure_like_resolution_patterns\");\n }\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_closure_like_resolution_patterns],\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"lifecycle_closure_like_actual_result_patterns\") {\n const nextCriteria = normalizeLifecyclePatternCriteria(key, options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== settings.validation.lifecycle_closure_like_actual_result_patterns.length ||\n nextCriteria.some((value, index) => value !== settings.validation.lifecycle_closure_like_actual_result_patterns[index]);\n settings.validation.lifecycle_closure_like_actual_result_patterns = nextCriteria;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:lifecycle_closure_like_actual_result_patterns\");\n }\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_closure_like_actual_result_patterns],\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_preset\") {\n const nextPolicy = normalizeGovernancePreset(options.policy);\n const changed = settings.governance.preset !== nextPolicy;\n settings.governance.preset = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_preset\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.preset,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_ownership_enforcement\") {\n const nextPolicy = normalizeGovernanceOwnershipEnforcement(options.policy);\n const changed =\n settings.governance.preset !== \"custom\" || settings.governance.ownership_enforcement !== nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.ownership_enforcement = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_ownership_enforcement\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.ownership_enforcement,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_create_mode_default\") {\n const nextPolicy = normalizeGovernanceCreateModeDefault(options.policy);\n const changed =\n settings.governance.preset !== \"custom\" || settings.governance.create_mode_default !== nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.create_mode_default = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_create_mode_default\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.create_mode_default,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_close_validation_default\") {\n const nextPolicy = normalizeGovernanceCloseValidationDefault(options.policy);\n const changed =\n settings.governance.preset !== \"custom\" || settings.governance.close_validation_default !== nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.close_validation_default = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_close_validation_default\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.close_validation_default,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_parent_reference_policy\") {\n const nextPolicy = normalizeParentReferencePolicy(options.policy);\n const changed =\n settings.governance.preset !== \"custom\" || settings.governance.parent_reference !== nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.parent_reference = nextPolicy;\n settings.validation.parent_reference = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_parent_reference_policy\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.parent_reference,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_metadata_validation_profile\") {\n const nextPolicy = normalizeValidateMetadataProfile(options.policy);\n const changed =\n settings.governance.preset !== \"custom\" || settings.governance.metadata_profile !== nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.metadata_profile = nextPolicy;\n settings.validation.metadata_profile = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_metadata_validation_profile\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.metadata_profile,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_force_required_for_stale_lock\") {\n const nextPolicy = normalizeGovernanceForceRequiredForStaleLockPolicy(options.policy);\n const nextEnabled = nextPolicy === \"enabled\";\n const changed =\n settings.governance.preset !== \"custom\" || settings.governance.force_required_for_stale_lock !== nextEnabled;\n settings.governance.preset = \"custom\";\n settings.governance.force_required_for_stale_lock = nextEnabled;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_force_required_for_stale_lock\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.force_required_for_stale_lock ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"test_result_tracking\") {\n const nextPolicy = normalizeTestResultTrackingPolicy(options.policy);\n const nextEnabled = nextPolicy === \"enabled\";\n const changed = settings.testing.record_results_to_items !== nextEnabled;\n settings.testing.record_results_to_items = nextEnabled;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:test_result_tracking\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.testing.record_results_to_items ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"telemetry_tracking\") {\n const nextPolicy = normalizeTelemetryTrackingPolicy(options.policy);\n const nextEnabled = nextPolicy === \"enabled\";\n const changed = settings.telemetry.enabled !== nextEnabled || !settings.telemetry.first_run_prompt_completed;\n settings.telemetry.enabled = nextEnabled;\n settings.telemetry.first_run_prompt_completed = true;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:telemetry_tracking\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.telemetry.enabled ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"context\") {\n return applyContextConfig(settings, options, target, scope, warnings);\n }\n\n const nextCriteria = normalizeCriteria(options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== settings.workflow.definition_of_done.length ||\n nextCriteria.some((value, index) => value !== settings.workflow.definition_of_done[index]);\n\n settings.workflow.definition_of_done = nextCriteria;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:definition_of_done\");\n }\n\n return withWarnings({\n scope,\n key,\n criteria: [...settings.workflow.definition_of_done],\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"/","sources":["cli/commands/config.ts"],"names":[],"mappings":"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","sourcesContent":["import { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { normalizeParentReferencePolicy } from \"../../core/item/parent-reference-policy.js\";\nimport { normalizeSprintReleaseFormatPolicy } from \"../../core/item/sprint-release-format.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { migrateItemFilesToFormat } from \"../../core/store/item-format-migration.js\";\nimport {\n getSettingsPath,\n resolveGlobalPmRoot,\n resolvePmRoot,\n} from \"../../core/store/paths.js\";\nimport { readSettingsWithMetadata, writeSettings } from \"../../core/store/settings.js\";\nimport type {\n ContextDepth,\n GovernanceCloseValidationDefault,\n GovernanceCreateModeDefault,\n GovernanceOwnershipEnforcement,\n GovernancePreset,\n ItemFormat,\n ParentReferencePolicy,\n SprintReleaseFormatPolicy,\n ValidateMetadataProfile,\n ValidateMetadataRequiredField,\n} from \"../../types/index.js\";\nimport { CONTEXT_DEPTH_VALUES, CONTEXT_SECTION_VALUES } from \"../../types/index.js\";\n\nconst CONFIG_SCOPE_VALUES = [\"project\", \"global\"] as const;\ntype ConfigScope = (typeof CONFIG_SCOPE_VALUES)[number];\n\nconst CONFIG_KEY_VALUES = [\n \"definition-of-done\",\n \"definition_of_done\",\n \"item-format\",\n \"item_format\",\n \"history-missing-stream-policy\",\n \"history_missing_stream_policy\",\n \"sprint-release-format-policy\",\n \"sprint_release_format_policy\",\n \"parent-reference-policy\",\n \"parent_reference_policy\",\n \"metadata-validation-profile\",\n \"metadata_validation_profile\",\n \"metadata-required-fields\",\n \"metadata_required_fields\",\n \"lifecycle-stale-blocker-reason-patterns\",\n \"lifecycle_stale_blocker_reason_patterns\",\n \"lifecycle-closure-like-blocked-reason-patterns\",\n \"lifecycle_closure_like_blocked_reason_patterns\",\n \"lifecycle-closure-like-resolution-patterns\",\n \"lifecycle_closure_like_resolution_patterns\",\n \"lifecycle-closure-like-actual-result-patterns\",\n \"lifecycle_closure_like_actual_result_patterns\",\n \"governance-preset\",\n \"governance_preset\",\n \"governance-ownership-enforcement\",\n \"governance_ownership_enforcement\",\n \"governance-create-mode-default\",\n \"governance_create_mode_default\",\n \"governance-close-validation-default\",\n \"governance_close_validation_default\",\n \"governance-parent-reference-policy\",\n \"governance_parent_reference_policy\",\n \"governance-metadata-validation-profile\",\n \"governance_metadata_validation_profile\",\n \"governance-force-required-for-stale-lock\",\n \"governance_force_required_for_stale_lock\",\n \"test-result-tracking\",\n \"test_result_tracking\",\n \"telemetry-tracking\",\n \"telemetry_tracking\",\n \"context\",\n] as const;\ntype ConfigAction = \"get\" | \"set\" | \"list\" | \"export\";\ntype ConfigKey =\n | \"definition_of_done\"\n | \"item_format\"\n | \"history_missing_stream_policy\"\n | \"sprint_release_format_policy\"\n | \"parent_reference_policy\"\n | \"metadata_validation_profile\"\n | \"metadata_required_fields\"\n | \"lifecycle_stale_blocker_reason_patterns\"\n | \"lifecycle_closure_like_blocked_reason_patterns\"\n | \"lifecycle_closure_like_resolution_patterns\"\n | \"lifecycle_closure_like_actual_result_patterns\"\n | \"governance_preset\"\n | \"governance_ownership_enforcement\"\n | \"governance_create_mode_default\"\n | \"governance_close_validation_default\"\n | \"governance_parent_reference_policy\"\n | \"governance_metadata_validation_profile\"\n | \"governance_force_required_for_stale_lock\"\n | \"test_result_tracking\"\n | \"telemetry_tracking\"\n | \"context\";\ntype HistoryMissingStreamPolicy = \"auto_create\" | \"strict_error\";\ntype TestResultTrackingPolicy = \"enabled\" | \"disabled\";\ntype TelemetryTrackingPolicy = \"enabled\" | \"disabled\";\ntype GovernanceForceRequiredForStaleLockPolicy = \"enabled\" | \"disabled\";\ntype ConfigValue =\n | string[]\n | ItemFormat\n | HistoryMissingStreamPolicy\n | SprintReleaseFormatPolicy\n | ParentReferencePolicy\n | ValidateMetadataProfile\n | GovernancePreset\n | GovernanceOwnershipEnforcement\n | GovernanceCreateModeDefault\n | GovernanceCloseValidationDefault\n | GovernanceForceRequiredForStaleLockPolicy\n | TestResultTrackingPolicy\n | TelemetryTrackingPolicy\n | ContextConfigValue;\n\ninterface ContextConfigValue {\n default_depth: string;\n activity_limit: number;\n stale_threshold_days: number;\n sections: Record<string, boolean>;\n}\n\ninterface ConfigKeyDescriptor {\n key: ConfigKey;\n aliases: string[];\n value_kind: \"string_array\" | \"enum\" | \"object\";\n set_flags: string[];\n summary: string;\n value: ConfigValue;\n}\n\nexport interface ConfigCommandOptions {\n criterion?: string[];\n format?: string;\n policy?: string;\n clearCriteria?: boolean;\n defaultDepth?: string;\n activityLimit?: string;\n staleThresholdDays?: string;\n sectionHierarchy?: string;\n sectionActivity?: string;\n sectionProgress?: string;\n sectionBlockers?: string;\n sectionFiles?: string;\n sectionWorkload?: string;\n sectionStaleness?: string;\n sectionTests?: string;\n}\n\nexport interface ConfigResult {\n scope: ConfigScope;\n key?: ConfigKey;\n criteria?: string[];\n format?: ItemFormat;\n policy?:\n | HistoryMissingStreamPolicy\n | SprintReleaseFormatPolicy\n | ParentReferencePolicy\n | ValidateMetadataProfile\n | GovernancePreset\n | GovernanceOwnershipEnforcement\n | GovernanceCreateModeDefault\n | GovernanceCloseValidationDefault\n | GovernanceForceRequiredForStaleLockPolicy\n | TestResultTrackingPolicy\n | TelemetryTrackingPolicy;\n keys?: ConfigKeyDescriptor[];\n values?: Record<ConfigKey, ConfigValue>;\n count?: number;\n context_settings?: ContextConfigValue;\n has_explicit_item_format?: boolean;\n migration?: {\n target_format: ItemFormat;\n scanned: number;\n migrated: string[];\n removed: string[];\n warnings: string[];\n };\n settings_path: string;\n changed: boolean;\n warnings?: string[];\n}\n\nconst CONFIG_KEY_ALIASES: Record<ConfigKey, string[]> = {\n definition_of_done: [\"definition-of-done\", \"definition_of_done\"],\n item_format: [\"item-format\", \"item_format\"],\n history_missing_stream_policy: [\"history-missing-stream-policy\", \"history_missing_stream_policy\"],\n sprint_release_format_policy: [\"sprint-release-format-policy\", \"sprint_release_format_policy\"],\n parent_reference_policy: [\"parent-reference-policy\", \"parent_reference_policy\"],\n metadata_validation_profile: [\"metadata-validation-profile\", \"metadata_validation_profile\"],\n metadata_required_fields: [\"metadata-required-fields\", \"metadata_required_fields\"],\n lifecycle_stale_blocker_reason_patterns: [\n \"lifecycle-stale-blocker-reason-patterns\",\n \"lifecycle_stale_blocker_reason_patterns\",\n ],\n lifecycle_closure_like_blocked_reason_patterns: [\n \"lifecycle-closure-like-blocked-reason-patterns\",\n \"lifecycle_closure_like_blocked_reason_patterns\",\n ],\n lifecycle_closure_like_resolution_patterns: [\n \"lifecycle-closure-like-resolution-patterns\",\n \"lifecycle_closure_like_resolution_patterns\",\n ],\n lifecycle_closure_like_actual_result_patterns: [\n \"lifecycle-closure-like-actual-result-patterns\",\n \"lifecycle_closure_like_actual_result_patterns\",\n ],\n governance_preset: [\"governance-preset\", \"governance_preset\"],\n governance_ownership_enforcement: [\"governance-ownership-enforcement\", \"governance_ownership_enforcement\"],\n governance_create_mode_default: [\"governance-create-mode-default\", \"governance_create_mode_default\"],\n governance_close_validation_default: [\n \"governance-close-validation-default\",\n \"governance_close_validation_default\",\n ],\n governance_parent_reference_policy: [\"governance-parent-reference-policy\", \"governance_parent_reference_policy\"],\n governance_metadata_validation_profile: [\n \"governance-metadata-validation-profile\",\n \"governance_metadata_validation_profile\",\n ],\n governance_force_required_for_stale_lock: [\n \"governance-force-required-for-stale-lock\",\n \"governance_force_required_for_stale_lock\",\n ],\n test_result_tracking: [\"test-result-tracking\", \"test_result_tracking\"],\n telemetry_tracking: [\"telemetry-tracking\", \"telemetry_tracking\"],\n context: [\"context\"],\n};\n\nconst CONFIG_KEY_SUMMARIES: Record<ConfigKey, string> = {\n definition_of_done: \"Definition of Done criteria list.\",\n item_format: \"Default item file format.\",\n history_missing_stream_policy: \"Missing history stream handling policy.\",\n sprint_release_format_policy: \"Sprint/release format validation policy.\",\n parent_reference_policy: \"Parent reference validation policy.\",\n metadata_validation_profile: \"Validate metadata profile policy (core|strict|custom).\",\n metadata_required_fields: \"Validate custom metadata required-fields list.\",\n lifecycle_stale_blocker_reason_patterns:\n \"Validate lifecycle stale-blocker reason substring patterns (criteria list).\",\n lifecycle_closure_like_blocked_reason_patterns:\n \"Validate lifecycle closure-like blocked_reason substring patterns (criteria list).\",\n lifecycle_closure_like_resolution_patterns:\n \"Validate lifecycle closure-like resolution substring patterns (criteria list).\",\n lifecycle_closure_like_actual_result_patterns:\n \"Validate lifecycle closure-like actual_result substring patterns (criteria list).\",\n governance_preset: \"Governance preset policy (minimal|default|strict|custom).\",\n governance_ownership_enforcement: \"Governance ownership enforcement policy (none|warn|strict).\",\n governance_create_mode_default: \"Governance default create mode (progressive|strict).\",\n governance_close_validation_default: \"Governance default close validation mode (off|warn|strict).\",\n governance_parent_reference_policy: \"Governance parent reference policy (warn|strict_error).\",\n governance_metadata_validation_profile: \"Governance metadata validation profile (core|strict|custom).\",\n governance_force_required_for_stale_lock: \"Governance stale-lock force policy (enabled|disabled).\",\n test_result_tracking: \"Item-level linked test result persistence policy.\",\n telemetry_tracking: \"Telemetry usage reporting policy.\",\n context: \"Context command settings (depth, section toggles, limits).\",\n};\n\nconst LIFECYCLE_PATTERN_CONFIG_KEYS: ConfigKey[] = [\n \"lifecycle_stale_blocker_reason_patterns\",\n \"lifecycle_closure_like_blocked_reason_patterns\",\n \"lifecycle_closure_like_resolution_patterns\",\n \"lifecycle_closure_like_actual_result_patterns\",\n];\n\nfunction isCriteriaConfigKey(key: ConfigKey): boolean {\n return key === \"definition_of_done\" || key === \"metadata_required_fields\" || LIFECYCLE_PATTERN_CONFIG_KEYS.includes(key);\n}\n\nfunction normalizeScope(value: string): ConfigScope {\n if ((CONFIG_SCOPE_VALUES as readonly string[]).includes(value)) {\n return value as ConfigScope;\n }\n throw new PmCliError(\n `Invalid config scope \"${value}\". Allowed: ${CONFIG_SCOPE_VALUES.join(\", \")}`,\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeAction(value: string): ConfigAction {\n if (value === \"get\" || value === \"set\" || value === \"list\" || value === \"export\") {\n return value;\n }\n throw new PmCliError(`Invalid config action \"${value}\". Allowed: get, set, list, export`, EXIT_CODE.USAGE);\n}\n\nfunction normalizeKey(value: string): ConfigKey {\n if ((CONFIG_KEY_VALUES as readonly string[]).includes(value)) {\n if (value === \"item-format\" || value === \"item_format\") {\n return \"item_format\";\n }\n if (value === \"history-missing-stream-policy\" || value === \"history_missing_stream_policy\") {\n return \"history_missing_stream_policy\";\n }\n if (value === \"sprint-release-format-policy\" || value === \"sprint_release_format_policy\") {\n return \"sprint_release_format_policy\";\n }\n if (value === \"parent-reference-policy\" || value === \"parent_reference_policy\") {\n return \"parent_reference_policy\";\n }\n if (value === \"metadata-validation-profile\" || value === \"metadata_validation_profile\") {\n return \"metadata_validation_profile\";\n }\n if (value === \"metadata-required-fields\" || value === \"metadata_required_fields\") {\n return \"metadata_required_fields\";\n }\n if (\n value === \"lifecycle-stale-blocker-reason-patterns\" ||\n value === \"lifecycle_stale_blocker_reason_patterns\"\n ) {\n return \"lifecycle_stale_blocker_reason_patterns\";\n }\n if (\n value === \"lifecycle-closure-like-blocked-reason-patterns\" ||\n value === \"lifecycle_closure_like_blocked_reason_patterns\"\n ) {\n return \"lifecycle_closure_like_blocked_reason_patterns\";\n }\n if (\n value === \"lifecycle-closure-like-resolution-patterns\" ||\n value === \"lifecycle_closure_like_resolution_patterns\"\n ) {\n return \"lifecycle_closure_like_resolution_patterns\";\n }\n if (\n value === \"lifecycle-closure-like-actual-result-patterns\" ||\n value === \"lifecycle_closure_like_actual_result_patterns\"\n ) {\n return \"lifecycle_closure_like_actual_result_patterns\";\n }\n if (value === \"governance-preset\" || value === \"governance_preset\") {\n return \"governance_preset\";\n }\n if (value === \"governance-ownership-enforcement\" || value === \"governance_ownership_enforcement\") {\n return \"governance_ownership_enforcement\";\n }\n if (value === \"governance-create-mode-default\" || value === \"governance_create_mode_default\") {\n return \"governance_create_mode_default\";\n }\n if (value === \"governance-close-validation-default\" || value === \"governance_close_validation_default\") {\n return \"governance_close_validation_default\";\n }\n if (value === \"governance-parent-reference-policy\" || value === \"governance_parent_reference_policy\") {\n return \"governance_parent_reference_policy\";\n }\n if (\n value === \"governance-metadata-validation-profile\" ||\n value === \"governance_metadata_validation_profile\"\n ) {\n return \"governance_metadata_validation_profile\";\n }\n if (\n value === \"governance-force-required-for-stale-lock\" ||\n value === \"governance_force_required_for_stale_lock\"\n ) {\n return \"governance_force_required_for_stale_lock\";\n }\n if (value === \"test-result-tracking\" || value === \"test_result_tracking\") {\n return \"test_result_tracking\";\n }\n if (value === \"telemetry-tracking\" || value === \"telemetry_tracking\") {\n return \"telemetry_tracking\";\n }\n if (value === \"context\") {\n return \"context\";\n }\n return \"definition_of_done\";\n }\n throw new PmCliError(\n `Invalid config key \"${value}\". Supported: ${CONFIG_KEY_VALUES.join(\", \")}`,\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeCriteria(values: string[] | undefined, clearCriteria: boolean | undefined): string[] {\n const normalized = [...new Set((values ?? []).map((value) => value.trim()).filter((value) => value.length > 0))].sort(\n (left, right) => left.localeCompare(right),\n );\n if (clearCriteria) {\n if (normalized.length > 0) {\n throw new PmCliError(\n \"Config set definition-of-done cannot combine --clear-criteria with --criterion values\",\n EXIT_CODE.USAGE,\n );\n }\n return [];\n }\n if (normalized.length === 0) {\n throw new PmCliError(\n \"Config set definition-of-done requires at least one non-empty --criterion value (or --clear-criteria to clear)\",\n EXIT_CODE.USAGE,\n );\n }\n return normalized;\n}\n\nfunction normalizeItemFormat(value: string | undefined): ItemFormat {\n const normalized = value?.trim().toLowerCase();\n if (normalized === \"toon\" || normalized === \"json_markdown\") {\n return normalized;\n }\n throw new PmCliError('Config set item-format requires --format with one of: toon, json_markdown', EXIT_CODE.USAGE);\n}\n\nfunction normalizeHistoryMissingStreamPolicy(value: string | undefined): HistoryMissingStreamPolicy {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"auto_create\" || normalized === \"strict_error\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set history-missing-stream-policy requires --policy with one of: auto_create, strict_error\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeTestResultTrackingPolicy(value: string | undefined): TestResultTrackingPolicy {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"enabled\" || normalized === \"disabled\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set test-result-tracking requires --policy with one of: enabled, disabled\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeTelemetryTrackingPolicy(value: string | undefined): TelemetryTrackingPolicy {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"enabled\" || normalized === \"disabled\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set telemetry-tracking requires --policy with one of: enabled, disabled\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeValidateMetadataProfile(value: string | undefined): ValidateMetadataProfile {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"core\" || normalized === \"strict\" || normalized === \"custom\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set metadata-validation-profile requires --policy with one of: core, strict, custom\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeGovernancePreset(value: string | undefined): GovernancePreset {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"minimal\" || normalized === \"default\" || normalized === \"strict\" || normalized === \"custom\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set governance-preset requires --policy with one of: minimal, default, strict, custom\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeGovernanceOwnershipEnforcement(value: string | undefined): GovernanceOwnershipEnforcement {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"none\" || normalized === \"warn\" || normalized === \"strict\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set governance-ownership-enforcement requires --policy with one of: none, warn, strict\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeGovernanceCreateModeDefault(value: string | undefined): GovernanceCreateModeDefault {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"progressive\" || normalized === \"strict\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set governance-create-mode-default requires --policy with one of: progressive, strict\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeGovernanceCloseValidationDefault(value: string | undefined): GovernanceCloseValidationDefault {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"off\" || normalized === \"warn\" || normalized === \"strict\") {\n return normalized;\n }\n if (normalized === \"none\" || normalized === \"disabled\") {\n return \"off\";\n }\n throw new PmCliError(\n \"Config set governance-close-validation-default requires --policy with one of: off, warn, strict\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeGovernanceForceRequiredForStaleLockPolicy(\n value: string | undefined,\n): GovernanceForceRequiredForStaleLockPolicy {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"enabled\" || normalized === \"disabled\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set governance-force-required-for-stale-lock requires --policy with one of: enabled, disabled\",\n EXIT_CODE.USAGE,\n );\n}\n\nconst METADATA_REQUIRED_FIELD_ALIAS_MAP: Record<string, ValidateMetadataRequiredField> = {\n author: \"author\",\n acceptance_criteria: \"acceptance_criteria\",\n \"acceptance-criteria\": \"acceptance_criteria\",\n estimated_minutes: \"estimated_minutes\",\n \"estimated-minutes\": \"estimated_minutes\",\n estimate: \"estimated_minutes\",\n close_reason: \"close_reason\",\n \"close-reason\": \"close_reason\",\n reviewer: \"reviewer\",\n risk: \"risk\",\n confidence: \"confidence\",\n sprint: \"sprint\",\n release: \"release\",\n};\nconst METADATA_REQUIRED_FIELD_OPTIONS = [\n \"author\",\n \"acceptance_criteria\",\n \"estimated_minutes\",\n \"close_reason\",\n \"reviewer\",\n \"risk\",\n \"confidence\",\n \"sprint\",\n \"release\",\n] as const;\n\nfunction normalizeMetadataRequiredFields(\n values: string[] | undefined,\n clearCriteria: boolean | undefined,\n): ValidateMetadataRequiredField[] {\n const normalized = [...new Set((values ?? []).map((value) => value.trim()).filter((value) => value.length > 0))];\n if (clearCriteria) {\n if (normalized.length > 0) {\n throw new PmCliError(\n \"Config set metadata-required-fields cannot combine --clear-criteria with --criterion values\",\n EXIT_CODE.USAGE,\n );\n }\n return [];\n }\n if (normalized.length === 0) {\n throw new PmCliError(\n \"Config set metadata-required-fields requires at least one --criterion value (or --clear-criteria to clear)\",\n EXIT_CODE.USAGE,\n );\n }\n const lowered = normalized.map((value) => value.toLowerCase().replaceAll(\"-\", \"_\"));\n const unsupported = lowered.filter((value) => METADATA_REQUIRED_FIELD_ALIAS_MAP[value] === undefined);\n if (unsupported.length > 0) {\n throw new PmCliError(\n `Config set metadata-required-fields received unsupported values: ${unsupported.join(\", \")}. ` +\n `Supported values: ${METADATA_REQUIRED_FIELD_OPTIONS.join(\", \")}`,\n EXIT_CODE.USAGE,\n );\n }\n return [...new Set(lowered.map((value) => METADATA_REQUIRED_FIELD_ALIAS_MAP[value] as ValidateMetadataRequiredField))].sort(\n (left, right) => left.localeCompare(right),\n );\n}\n\nfunction normalizeLifecyclePatternCriteria(\n key: ConfigKey,\n values: string[] | undefined,\n clearCriteria: boolean | undefined,\n): string[] {\n const normalized = [...new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0))].sort(\n (left, right) => left.localeCompare(right),\n );\n if (clearCriteria) {\n if (normalized.length > 0) {\n throw new PmCliError(\n `Config set ${CONFIG_KEY_ALIASES[key][0]} cannot combine --clear-criteria with --criterion values`,\n EXIT_CODE.USAGE,\n );\n }\n return [];\n }\n if (normalized.length === 0) {\n throw new PmCliError(\n `Config set ${CONFIG_KEY_ALIASES[key][0]} requires at least one --criterion value (or --clear-criteria to clear)`,\n EXIT_CODE.USAGE,\n );\n }\n return normalized;\n}\n\nfunction normalizeWarnings(values: string[]): string[] {\n return [...new Set(values)].sort((left, right) => left.localeCompare(right));\n}\n\nfunction normalizeKeyForAction(action: ConfigAction, value: string | undefined): ConfigKey | undefined {\n if (action === \"list\" || action === \"export\") {\n if (typeof value === \"string\" && value.trim().length > 0) {\n throw new PmCliError(`Config action \"${action}\" does not accept <key>`, EXIT_CODE.USAGE);\n }\n return undefined;\n }\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new PmCliError(`Config action \"${action}\" requires <key>`, EXIT_CODE.USAGE);\n }\n return normalizeKey(value);\n}\n\nfunction readConfigValue(settings: {\n workflow: { definition_of_done: string[] };\n item_format: ItemFormat;\n history: { missing_stream: HistoryMissingStreamPolicy };\n validation: {\n sprint_release_format: SprintReleaseFormatPolicy;\n parent_reference: ParentReferencePolicy;\n metadata_profile: ValidateMetadataProfile;\n metadata_required_fields: ValidateMetadataRequiredField[];\n lifecycle_stale_blocker_reason_patterns: string[];\n lifecycle_closure_like_blocked_reason_patterns: string[];\n lifecycle_closure_like_resolution_patterns: string[];\n lifecycle_closure_like_actual_result_patterns: string[];\n };\n governance: {\n preset: GovernancePreset;\n ownership_enforcement: GovernanceOwnershipEnforcement;\n create_mode_default: GovernanceCreateModeDefault;\n close_validation_default: GovernanceCloseValidationDefault;\n parent_reference: ParentReferencePolicy;\n metadata_profile: ValidateMetadataProfile;\n force_required_for_stale_lock: boolean;\n };\n testing: { record_results_to_items: boolean };\n telemetry: { enabled: boolean };\n context: import(\"../../types/index.js\").ContextSettings;\n}, key: ConfigKey): ConfigValue {\n if (key === \"item_format\") {\n return settings.item_format;\n }\n if (key === \"history_missing_stream_policy\") {\n return settings.history.missing_stream;\n }\n if (key === \"sprint_release_format_policy\") {\n return settings.validation.sprint_release_format;\n }\n if (key === \"parent_reference_policy\") {\n return settings.validation.parent_reference;\n }\n if (key === \"metadata_validation_profile\") {\n return settings.validation.metadata_profile;\n }\n if (key === \"metadata_required_fields\") {\n return [...settings.validation.metadata_required_fields];\n }\n if (key === \"lifecycle_stale_blocker_reason_patterns\") {\n return [...settings.validation.lifecycle_stale_blocker_reason_patterns];\n }\n if (key === \"lifecycle_closure_like_blocked_reason_patterns\") {\n return [...settings.validation.lifecycle_closure_like_blocked_reason_patterns];\n }\n if (key === \"lifecycle_closure_like_resolution_patterns\") {\n return [...settings.validation.lifecycle_closure_like_resolution_patterns];\n }\n if (key === \"lifecycle_closure_like_actual_result_patterns\") {\n return [...settings.validation.lifecycle_closure_like_actual_result_patterns];\n }\n if (key === \"governance_preset\") {\n return settings.governance.preset;\n }\n if (key === \"governance_ownership_enforcement\") {\n return settings.governance.ownership_enforcement;\n }\n if (key === \"governance_create_mode_default\") {\n return settings.governance.create_mode_default;\n }\n if (key === \"governance_close_validation_default\") {\n return settings.governance.close_validation_default;\n }\n if (key === \"governance_parent_reference_policy\") {\n return settings.governance.parent_reference;\n }\n if (key === \"governance_metadata_validation_profile\") {\n return settings.governance.metadata_profile;\n }\n if (key === \"governance_force_required_for_stale_lock\") {\n return settings.governance.force_required_for_stale_lock ? \"enabled\" : \"disabled\";\n }\n if (key === \"test_result_tracking\") {\n return settings.testing.record_results_to_items ? \"enabled\" : \"disabled\";\n }\n if (key === \"telemetry_tracking\") {\n return settings.telemetry.enabled ? \"enabled\" : \"disabled\";\n }\n if (key === \"context\") {\n return {\n default_depth: settings.context.default_depth,\n activity_limit: settings.context.activity_limit,\n stale_threshold_days: settings.context.stale_threshold_days,\n sections: { ...settings.context.sections },\n } satisfies ContextConfigValue;\n }\n return [...settings.workflow.definition_of_done];\n}\n\nfunction withWarnings(result: ConfigResult, warnings: string[]): ConfigResult {\n if (warnings.length === 0) {\n return result;\n }\n return {\n ...result,\n warnings,\n };\n}\n\nasync function resolveSettingsTarget(\n scope: ConfigScope,\n global: GlobalOptions,\n): Promise<{ pmRoot: string; settingsPath: string }> {\n const cwd = process.cwd();\n const pmRoot = scope === \"project\" ? resolvePmRoot(cwd, global.path) : resolveGlobalPmRoot(cwd);\n const settingsPath = getSettingsPath(pmRoot);\n if (scope === \"project\" && !(await pathExists(settingsPath))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n return { pmRoot, settingsPath };\n}\n\nfunction parseSectionToggle(raw: string | undefined): boolean | undefined {\n if (raw === undefined) return undefined;\n const normalized = raw.trim().toLowerCase();\n if (normalized === \"true\" || normalized === \"enabled\" || normalized === \"on\" || normalized === \"1\") return true;\n if (normalized === \"false\" || normalized === \"disabled\" || normalized === \"off\" || normalized === \"0\") return false;\n throw new PmCliError(\n `Context section toggle must be true|false|enabled|disabled, got \"${raw}\"`,\n EXIT_CODE.USAGE,\n );\n}\n\nasync function applyContextConfig(\n settings: import(\"../../types/index.js\").PmSettings,\n options: ConfigCommandOptions,\n target: { pmRoot: string; settingsPath: string },\n scope: ConfigScope,\n warnings: string[],\n): Promise<ConfigResult> {\n let changed = false;\n const ctx = settings.context;\n\n if (options.defaultDepth !== undefined) {\n const normalized = options.defaultDepth.trim().toLowerCase();\n if (!CONTEXT_DEPTH_VALUES.includes(normalized as ContextDepth)) {\n throw new PmCliError(\n `Context --default-depth must be one of ${CONTEXT_DEPTH_VALUES.join(\"|\")}`,\n EXIT_CODE.USAGE,\n );\n }\n if (ctx.default_depth !== normalized) {\n ctx.default_depth = normalized as ContextDepth;\n changed = true;\n }\n }\n\n if (options.activityLimit !== undefined) {\n const parsed = parseInt(options.activityLimit.trim(), 10);\n if (isNaN(parsed) || parsed <= 0) {\n throw new PmCliError(\"Context --activity-limit must be a positive integer\", EXIT_CODE.USAGE);\n }\n if (ctx.activity_limit !== parsed) {\n ctx.activity_limit = parsed;\n changed = true;\n }\n }\n\n if (options.staleThresholdDays !== undefined) {\n const parsed = parseInt(options.staleThresholdDays.trim(), 10);\n if (isNaN(parsed) || parsed <= 0) {\n throw new PmCliError(\"Context --stale-threshold-days must be a positive integer\", EXIT_CODE.USAGE);\n }\n if (ctx.stale_threshold_days !== parsed) {\n ctx.stale_threshold_days = parsed;\n changed = true;\n }\n }\n\n const sectionToggles: [string, string | undefined][] = [\n [\"hierarchy\", options.sectionHierarchy],\n [\"activity\", options.sectionActivity],\n [\"progress\", options.sectionProgress],\n [\"blockers\", options.sectionBlockers],\n [\"files\", options.sectionFiles],\n [\"workload\", options.sectionWorkload],\n [\"staleness\", options.sectionStaleness],\n [\"tests\", options.sectionTests],\n ];\n\n for (const [sectionName, rawValue] of sectionToggles) {\n const toggle = parseSectionToggle(rawValue);\n if (toggle !== undefined) {\n const key = sectionName as keyof typeof ctx.sections;\n if (ctx.sections[key] !== toggle) {\n ctx.sections[key] = toggle;\n changed = true;\n }\n }\n }\n\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:context\");\n }\n\n return withWarnings({\n scope,\n key: \"context\",\n context_settings: {\n default_depth: ctx.default_depth,\n activity_limit: ctx.activity_limit,\n stale_threshold_days: ctx.stale_threshold_days,\n sections: { ...ctx.sections },\n },\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n}\n\nexport async function runConfig(\n scopeValue: string,\n actionValue: string,\n keyValue: string | undefined,\n options: ConfigCommandOptions,\n global: GlobalOptions,\n): Promise<ConfigResult> {\n const scope = normalizeScope(scopeValue);\n const action = normalizeAction(actionValue);\n const key = normalizeKeyForAction(action, keyValue);\n const target = await resolveSettingsTarget(scope, global);\n const { settings, metadata, warnings: settingsReadWarnings } = await readSettingsWithMetadata(target.pmRoot);\n const warnings = normalizeWarnings(settingsReadWarnings);\n\n if (action === \"list\") {\n const keys = (Object.keys(CONFIG_KEY_ALIASES) as ConfigKey[]).map((candidate) => ({\n key: candidate,\n aliases: CONFIG_KEY_ALIASES[candidate],\n value_kind: candidate === \"context\"\n ? (\"object\" as const)\n : isCriteriaConfigKey(candidate) ? (\"string_array\" as const) : (\"enum\" as const),\n set_flags:\n candidate === \"context\"\n ? [\"--default-depth\", \"--activity-limit\", \"--stale-threshold-days\", \"--section-<name>\"]\n : isCriteriaConfigKey(candidate) ? [\"--criterion\", \"--clear-criteria\"] : candidate === \"item_format\" ? [\"--format\"] : [\"--policy\"],\n summary: CONFIG_KEY_SUMMARIES[candidate],\n value: readConfigValue(settings, candidate),\n }));\n return withWarnings(\n {\n scope,\n keys,\n count: keys.length,\n settings_path: target.settingsPath,\n changed: false,\n },\n warnings,\n );\n }\n\n if (action === \"export\") {\n const values = {\n definition_of_done: readConfigValue(settings, \"definition_of_done\"),\n item_format: readConfigValue(settings, \"item_format\"),\n history_missing_stream_policy: readConfigValue(settings, \"history_missing_stream_policy\"),\n sprint_release_format_policy: readConfigValue(settings, \"sprint_release_format_policy\"),\n parent_reference_policy: readConfigValue(settings, \"parent_reference_policy\"),\n metadata_validation_profile: readConfigValue(settings, \"metadata_validation_profile\"),\n metadata_required_fields: readConfigValue(settings, \"metadata_required_fields\"),\n lifecycle_stale_blocker_reason_patterns: readConfigValue(settings, \"lifecycle_stale_blocker_reason_patterns\"),\n lifecycle_closure_like_blocked_reason_patterns: readConfigValue(\n settings,\n \"lifecycle_closure_like_blocked_reason_patterns\",\n ),\n lifecycle_closure_like_resolution_patterns: readConfigValue(settings, \"lifecycle_closure_like_resolution_patterns\"),\n lifecycle_closure_like_actual_result_patterns: readConfigValue(\n settings,\n \"lifecycle_closure_like_actual_result_patterns\",\n ),\n governance_preset: readConfigValue(settings, \"governance_preset\"),\n governance_ownership_enforcement: readConfigValue(settings, \"governance_ownership_enforcement\"),\n governance_create_mode_default: readConfigValue(settings, \"governance_create_mode_default\"),\n governance_close_validation_default: readConfigValue(settings, \"governance_close_validation_default\"),\n governance_parent_reference_policy: readConfigValue(settings, \"governance_parent_reference_policy\"),\n governance_metadata_validation_profile: readConfigValue(settings, \"governance_metadata_validation_profile\"),\n governance_force_required_for_stale_lock: readConfigValue(settings, \"governance_force_required_for_stale_lock\"),\n test_result_tracking: readConfigValue(settings, \"test_result_tracking\"),\n telemetry_tracking: readConfigValue(settings, \"telemetry_tracking\"),\n context: readConfigValue(settings, \"context\"),\n } satisfies Record<ConfigKey, ConfigValue>;\n return withWarnings(\n {\n scope,\n values,\n settings_path: target.settingsPath,\n changed: false,\n },\n warnings,\n );\n }\n\n if (action === \"get\") {\n if (!key) {\n throw new PmCliError('Config action \"get\" requires <key>', EXIT_CODE.USAGE);\n }\n if (key === \"item_format\") {\n return withWarnings({\n scope,\n key,\n format: settings.item_format,\n has_explicit_item_format: metadata.has_explicit_item_format,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"history_missing_stream_policy\") {\n return withWarnings({\n scope,\n key,\n policy: settings.history.missing_stream,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"sprint_release_format_policy\") {\n return withWarnings({\n scope,\n key,\n policy: settings.validation.sprint_release_format,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"parent_reference_policy\") {\n return withWarnings({\n scope,\n key,\n policy: settings.validation.parent_reference,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"metadata_validation_profile\") {\n return withWarnings({\n scope,\n key,\n policy: settings.validation.metadata_profile,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"metadata_required_fields\") {\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.metadata_required_fields],\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"lifecycle_stale_blocker_reason_patterns\") {\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_stale_blocker_reason_patterns],\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"lifecycle_closure_like_blocked_reason_patterns\") {\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_closure_like_blocked_reason_patterns],\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"lifecycle_closure_like_resolution_patterns\") {\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_closure_like_resolution_patterns],\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"lifecycle_closure_like_actual_result_patterns\") {\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_closure_like_actual_result_patterns],\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_preset\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.preset,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_ownership_enforcement\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.ownership_enforcement,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_create_mode_default\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.create_mode_default,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_close_validation_default\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.close_validation_default,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_parent_reference_policy\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.parent_reference,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_metadata_validation_profile\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.metadata_profile,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_force_required_for_stale_lock\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.force_required_for_stale_lock ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"test_result_tracking\") {\n return withWarnings({\n scope,\n key,\n policy: settings.testing.record_results_to_items ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"telemetry_tracking\") {\n return withWarnings({\n scope,\n key,\n policy: settings.telemetry.enabled ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"context\") {\n return withWarnings({\n scope,\n key,\n context_settings: {\n default_depth: settings.context.default_depth,\n activity_limit: settings.context.activity_limit,\n stale_threshold_days: settings.context.stale_threshold_days,\n sections: { ...settings.context.sections },\n },\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n return withWarnings({\n scope,\n key,\n criteria: [...settings.workflow.definition_of_done],\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n\n if (!key) {\n throw new PmCliError('Config action \"set\" requires <key>', EXIT_CODE.USAGE);\n }\n if (options.clearCriteria === true && !isCriteriaConfigKey(key)) {\n throw new PmCliError(\n \"--clear-criteria is only supported with config set criteria-list keys\",\n EXIT_CODE.USAGE,\n );\n }\n if (key === \"item_format\") {\n const nextFormat = normalizeItemFormat(options.format);\n const changed = settings.item_format !== nextFormat || !metadata.has_explicit_item_format;\n let migration: ConfigResult[\"migration\"] = undefined;\n if (changed) {\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const migrated = await migrateItemFilesToFormat(\n target.pmRoot,\n nextFormat,\n \"config:set:item_format:migrate\",\n typeRegistry.type_to_folder,\n settings.schema,\n );\n migration = {\n target_format: migrated.target_format,\n scanned: migrated.scanned,\n migrated: migrated.migrated,\n removed: migrated.removed,\n warnings: migrated.warnings,\n };\n settings.item_format = nextFormat;\n await writeSettings(target.pmRoot, settings, \"config:set:item_format\");\n }\n return withWarnings({\n scope,\n key,\n format: settings.item_format,\n has_explicit_item_format: true,\n migration,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"history_missing_stream_policy\") {\n const nextPolicy = normalizeHistoryMissingStreamPolicy(options.policy);\n const changed = settings.history.missing_stream !== nextPolicy;\n settings.history.missing_stream = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:history_missing_stream_policy\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.history.missing_stream,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"sprint_release_format_policy\") {\n const nextPolicy = normalizeSprintReleaseFormatPolicy(options.policy);\n const changed = settings.validation.sprint_release_format !== nextPolicy;\n settings.validation.sprint_release_format = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:sprint_release_format_policy\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.validation.sprint_release_format,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"parent_reference_policy\") {\n const nextPolicy = normalizeParentReferencePolicy(options.policy);\n const changed =\n settings.validation.parent_reference !== nextPolicy ||\n settings.governance.preset !== \"custom\" ||\n settings.governance.parent_reference !== nextPolicy;\n settings.validation.parent_reference = nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.parent_reference = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:parent_reference_policy\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.validation.parent_reference,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"metadata_validation_profile\") {\n const nextPolicy = normalizeValidateMetadataProfile(options.policy);\n const changed =\n settings.validation.metadata_profile !== nextPolicy ||\n settings.governance.preset !== \"custom\" ||\n settings.governance.metadata_profile !== nextPolicy;\n settings.validation.metadata_profile = nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.metadata_profile = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:metadata_validation_profile\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.validation.metadata_profile,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"metadata_required_fields\") {\n const nextCriteria = normalizeMetadataRequiredFields(options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== settings.validation.metadata_required_fields.length ||\n nextCriteria.some((value, index) => value !== settings.validation.metadata_required_fields[index]);\n settings.validation.metadata_required_fields = nextCriteria;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:metadata_required_fields\");\n }\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.metadata_required_fields],\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"lifecycle_stale_blocker_reason_patterns\") {\n const nextCriteria = normalizeLifecyclePatternCriteria(key, options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== settings.validation.lifecycle_stale_blocker_reason_patterns.length ||\n nextCriteria.some((value, index) => value !== settings.validation.lifecycle_stale_blocker_reason_patterns[index]);\n settings.validation.lifecycle_stale_blocker_reason_patterns = nextCriteria;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:lifecycle_stale_blocker_reason_patterns\");\n }\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_stale_blocker_reason_patterns],\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"lifecycle_closure_like_blocked_reason_patterns\") {\n const nextCriteria = normalizeLifecyclePatternCriteria(key, options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== settings.validation.lifecycle_closure_like_blocked_reason_patterns.length ||\n nextCriteria.some((value, index) => value !== settings.validation.lifecycle_closure_like_blocked_reason_patterns[index]);\n settings.validation.lifecycle_closure_like_blocked_reason_patterns = nextCriteria;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:lifecycle_closure_like_blocked_reason_patterns\");\n }\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_closure_like_blocked_reason_patterns],\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"lifecycle_closure_like_resolution_patterns\") {\n const nextCriteria = normalizeLifecyclePatternCriteria(key, options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== settings.validation.lifecycle_closure_like_resolution_patterns.length ||\n nextCriteria.some((value, index) => value !== settings.validation.lifecycle_closure_like_resolution_patterns[index]);\n settings.validation.lifecycle_closure_like_resolution_patterns = nextCriteria;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:lifecycle_closure_like_resolution_patterns\");\n }\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_closure_like_resolution_patterns],\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"lifecycle_closure_like_actual_result_patterns\") {\n const nextCriteria = normalizeLifecyclePatternCriteria(key, options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== settings.validation.lifecycle_closure_like_actual_result_patterns.length ||\n nextCriteria.some((value, index) => value !== settings.validation.lifecycle_closure_like_actual_result_patterns[index]);\n settings.validation.lifecycle_closure_like_actual_result_patterns = nextCriteria;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:lifecycle_closure_like_actual_result_patterns\");\n }\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_closure_like_actual_result_patterns],\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_preset\") {\n const nextPolicy = normalizeGovernancePreset(options.policy);\n const changed = settings.governance.preset !== nextPolicy;\n settings.governance.preset = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_preset\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.preset,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_ownership_enforcement\") {\n const nextPolicy = normalizeGovernanceOwnershipEnforcement(options.policy);\n const changed =\n settings.governance.preset !== \"custom\" || settings.governance.ownership_enforcement !== nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.ownership_enforcement = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_ownership_enforcement\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.ownership_enforcement,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_create_mode_default\") {\n const nextPolicy = normalizeGovernanceCreateModeDefault(options.policy);\n const changed =\n settings.governance.preset !== \"custom\" || settings.governance.create_mode_default !== nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.create_mode_default = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_create_mode_default\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.create_mode_default,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_close_validation_default\") {\n const nextPolicy = normalizeGovernanceCloseValidationDefault(options.policy);\n const changed =\n settings.governance.preset !== \"custom\" || settings.governance.close_validation_default !== nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.close_validation_default = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_close_validation_default\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.close_validation_default,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_parent_reference_policy\") {\n const nextPolicy = normalizeParentReferencePolicy(options.policy);\n const changed =\n settings.governance.preset !== \"custom\" || settings.governance.parent_reference !== nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.parent_reference = nextPolicy;\n settings.validation.parent_reference = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_parent_reference_policy\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.parent_reference,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_metadata_validation_profile\") {\n const nextPolicy = normalizeValidateMetadataProfile(options.policy);\n const changed =\n settings.governance.preset !== \"custom\" || settings.governance.metadata_profile !== nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.metadata_profile = nextPolicy;\n settings.validation.metadata_profile = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_metadata_validation_profile\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.metadata_profile,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_force_required_for_stale_lock\") {\n const nextPolicy = normalizeGovernanceForceRequiredForStaleLockPolicy(options.policy);\n const nextEnabled = nextPolicy === \"enabled\";\n const changed =\n settings.governance.preset !== \"custom\" || settings.governance.force_required_for_stale_lock !== nextEnabled;\n settings.governance.preset = \"custom\";\n settings.governance.force_required_for_stale_lock = nextEnabled;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_force_required_for_stale_lock\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.force_required_for_stale_lock ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"test_result_tracking\") {\n const nextPolicy = normalizeTestResultTrackingPolicy(options.policy);\n const nextEnabled = nextPolicy === \"enabled\";\n const changed = settings.testing.record_results_to_items !== nextEnabled;\n settings.testing.record_results_to_items = nextEnabled;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:test_result_tracking\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.testing.record_results_to_items ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"telemetry_tracking\") {\n const nextPolicy = normalizeTelemetryTrackingPolicy(options.policy);\n const nextEnabled = nextPolicy === \"enabled\";\n const changed = settings.telemetry.enabled !== nextEnabled || !settings.telemetry.first_run_prompt_completed;\n settings.telemetry.enabled = nextEnabled;\n settings.telemetry.first_run_prompt_completed = true;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:telemetry_tracking\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.telemetry.enabled ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"context\") {\n return applyContextConfig(settings, options, target, scope, warnings);\n }\n\n const nextCriteria = normalizeCriteria(options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== settings.workflow.definition_of_done.length ||\n nextCriteria.some((value, index) => value !== settings.workflow.definition_of_done[index]);\n\n settings.workflow.definition_of_done = nextCriteria;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:definition_of_done\");\n }\n\n return withWarnings({\n scope,\n key,\n criteria: [...settings.workflow.definition_of_done],\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n}\n"]}
|
|
@@ -773,8 +773,31 @@ export function splitFrontMatter(content) {
|
|
|
773
773
|
const body = content.slice(end + 1).replace(/^\r?\n+/, "");
|
|
774
774
|
return { frontMatter, body };
|
|
775
775
|
}
|
|
776
|
+
function stripLeadingYamlDocument(content) {
|
|
777
|
+
const normalizedContent = content.charCodeAt(0) === 0xfeff ? content.slice(1) : content;
|
|
778
|
+
const opener = normalizedContent.match(/^[ \t]*---[ \t]*(?:\r?\n|$)/);
|
|
779
|
+
if (!opener) {
|
|
780
|
+
return { content: normalizedContent, stripped: false };
|
|
781
|
+
}
|
|
782
|
+
let cursor = opener[0].length;
|
|
783
|
+
while (cursor < normalizedContent.length) {
|
|
784
|
+
const nextNewline = normalizedContent.indexOf("\n", cursor);
|
|
785
|
+
const lineEnd = nextNewline === -1 ? normalizedContent.length : nextNewline;
|
|
786
|
+
const line = normalizedContent.slice(cursor, lineEnd).replace(/\r$/, "");
|
|
787
|
+
const afterLine = nextNewline === -1 ? lineEnd : lineEnd + 1;
|
|
788
|
+
if (line.trim() === "---") {
|
|
789
|
+
return { content: normalizedContent.slice(afterLine).replace(/^\s+/, ""), stripped: true };
|
|
790
|
+
}
|
|
791
|
+
cursor = afterLine;
|
|
792
|
+
}
|
|
793
|
+
return { content: normalizedContent, stripped: false };
|
|
794
|
+
}
|
|
776
795
|
function parseJsonMarkdownItemDocument(content, runtimeContext, options = {}) {
|
|
777
|
-
const
|
|
796
|
+
const normalized = stripLeadingYamlDocument(content);
|
|
797
|
+
if (normalized.stripped) {
|
|
798
|
+
options.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");
|
|
799
|
+
}
|
|
800
|
+
const { frontMatter, body } = splitFrontMatter(normalized.content);
|
|
778
801
|
if (!frontMatter) {
|
|
779
802
|
const trimmed = content.trimStart();
|
|
780
803
|
if (trimmed.startsWith("{")) {
|