@unbrained/pm-cli 2026.11.4 → 2026.11.5
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/skills/HARNESS_COMPATIBILITY.md +1 -1
- package/.agents/skills/README.md +14 -14
- package/.agents/skills/pm-developer/SKILL.md +16 -16
- package/.agents/skills/pm-developer/references/GRAPH_AND_RELATIONSHIPS.md +14 -14
- package/.agents/skills/pm-developer/references/SCRIPTING_COMPOSITION.md +10 -10
- package/.agents/skills/pm-extensions/SKILL.md +13 -13
- package/.agents/skills/pm-extensions/references/AUTHORING.md +12 -12
- package/.agents/skills/pm-sdk/SKILL.md +27 -27
- package/.agents/skills/pm-sdk/references/SURFACE_MAP.md +32 -32
- package/.agents/skills/pm-test-audit/references/AUDIT.md +1 -1
- package/.agents/skills/pm-user/SKILL.md +35 -35
- package/.claude-plugin/marketplace.json +1 -1
- package/AGENTS.md +9 -9
- package/CHANGELOG.md +9 -0
- package/README.md +13 -13
- package/dist/cli/register-setup.js +1 -1
- package/dist/cli-bundle/bundle-manifest.json +1 -1
- package/dist/cli-bundle/chunks/chunk-2RPORE7M.js +31 -0
- package/dist/cli-bundle/chunks/{chunk-NPEDFOVQ.js → chunk-335BZ75D.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-5GWEY4P6.js +122 -0
- package/dist/cli-bundle/chunks/chunk-6VRX2CM7.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-7PGNAHNW.js → chunk-7DEKAXVA.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3OXQGGRD.js → chunk-7ZRCYESH.js} +42 -41
- package/dist/cli-bundle/chunks/{chunk-BWAXA6S4.js → chunk-AUEKTX7V.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SRDO2NJU.js → chunk-D7KYPRK4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ODMJ3HIB.js → chunk-DAX3AOFI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-L4BKTPJ6.js → chunk-F6NDMKZ4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-T56MB6SF.js → chunk-FRNMQM45.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5S6RT5LX.js → chunk-HNGLDMSZ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-QN7VCOUU.js → chunk-HRCMORE7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BK2XAQVC.js → chunk-HRFGFIYU.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-CERNIZLB.js → chunk-JI2GDE4I.js} +42 -42
- package/dist/cli-bundle/chunks/{chunk-6T2V3UIK.js → chunk-LS3GI3H4.js} +53 -53
- package/dist/cli-bundle/chunks/chunk-OH6WQ7VT.js +3 -0
- package/dist/cli-bundle/chunks/{chunk-BRIPGUAO.js → chunk-OJDMJT7Y.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7RCI7AAA.js → chunk-S4LPZ4TN.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-AQ5UHHQS.js → chunk-UEGXWXUZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5BVZ32G7.js → chunk-XLSHFYXZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2GW662DP.js → chunk-YKXATU2G.js} +2 -2
- package/dist/cli-bundle/chunks/{item-revision-UAZOBP2Q.js → item-revision-OJJVPQY7.js} +2 -2
- package/dist/cli-bundle/chunks/item-transaction-QEPBUCMY.js +2 -0
- package/dist/cli-bundle/chunks/{mutation-admission-QZQI2NN5.js → mutation-admission-INMM3HHG.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-P3NOKQUA.js → register-list-query-5Y5JKWU5.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-A6I5K5N6.js → register-mutation-WC7OSQID.js} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-SPKB3TNM.js → register-operations-PO63DBZH.js} +2 -2
- package/dist/cli-bundle/chunks/register-setup-RRFOS7IT.js +2 -0
- package/dist/cli-bundle/chunks/{stage-L3T725DS.js → stage-E3MMV4TV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-5PMJOJCZ.js +44 -0
- package/dist/cli-bundle/focused-chunks/{chunk-TFYTTDAK.js → chunk-7KK66ISG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-Y5GOUUYJ.js → chunk-AHWJPZSJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-C7UX2ZI3.js → chunk-C6P6HPCX.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-Q4OIRSKL.js → chunk-CPMSL4HS.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-CZM75DE3.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-CO2DNPH7.js → chunk-D2TBEBNW.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-E56OXRYH.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-FXFDVM5O.js → chunk-F62XGAAY.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-G4QP365K.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-J7M52SCZ.js → chunk-G5PJCR7R.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-GS3JC5UU.js +23 -0
- package/dist/cli-bundle/focused-chunks/{chunk-W3CSX6GI.js → chunk-LW64TINU.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-MEJKELWC.js → chunk-M6V7UMWL.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-CXTDEQ3N.js → chunk-MC7IE7D7.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-MG7C3JUY.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-QEVJ3Y67.js → chunk-MK4HV4JO.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-A2246ZM7.js → chunk-NQ7GYFOX.js} +54 -54
- package/dist/cli-bundle/focused-chunks/chunk-O7EI33NP.js +91 -0
- package/dist/cli-bundle/focused-chunks/{chunk-FFO7RBLN.js → chunk-RFTJZ5VB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-PNPYQDHU.js → chunk-SNOXXRSJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-JQS7TYQ6.js → chunk-UPJUTP2V.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-SDLIUZEL.js → chunk-VWWTIX5L.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-J6FDCAMH.js → chunk-XHOBYCVE.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-J3YOATXR.js → chunk-YMGB2O4E.js} +25 -24
- package/dist/cli-bundle/focused-chunks/{item-revision-L6GVT42D.js → item-revision-CTDO4H3I.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{item-transaction-GYGP264N.js → item-transaction-AEAYVVHA.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{mutation-admission-UWTH56OD.js → mutation-admission-4WM7TNHZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{stage-WRSNJ7VI.js → stage-WV7QXR4C.js} +2 -2
- package/dist/cli-bundle/main.js +2 -2
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +1 -1
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +57 -57
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +9 -9
- package/dist/core/config/positional-value.d.ts +6 -0
- package/dist/core/config/positional-value.js +1 -1
- package/dist/core/item/literal-mutation-input.d.ts +17 -0
- package/dist/core/item/literal-mutation-input.js +1 -1
- package/dist/core/item/parent-reference-policy.d.ts +8 -4
- package/dist/core/item/parent-reference-policy.js +1 -1
- package/dist/core/item/sprint-release-format.d.ts +2 -1
- package/dist/core/item/sprint-release-format.js +1 -1
- package/dist/core/output/mutation-projection.js +1 -1
- package/dist/core/store/item-mutation-precondition.d.ts +3 -1
- package/dist/core/store/item-mutation-precondition.js +1 -1
- package/dist/core/store/item-store.js +1 -1
- package/dist/core/store/settings.d.ts +14 -0
- package/dist/core/store/settings.js +5 -4
- package/dist/core/telemetry/policy.d.ts +27 -1
- package/dist/core/telemetry/policy.js +1 -1
- package/dist/core/telemetry/runtime.d.ts +18 -7
- package/dist/core/telemetry/runtime.js +4 -4
- package/dist/sdk/cli-contracts/typed-action-inputs.d.ts +8 -5
- package/dist/sdk/cli-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts.js +1 -1
- package/dist/sdk/config.d.ts +2 -2
- package/dist/sdk/config.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/governance/health.d.ts +2 -2
- package/dist/sdk/governance/health.js +2 -2
- package/dist/sdk/index.d.ts +4 -2
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/init.d.ts +4 -4
- package/dist/sdk/init.js +8 -8
- package/dist/sdk/lifecycle/claim.d.ts +4 -0
- package/dist/sdk/lifecycle/claim.js +1 -1
- package/dist/sdk/lifecycle/close.d.ts +10 -0
- package/dist/sdk/lifecycle/close.js +1 -1
- package/dist/sdk/lifecycle/create.d.ts +7 -5
- package/dist/sdk/lifecycle/create.js +1 -1
- package/dist/sdk/lifecycle/shared-unset-fields.d.ts +628 -4
- package/dist/sdk/lifecycle/shared-unset-fields.js +1 -1
- package/dist/sdk/lifecycle/update.d.ts +5 -4
- package/dist/sdk/lifecycle/update.js +2 -2
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/runtime/actions.js +1 -1
- package/dist/sdk/runtime/mutation-value-validation.js +1 -1
- package/dist/sdk/runtime-input.js +1 -1
- package/dist/sdk/runtime-primitives.d.ts +1 -0
- package/dist/sdk/runtime-primitives.js +1 -1
- package/dist/sdk/telemetry.d.ts +1 -1
- package/dist/sdk/telemetry.js +2 -2
- package/docs/AGENT_GUIDE.md +48 -48
- package/docs/AGENT_OUTPUT_ENCODINGS.md +20 -20
- package/docs/ASSURANCE.md +10 -10
- package/docs/BOUNDED_CONTEXT_READS.md +3 -3
- package/docs/CLAUDE_CODE_PLUGIN.md +1 -1
- package/docs/CLI_GRAMMAR.md +2 -2
- package/docs/COMMANDS.md +56 -35
- package/docs/COMMAND_NAMESPACES.md +1 -1
- package/docs/CONFIGURATION.md +82 -71
- package/docs/CONTEXT_ALGORITHM_PORTFOLIO.md +2 -2
- package/docs/CONTEXT_INTEGRITY_CONTRACTS.md +5 -5
- package/docs/CORPUS_SHAPES.md +1 -1
- package/docs/DEPENDENCY_KIND_CONTRACT.md +6 -6
- package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +5 -5
- package/docs/ECOSYSTEM_PLANNING_REVIEW.md +3 -3
- package/docs/EXTENSION_AUTHOR_CONTRACTS.md +4 -4
- package/docs/HISTORY_ATTESTATION.md +1 -1
- package/docs/HISTORY_MAINTENANCE.md +1 -1
- package/docs/LIFECYCLE_COMMANDS.md +1 -1
- package/docs/MCP_2026_07_28.md +16 -16
- package/docs/MCP_2026_07_28_CONFORMANCE.md +19 -19
- package/docs/MCP_REMOTE_TRANSPORT_SECURITY.md +22 -22
- package/docs/MCP_SKILLS_AND_APPS.md +1 -1
- package/docs/MERGE_SAFETY.md +6 -6
- package/docs/MUTATION_INTEGRITY.md +5 -5
- package/docs/OUTPUT_PROJECTION_CONTRACTS.md +14 -14
- package/docs/PACKED_FIRST_RUN.md +1 -1
- package/docs/QUICKSTART.md +10 -10
- package/docs/README.md +21 -21
- package/docs/READ_OUTPUT_CONTRACTS.md +9 -9
- package/docs/RECURRENCE_RECOVERY_CONTRACTS.md +1 -1
- package/docs/RELEASING.md +19 -10
- package/docs/SCRIPTING.md +10 -10
- package/docs/SDK.md +74 -38
- package/docs/SDK_ARTIFACT_OUTPUT.md +1 -1
- package/docs/SDK_PRIMITIVE_INVENTORY.md +2 -2
- package/docs/SELF_DESCRIBING_CONTEXT_CONTRACTS.md +7 -7
- package/docs/TESTING.md +1 -1
- package/docs/WORKFLOW_POLICIES.md +2 -2
- package/docs/WORKSPACE_POSITION_AND_LIFECYCLE.md +8 -8
- package/docs/generated/AGENT_CAPABILITY_ROUTING.md +1 -1
- package/docs/generated/AGENT_COMMAND_SURFACE.md +1 -1
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +1 -1
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +1 -1
- package/docs/performance/cli-transport-overhead.md +7 -7
- package/marketplace.json +1 -1
- package/package.json +1 -1
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/README.md +5 -5
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/GAP_REPORT.md +16 -16
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/README.md +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/GAP_REPORT.md +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/README.md +6 -6
- package/plugins/pm-claude/package.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/package.json +1 -1
- package/plugins/pm-codex/plugin.json +1 -1
- package/runtime-dependencies.json +1 -1
- package/dist/cli-bundle/chunks/chunk-5Z6LWFDL.js +0 -31
- package/dist/cli-bundle/chunks/chunk-DSCFJTHB.js +0 -122
- package/dist/cli-bundle/chunks/chunk-QQHMNUZT.js +0 -2
- package/dist/cli-bundle/chunks/chunk-TX2W6G37.js +0 -3
- package/dist/cli-bundle/chunks/item-transaction-N5F4LXYV.js +0 -2
- package/dist/cli-bundle/chunks/register-setup-ZZRHJ4IS.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5NGNO54M.js +0 -44
- package/dist/cli-bundle/focused-chunks/chunk-B6U44WPW.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-BAW3DGQO.js +0 -91
- package/dist/cli-bundle/focused-chunks/chunk-BHNY3KPJ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-CBG67HUP.js +0 -23
- package/dist/cli-bundle/focused-chunks/chunk-FEPE2CE4.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-PMKR4MJI.js +0 -2
package/dist/sdk/config.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="9ce54ccd-1956-5fc0-994d-a43b5000e917")}catch{}})();import{resolveConfigPositionalValue}from"../core/config/positional-value.js";import{NESTED_SETTING_DESCRIPTORS,parseNestedSettingValue,readNestedSettingValue,resolveNestedSettingDescriptor,writeNestedSettingValue}from"../core/config/nested-settings.js";import{getActiveExtensionRegistrations}from"../core/extensions/index.js";import{normalizeParentReferencePolicy}from"../core/item/parent-reference-policy.js";import{normalizeSprintReleaseFormatPolicy}from"../core/item/sprint-release-format.js";import{resolveItemTypeRegistry,resolveTypeName}from"../core/item/type-registry.js";import{buildInvalidTypeError}from"../core/schema/item-types-file.js";import{resolveItemTypesFilePath}from"../core/schema/runtime-schema.js";import{EXIT_CODE}from"../core/shared/constants.js";import{PmCliError}from"../core/shared/errors.js";import{createUnknownSubcommandError}from"./agent/subcommand-recovery.js";import{planAgentIdentityVocabularyMutation,summarizeAgentIdentityVocabulary}from"./agent/identity-config.js";import{assertInitializedTracker}from"./environment/tracker-preflight.js";import{migrateItemFilesToFormat}from"../core/store/item-format-migration.js";import{getSettingsPath,resolveGlobalPmRoot,resolvePmRoot}from"../core/store/paths.js";import{isSettingsReadFallback,readSettings,readSettingsWithMetadata,writeSettings}from"../core/store/settings.js";import{CONTEXT_DEPTH_VALUES}from"../types/index.js";const CONFIG_SCOPE_VALUES=["project","global"],CONFIG_KEY_ALIASES={definition_of_done:["definition-of-done","definition_of_done"],item_format:["item-format","item_format"],history_missing_stream_policy:["history-missing-stream-policy","history_missing_stream_policy"],sprint_release_format_policy:["sprint-release-format-policy","sprint_release_format_policy"],parent_reference_policy:["parent-reference-policy","parent_reference_policy"],metadata_validation_profile:["metadata-validation-profile","metadata_validation_profile"],metadata_required_fields:["metadata-required-fields","metadata_required_fields"],lifecycle_stale_blocker_reason_patterns:["lifecycle-stale-blocker-reason-patterns","lifecycle_stale_blocker_reason_patterns"],lifecycle_closure_like_blocked_reason_patterns:["lifecycle-closure-like-blocked-reason-patterns","lifecycle_closure_like_blocked_reason_patterns"],lifecycle_closure_like_resolution_patterns:["lifecycle-closure-like-resolution-patterns","lifecycle_closure_like_resolution_patterns"],lifecycle_closure_like_actual_result_patterns:["lifecycle-closure-like-actual-result-patterns","lifecycle_closure_like_actual_result_patterns"],governance_preset:["governance-preset","governance_preset"],governance_ownership_enforcement:["governance-ownership-enforcement","governance_ownership_enforcement"],governance_create_mode_default:["governance-create-mode-default","governance_create_mode_default"],governance_close_validation_default:["governance-close-validation-default","governance_close_validation_default"],governance_require_close_reason:["governance-require-close-reason","governance_require_close_reason"],governance_create_default_type:["governance-create-default-type","governance_create_default_type"],governance_workflow_enforcement:["governance-workflow-enforcement","governance_workflow_enforcement"],governance_start_blocker_enforcement:["governance-start-blocker-enforcement","governance_start_blocker_enforcement"],governance_parent_reference_policy:["governance-parent-reference-policy","governance_parent_reference_policy"],governance_metadata_validation_profile:["governance-metadata-validation-profile","governance_metadata_validation_profile"],governance_force_required_for_stale_lock:["governance-force-required-for-stale-lock","governance_force_required_for_stale_lock"],test_result_tracking:["test-result-tracking","test_result_tracking"],untrusted_linked_test_execution:["untrusted-linked-test-execution","untrusted_linked_test_execution"],telemetry_tracking:["telemetry-tracking","telemetry_tracking"],agent_identity_vocabulary:["agent-identity-vocabulary","agent_identity_vocabulary"],context:["context"]},CANONICAL_CONFIG_KEYS=Object.keys(CONFIG_KEY_ALIASES).map(candidate=>CONFIG_KEY_ALIASES[candidate][0]),CONFIG_KEY_BY_ALIAS=Object.fromEntries(Object.keys(CONFIG_KEY_ALIASES).flatMap(key=>CONFIG_KEY_ALIASES[key].map(alias=>[alias,key]))),CONFIG_KEY_SUMMARIES={definition_of_done:"Definition of Done criteria list.",item_format:"Default item file format.",history_missing_stream_policy:"Missing history stream handling policy.",sprint_release_format_policy:"Sprint/release format validation policy.",parent_reference_policy:"Parent reference validation policy.",metadata_validation_profile:"Validate metadata profile policy (core|strict|custom).",metadata_required_fields:"Validate custom metadata required-fields list.",lifecycle_stale_blocker_reason_patterns:"Validate lifecycle stale-blocker reason substring patterns (criteria list).",lifecycle_closure_like_blocked_reason_patterns:"Validate lifecycle closure-like blocked_reason substring patterns (criteria list).",lifecycle_closure_like_resolution_patterns:"Validate lifecycle closure-like resolution substring patterns (criteria list).",lifecycle_closure_like_actual_result_patterns:"Validate lifecycle closure-like actual_result substring patterns (criteria list).",governance_preset:"Governance preset policy (minimal|default|strict|custom).",governance_ownership_enforcement:"Governance ownership enforcement policy (none|warn|strict).",governance_create_mode_default:"Governance default create mode (progressive|strict).",governance_close_validation_default:"Governance default close validation mode (off|warn|strict).",governance_require_close_reason:"Governance close-reason requirement policy (enabled|disabled).",governance_create_default_type:"Governance default item type for `pm create` when --type is omitted.",governance_workflow_enforcement:"Governance per-type transition enforcement mode (off|warn|strict).",governance_start_blocker_enforcement:"Governance admission for starting an item whose declared blocker is still open (off|warn|strict; strict by default).",governance_parent_reference_policy:"Governance parent reference policy (warn|strict_error).",governance_metadata_validation_profile:"Governance metadata validation profile (core|strict|custom).",governance_force_required_for_stale_lock:"Governance stale-lock force policy (enabled|disabled).",test_result_tracking:"Item-level linked test result persistence policy.",untrusted_linked_test_execution:"Permit an explicit per-run override for commands not trusted by this clone.",telemetry_tracking:"Telemetry usage reporting policy.",agent_identity_vocabulary:"Versioned exact legacy-author interpretation vocabulary (summary only).",context:"Context command settings (depth, section toggles, limits)."},LIFECYCLE_PATTERN_CONFIG_KEYS=["lifecycle_stale_blocker_reason_patterns","lifecycle_closure_like_blocked_reason_patterns","lifecycle_closure_like_resolution_patterns","lifecycle_closure_like_actual_result_patterns"],CRITERIA_CONFIG_KEYS=new Set(["metadata_required_fields",...LIFECYCLE_PATTERN_CONFIG_KEYS]),TRACKING_CONFIG_KEYS=new Set(["test_result_tracking","untrusted_linked_test_execution","telemetry_tracking"]),GOVERNANCE_BOOLEAN_CONFIG_KEYS=new Set(["governance_require_close_reason","governance_force_required_for_stale_lock"]),GOVERNANCE_POLICY_CONFIG_KEYS=new Set(["governance_ownership_enforcement","governance_create_mode_default","governance_close_validation_default"]),GOVERNANCE_VALIDATION_CONFIG_KEYS=new Set(["governance_parent_reference_policy","governance_metadata_validation_profile","governance_workflow_enforcement","governance_start_blocker_enforcement"]),GOVERNANCE_PRESET_OR_TYPE_CONFIG_KEYS=new Set(["governance_preset","governance_create_default_type"]),isCriteriaValueConfigKey=key=>CRITERIA_CONFIG_KEYS.has(key),isGovernancePolicyConfigKey=key=>GOVERNANCE_POLICY_CONFIG_KEYS.has(key),isGovernanceValidationConfigKey=key=>GOVERNANCE_VALIDATION_CONFIG_KEYS.has(key),isGovernancePresetOrTypeConfigKey=key=>GOVERNANCE_PRESET_OR_TYPE_CONFIG_KEYS.has(key);function isCriteriaConfigKey(key){return key==="definition_of_done"||isCriteriaValueConfigKey(key)}function normalizeScope(value){if(CONFIG_SCOPE_VALUES.includes(value))return value;throw new PmCliError(`Invalid config scope "${value}". Allowed: ${CONFIG_SCOPE_VALUES.join(", ")}`,EXIT_CODE.USAGE)}function normalizeAction(value){if(value==="get"||value==="set"||value==="list"||value==="export")return value;throw createUnknownSubcommandError({command_path:"config",token:value.trim()||"<empty>",allowed:["export","get","list","set"],token_kind:"action"})}function normalizeKey(value){const key=CONFIG_KEY_BY_ALIAS[value];if(key)return key;const nestedKeys=NESTED_SETTING_DESCRIPTORS.map(descriptor=>descriptor.key).join(", ");throw new PmCliError(`Invalid config key "${value}". Supported: ${CANONICAL_CONFIG_KEYS.join(", ")} (underscore variants also accepted). Nested leaf settings: ${nestedKeys}.`,EXIT_CODE.USAGE)}function normalizeCriteria(values,clearCriteria){const normalized=[...new Set((values??[]).map(value=>value.trim()).filter(value=>value.length>0))].sort((left,right)=>left.localeCompare(right));if(clearCriteria){if(normalized.length>0)throw new PmCliError("Config set definition-of-done cannot combine --clear-criteria with --criterion values",EXIT_CODE.USAGE);return[]}if(normalized.length===0)throw new PmCliError("Config set definition-of-done requires at least one non-empty --criterion value (or --clear-criteria to clear)",EXIT_CODE.USAGE);return normalized}function normalizeItemFormat(value){const normalized=value?.trim().toLowerCase();if(normalized==="toon")return"toon";throw normalized==="json_markdown"?new PmCliError("Config set item-format no longer accepts json_markdown. Markdown item files are legacy read/migration input only.",EXIT_CODE.USAGE):new PmCliError("Config set item-format requires --format toon",EXIT_CODE.USAGE)}function normalizeHistoryMissingStreamPolicy(value){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="auto_create"||normalized==="strict_error")return normalized;throw new PmCliError("Config set history-missing-stream-policy requires --policy with one of: auto_create, strict_error",EXIT_CODE.USAGE)}function normalizeTestResultTrackingPolicy(value){return normalizeEnabledDisabledPolicy(value,"test-result-tracking")}function normalizeEnabledDisabledPolicy(value,key){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="enabled"||normalized==="disabled")return normalized;throw new PmCliError(`Config set ${key} requires --policy with one of: enabled, disabled`,EXIT_CODE.USAGE)}function normalizeTelemetryTrackingPolicy(value){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="enabled"||normalized==="disabled")return normalized;throw new PmCliError("Config set telemetry-tracking requires --policy with one of: enabled, disabled",EXIT_CODE.USAGE)}function normalizeValidateMetadataProfile(value){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="core"||normalized==="strict"||normalized==="custom")return normalized;throw new PmCliError("Config set metadata-validation-profile requires --policy with one of: core, strict, custom",EXIT_CODE.USAGE)}function normalizeGovernancePreset(value){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="minimal"||normalized==="default"||normalized==="strict"||normalized==="custom")return normalized;throw new PmCliError("Config set governance-preset requires --policy with one of: minimal, default, strict, custom",EXIT_CODE.USAGE)}function normalizeGovernanceOwnershipEnforcement(value){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="none"||normalized==="warn"||normalized==="strict")return normalized;throw new PmCliError("Config set governance-ownership-enforcement requires --policy with one of: none, warn, strict",EXIT_CODE.USAGE)}function normalizeGovernanceCreateModeDefault(value){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="progressive"||normalized==="strict")return normalized;throw new PmCliError("Config set governance-create-mode-default requires --policy with one of: progressive, strict",EXIT_CODE.USAGE)}function normalizeGovernanceCloseValidationDefault(value){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="off"||normalized==="warn"||normalized==="strict")return normalized;if(normalized==="none"||normalized==="disabled")return"off";throw new PmCliError("Config set governance-close-validation-default requires --policy with one of: off, warn, strict",EXIT_CODE.USAGE)}function normalizeGovernanceWorkflowEnforcement(value,key="governance-workflow-enforcement"){const normalized=typeof value=="string"?value.trim().toLowerCase().replaceAll("-","_"):void 0;if(normalized==="off"||normalized==="warn"||normalized==="strict")return normalized;if(normalized==="none"||normalized==="disabled")return"off";throw new PmCliError(`Config set ${key} requires one of: off, warn, strict`,EXIT_CODE.USAGE)}function normalizeGovernanceForceRequiredForStaleLockPolicy(value){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="enabled"||normalized==="disabled")return normalized;throw new PmCliError("Config set governance-force-required-for-stale-lock requires --policy with one of: enabled, disabled",EXIT_CODE.USAGE)}function normalizeGovernanceRequireCloseReasonPolicy(value){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="enabled"||normalized==="disabled")return normalized;throw new PmCliError("Config set governance-require-close-reason requires --policy with one of: enabled, disabled",EXIT_CODE.USAGE)}const ENABLED_DISABLED_CONFLICT_POLICY_KEYS={test_result_tracking:"test-result-tracking",untrusted_linked_test_execution:"untrusted-linked-test-execution"},ENFORCEMENT_MODE_CONFLICT_POLICY_KEYS={governance_workflow_enforcement:"governance-workflow-enforcement",governance_start_blocker_enforcement:"governance-start-blocker-enforcement"};function normalizePolicyForConflict(key,value){const enabledDisabledKey=ENABLED_DISABLED_CONFLICT_POLICY_KEYS[key];if(enabledDisabledKey)return normalizeEnabledDisabledPolicy(value,enabledDisabledKey);const enforcementKey=ENFORCEMENT_MODE_CONFLICT_POLICY_KEYS[key];if(enforcementKey)return normalizeGovernanceWorkflowEnforcement(value,enforcementKey);switch(key){case"history_missing_stream_policy":return normalizeHistoryMissingStreamPolicy(value);case"sprint_release_format_policy":return normalizeSprintReleaseFormatPolicy(value);case"parent_reference_policy":case"governance_parent_reference_policy":return normalizeParentReferencePolicy(value);case"metadata_validation_profile":case"governance_metadata_validation_profile":return normalizeValidateMetadataProfile(value);case"governance_preset":return normalizeGovernancePreset(value);case"governance_ownership_enforcement":return normalizeGovernanceOwnershipEnforcement(value);case"governance_create_mode_default":return normalizeGovernanceCreateModeDefault(value);case"governance_close_validation_default":return normalizeGovernanceCloseValidationDefault(value);case"governance_require_close_reason":return normalizeGovernanceRequireCloseReasonPolicy(value);case"governance_force_required_for_stale_lock":return normalizeGovernanceForceRequiredForStaleLockPolicy(value);case"telemetry_tracking":return normalizeTelemetryTrackingPolicy(value);default:return value.trim().toLowerCase().replaceAll("-","_")}}const METADATA_REQUIRED_FIELD_ALIAS_MAP={author:"author",acceptance_criteria:"acceptance_criteria","acceptance-criteria":"acceptance_criteria",estimated_minutes:"estimated_minutes","estimated-minutes":"estimated_minutes",estimate:"estimated_minutes",close_reason:"close_reason","close-reason":"close_reason",reviewer:"reviewer",risk:"risk",confidence:"confidence",sprint:"sprint",release:"release"},METADATA_REQUIRED_FIELD_OPTIONS=["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"];function normalizeMetadataRequiredFields(values,clearCriteria){const normalized=[...new Set((values??[]).map(value=>value.trim()).filter(value=>value.length>0))];if(clearCriteria){if(normalized.length>0)throw new PmCliError("Config set metadata-required-fields cannot combine --clear-criteria with --criterion values",EXIT_CODE.USAGE);return[]}if(normalized.length===0)throw new PmCliError("Config set metadata-required-fields requires at least one --criterion value (or --clear-criteria to clear)",EXIT_CODE.USAGE);const lowered=normalized.map(value=>value.toLowerCase().replaceAll("-","_")),unsupported=lowered.filter(value=>METADATA_REQUIRED_FIELD_ALIAS_MAP[value]===void 0);if(unsupported.length>0)throw new PmCliError(`Config set metadata-required-fields received unsupported values: ${unsupported.join(", ")}. Supported values: ${METADATA_REQUIRED_FIELD_OPTIONS.join(", ")}`,EXIT_CODE.USAGE);return[...new Set(lowered.map(value=>METADATA_REQUIRED_FIELD_ALIAS_MAP[value]))].sort((left,right)=>left.localeCompare(right))}function normalizeLifecyclePatternCriteria(key,values,clearCriteria){const normalized=[...new Set((values??[]).map(value=>value.trim().toLowerCase()).filter(value=>value.length>0))].sort((left,right)=>left.localeCompare(right));if(clearCriteria){if(normalized.length>0)throw new PmCliError(`Config set ${CONFIG_KEY_ALIASES[key][0]} cannot combine --clear-criteria with --criterion values`,EXIT_CODE.USAGE);return[]}if(normalized.length===0)throw new PmCliError(`Config set ${CONFIG_KEY_ALIASES[key][0]} requires at least one --criterion value (or --clear-criteria to clear)`,EXIT_CODE.USAGE);return normalized}function normalizeWarnings(values){return[...new Set(values)].sort((left,right)=>left.localeCompare(right))}function normalizeKeyForAction(action,value){if(action==="list"||action==="export"){if(typeof value=="string"&&value.trim().length>0)throw new PmCliError(`Config action "${action}" does not accept <key>`,EXIT_CODE.USAGE);return}if(typeof value!="string"||value.trim().length===0)throw new PmCliError(`Config action "${action}" requires <key>`,EXIT_CODE.USAGE);return normalizeKey(value)}function assertConfigKeyDefined(key){if(!key)throw new PmCliError("Config action requires <key>",EXIT_CODE.USAGE)}const CONFIG_VALUE_READERS={definition_of_done:settings=>[...settings.workflow.definition_of_done],item_format:settings=>settings.item_format,history_missing_stream_policy:settings=>settings.history.missing_stream,sprint_release_format_policy:settings=>settings.validation.sprint_release_format,parent_reference_policy:settings=>settings.validation.parent_reference,metadata_validation_profile:settings=>settings.validation.metadata_profile,metadata_required_fields:settings=>[...settings.validation.metadata_required_fields],lifecycle_stale_blocker_reason_patterns:settings=>[...settings.validation.lifecycle_stale_blocker_reason_patterns],lifecycle_closure_like_blocked_reason_patterns:settings=>[...settings.validation.lifecycle_closure_like_blocked_reason_patterns],lifecycle_closure_like_resolution_patterns:settings=>[...settings.validation.lifecycle_closure_like_resolution_patterns],lifecycle_closure_like_actual_result_patterns:settings=>[...settings.validation.lifecycle_closure_like_actual_result_patterns],governance_preset:settings=>settings.governance.preset,governance_ownership_enforcement:settings=>settings.governance.ownership_enforcement,governance_create_mode_default:settings=>settings.governance.create_mode_default,governance_close_validation_default:settings=>settings.governance.close_validation_default,governance_require_close_reason:settings=>settings.governance.require_close_reason?"enabled":"disabled",governance_create_default_type:settings=>settings.governance.create_default_type??"",governance_workflow_enforcement:settings=>settings.governance.workflow_enforcement??"off",governance_start_blocker_enforcement:settings=>settings.governance.start_blocker_enforcement??"strict",governance_parent_reference_policy:settings=>settings.governance.parent_reference,governance_metadata_validation_profile:settings=>settings.governance.metadata_profile,governance_force_required_for_stale_lock:settings=>settings.governance.force_required_for_stale_lock?"enabled":"disabled",test_result_tracking:settings=>settings.testing.record_results_to_items?"enabled":"disabled",untrusted_linked_test_execution:settings=>settings.testing.allow_untrusted_linked_tests?"enabled":"disabled",telemetry_tracking:settings=>settings.telemetry.enabled?"enabled":"disabled",agent_identity_vocabulary:settings=>summarizeAgentIdentityVocabulary(settings.agent_identity?.identity_vocabulary),context:settings=>({default_depth:settings.context.default_depth,activity_limit:settings.context.activity_limit,stale_threshold_days:settings.context.stale_threshold_days,next_ranking_policy:settings.context.next_ranking_policy,sections:{...settings.context.sections}})};function readConfigValue(settings,key){return CONFIG_VALUE_READERS[key](settings)}function withWarnings(result,warnings){return warnings.length===0?result:{...result,warnings}}async function resolveSettingsTarget(scope,global2){const cwd=process.cwd(),pmRoot=scope==="project"?resolvePmRoot(cwd,global2.path):resolveGlobalPmRoot(cwd),settingsPath=getSettingsPath(pmRoot);return scope==="project"&&await assertInitializedTracker(pmRoot),{pmRoot,settingsPath}}function parseSectionToggle(raw){if(raw===void 0)return;const normalized=raw.trim().toLowerCase();if(normalized==="true"||normalized==="enabled"||normalized==="on"||normalized==="1")return!0;if(normalized==="false"||normalized==="disabled"||normalized==="off"||normalized==="0")return!1;throw new PmCliError(`Context section toggle must be true|false|enabled|disabled, got "${raw}"`,EXIT_CODE.USAGE)}function parsePositiveContextInteger(rawValue,option){const raw=rawValue.trim(),parsed=Number(raw);if(/^\d+$/u.test(raw)&&Number.isSafeInteger(parsed)&&parsed>0)return parsed;throw new PmCliError(`Context ${option} must be a positive integer`,EXIT_CODE.USAGE)}async function applyContextConfig(settings,options,target,scope,warnings){let changed=!1;const ctx=settings.context,assignedPaths=[];if(options.defaultDepth!==void 0){const normalized=options.defaultDepth.trim().toLowerCase();if(!CONTEXT_DEPTH_VALUES.includes(normalized))throw new PmCliError(`Context --default-depth must be one of ${CONTEXT_DEPTH_VALUES.join("|")}`,EXIT_CODE.USAGE);assignedPaths.push("context.default_depth"),ctx.default_depth!==normalized&&(ctx.default_depth=normalized,changed=!0)}if(options.activityLimit!==void 0){const parsed=parsePositiveContextInteger(options.activityLimit,"--activity-limit");assignedPaths.push("context.activity_limit"),ctx.activity_limit!==parsed&&(ctx.activity_limit=parsed,changed=!0)}if(options.staleThresholdDays!==void 0){const parsed=parsePositiveContextInteger(options.staleThresholdDays,"--stale-threshold-days");assignedPaths.push("context.stale_threshold_days"),ctx.stale_threshold_days!==parsed&&(ctx.stale_threshold_days=parsed,changed=!0)}const sectionToggles=[["hierarchy",options.sectionHierarchy],["activity",options.sectionActivity],["progress",options.sectionProgress],["blockers",options.sectionBlockers],["files",options.sectionFiles],["workload",options.sectionWorkload],["staleness",options.sectionStaleness],["tests",options.sectionTests]];for(const[sectionName,rawValue]of sectionToggles){const toggle=parseSectionToggle(rawValue);if(toggle!==void 0){const key=sectionName;assignedPaths.push(`context.sections.${sectionName}`),ctx.sections[key]!==toggle&&(ctx.sections[key]=toggle,changed=!0)}}return(changed||isSettingsReadFallback(settings))&&(await writeSettings(target.pmRoot,settings,"config:set:context",{assignedPaths}),changed=!0),withWarnings({scope,key:"context",context_settings:{default_depth:ctx.default_depth,activity_limit:ctx.activity_limit,stale_threshold_days:ctx.stale_threshold_days,next_ranking_policy:ctx.next_ranking_policy,sections:{...ctx.sections}},settings_path:target.settingsPath,changed},warnings)}function applyNestedSettingPositionalValue(keyValue,valueValue,options){if(options.value!==void 0&&options.value!==valueValue)throw new PmCliError(`Config set ${keyValue} received both positional value "${valueValue}" and --value "${options.value}". Pass only one.`,EXIT_CODE.USAGE);return{...options,value:valueValue}}function applyPositionalValue(action,keyValue,normalizedKey,nestedSetting,valueValue,options){if(valueValue===void 0)return options;if(action!=="set")throw new PmCliError(`Config action "${action}" does not accept a positional value. Only "set" takes <value>.`,EXIT_CODE.USAGE);if(typeof keyValue!="string"||keyValue.trim().length===0)throw new PmCliError('Config action "set" requires <key> before a positional <value>.',EXIT_CODE.USAGE);if(nestedSetting)return applyNestedSettingPositionalValue(keyValue,valueValue,options);assertConfigKeyDefined(normalizedKey);const routed=resolveConfigPositionalValue(normalizedKey,valueValue);if(!routed.routable)throw new PmCliError(routed.reason,EXIT_CODE.USAGE);if(routed.flag==="criterion"){if(options.criterion!==void 0&&options.criterion.length>0)throw new PmCliError(`Config set ${keyValue} received both positional value "${valueValue}" and --criterion. Pass criteria via --criterion only when supplying more than one value.`,EXIT_CODE.USAGE);return{...options,criterion:routed.values}}if(routed.flag==="format")return{...options,format:routed.value};if(options.policy!==void 0&&normalizePolicyForConflict(normalizedKey,options.policy)!==normalizePolicyForConflict(normalizedKey,routed.value))throw new PmCliError(`Config set ${keyValue} received both positional value "${valueValue}" and --policy "${options.policy}". Pass only one.`,EXIT_CODE.USAGE);return{...options,policy:routed.value}}function buildConfigListResult(context){const keys=Object.keys(CONFIG_KEY_ALIASES).map(candidate=>({key:candidate,aliases:CONFIG_KEY_ALIASES[candidate],value_kind:candidate==="context"||candidate==="agent_identity_vocabulary"?"object":isCriteriaConfigKey(candidate)?"string_array":"enum",set_flags:candidate==="context"?["--default-depth","--activity-limit","--stale-threshold-days","--section-<name>"]:candidate==="agent_identity_vocabulary"?["--policy","--value","--criterion"]:isCriteriaConfigKey(candidate)?["--criterion","--clear-criteria"]:candidate==="item_format"?["--format"]:["--policy"],summary:CONFIG_KEY_SUMMARIES[candidate],value:readConfigValue(context.settings,candidate)})),nestedSettings=NESTED_SETTING_DESCRIPTORS.map(descriptor=>({key:descriptor.key,canonical_key:descriptor.key.replaceAll("_","-"),path:descriptor.path,kind:descriptor.kind,value:readNestedSettingValue(context.settings,descriptor),summary:descriptor.summary,...descriptor.choices?{choices:[...descriptor.choices]}:{},...descriptor.min===void 0?{}:{min:descriptor.min},...descriptor.max===void 0?{}:{max:descriptor.max}}));return withWarnings({scope:context.scope,keys,nested_settings:nestedSettings,count:keys.length,settings_path:context.target.settingsPath,changed:!1},context.warnings)}function buildConfigExportResult(context){const values=Object.fromEntries(Object.keys(CONFIG_KEY_ALIASES).map(key=>[key,readConfigValue(context.settings,key)]));return withWarnings({scope:context.scope,values,settings_path:context.target.settingsPath,changed:!1},context.warnings)}function buildConfigGetResult(context,key){const value=readConfigValue(context.settings,key),base={scope:context.scope,key,settings_path:context.target.settingsPath,changed:!1};return key==="item_format"?withWarnings({...base,format:context.settings.item_format,has_explicit_item_format:context.metadata.has_explicit_item_format},context.warnings):key==="context"?withWarnings({...base,context_settings:value},context.warnings):key==="agent_identity_vocabulary"?withWarnings({...base,identity_vocabulary:value},context.warnings):Array.isArray(value)?withWarnings({...base,criteria:value},context.warnings):withWarnings({...base,policy:value},context.warnings)}async function buildNestedSettingResult(context,action,nestedSetting,options){if(action==="get"){const currentValue=readNestedSettingValue(context.settings,nestedSetting);return withWarnings({scope:context.scope,key:nestedSetting.key,nested_setting:{key:nestedSetting.key,path:nestedSetting.path,kind:nestedSetting.kind,value:currentValue},settings_path:context.target.settingsPath,changed:!1},context.warnings)}const rawValue=options.value;if(typeof rawValue!="string")throw new PmCliError(`Config set ${nestedSetting.key} requires a value. Pass it positionally (\`pm config ${context.scope} set ${nestedSetting.key} <value>\`) or via --value.`,EXIT_CODE.USAGE);const parsed=parseNestedSettingValue(nestedSetting,rawValue);if(!parsed.ok)throw new PmCliError(parsed.error.message,EXIT_CODE.USAGE);const changed=writeNestedSettingValue(context.settings,nestedSetting,parsed.parsed.value)||isSettingsReadFallback(context.settings);return changed&&await writeSettings(context.target.pmRoot,context.settings,`config:set:${nestedSetting.path}`,{assignedPaths:[nestedSetting.path]}),withWarnings({scope:context.scope,key:nestedSetting.key,nested_setting:{key:nestedSetting.key,path:nestedSetting.path,kind:nestedSetting.kind,value:parsed.parsed.value},settings_path:context.target.settingsPath,changed},context.warnings)}async function writeConfigSettingsIfChanged(context,changed,reason,assignedPaths=[]){(changed||isSettingsReadFallback(context.settings))&&(await writeSettings(context.target.pmRoot,context.settings,reason,{assignedPaths}),isSettingsReadFallback(context.settings)&&(context.fallbackRepairWritten=!0))}function hasGovernanceValidationMirrorChange(governanceValue,validationValue,nextPolicy){return governanceValue!==nextPolicy||validationValue!==nextPolicy}function buildPolicyResult(context,key,policy,changed){return withWarnings({scope:context.scope,key,policy,settings_path:context.target.settingsPath,changed},context.warnings)}function buildCriteriaResult(context,key,criteria,changed){return withWarnings({scope:context.scope,key,criteria,settings_path:context.target.settingsPath,changed},context.warnings)}async function migrateItemsForFormatChange(pmRoot,settings,nextFormat){const typeRegistry=resolveItemTypeRegistry(settings,getActiveExtensionRegistrations()),migrated=await migrateItemFilesToFormat(pmRoot,nextFormat,"config:set:item_format:migrate",typeRegistry.type_to_folder,settings.schema);return{target_format:migrated.target_format,scanned:migrated.scanned,migrated:migrated.migrated,removed:migrated.removed,warnings:migrated.warnings}}async function setItemFormatConfig(context,options){const nextFormat=normalizeItemFormat(options.format),changed=context.settings.item_format!==nextFormat||!context.metadata.has_explicit_item_format;let migration;if(changed){context.settings.item_format=nextFormat;const writeOptions={assignedPaths:["item_format"]};isSettingsReadFallback(context.settings)?(await writeSettings(context.target.pmRoot,context.settings,"config:set:item_format",writeOptions),context.fallbackRepairWritten=!0,migration=await migrateItemsForFormatChange(context.target.pmRoot,await readSettings(context.target.pmRoot),nextFormat)):(migration=await migrateItemsForFormatChange(context.target.pmRoot,context.settings,nextFormat),await writeSettings(context.target.pmRoot,context.settings,"config:set:item_format",writeOptions))}return withWarnings({scope:context.scope,key:"item_format",format:context.settings.item_format,has_explicit_item_format:!0,migration,settings_path:context.target.settingsPath,changed},context.warnings)}async function setValidationConfig(context,key,options){if(key==="history_missing_stream_policy"){const nextPolicy2=normalizeHistoryMissingStreamPolicy(options.policy),changed2=context.settings.history.missing_stream!==nextPolicy2;return context.settings.history.missing_stream=nextPolicy2,await writeConfigSettingsIfChanged(context,changed2,"config:set:history_missing_stream_policy",["history.missing_stream"]),buildPolicyResult(context,key,context.settings.history.missing_stream,changed2)}if(key==="sprint_release_format_policy"){const nextPolicy2=normalizeSprintReleaseFormatPolicy(options.policy),changed2=context.settings.validation.sprint_release_format!==nextPolicy2;return context.settings.validation.sprint_release_format=nextPolicy2,await writeConfigSettingsIfChanged(context,changed2,"config:set:sprint_release_format_policy",["validation.sprint_release_format"]),buildPolicyResult(context,key,context.settings.validation.sprint_release_format,changed2)}if(key==="parent_reference_policy"){const nextPolicy2=normalizeParentReferencePolicy(options.policy),changed2=context.settings.validation.parent_reference!==nextPolicy2||context.settings.governance.preset!=="custom"||context.settings.governance.parent_reference!==nextPolicy2;return context.settings.validation.parent_reference=nextPolicy2,context.settings.governance.preset="custom",context.settings.governance.parent_reference=nextPolicy2,await writeConfigSettingsIfChanged(context,changed2,"config:set:parent_reference_policy",["validation.parent_reference","governance.preset","governance.parent_reference"]),buildPolicyResult(context,key,context.settings.validation.parent_reference,changed2)}const nextPolicy=normalizeValidateMetadataProfile(options.policy),changed=context.settings.validation.metadata_profile!==nextPolicy||context.settings.governance.preset!=="custom"||context.settings.governance.metadata_profile!==nextPolicy;return context.settings.validation.metadata_profile=nextPolicy,context.settings.governance.preset="custom",context.settings.governance.metadata_profile=nextPolicy,await writeConfigSettingsIfChanged(context,changed,"config:set:metadata_validation_profile",["validation.metadata_profile","governance.preset","governance.metadata_profile"]),buildPolicyResult(context,key,context.settings.validation.metadata_profile,changed)}async function setCriteriaConfig(context,key,options){if(key==="metadata_required_fields"){const nextCriteria2=normalizeMetadataRequiredFields(options.criterion,options.clearCriteria),changed2=nextCriteria2.length!==context.settings.validation.metadata_required_fields.length||nextCriteria2.some((value,index)=>value!==context.settings.validation.metadata_required_fields[index]);return context.settings.validation.metadata_required_fields=nextCriteria2,await writeConfigSettingsIfChanged(context,changed2,"config:set:metadata_required_fields",["validation.metadata_required_fields"]),buildCriteriaResult(context,key,[...context.settings.validation.metadata_required_fields],changed2)}const currentCriteria={lifecycle_stale_blocker_reason_patterns:context.settings.validation.lifecycle_stale_blocker_reason_patterns,lifecycle_closure_like_blocked_reason_patterns:context.settings.validation.lifecycle_closure_like_blocked_reason_patterns,lifecycle_closure_like_resolution_patterns:context.settings.validation.lifecycle_closure_like_resolution_patterns,lifecycle_closure_like_actual_result_patterns:context.settings.validation.lifecycle_closure_like_actual_result_patterns}[key],nextCriteria=normalizeLifecyclePatternCriteria(key,options.criterion,options.clearCriteria),changed=nextCriteria.length!==currentCriteria.length||nextCriteria.some((value,index)=>value!==currentCriteria[index]);return currentCriteria.splice(0,currentCriteria.length,...nextCriteria),await writeConfigSettingsIfChanged(context,changed,`config:set:${key}`,[`validation.${key}`]),buildCriteriaResult(context,key,[...currentCriteria],changed)}async function setGovernancePresetOrTypeConfig(context,key,options){if(key==="governance_preset"){const nextPolicy=normalizeGovernancePreset(options.policy),changed2=context.settings.governance.preset!==nextPolicy;return context.settings.governance.preset=nextPolicy,await writeConfigSettingsIfChanged(context,changed2,"config:set:governance_preset",["governance.preset"]),buildPolicyResult(context,key,context.settings.governance.preset,changed2)}const policyProvided=typeof options.policy=="string",rawType=policyProvided?options.policy.trim():"";if(policyProvided&&rawType.length===0){const changed2=context.settings.governance.create_default_type!==void 0;return delete context.settings.governance.create_default_type,await writeConfigSettingsIfChanged(context,changed2,"config:set:governance_create_default_type",["governance.create_default_type"]),buildPolicyResult(context,key,context.settings.governance.create_default_type??"",changed2)}if(rawType.length===0)throw new PmCliError('Config set governance-create-default-type requires an item type value (or an empty value "" to clear it)',EXIT_CODE.USAGE);const typeRegistry=resolveItemTypeRegistry(context.settings,getActiveExtensionRegistrations()),resolvedType=resolveTypeName(rawType,typeRegistry);if(!resolvedType)throw new PmCliError(buildInvalidTypeError(rawType,typeRegistry.types,resolveItemTypesFilePath(context.target.pmRoot,context.settings.schema)),EXIT_CODE.USAGE);const changed=context.settings.governance.create_default_type!==resolvedType;return context.settings.governance.create_default_type=resolvedType,await writeConfigSettingsIfChanged(context,changed,"config:set:governance_create_default_type",["governance.create_default_type"]),buildPolicyResult(context,key,context.settings.governance.create_default_type,changed)}async function setGovernancePolicyConfig(context,key,options){if(key==="governance_ownership_enforcement"){const nextPolicy2=normalizeGovernanceOwnershipEnforcement(options.policy),changed2=context.settings.governance.preset!=="custom"||context.settings.governance.ownership_enforcement!==nextPolicy2;return context.settings.governance.preset="custom",context.settings.governance.ownership_enforcement=nextPolicy2,await writeConfigSettingsIfChanged(context,changed2,"config:set:governance_ownership_enforcement",["governance.preset","governance.ownership_enforcement"]),buildPolicyResult(context,key,context.settings.governance.ownership_enforcement,changed2)}if(key==="governance_create_mode_default"){const nextPolicy2=normalizeGovernanceCreateModeDefault(options.policy),changed2=context.settings.governance.preset!=="custom"||context.settings.governance.create_mode_default!==nextPolicy2;return context.settings.governance.preset="custom",context.settings.governance.create_mode_default=nextPolicy2,await writeConfigSettingsIfChanged(context,changed2,"config:set:governance_create_mode_default",["governance.preset","governance.create_mode_default"]),buildPolicyResult(context,key,context.settings.governance.create_mode_default,changed2)}const nextPolicy=normalizeGovernanceCloseValidationDefault(options.policy),changed=context.settings.governance.preset!=="custom"||context.settings.governance.close_validation_default!==nextPolicy;return context.settings.governance.preset="custom",context.settings.governance.close_validation_default=nextPolicy,await writeConfigSettingsIfChanged(context,changed,"config:set:governance_close_validation_default",["governance.preset","governance.close_validation_default"]),buildPolicyResult(context,key,context.settings.governance.close_validation_default,changed)}async function setGovernanceValidationConfig(context,key,options){if(key==="governance_parent_reference_policy"){const nextPolicy2=normalizeParentReferencePolicy(options.policy),changed2=context.settings.governance.preset!=="custom"||hasGovernanceValidationMirrorChange(context.settings.governance.parent_reference,context.settings.validation.parent_reference,nextPolicy2);return context.settings.governance.preset="custom",context.settings.governance.parent_reference=nextPolicy2,context.settings.validation.parent_reference=nextPolicy2,await writeConfigSettingsIfChanged(context,changed2,"config:set:governance_parent_reference_policy",["governance.preset","governance.parent_reference","validation.parent_reference"]),buildPolicyResult(context,key,context.settings.governance.parent_reference,changed2)}if(key==="governance_metadata_validation_profile"){const nextPolicy2=normalizeValidateMetadataProfile(options.policy),changed2=context.settings.governance.preset!=="custom"||hasGovernanceValidationMirrorChange(context.settings.governance.metadata_profile,context.settings.validation.metadata_profile,nextPolicy2);return context.settings.governance.preset="custom",context.settings.governance.metadata_profile=nextPolicy2,context.settings.validation.metadata_profile=nextPolicy2,await writeConfigSettingsIfChanged(context,changed2,"config:set:governance_metadata_validation_profile",["governance.preset","governance.metadata_profile","validation.metadata_profile"]),buildPolicyResult(context,key,context.settings.governance.metadata_profile,changed2)}if(key==="governance_start_blocker_enforcement"){const nextStartPolicy=normalizeGovernanceWorkflowEnforcement(options.policy,"governance-start-blocker-enforcement"),changed2=(context.settings.governance.start_blocker_enforcement??"strict")!==nextStartPolicy;return context.settings.governance.start_blocker_enforcement=nextStartPolicy,await writeConfigSettingsIfChanged(context,changed2,"config:set:governance_start_blocker_enforcement",["governance.start_blocker_enforcement"]),buildPolicyResult(context,key,nextStartPolicy,changed2)}const nextPolicy=normalizeGovernanceWorkflowEnforcement(options.policy),changed=(context.settings.governance.workflow_enforcement??"off")!==nextPolicy;return context.settings.governance.workflow_enforcement=nextPolicy,await writeConfigSettingsIfChanged(context,changed,"config:set:governance_workflow_enforcement",["governance.workflow_enforcement"]),buildPolicyResult(context,key,context.settings.governance.workflow_enforcement,changed)}async function setGovernanceBooleanConfig(context,key,options){if(key==="governance_require_close_reason"){const nextEnabled2=normalizeGovernanceRequireCloseReasonPolicy(options.policy)==="enabled",changed2=context.settings.governance.require_close_reason!==nextEnabled2;return context.settings.governance.require_close_reason=nextEnabled2,await writeConfigSettingsIfChanged(context,changed2,"config:set:governance_require_close_reason",["governance.require_close_reason"]),buildPolicyResult(context,key,context.settings.governance.require_close_reason?"enabled":"disabled",changed2)}const nextEnabled=normalizeGovernanceForceRequiredForStaleLockPolicy(options.policy)==="enabled",changed=context.settings.governance.preset!=="custom"||context.settings.governance.force_required_for_stale_lock!==nextEnabled;return context.settings.governance.preset="custom",context.settings.governance.force_required_for_stale_lock=nextEnabled,await writeConfigSettingsIfChanged(context,changed,"config:set:governance_force_required_for_stale_lock",["governance.preset","governance.force_required_for_stale_lock"]),buildPolicyResult(context,key,context.settings.governance.force_required_for_stale_lock?"enabled":"disabled",changed)}async function setTrackingConfig(context,key,options){if(key==="test_result_tracking"){const nextEnabled2=normalizeTestResultTrackingPolicy(options.policy)==="enabled",changed2=context.settings.testing.record_results_to_items!==nextEnabled2;return context.settings.testing.record_results_to_items=nextEnabled2,await writeConfigSettingsIfChanged(context,changed2,"config:set:test_result_tracking",["testing.record_results_to_items"]),buildPolicyResult(context,key,context.settings.testing.record_results_to_items?"enabled":"disabled",changed2)}if(key==="untrusted_linked_test_execution"){const nextEnabled2=normalizeEnabledDisabledPolicy(options.policy,"untrusted-linked-test-execution")==="enabled",changed2=context.settings.testing.allow_untrusted_linked_tests!==nextEnabled2;return context.settings.testing.allow_untrusted_linked_tests=nextEnabled2,await writeConfigSettingsIfChanged(context,changed2,"config:set:untrusted_linked_test_execution",["testing.allow_untrusted_linked_tests"]),buildPolicyResult(context,key,context.settings.testing.allow_untrusted_linked_tests?"enabled":"disabled",changed2)}const nextEnabled=normalizeTelemetryTrackingPolicy(options.policy)==="enabled",changed=context.settings.telemetry.enabled!==nextEnabled||!context.settings.telemetry.first_run_prompt_completed;return context.settings.telemetry.enabled=nextEnabled,context.settings.telemetry.first_run_prompt_completed=!0,await writeConfigSettingsIfChanged(context,changed,"config:set:telemetry_tracking",["telemetry.enabled","telemetry.first_run_prompt_completed"]),buildPolicyResult(context,key,context.settings.telemetry.enabled?"enabled":"disabled",changed)}async function setDefinitionOfDoneConfig(context,key,options){const nextCriteria=normalizeCriteria(options.criterion,options.clearCriteria),changed=nextCriteria.length!==context.settings.workflow.definition_of_done.length||nextCriteria.some((value,index)=>value!==context.settings.workflow.definition_of_done[index]);return context.settings.workflow.definition_of_done=nextCriteria,await writeConfigSettingsIfChanged(context,changed,"config:set:definition_of_done",["workflow.definition_of_done"]),buildCriteriaResult(context,key,[...context.settings.workflow.definition_of_done],changed)}function parseAgentIdentityVocabularyOperation(raw){const policy=raw?.trim().toLowerCase().replaceAll("_","-"),dryRun=policy?.startsWith("preview-")===!0,operation=dryRun?policy.slice(8):policy;if(operation==="add"||operation==="remove"||operation==="clear")return{operation,dryRun};throw new PmCliError("Config set agent-identity-vocabulary requires --policy add|remove|clear|preview-add|preview-remove|preview-clear",EXIT_CODE.USAGE)}function parseAgentIdentityVocabularyMutationValue(operation,value){if(operation==="add"){const separator=value?.lastIndexOf("=")??-1;if(separator<=0||separator===value.length-1)throw new PmCliError('Config set agent-identity-vocabulary --policy add requires --value "<legacy-author>=<canonical-harness>"',EXIT_CODE.USAGE);return{legacy_author:value.slice(0,separator),canonical_harness:value.slice(separator+1)}}if(operation==="remove"){if(value===void 0)throw new PmCliError("Config set agent-identity-vocabulary --policy remove requires --value <legacy-author>",EXIT_CODE.USAGE);return{legacy_author:value}}if(value!==void 0)throw new PmCliError("Config set agent-identity-vocabulary --policy clear does not accept --value",EXIT_CODE.USAGE);return{}}async function setAgentIdentityVocabularyConfig(context,options){const{operation,dryRun}=parseAgentIdentityVocabularyOperation(options.policy),mutationValue=parseAgentIdentityVocabularyMutationValue(operation,options.value);let planned;try{planned=planAgentIdentityVocabularyMutation(context.settings.agent_identity?.identity_vocabulary,{operation,...mutationValue,observed_authors:options.criterion})}catch(error){throw new PmCliError(error.message,EXIT_CODE.USAGE)}return planned.preview.changed&&!dryRun&&(context.settings.agent_identity={...context.settings.agent_identity,identity_vocabulary:planned.vocabulary},await writeConfigSettingsIfChanged(context,!0,`config:set:agent_identity.identity_vocabulary:${operation}:v${planned.preview.version_after}`,["agent_identity"])),withWarnings({scope:context.scope,key:"agent_identity_vocabulary",identity_vocabulary:summarizeAgentIdentityVocabulary(dryRun?context.settings.agent_identity?.identity_vocabulary:planned.vocabulary),vocabulary_mutation:planned.preview,settings_path:context.target.settingsPath,changed:planned.preview.changed&&!dryRun},context.warnings)}async function setConfigValue(context,key,options){const result=await dispatchConfigSetValue(context,key,options);return context.fallbackRepairWritten===!0?{...result,changed:!0}:result}async function dispatchConfigSetValue(context,key,options){if(options.clearCriteria===!0&&!isCriteriaConfigKey(key))throw new PmCliError("--clear-criteria is only supported with config set criteria-list keys",EXIT_CODE.USAGE);return key==="item_format"?setItemFormatConfig(context,options):key==="context"?applyContextConfig(context.settings,options,context.target,context.scope,context.warnings):key==="agent_identity_vocabulary"?setAgentIdentityVocabularyConfig(context,options):key==="definition_of_done"?setDefinitionOfDoneConfig(context,key,options):isCriteriaValueConfigKey(key)?setCriteriaConfig(context,key,options):TRACKING_CONFIG_KEYS.has(key)?setTrackingConfig(context,key,options):GOVERNANCE_BOOLEAN_CONFIG_KEYS.has(key)?setGovernanceBooleanConfig(context,key,options):isGovernancePolicyConfigKey(key)?setGovernancePolicyConfig(context,key,options):isGovernanceValidationConfigKey(key)?setGovernanceValidationConfig(context,key,options):isGovernancePresetOrTypeConfigKey(key)?setGovernancePresetOrTypeConfig(context,key,options):setValidationConfig(context,key,options)}async function runConfig(scopeValue,actionValue,keyValue,options,global2,valueValue){const scope=normalizeScope(scopeValue),action=normalizeAction(actionValue),nestedSetting=action==="get"||action==="set"?resolveNestedSettingDescriptor(keyValue):void 0,key=nestedSetting?void 0:normalizeKeyForAction(action,keyValue),routedOptions=applyPositionalValue(action,keyValue,key,nestedSetting,valueValue,options),target=await resolveSettingsTarget(scope,global2),{settings,metadata,warnings:settingsReadWarnings}=await readSettingsWithMetadata(target.pmRoot),context={scope,target,settings,metadata,warnings:normalizeWarnings(settingsReadWarnings)};return nestedSetting?buildNestedSettingResult(context,action,nestedSetting,routedOptions):action==="list"?buildConfigListResult(context):action==="export"?buildConfigExportResult(context):(assertConfigKeyDefined(key),action==="get"?buildConfigGetResult(context,key):setConfigValue(context,key,routedOptions))}const _testOnlyConfigCommand={hasGovernanceValidationMirrorChange,applyPositionalValue,normalizeAction,normalizeCriteria,normalizeGovernanceCloseValidationDefault,normalizeGovernanceCreateModeDefault,normalizeGovernanceForceRequiredForStaleLockPolicy,normalizeGovernanceOwnershipEnforcement,normalizeGovernancePreset,normalizeGovernanceRequireCloseReasonPolicy,normalizeGovernanceWorkflowEnforcement,normalizeHistoryMissingStreamPolicy,normalizeItemFormat,normalizeKey,normalizeMetadataRequiredFields,normalizePolicyForConflict,normalizeScope,normalizeTelemetryTrackingPolicy,normalizeTestResultTrackingPolicy,normalizeValidateMetadataProfile,normalizeWarnings};export{_testOnlyConfigCommand,runConfig};
|
|
1
|
+
(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="3bdc558d-47db-559f-822f-bde297fbb4af")}catch{}})();import{resolveConfigPositionalValue}from"../core/config/positional-value.js";import{NESTED_SETTING_DESCRIPTORS,parseNestedSettingValue,readNestedSettingValue,resolveNestedSettingDescriptor,writeNestedSettingValue}from"../core/config/nested-settings.js";import{getActiveExtensionRegistrations}from"../core/extensions/index.js";import{normalizeParentReferencePolicy}from"../core/item/parent-reference-policy.js";import{normalizeSprintReleaseFormatPolicy}from"../core/item/sprint-release-format.js";import{resolveItemTypeRegistry,resolveTypeName}from"../core/item/type-registry.js";import{buildInvalidTypeError}from"../core/schema/item-types-file.js";import{resolveItemTypesFilePath}from"../core/schema/runtime-schema.js";import{EXIT_CODE}from"../core/shared/constants.js";import{PmCliError}from"../core/shared/errors.js";import{createUnknownSubcommandError}from"./agent/subcommand-recovery.js";import{planAgentIdentityVocabularyMutation,summarizeAgentIdentityVocabulary}from"./agent/identity-config.js";import{assertInitializedTracker}from"./environment/tracker-preflight.js";import{migrateItemFilesToFormat}from"../core/store/item-format-migration.js";import{getSettingsPath,resolveGlobalPmRoot,resolvePmRoot}from"../core/store/paths.js";import{isSettingsReadFallback,readSettings,readSettingsWithMetadata,writeSettings}from"../core/store/settings.js";import{CONTEXT_DEPTH_VALUES}from"../types/index.js";const CONFIG_SCOPE_VALUES=["project","global"],CONFIG_KEY_ALIASES={definition_of_done:["definition-of-done","definition_of_done"],item_format:["item-format","item_format"],history_missing_stream_policy:["history-missing-stream-policy","history_missing_stream_policy"],sprint_release_format_policy:["sprint-release-format-policy","sprint_release_format_policy"],parent_reference_policy:["parent-reference-policy","parent_reference_policy"],metadata_validation_profile:["metadata-validation-profile","metadata_validation_profile"],metadata_required_fields:["metadata-required-fields","metadata_required_fields"],lifecycle_stale_blocker_reason_patterns:["lifecycle-stale-blocker-reason-patterns","lifecycle_stale_blocker_reason_patterns"],lifecycle_closure_like_blocked_reason_patterns:["lifecycle-closure-like-blocked-reason-patterns","lifecycle_closure_like_blocked_reason_patterns"],lifecycle_closure_like_resolution_patterns:["lifecycle-closure-like-resolution-patterns","lifecycle_closure_like_resolution_patterns"],lifecycle_closure_like_actual_result_patterns:["lifecycle-closure-like-actual-result-patterns","lifecycle_closure_like_actual_result_patterns"],governance_preset:["governance-preset","governance_preset"],governance_ownership_enforcement:["governance-ownership-enforcement","governance_ownership_enforcement"],governance_create_mode_default:["governance-create-mode-default","governance_create_mode_default"],governance_close_validation_default:["governance-close-validation-default","governance_close_validation_default"],governance_require_close_reason:["governance-require-close-reason","governance_require_close_reason"],governance_create_default_type:["governance-create-default-type","governance_create_default_type"],governance_workflow_enforcement:["governance-workflow-enforcement","governance_workflow_enforcement"],governance_start_blocker_enforcement:["governance-start-blocker-enforcement","governance_start_blocker_enforcement"],governance_parent_reference_policy:["governance-parent-reference-policy","governance_parent_reference_policy"],governance_metadata_validation_profile:["governance-metadata-validation-profile","governance_metadata_validation_profile"],governance_force_required_for_stale_lock:["governance-force-required-for-stale-lock","governance_force_required_for_stale_lock"],test_result_tracking:["test-result-tracking","test_result_tracking"],untrusted_linked_test_execution:["untrusted-linked-test-execution","untrusted_linked_test_execution"],telemetry_tracking:["telemetry-tracking","telemetry_tracking"],agent_identity_vocabulary:["agent-identity-vocabulary","agent_identity_vocabulary"],context:["context"]},CANONICAL_CONFIG_KEYS=Object.keys(CONFIG_KEY_ALIASES).map(candidate=>CONFIG_KEY_ALIASES[candidate][0]),CONFIG_KEY_BY_ALIAS=Object.fromEntries(Object.keys(CONFIG_KEY_ALIASES).flatMap(key=>CONFIG_KEY_ALIASES[key].map(alias=>[alias,key]))),CONFIG_KEY_SUMMARIES={definition_of_done:"Definition of Done criteria list.",item_format:"Default item file format.",history_missing_stream_policy:"Missing history stream handling policy.",sprint_release_format_policy:"Sprint/release format validation policy.",parent_reference_policy:"Parent reference validation policy.",metadata_validation_profile:"Validate metadata profile policy (core|strict|custom).",metadata_required_fields:"Validate custom metadata required-fields list.",lifecycle_stale_blocker_reason_patterns:"Validate lifecycle stale-blocker reason substring patterns (criteria list).",lifecycle_closure_like_blocked_reason_patterns:"Validate lifecycle closure-like blocked_reason substring patterns (criteria list).",lifecycle_closure_like_resolution_patterns:"Validate lifecycle closure-like resolution substring patterns (criteria list).",lifecycle_closure_like_actual_result_patterns:"Validate lifecycle closure-like actual_result substring patterns (criteria list).",governance_preset:"Governance preset policy (minimal|default|strict|custom).",governance_ownership_enforcement:"Governance ownership enforcement policy (none|warn|strict).",governance_create_mode_default:"Governance default create mode (progressive|strict).",governance_close_validation_default:"Governance default close validation mode (off|warn|strict).",governance_require_close_reason:"Governance close-reason requirement policy (enabled|disabled).",governance_create_default_type:"Governance default item type for `pm create` when --type is omitted.",governance_workflow_enforcement:"Governance per-type transition enforcement mode (off|warn|strict).",governance_start_blocker_enforcement:"Governance admission for starting an item whose declared blocker is still open (off|warn|strict; strict by default).",governance_parent_reference_policy:"Governance parent reference policy (warn|strict_error).",governance_metadata_validation_profile:"Governance metadata validation profile (core|strict|custom).",governance_force_required_for_stale_lock:"Governance stale-lock force policy (enabled|disabled).",test_result_tracking:"Item-level linked test result persistence policy.",untrusted_linked_test_execution:"Permit an explicit per-run override for commands not trusted by this clone.",telemetry_tracking:"Telemetry usage reporting policy.",agent_identity_vocabulary:"Versioned exact legacy-author interpretation vocabulary (summary only).",context:"Context command settings (depth, section toggles, limits)."},LIFECYCLE_PATTERN_CONFIG_KEYS=["lifecycle_stale_blocker_reason_patterns","lifecycle_closure_like_blocked_reason_patterns","lifecycle_closure_like_resolution_patterns","lifecycle_closure_like_actual_result_patterns"],CRITERIA_CONFIG_KEYS=new Set(["metadata_required_fields",...LIFECYCLE_PATTERN_CONFIG_KEYS]),TRACKING_CONFIG_KEYS=new Set(["test_result_tracking","untrusted_linked_test_execution","telemetry_tracking"]),GOVERNANCE_BOOLEAN_CONFIG_KEYS=new Set(["governance_require_close_reason","governance_force_required_for_stale_lock"]),GOVERNANCE_POLICY_CONFIG_KEYS=new Set(["governance_ownership_enforcement","governance_create_mode_default","governance_close_validation_default"]),GOVERNANCE_VALIDATION_CONFIG_KEYS=new Set(["governance_parent_reference_policy","governance_metadata_validation_profile","governance_workflow_enforcement","governance_start_blocker_enforcement"]),GOVERNANCE_PRESET_OR_TYPE_CONFIG_KEYS=new Set(["governance_preset","governance_create_default_type"]),isCriteriaValueConfigKey=key=>CRITERIA_CONFIG_KEYS.has(key),isGovernancePolicyConfigKey=key=>GOVERNANCE_POLICY_CONFIG_KEYS.has(key),isGovernanceValidationConfigKey=key=>GOVERNANCE_VALIDATION_CONFIG_KEYS.has(key),isGovernancePresetOrTypeConfigKey=key=>GOVERNANCE_PRESET_OR_TYPE_CONFIG_KEYS.has(key);function isCriteriaConfigKey(key){return key==="definition_of_done"||isCriteriaValueConfigKey(key)}function normalizeScope(value){if(CONFIG_SCOPE_VALUES.includes(value))return value;throw new PmCliError(`Invalid config scope "${value}". Allowed: ${CONFIG_SCOPE_VALUES.join(", ")}`,EXIT_CODE.USAGE)}function normalizeAction(value){if(value==="get"||value==="set"||value==="list"||value==="export")return value;throw createUnknownSubcommandError({command_path:"config",token:value.trim()||"<empty>",allowed:["export","get","list","set"],token_kind:"action"})}function normalizeKey(value){const key=CONFIG_KEY_BY_ALIAS[value];if(key)return key;const nestedKeys=NESTED_SETTING_DESCRIPTORS.map(descriptor=>descriptor.key).join(", ");throw new PmCliError(`Invalid config key "${value}". Supported: ${CANONICAL_CONFIG_KEYS.join(", ")} (underscore variants also accepted). Nested leaf settings: ${nestedKeys}.`,EXIT_CODE.USAGE)}function normalizeCriteria(values,clearCriteria){const normalized=[...new Set((values??[]).map(value=>value.trim()).filter(value=>value.length>0))].sort((left,right)=>left.localeCompare(right));if(clearCriteria){if(normalized.length>0)throw new PmCliError("Config set definition-of-done cannot combine --clear-criteria with --criterion values",EXIT_CODE.USAGE);return[]}if(normalized.length===0)throw new PmCliError("Config set definition-of-done requires at least one non-empty --criterion value (or --clear-criteria to clear)",EXIT_CODE.USAGE);return normalized}function normalizeItemFormat(value){const normalized=value?.trim().toLowerCase();if(normalized==="toon")return"toon";throw normalized==="json_markdown"?new PmCliError("Config set item-format no longer accepts json_markdown. Markdown item files are legacy read/migration input only.",EXIT_CODE.USAGE):new PmCliError("Config set item-format requires --format toon",EXIT_CODE.USAGE)}function normalizeHistoryMissingStreamPolicy(value){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="auto_create"||normalized==="strict_error")return normalized;throw new PmCliError("Config set history-missing-stream-policy requires --policy with one of: auto_create, strict_error",EXIT_CODE.USAGE)}function normalizeTestResultTrackingPolicy(value){return normalizeEnabledDisabledPolicy(value,"test-result-tracking")}function normalizeEnabledDisabledPolicy(value,key){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="enabled"||normalized==="disabled")return normalized;throw new PmCliError(`Config set ${key} requires --policy with one of: enabled, disabled`,EXIT_CODE.USAGE)}function normalizeTelemetryTrackingPolicy(value){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="enabled"||normalized==="disabled")return normalized;throw new PmCliError("Config set telemetry-tracking requires --policy with one of: enabled, disabled",EXIT_CODE.USAGE)}function normalizeValidateMetadataProfile(value){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="core"||normalized==="strict"||normalized==="custom")return normalized;throw new PmCliError("Config set metadata-validation-profile requires --policy with one of: core, strict, custom",EXIT_CODE.USAGE)}function normalizeGovernancePreset(value){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="minimal"||normalized==="default"||normalized==="strict"||normalized==="custom")return normalized;throw new PmCliError("Config set governance-preset requires --policy with one of: minimal, default, strict, custom",EXIT_CODE.USAGE)}function normalizeGovernanceOwnershipEnforcement(value){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="none"||normalized==="warn"||normalized==="strict")return normalized;throw new PmCliError("Config set governance-ownership-enforcement requires --policy with one of: none, warn, strict",EXIT_CODE.USAGE)}function normalizeGovernanceCreateModeDefault(value){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="progressive"||normalized==="strict")return normalized;throw new PmCliError("Config set governance-create-mode-default requires --policy with one of: progressive, strict",EXIT_CODE.USAGE)}function normalizeGovernanceCloseValidationDefault(value){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="off"||normalized==="warn"||normalized==="strict")return normalized;if(normalized==="none"||normalized==="disabled")return"off";throw new PmCliError("Config set governance-close-validation-default requires --policy with one of: off, warn, strict",EXIT_CODE.USAGE)}function normalizeGovernanceWorkflowEnforcement(value,key="governance-workflow-enforcement"){const normalized=typeof value=="string"?value.trim().toLowerCase().replaceAll("-","_"):void 0;if(normalized==="off"||normalized==="warn"||normalized==="strict")return normalized;if(normalized==="none"||normalized==="disabled")return"off";throw new PmCliError(`Config set ${key} requires one of: off, warn, strict`,EXIT_CODE.USAGE)}function normalizeGovernanceForceRequiredForStaleLockPolicy(value){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="enabled"||normalized==="disabled")return normalized;throw new PmCliError("Config set governance-force-required-for-stale-lock requires --policy with one of: enabled, disabled",EXIT_CODE.USAGE)}function normalizeGovernanceRequireCloseReasonPolicy(value){const normalized=value?.trim().toLowerCase().replaceAll("-","_");if(normalized==="enabled"||normalized==="disabled")return normalized;throw new PmCliError("Config set governance-require-close-reason requires --policy with one of: enabled, disabled",EXIT_CODE.USAGE)}const ENABLED_DISABLED_CONFLICT_POLICY_KEYS={test_result_tracking:"test-result-tracking",untrusted_linked_test_execution:"untrusted-linked-test-execution"},ENFORCEMENT_MODE_CONFLICT_POLICY_KEYS={governance_workflow_enforcement:"governance-workflow-enforcement",governance_start_blocker_enforcement:"governance-start-blocker-enforcement"};function normalizePolicyForConflict(key,value){const enabledDisabledKey=ENABLED_DISABLED_CONFLICT_POLICY_KEYS[key];if(enabledDisabledKey)return normalizeEnabledDisabledPolicy(value,enabledDisabledKey);const enforcementKey=ENFORCEMENT_MODE_CONFLICT_POLICY_KEYS[key];if(enforcementKey)return normalizeGovernanceWorkflowEnforcement(value,enforcementKey);switch(key){case"history_missing_stream_policy":return normalizeHistoryMissingStreamPolicy(value);case"sprint_release_format_policy":return normalizeSprintReleaseFormatPolicy(value);case"parent_reference_policy":case"governance_parent_reference_policy":return normalizeParentReferencePolicy(value);case"metadata_validation_profile":case"governance_metadata_validation_profile":return normalizeValidateMetadataProfile(value);case"governance_preset":return normalizeGovernancePreset(value);case"governance_ownership_enforcement":return normalizeGovernanceOwnershipEnforcement(value);case"governance_create_mode_default":return normalizeGovernanceCreateModeDefault(value);case"governance_close_validation_default":return normalizeGovernanceCloseValidationDefault(value);case"governance_require_close_reason":return normalizeGovernanceRequireCloseReasonPolicy(value);case"governance_force_required_for_stale_lock":return normalizeGovernanceForceRequiredForStaleLockPolicy(value);case"telemetry_tracking":return normalizeTelemetryTrackingPolicy(value);default:return value.trim().toLowerCase().replaceAll("-","_")}}const METADATA_REQUIRED_FIELD_ALIAS_MAP={author:"author",acceptance_criteria:"acceptance_criteria","acceptance-criteria":"acceptance_criteria",estimated_minutes:"estimated_minutes","estimated-minutes":"estimated_minutes",estimate:"estimated_minutes",close_reason:"close_reason","close-reason":"close_reason",reviewer:"reviewer",risk:"risk",confidence:"confidence",sprint:"sprint",release:"release"},METADATA_REQUIRED_FIELD_OPTIONS=["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"];function normalizeMetadataRequiredFields(values,clearCriteria){const normalized=[...new Set((values??[]).map(value=>value.trim()).filter(value=>value.length>0))];if(clearCriteria){if(normalized.length>0)throw new PmCliError("Config set metadata-required-fields cannot combine --clear-criteria with --criterion values",EXIT_CODE.USAGE);return[]}if(normalized.length===0)throw new PmCliError("Config set metadata-required-fields requires at least one --criterion value (or --clear-criteria to clear)",EXIT_CODE.USAGE);const lowered=normalized.map(value=>value.toLowerCase().replaceAll("-","_")),unsupported=lowered.filter(value=>METADATA_REQUIRED_FIELD_ALIAS_MAP[value]===void 0);if(unsupported.length>0)throw new PmCliError(`Config set metadata-required-fields received unsupported values: ${unsupported.join(", ")}. Supported values: ${METADATA_REQUIRED_FIELD_OPTIONS.join(", ")}`,EXIT_CODE.USAGE);return[...new Set(lowered.map(value=>METADATA_REQUIRED_FIELD_ALIAS_MAP[value]))].sort((left,right)=>left.localeCompare(right))}function normalizeLifecyclePatternCriteria(key,values,clearCriteria){const normalized=[...new Set((values??[]).map(value=>value.trim().toLowerCase()).filter(value=>value.length>0))].sort((left,right)=>left.localeCompare(right));if(clearCriteria){if(normalized.length>0)throw new PmCliError(`Config set ${CONFIG_KEY_ALIASES[key][0]} cannot combine --clear-criteria with --criterion values`,EXIT_CODE.USAGE);return[]}if(normalized.length===0)throw new PmCliError(`Config set ${CONFIG_KEY_ALIASES[key][0]} requires at least one --criterion value (or --clear-criteria to clear)`,EXIT_CODE.USAGE);return normalized}function normalizeWarnings(values){return[...new Set(values)].sort((left,right)=>left.localeCompare(right))}function normalizeKeyForAction(action,value){if(action==="list"||action==="export"){if(typeof value=="string"&&value.trim().length>0)throw new PmCliError(`Config action "${action}" does not accept <key>`,EXIT_CODE.USAGE);return}if(typeof value!="string"||value.trim().length===0)throw new PmCliError(`Config action "${action}" requires <key>`,EXIT_CODE.USAGE);return normalizeKey(value)}function assertConfigKeyDefined(key){if(!key)throw new PmCliError("Config action requires <key>",EXIT_CODE.USAGE)}const CONFIG_VALUE_READERS={definition_of_done:settings=>[...settings.workflow.definition_of_done],item_format:settings=>settings.item_format,history_missing_stream_policy:settings=>settings.history.missing_stream,sprint_release_format_policy:settings=>settings.validation.sprint_release_format,parent_reference_policy:settings=>settings.validation.parent_reference,metadata_validation_profile:settings=>settings.validation.metadata_profile,metadata_required_fields:settings=>[...settings.validation.metadata_required_fields],lifecycle_stale_blocker_reason_patterns:settings=>[...settings.validation.lifecycle_stale_blocker_reason_patterns],lifecycle_closure_like_blocked_reason_patterns:settings=>[...settings.validation.lifecycle_closure_like_blocked_reason_patterns],lifecycle_closure_like_resolution_patterns:settings=>[...settings.validation.lifecycle_closure_like_resolution_patterns],lifecycle_closure_like_actual_result_patterns:settings=>[...settings.validation.lifecycle_closure_like_actual_result_patterns],governance_preset:settings=>settings.governance.preset,governance_ownership_enforcement:settings=>settings.governance.ownership_enforcement,governance_create_mode_default:settings=>settings.governance.create_mode_default,governance_close_validation_default:settings=>settings.governance.close_validation_default,governance_require_close_reason:settings=>settings.governance.require_close_reason?"enabled":"disabled",governance_create_default_type:settings=>settings.governance.create_default_type??"",governance_workflow_enforcement:settings=>settings.governance.workflow_enforcement??"off",governance_start_blocker_enforcement:settings=>settings.governance.start_blocker_enforcement??"strict",governance_parent_reference_policy:settings=>settings.governance.parent_reference,governance_metadata_validation_profile:settings=>settings.governance.metadata_profile,governance_force_required_for_stale_lock:settings=>settings.governance.force_required_for_stale_lock?"enabled":"disabled",test_result_tracking:settings=>settings.testing.record_results_to_items?"enabled":"disabled",untrusted_linked_test_execution:settings=>settings.testing.allow_untrusted_linked_tests?"enabled":"disabled",telemetry_tracking:settings=>settings.telemetry.enabled?"enabled":"disabled",agent_identity_vocabulary:settings=>summarizeAgentIdentityVocabulary(settings.agent_identity?.identity_vocabulary),context:settings=>({default_depth:settings.context.default_depth,activity_limit:settings.context.activity_limit,stale_threshold_days:settings.context.stale_threshold_days,next_ranking_policy:settings.context.next_ranking_policy,sections:{...settings.context.sections}})};function readConfigValue(settings,key){return CONFIG_VALUE_READERS[key](settings)}function withWarnings(result,warnings){return warnings.length===0?result:{...result,warnings}}async function resolveSettingsTarget(scope,global2){const cwd=process.cwd(),pmRoot=scope==="project"?resolvePmRoot(cwd,global2.path):resolveGlobalPmRoot(cwd),settingsPath=getSettingsPath(pmRoot);return scope==="project"&&await assertInitializedTracker(pmRoot),{pmRoot,settingsPath}}function parseSectionToggle(raw){if(raw===void 0)return;const normalized=raw.trim().toLowerCase();if(normalized==="true"||normalized==="enabled"||normalized==="on"||normalized==="1")return!0;if(normalized==="false"||normalized==="disabled"||normalized==="off"||normalized==="0")return!1;throw new PmCliError(`Context section toggle must be true|false|enabled|disabled, got "${raw}"`,EXIT_CODE.USAGE)}function parsePositiveContextInteger(rawValue,option){const raw=rawValue.trim(),parsed=Number(raw);if(/^\d+$/u.test(raw)&&Number.isSafeInteger(parsed)&&parsed>0)return parsed;throw new PmCliError(`Context ${option} must be a positive integer`,EXIT_CODE.USAGE)}async function applyContextConfig(settings,options,target,scope,warnings){let changed=!1;const ctx=settings.context,assignedPaths=[];if(options.defaultDepth!==void 0){const normalized=options.defaultDepth.trim().toLowerCase();if(!CONTEXT_DEPTH_VALUES.includes(normalized))throw new PmCliError(`Context --default-depth must be one of ${CONTEXT_DEPTH_VALUES.join("|")}`,EXIT_CODE.USAGE);assignedPaths.push("context.default_depth"),ctx.default_depth!==normalized&&(ctx.default_depth=normalized,changed=!0)}if(options.activityLimit!==void 0){const parsed=parsePositiveContextInteger(options.activityLimit,"--activity-limit");assignedPaths.push("context.activity_limit"),ctx.activity_limit!==parsed&&(ctx.activity_limit=parsed,changed=!0)}if(options.staleThresholdDays!==void 0){const parsed=parsePositiveContextInteger(options.staleThresholdDays,"--stale-threshold-days");assignedPaths.push("context.stale_threshold_days"),ctx.stale_threshold_days!==parsed&&(ctx.stale_threshold_days=parsed,changed=!0)}const sectionToggles=[["hierarchy",options.sectionHierarchy],["activity",options.sectionActivity],["progress",options.sectionProgress],["blockers",options.sectionBlockers],["files",options.sectionFiles],["workload",options.sectionWorkload],["staleness",options.sectionStaleness],["tests",options.sectionTests]];for(const[sectionName,rawValue]of sectionToggles){const toggle=parseSectionToggle(rawValue);if(toggle!==void 0){const key=sectionName;assignedPaths.push(`context.sections.${sectionName}`),ctx.sections[key]!==toggle&&(ctx.sections[key]=toggle,changed=!0)}}return(changed||isSettingsReadFallback(settings))&&(await writeSettings(target.pmRoot,settings,"config:set:context",{assignedPaths}),changed=!0),withWarnings({scope,key:"context",context_settings:{default_depth:ctx.default_depth,activity_limit:ctx.activity_limit,stale_threshold_days:ctx.stale_threshold_days,next_ranking_policy:ctx.next_ranking_policy,sections:{...ctx.sections}},settings_path:target.settingsPath,changed},warnings)}function applyNestedSettingPositionalValue(keyValue,valueValue,options){if(options.value!==void 0&&options.value!==valueValue)throw new PmCliError(`Config set ${keyValue} received both positional value "${valueValue}" and --value "${options.value}". Pass only one.`,EXIT_CODE.USAGE);return{...options,value:valueValue}}function applyPositionalValue(action,keyValue,normalizedKey,nestedSetting,valueValue,options){if(valueValue===void 0)return options;if(action!=="set")throw new PmCliError(`Config action "${action}" does not accept a positional value. Only "set" takes <value>.`,EXIT_CODE.USAGE);if(typeof keyValue!="string"||keyValue.trim().length===0)throw new PmCliError('Config action "set" requires <key> before a positional <value>.',EXIT_CODE.USAGE);if(nestedSetting)return applyNestedSettingPositionalValue(keyValue,valueValue,options);assertConfigKeyDefined(normalizedKey);const routed=resolveConfigPositionalValue(normalizedKey,valueValue);if(!routed.routable)throw new PmCliError(routed.reason,EXIT_CODE.USAGE);if(routed.flag==="criterion"){if(options.criterion!==void 0&&options.criterion.length>0)throw new PmCliError(`Config set ${keyValue} received both positional value "${valueValue}" and --criterion. Pass criteria via --criterion only when supplying more than one value.`,EXIT_CODE.USAGE);return{...options,criterion:routed.values}}if(routed.flag==="format")return{...options,format:routed.value};if(options.policy!==void 0&&normalizePolicyForConflict(normalizedKey,options.policy)!==normalizePolicyForConflict(normalizedKey,routed.value))throw new PmCliError(`Config set ${keyValue} received both positional value "${valueValue}" and --policy "${options.policy}". Pass only one.`,EXIT_CODE.USAGE);return{...options,policy:routed.value}}function refuseProjectTelemetryTracking(action,suffix){const remedy=`pm config global ${action} telemetry-tracking${suffix}`;throw new PmCliError(`Config ${action} telemetry-tracking applies to this CLI install, not one project. Run: ${remedy}`,EXIT_CODE.USAGE,{code:"invalid_argument_value",reason:"telemetry_consent_is_global",field:"scope",changed:!1,required:`Run: ${remedy}`,examples:[remedy]})}function configKeysForScope(scope){return Object.keys(CONFIG_KEY_ALIASES).filter(key=>scope==="global"||key!=="telemetry_tracking")}function buildConfigListResult(context){const keys=configKeysForScope(context.scope).map(candidate=>({key:candidate,aliases:CONFIG_KEY_ALIASES[candidate],value_kind:candidate==="context"||candidate==="agent_identity_vocabulary"?"object":isCriteriaConfigKey(candidate)?"string_array":"enum",set_flags:candidate==="context"?["--default-depth","--activity-limit","--stale-threshold-days","--section-<name>"]:candidate==="agent_identity_vocabulary"?["--policy","--value","--criterion"]:isCriteriaConfigKey(candidate)?["--criterion","--clear-criteria"]:candidate==="item_format"?["--format"]:["--policy"],summary:CONFIG_KEY_SUMMARIES[candidate],value:readConfigValue(context.settings,candidate)})),nestedSettings=NESTED_SETTING_DESCRIPTORS.map(descriptor=>({key:descriptor.key,canonical_key:descriptor.key.replaceAll("_","-"),path:descriptor.path,kind:descriptor.kind,value:readNestedSettingValue(context.settings,descriptor),summary:descriptor.summary,...descriptor.choices?{choices:[...descriptor.choices]}:{},...descriptor.min===void 0?{}:{min:descriptor.min},...descriptor.max===void 0?{}:{max:descriptor.max}}));return withWarnings({scope:context.scope,keys,nested_settings:nestedSettings,count:keys.length,settings_path:context.target.settingsPath,changed:!1},context.warnings)}function buildConfigExportResult(context){const values=Object.fromEntries(configKeysForScope(context.scope).map(key=>[key,readConfigValue(context.settings,key)]));return withWarnings({scope:context.scope,values,settings_path:context.target.settingsPath,changed:!1},context.warnings)}function buildConfigGetResult(context,key){const value=readConfigValue(context.settings,key),base={scope:context.scope,key,settings_path:context.target.settingsPath,changed:!1};return key==="item_format"?withWarnings({...base,format:context.settings.item_format,has_explicit_item_format:context.metadata.has_explicit_item_format},context.warnings):key==="context"?withWarnings({...base,context_settings:value},context.warnings):key==="agent_identity_vocabulary"?withWarnings({...base,identity_vocabulary:value},context.warnings):Array.isArray(value)?withWarnings({...base,criteria:value},context.warnings):withWarnings({...base,policy:value},context.warnings)}async function buildNestedSettingResult(context,action,nestedSetting,options){if(action==="get"){const currentValue=readNestedSettingValue(context.settings,nestedSetting);return withWarnings({scope:context.scope,key:nestedSetting.key,nested_setting:{key:nestedSetting.key,path:nestedSetting.path,kind:nestedSetting.kind,value:currentValue},settings_path:context.target.settingsPath,changed:!1},context.warnings)}const rawValue=options.value;if(typeof rawValue!="string")throw new PmCliError(`Config set ${nestedSetting.key} requires a value. Pass it positionally (\`pm config ${context.scope} set ${nestedSetting.key} <value>\`) or via --value.`,EXIT_CODE.USAGE);const parsed=parseNestedSettingValue(nestedSetting,rawValue);if(!parsed.ok)throw new PmCliError(parsed.error.message,EXIT_CODE.USAGE);const changed=writeNestedSettingValue(context.settings,nestedSetting,parsed.parsed.value)||isSettingsReadFallback(context.settings);return changed&&await writeSettings(context.target.pmRoot,context.settings,`config:set:${nestedSetting.path}`,{assignedPaths:[nestedSetting.path]}),withWarnings({scope:context.scope,key:nestedSetting.key,nested_setting:{key:nestedSetting.key,path:nestedSetting.path,kind:nestedSetting.kind,value:parsed.parsed.value},settings_path:context.target.settingsPath,changed},context.warnings)}async function writeConfigSettingsIfChanged(context,changed,reason,assignedPaths=[]){(changed||isSettingsReadFallback(context.settings))&&(await writeSettings(context.target.pmRoot,context.settings,reason,{assignedPaths}),isSettingsReadFallback(context.settings)&&(context.fallbackRepairWritten=!0))}function hasGovernanceValidationMirrorChange(governanceValue,validationValue,nextPolicy){return governanceValue!==nextPolicy||validationValue!==nextPolicy}function buildPolicyResult(context,key,policy,changed){return withWarnings({scope:context.scope,key,policy,settings_path:context.target.settingsPath,changed},context.warnings)}function buildCriteriaResult(context,key,criteria,changed){return withWarnings({scope:context.scope,key,criteria,settings_path:context.target.settingsPath,changed},context.warnings)}async function migrateItemsForFormatChange(pmRoot,settings,nextFormat){const typeRegistry=resolveItemTypeRegistry(settings,getActiveExtensionRegistrations()),migrated=await migrateItemFilesToFormat(pmRoot,nextFormat,"config:set:item_format:migrate",typeRegistry.type_to_folder,settings.schema);return{target_format:migrated.target_format,scanned:migrated.scanned,migrated:migrated.migrated,removed:migrated.removed,warnings:migrated.warnings}}async function setItemFormatConfig(context,options){const nextFormat=normalizeItemFormat(options.format),changed=context.settings.item_format!==nextFormat||!context.metadata.has_explicit_item_format;let migration;if(changed){context.settings.item_format=nextFormat;const writeOptions={assignedPaths:["item_format"]};isSettingsReadFallback(context.settings)?(await writeSettings(context.target.pmRoot,context.settings,"config:set:item_format",writeOptions),context.fallbackRepairWritten=!0,migration=await migrateItemsForFormatChange(context.target.pmRoot,await readSettings(context.target.pmRoot),nextFormat)):(migration=await migrateItemsForFormatChange(context.target.pmRoot,context.settings,nextFormat),await writeSettings(context.target.pmRoot,context.settings,"config:set:item_format",writeOptions))}return withWarnings({scope:context.scope,key:"item_format",format:context.settings.item_format,has_explicit_item_format:!0,migration,settings_path:context.target.settingsPath,changed},context.warnings)}async function setValidationConfig(context,key,options){if(key==="history_missing_stream_policy"){const nextPolicy2=normalizeHistoryMissingStreamPolicy(options.policy),changed2=context.settings.history.missing_stream!==nextPolicy2;return context.settings.history.missing_stream=nextPolicy2,await writeConfigSettingsIfChanged(context,changed2,"config:set:history_missing_stream_policy",["history.missing_stream"]),buildPolicyResult(context,key,context.settings.history.missing_stream,changed2)}if(key==="sprint_release_format_policy"){const nextPolicy2=normalizeSprintReleaseFormatPolicy(options.policy),changed2=context.settings.validation.sprint_release_format!==nextPolicy2;return context.settings.validation.sprint_release_format=nextPolicy2,await writeConfigSettingsIfChanged(context,changed2,"config:set:sprint_release_format_policy",["validation.sprint_release_format"]),buildPolicyResult(context,key,context.settings.validation.sprint_release_format,changed2)}if(key==="parent_reference_policy"){const nextPolicy2=normalizeParentReferencePolicy(options.policy),changed2=context.settings.validation.parent_reference!==nextPolicy2||context.settings.governance.preset!=="custom"||context.settings.governance.parent_reference!==nextPolicy2;return context.settings.validation.parent_reference=nextPolicy2,context.settings.governance.preset="custom",context.settings.governance.parent_reference=nextPolicy2,await writeConfigSettingsIfChanged(context,changed2,"config:set:parent_reference_policy",["validation.parent_reference","governance.preset","governance.parent_reference"]),buildPolicyResult(context,key,context.settings.validation.parent_reference,changed2)}const nextPolicy=normalizeValidateMetadataProfile(options.policy),changed=context.settings.validation.metadata_profile!==nextPolicy||context.settings.governance.preset!=="custom"||context.settings.governance.metadata_profile!==nextPolicy;return context.settings.validation.metadata_profile=nextPolicy,context.settings.governance.preset="custom",context.settings.governance.metadata_profile=nextPolicy,await writeConfigSettingsIfChanged(context,changed,"config:set:metadata_validation_profile",["validation.metadata_profile","governance.preset","governance.metadata_profile"]),buildPolicyResult(context,key,context.settings.validation.metadata_profile,changed)}async function setCriteriaConfig(context,key,options){if(key==="metadata_required_fields"){const nextCriteria2=normalizeMetadataRequiredFields(options.criterion,options.clearCriteria),changed2=nextCriteria2.length!==context.settings.validation.metadata_required_fields.length||nextCriteria2.some((value,index)=>value!==context.settings.validation.metadata_required_fields[index]);return context.settings.validation.metadata_required_fields=nextCriteria2,await writeConfigSettingsIfChanged(context,changed2,"config:set:metadata_required_fields",["validation.metadata_required_fields"]),buildCriteriaResult(context,key,[...context.settings.validation.metadata_required_fields],changed2)}const currentCriteria={lifecycle_stale_blocker_reason_patterns:context.settings.validation.lifecycle_stale_blocker_reason_patterns,lifecycle_closure_like_blocked_reason_patterns:context.settings.validation.lifecycle_closure_like_blocked_reason_patterns,lifecycle_closure_like_resolution_patterns:context.settings.validation.lifecycle_closure_like_resolution_patterns,lifecycle_closure_like_actual_result_patterns:context.settings.validation.lifecycle_closure_like_actual_result_patterns}[key],nextCriteria=normalizeLifecyclePatternCriteria(key,options.criterion,options.clearCriteria),changed=nextCriteria.length!==currentCriteria.length||nextCriteria.some((value,index)=>value!==currentCriteria[index]);return currentCriteria.splice(0,currentCriteria.length,...nextCriteria),await writeConfigSettingsIfChanged(context,changed,`config:set:${key}`,[`validation.${key}`]),buildCriteriaResult(context,key,[...currentCriteria],changed)}async function setGovernancePresetOrTypeConfig(context,key,options){if(key==="governance_preset"){const nextPolicy=normalizeGovernancePreset(options.policy),changed2=context.settings.governance.preset!==nextPolicy;return context.settings.governance.preset=nextPolicy,await writeConfigSettingsIfChanged(context,changed2,"config:set:governance_preset",["governance.preset"]),buildPolicyResult(context,key,context.settings.governance.preset,changed2)}const policyProvided=typeof options.policy=="string",rawType=policyProvided?options.policy.trim():"";if(policyProvided&&rawType.length===0){const changed2=context.settings.governance.create_default_type!==void 0;return delete context.settings.governance.create_default_type,await writeConfigSettingsIfChanged(context,changed2,"config:set:governance_create_default_type",["governance.create_default_type"]),buildPolicyResult(context,key,context.settings.governance.create_default_type??"",changed2)}if(rawType.length===0)throw new PmCliError('Config set governance-create-default-type requires an item type value (or an empty value "" to clear it)',EXIT_CODE.USAGE);const typeRegistry=resolveItemTypeRegistry(context.settings,getActiveExtensionRegistrations()),resolvedType=resolveTypeName(rawType,typeRegistry);if(!resolvedType)throw new PmCliError(buildInvalidTypeError(rawType,typeRegistry.types,resolveItemTypesFilePath(context.target.pmRoot,context.settings.schema)),EXIT_CODE.USAGE);const changed=context.settings.governance.create_default_type!==resolvedType;return context.settings.governance.create_default_type=resolvedType,await writeConfigSettingsIfChanged(context,changed,"config:set:governance_create_default_type",["governance.create_default_type"]),buildPolicyResult(context,key,context.settings.governance.create_default_type,changed)}async function setGovernancePolicyConfig(context,key,options){if(key==="governance_ownership_enforcement"){const nextPolicy2=normalizeGovernanceOwnershipEnforcement(options.policy),changed2=context.settings.governance.preset!=="custom"||context.settings.governance.ownership_enforcement!==nextPolicy2;return context.settings.governance.preset="custom",context.settings.governance.ownership_enforcement=nextPolicy2,await writeConfigSettingsIfChanged(context,changed2,"config:set:governance_ownership_enforcement",["governance.preset","governance.ownership_enforcement"]),buildPolicyResult(context,key,context.settings.governance.ownership_enforcement,changed2)}if(key==="governance_create_mode_default"){const nextPolicy2=normalizeGovernanceCreateModeDefault(options.policy),changed2=context.settings.governance.preset!=="custom"||context.settings.governance.create_mode_default!==nextPolicy2;return context.settings.governance.preset="custom",context.settings.governance.create_mode_default=nextPolicy2,await writeConfigSettingsIfChanged(context,changed2,"config:set:governance_create_mode_default",["governance.preset","governance.create_mode_default"]),buildPolicyResult(context,key,context.settings.governance.create_mode_default,changed2)}const nextPolicy=normalizeGovernanceCloseValidationDefault(options.policy),changed=context.settings.governance.preset!=="custom"||context.settings.governance.close_validation_default!==nextPolicy;return context.settings.governance.preset="custom",context.settings.governance.close_validation_default=nextPolicy,await writeConfigSettingsIfChanged(context,changed,"config:set:governance_close_validation_default",["governance.preset","governance.close_validation_default"]),buildPolicyResult(context,key,context.settings.governance.close_validation_default,changed)}async function setGovernanceValidationConfig(context,key,options){if(key==="governance_parent_reference_policy"){const nextPolicy2=normalizeParentReferencePolicy(options.policy),changed2=context.settings.governance.preset!=="custom"||hasGovernanceValidationMirrorChange(context.settings.governance.parent_reference,context.settings.validation.parent_reference,nextPolicy2);return context.settings.governance.preset="custom",context.settings.governance.parent_reference=nextPolicy2,context.settings.validation.parent_reference=nextPolicy2,await writeConfigSettingsIfChanged(context,changed2,"config:set:governance_parent_reference_policy",["governance.preset","governance.parent_reference","validation.parent_reference"]),buildPolicyResult(context,key,context.settings.governance.parent_reference,changed2)}if(key==="governance_metadata_validation_profile"){const nextPolicy2=normalizeValidateMetadataProfile(options.policy),changed2=context.settings.governance.preset!=="custom"||hasGovernanceValidationMirrorChange(context.settings.governance.metadata_profile,context.settings.validation.metadata_profile,nextPolicy2);return context.settings.governance.preset="custom",context.settings.governance.metadata_profile=nextPolicy2,context.settings.validation.metadata_profile=nextPolicy2,await writeConfigSettingsIfChanged(context,changed2,"config:set:governance_metadata_validation_profile",["governance.preset","governance.metadata_profile","validation.metadata_profile"]),buildPolicyResult(context,key,context.settings.governance.metadata_profile,changed2)}if(key==="governance_start_blocker_enforcement"){const nextStartPolicy=normalizeGovernanceWorkflowEnforcement(options.policy,"governance-start-blocker-enforcement"),changed2=(context.settings.governance.start_blocker_enforcement??"strict")!==nextStartPolicy;return context.settings.governance.start_blocker_enforcement=nextStartPolicy,await writeConfigSettingsIfChanged(context,changed2,"config:set:governance_start_blocker_enforcement",["governance.start_blocker_enforcement"]),buildPolicyResult(context,key,nextStartPolicy,changed2)}const nextPolicy=normalizeGovernanceWorkflowEnforcement(options.policy),changed=(context.settings.governance.workflow_enforcement??"off")!==nextPolicy;return context.settings.governance.workflow_enforcement=nextPolicy,await writeConfigSettingsIfChanged(context,changed,"config:set:governance_workflow_enforcement",["governance.workflow_enforcement"]),buildPolicyResult(context,key,context.settings.governance.workflow_enforcement,changed)}async function setGovernanceBooleanConfig(context,key,options){if(key==="governance_require_close_reason"){const nextEnabled2=normalizeGovernanceRequireCloseReasonPolicy(options.policy)==="enabled",changed2=context.settings.governance.require_close_reason!==nextEnabled2;return context.settings.governance.require_close_reason=nextEnabled2,await writeConfigSettingsIfChanged(context,changed2,"config:set:governance_require_close_reason",["governance.require_close_reason"]),buildPolicyResult(context,key,context.settings.governance.require_close_reason?"enabled":"disabled",changed2)}const nextEnabled=normalizeGovernanceForceRequiredForStaleLockPolicy(options.policy)==="enabled",changed=context.settings.governance.preset!=="custom"||context.settings.governance.force_required_for_stale_lock!==nextEnabled;return context.settings.governance.preset="custom",context.settings.governance.force_required_for_stale_lock=nextEnabled,await writeConfigSettingsIfChanged(context,changed,"config:set:governance_force_required_for_stale_lock",["governance.preset","governance.force_required_for_stale_lock"]),buildPolicyResult(context,key,context.settings.governance.force_required_for_stale_lock?"enabled":"disabled",changed)}async function setTrackingConfig(context,key,options){if(key==="test_result_tracking"){const nextEnabled2=normalizeTestResultTrackingPolicy(options.policy)==="enabled",changed2=context.settings.testing.record_results_to_items!==nextEnabled2;return context.settings.testing.record_results_to_items=nextEnabled2,await writeConfigSettingsIfChanged(context,changed2,"config:set:test_result_tracking",["testing.record_results_to_items"]),buildPolicyResult(context,key,context.settings.testing.record_results_to_items?"enabled":"disabled",changed2)}if(key==="untrusted_linked_test_execution"){const nextEnabled2=normalizeEnabledDisabledPolicy(options.policy,"untrusted-linked-test-execution")==="enabled",changed2=context.settings.testing.allow_untrusted_linked_tests!==nextEnabled2;return context.settings.testing.allow_untrusted_linked_tests=nextEnabled2,await writeConfigSettingsIfChanged(context,changed2,"config:set:untrusted_linked_test_execution",["testing.allow_untrusted_linked_tests"]),buildPolicyResult(context,key,context.settings.testing.allow_untrusted_linked_tests?"enabled":"disabled",changed2)}const nextPolicy=normalizeTelemetryTrackingPolicy(options.policy);context.scope==="project"&&refuseProjectTelemetryTracking("set",` --policy ${nextPolicy}`);const nextEnabled=nextPolicy==="enabled",changed=context.settings.telemetry.enabled!==nextEnabled||!context.settings.telemetry.first_run_prompt_completed;return context.settings.telemetry.enabled=nextEnabled,context.settings.telemetry.first_run_prompt_completed=!0,await writeConfigSettingsIfChanged(context,changed,"config:set:telemetry_tracking",["telemetry.enabled","telemetry.first_run_prompt_completed"]),buildPolicyResult(context,key,context.settings.telemetry.enabled?"enabled":"disabled",changed)}async function setDefinitionOfDoneConfig(context,key,options){const nextCriteria=normalizeCriteria(options.criterion,options.clearCriteria),changed=nextCriteria.length!==context.settings.workflow.definition_of_done.length||nextCriteria.some((value,index)=>value!==context.settings.workflow.definition_of_done[index]);return context.settings.workflow.definition_of_done=nextCriteria,await writeConfigSettingsIfChanged(context,changed,"config:set:definition_of_done",["workflow.definition_of_done"]),buildCriteriaResult(context,key,[...context.settings.workflow.definition_of_done],changed)}function parseAgentIdentityVocabularyOperation(raw){const policy=raw?.trim().toLowerCase().replaceAll("_","-"),dryRun=policy?.startsWith("preview-")===!0,operation=dryRun?policy.slice(8):policy;if(operation==="add"||operation==="remove"||operation==="clear")return{operation,dryRun};throw new PmCliError("Config set agent-identity-vocabulary requires --policy add|remove|clear|preview-add|preview-remove|preview-clear",EXIT_CODE.USAGE)}function parseAgentIdentityVocabularyMutationValue(operation,value){if(operation==="add"){const separator=value?.lastIndexOf("=")??-1;if(separator<=0||separator===value.length-1)throw new PmCliError('Config set agent-identity-vocabulary --policy add requires --value "<legacy-author>=<canonical-harness>"',EXIT_CODE.USAGE);return{legacy_author:value.slice(0,separator),canonical_harness:value.slice(separator+1)}}if(operation==="remove"){if(value===void 0)throw new PmCliError("Config set agent-identity-vocabulary --policy remove requires --value <legacy-author>",EXIT_CODE.USAGE);return{legacy_author:value}}if(value!==void 0)throw new PmCliError("Config set agent-identity-vocabulary --policy clear does not accept --value",EXIT_CODE.USAGE);return{}}async function setAgentIdentityVocabularyConfig(context,options){const{operation,dryRun}=parseAgentIdentityVocabularyOperation(options.policy),mutationValue=parseAgentIdentityVocabularyMutationValue(operation,options.value);let planned;try{planned=planAgentIdentityVocabularyMutation(context.settings.agent_identity?.identity_vocabulary,{operation,...mutationValue,observed_authors:options.criterion})}catch(error){throw new PmCliError(error.message,EXIT_CODE.USAGE)}return planned.preview.changed&&!dryRun&&(context.settings.agent_identity={...context.settings.agent_identity,identity_vocabulary:planned.vocabulary},await writeConfigSettingsIfChanged(context,!0,`config:set:agent_identity.identity_vocabulary:${operation}:v${planned.preview.version_after}`,["agent_identity"])),withWarnings({scope:context.scope,key:"agent_identity_vocabulary",identity_vocabulary:summarizeAgentIdentityVocabulary(dryRun?context.settings.agent_identity?.identity_vocabulary:planned.vocabulary),vocabulary_mutation:planned.preview,settings_path:context.target.settingsPath,changed:planned.preview.changed&&!dryRun},context.warnings)}async function setConfigValue(context,key,options){const result=await dispatchConfigSetValue(context,key,options);return context.fallbackRepairWritten===!0?{...result,changed:!0}:result}async function dispatchConfigSetValue(context,key,options){if(options.clearCriteria===!0&&!isCriteriaConfigKey(key))throw new PmCliError("--clear-criteria is only supported with config set criteria-list keys",EXIT_CODE.USAGE);return key==="item_format"?setItemFormatConfig(context,options):key==="context"?applyContextConfig(context.settings,options,context.target,context.scope,context.warnings):key==="agent_identity_vocabulary"?setAgentIdentityVocabularyConfig(context,options):key==="definition_of_done"?setDefinitionOfDoneConfig(context,key,options):isCriteriaValueConfigKey(key)?setCriteriaConfig(context,key,options):TRACKING_CONFIG_KEYS.has(key)?setTrackingConfig(context,key,options):GOVERNANCE_BOOLEAN_CONFIG_KEYS.has(key)?setGovernanceBooleanConfig(context,key,options):isGovernancePolicyConfigKey(key)?setGovernancePolicyConfig(context,key,options):isGovernanceValidationConfigKey(key)?setGovernanceValidationConfig(context,key,options):isGovernancePresetOrTypeConfigKey(key)?setGovernancePresetOrTypeConfig(context,key,options):setValidationConfig(context,key,options)}async function runConfig(scopeValue,actionValue,keyValue,options,global2,valueValue){const scope=normalizeScope(scopeValue),action=normalizeAction(actionValue),nestedSetting=action==="get"||action==="set"?resolveNestedSettingDescriptor(keyValue):void 0,key=nestedSetting?void 0:normalizeKeyForAction(action,keyValue),routedOptions=applyPositionalValue(action,keyValue,key,nestedSetting,valueValue,options),target=await resolveSettingsTarget(scope,global2),{settings,metadata,warnings:settingsReadWarnings}=await readSettingsWithMetadata(target.pmRoot),context={scope,target,settings,metadata,warnings:normalizeWarnings(settingsReadWarnings)};return nestedSetting?buildNestedSettingResult(context,action,nestedSetting,routedOptions):action==="list"?buildConfigListResult(context):action==="export"?buildConfigExportResult(context):(assertConfigKeyDefined(key),action==="get"&&key==="telemetry_tracking"&&scope==="project"&&refuseProjectTelemetryTracking("get",""),action==="get"?buildConfigGetResult(context,key):setConfigValue(context,key,routedOptions))}const _testOnlyConfigCommand={hasGovernanceValidationMirrorChange,applyPositionalValue,normalizeAction,normalizeCriteria,normalizeGovernanceCloseValidationDefault,normalizeGovernanceCreateModeDefault,normalizeGovernanceForceRequiredForStaleLockPolicy,normalizeGovernanceOwnershipEnforcement,normalizeGovernancePreset,normalizeGovernanceRequireCloseReasonPolicy,normalizeGovernanceWorkflowEnforcement,normalizeHistoryMissingStreamPolicy,normalizeItemFormat,normalizeKey,normalizeMetadataRequiredFields,normalizePolicyForConflict,normalizeScope,normalizeTelemetryTrackingPolicy,normalizeTestResultTrackingPolicy,normalizeValidateMetadataProfile,normalizeWarnings};export{_testOnlyConfigCommand,runConfig};
|
|
2
2
|
//# sourceMappingURL=config.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ba993890-a230-521a-aac4-d873cbd184ba")}catch{}})();const PM_ERROR_CODE_CATALOG_PART_1=[{code:"acceptance_criteria_mutation_conflict",exit_code:2,sources:["sdk/lifecycle/update.ts"],emitting_commands:["update","update-many"]},{code:"acceptance_criteria_remove_unmatched",exit_code:3,sources:["sdk/lifecycle/update-many.ts","sdk/lifecycle/update.ts"],emitting_commands:["update","update-many"]},{code:"acceptance_criteria_semicolon_forbidden",exit_code:2,stable:!0,sources:["core/item/parse.ts"]},{code:"accepted_rejected_value",exit_code:1,sources:["sdk/agent/refusal-closure.ts"]},{code:"alias_collision",exit_code:1,sources:["sdk/cli-contracts/flag-lexicon-contracts.ts"]},{code:"alias_target_missing",exit_code:1,sources:["sdk/cli-contracts/grammar-contracts.ts"]},{code:"already_claimed_by",exit_code:4,stable:!0,sources:["sdk/lifecycle/claim.ts"],emitting_commands:["claim"]},{code:"ambiguous_option_combination",exit_code:2,stable:!0,sources:["sdk/lifecycle/claim.ts","sdk/lifecycle/plan.ts"],emitting_commands:["claim","plan"]},{code:"annotation_alias_conflict",exit_code:2,sources:["cli/register-annotations.ts"]},{code:"annotation_flag_like_value",exit_code:2,stable:!0,sources:["sdk/annotations.ts"]},{code:"annotation_if_absent_without_append",exit_code:2,sources:["sdk/annotations.ts"]},{code:"annotation_message_without_text",exit_code:2,stable:!0,sources:["sdk/annotations.ts"]},{code:"annotation_transposed_subcommand",exit_code:2,sources:["cli/register-annotations.ts"]},{code:"append_empty_body",exit_code:2,stable:!0,sources:["sdk/lifecycle/append.ts"],emitting_commands:["append"]},{code:"assurance_registry_invalid",exit_code:1,sources:["sdk/governance/assurance.ts"]},{code:"bare_comma_entry_ambiguous",exit_code:2,sources:["core/item/parse.ts"]},{code:"blocker_identity_read_failed",exit_code:1,sources:["sdk/query/declared-blockers.ts"]},{code:"body_file_conflicts_with_body",exit_code:2,stable:!0,sources:["core/io/body-file.ts"]},{code:"body_file_missing_path",exit_code:2,stable:!0,sources:["core/io/body-file.ts"]},{code:"body_file_unreadable",exit_code:3,stable:!0,sources:["core/io/body-file.ts"]},{code:"budget_exceeded",exit_code:1,sources:["sdk/cli-contracts/flag-lexicon-contracts.ts"]},{code:"bulk_create_route",exit_code:2,sources:["cli/register-mutation.ts"]},{code:"bulk_ids_input_empty",exit_code:2,sources:["core/io/bulk-ids-input.ts","sdk/history-compact.ts","sdk/history-mcp.ts"],owned_states:[{state:"bulk_ids_stdin_contains_no_nonempty_ids",probe_id:"bulk-ids-stdin-empty",entrypoints:["update-many"],expected_exit_class:"usage"}]},{code:"bulk_ids_input_missing_path",exit_code:2,sources:["core/io/bulk-ids-input.ts"],owned_states:[{state:"bulk_ids_file_token_omits_its_path",probe_id:"bulk-ids-file-path-missing",entrypoints:["update-many"],expected_exit_class:"usage"}]},{code:"bulk_ids_input_unreadable",exit_code:3,sources:["core/io/bulk-ids-input.ts"],owned_states:[{state:"bulk_ids_file_path_cannot_be_read",probe_id:"bulk-ids-file-unreadable",entrypoints:["update-many"],expected_exit_class:"not_found"}]},{code:"bundle_integrity_torn_install",exit_code:1,stable:!0,sources:["cli/bundle-integrity.ts"]},{code:"capability_undeclared",exit_code:1,stable:!0,sources:["sdk/compose.ts"]},{code:"capability_unused",exit_code:1,stable:!0,sources:["sdk/compose.ts"]},{code:"child_projection_item_bound_exceeded",exit_code:1,stable:!0,sources:["sdk/item-children.ts"]},{code:"close_reason_required",exit_code:2,stable:!0,sources:["sdk/lifecycle-policy.ts","sdk/lifecycle/close-many.ts"],emitting_commands:["*","close-many"]},{code:"close_through_update",exit_code:1,stable:!0,sources:["core/telemetry/observability.ts"]},{code:"close_validation_missing_fields",exit_code:2,stable:!0,sources:["sdk/lifecycle/close.ts"],emitting_commands:["close"]},{code:"collected_zero_items",exit_code:1,stable:!0,sources:["sdk/test/execution-receipts.ts"]},{code:"collection_transposed_subcommand",exit_code:2,sources:["cli/error-guidance.ts"]},{code:"command_failed",exit_code:1,stable:!0,sources:["cli/error-guidance.ts"]},{code:"command_namespace",exit_code:2,stable:!0,sources:["sdk/cli-contracts/runtime-contracts.ts"]},{code:"command_override_conflict",exit_code:4,stable:!0,sources:["sdk/compose.ts"]},{code:"config_duplicate",exit_code:1,stable:!0,sources:["core/profile/profile-lint.ts"]},{code:"config_key_unknown",exit_code:2,stable:!0,sources:["core/profile/profile-lint.ts"]},{code:"config_value_invalid",exit_code:2,stable:!0,sources:["core/profile/profile-lint.ts"]},{code:"conflicting_lifecycle_owner",exit_code:2,stable:!0,sources:["cli/register-operations.ts"]},{code:"context_evaluation_read_incomplete",exit_code:2,sources:["sdk/context-relevance.ts"]},{code:"context_signal_store_invalid",exit_code:2,sources:["sdk/context-signal-store.ts"]},{code:"context_signal_store_stale",exit_code:1,sources:["sdk/context-signal-store.ts"]},{code:"context_signal_store_write_failed",exit_code:1,sources:["sdk/context-signal-store.ts"]},{code:"context_takes_no_item_argument",exit_code:1,stable:!0,sources:["cli/error-guidance.ts"]},{code:"core_item_field_requires_dedicated_flag",exit_code:2,stable:!0,sources:["core/extensions/item-fields.ts"]},{code:"create_positional_type_without_title",exit_code:2,stable:!0,sources:["cli/register-mutation.ts"]},{code:"dependency_cardinality_created",exit_code:2,sources:["sdk/graph/cardinality-integrity.ts"]},{code:"dependency_edge_not_allowed",exit_code:2,stable:!0,sources:["sdk/dependency-flag-validation.ts"]},{code:"dependency_flag_value_invalid",exit_code:2,sources:["sdk/dependency-flag-validation.ts"]},{code:"dependency_remove_no_match",exit_code:3,sources:["sdk/lifecycle/update.ts"],emitting_commands:["update"]},{code:"dependency_target_not_found",exit_code:3,sources:["sdk/dependency-flag-validation.ts"]},{code:"dependency_temporal_order_invalid",exit_code:2,sources:["sdk/dependency-flag-validation.ts"]},{code:"duplicate_canonical_flag",exit_code:1,sources:["sdk/cli-contracts/flag-lexicon-contracts.ts"]},{code:"duplicate_command",exit_code:1,stable:!0,sources:["sdk/compose.ts"]},{code:"duplicate_destination",exit_code:1,sources:["sdk/cli-contracts/grammar-contracts.ts"]},{code:"duplicate_edge",exit_code:1,stable:!0,sources:["sdk/graph/remediation.ts"]},{code:"duplicate_observation",exit_code:1,sources:["sdk/flag-invocation-contracts.ts"]},{code:"duplicate_probe",exit_code:1,sources:["sdk/agent/refusal-closure.ts"]},{code:"duplicate_sweep_cost_limit",exit_code:4,stable:!0,sources:["sdk/query/duplicate-candidates.ts"],emitting_commands:["duplicate-candidates"]},{code:"duplicate_target_circular",exit_code:2,stable:!0,sources:["sdk/lifecycle/close.ts"],emitting_commands:["close"]},{code:"duplicate_target_is_duplicate",exit_code:2,stable:!0,sources:["sdk/lifecycle/close.ts"],emitting_commands:["close"]},{code:"duplicate_target_missing",exit_code:2,stable:!0,sources:["sdk/lifecycle/close.ts"],emitting_commands:["close"]},{code:"duplicate_target_self",exit_code:2,stable:!0,sources:["sdk/lifecycle/close.ts"],emitting_commands:["close"]},{code:"empty_corpus",exit_code:1,sources:["sdk/agent/refusal-closure.ts"]},{code:"empty_surface",exit_code:1,stable:!0,sources:["sdk/compose.ts"]},{code:"error_code_mismatch",exit_code:1,sources:["sdk/agent/refusal-closure.ts","sdk/agent/tracker-preflight-contracts.ts"]},{code:"event_cursor_query_mismatch",exit_code:2,stable:!0,sources:["sdk/mutation-events.ts"]},{code:"event_history_integrity_failed",exit_code:1,sources:["core/history/event-index.ts"]},{code:"event_index_unavailable",exit_code:1,stable:!0,sources:["sdk/mutation-events.ts"]},{code:"exit_code_mismatch",exit_code:1,sources:["sdk/agent/tracker-preflight-contracts.ts"]},{code:"expect_hash_background_unsupported",exit_code:2,sources:["sdk/lifecycle/item-revision.ts"]},{code:"expect_hash_invalid",exit_code:2,sources:["sdk/lifecycle/item-revision.ts"]},{code:"expect_hash_invocation_rewritten",exit_code:2,sources:["sdk/lifecycle/item-revision.ts"]},{code:"expect_hash_requires_mutation",exit_code:2,sources:["sdk/lifecycle/item-revision.ts"]},{code:"expect_hash_target_required",exit_code:2,sources:["sdk/lifecycle/item-revision.ts"]},{code:"expected_revision_duplicate",exit_code:2,sources:["core/store/item-mutation-precondition.ts"]},{code:"expected_revision_scope_conflict",exit_code:2,sources:["core/store/item-mutation-precondition.ts"]},{code:"extension_command_activation_failed",exit_code:1,stable:!0,sources:["cli/commander-usage.ts"]},{code:"extension_dependency_name_unsafe",exit_code:2,stable:!0,sources:["sdk/extension/install-sources.ts"]},{code:"extension_dependency_spec_invalid",exit_code:2,stable:!0,sources:["sdk/extension/install-sources.ts"]},{code:"extension_dependency_version_unsafe",exit_code:2,stable:!0,sources:["sdk/extension/install-sources.ts"]},{code:"extension_flag_value_invalid",exit_code:2,sources:["cli/extension-command-options.ts"]},{code:"extension_install_incomplete_source_scan",exit_code:2,sources:["sdk/extension/install-plan.ts"]},{code:"extension_install_rollback_failed",exit_code:1,sources:["sdk/extension/install-snapshot.ts"]},{code:"extension_install_soft_failed",exit_code:1,stable:!0,sources:["cli/register-setup.ts"]},{code:"extension_install_source_contains_destination",exit_code:2,stable:!0,sources:["sdk/extension/install-runtime.ts"]},{code:"extension_item_field_reserved",exit_code:2,stable:!0,sources:["core/extensions/item-fields.ts"]},{code:"extension_item_field_type_conflict",exit_code:2,stable:!0,sources:["core/extensions/item-fields.ts"]},{code:"extension_item_field_unknown",exit_code:2,stable:!0,sources:["core/extensions/item-fields.ts"]},{code:"extension_mutation_guard_failed",exit_code:4,stable:!0,sources:["core/extensions/extension-hook-runtime.ts"]},{code:"extension_mutation_guard_invalid_decision",exit_code:4,stable:!0,sources:["core/extensions/extension-hook-runtime.ts"]},{code:"extension_mutation_guard_invalid_denial",exit_code:4,stable:!0,sources:["core/extensions/extension-hook-runtime.ts"]},{code:"extension_mutation_guard_timed_out",exit_code:4,stable:!0,sources:["core/extensions/extension-hook-runtime.ts"]},{code:"extension_read_output_invalid",exit_code:2,sources:["sdk/read-output/extension.ts"]},{code:"extension_update_health_partial_coverage",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"]},{code:"extensions_unreadable",exit_code:1,sources:["sdk/extension/static-inventory.ts"]},{code:"field_duplicate",exit_code:1,stable:!0,sources:["core/profile/profile-lint.ts"]},{code:"field_invalid",exit_code:2,stable:!0,sources:["core/profile/profile-lint.ts"]},{code:"field_mcp_input_collision",exit_code:1,stable:!0,sources:["core/profile/profile-lint.ts"]},{code:"github_source_entry_unbuilt",exit_code:2,stable:!0,sources:["sdk/extension/shared.ts"]},{code:"hierarchy_cardinality_created",exit_code:4,sources:["sdk/graph/hierarchy-integrity.ts"]},{code:"hierarchy_cycle_created",exit_code:4,sources:["sdk/graph/hierarchy-integrity.ts"]},{code:"hierarchy_parent_divergence_created",exit_code:4,sources:["sdk/graph/hierarchy-integrity.ts"]},{code:"history_author_acknowledge_plan_conflict",exit_code:4,sources:["sdk/author-attribution.ts"]},{code:"history_author_acknowledge_plan_fingerprint_required",exit_code:2,sources:["sdk/author-attribution.ts"]},{code:"history_author_acknowledge_preview_limit_invalid",exit_code:2,sources:["sdk/author-attribution.ts"]},{code:"history_author_acknowledge_required_values_missing",exit_code:2,sources:["sdk/author-attribution.ts"]},{code:"history_author_acknowledge_selector_conflict",exit_code:2,sources:["sdk/author-attribution.ts"]},{code:"history_author_acknowledge_selector_required",exit_code:2,stable:!0,sources:["sdk/author-attribution.ts"]},{code:"history_author_acknowledge_target_not_actionable",exit_code:2,sources:["sdk/author-attribution.ts"]},{code:"history_author_acknowledge_target_unreadable",exit_code:2,sources:["sdk/author-attribution.ts"]},{code:"history_baseline_unavailable",exit_code:1,sources:["core/history/projection.ts"]},{code:"history_drift_chain_mismatch",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"],aliases:["validate_history_drift_chain_mismatches"]},{code:"history_drift_hash_mismatch",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"],aliases:["validate_history_drift_hash_mismatches"]},{code:"history_drift_merge_receipt",exit_code:1,sources:["core/diagnostics/remediation.ts"]},{code:"history_drift_missing_stream",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"],aliases:["validate_history_drift_missing_streams"]},{code:"history_drift_unreadable_stream",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"],aliases:["validate_history_drift_unreadable_streams"]},{code:"history_drift_version_skew",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"],aliases:["validate_history_drift_version_skews"]},{code:"history_json_invalid",exit_code:1,sources:["core/history/read.ts"]},{code:"history_merge_conflict_markers_detected",exit_code:1,stable:!0,sources:["core/history/read.ts"],canonical_code:"merge_conflict_markers_detected"},{code:"history_replay_invalid",exit_code:1,sources:["core/history/projection.ts","core/history/tombstone.ts"]},{code:"history_salvage_refused",exit_code:4,sources:["sdk/history/salvage.ts"]},{code:"history_stream_over_compact_threshold",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"]},{code:"history_target_out_of_range",exit_code:1,stable:!0,sources:["core/history/projection.ts"]},{code:"history_timestamp_invalid",exit_code:1,sources:["core/history/event-index.ts","core/history/history.ts"]},{code:"history_union_rebase_conflict",exit_code:4,sources:["sdk/merge/history-scalar-rebase.ts"]},{code:"history_unknown_author_events",exit_code:2,stable:!0,sources:["core/diagnostics/remediation.ts"],aliases:["validate_history_unknown_author_events"]},{code:"history_version_mapping_unavailable",exit_code:2,sources:["core/history/version-address.ts"]},{code:"history_version_pruned",exit_code:2,sources:["core/history/projection.ts"]},{code:"host_environment_capacity_fault",exit_code:1,sources:["core/fs/host-environment-errors.ts"]},{code:"host_environment_operation_invalid",exit_code:2,sources:["core/fs/host-environment-errors.ts"]},{code:"host_environment_permission_fault",exit_code:1,sources:["core/fs/host-environment-errors.ts"]},{code:"host_environment_resource_fault",exit_code:1,sources:["core/fs/host-environment-errors.ts"]},{code:"improvement_metric_contract_conflict",exit_code:4,sources:["sdk/improvement-ledger.ts"]},{code:"improvement_observation_conflict",exit_code:4,sources:["sdk/improvement-ledger.ts"]},{code:"incomplete_allowed_values",exit_code:1,sources:["sdk/agent/refusal-closure.ts"]},{code:"inconsistent_concept_kind",exit_code:1,sources:["sdk/cli-contracts/flag-lexicon-contracts.ts"]},{code:"init_existing_settings_requires_force",exit_code:2,stable:!0,sources:["sdk/init.ts"]},{code:"init_gitignore_unwritable",exit_code:1,stable:!0,sources:["sdk/workspace.ts"]},{code:"init_id_prefix_conflict",exit_code:2,stable:!0,sources:["sdk/init.ts"]},{code:"init_id_prefix_path_like",exit_code:2,stable:!0,sources:["sdk/init.ts"]},{code:"integrity_history_conflict_marker",exit_code:4,stable:!0,sources:["core/diagnostics/remediation.ts"],aliases:["validate_storage_history_conflict_markers"]},{code:"integrity_history_invalid_json",exit_code:2,stable:!0,sources:["core/diagnostics/remediation.ts"]},{code:"integrity_history_unreadable",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"]},{code:"integrity_item_ahead_format_version",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"],aliases:["validate_format_version_ahead_items"]},{code:"integrity_item_conflict_marker",exit_code:4,stable:!0,sources:["core/diagnostics/remediation.ts"]},{code:"integrity_item_outdated_format_version",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"],aliases:["validate_format_version_outdated_items"]},{code:"integrity_item_parse_failed",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"]},{code:"integrity_item_unreadable",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"]},{code:"invalid_argument_value",exit_code:2,stable:!0,sources:["cli/error-guidance.ts","core/item/priority.ts","core/telemetry/observability.ts","sdk/context-intent-contracts.ts","sdk/dependencies.ts","sdk/governance/assurance-mutation-error.ts","sdk/lifecycle/create.ts","sdk/lifecycle/task-composition.ts","sdk/lifecycle/update-many.ts","sdk/lifecycle/update.ts","sdk/query/next.ts","sdk/runtime-input.ts","sdk/runtime/mutation-admission.ts","sdk/runtime/mutation-value-validation.ts","sdk/runtime/schema-preview.ts","sdk/workspace.ts"],emitting_commands:["*","create","next","task-composition","update","update-many"]},{code:"invalid_command_usage",exit_code:2,stable:!0,sources:["cli/error-guidance.ts","core/telemetry/observability.ts"]},{code:"invalid_event_cursor",exit_code:2,stable:!0,sources:["sdk/mutation-events.ts"]},{code:"invalid_event_cursor_mode",exit_code:2,sources:["cli/register-list-query.ts","sdk/mutation-events.ts","sdk/runtime-extended-actions.ts"]},{code:"invalid_event_follow_interval",exit_code:2,stable:!0,sources:["sdk/mutation-events.ts"]},{code:"invalid_event_limit",exit_code:2,stable:!0,sources:["sdk/mutation-events.ts"]},{code:"invalid_event_since",exit_code:2,stable:!0,sources:["sdk/mutation-events.ts"]},{code:"invalid_history_analytics_limit",exit_code:2,sources:["sdk/history-analytics.ts"]},{code:"invalid_history_analytics_minimum_sample",exit_code:2,sources:["sdk/history-analytics.ts"]},{code:"invalid_history_analytics_since",exit_code:2,sources:["sdk/history-analytics.ts"]},{code:"invalid_improvement_ledger",exit_code:1,sources:["sdk/improvement-ledger-validation.ts"]},{code:"invalid_improvement_metric",exit_code:2,sources:["sdk/improvement-ledger.ts"]},{code:"invalid_improvement_observation",exit_code:2,sources:["sdk/improvement-ledger.ts"]},{code:"invalid_improvement_observation_limit",exit_code:2,sources:["sdk/improvement-ledger.ts"]},{code:"invalid_improvement_observation_timestamp",exit_code:2,sources:["sdk/improvement-ledger.ts"]},{code:"invalid_provenance_predicate",exit_code:2,stable:!0,sources:["sdk/history-provenance.ts"]},{code:"invalid_query_cursor",exit_code:2,stable:!0,sources:["sdk/pagination.ts","sdk/query/window-pagination.ts"]},{code:"invalid_read_output_session",exit_code:2,sources:["sdk/read-output-session.ts"]},{code:"invalid_reproducible_process_environment",exit_code:2,sources:["sdk/reproducibility/process.ts"]},{code:"invalid_workspace_snapshot_target",exit_code:2,sources:["sdk/workspace-snapshot.ts"]},{code:"item_already_active",exit_code:4,sources:["sdk/lifecycle/update.ts"],emitting_commands:["update"]},{code:"item_already_exists",exit_code:4,stable:!0,sources:["sdk/lifecycle/create.ts"],emitting_commands:["create"]},{code:"item_deleted",exit_code:3,sources:["core/history/tombstone.ts"]},{code:"item_document_encoding_invalid",exit_code:4,sources:["core/store/item-store.ts"]},{code:"item_document_invalid",exit_code:1,stable:!0,sources:["core/item/item-format.ts"]},{code:"item_document_roundtrip_failed",exit_code:1,stable:!0,sources:["core/item/item-format.ts"]},{code:"item_format_version_unsupported",exit_code:4,sources:["core/item/item-format.ts"]},{code:"item_id_collision",exit_code:4,stable:!0,sources:["sdk/lifecycle/copy.ts"],emitting_commands:["copy"]},{code:"item_identity_ambiguous",exit_code:4,sources:["core/store/item-store.ts"]},{code:"item_identity_conflict",exit_code:4,sources:["sdk/governance/validate-history-drift.ts","sdk/lifecycle/item-revision.ts","sdk/merge/three-way.ts","sdk/query/declared-blockers.ts"]},{code:"item_identity_reserved",exit_code:4,sources:["core/history/history.ts"]},{code:"item_not_found",exit_code:3,stable:!0,sources:["cli/error-guidance.ts","core/store/item-store.ts","core/telemetry/observability.ts","sdk/governance/validate-history-drift.ts"]},{code:"item_revision_conflict",exit_code:4,sources:["core/store/item-mutation-precondition.ts"]},{code:"likely_duplicate",exit_code:4,stable:!0,sources:["sdk/similarity.ts"]},{code:"linked_artifact_mutation_conflict",exit_code:2,sources:["sdk/linked-artifacts.ts"]},{code:"linked_resource_positional_value",exit_code:2,sources:["cli/error-guidance.ts"]},{code:"linked_test_command_immutable",exit_code:2,sources:["sdk/test/update.ts"]},{code:"linked_test_command_not_executable",exit_code:2,sources:["sdk/test/entry.ts"]},{code:"linked_test_context_invalid",exit_code:2,sources:["sdk/test/entry.ts"]},{code:"linked_test_patch_fields_unsupported",exit_code:2,sources:["sdk/test/update.ts"]},{code:"linked_test_remove_no_match",exit_code:3,sources:["sdk/test/execution.ts"]},{code:"linked_test_update_ambiguous",exit_code:2,sources:["sdk/test/update.ts"]},{code:"linked_test_update_no_match",exit_code:3,sources:["sdk/test/update.ts"]},{code:"linked_test_value_not_quoted",exit_code:1,stable:!0,sources:["cli/error-guidance.ts"]},{code:"list_source_incomplete",exit_code:1,stable:!0,sources:["sdk/query/list.ts"],emitting_commands:["list"]},{code:"local_package_archive_unsafe",exit_code:2,stable:!0,sources:["sdk/extension/install-sources.ts"]},{code:"local_source_not_found_bare_name",exit_code:3,stable:!0,sources:["sdk/extension/install-sources.ts"]},{code:"lock_conflict",exit_code:4,stable:!0,sources:["cli/error-guidance.ts","core/lock/lock.ts","core/telemetry/observability.ts"]},{code:"lock_lost",exit_code:4,sources:["core/lock/lock.ts"]},{code:"lock_path_unsafe",exit_code:4,sources:["core/lock/lock-confinement.ts"]},{code:"locks_stale_count",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"]},{code:"locks_unreadable",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"]},{code:"malformed_plan_step_evidence",exit_code:2,stable:!0,sources:["sdk/lifecycle/plan.ts"],emitting_commands:["plan"]},{code:"managed_state_invalid",exit_code:2,sources:["sdk/extension/static-inventory.ts"]},{code:"managed_state_unreadable",exit_code:1,sources:["sdk/extension/static-inventory.ts"]},{code:"manifest_capabilities_absent",exit_code:1,stable:!0,sources:["sdk/compose.ts"]},{code:"manifest_invalid",exit_code:2,sources:["sdk/extension/static-inventory.ts"]},{code:"manifest_unknown_key",exit_code:1,sources:["core/extensions/manifest-schema.ts"],owned_states:[{state:"author_workspace_manifest_declares_an_unknown_top_level_key",probe_id:"author-manifest-unknown-key",entrypoints:["health"],expected_exit_class:"generic_failure"}]},{code:"manifest_unreadable",exit_code:1,sources:["sdk/extension/static-inventory.ts"]},{code:"mcp_annotation_file_unavailable",exit_code:2,sources:["sdk/runtime-input.ts"]},{code:"mcp_stdin_unavailable",exit_code:2,sources:["sdk/annotations.ts"]},{code:"mcp_task_not_found_or_not_authorized",exit_code:3,sources:["sdk/mcp/tasks.ts"]},{code:"merge_artifacts_ignored",exit_code:1,sources:["core/diagnostics/remediation.ts"]},{code:"merge_bun_launcher_unavailable",exit_code:5,sources:["sdk/merge/install.ts"]},{code:"merge_conflict_markers_detected",exit_code:1,stable:!0,sources:["core/item/item-format.ts"],aliases:["history_merge_conflict_markers_detected"]},{code:"merge_decisions_unreviewed",exit_code:1,sources:["core/diagnostics/remediation.ts"]},{code:"merge_driver_configuration_drift",exit_code:1,sources:["core/diagnostics/remediation.ts"]},{code:"merge_driver_configuration_missing",exit_code:1,sources:["core/diagnostics/remediation.ts"]},{code:"merge_fence_drift",exit_code:1,sources:["core/diagnostics/remediation.ts"]},{code:"merge_fence_missing",exit_code:1,sources:["core/diagnostics/remediation.ts"]},{code:"merge_git_config_unwritable",exit_code:5,stable:!0,sources:["sdk/merge/install.ts"]},{code:"merge_receipt_evidence_invalid",exit_code:4,sources:["core/diagnostics/remediation.ts","sdk/merge/reconcile.ts"]},{code:"merge_receipt_history_reference_missing",exit_code:1,sources:["core/diagnostics/remediation.ts"]},{code:"merge_receipt_not_portable",exit_code:4,sources:["sdk/merge/receipts.ts"]},{code:"merge_receipts_pending",exit_code:1,sources:["core/diagnostics/remediation.ts"]},{code:"merge_reconcile_receipt_evidence_untrusted",exit_code:4,sources:["sdk/history-repair.ts"]},{code:"merge_root_not_found",exit_code:3,stable:!0,sources:["sdk/merge/install.ts"]}];export{PM_ERROR_CODE_CATALOG_PART_1};
|
|
1
|
+
(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="7ff182fc-44e0-5a2e-93e9-5e24ba113e67")}catch{}})();const PM_ERROR_CODE_CATALOG_PART_1=[{code:"acceptance_criteria_mutation_conflict",exit_code:2,sources:["sdk/lifecycle/update.ts"],emitting_commands:["update","update-many"]},{code:"acceptance_criteria_remove_unmatched",exit_code:3,sources:["sdk/lifecycle/update-many.ts","sdk/lifecycle/update.ts"],emitting_commands:["update","update-many"]},{code:"acceptance_criteria_semicolon_forbidden",exit_code:2,stable:!0,sources:["core/item/parse.ts"]},{code:"accepted_rejected_value",exit_code:1,sources:["sdk/agent/refusal-closure.ts"]},{code:"alias_collision",exit_code:1,sources:["sdk/cli-contracts/flag-lexicon-contracts.ts"]},{code:"alias_target_missing",exit_code:1,sources:["sdk/cli-contracts/grammar-contracts.ts"]},{code:"already_claimed_by",exit_code:4,stable:!0,sources:["sdk/lifecycle/claim.ts"],emitting_commands:["claim"]},{code:"ambiguous_option_combination",exit_code:2,stable:!0,sources:["sdk/lifecycle/claim.ts","sdk/lifecycle/plan.ts"],emitting_commands:["claim","plan"]},{code:"annotation_alias_conflict",exit_code:2,sources:["cli/register-annotations.ts"]},{code:"annotation_flag_like_value",exit_code:2,stable:!0,sources:["sdk/annotations.ts"]},{code:"annotation_if_absent_without_append",exit_code:2,sources:["sdk/annotations.ts"]},{code:"annotation_message_without_text",exit_code:2,stable:!0,sources:["sdk/annotations.ts"]},{code:"annotation_transposed_subcommand",exit_code:2,sources:["cli/register-annotations.ts"]},{code:"append_empty_body",exit_code:2,stable:!0,sources:["sdk/lifecycle/append.ts"],emitting_commands:["append"]},{code:"assurance_registry_invalid",exit_code:1,sources:["sdk/governance/assurance.ts"]},{code:"bare_comma_entry_ambiguous",exit_code:2,sources:["core/item/parse.ts"]},{code:"blocker_identity_read_failed",exit_code:1,sources:["sdk/query/declared-blockers.ts"]},{code:"body_file_conflicts_with_body",exit_code:2,stable:!0,sources:["core/io/body-file.ts"]},{code:"body_file_missing_path",exit_code:2,stable:!0,sources:["core/io/body-file.ts"]},{code:"body_file_unreadable",exit_code:3,stable:!0,sources:["core/io/body-file.ts"]},{code:"budget_exceeded",exit_code:1,sources:["sdk/cli-contracts/flag-lexicon-contracts.ts"]},{code:"bulk_create_route",exit_code:2,sources:["cli/register-mutation.ts"]},{code:"bulk_ids_input_empty",exit_code:2,sources:["core/io/bulk-ids-input.ts","sdk/history-compact.ts","sdk/history-mcp.ts"],owned_states:[{state:"bulk_ids_stdin_contains_no_nonempty_ids",probe_id:"bulk-ids-stdin-empty",entrypoints:["update-many"],expected_exit_class:"usage"}]},{code:"bulk_ids_input_missing_path",exit_code:2,sources:["core/io/bulk-ids-input.ts"],owned_states:[{state:"bulk_ids_file_token_omits_its_path",probe_id:"bulk-ids-file-path-missing",entrypoints:["update-many"],expected_exit_class:"usage"}]},{code:"bulk_ids_input_unreadable",exit_code:3,sources:["core/io/bulk-ids-input.ts"],owned_states:[{state:"bulk_ids_file_path_cannot_be_read",probe_id:"bulk-ids-file-unreadable",entrypoints:["update-many"],expected_exit_class:"not_found"}]},{code:"bundle_integrity_torn_install",exit_code:1,stable:!0,sources:["cli/bundle-integrity.ts"]},{code:"capability_undeclared",exit_code:1,stable:!0,sources:["sdk/compose.ts"]},{code:"capability_unused",exit_code:1,stable:!0,sources:["sdk/compose.ts"]},{code:"child_projection_item_bound_exceeded",exit_code:1,stable:!0,sources:["sdk/item-children.ts"]},{code:"close_reason_required",exit_code:2,stable:!0,sources:["sdk/lifecycle-policy.ts","sdk/lifecycle/close-many.ts"],emitting_commands:["*","close-many"]},{code:"close_through_update",exit_code:1,stable:!0,sources:["core/telemetry/observability.ts"]},{code:"close_validation_missing_fields",exit_code:2,stable:!0,sources:["sdk/lifecycle/close.ts"],emitting_commands:["close"]},{code:"collected_zero_items",exit_code:1,stable:!0,sources:["sdk/test/execution-receipts.ts"]},{code:"collection_transposed_subcommand",exit_code:2,sources:["cli/error-guidance.ts"]},{code:"command_failed",exit_code:1,stable:!0,sources:["cli/error-guidance.ts"]},{code:"command_namespace",exit_code:2,stable:!0,sources:["sdk/cli-contracts/runtime-contracts.ts"]},{code:"command_override_conflict",exit_code:4,stable:!0,sources:["sdk/compose.ts"]},{code:"config_duplicate",exit_code:1,stable:!0,sources:["core/profile/profile-lint.ts"]},{code:"config_key_unknown",exit_code:2,stable:!0,sources:["core/profile/profile-lint.ts"]},{code:"config_value_invalid",exit_code:2,stable:!0,sources:["core/profile/profile-lint.ts"]},{code:"conflicting_lifecycle_owner",exit_code:2,stable:!0,sources:["cli/register-operations.ts"]},{code:"context_evaluation_read_incomplete",exit_code:2,sources:["sdk/context-relevance.ts"]},{code:"context_signal_store_invalid",exit_code:2,sources:["sdk/context-signal-store.ts"]},{code:"context_signal_store_stale",exit_code:1,sources:["sdk/context-signal-store.ts"]},{code:"context_signal_store_write_failed",exit_code:1,sources:["sdk/context-signal-store.ts"]},{code:"context_takes_no_item_argument",exit_code:1,stable:!0,sources:["cli/error-guidance.ts"]},{code:"core_item_field_requires_dedicated_flag",exit_code:2,stable:!0,sources:["core/extensions/item-fields.ts"]},{code:"create_positional_type_without_title",exit_code:2,stable:!0,sources:["cli/register-mutation.ts"]},{code:"dependency_cardinality_created",exit_code:2,sources:["sdk/graph/cardinality-integrity.ts"]},{code:"dependency_edge_not_allowed",exit_code:2,stable:!0,sources:["sdk/dependency-flag-validation.ts"]},{code:"dependency_flag_value_invalid",exit_code:2,sources:["sdk/dependency-flag-validation.ts"]},{code:"dependency_remove_no_match",exit_code:3,sources:["sdk/lifecycle/update.ts"],emitting_commands:["update"]},{code:"dependency_target_not_found",exit_code:3,sources:["sdk/dependency-flag-validation.ts"]},{code:"dependency_temporal_order_invalid",exit_code:2,sources:["sdk/dependency-flag-validation.ts"]},{code:"duplicate_canonical_flag",exit_code:1,sources:["sdk/cli-contracts/flag-lexicon-contracts.ts"]},{code:"duplicate_command",exit_code:1,stable:!0,sources:["sdk/compose.ts"]},{code:"duplicate_destination",exit_code:1,sources:["sdk/cli-contracts/grammar-contracts.ts"]},{code:"duplicate_edge",exit_code:1,stable:!0,sources:["sdk/graph/remediation.ts"]},{code:"duplicate_observation",exit_code:1,sources:["sdk/flag-invocation-contracts.ts"]},{code:"duplicate_probe",exit_code:1,sources:["sdk/agent/refusal-closure.ts"]},{code:"duplicate_sweep_cost_limit",exit_code:4,stable:!0,sources:["sdk/query/duplicate-candidates.ts"],emitting_commands:["duplicate-candidates"]},{code:"duplicate_target_circular",exit_code:2,stable:!0,sources:["sdk/lifecycle/close.ts"],emitting_commands:["close"]},{code:"duplicate_target_is_duplicate",exit_code:2,stable:!0,sources:["sdk/lifecycle/close.ts"],emitting_commands:["close"]},{code:"duplicate_target_missing",exit_code:2,stable:!0,sources:["sdk/lifecycle/close.ts"],emitting_commands:["close"]},{code:"duplicate_target_self",exit_code:2,stable:!0,sources:["sdk/lifecycle/close.ts"],emitting_commands:["close"]},{code:"empty_corpus",exit_code:1,sources:["sdk/agent/refusal-closure.ts"]},{code:"empty_surface",exit_code:1,stable:!0,sources:["sdk/compose.ts"]},{code:"error_code_mismatch",exit_code:1,sources:["sdk/agent/refusal-closure.ts","sdk/agent/tracker-preflight-contracts.ts"]},{code:"event_cursor_query_mismatch",exit_code:2,stable:!0,sources:["sdk/mutation-events.ts"]},{code:"event_history_integrity_failed",exit_code:1,sources:["core/history/event-index.ts"]},{code:"event_index_unavailable",exit_code:1,stable:!0,sources:["sdk/mutation-events.ts"]},{code:"exit_code_mismatch",exit_code:1,sources:["sdk/agent/tracker-preflight-contracts.ts"]},{code:"expect_hash_background_unsupported",exit_code:2,sources:["sdk/lifecycle/item-revision.ts"]},{code:"expect_hash_invalid",exit_code:2,sources:["sdk/lifecycle/item-revision.ts"]},{code:"expect_hash_invocation_rewritten",exit_code:2,sources:["sdk/lifecycle/item-revision.ts"]},{code:"expect_hash_requires_mutation",exit_code:2,sources:["sdk/lifecycle/item-revision.ts"]},{code:"expect_hash_target_required",exit_code:2,sources:["sdk/lifecycle/item-revision.ts"]},{code:"expected_revision_duplicate",exit_code:2,sources:["core/store/item-mutation-precondition.ts"]},{code:"expected_revision_scope_conflict",exit_code:2,sources:["core/store/item-mutation-precondition.ts"]},{code:"extension_command_activation_failed",exit_code:1,stable:!0,sources:["cli/commander-usage.ts"]},{code:"extension_dependency_name_unsafe",exit_code:2,stable:!0,sources:["sdk/extension/install-sources.ts"]},{code:"extension_dependency_spec_invalid",exit_code:2,stable:!0,sources:["sdk/extension/install-sources.ts"]},{code:"extension_dependency_version_unsafe",exit_code:2,stable:!0,sources:["sdk/extension/install-sources.ts"]},{code:"extension_flag_value_invalid",exit_code:2,sources:["cli/extension-command-options.ts"]},{code:"extension_install_incomplete_source_scan",exit_code:2,sources:["sdk/extension/install-plan.ts"]},{code:"extension_install_rollback_failed",exit_code:1,sources:["sdk/extension/install-snapshot.ts"]},{code:"extension_install_soft_failed",exit_code:1,stable:!0,sources:["cli/register-setup.ts"]},{code:"extension_install_source_contains_destination",exit_code:2,stable:!0,sources:["sdk/extension/install-runtime.ts"]},{code:"extension_item_field_reserved",exit_code:2,stable:!0,sources:["core/extensions/item-fields.ts"]},{code:"extension_item_field_type_conflict",exit_code:2,stable:!0,sources:["core/extensions/item-fields.ts"]},{code:"extension_item_field_unknown",exit_code:2,stable:!0,sources:["core/extensions/item-fields.ts"]},{code:"extension_mutation_guard_failed",exit_code:4,stable:!0,sources:["core/extensions/extension-hook-runtime.ts"]},{code:"extension_mutation_guard_invalid_decision",exit_code:4,stable:!0,sources:["core/extensions/extension-hook-runtime.ts"]},{code:"extension_mutation_guard_invalid_denial",exit_code:4,stable:!0,sources:["core/extensions/extension-hook-runtime.ts"]},{code:"extension_mutation_guard_timed_out",exit_code:4,stable:!0,sources:["core/extensions/extension-hook-runtime.ts"]},{code:"extension_read_output_invalid",exit_code:2,sources:["sdk/read-output/extension.ts"]},{code:"extension_update_health_partial_coverage",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"]},{code:"extensions_unreadable",exit_code:1,sources:["sdk/extension/static-inventory.ts"]},{code:"field_duplicate",exit_code:1,stable:!0,sources:["core/profile/profile-lint.ts"]},{code:"field_invalid",exit_code:2,stable:!0,sources:["core/profile/profile-lint.ts"]},{code:"field_mcp_input_collision",exit_code:1,stable:!0,sources:["core/profile/profile-lint.ts"]},{code:"github_source_entry_unbuilt",exit_code:2,stable:!0,sources:["sdk/extension/shared.ts"]},{code:"hierarchy_cardinality_created",exit_code:4,sources:["sdk/graph/hierarchy-integrity.ts"]},{code:"hierarchy_cycle_created",exit_code:4,sources:["sdk/graph/hierarchy-integrity.ts"]},{code:"hierarchy_parent_divergence_created",exit_code:4,sources:["sdk/graph/hierarchy-integrity.ts"]},{code:"history_author_acknowledge_plan_conflict",exit_code:4,sources:["sdk/author-attribution.ts"]},{code:"history_author_acknowledge_plan_fingerprint_required",exit_code:2,sources:["sdk/author-attribution.ts"]},{code:"history_author_acknowledge_preview_limit_invalid",exit_code:2,sources:["sdk/author-attribution.ts"]},{code:"history_author_acknowledge_required_values_missing",exit_code:2,sources:["sdk/author-attribution.ts"]},{code:"history_author_acknowledge_selector_conflict",exit_code:2,sources:["sdk/author-attribution.ts"]},{code:"history_author_acknowledge_selector_required",exit_code:2,stable:!0,sources:["sdk/author-attribution.ts"]},{code:"history_author_acknowledge_target_not_actionable",exit_code:2,sources:["sdk/author-attribution.ts"]},{code:"history_author_acknowledge_target_unreadable",exit_code:2,sources:["sdk/author-attribution.ts"]},{code:"history_baseline_unavailable",exit_code:1,sources:["core/history/projection.ts"]},{code:"history_drift_chain_mismatch",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"],aliases:["validate_history_drift_chain_mismatches"]},{code:"history_drift_hash_mismatch",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"],aliases:["validate_history_drift_hash_mismatches"]},{code:"history_drift_merge_receipt",exit_code:1,sources:["core/diagnostics/remediation.ts"]},{code:"history_drift_missing_stream",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"],aliases:["validate_history_drift_missing_streams"]},{code:"history_drift_unreadable_stream",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"],aliases:["validate_history_drift_unreadable_streams"]},{code:"history_drift_version_skew",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"],aliases:["validate_history_drift_version_skews"]},{code:"history_json_invalid",exit_code:1,sources:["core/history/read.ts"]},{code:"history_merge_conflict_markers_detected",exit_code:1,stable:!0,sources:["core/history/read.ts"],canonical_code:"merge_conflict_markers_detected"},{code:"history_replay_invalid",exit_code:1,sources:["core/history/projection.ts","core/history/tombstone.ts"]},{code:"history_salvage_refused",exit_code:4,sources:["sdk/history/salvage.ts"]},{code:"history_stream_over_compact_threshold",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"]},{code:"history_target_out_of_range",exit_code:1,stable:!0,sources:["core/history/projection.ts"]},{code:"history_timestamp_invalid",exit_code:1,sources:["core/history/event-index.ts","core/history/history.ts"]},{code:"history_union_rebase_conflict",exit_code:4,sources:["sdk/merge/history-scalar-rebase.ts"]},{code:"history_unknown_author_events",exit_code:2,stable:!0,sources:["core/diagnostics/remediation.ts"],aliases:["validate_history_unknown_author_events"]},{code:"history_version_mapping_unavailable",exit_code:2,sources:["core/history/version-address.ts"]},{code:"history_version_pruned",exit_code:2,sources:["core/history/projection.ts"]},{code:"host_environment_capacity_fault",exit_code:1,sources:["core/fs/host-environment-errors.ts"]},{code:"host_environment_operation_invalid",exit_code:2,sources:["core/fs/host-environment-errors.ts"]},{code:"host_environment_permission_fault",exit_code:1,sources:["core/fs/host-environment-errors.ts"]},{code:"host_environment_resource_fault",exit_code:1,sources:["core/fs/host-environment-errors.ts"]},{code:"improvement_metric_contract_conflict",exit_code:4,sources:["sdk/improvement-ledger.ts"]},{code:"improvement_observation_conflict",exit_code:4,sources:["sdk/improvement-ledger.ts"]},{code:"incomplete_allowed_values",exit_code:1,sources:["sdk/agent/refusal-closure.ts"]},{code:"inconsistent_concept_kind",exit_code:1,sources:["sdk/cli-contracts/flag-lexicon-contracts.ts"]},{code:"init_existing_settings_requires_force",exit_code:2,stable:!0,sources:["sdk/init.ts"]},{code:"init_gitignore_unwritable",exit_code:1,stable:!0,sources:["sdk/workspace.ts"]},{code:"init_id_prefix_conflict",exit_code:2,stable:!0,sources:["sdk/init.ts"]},{code:"init_id_prefix_path_like",exit_code:2,stable:!0,sources:["sdk/init.ts"]},{code:"integrity_history_conflict_marker",exit_code:4,stable:!0,sources:["core/diagnostics/remediation.ts"],aliases:["validate_storage_history_conflict_markers"]},{code:"integrity_history_invalid_json",exit_code:2,stable:!0,sources:["core/diagnostics/remediation.ts"]},{code:"integrity_history_unreadable",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"]},{code:"integrity_item_ahead_format_version",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"],aliases:["validate_format_version_ahead_items"]},{code:"integrity_item_conflict_marker",exit_code:4,stable:!0,sources:["core/diagnostics/remediation.ts"]},{code:"integrity_item_outdated_format_version",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"],aliases:["validate_format_version_outdated_items"]},{code:"integrity_item_parse_failed",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"]},{code:"integrity_item_unreadable",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"]},{code:"invalid_argument_value",exit_code:2,stable:!0,sources:["cli/error-guidance.ts","core/item/priority.ts","core/telemetry/observability.ts","sdk/config.ts","sdk/context-intent-contracts.ts","sdk/dependencies.ts","sdk/governance/assurance-mutation-error.ts","sdk/lifecycle/create.ts","sdk/lifecycle/task-composition.ts","sdk/lifecycle/update-many.ts","sdk/lifecycle/update.ts","sdk/query/next.ts","sdk/runtime-input.ts","sdk/runtime/mutation-admission.ts","sdk/runtime/mutation-value-validation.ts","sdk/runtime/schema-preview.ts","sdk/workspace.ts"],emitting_commands:["*","create","next","task-composition","update","update-many"]},{code:"invalid_command_usage",exit_code:2,stable:!0,sources:["cli/error-guidance.ts","core/telemetry/observability.ts"]},{code:"invalid_event_cursor",exit_code:2,stable:!0,sources:["sdk/mutation-events.ts"]},{code:"invalid_event_cursor_mode",exit_code:2,sources:["cli/register-list-query.ts","sdk/mutation-events.ts","sdk/runtime-extended-actions.ts"]},{code:"invalid_event_follow_interval",exit_code:2,stable:!0,sources:["sdk/mutation-events.ts"]},{code:"invalid_event_limit",exit_code:2,stable:!0,sources:["sdk/mutation-events.ts"]},{code:"invalid_event_since",exit_code:2,stable:!0,sources:["sdk/mutation-events.ts"]},{code:"invalid_history_analytics_limit",exit_code:2,sources:["sdk/history-analytics.ts"]},{code:"invalid_history_analytics_minimum_sample",exit_code:2,sources:["sdk/history-analytics.ts"]},{code:"invalid_history_analytics_since",exit_code:2,sources:["sdk/history-analytics.ts"]},{code:"invalid_improvement_ledger",exit_code:1,sources:["sdk/improvement-ledger-validation.ts"]},{code:"invalid_improvement_metric",exit_code:2,sources:["sdk/improvement-ledger.ts"]},{code:"invalid_improvement_observation",exit_code:2,sources:["sdk/improvement-ledger.ts"]},{code:"invalid_improvement_observation_limit",exit_code:2,sources:["sdk/improvement-ledger.ts"]},{code:"invalid_improvement_observation_timestamp",exit_code:2,sources:["sdk/improvement-ledger.ts"]},{code:"invalid_provenance_predicate",exit_code:2,stable:!0,sources:["sdk/history-provenance.ts"]},{code:"invalid_query_cursor",exit_code:2,stable:!0,sources:["sdk/pagination.ts","sdk/query/window-pagination.ts"]},{code:"invalid_read_output_session",exit_code:2,sources:["sdk/read-output-session.ts"]},{code:"invalid_reproducible_process_environment",exit_code:2,sources:["sdk/reproducibility/process.ts"]},{code:"invalid_workspace_snapshot_target",exit_code:2,sources:["sdk/workspace-snapshot.ts"]},{code:"item_already_active",exit_code:4,sources:["sdk/lifecycle/update.ts"],emitting_commands:["update"]},{code:"item_already_exists",exit_code:4,stable:!0,sources:["sdk/lifecycle/create.ts"],emitting_commands:["create"]},{code:"item_deleted",exit_code:3,sources:["core/history/tombstone.ts"]},{code:"item_document_encoding_invalid",exit_code:4,sources:["core/store/item-store.ts"]},{code:"item_document_invalid",exit_code:1,stable:!0,sources:["core/item/item-format.ts"]},{code:"item_document_roundtrip_failed",exit_code:1,stable:!0,sources:["core/item/item-format.ts"]},{code:"item_format_version_unsupported",exit_code:4,sources:["core/item/item-format.ts"]},{code:"item_id_collision",exit_code:4,stable:!0,sources:["sdk/lifecycle/copy.ts"],emitting_commands:["copy"]},{code:"item_identity_ambiguous",exit_code:4,sources:["core/store/item-store.ts"]},{code:"item_identity_conflict",exit_code:4,sources:["sdk/governance/validate-history-drift.ts","sdk/lifecycle/item-revision.ts","sdk/merge/three-way.ts","sdk/query/declared-blockers.ts"]},{code:"item_identity_reserved",exit_code:4,sources:["core/history/history.ts"]},{code:"item_not_found",exit_code:3,stable:!0,sources:["cli/error-guidance.ts","core/store/item-store.ts","core/telemetry/observability.ts","sdk/governance/validate-history-drift.ts"]},{code:"item_revision_conflict",exit_code:4,sources:["core/store/item-mutation-precondition.ts"]},{code:"likely_duplicate",exit_code:4,stable:!0,sources:["sdk/similarity.ts"]},{code:"linked_artifact_mutation_conflict",exit_code:2,sources:["sdk/linked-artifacts.ts"]},{code:"linked_resource_positional_value",exit_code:2,sources:["cli/error-guidance.ts"]},{code:"linked_test_command_immutable",exit_code:2,sources:["sdk/test/update.ts"]},{code:"linked_test_command_not_executable",exit_code:2,sources:["sdk/test/entry.ts"]},{code:"linked_test_context_invalid",exit_code:2,sources:["sdk/test/entry.ts"]},{code:"linked_test_patch_fields_unsupported",exit_code:2,sources:["sdk/test/update.ts"]},{code:"linked_test_remove_no_match",exit_code:3,sources:["sdk/test/execution.ts"]},{code:"linked_test_update_ambiguous",exit_code:2,sources:["sdk/test/update.ts"]},{code:"linked_test_update_no_match",exit_code:3,sources:["sdk/test/update.ts"]},{code:"linked_test_value_not_quoted",exit_code:1,stable:!0,sources:["cli/error-guidance.ts"]},{code:"list_source_incomplete",exit_code:1,stable:!0,sources:["sdk/query/list.ts"],emitting_commands:["list"]},{code:"local_package_archive_unsafe",exit_code:2,stable:!0,sources:["sdk/extension/install-sources.ts"]},{code:"local_source_not_found_bare_name",exit_code:3,stable:!0,sources:["sdk/extension/install-sources.ts"]},{code:"lock_conflict",exit_code:4,stable:!0,sources:["cli/error-guidance.ts","core/lock/lock.ts","core/telemetry/observability.ts"]},{code:"lock_lost",exit_code:4,sources:["core/lock/lock.ts"]},{code:"lock_path_unsafe",exit_code:4,sources:["core/lock/lock-confinement.ts"]},{code:"locks_stale_count",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"]},{code:"locks_unreadable",exit_code:1,stable:!0,sources:["core/diagnostics/remediation.ts"]},{code:"malformed_plan_step_evidence",exit_code:2,stable:!0,sources:["sdk/lifecycle/plan.ts"],emitting_commands:["plan"]},{code:"managed_state_invalid",exit_code:2,sources:["sdk/extension/static-inventory.ts"]},{code:"managed_state_unreadable",exit_code:1,sources:["sdk/extension/static-inventory.ts"]},{code:"manifest_capabilities_absent",exit_code:1,stable:!0,sources:["sdk/compose.ts"]},{code:"manifest_invalid",exit_code:2,sources:["sdk/extension/static-inventory.ts"]},{code:"manifest_unknown_key",exit_code:1,sources:["core/extensions/manifest-schema.ts"],owned_states:[{state:"author_workspace_manifest_declares_an_unknown_top_level_key",probe_id:"author-manifest-unknown-key",entrypoints:["health"],expected_exit_class:"generic_failure"}]},{code:"manifest_unreadable",exit_code:1,sources:["sdk/extension/static-inventory.ts"]},{code:"mcp_annotation_file_unavailable",exit_code:2,sources:["sdk/runtime-input.ts"]},{code:"mcp_stdin_unavailable",exit_code:2,sources:["sdk/annotations.ts"]},{code:"mcp_task_not_found_or_not_authorized",exit_code:3,sources:["sdk/mcp/tasks.ts"]},{code:"merge_artifacts_ignored",exit_code:1,sources:["core/diagnostics/remediation.ts"]},{code:"merge_bun_launcher_unavailable",exit_code:5,sources:["sdk/merge/install.ts"]},{code:"merge_conflict_markers_detected",exit_code:1,stable:!0,sources:["core/item/item-format.ts"],aliases:["history_merge_conflict_markers_detected"]},{code:"merge_decisions_unreviewed",exit_code:1,sources:["core/diagnostics/remediation.ts"]},{code:"merge_driver_configuration_drift",exit_code:1,sources:["core/diagnostics/remediation.ts"]},{code:"merge_driver_configuration_missing",exit_code:1,sources:["core/diagnostics/remediation.ts"]},{code:"merge_fence_drift",exit_code:1,sources:["core/diagnostics/remediation.ts"]},{code:"merge_fence_missing",exit_code:1,sources:["core/diagnostics/remediation.ts"]},{code:"merge_git_config_unwritable",exit_code:5,stable:!0,sources:["sdk/merge/install.ts"]},{code:"merge_receipt_evidence_invalid",exit_code:4,sources:["core/diagnostics/remediation.ts","sdk/merge/reconcile.ts"]},{code:"merge_receipt_history_reference_missing",exit_code:1,sources:["core/diagnostics/remediation.ts"]},{code:"merge_receipt_not_portable",exit_code:4,sources:["sdk/merge/receipts.ts"]},{code:"merge_receipts_pending",exit_code:1,sources:["core/diagnostics/remediation.ts"]},{code:"merge_reconcile_receipt_evidence_untrusted",exit_code:4,sources:["sdk/history-repair.ts"]},{code:"merge_root_not_found",exit_code:3,stable:!0,sources:["sdk/merge/install.ts"]}];export{PM_ERROR_CODE_CATALOG_PART_1};
|
|
2
2
|
//# sourceMappingURL=generated-error-code-catalog-part-1.js.map
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Implements the pm health command surface and its agent-facing runtime behavior.
|
|
5
5
|
*/
|
|
6
6
|
import { projectHealthResult,summarizeExtensionList,summarizeHealthCheckDetails,summarizeRecordList,summarizeStringList } from "./health/projection.js";
|
|
7
|
+
import { redactTelemetryEndpoint } from "../../core/telemetry/policy.js";
|
|
7
8
|
import { resolveEmbeddingProviders } from "../../core/search/providers.js";
|
|
8
9
|
import { resolveSettingsWithSemanticRuntimeDefaults } from "../../core/search/semantic-defaults.js";
|
|
9
10
|
import { buildVectorizationEmbeddingIdentity } from "../../core/search/vectorization-metadata.js";
|
|
@@ -186,7 +187,6 @@ runtimeEmbeddingIdentity:ReturnType<typeof buildVectorizationEmbeddingIdentity>
|
|
|
186
187
|
semanticRuntimeAvailable:boolean;
|
|
187
188
|
}
|
|
188
189
|
declare function telemetryEnvFlagEnabled(envKey:"PM_TELEMETRY_DISABLED" | "PM_TELEMETRY_OTEL_DISABLED" | "PM_NO_TELEMETRY" | "PM_TELEMETRY_INLINE_FLUSH"):boolean;
|
|
189
|
-
declare function normalizeEndpointForDisplay(rawEndpoint:string):string;
|
|
190
190
|
declare function parseTelemetryQueue(raw:string):{
|
|
191
191
|
validEntries:number;
|
|
192
192
|
invalidRows:number;
|
|
@@ -236,7 +236,7 @@ isAdvisoryHealthWarning:typeof isAdvisoryHealthWarning;
|
|
|
236
236
|
isDirectory:typeof isDirectory;
|
|
237
237
|
isExpectedUnmanagedExtension:typeof isExpectedUnmanagedExtension;
|
|
238
238
|
listItemDocumentPaths:typeof listItemDocumentPaths;
|
|
239
|
-
normalizeEndpointForDisplay:typeof
|
|
239
|
+
normalizeEndpointForDisplay:typeof redactTelemetryEndpoint;
|
|
240
240
|
normalizeExtensionNameForMatch:typeof normalizeExtensionNameForMatch;
|
|
241
241
|
parseTelemetryQueue:typeof parseTelemetryQueue;
|
|
242
242
|
probeTelemetryEndpointHealth:typeof probeTelemetryEndpointHealth;
|