@unbrained/pm-cli 2026.5.6 → 2026.5.11
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/.agents/pm/extensions/.managed-extensions.json +2 -2
- package/.agents/pm/extensions/beads/runtime.js +4 -4
- package/.agents/pm/extensions/beads/runtime.ts +5 -5
- package/.agents/pm/extensions/todos/runtime.js +7 -7
- package/.agents/pm/extensions/todos/runtime.ts +10 -10
- package/.agents/skills/HARNESS_COMPATIBILITY.md +45 -0
- package/.agents/skills/README.md +21 -0
- package/.agents/skills/pm-developer/SKILL.md +73 -0
- package/.agents/skills/pm-developer/references/COMMAND_PLAYBOOK.md +48 -0
- package/.agents/skills/pm-developer/references/PROMPTS.md +17 -0
- package/.agents/skills/pm-extensions/SKILL.md +57 -0
- package/.agents/skills/pm-extensions/references/LIFECYCLE.md +40 -0
- package/.agents/skills/pm-extensions/references/TROUBLESHOOTING.md +25 -0
- package/.agents/skills/pm-sdk/SKILL.md +50 -0
- package/.agents/skills/pm-sdk/references/INTEGRATION_CHECKLIST.md +31 -0
- package/.agents/skills/pm-sdk/references/PROMPTS.md +13 -0
- package/.agents/skills/pm-user/SKILL.md +59 -0
- package/.agents/skills/pm-user/references/PROMPTS.md +17 -0
- package/.agents/skills/pm-user/references/WORKFLOWS.md +35 -0
- package/.claude-plugin/marketplace.json +38 -0
- package/.pi/README.md +35 -0
- package/.pi/agents/pm-triage-agent.md +19 -0
- package/.pi/agents/pm-verification-agent.md +21 -0
- package/.pi/chains/pm-native-delivery.chain.md +11 -0
- package/.pi/extensions/pm-cli/index.js +387 -0
- package/.pi/prompts/pm-workflow.md +5 -0
- package/.pi/skills/pm-native/SKILL.md +44 -0
- package/.pi/skills/pm-release/SKILL.md +35 -0
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +13 -0
- package/PRD.md +16 -16
- package/README.md +30 -4
- package/dist/cli/argv-utils.d.ts +5 -0
- package/dist/cli/argv-utils.js +34 -0
- package/dist/cli/argv-utils.js.map +1 -0
- package/dist/cli/bootstrap-args.d.ts +15 -0
- package/dist/cli/bootstrap-args.js +211 -0
- package/dist/cli/bootstrap-args.js.map +1 -1
- package/dist/cli/commander-usage.js +109 -3
- package/dist/cli/commander-usage.js.map +1 -1
- package/dist/cli/commands/claim.js +6 -6
- package/dist/cli/commands/claim.js.map +1 -1
- package/dist/cli/commands/close.js +9 -9
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/comments.d.ts +2 -0
- package/dist/cli/commands/comments.js +57 -8
- package/dist/cli/commands/comments.js.map +1 -1
- package/dist/cli/commands/completion.js +40 -7
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/config.js +6 -3
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/contracts.d.ts +19 -0
- package/dist/cli/commands/contracts.js +36 -1
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/create.d.ts +2 -2
- package/dist/cli/commands/create.js +116 -55
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/docs.js +13 -6
- package/dist/cli/commands/docs.js.map +1 -1
- package/dist/cli/commands/extension.d.ts +3 -1
- package/dist/cli/commands/extension.js +174 -2
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/files.js +19 -12
- package/dist/cli/commands/files.js.map +1 -1
- package/dist/cli/commands/get.js +5 -5
- package/dist/cli/commands/get.js.map +1 -1
- package/dist/cli/commands/guide.d.ts +55 -0
- package/dist/cli/commands/guide.js +260 -0
- package/dist/cli/commands/guide.js.map +1 -0
- package/dist/cli/commands/health.js +1 -1
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/history.js +30 -10
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.js +1 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.js +21 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/learnings.js +3 -3
- package/dist/cli/commands/learnings.js.map +1 -1
- package/dist/cli/commands/metadata-normalizers.d.ts +4 -0
- package/dist/cli/commands/metadata-normalizers.js +37 -0
- package/dist/cli/commands/metadata-normalizers.js.map +1 -0
- package/dist/cli/commands/notes.js +3 -3
- package/dist/cli/commands/notes.js.map +1 -1
- package/dist/cli/commands/reindex.js +180 -156
- package/dist/cli/commands/reindex.js.map +1 -1
- package/dist/cli/commands/restore.d.ts +2 -2
- package/dist/cli/commands/restore.js +44 -24
- package/dist/cli/commands/restore.js.map +1 -1
- package/dist/cli/commands/search.d.ts +2 -0
- package/dist/cli/commands/search.js +45 -26
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/test-all.d.ts +2 -0
- package/dist/cli/commands/test-all.js +2 -0
- package/dist/cli/commands/test-all.js.map +1 -1
- package/dist/cli/commands/test.d.ts +1 -0
- package/dist/cli/commands/test.js +13 -5
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/update.js +188 -157
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/validate.js +1 -1
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/error-guidance.d.ts +9 -1
- package/dist/cli/error-guidance.js +147 -6
- package/dist/cli/error-guidance.js.map +1 -1
- package/dist/cli/guide-topics.d.ts +25 -0
- package/dist/cli/guide-topics.js +283 -0
- package/dist/cli/guide-topics.js.map +1 -0
- package/dist/cli/help-content.js +25 -1
- package/dist/cli/help-content.js.map +1 -1
- package/dist/cli/help-json-payload.js +11 -1
- package/dist/cli/help-json-payload.js.map +1 -1
- package/dist/cli/main.js +69 -6
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +38 -1
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +17 -4
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-setup.js +15 -1
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli/telemetry-flush.d.ts +2 -0
- package/dist/cli/telemetry-flush.js +4 -0
- package/dist/cli/telemetry-flush.js.map +1 -0
- package/dist/cli.js +1 -2
- package/dist/cli.js.map +1 -1
- package/dist/core/extensions/extension-types.d.ts +72 -0
- package/dist/core/extensions/extension-types.js +24 -0
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/extensions/loader.d.ts +1 -0
- package/dist/core/extensions/loader.js +766 -7
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/history/history.js +32 -11
- package/dist/core/history/history.js.map +1 -1
- package/dist/core/item/item-format.d.ts +2 -2
- package/dist/core/item/item-format.js +16 -16
- package/dist/core/item/item-format.js.map +1 -1
- package/dist/core/lock/lock.js +2 -0
- package/dist/core/lock/lock.js.map +1 -1
- package/dist/core/schema/runtime-field-filters.js +1 -1
- package/dist/core/schema/runtime-field-filters.js.map +1 -1
- package/dist/core/schema/runtime-field-values.js +2 -2
- package/dist/core/schema/runtime-field-values.js.map +1 -1
- package/dist/core/schema/runtime-schema.d.ts +1 -1
- package/dist/core/schema/runtime-schema.js +3 -3
- package/dist/core/schema/runtime-schema.js.map +1 -1
- package/dist/core/search/cache.js +7 -21
- package/dist/core/search/cache.js.map +1 -1
- package/dist/core/search/corpus.d.ts +13 -0
- package/dist/core/search/corpus.js +74 -0
- package/dist/core/search/corpus.js.map +1 -0
- package/dist/core/search/embedding-batches.js +90 -30
- package/dist/core/search/embedding-batches.js.map +1 -1
- package/dist/core/sentry/instrument.d.ts +18 -1
- package/dist/core/sentry/instrument.js +128 -12
- package/dist/core/sentry/instrument.js.map +1 -1
- package/dist/core/shared/constants.d.ts +1 -1
- package/dist/core/shared/constants.js +21 -1
- package/dist/core/shared/constants.js.map +1 -1
- package/dist/core/shared/errors.d.ts +8 -0
- package/dist/core/shared/errors.js.map +1 -1
- package/dist/core/shared/levenshtein.d.ts +1 -0
- package/dist/core/shared/levenshtein.js +37 -0
- package/dist/core/shared/levenshtein.js.map +1 -0
- package/dist/core/store/front-matter-cache.d.ts +1 -1
- package/dist/core/store/front-matter-cache.js +13 -13
- package/dist/core/store/front-matter-cache.js.map +1 -1
- package/dist/core/store/item-format-migration.js +5 -2
- package/dist/core/store/item-format-migration.js.map +1 -1
- package/dist/core/store/item-store.js +16 -15
- package/dist/core/store/item-store.js.map +1 -1
- package/dist/core/store/paths.js +35 -2
- package/dist/core/store/paths.js.map +1 -1
- package/dist/core/store/settings.js +216 -2
- package/dist/core/store/settings.js.map +1 -1
- package/dist/core/telemetry/runtime.d.ts +1 -0
- package/dist/core/telemetry/runtime.js +102 -3
- package/dist/core/telemetry/runtime.js.map +1 -1
- package/dist/core/test/item-test-run-tracking.js +2 -2
- package/dist/core/test/item-test-run-tracking.js.map +1 -1
- package/dist/mcp/server.d.ts +2 -0
- package/dist/mcp/server.js +407 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/pi/native.d.ts +5 -0
- package/dist/pi/native.js +236 -0
- package/dist/pi/native.js.map +1 -0
- package/dist/sdk/cli-contracts.d.ts +24 -2
- package/dist/sdk/cli-contracts.js +317 -2
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/index.d.ts +12 -1
- package/dist/sdk/index.js +8 -1
- package/dist/sdk/index.js.map +1 -1
- package/dist/types.d.ts +51 -2
- package/dist/types.js.map +1 -1
- package/docs/AGENT_GUIDE.md +15 -0
- package/docs/ARCHITECTURE.md +2 -2
- package/docs/CLAUDE_CODE_PLUGIN.md +225 -0
- package/docs/CODEX_PLUGIN.md +33 -0
- package/docs/COMMANDS.md +6 -2
- package/docs/CONFIGURATION.md +2 -8
- package/docs/EXTENSIONS.md +688 -0
- package/docs/MIGRATION_CLI_SIMPLIFICATION.md +64 -0
- package/docs/PI_PACKAGE.md +141 -0
- package/docs/QUICKSTART.md +1 -0
- package/docs/README.md +30 -1
- package/docs/RELEASING.md +4 -2
- package/docs/SDK.md +444 -2
- package/docs/examples/ci/github-actions-pm-extension-gate.yml +53 -0
- package/docs/examples/ci/gitlab-ci-pm-extension-gate.yml +41 -0
- package/docs/examples/ci/jenkins-pm-extension-gate.Jenkinsfile +45 -0
- package/docs/examples/policy-restricted-extension/README.md +74 -0
- package/docs/examples/policy-restricted-extension/index.js +21 -0
- package/docs/examples/policy-restricted-extension/manifest.json +21 -0
- package/docs/examples/policy-restricted-extension/package.json +8 -0
- package/docs/examples/sdk-app-embedding/README.md +39 -0
- package/docs/examples/sdk-app-embedding/package.json +9 -0
- package/docs/examples/sdk-app-embedding/run-embedded-pm.mjs +61 -0
- package/docs/examples/sdk-contract-consumer/README.md +57 -0
- package/docs/examples/sdk-contract-consumer/inspect-contracts.mjs +47 -0
- package/docs/examples/sdk-contract-consumer/package.json +10 -0
- package/docs/examples/starter-extension/README.md +57 -42
- package/docs/examples/starter-extension/manifest.json +15 -0
- package/marketplace.json +34 -0
- package/package.json +38 -4
- package/plugins/pm-cli-claude/.claude-plugin/plugin.json +23 -0
- package/plugins/pm-cli-claude/.mcp.json +12 -0
- package/plugins/pm-cli-claude/README.md +225 -0
- package/plugins/pm-cli-claude/agents/pm-coordinator.md +48 -0
- package/plugins/pm-cli-claude/agents/pm-delivery-chain.md +88 -0
- package/plugins/pm-cli-claude/agents/pm-triage-agent.md +83 -0
- package/plugins/pm-cli-claude/agents/pm-verification-agent.md +88 -0
- package/plugins/pm-cli-claude/commands/pm-audit.md +39 -0
- package/plugins/pm-cli-claude/commands/pm-calendar.md +41 -0
- package/plugins/pm-cli-claude/commands/pm-close-task.md +20 -0
- package/plugins/pm-cli-claude/commands/pm-developer.md +38 -0
- package/plugins/pm-cli-claude/commands/pm-init.md +44 -0
- package/plugins/pm-cli-claude/commands/pm-list.md +39 -0
- package/plugins/pm-cli-claude/commands/pm-new.md +36 -0
- package/plugins/pm-cli-claude/commands/pm-planner.md +51 -0
- package/plugins/pm-cli-claude/commands/pm-release.md +41 -0
- package/plugins/pm-cli-claude/commands/pm-search.md +21 -0
- package/plugins/pm-cli-claude/commands/pm-start-task.md +27 -0
- package/plugins/pm-cli-claude/commands/pm-status.md +15 -0
- package/plugins/pm-cli-claude/commands/pm-triage.md +35 -0
- package/plugins/pm-cli-claude/commands/pm-workflow.md +49 -0
- package/plugins/pm-cli-claude/hooks/hooks.json +17 -0
- package/plugins/pm-cli-claude/hooks/session-start.mjs +120 -0
- package/plugins/pm-cli-claude/scripts/pm-mcp-server.mjs +60 -0
- package/plugins/pm-cli-claude/skills/pm-audit/SKILL.md +88 -0
- package/plugins/pm-cli-claude/skills/pm-developer/SKILL.md +116 -0
- package/plugins/pm-cli-claude/skills/pm-planner/SKILL.md +118 -0
- package/plugins/pm-cli-claude/skills/pm-release/SKILL.md +83 -0
- package/plugins/pm-cli-claude/skills/pm-workflow/SKILL.md +148 -0
- package/plugins/pm-cli-codex/.codex-plugin/plugin.json +45 -0
- package/plugins/pm-cli-codex/.mcp.json +14 -0
- package/plugins/pm-cli-codex/README.md +30 -0
- package/plugins/pm-cli-codex/assets/pm-cli-small.svg +4 -0
- package/plugins/pm-cli-codex/commands/pm-audit.md +8 -0
- package/plugins/pm-cli-codex/commands/pm-close-task.md +9 -0
- package/plugins/pm-cli-codex/commands/pm-start-task.md +9 -0
- package/plugins/pm-cli-codex/scripts/pm-mcp-server.mjs +54 -0
- package/plugins/pm-cli-codex/skills/pm-auditor/SKILL.md +21 -0
- package/plugins/pm-cli-codex/skills/pm-auditor/agents/openai.yaml +6 -0
- package/plugins/pm-cli-codex/skills/pm-native/SKILL.md +57 -0
- package/plugins/pm-cli-codex/skills/pm-native/agents/openai.yaml +6 -0
- package/plugins/pm-cli-codex/skills/pm-release/SKILL.md +19 -0
- package/plugins/pm-cli-codex/skills/pm-release/agents/openai.yaml +6 -0
|
@@ -228,10 +228,13 @@ function normalizeCriteria(values, clearCriteria) {
|
|
|
228
228
|
}
|
|
229
229
|
function normalizeItemFormat(value) {
|
|
230
230
|
const normalized = value?.trim().toLowerCase();
|
|
231
|
-
if (normalized === "toon"
|
|
232
|
-
return
|
|
231
|
+
if (normalized === "toon") {
|
|
232
|
+
return "toon";
|
|
233
|
+
}
|
|
234
|
+
if (normalized === "json_markdown") {
|
|
235
|
+
throw new PmCliError("Config set item-format no longer accepts json_markdown. Markdown item files are legacy read/migration input only.", EXIT_CODE.USAGE);
|
|
233
236
|
}
|
|
234
|
-
throw new PmCliError(
|
|
237
|
+
throw new PmCliError("Config set item-format requires --format toon", EXIT_CODE.USAGE);
|
|
235
238
|
}
|
|
236
239
|
function normalizeHistoryMissingStreamPolicy(value) {
|
|
237
240
|
const normalized = value?.trim().toLowerCase().replaceAll("-", "_");
|
|
@@ -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 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"]}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"/","sources":["cli/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AAC5F,OAAO,EAAE,kCAAkC,EAAE,MAAM,0CAA0C,CAAC;AAC9F,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,aAAa,GACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAavF,OAAO,EAAE,oBAAoB,EAA0B,MAAM,sBAAsB,CAAC;AAEpF,MAAM,mBAAmB,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAU,CAAC;AAG3D,MAAM,iBAAiB,GAAG;IACxB,oBAAoB;IACpB,oBAAoB;IACpB,aAAa;IACb,aAAa;IACb,+BAA+B;IAC/B,+BAA+B;IAC/B,8BAA8B;IAC9B,8BAA8B;IAC9B,yBAAyB;IACzB,yBAAyB;IACzB,6BAA6B;IAC7B,6BAA6B;IAC7B,0BAA0B;IAC1B,0BAA0B;IAC1B,yCAAyC;IACzC,yCAAyC;IACzC,gDAAgD;IAChD,gDAAgD;IAChD,4CAA4C;IAC5C,4CAA4C;IAC5C,+CAA+C;IAC/C,+CAA+C;IAC/C,mBAAmB;IACnB,mBAAmB;IACnB,kCAAkC;IAClC,kCAAkC;IAClC,gCAAgC;IAChC,gCAAgC;IAChC,qCAAqC;IACrC,qCAAqC;IACrC,oCAAoC;IACpC,oCAAoC;IACpC,wCAAwC;IACxC,wCAAwC;IACxC,0CAA0C;IAC1C,0CAA0C;IAC1C,sBAAsB;IACtB,sBAAsB;IACtB,oBAAoB;IACpB,oBAAoB;IACpB,SAAS;CACD,CAAC;AAgHX,MAAM,kBAAkB,GAAgC;IACtD,kBAAkB,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAChE,WAAW,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;IAC3C,6BAA6B,EAAE,CAAC,+BAA+B,EAAE,+BAA+B,CAAC;IACjG,4BAA4B,EAAE,CAAC,8BAA8B,EAAE,8BAA8B,CAAC;IAC9F,uBAAuB,EAAE,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;IAC/E,2BAA2B,EAAE,CAAC,6BAA6B,EAAE,6BAA6B,CAAC;IAC3F,wBAAwB,EAAE,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;IAClF,uCAAuC,EAAE;QACvC,yCAAyC;QACzC,yCAAyC;KAC1C;IACD,8CAA8C,EAAE;QAC9C,gDAAgD;QAChD,gDAAgD;KACjD;IACD,0CAA0C,EAAE;QAC1C,4CAA4C;QAC5C,4CAA4C;KAC7C;IACD,6CAA6C,EAAE;QAC7C,+CAA+C;QAC/C,+CAA+C;KAChD;IACD,iBAAiB,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAC7D,gCAAgC,EAAE,CAAC,kCAAkC,EAAE,kCAAkC,CAAC;IAC1G,8BAA8B,EAAE,CAAC,gCAAgC,EAAE,gCAAgC,CAAC;IACpG,mCAAmC,EAAE;QACnC,qCAAqC;QACrC,qCAAqC;KACtC;IACD,kCAAkC,EAAE,CAAC,oCAAoC,EAAE,oCAAoC,CAAC;IAChH,sCAAsC,EAAE;QACtC,wCAAwC;QACxC,wCAAwC;KACzC;IACD,wCAAwC,EAAE;QACxC,0CAA0C;QAC1C,0CAA0C;KAC3C;IACD,oBAAoB,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IACtE,kBAAkB,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAChE,OAAO,EAAE,CAAC,SAAS,CAAC;CACrB,CAAC;AAEF,MAAM,oBAAoB,GAA8B;IACtD,kBAAkB,EAAE,mCAAmC;IACvD,WAAW,EAAE,2BAA2B;IACxC,6BAA6B,EAAE,yCAAyC;IACxE,4BAA4B,EAAE,0CAA0C;IACxE,uBAAuB,EAAE,qCAAqC;IAC9D,2BAA2B,EAAE,wDAAwD;IACrF,wBAAwB,EAAE,gDAAgD;IAC1E,uCAAuC,EACrC,6EAA6E;IAC/E,8CAA8C,EAC5C,oFAAoF;IACtF,0CAA0C,EACxC,gFAAgF;IAClF,6CAA6C,EAC3C,mFAAmF;IACrF,iBAAiB,EAAE,2DAA2D;IAC9E,gCAAgC,EAAE,6DAA6D;IAC/F,8BAA8B,EAAE,sDAAsD;IACtF,mCAAmC,EAAE,6DAA6D;IAClG,kCAAkC,EAAE,yDAAyD;IAC7F,sCAAsC,EAAE,8DAA8D;IACtG,wCAAwC,EAAE,wDAAwD;IAClG,oBAAoB,EAAE,mDAAmD;IACzE,kBAAkB,EAAE,mCAAmC;IACvD,OAAO,EAAE,4DAA4D;CACtE,CAAC;AAEF,MAAM,6BAA6B,GAAgB;IACjD,yCAAyC;IACzC,gDAAgD;IAChD,4CAA4C;IAC5C,+CAA+C;CAChD,CAAC;AAEF,SAAS,mBAAmB,CAAC,GAAc;IACzC,OAAO,GAAG,KAAK,oBAAoB,IAAI,GAAG,KAAK,0BAA0B,IAAI,6BAA6B,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC3H,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,IAAK,mBAAyC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/D,OAAO,KAAoB,CAAC;IAC9B,CAAC;IACD,MAAM,IAAI,UAAU,CAClB,yBAAyB,KAAK,eAAe,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC7E,SAAS,CAAC,KAAK,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,UAAU,CAAC,0BAA0B,KAAK,oCAAoC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;AAC7G,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,IAAK,iBAAuC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7D,IAAI,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;YACvD,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,IAAI,KAAK,KAAK,+BAA+B,IAAI,KAAK,KAAK,+BAA+B,EAAE,CAAC;YAC3F,OAAO,+BAA+B,CAAC;QACzC,CAAC;QACD,IAAI,KAAK,KAAK,8BAA8B,IAAI,KAAK,KAAK,8BAA8B,EAAE,CAAC;YACzF,OAAO,8BAA8B,CAAC;QACxC,CAAC;QACD,IAAI,KAAK,KAAK,yBAAyB,IAAI,KAAK,KAAK,yBAAyB,EAAE,CAAC;YAC/E,OAAO,yBAAyB,CAAC;QACnC,CAAC;QACD,IAAI,KAAK,KAAK,6BAA6B,IAAI,KAAK,KAAK,6BAA6B,EAAE,CAAC;YACvF,OAAO,6BAA6B,CAAC;QACvC,CAAC;QACD,IAAI,KAAK,KAAK,0BAA0B,IAAI,KAAK,KAAK,0BAA0B,EAAE,CAAC;YACjF,OAAO,0BAA0B,CAAC;QACpC,CAAC;QACD,IACE,KAAK,KAAK,yCAAyC;YACnD,KAAK,KAAK,yCAAyC,EACnD,CAAC;YACD,OAAO,yCAAyC,CAAC;QACnD,CAAC;QACD,IACE,KAAK,KAAK,gDAAgD;YAC1D,KAAK,KAAK,gDAAgD,EAC1D,CAAC;YACD,OAAO,gDAAgD,CAAC;QAC1D,CAAC;QACD,IACE,KAAK,KAAK,4CAA4C;YACtD,KAAK,KAAK,4CAA4C,EACtD,CAAC;YACD,OAAO,4CAA4C,CAAC;QACtD,CAAC;QACD,IACE,KAAK,KAAK,+CAA+C;YACzD,KAAK,KAAK,+CAA+C,EACzD,CAAC;YACD,OAAO,+CAA+C,CAAC;QACzD,CAAC;QACD,IAAI,KAAK,KAAK,mBAAmB,IAAI,KAAK,KAAK,mBAAmB,EAAE,CAAC;YACnE,OAAO,mBAAmB,CAAC;QAC7B,CAAC;QACD,IAAI,KAAK,KAAK,kCAAkC,IAAI,KAAK,KAAK,kCAAkC,EAAE,CAAC;YACjG,OAAO,kCAAkC,CAAC;QAC5C,CAAC;QACD,IAAI,KAAK,KAAK,gCAAgC,IAAI,KAAK,KAAK,gCAAgC,EAAE,CAAC;YAC7F,OAAO,gCAAgC,CAAC;QAC1C,CAAC;QACD,IAAI,KAAK,KAAK,qCAAqC,IAAI,KAAK,KAAK,qCAAqC,EAAE,CAAC;YACvG,OAAO,qCAAqC,CAAC;QAC/C,CAAC;QACD,IAAI,KAAK,KAAK,oCAAoC,IAAI,KAAK,KAAK,oCAAoC,EAAE,CAAC;YACrG,OAAO,oCAAoC,CAAC;QAC9C,CAAC;QACD,IACE,KAAK,KAAK,wCAAwC;YAClD,KAAK,KAAK,wCAAwC,EAClD,CAAC;YACD,OAAO,wCAAwC,CAAC;QAClD,CAAC;QACD,IACE,KAAK,KAAK,0CAA0C;YACpD,KAAK,KAAK,0CAA0C,EACpD,CAAC;YACD,OAAO,0CAA0C,CAAC;QACpD,CAAC;QACD,IAAI,KAAK,KAAK,sBAAsB,IAAI,KAAK,KAAK,sBAAsB,EAAE,CAAC;YACzE,OAAO,sBAAsB,CAAC;QAChC,CAAC;QACD,IAAI,KAAK,KAAK,oBAAoB,IAAI,KAAK,KAAK,oBAAoB,EAAE,CAAC;YACrE,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,MAAM,IAAI,UAAU,CAClB,uBAAuB,KAAK,iBAAiB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC3E,SAAS,CAAC,KAAK,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,MAA4B,EAAE,aAAkC;IACzF,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACnH,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAC3C,CAAC;IACF,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,UAAU,CAClB,uFAAuF,EACvF,SAAS,CAAC,KAAK,CAChB,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,UAAU,CAClB,gHAAgH,EAChH,SAAS,CAAC,KAAK,CAChB,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAyB;IACpD,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,UAAU,KAAK,eAAe,EAAE,CAAC;QACnC,MAAM,IAAI,UAAU,CAClB,mHAAmH,EACnH,SAAS,CAAC,KAAK,CAChB,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,UAAU,CAAC,+CAA+C,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,mCAAmC,CAAC,KAAyB;IACpE,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpE,IAAI,UAAU,KAAK,aAAa,IAAI,UAAU,KAAK,cAAc,EAAE,CAAC;QAClE,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,UAAU,CAClB,mGAAmG,EACnG,SAAS,CAAC,KAAK,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,iCAAiC,CAAC,KAAyB;IAClE,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpE,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC1D,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,UAAU,CAClB,kFAAkF,EAClF,SAAS,CAAC,KAAK,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,gCAAgC,CAAC,KAAyB;IACjE,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpE,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC1D,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,UAAU,CAClB,gFAAgF,EAChF,SAAS,CAAC,KAAK,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,gCAAgC,CAAC,KAAyB;IACjE,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpE,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAChF,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,UAAU,CAClB,4FAA4F,EAC5F,SAAS,CAAC,KAAK,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAyB;IAC1D,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpE,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC/G,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,UAAU,CAClB,8FAA8F,EAC9F,SAAS,CAAC,KAAK,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,uCAAuC,CAAC,KAAyB;IACxE,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpE,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC9E,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,UAAU,CAClB,+FAA+F,EAC/F,SAAS,CAAC,KAAK,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,oCAAoC,CAAC,KAAyB;IACrE,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpE,IAAI,UAAU,KAAK,aAAa,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5D,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,UAAU,CAClB,8FAA8F,EAC9F,SAAS,CAAC,KAAK,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,yCAAyC,CAAC,KAAyB;IAC1E,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpE,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC7E,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,UAAU,CAClB,iGAAiG,EACjG,SAAS,CAAC,KAAK,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,kDAAkD,CACzD,KAAyB;IAEzB,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpE,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC1D,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,UAAU,CAClB,sGAAsG,EACtG,SAAS,CAAC,KAAK,CAChB,CAAC;AACJ,CAAC;AAED,MAAM,iCAAiC,GAAkD;IACvF,MAAM,EAAE,QAAQ;IAChB,mBAAmB,EAAE,qBAAqB;IAC1C,qBAAqB,EAAE,qBAAqB;IAC5C,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,mBAAmB;IACxC,QAAQ,EAAE,mBAAmB;IAC7B,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,cAAc;IAC9B,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;CACnB,CAAC;AACF,MAAM,+BAA+B,GAAG;IACtC,QAAQ;IACR,qBAAqB;IACrB,mBAAmB;IACnB,cAAc;IACd,UAAU;IACV,MAAM;IACN,YAAY;IACZ,QAAQ;IACR,SAAS;CACD,CAAC;AAEX,SAAS,+BAA+B,CACtC,MAA4B,EAC5B,aAAkC;IAElC,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjH,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,UAAU,CAClB,6FAA6F,EAC7F,SAAS,CAAC,KAAK,CAChB,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,UAAU,CAClB,4GAA4G,EAC5G,SAAS,CAAC,KAAK,CAChB,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACpF,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iCAAiC,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;IACtG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,UAAU,CAClB,oEAAoE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC5F,qBAAqB,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACnE,SAAS,CAAC,KAAK,CAChB,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iCAAiC,CAAC,KAAK,CAAkC,CAAC,CAAC,CAAC,CAAC,IAAI,CACzH,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAC3C,CAAC;AACJ,CAAC;AAED,SAAS,iCAAiC,CACxC,GAAc,EACd,MAA4B,EAC5B,aAAkC;IAElC,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACjI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAC3C,CAAC;IACF,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,UAAU,CAClB,cAAc,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,0DAA0D,EAClG,SAAS,CAAC,KAAK,CAChB,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,UAAU,CAClB,cAAc,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,yEAAyE,EACjH,SAAS,CAAC,KAAK,CAChB,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAgB;IACzC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAoB,EAAE,KAAyB;IAC5E,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,UAAU,CAAC,kBAAkB,MAAM,yBAAyB,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,UAAU,CAAC,kBAAkB,MAAM,kBAAkB,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,eAAe,CAAC,QA0BxB,EAAE,GAAc;IACf,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;QAC1B,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IACD,IAAI,GAAG,KAAK,+BAA+B,EAAE,CAAC;QAC5C,OAAO,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC;IACzC,CAAC;IACD,IAAI,GAAG,KAAK,8BAA8B,EAAE,CAAC;QAC3C,OAAO,QAAQ,CAAC,UAAU,CAAC,qBAAqB,CAAC;IACnD,CAAC;IACD,IAAI,GAAG,KAAK,yBAAyB,EAAE,CAAC;QACtC,OAAO,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC;IAC9C,CAAC;IACD,IAAI,GAAG,KAAK,6BAA6B,EAAE,CAAC;QAC1C,OAAO,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC;IAC9C,CAAC;IACD,IAAI,GAAG,KAAK,0BAA0B,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,GAAG,KAAK,yCAAyC,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,uCAAuC,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,GAAG,KAAK,gDAAgD,EAAE,CAAC;QAC7D,OAAO,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,8CAA8C,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,GAAG,KAAK,4CAA4C,EAAE,CAAC;QACzD,OAAO,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,0CAA0C,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,GAAG,KAAK,+CAA+C,EAAE,CAAC;QAC5D,OAAO,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,6CAA6C,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,GAAG,KAAK,mBAAmB,EAAE,CAAC;QAChC,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;IACpC,CAAC;IACD,IAAI,GAAG,KAAK,kCAAkC,EAAE,CAAC;QAC/C,OAAO,QAAQ,CAAC,UAAU,CAAC,qBAAqB,CAAC;IACnD,CAAC;IACD,IAAI,GAAG,KAAK,gCAAgC,EAAE,CAAC;QAC7C,OAAO,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;IACjD,CAAC;IACD,IAAI,GAAG,KAAK,qCAAqC,EAAE,CAAC;QAClD,OAAO,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;IACtD,CAAC;IACD,IAAI,GAAG,KAAK,oCAAoC,EAAE,CAAC;QACjD,OAAO,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC;IAC9C,CAAC;IACD,IAAI,GAAG,KAAK,wCAAwC,EAAE,CAAC;QACrD,OAAO,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC;IAC9C,CAAC;IACD,IAAI,GAAG,KAAK,0CAA0C,EAAE,CAAC;QACvD,OAAO,QAAQ,CAAC,UAAU,CAAC,6BAA6B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IACpF,CAAC;IACD,IAAI,GAAG,KAAK,sBAAsB,EAAE,CAAC;QACnC,OAAO,QAAQ,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAC3E,CAAC;IACD,IAAI,GAAG,KAAK,oBAAoB,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAC7D,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO;YACL,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,aAAa;YAC7C,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc;YAC/C,oBAAoB,EAAE,QAAQ,CAAC,OAAO,CAAC,oBAAoB;YAC3D,QAAQ,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE;SACd,CAAC;IACjC,CAAC;IACD,OAAO,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,YAAY,CAAC,MAAoB,EAAE,QAAkB;IAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO;QACL,GAAG,MAAM;QACT,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,KAAkB,EAClB,MAAqB;IAErB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAChG,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,UAAU,CAAC,iCAAiC,MAAM,sBAAsB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3G,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAuB;IACjD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAChH,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IACpH,MAAM,IAAI,UAAU,CAClB,oEAAoE,GAAG,GAAG,EAC1E,SAAS,CAAC,KAAK,CAChB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,QAAmD,EACnD,OAA6B,EAC7B,MAAgD,EAChD,KAAkB,EAClB,QAAkB;IAElB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC;IAE7B,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC7D,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,UAA0B,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,UAAU,CAClB,0CAA0C,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAC1E,SAAS,CAAC,KAAK,CAChB,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;YACrC,GAAG,CAAC,aAAa,GAAG,UAA0B,CAAC;YAC/C,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1D,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,UAAU,CAAC,qDAAqD,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,GAAG,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;YAClC,GAAG,CAAC,cAAc,GAAG,MAAM,CAAC;YAC5B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,UAAU,CAAC,2DAA2D,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QACrG,CAAC;QACD,IAAI,GAAG,CAAC,oBAAoB,KAAK,MAAM,EAAE,CAAC;YACxC,GAAG,CAAC,oBAAoB,GAAG,MAAM,CAAC;YAClC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAmC;QACrD,CAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC;QACvC,CAAC,UAAU,EAAE,OAAO,CAAC,eAAe,CAAC;QACrC,CAAC,UAAU,EAAE,OAAO,CAAC,eAAe,CAAC;QACrC,CAAC,UAAU,EAAE,OAAO,CAAC,eAAe,CAAC;QACrC,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC;QAC/B,CAAC,UAAU,EAAE,OAAO,CAAC,eAAe,CAAC;QACrC,CAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC;QACvC,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC;KAChC,CAAC;IAEF,KAAK,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,cAAc,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,WAAwC,CAAC;YACrD,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE,CAAC;gBACjC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBAC3B,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,YAAY,CAAC;QAClB,KAAK;QACL,GAAG,EAAE,SAAS;QACd,gBAAgB,EAAE;YAChB,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,cAAc,EAAE,GAAG,CAAC,cAAc;YAClC,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;YAC9C,QAAQ,EAAE,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE;SAC9B;QACD,aAAa,EAAE,MAAM,CAAC,YAAY;QAClC,OAAO;KACR,EAAE,QAAQ,CAAC,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,UAAkB,EAClB,WAAmB,EACnB,QAA4B,EAC5B,OAA6B,EAC7B,MAAqB;IAErB,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1D,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,MAAM,wBAAwB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7G,MAAM,QAAQ,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;IAEzD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,GAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAChF,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC;YACtC,UAAU,EAAE,SAAS,KAAK,SAAS;gBACjC,CAAC,CAAE,QAAkB;gBACrB,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,cAAwB,CAAC,CAAC,CAAE,MAAgB;YAClF,SAAS,EACP,SAAS,KAAK,SAAS;gBACrB,CAAC,CAAC,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,kBAAkB,CAAC;gBACvF,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACtI,OAAO,EAAE,oBAAoB,CAAC,SAAS,CAAC;YACxC,KAAK,EAAE,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC;SAC5C,CAAC,CAAC,CAAC;QACJ,OAAO,YAAY,CACjB;YACE,KAAK;YACL,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO,EAAE,KAAK;SACf,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG;YACb,kBAAkB,EAAE,eAAe,CAAC,QAAQ,EAAE,oBAAoB,CAAC;YACnE,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE,aAAa,CAAC;YACrD,6BAA6B,EAAE,eAAe,CAAC,QAAQ,EAAE,+BAA+B,CAAC;YACzF,4BAA4B,EAAE,eAAe,CAAC,QAAQ,EAAE,8BAA8B,CAAC;YACvF,uBAAuB,EAAE,eAAe,CAAC,QAAQ,EAAE,yBAAyB,CAAC;YAC7E,2BAA2B,EAAE,eAAe,CAAC,QAAQ,EAAE,6BAA6B,CAAC;YACrF,wBAAwB,EAAE,eAAe,CAAC,QAAQ,EAAE,0BAA0B,CAAC;YAC/E,uCAAuC,EAAE,eAAe,CAAC,QAAQ,EAAE,yCAAyC,CAAC;YAC7G,8CAA8C,EAAE,eAAe,CAC7D,QAAQ,EACR,gDAAgD,CACjD;YACD,0CAA0C,EAAE,eAAe,CAAC,QAAQ,EAAE,4CAA4C,CAAC;YACnH,6CAA6C,EAAE,eAAe,CAC5D,QAAQ,EACR,+CAA+C,CAChD;YACD,iBAAiB,EAAE,eAAe,CAAC,QAAQ,EAAE,mBAAmB,CAAC;YACjE,gCAAgC,EAAE,eAAe,CAAC,QAAQ,EAAE,kCAAkC,CAAC;YAC/F,8BAA8B,EAAE,eAAe,CAAC,QAAQ,EAAE,gCAAgC,CAAC;YAC3F,mCAAmC,EAAE,eAAe,CAAC,QAAQ,EAAE,qCAAqC,CAAC;YACrG,kCAAkC,EAAE,eAAe,CAAC,QAAQ,EAAE,oCAAoC,CAAC;YACnG,sCAAsC,EAAE,eAAe,CAAC,QAAQ,EAAE,wCAAwC,CAAC;YAC3G,wCAAwC,EAAE,eAAe,CAAC,QAAQ,EAAE,0CAA0C,CAAC;YAC/G,oBAAoB,EAAE,eAAe,CAAC,QAAQ,EAAE,sBAAsB,CAAC;YACvE,kBAAkB,EAAE,eAAe,CAAC,QAAQ,EAAE,oBAAoB,CAAC;YACnE,OAAO,EAAE,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC;SACL,CAAC;QAC3C,OAAO,YAAY,CACjB;YACE,KAAK;YACL,MAAM;YACN,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO,EAAE,KAAK;SACf,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,UAAU,CAAC,oCAAoC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;YAC1B,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,MAAM,EAAE,QAAQ,CAAC,WAAW;gBAC5B,wBAAwB,EAAE,QAAQ,CAAC,wBAAwB;gBAC3D,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,+BAA+B,EAAE,CAAC;YAC5C,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc;gBACvC,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,8BAA8B,EAAE,CAAC;YAC3C,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,qBAAqB;gBACjD,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,yBAAyB,EAAE,CAAC;YACtC,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,gBAAgB;gBAC5C,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,6BAA6B,EAAE,CAAC;YAC1C,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,gBAAgB;gBAC5C,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,0BAA0B,EAAE,CAAC;YACvC,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;gBAC3D,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,yCAAyC,EAAE,CAAC;YACtD,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,uCAAuC,CAAC;gBAC1E,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,gDAAgD,EAAE,CAAC;YAC7D,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,8CAA8C,CAAC;gBACjF,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,4CAA4C,EAAE,CAAC;YACzD,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,0CAA0C,CAAC;gBAC7E,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,+CAA+C,EAAE,CAAC;YAC5D,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,6CAA6C,CAAC;gBAChF,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,mBAAmB,EAAE,CAAC;YAChC,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM;gBAClC,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,kCAAkC,EAAE,CAAC;YAC/C,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,qBAAqB;gBACjD,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,gCAAgC,EAAE,CAAC;YAC7C,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,mBAAmB;gBAC/C,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,qCAAqC,EAAE,CAAC;YAClD,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,wBAAwB;gBACpD,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,oCAAoC,EAAE,CAAC;YACjD,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,gBAAgB;gBAC5C,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,wCAAwC,EAAE,CAAC;YACrD,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,gBAAgB;gBAC5C,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,0CAA0C,EAAE,CAAC;YACvD,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,6BAA6B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;gBAClF,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,sBAAsB,EAAE,CAAC;YACnC,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;gBACzE,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,oBAAoB,EAAE,CAAC;YACjC,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;gBAC3D,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,gBAAgB,EAAE;oBAChB,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,aAAa;oBAC7C,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc;oBAC/C,oBAAoB,EAAE,QAAQ,CAAC,OAAO,CAAC,oBAAoB;oBAC3D,QAAQ,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE;iBAC3C;gBACD,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,OAAO,EAAE,KAAK;aACf,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACnD,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO,EAAE,KAAK;SACf,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,UAAU,CAAC,oCAAoC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,UAAU,CAClB,uEAAuE,EACvE,SAAS,CAAC,KAAK,CAChB,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAC1F,IAAI,SAAS,GAA8B,SAAS,CAAC;QACrD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,YAAY,GAAG,uBAAuB,CAAC,QAAQ,EAAE,+BAA+B,EAAE,CAAC,CAAC;YAC1F,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAC7C,MAAM,CAAC,MAAM,EACb,UAAU,EACV,gCAAgC,EAChC,YAAY,CAAC,cAAc,EAC3B,QAAQ,CAAC,MAAM,CAChB,CAAC;YACF,SAAS,GAAG;gBACV,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC5B,CAAC;YACF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;YAClC,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,wBAAwB,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,MAAM,EAAE,QAAQ,CAAC,WAAW;YAC5B,wBAAwB,EAAE,IAAI;YAC9B,SAAS;YACT,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,+BAA+B,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,mCAAmC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,KAAK,UAAU,CAAC;QAC/D,QAAQ,CAAC,OAAO,CAAC,cAAc,GAAG,UAAU,CAAC;QAC7C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,0CAA0C,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc;YACvC,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,8BAA8B,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,kCAAkC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,qBAAqB,KAAK,UAAU,CAAC;QACzE,QAAQ,CAAC,UAAU,CAAC,qBAAqB,GAAG,UAAU,CAAC;QACvD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,yCAAyC,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,qBAAqB;YACjD,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,yBAAyB,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,8BAA8B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,OAAO,GACX,QAAQ,CAAC,UAAU,CAAC,gBAAgB,KAAK,UAAU;YACnD,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,QAAQ;YACvC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,KAAK,UAAU,CAAC;QACtD,QAAQ,CAAC,UAAU,CAAC,gBAAgB,GAAG,UAAU,CAAC;QAClD,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;QACtC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,GAAG,UAAU,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,oCAAoC,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,gBAAgB;YAC5C,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,6BAA6B,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,gCAAgC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,OAAO,GACX,QAAQ,CAAC,UAAU,CAAC,gBAAgB,KAAK,UAAU;YACnD,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,QAAQ;YACvC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,KAAK,UAAU,CAAC;QACtD,QAAQ,CAAC,UAAU,CAAC,gBAAgB,GAAG,UAAU,CAAC;QAClD,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;QACtC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,GAAG,UAAU,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,wCAAwC,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,gBAAgB;YAC5C,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,0BAA0B,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,+BAA+B,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAC/F,MAAM,OAAO,GACX,YAAY,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM;YAC3E,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;QACrG,QAAQ,CAAC,UAAU,CAAC,wBAAwB,GAAG,YAAY,CAAC;QAC5D,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,qCAAqC,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;YAC3D,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,yCAAyC,EAAE,CAAC;QACtD,MAAM,YAAY,GAAG,iCAAiC,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QACtG,MAAM,OAAO,GACX,YAAY,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,CAAC,uCAAuC,CAAC,MAAM;YAC1F,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,UAAU,CAAC,uCAAuC,CAAC,KAAK,CAAC,CAAC,CAAC;QACpH,QAAQ,CAAC,UAAU,CAAC,uCAAuC,GAAG,YAAY,CAAC;QAC3E,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,oDAAoD,CAAC,CAAC;QACrG,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,uCAAuC,CAAC;YAC1E,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,gDAAgD,EAAE,CAAC;QAC7D,MAAM,YAAY,GAAG,iCAAiC,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QACtG,MAAM,OAAO,GACX,YAAY,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,CAAC,8CAA8C,CAAC,MAAM;YACjG,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,UAAU,CAAC,8CAA8C,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3H,QAAQ,CAAC,UAAU,CAAC,8CAA8C,GAAG,YAAY,CAAC;QAClF,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,2DAA2D,CAAC,CAAC;QAC5G,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,8CAA8C,CAAC;YACjF,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,4CAA4C,EAAE,CAAC;QACzD,MAAM,YAAY,GAAG,iCAAiC,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QACtG,MAAM,OAAO,GACX,YAAY,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,CAAC,0CAA0C,CAAC,MAAM;YAC7F,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,UAAU,CAAC,0CAA0C,CAAC,KAAK,CAAC,CAAC,CAAC;QACvH,QAAQ,CAAC,UAAU,CAAC,0CAA0C,GAAG,YAAY,CAAC;QAC9E,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,uDAAuD,CAAC,CAAC;QACxG,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,0CAA0C,CAAC;YAC7E,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,+CAA+C,EAAE,CAAC;QAC5D,MAAM,YAAY,GAAG,iCAAiC,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QACtG,MAAM,OAAO,GACX,YAAY,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,CAAC,6CAA6C,CAAC,MAAM;YAChG,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,UAAU,CAAC,6CAA6C,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1H,QAAQ,CAAC,UAAU,CAAC,6CAA6C,GAAG,YAAY,CAAC;QACjF,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,0DAA0D,CAAC,CAAC;QAC3G,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,6CAA6C,CAAC;YAChF,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,mBAAmB,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,yBAAyB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC;QAC1D,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,8BAA8B,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM;YAClC,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,kCAAkC,EAAE,CAAC;QAC/C,MAAM,UAAU,GAAG,uCAAuC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3E,MAAM,OAAO,GACX,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,qBAAqB,KAAK,UAAU,CAAC;QACtG,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;QACtC,QAAQ,CAAC,UAAU,CAAC,qBAAqB,GAAG,UAAU,CAAC;QACvD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,6CAA6C,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,qBAAqB;YACjD,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,gCAAgC,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,oCAAoC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxE,MAAM,OAAO,GACX,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,mBAAmB,KAAK,UAAU,CAAC;QACpG,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;QACtC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,GAAG,UAAU,CAAC;QACrD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,2CAA2C,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,mBAAmB;YAC/C,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,qCAAqC,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,yCAAyC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7E,MAAM,OAAO,GACX,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,wBAAwB,KAAK,UAAU,CAAC;QACzG,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;QACtC,QAAQ,CAAC,UAAU,CAAC,wBAAwB,GAAG,UAAU,CAAC;QAC1D,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,gDAAgD,CAAC,CAAC;QACjG,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,wBAAwB;YACpD,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,oCAAoC,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,8BAA8B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,OAAO,GACX,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,gBAAgB,KAAK,UAAU,CAAC;QACjG,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;QACtC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,GAAG,UAAU,CAAC;QAClD,QAAQ,CAAC,UAAU,CAAC,gBAAgB,GAAG,UAAU,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,+CAA+C,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,gBAAgB;YAC5C,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,wCAAwC,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,gCAAgC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,OAAO,GACX,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,gBAAgB,KAAK,UAAU,CAAC;QACjG,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;QACtC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,GAAG,UAAU,CAAC;QAClD,QAAQ,CAAC,UAAU,CAAC,gBAAgB,GAAG,UAAU,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,mDAAmD,CAAC,CAAC;QACpG,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,gBAAgB;YAC5C,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,0CAA0C,EAAE,CAAC;QACvD,MAAM,UAAU,GAAG,kDAAkD,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtF,MAAM,WAAW,GAAG,UAAU,KAAK,SAAS,CAAC;QAC7C,MAAM,OAAO,GACX,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,6BAA6B,KAAK,WAAW,CAAC;QAC/G,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;QACtC,QAAQ,CAAC,UAAU,CAAC,6BAA6B,GAAG,WAAW,CAAC;QAChE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,qDAAqD,CAAC,CAAC;QACtG,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,6BAA6B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;YAClF,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,sBAAsB,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,iCAAiC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrE,MAAM,WAAW,GAAG,UAAU,KAAK,SAAS,CAAC;QAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,uBAAuB,KAAK,WAAW,CAAC;QACzE,QAAQ,CAAC,OAAO,CAAC,uBAAuB,GAAG,WAAW,CAAC;QACvD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,iCAAiC,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;YACzE,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,oBAAoB,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,gCAAgC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,UAAU,KAAK,SAAS,CAAC;QAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,KAAK,WAAW,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,0BAA0B,CAAC;QAC7G,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,WAAW,CAAC;QACzC,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,IAAI,CAAC;QACrD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,+BAA+B,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,YAAY,CAAC;YAClB,KAAK;YACL,GAAG;YACH,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;YAC3D,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;SACR,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACjF,MAAM,OAAO,GACX,YAAY,CAAC,MAAM,KAAK,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM;QACnE,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IAE7F,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,GAAG,YAAY,CAAC;IACpD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,+BAA+B,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,YAAY,CAAC;QAClB,KAAK;QACL,GAAG;QACH,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACnD,aAAa,EAAE,MAAM,CAAC,YAAY;QAClC,OAAO;KACR,EAAE,QAAQ,CAAC,CAAC;AACf,CAAC","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\") {\n return \"toon\";\n }\n if (normalized === \"json_markdown\") {\n throw new PmCliError(\n \"Config set item-format no longer accepts json_markdown. Markdown item files are legacy read/migration input only.\",\n EXIT_CODE.USAGE,\n );\n }\n throw new PmCliError(\"Config set item-format requires --format toon\", 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"]}
|
|
@@ -44,6 +44,20 @@ export interface ContractsResult {
|
|
|
44
44
|
types: string[];
|
|
45
45
|
fields_by_command: Record<string, string[]>;
|
|
46
46
|
};
|
|
47
|
+
extension_contracts?: {
|
|
48
|
+
capabilities: string[];
|
|
49
|
+
services: string[];
|
|
50
|
+
policy_modes: string[];
|
|
51
|
+
policy_surfaces: string[];
|
|
52
|
+
trust_modes: string[];
|
|
53
|
+
sandbox_profiles: string[];
|
|
54
|
+
manifest_versions: number[];
|
|
55
|
+
compatibility: {
|
|
56
|
+
current: string;
|
|
57
|
+
previous: string[];
|
|
58
|
+
breaking_strategy: string;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
47
61
|
}
|
|
48
62
|
export interface ContractsActionAvailability {
|
|
49
63
|
action: string;
|
|
@@ -54,6 +68,11 @@ export interface ContractsActionAvailability {
|
|
|
54
68
|
disabled_reason: string | null;
|
|
55
69
|
command_path: string | null;
|
|
56
70
|
cli_exposed: boolean;
|
|
71
|
+
policy_state?: {
|
|
72
|
+
mode: string;
|
|
73
|
+
trust_mode: string;
|
|
74
|
+
default_sandbox_profile: string;
|
|
75
|
+
};
|
|
57
76
|
}
|
|
58
77
|
interface ExtensionCommandContract {
|
|
59
78
|
command: string;
|