@unbrained/pm-cli 2026.5.2 → 2026.5.3-6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/AGENTS.md +8 -1
  2. package/CHANGELOG.md +58 -0
  3. package/README.md +9 -1
  4. package/dist/cli/bootstrap-args.d.ts +18 -0
  5. package/dist/cli/bootstrap-args.js +242 -0
  6. package/dist/cli/bootstrap-args.js.map +1 -0
  7. package/dist/cli/commander-usage.d.ts +17 -0
  8. package/dist/cli/commander-usage.js +178 -0
  9. package/dist/cli/commander-usage.js.map +1 -0
  10. package/dist/cli/commands/activity.js +1 -9
  11. package/dist/cli/commands/activity.js.map +1 -1
  12. package/dist/cli/commands/calendar.js +3 -29
  13. package/dist/cli/commands/calendar.js.map +1 -1
  14. package/dist/cli/commands/comments.js +1 -9
  15. package/dist/cli/commands/comments.js.map +1 -1
  16. package/dist/cli/commands/config.d.ts +21 -3
  17. package/dist/cli/commands/config.js +118 -2
  18. package/dist/cli/commands/config.js.map +1 -1
  19. package/dist/cli/commands/context.d.ts +90 -1
  20. package/dist/cli/commands/context.js +485 -23
  21. package/dist/cli/commands/context.js.map +1 -1
  22. package/dist/cli/commands/dedupe-audit.js +2 -11
  23. package/dist/cli/commands/dedupe-audit.js.map +1 -1
  24. package/dist/cli/commands/history.js +1 -9
  25. package/dist/cli/commands/history.js.map +1 -1
  26. package/dist/cli/commands/learnings.js +1 -9
  27. package/dist/cli/commands/learnings.js.map +1 -1
  28. package/dist/cli/commands/list.js +3 -29
  29. package/dist/cli/commands/list.js.map +1 -1
  30. package/dist/cli/commands/normalize.js +9 -6
  31. package/dist/cli/commands/normalize.js.map +1 -1
  32. package/dist/cli/commands/notes.js +1 -9
  33. package/dist/cli/commands/notes.js.map +1 -1
  34. package/dist/cli/commands/reindex.js +2 -7
  35. package/dist/cli/commands/reindex.js.map +1 -1
  36. package/dist/cli/commands/search.js +4 -35
  37. package/dist/cli/commands/search.js.map +1 -1
  38. package/dist/cli/commands/test-runs.js +1 -11
  39. package/dist/cli/commands/test-runs.js.map +1 -1
  40. package/dist/cli/error-guidance.d.ts +13 -0
  41. package/dist/cli/error-guidance.js +43 -4
  42. package/dist/cli/error-guidance.js.map +1 -1
  43. package/dist/cli/extension-command-help.d.ts +48 -0
  44. package/dist/cli/extension-command-help.js +389 -0
  45. package/dist/cli/extension-command-help.js.map +1 -0
  46. package/dist/cli/help-content.js +9 -3
  47. package/dist/cli/help-content.js.map +1 -1
  48. package/dist/cli/help-json-payload.d.ts +25 -0
  49. package/dist/cli/help-json-payload.js +265 -0
  50. package/dist/cli/help-json-payload.js.map +1 -0
  51. package/dist/cli/main.js +996 -4468
  52. package/dist/cli/main.js.map +1 -1
  53. package/dist/cli/migration-gates.d.ts +22 -0
  54. package/dist/cli/migration-gates.js +146 -0
  55. package/dist/cli/migration-gates.js.map +1 -0
  56. package/dist/cli/register-list-query.d.ts +2 -0
  57. package/dist/cli/register-list-query.js +317 -0
  58. package/dist/cli/register-list-query.js.map +1 -0
  59. package/dist/cli/register-mutation.d.ts +2 -0
  60. package/dist/cli/register-mutation.js +795 -0
  61. package/dist/cli/register-mutation.js.map +1 -0
  62. package/dist/cli/register-operations.d.ts +2 -0
  63. package/dist/cli/register-operations.js +610 -0
  64. package/dist/cli/register-operations.js.map +1 -0
  65. package/dist/cli/register-setup.d.ts +2 -0
  66. package/dist/cli/register-setup.js +334 -0
  67. package/dist/cli/register-setup.js.map +1 -0
  68. package/dist/cli/registration-helpers.d.ts +53 -0
  69. package/dist/cli/registration-helpers.js +669 -0
  70. package/dist/cli/registration-helpers.js.map +1 -0
  71. package/dist/cli/shared-parsers.d.ts +6 -0
  72. package/dist/cli/shared-parsers.js +40 -0
  73. package/dist/cli/shared-parsers.js.map +1 -0
  74. package/dist/core/search/http-client.d.ts +29 -0
  75. package/dist/core/search/http-client.js +64 -0
  76. package/dist/core/search/http-client.js.map +1 -0
  77. package/dist/core/search/providers.d.ts +3 -13
  78. package/dist/core/search/providers.js +19 -69
  79. package/dist/core/search/providers.js.map +1 -1
  80. package/dist/core/search/semantic-defaults.js +2 -7
  81. package/dist/core/search/semantic-defaults.js.map +1 -1
  82. package/dist/core/search/vector-stores.d.ts +3 -13
  83. package/dist/core/search/vector-stores.js +17 -66
  84. package/dist/core/search/vector-stores.js.map +1 -1
  85. package/dist/core/sentry/helpers.d.ts +23 -2
  86. package/dist/core/sentry/helpers.js +101 -3
  87. package/dist/core/sentry/helpers.js.map +1 -1
  88. package/dist/core/sentry/instrument.d.ts +21 -0
  89. package/dist/core/sentry/instrument.js +34 -3
  90. package/dist/core/sentry/instrument.js.map +1 -1
  91. package/dist/core/shared/constants.d.ts +3 -0
  92. package/dist/core/shared/constants.js +58 -1
  93. package/dist/core/shared/constants.js.map +1 -1
  94. package/dist/core/store/front-matter-cache.d.ts +6 -0
  95. package/dist/core/store/front-matter-cache.js +150 -0
  96. package/dist/core/store/front-matter-cache.js.map +1 -0
  97. package/dist/core/store/item-store.js +2 -1
  98. package/dist/core/store/item-store.js.map +1 -1
  99. package/dist/core/store/settings.js +36 -0
  100. package/dist/core/store/settings.js.map +1 -1
  101. package/dist/core/telemetry/observability.d.ts +24 -0
  102. package/dist/core/telemetry/observability.js +185 -0
  103. package/dist/core/telemetry/observability.js.map +1 -0
  104. package/dist/core/telemetry/runtime.d.ts +27 -3
  105. package/dist/core/telemetry/runtime.js +298 -13
  106. package/dist/core/telemetry/runtime.js.map +1 -1
  107. package/dist/sdk/cli-contracts.js +28 -0
  108. package/dist/sdk/cli-contracts.js.map +1 -1
  109. package/dist/types.d.ts +21 -0
  110. package/dist/types.js +11 -0
  111. package/dist/types.js.map +1 -1
  112. package/docs/ARCHITECTURE.md +7 -1
  113. package/docs/COMMANDS.md +11 -1
  114. package/docs/RELEASING.md +56 -29
  115. package/package.json +8 -3
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"/","sources":["cli/main.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { Command } from \"commander\";\nimport {\n runAggregate,\n runAppend,\n runActivity,\n runCalendar,\n runClaim,\n runClose,\n runComments,\n runCommentsAudit,\n runCompletion,\n runConfig,\n runContracts,\n runCreate,\n runDelete,\n runDedupeAudit,\n runDeps,\n runDocs,\n runExtension,\n runFiles,\n runFilesDiscover,\n runGet,\n runGc,\n runHealth,\n runHistory,\n runInit,\n runLearnings,\n runList,\n runNormalize,\n runNotes,\n runSearch,\n runReindex,\n runRestore,\n renderCalendarMarkdown,\n renderContextMarkdown,\n runRelease,\n resolveCalendarOutputFormat,\n resolveContextOutputFormat,\n runStats,\n runStartBackgroundRun,\n runTest,\n runTestAll,\n runTestRunsList,\n runTestRunsLogs,\n runTestRunsResume,\n runTestRunsStatus,\n runTestRunsStop,\n runTestRunsWorker,\n runTemplatesList,\n runTemplatesSave,\n runTemplatesShow,\n runUpdate,\n runUpdateMany,\n runValidate,\n type CalendarOptions,\n type ContextOptions,\n type CreateCommandOptions,\n type AggregateOptions,\n type DedupeAuditOptions,\n type ListOptions,\n runContext,\n} from \"./commands/index.js\";\nimport {\n activateExtensions,\n clearActiveExtensionHooks,\n createEmptyExtensionRegistrationRegistry,\n getActiveCommandResult,\n getActiveExtensionRegistrations,\n loadExtensions,\n runActiveCommandHandler,\n runActiveParserOverride,\n runActivePreflightOverride,\n runActiveServiceOverride,\n runAfterCommandHooks,\n runBeforeCommandHooks,\n setActiveCommandResult,\n setActiveCommandContext,\n setActiveExtensionCommands,\n setActiveExtensionHooks,\n setActiveExtensionParsers,\n setActiveExtensionPreflight,\n setActiveExtensionRegistrations,\n setActiveExtensionRenderers,\n setActiveExtensionServices,\n type ExtensionCommandRegistry,\n type ExtensionHookRegistry,\n type ExtensionParserRegistry,\n type ExtensionPreflightRegistry,\n type ExtensionServiceRegistry,\n type PreflightRuntimeDecision,\n type RegisteredExtensionCommandDefinition,\n type RegisteredExtensionFlagDefinitions,\n type RegisteredExtensionSchemaMigrationDefinition,\n type ExtensionRendererRegistry,\n} from \"../core/extensions/index.js\";\nimport { pathExists } from \"../core/fs/fs-utils.js\";\nimport {\n commandOptionFlagLabel,\n resolveCommandOptionPolicyState,\n resolveItemTypeRegistry,\n resolveTypeDefinition,\n} from \"../core/item/type-registry.js\";\nimport { normalizeStatusInput } from \"../core/item/status.js\";\nimport {\n resolveRuntimeFieldRegistry,\n resolveRuntimeStatusRegistry,\n type RuntimeFieldCommand,\n} from \"../core/schema/runtime-schema.js\";\nimport { refreshSearchArtifactsForMutation } from \"../core/search/cache.js\";\nimport { EXIT_CODE } from \"../core/shared/constants.js\";\nimport { PmCliError } from \"../core/shared/errors.js\";\nimport { toNonEmptyStringOrUndefined } from \"../core/shared/primitives.js\";\nimport { printError, printResult, writeStdout } from \"../core/output/output.js\";\nimport { maybeRunFirstUseTelemetryPrompt } from \"../core/telemetry/consent.js\";\nimport {\n finishTelemetryCommand,\n startTelemetryCommand,\n type ActiveTelemetryCommand,\n} from \"../core/telemetry/runtime.js\";\nimport {\n sentryCaptureCliError,\n sentryFinishCommandSpan,\n sentryFlush,\n sentrySetCommandContext,\n sentryStartCommandSpan,\n} from \"../core/sentry/helpers.js\";\nimport { migrateItemFilesToFormat } from \"../core/store/item-format-migration.js\";\nimport { listAllFrontMatter } from \"../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../core/store/paths.js\";\nimport { readSettings, readSettingsWithMetadata, writeSettings } from \"../core/store/settings.js\";\nimport type { GlobalOptions } from \"../core/shared/command-types.js\";\nimport type { ItemStatus, PmSettings } from \"../types/index.js\";\nimport { BUILTIN_ITEM_TYPE_VALUES } from \"../types/index.js\";\nimport { coerceLooseCommandOptionsWithFlagDefinitions, parseLooseCommandOptions } from \"./extension-command-options.js\";\nimport { attachRichHelpText, normalizeHelpCommandPath, resolveHelpDetailMode, resolveHelpNarrative } from \"./help-content.js\";\nimport {\n type CommanderGuidanceContext,\n formatCommanderErrorForDisplay,\n formatCommanderErrorForJson,\n formatPmCliErrorForDisplay,\n formatPmCliErrorForJson,\n formatUnknownErrorForJson,\n} from \"./error-guidance.js\";\nimport {\n CALENDAR_COMMANDER_STRING_OPTION_CONTRACTS,\n ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS,\n CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS,\n CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,\n CREATE_COMMANDER_STRING_OPTION_CONTRACTS,\n LIST_COMMANDER_STRING_OPTION_CONTRACTS,\n SEARCH_COMMANDER_STRING_OPTION_CONTRACTS,\n UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,\n UPDATE_COMMANDER_STRING_OPTION_CONTRACTS,\n readFirstStringFromCommanderOptions,\n readStringArrayFromCommanderOptions,\n} from \"../sdk/cli-contracts.js\";\n\nconst PM_PACKAGE_ROOT_ENV = \"PM_CLI_PACKAGE_ROOT\";\n\nfunction resolvePmPackageRoot(): string {\n const mainPath = fileURLToPath(import.meta.url);\n return path.resolve(path.dirname(mainPath), \"../..\");\n}\n\nif (typeof process.env[PM_PACKAGE_ROOT_ENV] !== \"string\" || process.env[PM_PACKAGE_ROOT_ENV]?.trim().length === 0) {\n process.env[PM_PACKAGE_ROOT_ENV] = resolvePmPackageRoot();\n}\n\nfunction collect(value: string, previous: string[] | undefined): string[] {\n const next = previous ?? [];\n next.push(value);\n return next;\n}\n\nfunction pushOptionalValueFlag(args: string[], flag: string, value: unknown): void {\n if (typeof value !== \"string\") {\n return;\n }\n const trimmed = value.trim();\n if (trimmed.length === 0) {\n return;\n }\n args.push(flag, trimmed);\n}\n\nfunction pushOptionalBooleanFlag(args: string[], flag: string, value: unknown): void {\n if (value === true) {\n args.push(flag);\n }\n}\n\nfunction pushRepeatableValueFlag(args: string[], flag: string, values: unknown): void {\n if (!Array.isArray(values)) {\n return;\n }\n for (const value of values) {\n if (typeof value !== \"string\") {\n continue;\n }\n const trimmed = value.trim();\n if (trimmed.length === 0) {\n continue;\n }\n args.push(flag, trimmed);\n }\n}\n\nfunction buildBackgroundTestCommandArgs(id: string, options: Record<string, unknown>): string[] {\n const args: string[] = [\"test\", id, \"--run\", \"--json\", \"--progress\"];\n pushRepeatableValueFlag(args, \"--add\", options.add);\n pushRepeatableValueFlag(args, \"--remove\", options.remove);\n pushOptionalValueFlag(args, \"--timeout\", options.timeout);\n pushRepeatableValueFlag(args, \"--env-set\", options.envSet);\n pushRepeatableValueFlag(args, \"--env-clear\", options.envClear);\n pushOptionalBooleanFlag(args, \"--shared-host-safe\", options.sharedHostSafe);\n pushOptionalValueFlag(args, \"--pm-context\", options.pmContext);\n pushOptionalBooleanFlag(args, \"--override-linked-pm-context\", options.overrideLinkedPmContext);\n pushOptionalBooleanFlag(args, \"--fail-on-context-mismatch\", options.failOnContextMismatch);\n pushOptionalBooleanFlag(args, \"--fail-on-skipped\", options.failOnSkipped);\n pushOptionalBooleanFlag(args, \"--fail-on-empty-test-run\", options.failOnEmptyTestRun);\n pushOptionalBooleanFlag(args, \"--require-assertions-for-pm\", options.requireAssertionsForPm);\n pushOptionalBooleanFlag(args, \"--check-context\", options.checkContext);\n pushOptionalBooleanFlag(args, \"--auto-pm-context\", options.autoPmContext);\n pushOptionalValueFlag(args, \"--author\", options.author);\n pushOptionalValueFlag(args, \"--message\", options.message);\n pushOptionalBooleanFlag(args, \"--force\", options.force);\n return args;\n}\n\nfunction buildBackgroundTestAllCommandArgs(options: Record<string, unknown>): string[] {\n const args: string[] = [\"test-all\", \"--json\", \"--progress\"];\n pushOptionalValueFlag(args, \"--status\", options.status);\n pushOptionalValueFlag(args, \"--limit\", options.limit);\n pushOptionalValueFlag(args, \"--offset\", options.offset);\n pushOptionalValueFlag(args, \"--timeout\", options.timeout);\n pushRepeatableValueFlag(args, \"--env-set\", options.envSet);\n pushRepeatableValueFlag(args, \"--env-clear\", options.envClear);\n pushOptionalBooleanFlag(args, \"--shared-host-safe\", options.sharedHostSafe);\n pushOptionalValueFlag(args, \"--pm-context\", options.pmContext);\n pushOptionalBooleanFlag(args, \"--override-linked-pm-context\", options.overrideLinkedPmContext);\n pushOptionalBooleanFlag(args, \"--fail-on-context-mismatch\", options.failOnContextMismatch);\n pushOptionalBooleanFlag(args, \"--fail-on-skipped\", options.failOnSkipped);\n pushOptionalBooleanFlag(args, \"--fail-on-empty-test-run\", options.failOnEmptyTestRun);\n pushOptionalBooleanFlag(args, \"--require-assertions-for-pm\", options.requireAssertionsForPm);\n pushOptionalBooleanFlag(args, \"--check-context\", options.checkContext);\n pushOptionalBooleanFlag(args, \"--auto-pm-context\", options.autoPmContext);\n return args;\n}\n\nconst RESOLVED_GLOBAL_OPTIONS = Symbol(\"pm.resolvedGlobalOptions\");\n\ntype CommandWithResolvedGlobals = Command & {\n [RESOLVED_GLOBAL_OPTIONS]?: GlobalOptions;\n};\n\nfunction setResolvedGlobalOptions(command: Command, globalOptions: GlobalOptions): void {\n (command as CommandWithResolvedGlobals)[RESOLVED_GLOBAL_OPTIONS] = { ...globalOptions };\n}\n\nfunction clearResolvedGlobalOptions(command: Command): void {\n delete (command as CommandWithResolvedGlobals)[RESOLVED_GLOBAL_OPTIONS];\n}\n\nasync function applyDefaultOutputFormat(globalOptions: GlobalOptions): Promise<GlobalOptions> {\n if (globalOptions.json === true) {\n return globalOptions;\n }\n const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n return globalOptions;\n }\n const settings = await readSettings(pmRoot);\n return {\n ...globalOptions,\n defaultOutputFormat: settings.output.default_format,\n };\n}\n\nfunction getGlobalOptions(command: Command): GlobalOptions {\n const resolved = (command as CommandWithResolvedGlobals)[RESOLVED_GLOBAL_OPTIONS];\n if (resolved) {\n return { ...resolved };\n }\n const opts = command.optsWithGlobals();\n return {\n json: opts.json === true ? true : undefined,\n quiet: Boolean(opts.quiet),\n path: typeof opts.path === \"string\" ? opts.path : undefined,\n noExtensions: opts.extensions === false,\n noPager: Boolean(opts.noPager),\n profile: Boolean(opts.profile),\n };\n}\n\nfunction getCommandPath(command: Command): string {\n const parts: string[] = [];\n let current: Command | null = command;\n while (current?.parent) {\n parts.unshift(current.name());\n current = current.parent;\n }\n return parts.join(\" \");\n}\n\nfunction normalizeExtensionCommandPath(commandPath: string): string {\n return commandPath\n .trim()\n .toLowerCase()\n .split(/\\s+/)\n .filter((part) => part.length > 0)\n .join(\" \");\n}\n\nfunction toNonEmptyFlagString(value: unknown): string | null {\n if (typeof value !== \"string\") {\n return null;\n }\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : null;\n}\n\nfunction toOptionalBoolean(value: unknown): boolean | undefined {\n return typeof value === \"boolean\" ? value : undefined;\n}\n\nfunction formatDynamicExtensionFlagHelpLine(definition: Record<string, unknown>): string | null {\n const visible = toOptionalBoolean(definition.visible);\n if (visible === false) {\n return null;\n }\n const longName = toNonEmptyFlagString(definition.long);\n if (!longName || !longName.startsWith(\"--\") || longName.length < 3) {\n return null;\n }\n\n const shortName = toNonEmptyFlagString(definition.short);\n const shortPrefix = shortName && shortName.startsWith(\"-\") && !shortName.startsWith(\"--\") ? `${shortName}, ` : \"\";\n const valueName = toNonEmptyFlagString(definition.value_name);\n const valueSuffix = valueName ? ` <${valueName}>` : \"\";\n const description = toNonEmptyFlagString(definition.description) ?? \"Extension-provided option.\";\n const markers: string[] = [];\n if (toOptionalBoolean(definition.required) === true) {\n markers.push(\"required\");\n }\n if (toOptionalBoolean(definition.enabled) === false) {\n markers.push(\"disabled\");\n }\n const markerSuffix = markers.length > 0 ? ` [${markers.join(\", \")}]` : \"\";\n return `${shortPrefix}${longName}${valueSuffix} ${description}${markerSuffix}`;\n}\n\nfunction buildDynamicExtensionFlagHelp(definitions: Array<Record<string, unknown>>): string | null {\n const lines = [\n ...new Set(\n definitions\n .map(formatDynamicExtensionFlagHelpLine)\n .filter((line): line is string => line !== null),\n ),\n ].sort((left, right) => left.localeCompare(right));\n if (lines.length === 0) {\n return null;\n }\n return `\\nExtension-provided flags:\\n ${lines.join(\"\\n \")}`;\n}\n\nfunction collectDynamicExtensionFlagHelpByCommand(\n registrations: RegisteredExtensionFlagDefinitions[],\n): Map<string, string> {\n const grouped = new Map<string, Array<Record<string, unknown>>>();\n for (const registration of registrations) {\n const commandPath = normalizeExtensionCommandPath(registration.target_command);\n if (commandPath.length === 0) {\n continue;\n }\n const existing = grouped.get(commandPath) ?? [];\n existing.push(...registration.flags);\n grouped.set(commandPath, existing);\n }\n\n const entries = [...grouped.entries()].sort(([left], [right]) => left.localeCompare(right));\n const helpByCommand = new Map<string, string>();\n for (const [commandPath, definitions] of entries) {\n const helpText = buildDynamicExtensionFlagHelp(definitions);\n if (!helpText) {\n continue;\n }\n helpByCommand.set(commandPath, helpText);\n }\n return helpByCommand;\n}\n\ninterface ExtensionCommandArgumentHelpDescriptor {\n name: string;\n required: boolean;\n variadic: boolean;\n description?: string;\n}\n\ninterface ExtensionCommandHelpDescriptor {\n command: string;\n action: string;\n description?: string;\n intent?: string;\n examples: string[];\n failure_hints: string[];\n arguments: ExtensionCommandArgumentHelpDescriptor[];\n flags: Array<Record<string, unknown>>;\n source?: {\n layer: \"global\" | \"project\";\n name: string;\n };\n}\n\nfunction normalizeExtensionCommandAction(commandPath: string, action: string | undefined): string {\n if (typeof action !== \"string\" || action.trim().length === 0) {\n return commandPath.replace(/\\s+/g, \"-\");\n }\n return action.trim().toLowerCase();\n}\n\nfunction normalizeExtensionCommandStringList(values: string[] | undefined): string[] {\n if (!Array.isArray(values)) {\n return [];\n }\n const normalized: string[] = [];\n const seen = new Set<string>();\n for (const value of values) {\n if (typeof value !== \"string\") {\n continue;\n }\n const trimmed = value.trim();\n if (trimmed.length === 0 || seen.has(trimmed)) {\n continue;\n }\n seen.add(trimmed);\n normalized.push(trimmed);\n }\n return normalized;\n}\n\nfunction normalizeExtensionCommandArguments(\n values: Array<{ name?: unknown; required?: unknown; variadic?: unknown; description?: unknown }> | undefined,\n): ExtensionCommandArgumentHelpDescriptor[] {\n if (!Array.isArray(values)) {\n return [];\n }\n return values\n .map((value) => {\n const name = typeof value.name === \"string\" ? value.name.trim() : \"\";\n if (name.length === 0) {\n return null;\n }\n const normalized: ExtensionCommandArgumentHelpDescriptor = {\n name,\n required: value.required === true,\n variadic: value.variadic === true,\n };\n if (typeof value.description === \"string\" && value.description.trim().length > 0) {\n normalized.description = value.description.trim();\n }\n return normalized;\n })\n .filter((entry): entry is ExtensionCommandArgumentHelpDescriptor => entry !== null);\n}\n\nfunction collectExtensionCommandHelpDescriptors(\n commandHandlers: string[],\n commandDefinitions: RegisteredExtensionCommandDefinition[],\n flagRegistrations: RegisteredExtensionFlagDefinitions[],\n): Map<string, ExtensionCommandHelpDescriptor> {\n const definitionsByCommand = new Map<string, ExtensionCommandHelpDescriptor>();\n for (const definition of commandDefinitions) {\n const commandPath = normalizeExtensionCommandPath(definition.command);\n if (commandPath.length === 0) {\n continue;\n }\n const description =\n typeof definition.description === \"string\" && definition.description.trim().length > 0\n ? definition.description.trim()\n : undefined;\n const intent =\n typeof definition.intent === \"string\" && definition.intent.trim().length > 0\n ? definition.intent.trim()\n : undefined;\n definitionsByCommand.set(commandPath, {\n command: commandPath,\n action: normalizeExtensionCommandAction(commandPath, definition.action),\n description,\n intent,\n examples: normalizeExtensionCommandStringList(definition.examples),\n failure_hints: normalizeExtensionCommandStringList(definition.failure_hints),\n arguments: normalizeExtensionCommandArguments(definition.arguments),\n flags: [],\n source: {\n layer: definition.layer,\n name: definition.name,\n },\n });\n }\n\n const flagsByCommand = new Map<string, Array<Record<string, unknown>>>();\n for (const registration of flagRegistrations) {\n const commandPath = normalizeExtensionCommandPath(registration.target_command);\n if (commandPath.length === 0) {\n continue;\n }\n const existing = flagsByCommand.get(commandPath) ?? [];\n existing.push(...registration.flags);\n flagsByCommand.set(commandPath, existing);\n }\n\n const commandSet = new Set<string>();\n for (const commandPath of commandHandlers) {\n const normalized = normalizeExtensionCommandPath(commandPath);\n if (normalized.length > 0) {\n commandSet.add(normalized);\n }\n }\n for (const commandPath of definitionsByCommand.keys()) {\n commandSet.add(commandPath);\n }\n for (const commandPath of flagsByCommand.keys()) {\n commandSet.add(commandPath);\n }\n\n const descriptors = new Map<string, ExtensionCommandHelpDescriptor>();\n const sortedCommands = [...commandSet].sort((left, right) => left.localeCompare(right));\n for (const commandPath of sortedCommands) {\n const definition = definitionsByCommand.get(commandPath);\n const flags = flagsByCommand.get(commandPath) ?? [];\n if (definition) {\n descriptors.set(commandPath, {\n ...definition,\n flags,\n });\n continue;\n }\n descriptors.set(commandPath, {\n command: commandPath,\n action: normalizeExtensionCommandAction(commandPath, undefined),\n examples: [],\n failure_hints: [],\n arguments: [],\n flags,\n });\n }\n\n return descriptors;\n}\n\nfunction buildExtensionArgumentToken(argument: ExtensionCommandArgumentHelpDescriptor): string {\n const variadicSuffix = argument.variadic ? \"...\" : \"\";\n if (argument.required) {\n return `<${argument.name}${variadicSuffix}>`;\n }\n return `[${argument.name}${variadicSuffix}]`;\n}\n\nfunction applyDynamicExtensionArguments(command: Command, descriptor: ExtensionCommandHelpDescriptor): void {\n for (const argument of descriptor.arguments) {\n command.argument(buildExtensionArgumentToken(argument), argument.description ?? \"Extension argument.\");\n }\n}\n\nfunction formatDynamicExtensionOptionFlags(definition: Record<string, unknown>): string | null {\n const visible = toOptionalBoolean(definition.visible);\n if (visible === false) {\n return null;\n }\n const longName = toNonEmptyFlagString(definition.long);\n const shortName = toNonEmptyFlagString(definition.short);\n const normalizedShort = shortName && shortName.startsWith(\"-\") && !shortName.startsWith(\"--\") ? shortName : null;\n const normalizedLong = longName && longName.startsWith(\"--\") && longName.length > 2 ? longName : null;\n if (!normalizedLong && !normalizedShort) {\n return null;\n }\n const optionValueName = toNonEmptyFlagString(definition.value_name);\n const optionValueSuffix = optionValueName ? ` <${optionValueName}>` : \"\";\n const optionNames = [normalizedShort, normalizedLong].filter((entry): entry is string => entry !== null);\n return `${optionNames.join(\", \")}${optionValueSuffix}`;\n}\n\nfunction formatDynamicExtensionOptionDescription(definition: Record<string, unknown>): string {\n const description = toNonEmptyFlagString(definition.description) ?? \"Extension-provided option.\";\n const markers: string[] = [];\n if (toOptionalBoolean(definition.required) === true) {\n markers.push(\"required\");\n }\n if (toOptionalBoolean(definition.enabled) === false) {\n markers.push(\"disabled\");\n }\n const markerSuffix = markers.length > 0 ? ` [${markers.join(\", \")}]` : \"\";\n return `${description}${markerSuffix}`;\n}\n\nfunction applyDynamicExtensionOptions(command: Command, descriptor: ExtensionCommandHelpDescriptor): void {\n const seen = new Set<string>();\n for (const definition of descriptor.flags) {\n const optionFlags = formatDynamicExtensionOptionFlags(definition);\n if (!optionFlags || seen.has(optionFlags)) {\n continue;\n }\n seen.add(optionFlags);\n command.option(optionFlags, formatDynamicExtensionOptionDescription(definition));\n }\n}\n\nfunction buildDynamicExtensionHelpOptionSummary(definition: Record<string, unknown>): HelpOptionSummary | null {\n const flags = formatDynamicExtensionOptionFlags(definition);\n if (!flags) {\n return null;\n }\n const longName = toNonEmptyFlagString(definition.long);\n const shortName = toNonEmptyFlagString(definition.short);\n const normalizedLong = longName && longName.startsWith(\"--\") && longName.length > 2 ? longName : null;\n const normalizedShort = shortName && shortName.startsWith(\"-\") && !shortName.startsWith(\"--\") ? shortName : null;\n const valueName = toNonEmptyFlagString(definition.value_name);\n const required = toOptionalBoolean(definition.required) === true;\n return {\n flags,\n long: normalizedLong,\n short: normalizedShort,\n description: formatDynamicExtensionOptionDescription(definition),\n takes_value: valueName !== null,\n value_required: valueName !== null,\n value_name: valueName,\n variadic: false,\n required,\n aliases: [],\n alias_for: null,\n };\n}\n\nfunction buildDynamicExtensionHelpOptionSummaries(descriptor: ExtensionCommandHelpDescriptor | undefined): HelpOptionSummary[] {\n if (!descriptor) {\n return [];\n }\n const summaries: HelpOptionSummary[] = [];\n const seen = new Set<string>();\n for (const definition of descriptor.flags) {\n const summary = buildDynamicExtensionHelpOptionSummary(definition);\n if (!summary || seen.has(summary.flags)) {\n continue;\n }\n seen.add(summary.flags);\n summaries.push(summary);\n }\n return summaries;\n}\n\nfunction mergeHelpOptionSummaries(base: HelpOptionSummary[], extension: HelpOptionSummary[]): HelpOptionSummary[] {\n if (extension.length === 0) {\n return base;\n }\n const merged = [...base];\n const seen = new Set(base.map((entry) => entry.flags));\n for (const entry of extension) {\n if (seen.has(entry.flags)) {\n continue;\n }\n seen.add(entry.flags);\n merged.push(entry);\n }\n return merged;\n}\n\nfunction buildDynamicExtensionCommandMetadataHelp(descriptor: ExtensionCommandHelpDescriptor): string | null {\n const lines: string[] = [];\n if (descriptor.intent) {\n lines.push(`Intent: ${descriptor.intent}`);\n }\n if (descriptor.action) {\n lines.push(`Action contract: ${descriptor.action}`);\n }\n if (descriptor.examples.length > 0) {\n lines.push(\"Examples:\");\n for (const example of descriptor.examples) {\n lines.push(` - ${example}`);\n }\n }\n if (descriptor.failure_hints.length > 0) {\n lines.push(\"Common failure hints:\");\n for (const hint of descriptor.failure_hints) {\n lines.push(` - ${hint}`);\n }\n }\n if (lines.length === 0) {\n return null;\n }\n return `\\nExtension command metadata:\\n ${lines.join(\"\\n \")}`;\n}\n\nfunction commandAliases(command: Command): string[] {\n const commandRecord = command as unknown as {\n aliases?: () => string[];\n alias?: () => string | undefined;\n _aliases?: string[];\n };\n if (typeof commandRecord.aliases === \"function\") {\n return commandRecord.aliases().map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0);\n }\n if (typeof commandRecord.alias === \"function\") {\n const alias = commandRecord.alias();\n if (typeof alias === \"string\" && alias.trim().length > 0) {\n return [alias.trim().toLowerCase()];\n }\n }\n if (Array.isArray(commandRecord._aliases)) {\n return commandRecord._aliases.map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0);\n }\n return [];\n}\n\nfunction findDirectChildCommand(parent: Command, name: string): Command | null {\n const normalizedTarget = name.trim().toLowerCase();\n return (\n parent.commands.find((entry) => {\n if (entry.name().trim().toLowerCase() === normalizedTarget) {\n return true;\n }\n return commandAliases(entry).includes(normalizedTarget);\n }) ?? null\n );\n}\n\nfunction findCommandByPath(root: Command, pathParts: string[]): Command | null {\n let current: Command = root;\n for (const part of pathParts) {\n const next = findDirectChildCommand(current, part);\n if (!next) {\n return null;\n }\n current = next;\n }\n return current;\n}\n\nfunction ensureCommandPath(root: Command, pathParts: string[]): Command | null {\n if (pathParts.length === 0) {\n return null;\n }\n\n let current: Command = root;\n for (let index = 0; index < pathParts.length; index += 1) {\n const part = pathParts[index];\n const existing = findDirectChildCommand(current, part);\n if (existing) {\n current = existing;\n continue;\n }\n\n const created = current.command(part);\n if (index < pathParts.length - 1) {\n created.description(\"Extension-provided command group.\");\n } else {\n created.description(\"Extension-provided command path.\");\n }\n current = created;\n }\n\n return current;\n}\n\nfunction parseBootstrapPathToken(\n token: string,\n next: string | undefined,\n): { consumed: number; pathValue?: string } | null {\n if (token === \"--path\") {\n if (typeof next === \"string\" && next.length > 0) {\n return {\n consumed: 2,\n pathValue: next,\n };\n }\n return {\n consumed: 1,\n };\n }\n\n if (!token.startsWith(\"--path=\")) {\n return null;\n }\n\n const value = token.slice(\"--path=\".length);\n if (value.length > 0) {\n return {\n consumed: 1,\n pathValue: value,\n };\n }\n return {\n consumed: 1,\n };\n}\n\ninterface BootstrapGlobalOptions {\n path?: string;\n noExtensions: boolean;\n noPager: boolean;\n json: boolean;\n quiet: boolean;\n}\n\nfunction parseBootstrapGlobalOptions(argv: string[]): BootstrapGlobalOptions {\n let pathValue: string | undefined;\n let noExtensions = false;\n let noPager = false;\n let json = false;\n let quiet = false;\n let index = 0;\n while (index < argv.length) {\n const token = argv[index];\n if (token === \"--\") {\n break;\n }\n if (token === \"--no-extensions\") {\n noExtensions = true;\n index += 1;\n continue;\n }\n if (token === \"--no-pager\") {\n noPager = true;\n index += 1;\n continue;\n }\n if (token === \"--json\") {\n json = true;\n index += 1;\n continue;\n }\n if (token === \"--quiet\") {\n quiet = true;\n index += 1;\n continue;\n }\n const parsedPath = parseBootstrapPathToken(token, argv[index + 1]);\n if (parsedPath) {\n if (parsedPath.pathValue !== undefined) {\n pathValue = parsedPath.pathValue;\n }\n index += parsedPath.consumed;\n continue;\n }\n index += 1;\n }\n return {\n path: pathValue,\n noExtensions,\n noPager,\n json,\n quiet,\n };\n}\n\nfunction stripGlobalBootstrapTokens(argv: string[]): string[] {\n const remaining: string[] = [];\n let index = 0;\n while (index < argv.length) {\n const token = argv[index];\n if (token === \"--\") {\n break;\n }\n if (\n token === \"--json\" ||\n token === \"--quiet\" ||\n token === \"--no-extensions\" ||\n token === \"--no-pager\" ||\n token === \"--profile\" ||\n token === \"--explain\"\n ) {\n index += 1;\n continue;\n }\n if (token === \"--path\") {\n index += 2;\n continue;\n }\n if (token.startsWith(\"--path=\")) {\n index += 1;\n continue;\n }\n remaining.push(token);\n index += 1;\n }\n return remaining;\n}\n\nfunction shouldDisablePagerForInvocation(argv: string[], bootstrapGlobal: BootstrapGlobalOptions): boolean {\n if (bootstrapGlobal.noPager) {\n return true;\n }\n if (process.stdout.isTTY === true) {\n return false;\n }\n const helpRequest = parseBootstrapHelpRequest(argv);\n return helpRequest.requested;\n}\n\nfunction applyBootstrapPagerPolicy(argv: string[]): void {\n const bootstrapGlobal = parseBootstrapGlobalOptions(argv);\n if (!shouldDisablePagerForInvocation(argv, bootstrapGlobal)) {\n return;\n }\n process.env.PAGER = \"cat\";\n process.env.MANPAGER = \"cat\";\n process.env.GIT_PAGER = \"cat\";\n if (typeof process.env.LESS !== \"string\" || process.env.LESS.trim().length === 0) {\n process.env.LESS = \"FRX\";\n }\n}\n\ninterface BootstrapHelpRequest {\n requested: boolean;\n commandPathTokens: string[];\n}\n\nfunction parseBootstrapHelpRequest(argv: string[]): BootstrapHelpRequest {\n const stripped = stripGlobalBootstrapTokens(argv);\n const first = stripped[0]?.trim().toLowerCase();\n if (first === \"help\") {\n const commandPathTokens: string[] = [];\n for (let index = 1; index < stripped.length; index += 1) {\n const token = stripped[index];\n if (token.startsWith(\"-\")) {\n break;\n }\n commandPathTokens.push(token.trim().toLowerCase());\n }\n return {\n requested: true,\n commandPathTokens,\n };\n }\n\n const helpFlagIndex = stripped.findIndex((token) => token === \"--help\" || token === \"-h\");\n if (helpFlagIndex < 0) {\n return {\n requested: false,\n commandPathTokens: [],\n };\n }\n\n const commandPathTokens: string[] = [];\n for (const token of stripped) {\n if (token.startsWith(\"-\")) {\n break;\n }\n commandPathTokens.push(token.trim().toLowerCase());\n }\n return {\n requested: true,\n commandPathTokens,\n };\n}\n\nfunction parseBootstrapCommandName(argv: string[]): string | undefined {\n for (let index = 0; index < argv.length; index += 1) {\n const token = argv[index];\n if (token === \"--\") {\n break;\n }\n if (token === \"--path\") {\n index += 1;\n continue;\n }\n if (\n token.startsWith(\"--path=\") ||\n token === \"--json\" ||\n token === \"--quiet\" ||\n token === \"--no-extensions\" ||\n token === \"--no-pager\" ||\n token === \"--profile\" ||\n token === \"--explain\"\n ) {\n continue;\n }\n if (token.startsWith(\"-\")) {\n continue;\n }\n return token.trim().toLowerCase();\n }\n return undefined;\n}\n\nconst EXTENSION_ACTION_SYNTAX_TOKENS = new Set<ExtensionSubcommandAction>([\n \"install\",\n \"uninstall\",\n \"explore\",\n \"manage\",\n \"doctor\",\n \"adopt\",\n \"adopt-all\",\n \"activate\",\n \"deactivate\",\n]);\n\nfunction normalizeLegacyExtensionActionSyntax(argv: string[]): string[] {\n const extensionIndex = argv.findIndex((token) => token === \"extension\");\n if (extensionIndex < 0) {\n return [...argv];\n }\n const actionToken = argv[extensionIndex + 1];\n if (!actionToken || actionToken.startsWith(\"-\")) {\n return [...argv];\n }\n if (!EXTENSION_ACTION_SYNTAX_TOKENS.has(actionToken as ExtensionSubcommandAction)) {\n return [...argv];\n }\n if (argv.includes(\"--help\") || argv.includes(\"-h\")) {\n return [...argv];\n }\n const forcedActionFlag = `--${actionToken}`;\n if (argv.includes(forcedActionFlag)) {\n return [...argv];\n }\n return [...argv.slice(0, extensionIndex + 1), forcedActionFlag, ...argv.slice(extensionIndex + 2)];\n}\n\ninterface HelpArgumentSummary {\n name: string;\n required: boolean;\n variadic: boolean;\n description: string | null;\n}\n\ninterface HelpOptionSummary {\n flags: string;\n long: string | null;\n short: string | null;\n description: string;\n takes_value: boolean;\n value_required: boolean;\n value_name: string | null;\n variadic: boolean;\n required: boolean;\n aliases: string[];\n alias_for: string | null;\n default_value?: unknown;\n}\n\ninterface HelpSubcommandSummary {\n name: string;\n aliases: string[];\n description: string;\n}\n\nconst BUILTIN_TYPE_HELP_VALUES = BUILTIN_ITEM_TYPE_VALUES.join(\"|\");\n\nfunction resolveCommandFromPathTokens(root: Command, pathTokens: string[]): Command | null {\n if (pathTokens.length === 0) {\n return root;\n }\n return findCommandByPath(root, pathTokens);\n}\n\nfunction extractOptionValueName(flags: string): string | null {\n const match = flags.match(/[<[]([^>\\]]+)[>\\]]/);\n if (!match) {\n return null;\n }\n const value = match[1]?.trim();\n return value && value.length > 0 ? value : null;\n}\n\nfunction readOptionAttributeName(option: unknown): string | null {\n const optionRecord = option as {\n attributeName?: (() => string) | string;\n };\n if (typeof optionRecord.attributeName === \"function\") {\n const value = optionRecord.attributeName();\n return typeof value === \"string\" && value.trim().length > 0 ? value.trim() : null;\n }\n if (typeof optionRecord.attributeName === \"string\" && optionRecord.attributeName.trim().length > 0) {\n return optionRecord.attributeName.trim();\n }\n return null;\n}\n\nfunction buildOptionAliasMap(options: unknown[]): Map<string, string[]> {\n const aliasMap = new Map<string, string[]>();\n for (const option of options) {\n const optionRecord = option as {\n long?: string;\n };\n const attributeName = readOptionAttributeName(option);\n if (!attributeName || typeof optionRecord.long !== \"string\" || optionRecord.long.trim().length === 0) {\n continue;\n }\n const existing = aliasMap.get(attributeName) ?? [];\n existing.push(optionRecord.long.trim());\n aliasMap.set(attributeName, existing);\n }\n for (const [attributeName, values] of aliasMap.entries()) {\n aliasMap.set(\n attributeName,\n [...new Set(values.map((value) => value.trim()).filter((value) => value.length > 0))].sort((left, right) =>\n left.localeCompare(right),\n ),\n );\n }\n return aliasMap;\n}\n\nfunction buildHelpOptionSummaries(command: Command): HelpOptionSummary[] {\n const options = (command.options ?? []) as unknown[];\n const optionAliasMap = buildOptionAliasMap(options);\n return options.map((option) => {\n const optionRecord = option as {\n flags?: string;\n long?: string;\n short?: string;\n description?: string;\n mandatory?: boolean;\n variadic?: boolean;\n defaultValue?: unknown;\n };\n const flags = typeof optionRecord.flags === \"string\" ? optionRecord.flags.trim() : \"\";\n const description = typeof optionRecord.description === \"string\" ? optionRecord.description.trim() : \"\";\n const attributeName = readOptionAttributeName(option);\n const aliasCandidates = attributeName ? optionAliasMap.get(attributeName) ?? [] : [];\n const aliases = aliasCandidates\n .filter((entry) => entry !== optionRecord.long)\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0);\n const aliasForMatch = description.match(/^Alias for ([^ ]+)/i);\n const aliasFor = aliasForMatch && aliasForMatch[1] ? aliasForMatch[1].trim() : null;\n const required =\n optionRecord.mandatory === true || description.includes(\"[required]\") || description.toLowerCase().includes(\"required;\");\n const valueRequired = flags.includes(\"<\");\n const takesValue = valueRequired || flags.includes(\"[\");\n const summary: HelpOptionSummary = {\n flags,\n long: typeof optionRecord.long === \"string\" ? optionRecord.long : null,\n short: typeof optionRecord.short === \"string\" ? optionRecord.short : null,\n description,\n takes_value: takesValue,\n value_required: valueRequired,\n value_name: extractOptionValueName(flags),\n variadic: optionRecord.variadic === true,\n required,\n aliases,\n alias_for: aliasFor,\n };\n if (optionRecord.defaultValue !== undefined) {\n summary.default_value = optionRecord.defaultValue;\n }\n return summary;\n });\n}\n\nfunction buildHelpArgumentSummaries(command: Command): HelpArgumentSummary[] {\n const commandRecord = command as unknown as {\n registeredArguments?: Array<{\n name?: (() => string) | string;\n required?: boolean;\n variadic?: boolean;\n description?: string;\n }>;\n _args?: Array<{\n name?: (() => string) | string;\n required?: boolean;\n variadic?: boolean;\n description?: string;\n }>;\n };\n const argumentsList = Array.isArray(commandRecord.registeredArguments)\n ? commandRecord.registeredArguments\n : Array.isArray(commandRecord._args)\n ? commandRecord._args\n : [];\n\n return argumentsList.map((argument) => {\n const rawName =\n typeof argument.name === \"function\"\n ? argument.name()\n : typeof argument.name === \"string\"\n ? argument.name\n : \"argument\";\n const description = typeof argument.description === \"string\" && argument.description.trim().length > 0\n ? argument.description.trim()\n : null;\n return {\n name: rawName.trim(),\n required: argument.required === true,\n variadic: argument.variadic === true,\n description,\n };\n });\n}\n\nfunction buildHelpSubcommandSummaries(command: Command): HelpSubcommandSummary[] {\n return command.commands\n .map((entry) => ({\n name: entry.name().trim(),\n aliases: commandAliases(entry),\n description: entry.description().trim(),\n }))\n .sort((left, right) => left.name.localeCompare(right.name));\n}\n\nfunction buildJsonHelpPayload(rootProgram: Command, targetCommand: Command, argv: string[], requestedPath: string[]): Record<string, unknown> {\n const detailMode = resolveHelpDetailMode(argv);\n const resolvedPath = normalizeHelpCommandPath(getCommandPath(targetCommand));\n const commandPath = resolvedPath.length > 0 ? resolvedPath : undefined;\n const fallbackNarrative = resolveHelpNarrative(commandPath, detailMode);\n const extensionDescriptor = commandPath ? activeRuntimeExtensionCommandDescriptors.get(commandPath) : undefined;\n const extensionExamples = extensionDescriptor?.examples ?? [];\n const extensionFailureHints = extensionDescriptor?.failure_hints ?? [];\n const narrative = extensionDescriptor\n ? {\n intent: extensionDescriptor.intent ?? extensionDescriptor.description ?? fallbackNarrative.intent,\n examples:\n detailMode === \"detailed\"\n ? extensionExamples.length > 0\n ? [...extensionExamples]\n : [...fallbackNarrative.examples]\n : extensionExamples.length > 0\n ? [extensionExamples[0]]\n : [...fallbackNarrative.examples],\n tips:\n detailMode === \"detailed\"\n ? extensionFailureHints.length > 0\n ? [...extensionFailureHints]\n : [...fallbackNarrative.tips]\n : [],\n detail_mode: detailMode,\n }\n : fallbackNarrative;\n const optionSummaries = mergeHelpOptionSummaries(\n buildHelpOptionSummaries(targetCommand),\n buildDynamicExtensionHelpOptionSummaries(extensionDescriptor),\n );\n const subcommands = buildHelpSubcommandSummaries(targetCommand);\n return {\n format: \"pm_help_v1\",\n detail_mode: detailMode,\n root_command: rootProgram.name(),\n requested_path: requestedPath,\n resolved_path: resolvedPath.length > 0 ? resolvedPath : rootProgram.name(),\n description: targetCommand.description(),\n usage: targetCommand.usage(),\n intent: narrative.intent,\n examples: narrative.examples,\n tips: narrative.tips,\n arguments: buildHelpArgumentSummaries(targetCommand),\n options: optionSummaries,\n subcommands,\n has_subcommands: subcommands.length > 0,\n };\n}\n\nasync function maybeRenderBootstrapJsonHelp(rootProgram: Command, argv: string[]): Promise<boolean> {\n const bootstrapGlobal = parseBootstrapGlobalOptions(argv);\n if (!bootstrapGlobal.json) {\n return false;\n }\n const helpRequest = parseBootstrapHelpRequest(argv);\n if (!helpRequest.requested) {\n return false;\n }\n const targetCommand = resolveCommandFromPathTokens(rootProgram, helpRequest.commandPathTokens);\n if (!targetCommand) {\n if (!bootstrapGlobal.quiet) {\n const unknownMessage = `unknown command '${helpRequest.commandPathTokens.join(\" \")}'`;\n const envelope = formatCommanderErrorForJson(\n unknownMessage,\n \"help\",\n BUILTIN_TYPE_HELP_VALUES,\n EXIT_CODE.USAGE,\n buildUnknownCommandGuidanceFromRuntime(unknownMessage, rootProgram),\n );\n printError(JSON.stringify(envelope, null, 2));\n }\n process.exitCode = EXIT_CODE.USAGE;\n return true;\n }\n if (!bootstrapGlobal.quiet) {\n const payload = buildJsonHelpPayload(rootProgram, targetCommand, argv, helpRequest.commandPathTokens);\n writeStdout(`${JSON.stringify(payload, null, 2)}\\n`);\n }\n process.exitCode = EXIT_CODE.SUCCESS;\n return true;\n}\n\nfunction parseBootstrapTypeValue(argv: string[]): string | undefined {\n for (let index = 0; index < argv.length; index += 1) {\n const token = argv[index];\n if (token === \"--type\") {\n const candidate = argv[index + 1];\n if (typeof candidate === \"string\" && candidate.trim().length > 0) {\n return candidate.trim();\n }\n continue;\n }\n if (token.startsWith(\"--type=\")) {\n const candidate = token.slice(\"--type=\".length).trim();\n if (candidate.length > 0) {\n return candidate;\n }\n }\n }\n return undefined;\n}\n\nfunction buildCreateUpdatePolicyHelpText(\n commandName: \"create\" | \"update\",\n typeRegistry: ReturnType<typeof resolveItemTypeRegistry>,\n argv: string[],\n): string {\n const selectedTypeRaw = parseBootstrapTypeValue(argv);\n if (!selectedTypeRaw) {\n const allowed = typeRegistry.types.join(\"|\");\n const lines = [\n \"\",\n \"Type-aware option policies:\",\n \" pass --type <value> with --help to render required/disabled/hidden option policy details for that type.\",\n ` active type values: ${allowed}`,\n ];\n if (commandName === \"create\") {\n lines.push(\n \" scheduling shortcut: use --schedule-preset lightweight for Reminder/Meeting/Event minimal create flows.\",\n );\n }\n return lines.join(\"\\n\");\n }\n\n const typeDefinition = resolveTypeDefinition(selectedTypeRaw, typeRegistry);\n if (!typeDefinition) {\n const allowed = typeRegistry.types.join(\"|\");\n return [\n \"\",\n `Type-aware option policies: type \"${selectedTypeRaw}\" is not in the active registry.`,\n ` active type values: ${allowed}`,\n ].join(\"\\n\");\n }\n\n const baseRequired =\n commandName === \"create\"\n ? new Set<string>([\"title\", \"description\", \"type\", ...typeDefinition.required_create_fields, ...typeDefinition.required_create_repeatables])\n : new Set<string>();\n const policyState = resolveCommandOptionPolicyState(typeDefinition, commandName, baseRequired);\n const toFlags = (options: string[]): string =>\n options.length > 0 ? options.map((option) => commandOptionFlagLabel(commandName, option)).join(\", \") : \"none\";\n\n const lines = [\n \"\",\n `Type-aware option policies for ${typeDefinition.name}:`,\n ` required: ${toFlags(policyState.required)}`,\n ` disabled: ${toFlags(policyState.disabled)}`,\n ` hidden: ${toFlags(policyState.hidden)}`,\n ];\n if (commandName === \"create\" && [\"Reminder\", \"Meeting\", \"Event\"].includes(typeDefinition.name)) {\n lines.push(\n \" schedule preset: --schedule-preset lightweight switches schedule artifacts to progressive required-option policy.\",\n );\n lines.push(\" strict parity remains available via --create-mode strict.\");\n }\n if (typeDefinition.options.length === 0) {\n lines.push(\" type options: none\");\n } else {\n lines.push(\" type options:\");\n for (const option of typeDefinition.options) {\n const requiredLabel = option.required ? \" (required)\" : \"\";\n const aliases = option.aliases ?? [];\n lines.push(` - ${option.key}${requiredLabel}`);\n lines.push(` values: ${option.values.length > 0 ? option.values.join(\"|\") : \"any non-empty string\"}`);\n lines.push(` aliases: ${aliases.length > 0 ? aliases.join(\"|\") : \"none\"}`);\n if (option.description && option.description.trim().length > 0) {\n lines.push(` description: ${option.description.trim()}`);\n }\n }\n }\n if (policyState.errors.length > 0) {\n lines.push(` config errors: ${policyState.errors.join(\"; \")}`);\n }\n return lines.join(\"\\n\");\n}\n\nfunction attachCreateUpdatePolicyHelpText(\n rootProgram: Command,\n typeRegistry: ReturnType<typeof resolveItemTypeRegistry>,\n argv: string[],\n): void {\n const bootstrapCommand = parseBootstrapCommandName(argv);\n if (bootstrapCommand !== \"create\" && bootstrapCommand !== \"update\") {\n return;\n }\n const command = findDirectChildCommand(rootProgram, bootstrapCommand);\n if (!command) {\n return;\n }\n command.addHelpText(\"after\", buildCreateUpdatePolicyHelpText(bootstrapCommand, typeRegistry, argv));\n}\n\ninterface ActiveExtensionHookContext {\n hooks: ExtensionHookRegistry;\n commandName: string;\n commandArgs: string[];\n commandOptions: Record<string, unknown>;\n globalOptions: GlobalOptions;\n pmRoot: string;\n profileEnabled: boolean;\n migrationBlockers: MandatoryMigrationBlocker[];\n}\n\nlet activeExtensionHookContext: ActiveExtensionHookContext | null = null;\nlet activeTelemetryCommandContext: ActiveTelemetryCommand | null = null;\n\ninterface RuntimeExtensionSnapshot {\n hooks: ExtensionHookRegistry;\n commands: ExtensionCommandRegistry;\n parsers: ExtensionParserRegistry;\n preflight: ExtensionPreflightRegistry;\n services: ExtensionServiceRegistry;\n renderers: ExtensionRendererRegistry;\n registrations: ReturnType<typeof createEmptyExtensionRegistrationRegistry>;\n pmRoot: string;\n settings: PmSettings;\n commandHandlers: string[];\n commandFlagHelp: Map<string, string>;\n commandDescriptors: Map<string, ExtensionCommandHelpDescriptor>;\n loadWarnings: string[];\n activationWarnings: string[];\n loadedCount: number;\n loadFailedCount: number;\n activationFailedCount: number;\n}\n\nlet runtimeExtensionSnapshotCache: { key: string; snapshot: RuntimeExtensionSnapshot | null } | null = null;\nlet activeRuntimeExtensionCommandDescriptors = new Map<string, ExtensionCommandHelpDescriptor>();\n\nfunction formatHookWarnings(warnings: string[]): string {\n return warnings.join(\",\");\n}\n\ninterface MandatoryMigrationBlocker {\n layer: \"global\" | \"project\";\n name: string;\n id: string;\n status: string;\n}\n\ninterface WriteGateDecision {\n isMutation: boolean;\n forceCapable: boolean;\n forceRequested: boolean;\n}\n\n\nfunction resolveMigrationId(definition: Record<string, unknown>, fallbackIndex: number): string {\n const explicit = toNonEmptyStringOrUndefined(definition.id);\n if (explicit) {\n return explicit;\n }\n return `migration-${String(fallbackIndex + 1).padStart(3, \"0\")}`;\n}\n\nfunction resolveNormalizedMigrationStatus(definition: Record<string, unknown>): string {\n const normalized = toNonEmptyStringOrUndefined(definition.status)?.toLowerCase();\n return normalized ?? \"pending\";\n}\n\nfunction isMandatoryMigrationDefinition(definition: Record<string, unknown>): boolean {\n return definition.mandatory === true;\n}\n\nfunction compareMandatoryMigrationBlockers(left: MandatoryMigrationBlocker, right: MandatoryMigrationBlocker): number {\n const byLayer = left.layer.localeCompare(right.layer);\n if (byLayer !== 0) {\n return byLayer;\n }\n const byName = left.name.localeCompare(right.name);\n if (byName !== 0) {\n return byName;\n }\n return left.id.localeCompare(right.id);\n}\n\nfunction collectMandatoryMigrationBlockers(\n migrations: Array<{\n layer: \"global\" | \"project\";\n name: string;\n definition: Record<string, unknown>;\n }>,\n): MandatoryMigrationBlocker[] {\n const blockers: MandatoryMigrationBlocker[] = [];\n migrations.forEach((entry, index) => {\n if (!isMandatoryMigrationDefinition(entry.definition)) {\n return;\n }\n const status = resolveNormalizedMigrationStatus(entry.definition);\n if (status === \"applied\") {\n return;\n }\n blockers.push({\n layer: entry.layer,\n name: entry.name,\n id: resolveMigrationId(entry.definition, index),\n status,\n });\n });\n blockers.sort(compareMandatoryMigrationBlockers);\n return blockers;\n}\n\nfunction hasMutatingListValues(value: unknown): boolean {\n return Array.isArray(value) && value.length > 0;\n}\n\nfunction decideWriteGate(commandPath: string, options: Record<string, unknown>): WriteGateDecision {\n const forceRequested = options.force === true;\n switch (commandPath) {\n case \"create\":\n case \"beads import\":\n case \"todos import\":\n return {\n isMutation: true,\n forceCapable: false,\n forceRequested: false,\n };\n case \"restore\":\n case \"update\":\n case \"close\":\n case \"delete\":\n case \"append\":\n case \"claim\":\n case \"release\":\n return {\n isMutation: true,\n forceCapable: true,\n forceRequested,\n };\n case \"comments\":\n case \"notes\":\n case \"learnings\":\n return {\n isMutation: typeof options.add === \"string\",\n forceCapable: true,\n forceRequested,\n };\n case \"files\":\n case \"docs\":\n case \"test\":\n return {\n isMutation: hasMutatingListValues(options.add) || hasMutatingListValues(options.remove),\n forceCapable: true,\n forceRequested,\n };\n default:\n return {\n isMutation: false,\n forceCapable: false,\n forceRequested: false,\n };\n }\n}\n\nfunction enforceMandatoryMigrationWriteGate(\n commandPath: string,\n options: Record<string, unknown>,\n blockers: MandatoryMigrationBlocker[],\n): void {\n if (blockers.length === 0) {\n return;\n }\n const decision = decideWriteGate(commandPath, options);\n if (!decision.isMutation) {\n return;\n }\n if (decision.forceCapable && decision.forceRequested) {\n return;\n }\n const codes = blockers.map(\n (entry) => `extension_migration_blocking:${entry.layer}:${entry.name}:${entry.id}:${entry.status}`,\n );\n const forceGuidance = decision.forceCapable\n ? \"Re-run this command with --force to bypass.\"\n : \"This command path does not support --force bypass.\";\n throw new PmCliError(\n `Write command \"${commandPath}\" blocked by unresolved mandatory extension migrations (${codes.join(\",\")}). ${forceGuidance}`,\n EXIT_CODE.CONFLICT,\n );\n}\n\nasync function enforceItemFormatWriteGateAndPreflightMigration(\n commandPath: string,\n options: Record<string, unknown>,\n pmRoot: string,\n decision: PreflightRuntimeDecision,\n): Promise<void> {\n const writeGate = decideWriteGate(commandPath, options);\n if (!writeGate.isMutation) {\n return;\n }\n if (!decision.enforce_item_format_gate && !decision.run_preflight_item_format_sync) {\n return;\n }\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n return;\n }\n const { settings, metadata, warnings } = await readSettingsWithMetadata(pmRoot);\n for (const warning of warnings) {\n printError(`warning:${warning}`);\n }\n if (decision.enforce_item_format_gate && !metadata.has_explicit_item_format) {\n await writeSettings(pmRoot, settings, \"item_format:auto_select_default\");\n }\n if (decision.run_preflight_item_format_sync) {\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n await migrateItemFilesToFormat(\n pmRoot,\n settings.item_format,\n \"item_format:pre_mutation_sync\",\n typeRegistry.type_to_folder,\n settings.schema,\n );\n }\n}\n\nfunction describeUnknownError(error: unknown): string {\n if (error instanceof PmCliError) {\n return error.message;\n }\n if (error instanceof Error) {\n return error.message;\n }\n return \"Unknown failure\";\n}\n\nfunction collectMutationItemIds(result: unknown): string[] {\n if (!result || typeof result !== \"object\") {\n return [];\n }\n const record = result as Record<string, unknown>;\n const ids = new Set<string>();\n const pushId = (value: unknown): void => {\n if (typeof value !== \"string\") {\n return;\n }\n const normalized = value.trim();\n if (normalized.length === 0) {\n return;\n }\n ids.add(normalized);\n };\n\n pushId(record.id);\n\n const item = record.item;\n if (item && typeof item === \"object\") {\n pushId((item as { id?: unknown }).id);\n }\n\n const explicitIds = record.ids;\n if (Array.isArray(explicitIds)) {\n for (const candidate of explicitIds) {\n pushId(candidate);\n }\n }\n\n const items = record.items;\n if (Array.isArray(items)) {\n for (const candidate of items) {\n if (!candidate || typeof candidate !== \"object\") {\n continue;\n }\n pushId((candidate as { id?: unknown }).id);\n }\n }\n\n return [...ids].sort((left, right) => left.localeCompare(right));\n}\n\nasync function invalidateSearchCachesForMutation(globalOptions: GlobalOptions, result?: unknown): Promise<void> {\n const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);\n const refreshResult = await refreshSearchArtifactsForMutation(pmRoot, collectMutationItemIds(result));\n if (globalOptions.profile && refreshResult.warnings.length > 0) {\n printError(`profile:search_refresh_warnings=${formatHookWarnings(refreshResult.warnings)}`);\n }\n}\n\nasync function runAndClearAfterCommandHooks(outcome: { ok: boolean; error?: string }): Promise<void> {\n const telemetryRuntime = activeTelemetryCommandContext;\n activeTelemetryCommandContext = null;\n await finishTelemetryCommand(telemetryRuntime, {\n ok: outcome.ok,\n error: outcome.error,\n result: getActiveCommandResult(),\n });\n\n const runtime = activeExtensionHookContext;\n activeExtensionHookContext = null;\n if (!runtime) {\n clearActiveExtensionHooks();\n return;\n }\n\n const hookWarnings = await runAfterCommandHooks(runtime.hooks, {\n command: runtime.commandName,\n args: runtime.commandArgs,\n options: { ...runtime.commandOptions },\n global: { ...runtime.globalOptions },\n pm_root: runtime.pmRoot,\n ok: outcome.ok,\n error: outcome.error,\n result: getActiveCommandResult(),\n });\n clearActiveExtensionHooks();\n if (runtime.profileEnabled && hookWarnings.length > 0) {\n printError(`profile:extensions hook_warnings=${formatHookWarnings(hookWarnings)}`);\n }\n}\n\nfunction extractCommandScopedOptions(\n command: Command,\n commandArgs: string[],\n extensionFlagDefinitions: Array<Record<string, unknown>> = [],\n): Record<string, unknown> {\n const allOptions = command.optsWithGlobals() as Record<string, unknown>;\n const scoped: Record<string, unknown> = { ...allOptions };\n delete scoped.json;\n delete scoped.quiet;\n delete scoped.path;\n delete scoped.noExtensions;\n delete scoped.extensions;\n delete scoped.profile;\n delete scoped.pager;\n\n const looseOptions = parseLooseCommandOptions(commandArgs);\n for (const [key, value] of Object.entries(looseOptions)) {\n if (scoped[key] === undefined) {\n scoped[key] = value;\n }\n }\n if (extensionFlagDefinitions.length > 0) {\n return coerceLooseCommandOptionsWithFlagDefinitions(scoped, extensionFlagDefinitions);\n }\n return scoped;\n}\n\nfunction collectExtensionFlagDefinitionsForCommand(\n registrations: ReturnType<typeof createEmptyExtensionRegistrationRegistry>,\n commandPath: string,\n): Array<Record<string, unknown>> {\n const normalizedCommandPath = normalizeExtensionCommandPath(commandPath);\n if (normalizedCommandPath.length === 0) {\n return [];\n }\n return registrations.flags\n .filter((entry) => normalizeExtensionCommandPath(entry.target_command) === normalizedCommandPath)\n .flatMap((entry) => entry.flags);\n}\n\nconst RUNTIME_FIELD_COMMAND_BY_COMMAND_PATH: Readonly<Record<string, RuntimeFieldCommand>> = {\n create: \"create\",\n update: \"update\",\n \"update-many\": \"update_many\",\n list: \"list\",\n \"list-all\": \"list\",\n \"list-draft\": \"list\",\n \"list-open\": \"list\",\n \"list-in-progress\": \"list\",\n \"list-blocked\": \"list\",\n \"list-closed\": \"list\",\n \"list-canceled\": \"list\",\n search: \"search\",\n calendar: \"calendar\",\n context: \"context\",\n \"templates save\": \"create\",\n};\n\nconst runtimeFieldLooseFlagDefinitionCache = new Map<string, Array<Record<string, unknown>>>();\n\nfunction toLooseFieldDefinitionType(fieldType: string): \"string\" | \"number\" | \"boolean\" {\n if (fieldType === \"number\") {\n return \"number\";\n }\n if (fieldType === \"boolean\") {\n return \"boolean\";\n }\n return \"string\";\n}\n\nfunction commandHasLongOption(command: Command, longFlag: string): boolean {\n return command.options.some((option) => option.long === longFlag);\n}\n\nfunction commandHasShortOption(command: Command, shortFlag: string): boolean {\n return command.options.some((option) => option.short === shortFlag);\n}\n\nfunction addRuntimeFieldOption(command: Command, flagToken: string, description: string, repeatable: boolean): void {\n const normalizedToken = flagToken.trim();\n if (!normalizedToken) {\n return;\n }\n const helpText = description.length > 0 ? description : `Runtime schema field (${flagToken})`;\n if (normalizedToken.startsWith(\"-\") && !normalizedToken.startsWith(\"--\")) {\n if (commandHasShortOption(command, normalizedToken)) {\n return;\n }\n if (repeatable) {\n command.option(`${normalizedToken} <value>`, `${helpText} (repeatable)`, collect);\n return;\n }\n command.option(`${normalizedToken} <value>`, helpText);\n return;\n }\n const longFlag = normalizedToken.startsWith(\"--\") ? normalizedToken : `--${normalizedToken}`;\n if (commandHasLongOption(command, longFlag)) {\n return;\n }\n if (repeatable) {\n command.option(`${longFlag} <value>`, `${helpText} (repeatable)`, collect);\n return;\n }\n command.option(`${longFlag} <value>`, helpText);\n}\n\nasync function collectRuntimeFieldLooseFlagDefinitionsForCommand(\n commandPath: string,\n pmRoot: string,\n): Promise<Array<Record<string, unknown>>> {\n const runtimeCommand = RUNTIME_FIELD_COMMAND_BY_COMMAND_PATH[commandPath];\n if (!runtimeCommand) {\n return [];\n }\n const cacheKey = `${pmRoot}:${runtimeCommand}`;\n const cached = runtimeFieldLooseFlagDefinitionCache.get(cacheKey);\n if (cached) {\n return cached;\n }\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n runtimeFieldLooseFlagDefinitionCache.set(cacheKey, []);\n return [];\n }\n const settings = await readSettings(pmRoot);\n const fieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const definitions = (fieldRegistry.command_to_fields.get(runtimeCommand) ?? []).flatMap((field) => {\n const flagTokens = [field.cli_flag, ...field.cli_aliases];\n return flagTokens.map((token) => ({\n long: `--${token}`,\n type: toLooseFieldDefinitionType(field.type),\n value_type: toLooseFieldDefinitionType(field.type),\n }));\n });\n runtimeFieldLooseFlagDefinitionCache.set(cacheKey, definitions);\n return definitions;\n}\n\nasync function registerRuntimeSchemaFieldFlags(rootProgram: Command): Promise<void> {\n const bootstrapGlobalOptions = parseBootstrapGlobalOptions(process.argv.slice(2));\n const pmRoot = resolvePmRoot(process.cwd(), bootstrapGlobalOptions.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n return;\n }\n const settings = await readSettings(pmRoot);\n const fieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const mappings: Array<{ path: string; command: RuntimeFieldCommand }> = [\n { path: \"create\", command: \"create\" },\n { path: \"update\", command: \"update\" },\n { path: \"update-many\", command: \"update_many\" },\n { path: \"list\", command: \"list\" },\n { path: \"list-all\", command: \"list\" },\n { path: \"list-draft\", command: \"list\" },\n { path: \"list-open\", command: \"list\" },\n { path: \"list-in-progress\", command: \"list\" },\n { path: \"list-blocked\", command: \"list\" },\n { path: \"list-closed\", command: \"list\" },\n { path: \"list-canceled\", command: \"list\" },\n { path: \"search\", command: \"search\" },\n { path: \"calendar\", command: \"calendar\" },\n { path: \"context\", command: \"context\" },\n { path: \"templates save\", command: \"create\" },\n ];\n for (const mapping of mappings) {\n const command = findCommandByPath(rootProgram, mapping.path.split(\" \"));\n if (!command) {\n continue;\n }\n for (const field of fieldRegistry.command_to_fields.get(mapping.command) ?? []) {\n const description = field.description ?? \"\";\n addRuntimeFieldOption(command, field.cli_flag, description, field.repeatable);\n for (const alias of field.cli_aliases) {\n addRuntimeFieldOption(command, alias, `Alias for --${field.cli_flag}`, field.repeatable);\n }\n }\n }\n}\n\nfunction defaultPreflightDecision(): PreflightRuntimeDecision {\n return {\n enforce_item_format_gate: true,\n run_preflight_item_format_sync: true,\n run_extension_migrations: true,\n enforce_mandatory_migration_gate: true,\n };\n}\n\nfunction buildRuntimeExtensionSnapshotCacheKey(pmRoot: string): string {\n return `pm-root:${pmRoot}`;\n}\n\nfunction emitExtensionProfile(globalOptions: GlobalOptions, snapshot: RuntimeExtensionSnapshot): void {\n if (!globalOptions.profile) {\n return;\n }\n printError(\n `profile:extensions loaded=${snapshot.loadedCount} failed=${snapshot.loadFailedCount} warnings=${snapshot.loadWarnings.length} activation_failed=${snapshot.activationFailedCount} hook_counts=before:${snapshot.hooks.beforeCommand.length}|after:${snapshot.hooks.afterCommand.length}|write:${snapshot.hooks.onWrite.length}|read:${snapshot.hooks.onRead.length}|index:${snapshot.hooks.onIndex.length} command_overrides=${snapshot.commands.overrides.length} command_handlers=${snapshot.commands.handlers.length} parser_overrides=${snapshot.parsers.overrides.length} preflight_overrides=${snapshot.preflight.overrides.length} service_overrides=${snapshot.services.overrides.length} renderer_overrides=${snapshot.renderers.overrides.length}`,\n );\n if (snapshot.activationWarnings.length > 0) {\n printError(`profile:extensions activation_warnings=${formatHookWarnings(snapshot.activationWarnings)}`);\n }\n}\n\nasync function loadRuntimeExtensionSnapshot(pmRoot: string): Promise<RuntimeExtensionSnapshot | null> {\n const cacheKey = buildRuntimeExtensionSnapshotCacheKey(pmRoot);\n if (runtimeExtensionSnapshotCache?.key === cacheKey) {\n return runtimeExtensionSnapshotCache.snapshot;\n }\n\n const settingsPath = getSettingsPath(pmRoot);\n if (!(await pathExists(settingsPath))) {\n runtimeExtensionSnapshotCache = {\n key: cacheKey,\n snapshot: null,\n };\n return null;\n }\n\n try {\n const settings = await readSettings(pmRoot);\n const loadResult = await loadExtensions({\n pmRoot,\n settings,\n cwd: process.cwd(),\n noExtensions: false,\n });\n const activationResult = await activateExtensions({\n ...loadResult,\n loaded: loadResult.loaded,\n });\n const commandHandlers = [...new Set(activationResult.commands.handlers.map((entry) => normalizeExtensionCommandPath(entry.command)))]\n .filter((entry) => entry.length > 0)\n .sort((left, right) => left.localeCompare(right));\n const commandFlagHelp = collectDynamicExtensionFlagHelpByCommand(activationResult.registrations.flags);\n const commandDescriptors = collectExtensionCommandHelpDescriptors(\n commandHandlers,\n activationResult.registrations.commands,\n activationResult.registrations.flags,\n );\n const snapshot: RuntimeExtensionSnapshot = {\n hooks: activationResult.hooks,\n commands: activationResult.commands,\n parsers: activationResult.parsers,\n preflight: activationResult.preflight,\n services: activationResult.services,\n renderers: activationResult.renderers,\n registrations: activationResult.registrations,\n pmRoot,\n settings,\n commandHandlers,\n commandFlagHelp,\n commandDescriptors,\n loadWarnings: [...loadResult.warnings],\n activationWarnings: [...activationResult.warnings],\n loadedCount: loadResult.loaded.length,\n loadFailedCount: loadResult.failed.length,\n activationFailedCount: activationResult.failed.length,\n };\n runtimeExtensionSnapshotCache = {\n key: cacheKey,\n snapshot,\n };\n return snapshot;\n } catch {\n runtimeExtensionSnapshotCache = {\n key: cacheKey,\n snapshot: null,\n };\n return null;\n }\n}\n\nasync function maybeLoadRuntimeExtensions(\n command: Command,\n): Promise<\n {\n hooks: ExtensionHookRegistry;\n commands: ExtensionCommandRegistry;\n parsers: ExtensionParserRegistry;\n preflight: ExtensionPreflightRegistry;\n services: ExtensionServiceRegistry;\n renderers: ExtensionRendererRegistry;\n registrations: ReturnType<typeof createEmptyExtensionRegistrationRegistry>;\n pmRoot: string;\n } | null\n> {\n const globalOptions = getGlobalOptions(command);\n if (globalOptions.noExtensions) {\n return null;\n }\n\n const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);\n const snapshot = await loadRuntimeExtensionSnapshot(pmRoot);\n if (!snapshot) {\n return null;\n }\n\n emitExtensionProfile(globalOptions, snapshot);\n return {\n hooks: snapshot.hooks,\n commands: snapshot.commands,\n parsers: snapshot.parsers,\n preflight: snapshot.preflight,\n services: snapshot.services,\n renderers: snapshot.renderers,\n registrations: snapshot.registrations,\n pmRoot,\n };\n}\n\nasync function executeRegisteredRuntimeMigrations(\n migrations: RegisteredExtensionSchemaMigrationDefinition[],\n pmRoot: string,\n): Promise<string[]> {\n const warnings: string[] = [];\n for (let index = 0; index < migrations.length; index += 1) {\n const migration = migrations[index];\n const status = resolveNormalizedMigrationStatus(migration.definition);\n if (status === \"applied\") {\n continue;\n }\n\n const runtimeDefinition = migration.runtime_definition ?? migration.definition;\n const run = (runtimeDefinition as { run?: unknown }).run;\n if (typeof run !== \"function\") {\n continue;\n }\n\n const migrationId = resolveMigrationId(migration.definition, index);\n try {\n await Promise.resolve(\n run({\n id: migrationId,\n command: \"migration\",\n layer: migration.layer,\n extension: migration.name,\n pm_root: pmRoot,\n status,\n }),\n );\n migration.definition.status = \"applied\";\n delete migration.definition.reason;\n delete migration.definition.error;\n delete migration.definition.message;\n } catch (error: unknown) {\n migration.definition.status = \"failed\";\n migration.definition.reason = describeUnknownError(error);\n warnings.push(`extension_migration_failed:${migration.layer}:${migration.name}:${migrationId}`);\n }\n }\n return warnings;\n}\n\nasync function runRequiredExtensionCommand(\n command: Command,\n options: Record<string, unknown>,\n globalOptions: GlobalOptions,\n): Promise<unknown> {\n const commandPath = getCommandPath(command);\n let commandArgs = command.args.map(String);\n let commandOptions = { ...options };\n let resolvedGlobalOptions = { ...globalOptions };\n const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);\n const parserOverride = await runActiveParserOverride({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: resolvedGlobalOptions,\n pm_root: pmRoot,\n });\n if (globalOptions.profile && parserOverride.warnings.length > 0) {\n printError(`profile:extensions parser_warnings=${formatHookWarnings(parserOverride.warnings)}`);\n }\n commandArgs = parserOverride.context.args;\n commandOptions = parserOverride.context.options;\n resolvedGlobalOptions = parserOverride.context.global;\n setActiveCommandResult(undefined);\n setActiveCommandContext({\n command: commandPath,\n args: commandArgs,\n options: { ...commandOptions },\n global: { ...resolvedGlobalOptions },\n pm_root: pmRoot,\n });\n const extensionCommandResult = await runActiveCommandHandler({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: resolvedGlobalOptions,\n pm_root: pmRoot,\n });\n if (resolvedGlobalOptions.profile && extensionCommandResult.warnings.length > 0) {\n printError(`profile:extensions command_handler_warnings=${formatHookWarnings(extensionCommandResult.warnings)}`);\n }\n if (!extensionCommandResult.handled) {\n if (extensionCommandResult.warnings.length > 0) {\n const warningCode = extensionCommandResult.warnings[0];\n throw new PmCliError(\n `Command \"${commandPath}\" failed in extension handler (${warningCode}).`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n throw new PmCliError(`Command \"${commandPath}\" is provided by extensions and is not currently available.`, EXIT_CODE.NOT_FOUND);\n }\n setActiveCommandResult(extensionCommandResult.result);\n return extensionCommandResult.result;\n}\n\nconst WRAPPED_ACTION_HANDLER = Symbol(\"pm.wrappedActionHandler\");\n\nfunction wrapProgramActionsForExtensionHandlers(rootProgram: Command): void {\n const visit = (entry: Command): void => {\n type ActionMutableCommand = Command & {\n _actionHandler?: (...args: unknown[]) => unknown;\n [WRAPPED_ACTION_HANDLER]?: boolean;\n };\n const actionEntry = entry as ActionMutableCommand;\n if (typeof actionEntry._actionHandler === \"function\" && actionEntry[WRAPPED_ACTION_HANDLER] !== true) {\n const originalAction = actionEntry._actionHandler;\n actionEntry._actionHandler = async function wrappedActionHandler(this: unknown, ...actionArgs: unknown[]): Promise<unknown> {\n const possibleCommand = actionArgs[actionArgs.length - 1];\n const actionCommand = possibleCommand instanceof Command ? possibleCommand : entry;\n const startedAt = Date.now();\n clearResolvedGlobalOptions(actionCommand);\n let globalOptions = getGlobalOptions(actionCommand);\n const commandPath = getCommandPath(actionCommand);\n const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);\n let commandArgs = actionCommand.args.map(String);\n const activeRegistrations = getActiveExtensionRegistrations();\n const extensionFlagDefinitions = activeRegistrations\n ? collectExtensionFlagDefinitionsForCommand(activeRegistrations, commandPath)\n : [];\n const runtimeFieldFlagDefinitions = await collectRuntimeFieldLooseFlagDefinitionsForCommand(commandPath, pmRoot);\n let commandOptions = extractCommandScopedOptions(actionCommand, commandArgs, [\n ...extensionFlagDefinitions,\n ...runtimeFieldFlagDefinitions,\n ]);\n const parserOverride = await runActiveParserOverride({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: pmRoot,\n });\n if (globalOptions.profile && parserOverride.warnings.length > 0) {\n printError(`profile:extensions parser_warnings=${formatHookWarnings(parserOverride.warnings)}`);\n }\n commandArgs = parserOverride.context.args;\n commandOptions = parserOverride.context.options;\n globalOptions = parserOverride.context.global;\n globalOptions = await applyDefaultOutputFormat(globalOptions);\n setResolvedGlobalOptions(actionCommand, globalOptions);\n actionCommand.args = [...commandArgs];\n if (\"_processArguments\" in actionCommand && typeof actionCommand._processArguments === \"function\") {\n actionCommand._processArguments();\n }\n if (actionArgs.length > 0 && Array.isArray(actionArgs[0])) {\n actionArgs[0] = [...actionCommand.processedArgs];\n }\n for (const [key, value] of Object.entries(commandOptions)) {\n actionCommand.setOptionValueWithSource(key, value, \"cli\");\n }\n setActiveCommandResult(undefined);\n setActiveCommandContext({\n command: commandPath,\n args: commandArgs,\n options: { ...commandOptions },\n global: { ...globalOptions },\n pm_root: pmRoot,\n });\n\n const extensionCommandResult = await runActiveCommandHandler({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: pmRoot,\n });\n if (globalOptions.profile && extensionCommandResult.warnings.length > 0) {\n printError(`profile:extensions command_handler_warnings=${formatHookWarnings(extensionCommandResult.warnings)}`);\n }\n if (extensionCommandResult.handled) {\n setActiveCommandResult(extensionCommandResult.result);\n printResult(extensionCommandResult.result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=${commandPath} took_ms=${Date.now() - startedAt}`);\n }\n return;\n }\n\n return await originalAction.apply(this, actionArgs);\n };\n actionEntry[WRAPPED_ACTION_HANDLER] = true;\n }\n for (const child of entry.commands) {\n visit(child);\n }\n };\n visit(rootProgram);\n}\n\nasync function registerDynamicExtensionCommandPaths(rootProgram: Command): Promise<void> {\n const bootstrapGlobalOptions = parseBootstrapGlobalOptions(process.argv.slice(2));\n if (bootstrapGlobalOptions.noExtensions) {\n activeRuntimeExtensionCommandDescriptors = new Map<string, ExtensionCommandHelpDescriptor>();\n setActiveExtensionServices({ overrides: [] });\n return;\n }\n\n const pmRoot = resolvePmRoot(process.cwd(), bootstrapGlobalOptions.path);\n const snapshot = await loadRuntimeExtensionSnapshot(pmRoot);\n if (!snapshot) {\n activeRuntimeExtensionCommandDescriptors = new Map<string, ExtensionCommandHelpDescriptor>();\n setActiveExtensionServices({ overrides: [] });\n return;\n }\n // Ensure usage/help/error formatting overrides are available even when parse\n // errors occur before preAction hooks initialize full runtime extension state.\n setActiveExtensionServices(snapshot.services);\n activeRuntimeExtensionCommandDescriptors = new Map(snapshot.commandDescriptors);\n const typeRegistry = resolveItemTypeRegistry(snapshot.settings, snapshot.registrations);\n attachCreateUpdatePolicyHelpText(rootProgram, typeRegistry, process.argv.slice(2));\n\n const commandPaths = [...new Set([...snapshot.commandHandlers, ...snapshot.commandDescriptors.keys()])].sort((left, right) =>\n left.localeCompare(right),\n );\n for (const commandPath of commandPaths) {\n const pathParts = commandPath.split(\" \").filter((part) => part.length > 0);\n if (pathParts.length === 0) {\n continue;\n }\n const descriptor = snapshot.commandDescriptors.get(commandPath);\n const existingCommand = findCommandByPath(rootProgram, pathParts);\n const flagHelp = snapshot.commandFlagHelp.get(commandPath);\n const metadataHelp = descriptor ? buildDynamicExtensionCommandMetadataHelp(descriptor) : null;\n if (existingCommand) {\n if (flagHelp) {\n existingCommand.addHelpText(\"after\", flagHelp);\n }\n if (metadataHelp) {\n existingCommand.addHelpText(\"after\", metadataHelp);\n }\n continue;\n }\n\n const dynamicCommand = ensureCommandPath(rootProgram, pathParts);\n if (!dynamicCommand) {\n continue;\n }\n if (descriptor?.description) {\n dynamicCommand.description(descriptor.description);\n }\n if (descriptor) {\n applyDynamicExtensionArguments(dynamicCommand, descriptor);\n }\n if (flagHelp) {\n dynamicCommand.addHelpText(\"after\", flagHelp);\n }\n if (metadataHelp) {\n dynamicCommand.addHelpText(\"after\", metadataHelp);\n }\n\n dynamicCommand\n .allowUnknownOption(true)\n .allowExcessArguments(true)\n .action(async (_options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const extensionFlagDefinitions = collectExtensionFlagDefinitionsForCommand(snapshot.registrations, commandPath);\n const scopedOptions = extractCommandScopedOptions(\n command,\n command.args.map(String),\n extensionFlagDefinitions,\n );\n const result = await runRequiredExtensionCommand(command, scopedOptions, globalOptions);\n await invalidateSearchCachesForMutation(globalOptions, result);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=${commandPath} took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n}\n\nfunction normalizeCreateOptions(\n commandOptions: Record<string, unknown>,\n options: { requireType?: boolean } = {},\n): CreateCommandOptions {\n const readCreateString = (target: string): string | undefined =>\n readFirstStringFromCommanderOptions(\n commandOptions,\n CREATE_COMMANDER_STRING_OPTION_CONTRACTS.find((entry) => entry.target === target) ?? {\n target,\n keys: [target],\n },\n );\n const readCreateList = (target: string): string[] | undefined =>\n readStringArrayFromCommanderOptions(\n commandOptions,\n CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS.find((entry) => entry.target === target) ?? {\n target,\n keys: [target],\n },\n );\n\n const type = readCreateString(\"type\");\n if (options.requireType !== false && type === undefined) {\n throw new PmCliError(\"Missing required option --type <value>\", EXIT_CODE.USAGE);\n }\n\n const normalized: Record<string, unknown> = {\n title: readCreateString(\"title\"),\n description: readCreateString(\"description\"),\n type,\n template: readCreateString(\"template\"),\n createMode: readCreateString(\"createMode\"),\n schedulePreset: readCreateString(\"schedulePreset\"),\n status: readCreateString(\"status\"),\n priority: readCreateString(\"priority\"),\n tags: readCreateString(\"tags\"),\n body: readCreateString(\"body\"),\n deadline: readCreateString(\"deadline\"),\n estimatedMinutes: readCreateString(\"estimatedMinutes\"),\n acceptanceCriteria: readCreateString(\"acceptanceCriteria\"),\n definitionOfReady: readCreateString(\"definitionOfReady\"),\n order: readCreateString(\"order\"),\n rank: readCreateString(\"rank\"),\n goal: readCreateString(\"goal\"),\n objective: readCreateString(\"objective\"),\n value: readCreateString(\"value\"),\n impact: readCreateString(\"impact\"),\n outcome: readCreateString(\"outcome\"),\n whyNow: readCreateString(\"whyNow\"),\n author: readCreateString(\"author\"),\n message: readCreateString(\"message\"),\n assignee: readCreateString(\"assignee\"),\n parent: readCreateString(\"parent\"),\n reviewer: readCreateString(\"reviewer\"),\n risk: readCreateString(\"risk\"),\n confidence: readCreateString(\"confidence\"),\n sprint: readCreateString(\"sprint\"),\n release: readCreateString(\"release\"),\n blockedBy: readCreateString(\"blockedBy\"),\n blockedReason: readCreateString(\"blockedReason\"),\n unblockNote: readCreateString(\"unblockNote\"),\n reporter: readCreateString(\"reporter\"),\n severity: readCreateString(\"severity\"),\n environment: readCreateString(\"environment\"),\n reproSteps: readCreateString(\"reproSteps\"),\n resolution: readCreateString(\"resolution\"),\n expectedResult: readCreateString(\"expectedResult\"),\n actualResult: readCreateString(\"actualResult\"),\n affectedVersion: readCreateString(\"affectedVersion\"),\n fixedVersion: readCreateString(\"fixedVersion\"),\n component: readCreateString(\"component\"),\n regression: readCreateString(\"regression\"),\n customerImpact: readCreateString(\"customerImpact\"),\n dep: readCreateList(\"dep\"),\n comment: readCreateList(\"comment\"),\n note: readCreateList(\"note\"),\n learning: readCreateList(\"learning\"),\n file: readCreateList(\"file\"),\n test: readCreateList(\"test\"),\n doc: readCreateList(\"doc\"),\n reminder: readCreateList(\"reminder\"),\n event: readCreateList(\"event\"),\n typeOption: readCreateList(\"typeOption\"),\n unset: readCreateList(\"unset\"),\n clearDeps: commandOptions.clearDeps === true ? true : undefined,\n clearComments: commandOptions.clearComments === true ? true : undefined,\n clearNotes: commandOptions.clearNotes === true ? true : undefined,\n clearLearnings: commandOptions.clearLearnings === true ? true : undefined,\n clearFiles: commandOptions.clearFiles === true ? true : undefined,\n clearTests: commandOptions.clearTests === true ? true : undefined,\n clearDocs: commandOptions.clearDocs === true ? true : undefined,\n clearReminders: commandOptions.clearReminders === true ? true : undefined,\n clearEvents: commandOptions.clearEvents === true ? true : undefined,\n clearTypeOptions: commandOptions.clearTypeOptions === true ? true : undefined,\n };\n for (const [key, value] of Object.entries(commandOptions)) {\n if (Object.hasOwn(normalized, key)) {\n continue;\n }\n normalized[key] = value;\n }\n return normalized as CreateCommandOptions;\n}\n\nfunction normalizeUpdateOptions(commandOptions: Record<string, unknown>): Record<string, unknown> {\n const readUpdateString = (target: string): string | undefined =>\n readFirstStringFromCommanderOptions(\n commandOptions,\n UPDATE_COMMANDER_STRING_OPTION_CONTRACTS.find((entry) => entry.target === target) ?? {\n target,\n keys: [target],\n },\n );\n const readUpdateList = (target: string): string[] | undefined =>\n readStringArrayFromCommanderOptions(\n commandOptions,\n UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS.find((entry) => entry.target === target) ?? {\n target,\n keys: [target],\n },\n );\n\n const normalized: Record<string, unknown> = {\n title: readUpdateString(\"title\"),\n description: readUpdateString(\"description\"),\n body: readUpdateString(\"body\"),\n status: readUpdateString(\"status\"),\n closeReason: readUpdateString(\"closeReason\"),\n priority: readUpdateString(\"priority\"),\n type: readUpdateString(\"type\"),\n tags: readUpdateString(\"tags\"),\n deadline: readUpdateString(\"deadline\"),\n estimatedMinutes: readUpdateString(\"estimatedMinutes\"),\n acceptanceCriteria: readUpdateString(\"acceptanceCriteria\"),\n definitionOfReady: readUpdateString(\"definitionOfReady\"),\n order: readUpdateString(\"order\"),\n rank: readUpdateString(\"rank\"),\n goal: readUpdateString(\"goal\"),\n objective: readUpdateString(\"objective\"),\n value: readUpdateString(\"value\"),\n impact: readUpdateString(\"impact\"),\n outcome: readUpdateString(\"outcome\"),\n whyNow: readUpdateString(\"whyNow\"),\n author: readUpdateString(\"author\"),\n message: readUpdateString(\"message\"),\n force: Boolean(commandOptions.force),\n allowAuditUpdate:\n commandOptions.allowAuditUpdate === true || commandOptions.allow_audit_update === true ? true : undefined,\n allowAuditDepUpdate:\n commandOptions.allowAuditDepUpdate === true || commandOptions.allow_audit_dep_update === true ? true : undefined,\n assignee: readUpdateString(\"assignee\"),\n parent: readUpdateString(\"parent\"),\n reviewer: readUpdateString(\"reviewer\"),\n risk: readUpdateString(\"risk\"),\n confidence: readUpdateString(\"confidence\"),\n sprint: readUpdateString(\"sprint\"),\n release: readUpdateString(\"release\"),\n blockedBy: readUpdateString(\"blockedBy\"),\n blockedReason: readUpdateString(\"blockedReason\"),\n unblockNote: readUpdateString(\"unblockNote\"),\n reporter: readUpdateString(\"reporter\"),\n severity: readUpdateString(\"severity\"),\n environment: readUpdateString(\"environment\"),\n reproSteps: readUpdateString(\"reproSteps\"),\n resolution: readUpdateString(\"resolution\"),\n expectedResult: readUpdateString(\"expectedResult\"),\n actualResult: readUpdateString(\"actualResult\"),\n affectedVersion: readUpdateString(\"affectedVersion\"),\n fixedVersion: readUpdateString(\"fixedVersion\"),\n component: readUpdateString(\"component\"),\n regression: readUpdateString(\"regression\"),\n customerImpact: readUpdateString(\"customerImpact\"),\n dep: readUpdateList(\"dep\"),\n depRemove: readUpdateList(\"depRemove\"),\n replaceDeps: commandOptions.replaceDeps === true ? true : undefined,\n replaceTests: commandOptions.replaceTests === true ? true : undefined,\n comment: readUpdateList(\"comment\"),\n note: readUpdateList(\"note\"),\n learning: readUpdateList(\"learning\"),\n file: readUpdateList(\"file\"),\n test: readUpdateList(\"test\"),\n doc: readUpdateList(\"doc\"),\n reminder: readUpdateList(\"reminder\"),\n event: readUpdateList(\"event\"),\n typeOption: readUpdateList(\"typeOption\"),\n unset: readUpdateList(\"unset\"),\n clearDeps: commandOptions.clearDeps === true ? true : undefined,\n clearComments: commandOptions.clearComments === true ? true : undefined,\n clearNotes: commandOptions.clearNotes === true ? true : undefined,\n clearLearnings: commandOptions.clearLearnings === true ? true : undefined,\n clearFiles: commandOptions.clearFiles === true ? true : undefined,\n clearTests: commandOptions.clearTests === true ? true : undefined,\n clearDocs: commandOptions.clearDocs === true ? true : undefined,\n clearReminders: commandOptions.clearReminders === true ? true : undefined,\n clearEvents: commandOptions.clearEvents === true ? true : undefined,\n clearTypeOptions: commandOptions.clearTypeOptions === true ? true : undefined,\n };\n for (const [key, value] of Object.entries(commandOptions)) {\n if (Object.hasOwn(normalized, key)) {\n continue;\n }\n normalized[key] = value;\n }\n return normalized;\n}\n\nconst UPDATE_MANY_CONTROL_OPTION_KEYS = new Set<string>([\n \"filterStatus\",\n \"filterType\",\n \"filterTag\",\n \"filterPriority\",\n \"filterDeadlineBefore\",\n \"filterDeadlineAfter\",\n \"filterAssignee\",\n \"filterAssigneeFilter\",\n \"filterAssignee_filter\",\n \"filterParent\",\n \"filterSprint\",\n \"filterRelease\",\n \"limit\",\n \"offset\",\n \"dryRun\",\n \"rollback\",\n \"checkpoint\",\n]);\n\nfunction extractUpdateManyMutationOptionSource(commandOptions: Record<string, unknown>): Record<string, unknown> {\n const mutationOptions: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(commandOptions)) {\n if (UPDATE_MANY_CONTROL_OPTION_KEYS.has(key)) {\n continue;\n }\n mutationOptions[key] = value;\n }\n return mutationOptions;\n}\n\nfunction readListOptionString(options: Record<string, unknown>, target: string): string | undefined {\n return readFirstStringFromCommanderOptions(\n options,\n LIST_COMMANDER_STRING_OPTION_CONTRACTS.find((entry) => entry.target === target) ?? {\n target,\n keys: [target],\n },\n );\n}\n\nfunction normalizeListOptions(options: Record<string, unknown>): ListOptions {\n const normalized: Record<string, unknown> = {\n status: readListOptionString(options, \"status\"),\n type: readListOptionString(options, \"type\"),\n tag: readListOptionString(options, \"tag\"),\n priority: readListOptionString(options, \"priority\"),\n deadlineBefore: readListOptionString(options, \"deadlineBefore\"),\n deadlineAfter: readListOptionString(options, \"deadlineAfter\"),\n assignee: readListOptionString(options, \"assignee\"),\n assigneeFilter: readListOptionString(options, \"assigneeFilter\"),\n parent: readListOptionString(options, \"parent\"),\n sprint: readListOptionString(options, \"sprint\"),\n release: readListOptionString(options, \"release\"),\n limit: readListOptionString(options, \"limit\"),\n offset: readListOptionString(options, \"offset\"),\n includeBody: options.includeBody === true ? true : undefined,\n compact: options.compact === true ? true : undefined,\n fields: readListOptionString(options, \"fields\"),\n sort: readListOptionString(options, \"sort\"),\n order: readListOptionString(options, \"order\"),\n };\n for (const [key, value] of Object.entries(options)) {\n if (Object.hasOwn(normalized, key)) {\n continue;\n }\n normalized[key] = value;\n }\n return normalized as ListOptions;\n}\n\nfunction normalizeAggregateOptions(options: Record<string, unknown>): AggregateOptions {\n return {\n groupBy: typeof options.groupBy === \"string\" ? options.groupBy : undefined,\n count: options.count === true ? true : undefined,\n includeUnparented: options.includeUnparented === true || options.include_unparented === true,\n status: typeof options.status === \"string\" ? options.status : undefined,\n type: readListOptionString(options, \"type\"),\n tag: readListOptionString(options, \"tag\"),\n priority: readListOptionString(options, \"priority\"),\n deadlineBefore: readListOptionString(options, \"deadlineBefore\"),\n deadlineAfter: readListOptionString(options, \"deadlineAfter\"),\n assignee: readListOptionString(options, \"assignee\"),\n assigneeFilter: readListOptionString(options, \"assigneeFilter\"),\n parent: readListOptionString(options, \"parent\"),\n sprint: readListOptionString(options, \"sprint\"),\n release: readListOptionString(options, \"release\"),\n };\n}\n\nfunction normalizeDedupeAuditOptions(options: Record<string, unknown>): DedupeAuditOptions {\n return {\n mode: typeof options.mode === \"string\" ? options.mode : undefined,\n status: typeof options.status === \"string\" ? options.status : undefined,\n type: readListOptionString(options, \"type\"),\n tag: readListOptionString(options, \"tag\"),\n priority: readListOptionString(options, \"priority\"),\n deadlineBefore: readListOptionString(options, \"deadlineBefore\"),\n deadlineAfter: readListOptionString(options, \"deadlineAfter\"),\n assignee: readListOptionString(options, \"assignee\"),\n assigneeFilter: readListOptionString(options, \"assigneeFilter\"),\n parent: readListOptionString(options, \"parent\"),\n sprint: readListOptionString(options, \"sprint\"),\n release: readListOptionString(options, \"release\"),\n limit: readListOptionString(options, \"limit\"),\n threshold: typeof options.threshold === \"string\" ? options.threshold : undefined,\n };\n}\n\ntype ListCommandResult = Awaited<ReturnType<typeof runList>>;\n\nfunction printListJsonStream(commandName: string, result: ListCommandResult, globalOptions: GlobalOptions): void {\n setActiveCommandResult(result);\n if (globalOptions.quiet) {\n return;\n }\n const warnings = Array.isArray(result.warnings) ? result.warnings : [];\n const metaPayload: Record<string, unknown> = {\n type: \"meta\",\n command: commandName,\n count: result.count,\n now: result.now,\n filters: result.filters,\n };\n if (warnings.length > 0) {\n metaPayload.warnings = warnings;\n }\n if (!writeStdout(`${JSON.stringify(metaPayload)}\\n`)) {\n return;\n }\n for (const item of result.items) {\n if (!writeStdout(`${JSON.stringify({ type: \"item\", command: commandName, item })}\\n`)) {\n return;\n }\n }\n writeStdout(`${JSON.stringify({ type: \"end\", command: commandName, count: result.count })}\\n`);\n}\n\ntype ActivityCommandResult = Awaited<ReturnType<typeof runActivity>>;\n\nfunction printActivityJsonStream(\n result: ActivityCommandResult,\n options: {\n id?: string;\n op?: string;\n author?: string;\n from?: string;\n to?: string;\n limit?: string;\n },\n globalOptions: GlobalOptions,\n): void {\n setActiveCommandResult(result);\n if (globalOptions.quiet) {\n return;\n }\n const metaPayload = {\n type: \"meta\",\n command: \"activity\",\n count: result.count,\n filters: {\n id: options.id ?? null,\n op: options.op ?? null,\n author: options.author ?? null,\n from: options.from ?? null,\n to: options.to ?? null,\n limit: options.limit ?? null,\n },\n };\n if (!writeStdout(`${JSON.stringify(metaPayload)}\\n`)) {\n return;\n }\n const entries = result.compact && result.compact_activity ? result.compact_activity : result.activity;\n for (const entry of entries) {\n if (!writeStdout(`${JSON.stringify({ type: \"entry\", command: \"activity\", entry })}\\n`)) {\n return;\n }\n }\n writeStdout(`${JSON.stringify({ type: \"end\", command: \"activity\", count: result.count })}\\n`);\n}\n\nfunction normalizeSearchOptions(options: Record<string, unknown>): Record<string, unknown> {\n const readSearchString = (target: string): string | undefined =>\n readFirstStringFromCommanderOptions(\n options,\n SEARCH_COMMANDER_STRING_OPTION_CONTRACTS.find((entry) => entry.target === target) ?? {\n target,\n keys: [target],\n },\n );\n const fields = readSearchString(\"fields\");\n const compactRequested = options.compact === true;\n const fullRequested = options.full === true;\n const defaultCompact = !compactRequested && !fullRequested && fields === undefined;\n const normalized: Record<string, unknown> = {\n mode: readSearchString(\"mode\"),\n includeLinked: options.includeLinked === true ? true : undefined,\n titleExact: options.titleExact === true ? true : undefined,\n phraseExact: options.phraseExact === true ? true : undefined,\n type: readSearchString(\"type\"),\n tag: readSearchString(\"tag\"),\n priority: readSearchString(\"priority\"),\n deadlineBefore: readSearchString(\"deadlineBefore\"),\n deadlineAfter: readSearchString(\"deadlineAfter\"),\n limit: readSearchString(\"limit\"),\n fields,\n compact: compactRequested || defaultCompact ? true : undefined,\n full: fullRequested ? true : undefined,\n };\n for (const [key, value] of Object.entries(options)) {\n if (Object.hasOwn(normalized, key)) {\n continue;\n }\n normalized[key] = value;\n }\n return normalized;\n}\n\nfunction normalizeSearchKeywordsInput(keywords: string[]): string {\n const query = keywords\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0)\n .join(\" \");\n if (query.length === 0) {\n throw new PmCliError(\"Search query must not be empty\", EXIT_CODE.USAGE);\n }\n return query;\n}\n\nfunction normalizeCalendarOptions(options: Record<string, unknown>): CalendarOptions {\n const readCalendarString = (target: string): string | undefined =>\n readFirstStringFromCommanderOptions(\n options,\n CALENDAR_COMMANDER_STRING_OPTION_CONTRACTS.find((entry) => entry.target === target) ?? {\n target,\n keys: [target],\n },\n );\n const normalized: Record<string, unknown> = {\n view: readCalendarString(\"view\"),\n date: readCalendarString(\"date\"),\n from: readCalendarString(\"from\"),\n to: readCalendarString(\"to\"),\n past: options.past === true ? true : undefined,\n fullPeriod: options.fullPeriod === true || options.full_period === true ? true : undefined,\n limit: readCalendarString(\"limit\"),\n type: readCalendarString(\"type\"),\n tag: readCalendarString(\"tag\"),\n priority: readCalendarString(\"priority\"),\n status: readCalendarString(\"status\"),\n assignee: readCalendarString(\"assignee\"),\n assigneeFilter: readCalendarString(\"assigneeFilter\"),\n sprint: readCalendarString(\"sprint\"),\n release: readCalendarString(\"release\"),\n include: readCalendarString(\"include\"),\n recurrenceLookaheadDays: readCalendarString(\"recurrenceLookaheadDays\"),\n recurrenceLookbackDays: readCalendarString(\"recurrenceLookbackDays\"),\n occurrenceLimit: readCalendarString(\"occurrenceLimit\"),\n format: readCalendarString(\"format\"),\n };\n for (const [key, value] of Object.entries(options)) {\n if (Object.hasOwn(normalized, key)) {\n continue;\n }\n normalized[key] = value;\n }\n return normalized as CalendarOptions;\n}\n\nfunction normalizeActivityOptions(options: Record<string, unknown>): {\n id?: string;\n op?: string;\n author?: string;\n from?: string;\n to?: string;\n limit?: string;\n compact?: boolean;\n} {\n const readActivityString = (target: string): string | undefined =>\n readFirstStringFromCommanderOptions(\n options,\n ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS.find((entry) => entry.target === target) ?? {\n target,\n keys: [target],\n },\n );\n return {\n id: readActivityString(\"id\"),\n op: readActivityString(\"op\"),\n author: readActivityString(\"author\"),\n from: readActivityString(\"from\"),\n to: readActivityString(\"to\"),\n limit: readActivityString(\"limit\"),\n compact: options.compact === true ? true : undefined,\n };\n}\n\nfunction resolveActivityStreamMode(raw: unknown): boolean {\n if (raw === true) {\n return true;\n }\n if (raw === false || raw === undefined || raw === null) {\n return false;\n }\n if (typeof raw === \"string\") {\n const normalized = raw.trim().toLowerCase();\n if (\n normalized.length === 0 ||\n normalized === \"rows\" ||\n normalized === \"ndjson\" ||\n normalized === \"jsonl\" ||\n normalized === \"true\" ||\n normalized === \"1\" ||\n normalized === \"yes\" ||\n normalized === \"on\"\n ) {\n return true;\n }\n if (normalized === \"false\" || normalized === \"off\" || normalized === \"none\" || normalized === \"0\") {\n return false;\n }\n }\n throw new PmCliError(\"Activity --stream accepts rows|ndjson|jsonl (or no value)\", EXIT_CODE.USAGE);\n}\n\nfunction normalizeContextOptions(options: Record<string, unknown>): ContextOptions {\n const readContextString = (target: string): string | undefined =>\n readFirstStringFromCommanderOptions(\n options,\n CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS.find((entry) => entry.target === target) ?? {\n target,\n keys: [target],\n },\n );\n const normalized: Record<string, unknown> = {\n date: readContextString(\"date\"),\n from: readContextString(\"from\"),\n to: readContextString(\"to\"),\n past: options.past === true ? true : undefined,\n type: readContextString(\"type\"),\n tag: readContextString(\"tag\"),\n priority: readContextString(\"priority\"),\n assignee: readContextString(\"assignee\"),\n assigneeFilter: readContextString(\"assigneeFilter\"),\n sprint: readContextString(\"sprint\"),\n release: readContextString(\"release\"),\n limit: readContextString(\"limit\"),\n format: readContextString(\"format\"),\n };\n for (const [key, value] of Object.entries(options)) {\n if (Object.hasOwn(normalized, key)) {\n continue;\n }\n normalized[key] = value;\n }\n return normalized as ContextOptions;\n}\n\nfunction resolveCliVersion(): string {\n try {\n const currentFilePath = fileURLToPath(import.meta.url);\n const packageJsonPath = path.resolve(path.dirname(currentFilePath), \"../../package.json\");\n const raw = fs.readFileSync(packageJsonPath, \"utf8\");\n const parsed = JSON.parse(raw) as { version?: unknown };\n return typeof parsed.version === \"string\" ? parsed.version : \"0.0.0\";\n } catch {\n return \"0.0.0\";\n }\n}\n\nconst CLI_VERSION = resolveCliVersion();\n\nconst program = new Command();\nprogram\n .name(\"pm\")\n .description(\"Universal, flexible, extensible, agent-optimized project management CLI for any project or programming language.\")\n .version(CLI_VERSION)\n .showHelpAfterError(false)\n .allowExcessArguments(false)\n .allowUnknownOption(false)\n .configureOutput({\n writeOut: (str) => {\n writeStdout(str);\n },\n // Commander errors are rendered in our own catch path.\n writeErr: () => {},\n })\n .option(\"--json\", \"Output JSON instead of TOON\")\n .option(\"--quiet\", \"Suppress stdout output\")\n .option(\"--path <dir>\", \"Override PM path for this command\")\n .option(\"--no-extensions\", \"Disable extension loading\")\n .option(\"--no-pager\", \"Disable pager integration for help and long output\")\n .option(\"--explain\", \"Render extended rationale and examples in help output\")\n .option(\"--profile\", \"Print deterministic timing diagnostics\")\n .exitOverride();\n\nprogram.hook(\"preAction\", async (_thisCommand, actionCommand) => {\n activeExtensionHookContext = null;\n activeTelemetryCommandContext = null;\n clearActiveExtensionHooks();\n clearResolvedGlobalOptions(actionCommand);\n const bootstrapGlobalOptions = getGlobalOptions(actionCommand);\n const commandPath = getCommandPath(actionCommand);\n let commandArgs = actionCommand.args.map(String);\n let commandOptions = extractCommandScopedOptions(actionCommand, commandArgs);\n let globalOptions = { ...bootstrapGlobalOptions };\n await maybeRunFirstUseTelemetryPrompt(commandPath, globalOptions);\n const fallbackPmRoot = resolvePmRoot(process.cwd(), bootstrapGlobalOptions.path);\n const runtimeExtensions = await maybeLoadRuntimeExtensions(actionCommand);\n if (!runtimeExtensions) {\n activeTelemetryCommandContext = await startTelemetryCommand({\n command: commandPath,\n pm_version: CLI_VERSION,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: fallbackPmRoot,\n });\n sentrySetCommandContext(commandPath, commandArgs, commandOptions);\n sentryStartCommandSpan(commandPath);\n await enforceItemFormatWriteGateAndPreflightMigration(\n commandPath,\n commandOptions,\n fallbackPmRoot,\n defaultPreflightDecision(),\n );\n return;\n }\n\n setActiveExtensionHooks(runtimeExtensions.hooks);\n setActiveExtensionCommands(runtimeExtensions.commands);\n setActiveExtensionParsers(runtimeExtensions.parsers);\n setActiveExtensionPreflight(runtimeExtensions.preflight);\n setActiveExtensionServices(runtimeExtensions.services);\n setActiveExtensionRenderers(runtimeExtensions.renderers);\n setActiveExtensionRegistrations(runtimeExtensions.registrations);\n\n const extensionFlagDefinitions = collectExtensionFlagDefinitionsForCommand(runtimeExtensions.registrations, commandPath);\n commandOptions = extractCommandScopedOptions(actionCommand, commandArgs, extensionFlagDefinitions);\n const parserOverride = await runActiveParserOverride({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: runtimeExtensions.pmRoot,\n });\n if (globalOptions.profile && parserOverride.warnings.length > 0) {\n printError(`profile:extensions parser_warnings=${formatHookWarnings(parserOverride.warnings)}`);\n }\n commandArgs = parserOverride.context.args;\n commandOptions = parserOverride.context.options;\n globalOptions = parserOverride.context.global;\n\n const preflightOverride = await runActivePreflightOverride({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: runtimeExtensions.pmRoot,\n decision: defaultPreflightDecision(),\n });\n if (globalOptions.profile && preflightOverride.warnings.length > 0) {\n printError(`profile:extensions preflight_warnings=${formatHookWarnings(preflightOverride.warnings)}`);\n }\n commandArgs = preflightOverride.context.args;\n commandOptions = preflightOverride.context.options;\n globalOptions = preflightOverride.context.global;\n const preflightDecision = preflightOverride.decision;\n\n await enforceItemFormatWriteGateAndPreflightMigration(\n commandPath,\n commandOptions,\n runtimeExtensions.pmRoot,\n preflightDecision,\n );\n\n const migrationWarnings = preflightDecision.run_extension_migrations\n ? await executeRegisteredRuntimeMigrations(runtimeExtensions.registrations.migrations, runtimeExtensions.pmRoot)\n : [];\n if (globalOptions.profile && migrationWarnings.length > 0) {\n printError(`profile:extensions migration_warnings=${formatHookWarnings(migrationWarnings)}`);\n }\n const migrationBlockers = collectMandatoryMigrationBlockers(runtimeExtensions.registrations.migrations);\n activeExtensionHookContext = {\n hooks: runtimeExtensions.hooks,\n commandName: commandPath,\n commandArgs,\n commandOptions: { ...commandOptions },\n globalOptions: { ...globalOptions },\n pmRoot: runtimeExtensions.pmRoot,\n profileEnabled: Boolean(globalOptions.profile),\n migrationBlockers,\n };\n setActiveCommandResult(undefined);\n setActiveCommandContext({\n command: commandPath,\n args: commandArgs,\n options: { ...commandOptions },\n global: { ...globalOptions },\n pm_root: runtimeExtensions.pmRoot,\n });\n activeTelemetryCommandContext = await startTelemetryCommand({\n command: commandPath,\n pm_version: CLI_VERSION,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: runtimeExtensions.pmRoot,\n });\n sentrySetCommandContext(commandPath, commandArgs, commandOptions);\n sentryStartCommandSpan(commandPath);\n\n const hookWarnings = await runBeforeCommandHooks(runtimeExtensions.hooks, {\n command: commandPath,\n args: commandArgs,\n options: { ...commandOptions },\n global: { ...globalOptions },\n pm_root: runtimeExtensions.pmRoot,\n });\n if (globalOptions.profile && hookWarnings.length > 0) {\n printError(`profile:extensions hook_warnings=${formatHookWarnings(hookWarnings)}`);\n }\n if (preflightDecision.enforce_mandatory_migration_gate) {\n enforceMandatoryMigrationWriteGate(commandPath, commandOptions, migrationBlockers);\n }\n});\n\nprogram.hook(\"postAction\", async () => {\n sentryFinishCommandSpan(true);\n await runAndClearAfterCommandHooks({ ok: true });\n});\n\nprogram\n .command(\"init\")\n .argument(\"[prefix]\", \"Optional id prefix\")\n .option(\"--preset <value>\", \"Governance preset for new setups: minimal|default|strict\")\n .description(\"Initialize pm storage and defaults for the current workspace.\")\n .action(async (prefix: string | undefined, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runInit(\n prefix,\n globalOptions,\n {\n preset: typeof options.preset === \"string\" ? options.preset : undefined,\n },\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=init took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"config\")\n .argument(\"<scope>\", \"Config scope: project|global\")\n .argument(\"<action>\", \"Config action: get|set|list|export\")\n .argument(\n \"[key]\",\n \"Config key for get|set: definition-of-done|item-format|history-missing-stream-policy|sprint-release-format-policy|parent-reference-policy|metadata-validation-profile|metadata-required-fields|lifecycle-stale-blocker-reason-patterns|lifecycle-closure-like-blocked-reason-patterns|lifecycle-closure-like-resolution-patterns|lifecycle-closure-like-actual-result-patterns|governance-preset|governance-ownership-enforcement|governance-create-mode-default|governance-close-validation-default|governance-parent-reference-policy|governance-metadata-validation-profile|governance-force-required-for-stale-lock|test-result-tracking|telemetry-tracking\",\n )\n .option(\n \"--criterion <text>\",\n \"Criteria value for definition-of-done, metadata-required-fields, or lifecycle pattern keys (repeatable for set)\",\n collect,\n )\n .option(\"--clear-criteria\", \"Clear criteria-list keys for config set operations\")\n .option(\"--format <value>\", \"Item format for item-format key: toon|json_markdown\")\n .option(\n \"--policy <value>\",\n \"Policy key values: history-missing-stream-policy=auto_create|strict_error; sprint-release-format-policy=warn|strict_error; parent-reference-policy=warn|strict_error; governance-preset=minimal|default|strict|custom; governance-ownership-enforcement=none|warn|strict; governance-create-mode-default=progressive|strict; governance-close-validation-default=off|warn|strict; governance-parent-reference-policy=warn|strict_error; governance-metadata-validation-profile=core|strict|custom; governance-force-required-for-stale-lock=enabled|disabled; test-result-tracking=enabled|disabled; telemetry-tracking=enabled|disabled\",\n )\n .description(\"Read or update pm settings for the current workspace or global profile.\")\n .action(async (scope: string, action: string, key: string | undefined, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const criteria = Array.isArray(options.criterion) ? (options.criterion as string[]) : [];\n const result = await runConfig(\n scope,\n action,\n key,\n {\n criterion: criteria,\n format: typeof options.format === \"string\" ? options.format : undefined,\n policy: typeof options.policy === \"string\" ? options.policy : undefined,\n clearCriteria: options.clearCriteria === true,\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=config took_ms=${Date.now() - startedAt}`);\n }\n });\n\ntype ExtensionSubcommandAction =\n | \"init\"\n | \"install\"\n | \"uninstall\"\n | \"explore\"\n | \"manage\"\n | \"doctor\"\n | \"adopt\"\n | \"adopt-all\"\n | \"activate\"\n | \"deactivate\";\n\nfunction normalizeExtensionOptions(\n options: Record<string, unknown>,\n forcedAction?: ExtensionSubcommandAction,\n): Record<string, unknown> {\n const isForcedAction = (action: ExtensionSubcommandAction): boolean => forcedAction === action;\n const readBoolean = (...keys: string[]): boolean => keys.some((key) => options[key] === true);\n const readString = (...keys: string[]): string | undefined => {\n for (const key of keys) {\n if (typeof options[key] === \"string\") {\n return options[key] as string;\n }\n }\n return undefined;\n };\n return {\n init: isForcedAction(\"init\") || readBoolean(\"init\"),\n scaffold: readBoolean(\"scaffold\"),\n install: isForcedAction(\"install\") || readBoolean(\"install\"),\n uninstall: isForcedAction(\"uninstall\") || readBoolean(\"uninstall\"),\n explore: isForcedAction(\"explore\") || readBoolean(\"explore\"),\n manage: isForcedAction(\"manage\") || readBoolean(\"manage\"),\n doctor: isForcedAction(\"doctor\") || readBoolean(\"doctor\"),\n adopt: isForcedAction(\"adopt\") || readBoolean(\"adopt\"),\n adoptAll: isForcedAction(\"adopt-all\") || readBoolean(\"adoptAll\", \"adopt_all\", \"adopt-all\"),\n activate: isForcedAction(\"activate\") || readBoolean(\"activate\"),\n deactivate: isForcedAction(\"deactivate\") || readBoolean(\"deactivate\"),\n project: readBoolean(\"project\"),\n local: readBoolean(\"local\"),\n global: readBoolean(\"global\"),\n gh: readString(\"gh\"),\n github: readString(\"github\"),\n ref: readString(\"ref\"),\n detail: readString(\"detail\"),\n trace: readBoolean(\"trace\"),\n runtimeProbe: readBoolean(\"runtimeProbe\", \"runtime_probe\", \"runtime-probe\"),\n fixManagedState: readBoolean(\"fixManagedState\", \"fix_managed_state\", \"fix-managed-state\"),\n strictExit: readBoolean(\"strictExit\", \"strict_exit\", \"strict-exit\"),\n failOnWarn: readBoolean(\"failOnWarn\", \"fail_on_warn\", \"fail-on-warn\"),\n };\n}\n\nasync function executeExtensionCommand(\n target: string | undefined,\n options: Record<string, unknown>,\n command: Command,\n forcedAction?: ExtensionSubcommandAction,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const normalizedOptions = normalizeExtensionOptions(options, forcedAction);\n const result = await runExtension(target, normalizedOptions, globalOptions);\n printResult(result, globalOptions);\n const strictExit = Boolean(normalizedOptions.strictExit) || Boolean(normalizedOptions.failOnWarn);\n if (result.action === \"doctor\" && strictExit) {\n const detailsRecord = result.details as Record<string, unknown>;\n const summary = (detailsRecord.summary ?? null) as Record<string, unknown> | null;\n const summaryStatus = summary && typeof summary.status === \"string\" ? summary.status : undefined;\n const shouldFail = summaryStatus ? summaryStatus !== \"ok\" : result.warnings.length > 0;\n if (shouldFail) {\n process.exitCode = EXIT_CODE.GENERIC_FAILURE;\n }\n }\n if (globalOptions.profile) {\n printError(`profile:command=extension took_ms=${Date.now() - startedAt}`);\n }\n}\n\nfunction addExtensionScopeOptions<T extends Command>(command: T): T {\n return command\n .option(\"--project\", \"Use project extension scope (default)\")\n .option(\"--local\", \"Alias for --project\")\n .option(\"--global\", \"Use global extension scope\");\n}\n\nconst extensionCommand = program\n .command(\"extension\")\n .argument(\"[target]\", \"Extension source/name or scaffold target path (for --init/--scaffold)\")\n .option(\"--init\", \"Generate a starter extension scaffold at target path\")\n .option(\"--scaffold\", \"Alias for --init\")\n .option(\"--install\", \"Install extension from local path or GitHub source\")\n .option(\"--uninstall\", \"Uninstall an installed extension\")\n .option(\"--explore\", \"List discovered extensions in selected scope\")\n .option(\"--manage\", \"List managed extensions with update-check metadata\")\n .option(\"--doctor\", \"Run consolidated extension diagnostics (summary/deep modes)\")\n .option(\"--adopt\", \"Adopt an existing unmanaged extension into managed metadata\")\n .option(\"--adopt-all\", \"Adopt all unmanaged extensions into managed metadata\")\n .option(\"--activate\", \"Activate an extension in selected scope settings\")\n .option(\"--deactivate\", \"Deactivate an extension in selected scope settings\")\n .option(\"--project\", \"Use project extension scope (default)\")\n .option(\"--local\", \"Alias for --project\")\n .option(\"--global\", \"Use global extension scope\")\n .option(\"--gh <owner/repo[/path]>\", \"Install from GitHub shorthand source\")\n .option(\"--github <owner/repo[/path]>\", \"Alias for --gh\")\n .option(\"--ref <ref>\", \"Git ref/branch/tag for GitHub install sources\")\n .option(\"--detail <mode>\", \"Detail mode for extension diagnostics (summary|deep)\")\n .option(\"--trace\", \"Include actionable registration traces in doctor deep diagnostics\")\n .option(\"--runtime-probe\", \"Opt-in runtime activation probe for manage output parity\")\n .option(\"--fix-managed-state\", \"Adopt unmanaged extensions before diagnostics/update checks\")\n .option(\"--strict-exit\", \"Return non-zero exit when doctor warnings are present (ok=false)\")\n .option(\"--fail-on-warn\", \"Alias for --strict-exit (doctor)\")\n .description(\"Manage extension lifecycle operations for project or global scope.\")\n .action(async (target: string | undefined, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command);\n });\n\naddExtensionScopeOptions(\n extensionCommand\n .command(\"init\")\n .alias(\"scaffold\")\n .argument(\"<target>\", \"Scaffold target directory path\")\n .description(\"Generate a starter extension scaffold with manifest and entrypoint.\"),\n).action(async (target: string, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"init\");\n});\n\naddExtensionScopeOptions(\n extensionCommand\n .command(\"install\")\n .argument(\"[target]\", \"Extension source (local path or GitHub source)\")\n .option(\"--gh <owner/repo[/path]>\", \"Install from GitHub shorthand source\")\n .option(\"--github <owner/repo[/path]>\", \"Alias for --gh\")\n .option(\"--ref <ref>\", \"Git ref/branch/tag for GitHub install sources\")\n .description(\"Install extension from local path or GitHub source.\"),\n).action(async (target: string | undefined, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"install\");\n});\n\naddExtensionScopeOptions(\n extensionCommand.command(\"uninstall\").argument(\"<target>\", \"Extension name\").description(\"Uninstall an installed extension.\"),\n).action(async (target: string, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"uninstall\");\n});\n\naddExtensionScopeOptions(extensionCommand.command(\"explore\").description(\"List discovered extensions in selected scope.\")).action(\n async (_options: Record<string, unknown>, command) => {\n await executeExtensionCommand(undefined, command.opts() as Record<string, unknown>, command, \"explore\");\n },\n);\n\naddExtensionScopeOptions(\n extensionCommand\n .command(\"manage\")\n .option(\"--runtime-probe\", \"Opt-in runtime activation probe for manage output parity\")\n .option(\"--fix-managed-state\", \"Adopt unmanaged extensions before diagnostics/update checks\")\n .description(\"List managed extensions with update-check metadata.\"),\n).action(async (_options: Record<string, unknown>, command) => {\n await executeExtensionCommand(undefined, command.opts() as Record<string, unknown>, command, \"manage\");\n});\n\naddExtensionScopeOptions(\n extensionCommand\n .command(\"doctor\")\n .option(\"--detail <mode>\", \"Detail mode for extension diagnostics (summary|deep)\")\n .option(\"--trace\", \"Include actionable registration traces in doctor deep diagnostics\")\n .option(\"--fix-managed-state\", \"Adopt unmanaged extensions before diagnostics/update checks\")\n .option(\"--strict-exit\", \"Return non-zero exit when doctor warnings are present (ok=false)\")\n .option(\"--fail-on-warn\", \"Alias for --strict-exit (doctor)\")\n .description(\"Run consolidated extension diagnostics (summary/deep modes).\"),\n).action(async (_options: Record<string, unknown>, command) => {\n await executeExtensionCommand(undefined, command.opts() as Record<string, unknown>, command, \"doctor\");\n});\n\naddExtensionScopeOptions(\n extensionCommand\n .command(\"adopt\")\n .argument(\"<target>\", \"Extension name\")\n .option(\"--gh <owner/repo[/path]>\", \"GitHub provenance shorthand for adopted extension\")\n .option(\"--github <owner/repo[/path]>\", \"Alias for --gh\")\n .option(\"--ref <ref>\", \"Git ref/branch/tag for GitHub shorthand source\")\n .description(\"Adopt an existing unmanaged extension into managed metadata.\"),\n).action(async (target: string, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"adopt\");\n});\n\naddExtensionScopeOptions(\n extensionCommand.command(\"adopt-all\").description(\"Adopt all unmanaged extensions into managed metadata.\"),\n).action(async (_options: Record<string, unknown>, command) => {\n await executeExtensionCommand(undefined, command.opts() as Record<string, unknown>, command, \"adopt-all\");\n});\n\naddExtensionScopeOptions(\n extensionCommand.command(\"activate\").argument(\"<target>\", \"Extension name\").description(\"Activate an extension in selected scope settings.\"),\n).action(async (target: string, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"activate\");\n});\n\naddExtensionScopeOptions(\n extensionCommand.command(\"deactivate\").argument(\"<target>\", \"Extension name\").description(\"Deactivate an extension in selected scope settings.\"),\n).action(async (target: string, _options: Record<string, unknown>, command) => {\n await executeExtensionCommand(target, command.opts() as Record<string, unknown>, command, \"deactivate\");\n});\n\nconst templatesCommand = program\n .command(\"templates\")\n .description(\"Manage reusable create templates.\")\n .action(async () => {\n const globalOptions = program.opts<GlobalOptions>();\n const result = await runTemplatesList(globalOptions);\n printResult(result, globalOptions);\n });\n\ntemplatesCommand\n .command(\"save\")\n .argument(\"<name>\", \"Template name\")\n .option(\"--title, -t <value>\", \"Template default item title\")\n .option(\"--description, -d <value>\", \"Template default item description\")\n .option(\"--type <value>\", \"Template default item type\")\n .option(\"--status, -s <value>\", \"Template default item status\")\n .option(\"--priority, -p <value>\", \"Template default priority 0..4\")\n .option(\"--tags <value>\", \"Template default comma-separated tags\")\n .option(\"--body, -b <value>\", \"Template default item markdown body\")\n .option(\"--deadline <value>\", \"Template default deadline\")\n .option(\"--estimate, --estimated-minutes <value>\", \"Template default estimated minutes\")\n .option(\"--estimated_minutes <value>\", \"Alias for --estimated-minutes\")\n .option(\"--acceptance-criteria <value>\", \"Template default acceptance criteria\")\n .option(\"--acceptance_criteria <value>\", \"Alias for --acceptance-criteria\")\n .option(\"--ac <value>\", \"Alias for --acceptance-criteria\")\n .option(\"--definition-of-ready <value>\", \"Template default definition of ready\")\n .option(\"--definition_of_ready <value>\", \"Alias for --definition-of-ready\")\n .option(\"--order <value>\", \"Template default planning order/rank integer\")\n .option(\"--rank <value>\", \"Alias for --order\")\n .option(\"--goal <value>\", \"Template default goal identifier\")\n .option(\"--objective <value>\", \"Template default objective identifier\")\n .option(\"--value <value>\", \"Template default business value summary\")\n .option(\"--impact <value>\", \"Template default business impact summary\")\n .option(\"--outcome <value>\", \"Template default expected outcome summary\")\n .option(\"--why-now <value>\", \"Template default why-now rationale\")\n .option(\"--why_now <value>\", \"Alias for --why-now\")\n .option(\"--author <value>\", \"Template default mutation author\")\n .option(\"--message <value>\", \"Template default history message\")\n .option(\"--assignee <value>\", \"Template default assignee\")\n .option(\"--parent <value>\", \"Template default parent item ID\")\n .option(\"--reviewer <value>\", \"Template default reviewer\")\n .option(\"--risk <value>\", \"Template default risk level\")\n .option(\"--confidence <value>\", \"Template default confidence\")\n .option(\"--sprint <value>\", \"Template default sprint identifier\")\n .option(\"--release <value>\", \"Template default release identifier\")\n .option(\"--blocked-by <value>\", \"Template default blocked-by item ID or reason\")\n .option(\"--blocked_by <value>\", \"Alias for --blocked-by\")\n .option(\"--blocked-reason <value>\", \"Template default blocked reason\")\n .option(\"--blocked_reason <value>\", \"Alias for --blocked-reason\")\n .option(\"--unblock-note <value>\", \"Template default unblock rationale note\")\n .option(\"--unblock_note <value>\", \"Alias for --unblock-note\")\n .option(\"--reporter <value>\", \"Template default issue reporter\")\n .option(\"--severity <value>\", \"Template default issue severity\")\n .option(\"--environment <value>\", \"Template default issue environment context\")\n .option(\"--repro-steps <value>\", \"Template default issue reproduction steps\")\n .option(\"--repro_steps <value>\", \"Alias for --repro-steps\")\n .option(\"--resolution <value>\", \"Template default issue resolution summary\")\n .option(\"--expected-result <value>\", \"Template default issue expected behavior\")\n .option(\"--expected_result <value>\", \"Alias for --expected-result\")\n .option(\"--actual-result <value>\", \"Template default issue observed behavior\")\n .option(\"--actual_result <value>\", \"Alias for --actual-result\")\n .option(\"--affected-version <value>\", \"Template default affected version identifier\")\n .option(\"--affected_version <value>\", \"Alias for --affected-version\")\n .option(\"--fixed-version <value>\", \"Template default fixed version identifier\")\n .option(\"--fixed_version <value>\", \"Alias for --fixed-version\")\n .option(\"--component <value>\", \"Template default issue component ownership\")\n .option(\"--regression <value>\", \"Template default regression marker\")\n .option(\"--customer-impact <value>\", \"Template default customer impact summary\")\n .option(\"--customer_impact <value>\", \"Alias for --customer-impact\")\n .option(\n \"--dep <value>\",\n \"Template default dependency entry (repeatable; CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .option(\n \"--type-option <value>\",\n \"Template default type option entry (repeatable; key=value or markdown pairs; use - for stdin)\",\n collect,\n )\n .option(\"--type_option <value>\", \"Alias for --type-option\", collect)\n .option(\n \"--reminder <value>\",\n \"Template default reminder entry (repeatable; at=<iso|relative>,text=<text>)\",\n collect,\n )\n .option(\n \"--event <value>\",\n \"Template default event entry (repeatable; start/end/title/recur_* fields)\",\n collect,\n )\n .option(\n \"--comment <value>\",\n \"Template default comment seed entry (repeatable; text=<value> CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .option(\n \"--note <value>\",\n \"Template default note seed entry (repeatable; text=<value> CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .option(\n \"--learning <value>\",\n \"Template default learning seed entry (repeatable; text=<value> CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .option(\n \"--file <value>\",\n \"Template default linked file entry (repeatable; CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .option(\n \"--test <value>\",\n \"Template default linked test entry (repeatable; CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .option(\n \"--doc <value>\",\n \"Template default linked doc entry (repeatable; CSV/markdown pairs or - for stdin)\",\n collect,\n )\n .description(\"Save or update a named create template.\")\n .action(async (name: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const normalized = normalizeCreateOptions(options, { requireType: false }) as unknown as Record<string, unknown>;\n const result = await runTemplatesSave(name, normalized, globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=templates save took_ms=${Date.now() - startedAt}`);\n }\n });\n\ntemplatesCommand\n .command(\"list\")\n .description(\"List saved create templates.\")\n .action(async (_options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runTemplatesList(globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=templates list took_ms=${Date.now() - startedAt}`);\n }\n });\n\ntemplatesCommand\n .command(\"show\")\n .argument(\"<name>\", \"Template name\")\n .description(\"Show saved create template details.\")\n .action(async (name: string, _options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runTemplatesShow(name, globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=templates show took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"create\")\n .description(\"Create a new project management item.\")\n .requiredOption(\"--title, -t <value>\", \"Item title\")\n .requiredOption(\"--description, -d <value>\", \"Item description (allow empty string)\")\n .option(\"--type <value>\", \"Item type (built-ins plus any configured custom types)\")\n .option(\"--template <value>\", \"Apply named create template defaults before explicit flags\")\n .option(\"--create-mode <value>\", \"Create required-option policy mode: strict|progressive\")\n .option(\"--create_mode <value>\", \"Alias for --create-mode\")\n .option(\"--schedule-preset <value>\", \"Scheduling preset for Reminder|Meeting|Event: lightweight\")\n .option(\"--schedule_preset <value>\", \"Alias for --schedule-preset\")\n .option(\"--status, -s <value>\", \"Item status\")\n .option(\"--priority, -p <value>\", \"Priority 0..4\")\n .option(\"--tags <value>\", \"Comma-separated tags\")\n .option(\"--body, -b <value>\", \"Item markdown body (allow empty string)\")\n .option(\"--deadline <value>\", \"Deadline (ISO/date string or relative +6h/+1d/+2w/+6m)\")\n .option(\"--estimate, --estimated-minutes <value>\", \"Estimated minutes\")\n .option(\"--estimated_minutes <value>\", \"Alias for --estimated-minutes\")\n .option(\"--acceptance-criteria <value>\", \"Acceptance criteria (allow empty string)\")\n .option(\"--acceptance_criteria <value>\", \"Alias for --acceptance-criteria\")\n .option(\"--ac <value>\", \"Alias for --acceptance-criteria\")\n .option(\"--definition-of-ready <value>\", \"Definition of ready (allow empty string)\")\n .option(\"--definition_of_ready <value>\", \"Alias for --definition-of-ready\")\n .option(\"--order <value>\", \"Planning order/rank integer\")\n .option(\"--rank <value>\", \"Alias for --order\")\n .option(\"--goal <value>\", \"Goal identifier\")\n .option(\"--objective <value>\", \"Objective identifier\")\n .option(\"--value <value>\", \"Business value summary\")\n .option(\"--impact <value>\", \"Business impact summary\")\n .option(\"--outcome <value>\", \"Expected outcome summary\")\n .option(\"--why-now <value>\", \"Why-now rationale\")\n .option(\"--why_now <value>\", \"Alias for --why-now\")\n .option(\"--author <value>\", \"Mutation author\")\n .option(\"--message <value>\", \"History message (allow empty string)\")\n .option(\"--assignee <value>\", \"Item assignee\")\n .option(\"--parent <value>\", \"Parent item ID\")\n .option(\"--reviewer <value>\", \"Reviewer\")\n .option(\"--risk <value>\", \"Risk level: low|med|medium|high|critical (med persists as medium)\")\n .option(\"--confidence <value>\", \"Confidence level: 0..100|low|med|medium|high (med persists as medium)\")\n .option(\"--sprint <value>\", \"Sprint identifier\")\n .option(\"--release <value>\", \"Release identifier\")\n .option(\"--blocked-by <value>\", \"Blocked-by item ID or reason\")\n .option(\"--blocked_by <value>\", \"Alias for --blocked-by\")\n .option(\"--blocked-reason <value>\", \"Blocked reason\")\n .option(\"--blocked_reason <value>\", \"Alias for --blocked-reason\")\n .option(\"--unblock-note <value>\", \"Unblock rationale note\")\n .option(\"--unblock_note <value>\", \"Alias for --unblock-note\")\n .option(\"--reporter <value>\", \"Issue reporter\")\n .option(\"--severity <value>\", \"Issue severity: low|med|medium|high|critical (med persists as medium)\")\n .option(\"--environment <value>\", \"Issue environment context\")\n .option(\"--repro-steps <value>\", \"Issue reproduction steps\")\n .option(\"--repro_steps <value>\", \"Alias for --repro-steps\")\n .option(\"--resolution <value>\", \"Issue resolution summary\")\n .option(\"--expected-result <value>\", \"Issue expected behavior\")\n .option(\"--expected_result <value>\", \"Alias for --expected-result\")\n .option(\"--actual-result <value>\", \"Issue observed behavior\")\n .option(\"--actual_result <value>\", \"Alias for --actual-result\")\n .option(\"--affected-version <value>\", \"Affected version identifier\")\n .option(\"--affected_version <value>\", \"Alias for --affected-version\")\n .option(\"--fixed-version <value>\", \"Fixed version identifier\")\n .option(\"--fixed_version <value>\", \"Alias for --fixed-version\")\n .option(\"--component <value>\", \"Issue component ownership\")\n .option(\"--regression <value>\", \"Regression marker: true|false|1|0\")\n .option(\"--customer-impact <value>\", \"Customer impact summary\")\n .option(\"--customer_impact <value>\", \"Alias for --customer-impact\")\n .option(\n \"--dep <value>\",\n \"Seed dependency entry (key=value CSV, markdown key:value lines, or - for stdin; repeatable)\",\n collect,\n )\n .option(\n \"--type-option <value>\",\n \"Type option key=value or key=<name>,value=<value> (also accepts key:value and markdown pairs; use - for stdin; repeatable)\",\n collect,\n )\n .option(\"--type_option <value>\", \"Alias for --type-option\", collect)\n .option(\"--unset <field>\", \"Clear scalar metadata field by name (repeatable)\", collect)\n .option(\"--clear-deps\", \"Clear dependency entries\")\n .option(\"--clear-comments\", \"Clear comments\")\n .option(\"--clear-notes\", \"Clear notes\")\n .option(\"--clear-learnings\", \"Clear learnings\")\n .option(\"--clear-files\", \"Clear linked files\")\n .option(\"--clear-tests\", \"Clear linked tests\")\n .option(\"--clear-docs\", \"Clear linked docs\")\n .option(\"--clear-reminders\", \"Clear reminders\")\n .option(\"--clear-events\", \"Clear events\")\n .option(\"--clear-type-options\", \"Clear type options\")\n .option(\n \"--reminder <value>\",\n \"Seed reminder entry at=<iso|relative>,text=<text> (also accepts markdown pairs and - for stdin; repeatable)\",\n collect,\n )\n .option(\n \"--event <value>\",\n \"Seed event entry start=<iso|relative>,end=<iso|relative>,title=<text>,all_day=<true|false>,recur_* fields (also accepts markdown pairs and - for stdin; repeatable)\",\n collect,\n )\n .option(\n \"--comment <value>\",\n \"Seed comment entry (text=<value> CSV/markdown pairs or - for stdin; repeatable)\",\n collect,\n )\n .option(\n \"--note <value>\",\n \"Seed note entry (text=<value> CSV/markdown pairs or - for stdin; repeatable)\",\n collect,\n )\n .option(\n \"--learning <value>\",\n \"Seed learning entry (text=<value> CSV/markdown pairs or - for stdin; repeatable)\",\n collect,\n )\n .option(\n \"--file <value>\",\n \"Seed linked file entry (CSV/markdown pairs or - for stdin; repeatable)\",\n collect,\n )\n .option(\n \"--test <value>\",\n \"Seed linked test entry (CSV/markdown pairs or - for stdin; repeatable)\",\n collect,\n )\n .option(\n \"--doc <value>\",\n \"Seed linked doc entry (CSV/markdown pairs or - for stdin; repeatable)\",\n collect,\n )\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const normalized = normalizeCreateOptions(options, { requireType: false });\n const result = await runCreate(normalized, globalOptions);\n await invalidateSearchCachesForMutation(globalOptions, result);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=create took_ms=${Date.now() - startedAt}`);\n }\n });\n\nfunction registerListCommand(\n name: string,\n description: string,\n status?: ItemStatus,\n excludeTerminal?: boolean,\n allowStatusFilter?: boolean,\n): void {\n const command = program.command(name).description(description);\n if (allowStatusFilter) {\n command.option(\"--status <value>\", \"Filter by status\");\n }\n command\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\n .option(\"--assignee_filter <value>\", \"Alias for --assignee-filter\")\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\"--limit <n>\", \"Limit returned item count\")\n .option(\"--offset <n>\", \"Skip the first n matching rows before limit is applied\")\n .option(\"--include-body\", \"Include item body in each returned list row\")\n .option(\"--compact\", \"Render compact list projection fields (mutually exclusive with --brief/--fields)\")\n .option(\"--brief\", \"Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--fields)\")\n .option(\n \"--fields <value>\",\n \"Render custom comma-separated list fields (mutually exclusive with --compact/--brief; valid: --fields id,title)\",\n )\n .option(\"--sort <value>\", \"Sort field: priority|deadline|updated_at|created_at|title|parent\")\n .option(\"--order <value>\", \"Sort order: asc|desc (requires --sort)\")\n .option(\"--stream\", \"Emit line-delimited JSON rows (requires --json)\")\n .action(async (options: Record<string, unknown>, actionCommand) => {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const listOptions = normalizeListOptions(options);\n if (excludeTerminal) listOptions.excludeTerminal = true;\n const result = await runList(status, listOptions, globalOptions);\n const streamMode = options.stream === true;\n if (streamMode && !globalOptions.json) {\n throw new PmCliError(\"--stream requires --json output mode.\", EXIT_CODE.USAGE);\n }\n if (streamMode) {\n printListJsonStream(name, result, globalOptions);\n } else {\n printResult(result, globalOptions);\n }\n if (globalOptions.profile) {\n printError(`profile:command=${name} took_ms=${Date.now() - startedAt}`);\n }\n });\n}\n\nregisterListCommand(\"list\", \"List active items with optional filters.\", undefined, true, true);\nregisterListCommand(\"list-all\", \"List all items with optional filters.\", undefined, false, true);\nregisterListCommand(\"list-draft\", \"List draft items with optional filters.\", \"draft\");\nregisterListCommand(\"list-open\", \"List open items with optional filters.\", \"open\");\nregisterListCommand(\"list-in-progress\", \"List in-progress items with optional filters.\", \"in_progress\");\nregisterListCommand(\"list-blocked\", \"List blocked items with optional filters.\", \"blocked\");\nregisterListCommand(\"list-closed\", \"List closed items with optional filters.\", \"closed\");\nregisterListCommand(\"list-canceled\", \"List canceled items with optional filters.\", \"canceled\");\n\nprogram\n .command(\"aggregate\")\n .description(\"Aggregate grouped item counts for governance queries.\")\n .option(\n \"--group-by <value>\",\n \"Comma-separated group-by fields (supported: parent,type,priority,status,assignee,tags,sprint,release)\",\n )\n .option(\"--count\", \"Return grouped counts (default behavior)\")\n .option(\"--include-unparented\", \"Include unparented rows when grouping by parent\")\n .option(\"--include_unparented\", \"Alias for --include-unparented\")\n .option(\"--status <value>\", \"Filter by item status\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\n .option(\"--assignee_filter <value>\", \"Alias for --assignee-filter\")\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runAggregate(normalizeAggregateOptions(options), globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=aggregate took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"dedupe-audit\")\n .description(\"Audit potential duplicate items with exact, fuzzy, or parent-scoped matching.\")\n .option(\"--mode <value>\", \"Dedupe mode: title_exact|title_fuzzy|parent_scope\")\n .option(\"--limit <n>\", \"Limit returned duplicate clusters\")\n .option(\"--threshold <value>\", \"Fuzzy mode token similarity threshold between 0 and 1\")\n .option(\"--status <value>\", \"Filter by item status\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\n .option(\"--assignee_filter <value>\", \"Alias for --assignee-filter\")\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runDedupeAudit(normalizeDedupeAuditOptions(options), globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=dedupe-audit took_ms=${Date.now() - startedAt}`);\n }\n });\n\nfunction registerCalendarCommand(): void {\n program\n .command(\"calendar\")\n .alias(\"cal\")\n .description(\"Show deadline/reminder calendar views (agenda/day/week/month).\")\n .option(\"--view <value>\", \"Calendar view: agenda|day|week|month (default: agenda)\")\n .option(\"--date <value>\", \"Anchor date/time for view calculations (ISO/date string or relative)\")\n .option(\"--from <value>\", \"Agenda lower bound (ISO/date string or relative)\")\n .option(\"--to <value>\", \"Agenda upper bound (ISO/date string or relative)\")\n .option(\"--past\", \"Include past entries in the selected view\")\n .option(\"--full-period\", \"For day/week/month views, include the full anchored period without now-clipping\")\n .option(\"--full_period\", \"Alias for --full-period\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--status <value>\", \"Filter by status\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\n .option(\"--assignee_filter <value>\", \"Alias for --assignee-filter\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\"--include <value>\", \"Include sources: deadlines|reminders|events|all (comma or | separated)\")\n .option(\"--recurrence-lookahead-days <n>\", \"Bound open-ended recurrence generation lookahead days\")\n .option(\"--recurrence_lookahead_days <n>\", \"Alias for --recurrence-lookahead-days\")\n .option(\"--recurrence-lookback-days <n>\", \"Bound open-ended recurrence generation lookback days\")\n .option(\"--recurrence_lookback_days <n>\", \"Alias for --recurrence-lookback-days\")\n .option(\"--occurrence-limit <n>\", \"Cap generated occurrences per recurring event\")\n .option(\"--occurrence_limit <n>\", \"Alias for --occurrence-limit\")\n .option(\"--limit <n>\", \"Limit returned event count\")\n .option(\"--format <value>\", \"Calendar output format override: markdown|toon|json\")\n .action(async (options: Record<string, unknown>, actionCommand) => {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const normalized = normalizeCalendarOptions(options);\n const result = await runCalendar(normalized, globalOptions);\n const outputFormat = resolveCalendarOutputFormat(normalized, globalOptions);\n if (outputFormat === \"markdown\") {\n if (!globalOptions.quiet) {\n writeStdout(`${renderCalendarMarkdown(result)}\\n`);\n }\n } else {\n printResult(result, {\n ...globalOptions,\n json: outputFormat === \"json\",\n });\n }\n if (globalOptions.profile) {\n printError(`profile:command=calendar took_ms=${Date.now() - startedAt}`);\n }\n });\n}\n\nregisterCalendarCommand();\n\nfunction registerContextCommand(): void {\n program\n .command(\"context\")\n .alias(\"ctx\")\n .description(\"Show a token-efficient project context snapshot for next-work decisions.\")\n .option(\"--date <value>\", \"Anchor date/time for agenda window calculations (ISO/date string or relative)\")\n .option(\"--from <value>\", \"Agenda lower bound (ISO/date string or relative)\")\n .option(\"--to <value>\", \"Agenda upper bound (ISO/date string or relative)\")\n .option(\"--past\", \"Include past agenda entries in bounded windows\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\n .option(\"--assignee_filter <value>\", \"Alias for --assignee-filter\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\"--limit <n>\", \"Limit focus and agenda rows per section\")\n .option(\"--format <value>\", \"Context output format override: markdown|toon|json\")\n .action(async (options: Record<string, unknown>, actionCommand) => {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const normalized = normalizeContextOptions(options);\n const result = await runContext(normalized, globalOptions);\n const outputFormat = resolveContextOutputFormat(normalized, globalOptions);\n if (outputFormat === \"markdown\") {\n if (!globalOptions.quiet) {\n writeStdout(`${renderContextMarkdown(result)}\\n`);\n }\n } else {\n printResult(result, {\n ...globalOptions,\n json: outputFormat === \"json\",\n });\n }\n if (globalOptions.profile) {\n printError(`profile:command=context took_ms=${Date.now() - startedAt}`);\n }\n });\n}\n\nregisterContextCommand();\n\nprogram\n .command(\"search\")\n .argument(\"<keywords...>\", \"Keyword query tokens\")\n .description(\"Search items with keyword, semantic, or hybrid modes.\")\n .option(\n \"--mode <value>\",\n \"Search mode: keyword|semantic|hybrid (default: hybrid when semantic config or local Ollama auto-defaults are available, else keyword)\",\n )\n .option(\"--include-linked\", \"Include readable linked docs/files/tests content in keyword and hybrid lexical scoring\")\n .option(\"--title-exact\", \"Require exact normalized title match against the full query\")\n .option(\"--phrase-exact\", \"Require exact normalized query phrase match in item text fields\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--compact\", \"Render compact search hits (default; mutually exclusive with --full/--fields)\")\n .option(\"--full\", \"Render full search hits with nested item payloads (mutually exclusive with --compact/--fields)\")\n .option(\n \"--fields <value>\",\n \"Render custom comma-separated search hit fields (mutually exclusive with --compact/--full; valid: --fields id,title,score; invalid: --full --fields id,title)\",\n )\n .option(\"--limit <n>\", \"Limit returned item count\")\n .action(async (keywords: string[], options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runSearch(normalizeSearchKeywordsInput(keywords), normalizeSearchOptions(options), globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=search took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"reindex\")\n .description(\"Rebuild search artifacts for keyword, semantic, and hybrid modes.\")\n .option(\"--mode <value>\", \"Reindex mode: keyword|semantic|hybrid\", \"keyword\")\n .option(\"--progress\", \"Emit progress updates to stderr (always shown in TTY, opt-in for non-TTY)\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runReindex(\n {\n mode: typeof options.mode === \"string\" ? options.mode : undefined,\n progress: Boolean(options.progress),\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=reindex took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"get\")\n .argument(\"<id>\", \"Item id\")\n .description(\"Show item details by ID.\")\n .action(async (id: string, _options, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runGet(id, globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=get took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"history\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--limit <n>\", \"Return only the latest n history entries\")\n .option(\"--diff\", \"Include per-entry changed field summaries from history patches\")\n .option(\"--verify\", \"Verify hash chain and replay integrity for the full history stream\")\n .description(\"Show item history entries.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runHistory(\n id,\n {\n limit: typeof options.limit === \"string\" ? options.limit : undefined,\n diff: Boolean(options.diff),\n verify: Boolean(options.verify),\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=history took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"activity\")\n .option(\"--id <value>\", \"Filter by item ID\")\n .option(\"--op <value>\", \"Filter by history operation\")\n .option(\"--author <value>\", \"Filter by history author\")\n .option(\"--from <value>\", \"Lower timestamp bound (ISO/date string or relative)\")\n .option(\"--to <value>\", \"Upper timestamp bound (ISO/date string or relative)\")\n .option(\"--limit <n>\", \"Return only the latest n activity entries\")\n .option(\"--compact\", \"Condensed output: show only id, op, ts, author, msg per entry\")\n .option(\"--stream [mode]\", \"Emit line-delimited JSON rows (requires --json). Optional mode: rows|ndjson|jsonl\")\n .description(\"Show recent activity across items.\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const normalized = normalizeActivityOptions(options);\n const result = await runActivity(normalized, globalOptions);\n const streamMode = resolveActivityStreamMode(options.stream);\n if (streamMode && !globalOptions.json) {\n throw new PmCliError(\"--stream requires --json output mode.\", EXIT_CODE.USAGE);\n }\n if (streamMode) {\n printActivityJsonStream(result, normalized, globalOptions);\n } else {\n printResult(result, globalOptions);\n }\n if (globalOptions.profile) {\n printError(`profile:command=activity took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"restore\")\n .argument(\"<id>\", \"Item id\")\n .argument(\"<target>\", \"Restore target timestamp or version number\")\n .option(\"--author <value>\", \"Mutation author\")\n .option(\"--message <value>\", \"History message\")\n .option(\"--force\", \"Force ownership/lock override\")\n .description(\"Restore an item to an earlier timestamp or version.\")\n .action(async (id: string, target: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runRestore(\n id,\n target,\n {\n author: typeof options.author === \"string\" ? options.author : undefined,\n message: typeof options.message === \"string\" ? options.message : undefined,\n force: Boolean(options.force),\n },\n globalOptions,\n );\n await invalidateSearchCachesForMutation(globalOptions, result);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=restore took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"update\")\n .argument(\"<id>\", \"Item id\")\n .description(\"Update item fields and metadata.\")\n .option(\"--title, -t <value>\", \"Set title\")\n .option(\"--description, -d <value>\", \"Set description\")\n .option(\"--body, -b <value>\", \"Set body (allow empty string)\")\n .option(\"--status, -s <value>\", \"Set status (use close command for closed)\")\n .option(\"--close-reason <value>\", \"Set close reason\")\n .option(\"--close_reason <value>\", \"Alias for --close-reason\")\n .option(\"--priority, -p <value>\", \"Set priority\")\n .option(\"--type <value>\", \"Set type\")\n .option(\"--tags <value>\", \"Set comma-separated tags\")\n .option(\"--deadline <value>\", \"Set deadline (ISO/date string or relative)\")\n .option(\"--estimate, --estimated-minutes <value>\", \"Set estimated minutes\")\n .option(\"--estimated_minutes <value>\", \"Alias for --estimated-minutes\")\n .option(\"--acceptance-criteria <value>\", \"Set acceptance criteria\")\n .option(\"--acceptance_criteria <value>\", \"Alias for --acceptance-criteria\")\n .option(\"--ac <value>\", \"Alias for --acceptance-criteria\")\n .option(\"--definition-of-ready <value>\", \"Set definition of ready\")\n .option(\"--definition_of_ready <value>\", \"Alias for --definition-of-ready\")\n .option(\"--order <value>\", \"Set planning order/rank integer\")\n .option(\"--rank <value>\", \"Alias for --order\")\n .option(\"--goal <value>\", \"Set goal identifier\")\n .option(\"--objective <value>\", \"Set objective identifier\")\n .option(\"--value <value>\", \"Set business value summary\")\n .option(\"--impact <value>\", \"Set business impact summary\")\n .option(\"--outcome <value>\", \"Set expected outcome summary\")\n .option(\"--why-now <value>\", \"Set why-now rationale\")\n .option(\"--why_now <value>\", \"Alias for --why-now\")\n .option(\"--author <value>\", \"Mutation author\")\n .option(\"--message <value>\", \"Mutation message\")\n .option(\"--assignee <value>\", \"Set assignee\")\n .option(\"--parent <value>\", \"Set parent item ID\")\n .option(\"--reviewer <value>\", \"Set reviewer\")\n .option(\"--risk <value>\", \"Set risk level: low|med|medium|high|critical (med persists as medium)\")\n .option(\"--confidence <value>\", \"Set confidence level: 0..100|low|med|medium|high (med persists as medium)\")\n .option(\"--sprint <value>\", \"Set sprint identifier\")\n .option(\"--release <value>\", \"Set release identifier\")\n .option(\"--blocked-by <value>\", \"Set blocked-by item ID or reason\")\n .option(\"--blocked_by <value>\", \"Alias for --blocked-by\")\n .option(\"--blocked-reason <value>\", \"Set blocked reason\")\n .option(\"--blocked_reason <value>\", \"Alias for --blocked-reason\")\n .option(\"--unblock-note <value>\", \"Set unblock rationale note\")\n .option(\"--unblock_note <value>\", \"Alias for --unblock-note\")\n .option(\"--reporter <value>\", \"Set issue reporter\")\n .option(\"--severity <value>\", \"Set issue severity: low|med|medium|high|critical (med persists as medium)\")\n .option(\"--environment <value>\", \"Set issue environment context\")\n .option(\"--repro-steps <value>\", \"Set issue reproduction steps\")\n .option(\"--repro_steps <value>\", \"Alias for --repro-steps\")\n .option(\"--resolution <value>\", \"Set issue resolution summary\")\n .option(\"--expected-result <value>\", \"Set issue expected behavior\")\n .option(\"--expected_result <value>\", \"Alias for --expected-result\")\n .option(\"--actual-result <value>\", \"Set issue observed behavior\")\n .option(\"--actual_result <value>\", \"Alias for --actual-result\")\n .option(\"--affected-version <value>\", \"Set affected version identifier\")\n .option(\"--affected_version <value>\", \"Alias for --affected-version\")\n .option(\"--fixed-version <value>\", \"Set fixed version identifier\")\n .option(\"--fixed_version <value>\", \"Alias for --fixed-version\")\n .option(\"--component <value>\", \"Set issue component ownership\")\n .option(\"--regression <value>\", \"Set regression marker: true|false|1|0\")\n .option(\"--customer-impact <value>\", \"Set customer impact summary\")\n .option(\"--customer_impact <value>\", \"Alias for --customer-impact\")\n .option(\n \"--dep <value>\",\n \"Add dependency entries id=<id>,kind=<value>,author=<value>,created_at=<iso|now>,source_kind=<value> (repeatable)\",\n collect,\n )\n .option(\n \"--dep-remove <value>\",\n \"Remove dependencies by id or id=<id>,kind=<value>,source_kind=<value> selectors (repeatable)\",\n collect,\n )\n .option(\"--dep_remove <value>\", \"Alias for --dep-remove\", collect)\n .option(\"--replace-deps\", \"Atomically replace dependency entries with the provided --dep values\")\n .option(\"--replace-tests\", \"Atomically replace linked test entries with the provided --test values\")\n .option(\n \"--comment <value>\",\n \"Append comment seed author=<value>,created_at=<iso|now>,text=<value> (also accepts markdown pairs and - for stdin; repeatable)\",\n collect,\n )\n .option(\n \"--note <value>\",\n \"Append note seed author=<value>,created_at=<iso|now>,text=<value> (also accepts markdown pairs and - for stdin; repeatable)\",\n collect,\n )\n .option(\n \"--learning <value>\",\n \"Append learning seed author=<value>,created_at=<iso|now>,text=<value> (also accepts markdown pairs and - for stdin; repeatable)\",\n collect,\n )\n .option(\n \"--file <value>\",\n \"Append linked file path=<value>,scope=<project|global>,note=<text> (also accepts markdown pairs and - for stdin; repeatable)\",\n collect,\n )\n .option(\n \"--test <value>\",\n \"Append linked test command=<value>,path=<value>,scope=<project|global>,timeout_seconds=<n>,pm_context_mode=<schema|tracker|auto> (also accepts markdown pairs and - for stdin; repeatable)\",\n collect,\n )\n .option(\n \"--doc <value>\",\n \"Append linked doc path=<value>,scope=<project|global>,note=<text> (also accepts markdown pairs and - for stdin; repeatable)\",\n collect,\n )\n .option(\n \"--reminder <value>\",\n \"Set reminders at=<iso|relative>,text=<text> (also accepts markdown pairs and - for stdin; repeatable)\",\n collect,\n )\n .option(\n \"--event <value>\",\n \"Set events start=<iso|relative>,end=<iso|relative>,title=<text>,all_day=<true|false>,recur_* fields (also accepts markdown pairs and - for stdin; repeatable)\",\n collect,\n )\n .option(\n \"--type-option <value>\",\n \"Set type options key=value or key=<name>,value=<value> (also accepts key:value and markdown pairs; use - for stdin; repeatable)\",\n collect,\n )\n .option(\"--type_option <value>\", \"Alias for --type-option\", collect)\n .option(\"--unset <field>\", \"Clear scalar metadata field by name (repeatable)\", collect)\n .option(\"--clear-deps\", \"Clear dependency entries\")\n .option(\"--clear-comments\", \"Clear comments\")\n .option(\"--clear-notes\", \"Clear notes\")\n .option(\"--clear-learnings\", \"Clear learnings\")\n .option(\"--clear-files\", \"Clear linked files\")\n .option(\"--clear-tests\", \"Clear linked tests\")\n .option(\"--clear-docs\", \"Clear linked docs\")\n .option(\"--clear-reminders\", \"Clear reminders\")\n .option(\"--clear-events\", \"Clear events\")\n .option(\"--clear-type-options\", \"Clear type options\")\n .option(\"--allow-audit-update\", \"Allow non-owner metadata-only audit updates without requiring --force\")\n .option(\"--allow_audit_update\", \"Alias for --allow-audit-update\")\n .option(\"--allow-audit-dep-update\", \"Allow non-owner append-only dependency updates without requiring --force\")\n .option(\"--allow_audit_dep_update\", \"Alias for --allow-audit-dep-update\")\n .option(\"--force\", \"Force ownership override\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runUpdate(id, normalizeUpdateOptions(options), globalOptions);\n await invalidateSearchCachesForMutation(globalOptions, result);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=update took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"update-many\")\n .description(\"Bulk-update matched items with dry-run plans and rollback checkpoints.\")\n .option(\"--filter-status <value>\", \"Filter by status before applying updates\")\n .option(\"--filter-type <value>\", \"Filter by item type before applying updates\")\n .option(\"--filter-tag <value>\", \"Filter by tag before applying updates\")\n .option(\"--filter-priority <value>\", \"Filter by priority before applying updates\")\n .option(\"--filter-deadline-before <value>\", \"Filter by deadline upper bound before applying updates\")\n .option(\"--filter-deadline-after <value>\", \"Filter by deadline lower bound before applying updates\")\n .option(\"--filter-assignee <value>\", \"Filter by assignee before applying updates\")\n .option(\"--filter-assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned before applying updates\")\n .option(\"--filter-assignee_filter <value>\", \"Alias for --filter-assignee-filter\")\n .option(\"--filter-parent <value>\", \"Filter by parent item ID before applying updates\")\n .option(\"--filter-sprint <value>\", \"Filter by sprint before applying updates\")\n .option(\"--filter-release <value>\", \"Filter by release before applying updates\")\n .option(\"--limit <n>\", \"Limit matched item count before apply/preview\")\n .option(\"--offset <n>\", \"Skip first n matched rows before apply/preview\")\n .option(\"--dry-run\", \"Preview per-item diffs and checkpoint intent without mutating\")\n .option(\"--rollback <value>\", \"Rollback a prior update-many checkpoint ID\")\n .option(\"--no-checkpoint\", \"Disable checkpoint creation during apply mode\")\n .option(\"--title, -t <value>\", \"Set title\")\n .option(\"--description, -d <value>\", \"Set description\")\n .option(\"--body, -b <value>\", \"Set body (allow empty string)\")\n .option(\"--status, -s <value>\", \"Set status (use close command for closed)\")\n .option(\"--priority, -p <value>\", \"Set priority\")\n .option(\"--type <value>\", \"Set type\")\n .option(\"--tags <value>\", \"Set comma-separated tags\")\n .option(\"--deadline <value>\", \"Set deadline (ISO/date string or relative)\")\n .option(\"--estimate, --estimated-minutes <value>\", \"Set estimated minutes\")\n .option(\"--estimated_minutes <value>\", \"Alias for --estimated-minutes\")\n .option(\"--acceptance-criteria <value>\", \"Set acceptance criteria\")\n .option(\"--acceptance_criteria <value>\", \"Alias for --acceptance-criteria\")\n .option(\"--ac <value>\", \"Alias for --acceptance-criteria\")\n .option(\"--definition-of-ready <value>\", \"Set definition of ready\")\n .option(\"--definition_of_ready <value>\", \"Alias for --definition-of-ready\")\n .option(\"--order <value>\", \"Set planning order/rank integer\")\n .option(\"--rank <value>\", \"Alias for --order\")\n .option(\"--goal <value>\", \"Set goal identifier\")\n .option(\"--objective <value>\", \"Set objective identifier\")\n .option(\"--value <value>\", \"Set business value summary\")\n .option(\"--impact <value>\", \"Set business impact summary\")\n .option(\"--outcome <value>\", \"Set expected outcome summary\")\n .option(\"--why-now <value>\", \"Set why-now rationale\")\n .option(\"--why_now <value>\", \"Alias for --why-now\")\n .option(\"--assignee <value>\", \"Set assignee\")\n .option(\"--parent <value>\", \"Set parent item ID\")\n .option(\"--reviewer <value>\", \"Set reviewer\")\n .option(\"--risk <value>\", \"Set risk level\")\n .option(\"--confidence <value>\", \"Set confidence level\")\n .option(\"--sprint <value>\", \"Set sprint identifier\")\n .option(\"--release <value>\", \"Set release identifier\")\n .option(\"--blocked-by <value>\", \"Set blocked-by item ID or reason\")\n .option(\"--blocked_by <value>\", \"Alias for --blocked-by\")\n .option(\"--blocked-reason <value>\", \"Set blocked reason\")\n .option(\"--blocked_reason <value>\", \"Alias for --blocked-reason\")\n .option(\"--unblock-note <value>\", \"Set unblock rationale note\")\n .option(\"--unblock_note <value>\", \"Alias for --unblock-note\")\n .option(\"--reporter <value>\", \"Set issue reporter\")\n .option(\"--severity <value>\", \"Set issue severity\")\n .option(\"--environment <value>\", \"Set issue environment context\")\n .option(\"--repro-steps <value>\", \"Set issue reproduction steps\")\n .option(\"--repro_steps <value>\", \"Alias for --repro-steps\")\n .option(\"--resolution <value>\", \"Set issue resolution summary\")\n .option(\"--expected-result <value>\", \"Set issue expected behavior\")\n .option(\"--expected_result <value>\", \"Alias for --expected-result\")\n .option(\"--actual-result <value>\", \"Set issue observed behavior\")\n .option(\"--actual_result <value>\", \"Alias for --actual-result\")\n .option(\"--affected-version <value>\", \"Set affected version identifier\")\n .option(\"--affected_version <value>\", \"Alias for --affected-version\")\n .option(\"--fixed-version <value>\", \"Set fixed version identifier\")\n .option(\"--fixed_version <value>\", \"Alias for --fixed-version\")\n .option(\"--component <value>\", \"Set issue component ownership\")\n .option(\"--regression <value>\", \"Set regression marker: true|false|1|0\")\n .option(\"--customer-impact <value>\", \"Set customer impact summary\")\n .option(\"--customer_impact <value>\", \"Alias for --customer-impact\")\n .option(\"--dep <value>\", \"Add dependency entry id=<id>,kind=<kind>,author=<author>,created_at=<timestamp>\", collect)\n .option(\"--dep-remove <value>\", \"Remove dependency entries by id/kind/author/timestamp signature\", collect)\n .option(\"--dep_remove <value>\", \"Alias for --dep-remove\", collect)\n .option(\"--replace-deps\", \"Atomically replace dependency entries with provided --dep values\")\n .option(\"--replace-tests\", \"Atomically replace linked tests with provided --test values\")\n .option(\"--comment <value>\", \"Add comment seed author=<value>,created_at=<iso|now>,text=<value>\", collect)\n .option(\"--note <value>\", \"Add note seed author=<value>,created_at=<iso|now>,text=<value>\", collect)\n .option(\"--learning <value>\", \"Add learning seed author=<value>,created_at=<iso|now>,text=<value>\", collect)\n .option(\"--file <value>\", \"Add linked file path=<value>,scope=<project|global>,note=<text>\", collect)\n .option(\"--test <value>\", \"Add linked test command=<value>,path=<value>,scope=<project|global>\", collect)\n .option(\"--doc <value>\", \"Add linked doc path=<value>,scope=<project|global>,note=<text>\", collect)\n .option(\"--reminder <value>\", \"Add reminder entry at=<iso|relative>,text=<text>\", collect)\n .option(\"--event <value>\", \"Add event entry start=<iso|relative>,end=<iso|relative>,recur_*\", collect)\n .option(\"--type-option <value>\", \"Set type options key=value (repeatable)\", collect)\n .option(\"--type_option <value>\", \"Alias for --type-option\", collect)\n .option(\"--unset <field>\", \"Clear scalar metadata field by name (repeatable)\", collect)\n .option(\"--clear-deps\", \"Clear dependency entries\")\n .option(\"--clear-comments\", \"Clear comments\")\n .option(\"--clear-notes\", \"Clear notes\")\n .option(\"--clear-learnings\", \"Clear learnings\")\n .option(\"--clear-files\", \"Clear linked files\")\n .option(\"--clear-tests\", \"Clear linked tests\")\n .option(\"--clear-docs\", \"Clear linked docs\")\n .option(\"--clear-reminders\", \"Clear reminders\")\n .option(\"--clear-events\", \"Clear events\")\n .option(\"--clear-type-options\", \"Clear type options\")\n .option(\"--allow-audit-update\", \"Allow non-owner metadata-only audit updates without requiring --force\")\n .option(\"--allow_audit_update\", \"Alias for --allow-audit-update\")\n .option(\"--allow-audit-dep-update\", \"Allow non-owner append-only dependency updates without requiring --force\")\n .option(\"--allow_audit_dep_update\", \"Alias for --allow-audit-dep-update\")\n .option(\"--author <value>\", \"Mutation author\")\n .option(\"--message <value>\", \"Mutation message\")\n .option(\"--force\", \"Force ownership override\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runUpdateMany(\n {\n status: typeof options.filterStatus === \"string\" ? options.filterStatus : undefined,\n list: {\n type: typeof options.filterType === \"string\" ? options.filterType : undefined,\n tag: typeof options.filterTag === \"string\" ? options.filterTag : undefined,\n priority: typeof options.filterPriority === \"string\" ? options.filterPriority : undefined,\n deadlineBefore: typeof options.filterDeadlineBefore === \"string\" ? options.filterDeadlineBefore : undefined,\n deadlineAfter: typeof options.filterDeadlineAfter === \"string\" ? options.filterDeadlineAfter : undefined,\n assignee: typeof options.filterAssignee === \"string\" ? options.filterAssignee : undefined,\n assigneeFilter:\n typeof options.filterAssigneeFilter === \"string\"\n ? options.filterAssigneeFilter\n : typeof options.filterAssignee_filter === \"string\"\n ? options.filterAssignee_filter\n : undefined,\n parent: typeof options.filterParent === \"string\" ? options.filterParent : undefined,\n sprint: typeof options.filterSprint === \"string\" ? options.filterSprint : undefined,\n release: typeof options.filterRelease === \"string\" ? options.filterRelease : undefined,\n limit: typeof options.limit === \"string\" ? options.limit : undefined,\n offset: typeof options.offset === \"string\" ? options.offset : undefined,\n includeBody: true,\n },\n update: normalizeUpdateOptions(extractUpdateManyMutationOptionSource(options)),\n dryRun: options.dryRun === true ? true : undefined,\n rollback: typeof options.rollback === \"string\" ? options.rollback : undefined,\n checkpoint: options.checkpoint === false ? false : undefined,\n },\n globalOptions,\n );\n await invalidateSearchCachesForMutation(globalOptions, result);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=update-many took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"normalize\")\n .description(\"Normalize lifecycle metadata with deterministic dry-run plans and optional apply mode.\")\n .option(\"--filter-status <value>\", \"Filter by status before planning or apply\")\n .option(\"--filter-type <value>\", \"Filter by item type before planning or apply\")\n .option(\"--filter-tag <value>\", \"Filter by tag before planning or apply\")\n .option(\"--filter-priority <value>\", \"Filter by priority before planning or apply\")\n .option(\"--filter-deadline-before <value>\", \"Filter by deadline upper bound before planning or apply\")\n .option(\"--filter-deadline-after <value>\", \"Filter by deadline lower bound before planning or apply\")\n .option(\"--filter-assignee <value>\", \"Filter by assignee before planning or apply\")\n .option(\"--filter-assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned before planning or apply\")\n .option(\"--filter-assignee_filter <value>\", \"Alias for --filter-assignee-filter\")\n .option(\"--filter-parent <value>\", \"Filter by parent item ID before planning or apply\")\n .option(\"--filter-sprint <value>\", \"Filter by sprint before planning or apply\")\n .option(\"--filter-release <value>\", \"Filter by release before planning or apply\")\n .option(\"--limit <n>\", \"Limit matched item count before planning/apply\")\n .option(\"--offset <n>\", \"Skip first n matched rows before planning/apply\")\n .option(\"--dry-run\", \"Preview normalize findings without mutating (default)\")\n .option(\"--apply\", \"Apply normalize changes using update semantics\")\n .option(\"--author <value>\", \"Mutation author for apply mode\")\n .option(\"--message <value>\", \"Mutation message for apply mode\")\n .option(\"--allow-audit-update\", \"Allow non-owner metadata-only audit updates without requiring --force\")\n .option(\"--allow_audit_update\", \"Alias for --allow-audit-update\")\n .option(\"--force\", \"Force ownership override for apply mode\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runNormalize(\n {\n status: typeof options.filterStatus === \"string\" ? options.filterStatus : undefined,\n list: {\n type: typeof options.filterType === \"string\" ? options.filterType : undefined,\n tag: typeof options.filterTag === \"string\" ? options.filterTag : undefined,\n priority: typeof options.filterPriority === \"string\" ? options.filterPriority : undefined,\n deadlineBefore: typeof options.filterDeadlineBefore === \"string\" ? options.filterDeadlineBefore : undefined,\n deadlineAfter: typeof options.filterDeadlineAfter === \"string\" ? options.filterDeadlineAfter : undefined,\n assignee: typeof options.filterAssignee === \"string\" ? options.filterAssignee : undefined,\n assigneeFilter:\n typeof options.filterAssigneeFilter === \"string\"\n ? options.filterAssigneeFilter\n : typeof options.filterAssignee_filter === \"string\"\n ? options.filterAssignee_filter\n : undefined,\n parent: typeof options.filterParent === \"string\" ? options.filterParent : undefined,\n sprint: typeof options.filterSprint === \"string\" ? options.filterSprint : undefined,\n release: typeof options.filterRelease === \"string\" ? options.filterRelease : undefined,\n limit: typeof options.limit === \"string\" ? options.limit : undefined,\n offset: typeof options.offset === \"string\" ? options.offset : undefined,\n includeBody: true,\n },\n dryRun: options.dryRun === true ? true : undefined,\n apply: options.apply === true ? true : undefined,\n author: typeof options.author === \"string\" ? options.author : undefined,\n message: typeof options.message === \"string\" ? options.message : undefined,\n allowAuditUpdate:\n options.allowAuditUpdate === true || options.allow_audit_update === true || options.allowAudit_update === true\n ? true\n : undefined,\n force: options.force === true ? true : undefined,\n },\n globalOptions,\n );\n if (result.mode === \"apply\") {\n await invalidateSearchCachesForMutation(globalOptions, result);\n }\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=normalize took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"close\")\n .argument(\"<id>\", \"Item id\")\n .argument(\"<text>\", \"Close reason text\")\n .option(\"--author <value>\", \"Mutation author\")\n .option(\"--message <value>\", \"History message\")\n .option(\n \"--validate-close [mode]\",\n 'Validate closure metadata before close: \"off\", \"warn\", or \"strict\" (default: settings governance preset)',\n )\n .option(\"--force\", \"Force ownership override\")\n .description(\"Close an item with a required reason.\")\n .action(async (id: string, text: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runClose(\n id,\n text,\n {\n author: typeof options.author === \"string\" ? options.author : undefined,\n message: typeof options.message === \"string\" ? options.message : undefined,\n validateClose:\n options.validateClose === true\n ? \"warn\"\n : typeof options.validateClose === \"string\"\n ? options.validateClose\n : undefined,\n force: Boolean(options.force),\n },\n globalOptions,\n );\n await invalidateSearchCachesForMutation(globalOptions, result);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=close took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"delete\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--author <value>\", \"Mutation author\")\n .option(\"--message <value>\", \"History message\")\n .option(\"--force\", \"Force ownership override\")\n .description(\"Delete an item and record the change in history.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runDelete(\n id,\n {\n author: typeof options.author === \"string\" ? options.author : undefined,\n message: typeof options.message === \"string\" ? options.message : undefined,\n force: Boolean(options.force),\n },\n globalOptions,\n );\n await invalidateSearchCachesForMutation(globalOptions, result);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=delete took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"append\")\n .argument(\"<id>\", \"Item id\")\n .requiredOption(\"--body <value>\", \"Text to append to body (or - for stdin)\")\n .option(\"--author <value>\", \"Mutation author\")\n .option(\"--message <value>\", \"Mutation message\")\n .option(\"--force\", \"Force ownership override\")\n .description(\"Append text to an item's body.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runAppend(\n id,\n {\n body: typeof options.body === \"string\" ? options.body : \"\",\n author: typeof options.author === \"string\" ? options.author : undefined,\n message: typeof options.message === \"string\" ? options.message : undefined,\n force: Boolean(options.force),\n },\n globalOptions,\n );\n await invalidateSearchCachesForMutation(globalOptions, result);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=append took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"comments\")\n .argument(\"<id>\", \"Item id\")\n .argument(\"[text]\", \"Optional comment text shorthand (equivalent to --add; use - for stdin)\")\n .option(\n \"--add <text>\",\n \"Add one comment entry (plain text fallback, text=<value>, markdown pairs, or - for stdin; CSV-like key fragments are preserved as plain text unless text is explicit)\",\n )\n .option(\"--limit <n>\", \"Return only latest n comments\")\n .option(\"--author [value]\", \"Comment author (optional; falls back to PM_AUTHOR/settings)\")\n .option(\"--message <value>\", \"History message\")\n .option(\"--allow-audit-comment\", \"Allow non-owner append-only comment audits without requiring --force\")\n .option(\"--force\", \"Force ownership override\")\n .description(\"List or add comments for an item.\")\n .action(async (id: string, text: string | undefined, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const addFromOption = typeof options.add === \"string\" ? options.add : undefined;\n const addFromPositional = typeof text === \"string\" ? text : undefined;\n if (addFromOption !== undefined && addFromPositional !== undefined) {\n throw new PmCliError(\"Specify comment text either as positional [text] or with --add, not both\", EXIT_CODE.USAGE);\n }\n const add = addFromOption ?? addFromPositional;\n const result = await runComments(\n id,\n {\n add,\n limit: typeof options.limit === \"string\" ? options.limit : undefined,\n author: typeof options.author === \"string\" ? options.author : undefined,\n message: typeof options.message === \"string\" ? options.message : undefined,\n allowAuditComment: Boolean(options.allowAuditComment),\n force: Boolean(options.force),\n },\n globalOptions,\n );\n if (typeof add === \"string\") {\n await invalidateSearchCachesForMutation(globalOptions, result);\n }\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=comments took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"comments-audit\")\n .option(\"--status <value>\", \"Filter by item status\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\n .option(\"--assignee_filter <value>\", \"Alias for --assignee-filter\")\n .option(\"--limit-items <n>\", \"Limit returned item count\")\n .option(\"--limit <n>\", \"Alias for --limit-items\")\n .option(\"--full-history\", \"Export full comment history rows (cannot be combined with --latest)\")\n .option(\"--latest <n>\", \"Return latest n comments per item (default: 1, use 0 for summary-only rows)\")\n .description(\"Audit latest comments or full comment history across filtered items.\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runCommentsAudit(\n {\n status: typeof options.status === \"string\" ? options.status : undefined,\n type: typeof options.type === \"string\" ? options.type : undefined,\n tag: typeof options.tag === \"string\" ? options.tag : undefined,\n priority: typeof options.priority === \"string\" ? options.priority : undefined,\n parent: typeof options.parent === \"string\" ? options.parent : undefined,\n sprint: typeof options.sprint === \"string\" ? options.sprint : undefined,\n release: typeof options.release === \"string\" ? options.release : undefined,\n assignee: typeof options.assignee === \"string\" ? options.assignee : undefined,\n assigneeFilter: typeof options.assigneeFilter === \"string\" ? options.assigneeFilter : undefined,\n limit: typeof options.limit === \"string\" ? options.limit : undefined,\n limitItems: typeof options.limitItems === \"string\" ? options.limitItems : undefined,\n fullHistory: options.fullHistory === true,\n latest: typeof options.latest === \"string\" ? options.latest : undefined,\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=comments-audit took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"notes\")\n .argument(\"<id>\", \"Item id\")\n .argument(\"[text]\", \"Optional note text shorthand (equivalent to --add; use - for stdin)\")\n .option(\n \"--add <text>\",\n \"Add one note entry (plain text fallback, text=<value>, markdown pairs, or - for stdin; CSV-like key fragments are preserved as plain text unless text is explicit)\",\n )\n .option(\"--limit <n>\", \"Return only latest n notes\")\n .option(\"--author [value]\", \"Note author (optional; falls back to PM_AUTHOR/settings)\")\n .option(\"--message <value>\", \"History message\")\n .option(\"--allow-audit-note\", \"Allow non-owner append-only note audits without requiring --force\")\n .option(\"--allow-audit-comment\", \"Backward-compatible alias for --allow-audit-note\")\n .option(\"--force\", \"Force ownership override\")\n .description(\"List or add notes for an item.\")\n .action(async (id: string, text: string | undefined, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const addFromOption = typeof options.add === \"string\" ? options.add : undefined;\n const addFromPositional = typeof text === \"string\" ? text : undefined;\n if (addFromOption !== undefined && addFromPositional !== undefined) {\n throw new PmCliError(\"Specify note text either as positional [text] or with --add, not both\", EXIT_CODE.USAGE);\n }\n const add = addFromOption ?? addFromPositional;\n const result = await runNotes(\n id,\n {\n add,\n limit: typeof options.limit === \"string\" ? options.limit : undefined,\n author: typeof options.author === \"string\" ? options.author : undefined,\n message: typeof options.message === \"string\" ? options.message : undefined,\n allowAuditComment: Boolean(options.allowAuditNote || options.allowAuditComment),\n force: Boolean(options.force),\n },\n globalOptions,\n );\n if (typeof add === \"string\") {\n await invalidateSearchCachesForMutation(globalOptions, result);\n }\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=notes took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"learnings\")\n .argument(\"<id>\", \"Item id\")\n .argument(\"[text]\", \"Optional learning text shorthand (equivalent to --add; use - for stdin)\")\n .option(\n \"--add <text>\",\n \"Add one learning entry (plain text fallback, text=<value>, markdown pairs, or - for stdin; CSV-like key fragments are preserved as plain text unless text is explicit)\",\n )\n .option(\"--limit <n>\", \"Return only latest n learnings\")\n .option(\"--author [value]\", \"Learning author (optional; falls back to PM_AUTHOR/settings)\")\n .option(\"--message <value>\", \"History message\")\n .option(\"--allow-audit-learning\", \"Allow non-owner append-only learning audits without requiring --force\")\n .option(\"--allow-audit-comment\", \"Backward-compatible alias for --allow-audit-learning\")\n .option(\"--force\", \"Force ownership override\")\n .description(\"List or add learnings for an item.\")\n .action(async (id: string, text: string | undefined, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const addFromOption = typeof options.add === \"string\" ? options.add : undefined;\n const addFromPositional = typeof text === \"string\" ? text : undefined;\n if (addFromOption !== undefined && addFromPositional !== undefined) {\n throw new PmCliError(\"Specify learning text either as positional [text] or with --add, not both\", EXIT_CODE.USAGE);\n }\n const add = addFromOption ?? addFromPositional;\n const result = await runLearnings(\n id,\n {\n add,\n limit: typeof options.limit === \"string\" ? options.limit : undefined,\n author: typeof options.author === \"string\" ? options.author : undefined,\n message: typeof options.message === \"string\" ? options.message : undefined,\n allowAuditComment: Boolean(options.allowAuditLearning || options.allowAuditComment),\n force: Boolean(options.force),\n },\n globalOptions,\n );\n if (typeof add === \"string\") {\n await invalidateSearchCachesForMutation(globalOptions, result);\n }\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=learnings took_ms=${Date.now() - startedAt}`);\n }\n });\n\nconst filesCommand = program\n .command(\"files\")\n .description(\"Manage files linked to an item.\");\n\nfilesCommand\n .argument(\"<id>\", \"Item id\")\n .option(\"--add <value>\", \"Add linked file entry (CSV/markdown pairs or - for stdin)\", collect)\n .option(\n \"--add-glob <value>\",\n \"Add linked file entries from a glob (plain glob or pattern=<glob>,scope=<scope>,note=<text>; repeatable)\",\n collect,\n )\n .option(\"--remove <value>\", \"Remove linked file by path (path=<value>, path:<value>, plain path, or - for stdin)\", collect)\n .option(\"--migrate <value>\", \"Migrate linked file paths in-place (from=<prefix>,to=<prefix>; repeatable)\", collect)\n .option(\"--list\", \"List linked files without mutating\")\n .option(\"--append-stable\", \"Preserve existing linked-file order and append new links without full-array resorting\")\n .option(\"--validate-paths\", \"Validate linked file paths for existence and file shape\")\n .option(\"--audit\", \"Audit linked file usage across all items for this item's linked paths\")\n .option(\"--author <value>\", \"Mutation author\")\n .option(\"--message <value>\", \"History message\")\n .option(\"--force\", \"Force ownership override\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const addValues = Array.isArray(options.add) ? (options.add as string[]) : [];\n const addGlobValues = Array.isArray(options.addGlob) ? (options.addGlob as string[]) : [];\n const removeValues = Array.isArray(options.remove) ? (options.remove as string[]) : [];\n const migrateValues = Array.isArray(options.migrate) ? (options.migrate as string[]) : [];\n const result = await runFiles(\n id,\n {\n add: addValues,\n addGlob: addGlobValues,\n remove: removeValues,\n migrate: migrateValues,\n list: Boolean(options.list),\n appendStable: Boolean(options.appendStable),\n validatePaths: Boolean(options.validatePaths),\n audit: Boolean(options.audit),\n author: typeof options.author === \"string\" ? options.author : undefined,\n message: typeof options.message === \"string\" ? options.message : undefined,\n force: Boolean(options.force),\n },\n globalOptions,\n );\n if (addValues.length > 0 || addGlobValues.length > 0 || removeValues.length > 0 || migrateValues.length > 0) {\n await invalidateSearchCachesForMutation(globalOptions, result);\n }\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=files took_ms=${Date.now() - startedAt}`);\n }\n });\n\nfilesCommand\n .command(\"discover\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--apply\", \"Add discovered missing files to the item\")\n .option(\"--note <value>\", \"Note to attach to discovered file links\")\n .option(\"--append-stable\", \"Preserve existing linked-file order and append discovered links without full-array resorting\")\n .option(\"--author <value>\", \"Mutation author\")\n .option(\"--message <value>\", \"History message\")\n .option(\"--force\", \"Force ownership override\")\n .description(\"Discover existing file paths referenced in item text and optionally link missing files.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runFilesDiscover(\n id,\n {\n apply: Boolean(options.apply),\n note: typeof options.note === \"string\" ? options.note : undefined,\n appendStable: Boolean(options.appendStable),\n author: typeof options.author === \"string\" ? options.author : undefined,\n message: typeof options.message === \"string\" ? options.message : undefined,\n force: Boolean(options.force),\n },\n globalOptions,\n );\n if (result.changed) {\n await invalidateSearchCachesForMutation(globalOptions, result);\n }\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=files.discover took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"docs\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--add <value>\", \"Add linked doc entry (CSV/markdown pairs or - for stdin)\", collect)\n .option(\n \"--add-glob <value>\",\n \"Add linked doc entries from a glob (plain glob or pattern=<glob>,scope=<scope>,note=<text>; repeatable)\",\n collect,\n )\n .option(\"--remove <value>\", \"Remove linked doc by path (path=<value>, path:<value>, plain path, or - for stdin)\", collect)\n .option(\"--migrate <value>\", \"Migrate linked doc paths in-place (from=<prefix>,to=<prefix>; repeatable)\", collect)\n .option(\"--validate-paths\", \"Validate linked doc paths for existence and file shape\")\n .option(\"--audit\", \"Audit linked doc usage across all items for this item's linked paths\")\n .option(\"--author <value>\", \"Mutation author\")\n .option(\"--message <value>\", \"History message\")\n .option(\"--force\", \"Force ownership override\")\n .description(\"Manage docs linked to an item.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const addValues = Array.isArray(options.add) ? (options.add as string[]) : [];\n const addGlobValues = Array.isArray(options.addGlob) ? (options.addGlob as string[]) : [];\n const removeValues = Array.isArray(options.remove) ? (options.remove as string[]) : [];\n const migrateValues = Array.isArray(options.migrate) ? (options.migrate as string[]) : [];\n const result = await runDocs(\n id,\n {\n add: addValues,\n addGlob: addGlobValues,\n remove: removeValues,\n migrate: migrateValues,\n validatePaths: Boolean(options.validatePaths),\n audit: Boolean(options.audit),\n author: typeof options.author === \"string\" ? options.author : undefined,\n message: typeof options.message === \"string\" ? options.message : undefined,\n force: Boolean(options.force),\n },\n globalOptions,\n );\n if (addValues.length > 0 || addGlobValues.length > 0 || removeValues.length > 0 || migrateValues.length > 0) {\n await invalidateSearchCachesForMutation(globalOptions, result);\n }\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=docs took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"deps\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--format <value>\", \"Output format (tree or graph)\", \"tree\")\n .option(\"--max-depth <value>\", \"Maximum dependency traversal depth (0 keeps only the root)\")\n .option(\"--collapse <value>\", \"Collapse mode (none or repeated)\", \"none\")\n .option(\"--summary\", \"Return counts only without full tree/graph payload\")\n .description(\"Show dependency relationships for an item.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runDeps(\n id,\n {\n format: typeof options.format === \"string\" ? options.format : undefined,\n maxDepth: typeof options.maxDepth === \"string\" ? options.maxDepth : undefined,\n collapse: typeof options.collapse === \"string\" ? options.collapse : undefined,\n summary: options.summary === true,\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=deps took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"test\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--add <value>\", \"Add linked test entry (CSV/markdown pairs or - for stdin)\", collect)\n .option(\n \"--remove <value>\",\n \"Remove linked test entry by command/path (command=<value>, path=<value>, markdown pairs, plain value, or - for stdin)\",\n collect,\n )\n .option(\"--run\", \"Run linked test commands\")\n .option(\"--background\", \"Run linked tests in managed background mode\")\n .option(\"--timeout <seconds>\", \"Default run timeout in seconds\")\n .option(\"--progress\", \"Emit linked-test progress to stderr (always shown in TTY, opt-in for non-TTY)\")\n .option(\"--env-set <value>\", \"Set environment variable(s) for linked-test runs (KEY=VALUE, repeatable)\", collect)\n .option(\"--env-clear <value>\", \"Clear environment variable(s) for linked-test runs (NAME, repeatable)\", collect)\n .option(\"--shared-host-safe\", \"Apply additive shared-host-safe runtime defaults for linked-test runs\")\n .option(\"--pm-context <mode>\", \"PM linked-test context mode: schema|tracker|auto (default: schema)\")\n .option(\n \"--override-linked-pm-context\",\n \"Force run-level --pm-context to override per-linked-test pm_context_mode metadata\",\n )\n .option(\"--fail-on-context-mismatch\", \"Fail linked PM commands when context item counts differ\")\n .option(\"--fail-on-skipped\", \"Treat skipped linked tests as dependency failures\")\n .option(\n \"--fail-on-empty-test-run\",\n \"Treat successful linked-test commands that report zero executed tests as failures\",\n )\n .option(\"--require-assertions-for-pm\", \"Require assertion metadata for linked PM command tests\")\n .option(\"--check-context\", \"Preflight linked PM command context diagnostics before executing commands\")\n .option(\n \"--auto-pm-context\",\n \"Auto-remediate PM tracker-read context mismatches by routing those linked commands through tracker context\",\n )\n .option(\"--author <value>\", \"Mutation author\")\n .option(\"--message <value>\", \"History message\")\n .option(\"--force\", \"Force ownership override\")\n .description(\"Manage tests linked to an item and optionally run them.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const addValues = Array.isArray(options.add) ? (options.add as string[]) : [];\n const removeValues = Array.isArray(options.remove) ? (options.remove as string[]) : [];\n const runInBackground = options.background === true;\n if (runInBackground && options.run !== true) {\n throw new PmCliError(\"--background requires --run\", EXIT_CODE.USAGE);\n }\n if (runInBackground && (addValues.length > 0 || removeValues.length > 0)) {\n throw new PmCliError(\"--background does not support --add/--remove; update linked tests first, then run in background\", EXIT_CODE.USAGE);\n }\n if (runInBackground) {\n const result = await runStartBackgroundRun(\n {\n kind: \"test\",\n commandArgs: buildBackgroundTestCommandArgs(id, {\n ...options,\n add: addValues,\n remove: removeValues,\n }),\n targetId: id,\n author: typeof options.author === \"string\" ? options.author : undefined,\n noExtensions: globalOptions.noExtensions === true,\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=test took_ms=${Date.now() - startedAt}`);\n }\n return;\n }\n const result = await runTest(\n id,\n {\n add: addValues,\n remove: removeValues,\n run: Boolean(options.run),\n timeout: typeof options.timeout === \"string\" ? options.timeout : undefined,\n progress: Boolean(options.progress),\n envSet: Array.isArray(options.envSet) ? (options.envSet as string[]) : [],\n envClear: Array.isArray(options.envClear) ? (options.envClear as string[]) : [],\n sharedHostSafe: Boolean(options.sharedHostSafe),\n pmContext: typeof options.pmContext === \"string\" ? options.pmContext : undefined,\n overrideLinkedPmContext: Boolean(options.overrideLinkedPmContext),\n failOnContextMismatch: Boolean(options.failOnContextMismatch),\n failOnSkipped: Boolean(options.failOnSkipped),\n failOnEmptyTestRun: Boolean(options.failOnEmptyTestRun),\n requireAssertionsForPm: Boolean(options.requireAssertionsForPm),\n checkContext: Boolean(options.checkContext),\n autoPmContext: Boolean(options.autoPmContext),\n author: typeof options.author === \"string\" ? options.author : undefined,\n message: typeof options.message === \"string\" ? options.message : undefined,\n force: Boolean(options.force),\n },\n globalOptions,\n );\n if (addValues.length > 0 || removeValues.length > 0 || options.run === true) {\n await invalidateSearchCachesForMutation(globalOptions, result);\n }\n printResult(result, globalOptions);\n if (result.run_results.some((entry) => entry.status === \"failed\") || result.fail_on_skipped_triggered === true) {\n process.exitCode = EXIT_CODE.DEPENDENCY_FAILED;\n }\n if (globalOptions.profile) {\n printError(`profile:command=test took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"test-all\")\n .description(\"Run linked tests across matching items.\")\n .option(\"--status <value>\", \"Filter items by status before running tests\")\n .option(\"--limit <n>\", \"Limit matching items before running linked tests\")\n .option(\"--offset <n>\", \"Skip matching items before running linked tests\")\n .option(\"--background\", \"Run linked tests in managed background mode\")\n .option(\"--timeout <seconds>\", \"Default run timeout in seconds\")\n .option(\"--progress\", \"Emit linked-test progress to stderr (always shown in TTY, opt-in for non-TTY)\")\n .option(\"--env-set <value>\", \"Set environment variable(s) for linked-test runs (KEY=VALUE, repeatable)\", collect)\n .option(\"--env-clear <value>\", \"Clear environment variable(s) for linked-test runs (NAME, repeatable)\", collect)\n .option(\"--shared-host-safe\", \"Apply additive shared-host-safe runtime defaults for linked-test runs\")\n .option(\"--pm-context <mode>\", \"PM linked-test context mode: schema|tracker|auto (default: schema)\")\n .option(\n \"--override-linked-pm-context\",\n \"Force run-level --pm-context to override per-linked-test pm_context_mode metadata\",\n )\n .option(\"--fail-on-context-mismatch\", \"Fail linked PM commands when context item counts differ\")\n .option(\"--fail-on-skipped\", \"Treat skipped linked tests as dependency failures\")\n .option(\n \"--fail-on-empty-test-run\",\n \"Treat successful linked-test commands that report zero executed tests as failures\",\n )\n .option(\"--require-assertions-for-pm\", \"Require assertion metadata for linked PM command tests\")\n .option(\"--check-context\", \"Preflight linked PM command context diagnostics before executing commands\")\n .option(\n \"--auto-pm-context\",\n \"Auto-remediate PM tracker-read context mismatches by routing those linked commands through tracker context\",\n )\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const runInBackground = options.background === true;\n if (runInBackground) {\n const result = await runStartBackgroundRun(\n {\n kind: \"test-all\",\n commandArgs: buildBackgroundTestAllCommandArgs(options),\n statusFilter: typeof options.status === \"string\" ? options.status : undefined,\n noExtensions: globalOptions.noExtensions === true,\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=test-all took_ms=${Date.now() - startedAt}`);\n }\n return;\n }\n const result = await runTestAll(\n {\n status: typeof options.status === \"string\" ? options.status : undefined,\n limit: typeof options.limit === \"string\" ? options.limit : undefined,\n offset: typeof options.offset === \"string\" ? options.offset : undefined,\n timeout: typeof options.timeout === \"string\" ? options.timeout : undefined,\n progress: Boolean(options.progress),\n envSet: Array.isArray(options.envSet) ? (options.envSet as string[]) : [],\n envClear: Array.isArray(options.envClear) ? (options.envClear as string[]) : [],\n sharedHostSafe: Boolean(options.sharedHostSafe),\n pmContext: typeof options.pmContext === \"string\" ? options.pmContext : undefined,\n overrideLinkedPmContext: Boolean(options.overrideLinkedPmContext),\n failOnContextMismatch: Boolean(options.failOnContextMismatch),\n failOnSkipped: Boolean(options.failOnSkipped),\n failOnEmptyTestRun: Boolean(options.failOnEmptyTestRun),\n requireAssertionsForPm: Boolean(options.requireAssertionsForPm),\n checkContext: Boolean(options.checkContext),\n autoPmContext: Boolean(options.autoPmContext),\n },\n globalOptions,\n );\n await invalidateSearchCachesForMutation(globalOptions, {\n ids: result.results.map((entry) => entry.id),\n });\n printResult(result, globalOptions);\n if (result.failed > 0 || result.fail_on_skipped_triggered === true) {\n process.exitCode = EXIT_CODE.DEPENDENCY_FAILED;\n }\n if (globalOptions.profile) {\n printError(`profile:command=test-all took_ms=${Date.now() - startedAt}`);\n }\n });\n\nconst testRunsCommand = program\n .command(\"test-runs\")\n .description(\"Manage background linked-test runs.\")\n .action(async (_options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runTestRunsList({}, globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=test-runs took_ms=${Date.now() - startedAt}`);\n }\n });\n\ntestRunsCommand\n .command(\"list\")\n .option(\"--status <value>\", \"Filter by background run status\")\n .option(\"--limit <value>\", \"Limit number of runs returned\")\n .description(\"List background test runs.\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runTestRunsList(\n {\n status: typeof options.status === \"string\" ? options.status : undefined,\n limit: typeof options.limit === \"string\" ? options.limit : undefined,\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=test-runs list took_ms=${Date.now() - startedAt}`);\n }\n });\n\ntestRunsCommand\n .command(\"status\")\n .argument(\"<runId>\", \"Background run id\")\n .description(\"Show status, health, and resource snapshot for a background run.\")\n .action(async (runId: string, _options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runTestRunsStatus(runId, globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=test-runs status took_ms=${Date.now() - startedAt}`);\n }\n });\n\ntestRunsCommand\n .command(\"logs\")\n .argument(\"<runId>\", \"Background run id\")\n .option(\"--stream <value>\", \"Log stream selector: stdout|stderr|both\")\n .option(\"--tail <value>\", \"Tail number of lines per selected stream\")\n .description(\"Show tailed logs for a background run.\")\n .action(async (runId: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runTestRunsLogs(\n runId,\n {\n stream: typeof options.stream === \"string\" ? options.stream : undefined,\n tail: typeof options.tail === \"string\" ? options.tail : undefined,\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=test-runs logs took_ms=${Date.now() - startedAt}`);\n }\n });\n\ntestRunsCommand\n .command(\"stop\")\n .argument(\"<runId>\", \"Background run id\")\n .option(\"--force\", \"Force-stop via SIGKILL\")\n .description(\"Stop a running background test run.\")\n .action(async (runId: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runTestRunsStop(\n runId,\n {\n force: options.force === true,\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=test-runs stop took_ms=${Date.now() - startedAt}`);\n }\n });\n\ntestRunsCommand\n .command(\"resume\")\n .argument(\"<runId>\", \"Background run id\")\n .option(\"--author <value>\", \"Resume author (falls back to PM_AUTHOR/settings)\")\n .description(\"Resume a previously terminal background test run by starting a new attempt.\")\n .action(async (runId: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runTestRunsResume(\n runId,\n {\n author: typeof options.author === \"string\" ? options.author : undefined,\n noExtensions: globalOptions.noExtensions === true,\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=test-runs resume took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"test-runs-worker\", { hidden: true })\n .argument(\"<runId>\", \"Background run id\")\n .description(\"Internal background worker command.\")\n .action(async (runId: string, _options: Record<string, unknown>, command: Command) => {\n const globalOptions = getGlobalOptions(command);\n await runTestRunsWorker(runId, globalOptions);\n });\n\nprogram\n .command(\"stats\")\n .description(\"Show project tracker statistics.\")\n .action(async (_options, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runStats(globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=stats took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"health\")\n .description(\"Show project tracker health checks.\")\n .option(\"--strict-directories\", \"Treat optional item-type directories as required failures\")\n .option(\"--check-only\", \"Run read-only health diagnostics without refreshing vectors\")\n .option(\"--check-telemetry\", \"Probe telemetry endpoint health and include network diagnostics\")\n .option(\"--no-refresh\", \"Disable automatic vector refresh attempts during health checks\")\n .option(\"--refresh-vectors\", \"Explicitly enable vector refresh attempts during health checks\")\n .option(\"--verbose-stale-items\", \"Include full stale vectorization ID lists in health output\")\n .option(\"--strict-exit\", \"Return non-zero exit when health warnings are present (ok=false)\")\n .option(\"--fail-on-warn\", \"Alias for --strict-exit\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runHealth(globalOptions, {\n strictDirectories: Boolean(options.strictDirectories),\n checkOnly: Boolean(options.checkOnly),\n checkTelemetry: Boolean(options.checkTelemetry),\n noRefresh: Boolean(options.noRefresh),\n refreshVectors: Boolean(options.refreshVectors),\n verboseStaleItems: Boolean(options.verboseStaleItems),\n });\n printResult(result, globalOptions);\n const strictExit = Boolean(options.strictExit) || Boolean(options.failOnWarn);\n if (strictExit && !result.ok) {\n process.exitCode = EXIT_CODE.GENERIC_FAILURE;\n }\n if (globalOptions.profile) {\n printError(`profile:command=health took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"validate\")\n .description(\"Run standalone metadata, resolution, lifecycle, files, linked-command reference, and history drift validation checks.\")\n .option(\"--check-metadata\", \"Run metadata completeness checks\")\n .option(\"--metadata-profile <value>\", \"Select metadata validation profile for --check-metadata (core|strict|custom)\")\n .option(\"--check-resolution\", \"Run closed-item resolution metadata checks\")\n .option(\"--check-lifecycle\", \"Run active-item lifecycle governance drift checks\")\n .option(\"--check-stale-blockers\", \"Include stale blocker-pattern diagnostics in lifecycle checks\")\n .option(\n \"--dependency-cycle-severity <value>\",\n \"Set dependency-cycle warning policy for lifecycle checks (off|warn|error)\",\n )\n .option(\"--check-files\", \"Run linked-file and orphaned-file checks\")\n .option(\"--check-command-references\", \"Run linked-command PM-ID reference checks\")\n .option(\"--scan-mode <value>\", \"Select file candidate scan mode for --check-files (default|tracked-all|tracked-all-strict)\")\n .option(\"--include-pm-internals\", \"Include PM storage internals in tracked-all candidate scans\")\n .option(\"--verbose-file-lists\", \"Include full file-path lists for validate --check-files details\")\n .option(\"--strict-exit\", \"Return non-zero exit when validation warnings are present (ok=false)\")\n .option(\"--fail-on-warn\", \"Alias for --strict-exit\")\n .option(\"--check-history-drift\", \"Run item/history hash drift checks\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runValidate(\n {\n checkMetadata: Boolean(options.checkMetadata),\n metadataProfile: typeof options.metadataProfile === \"string\" ? options.metadataProfile : undefined,\n checkResolution: Boolean(options.checkResolution),\n checkLifecycle: Boolean(options.checkLifecycle),\n checkStaleBlockers: Boolean(options.checkStaleBlockers),\n dependencyCycleSeverity:\n typeof options.dependencyCycleSeverity === \"string\" ? options.dependencyCycleSeverity : undefined,\n checkFiles: Boolean(options.checkFiles),\n checkCommandReferences: Boolean(options.checkCommandReferences),\n scanMode: typeof options.scanMode === \"string\" ? options.scanMode : undefined,\n includePmInternals: Boolean(options.includePmInternals),\n verboseFileLists: Boolean(options.verboseFileLists),\n checkHistoryDrift: Boolean(options.checkHistoryDrift),\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n const strictExit = Boolean(options.strictExit) || Boolean(options.failOnWarn);\n if (strictExit && !result.ok) {\n process.exitCode = EXIT_CODE.GENERIC_FAILURE;\n }\n if (globalOptions.profile) {\n printError(`profile:command=validate took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"gc\")\n .option(\"--dry-run\", \"Preview cleanup targets without deleting files\")\n .option(\n \"--scope <value>\",\n \"Limit cleanup to one or more scopes (comma-separated or repeatable): index, embeddings, runtime\",\n collect,\n )\n .description(\"Clean optional cache artifacts and show a summary.\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runGc(globalOptions, {\n dryRun: options.dryRun === true,\n scope: Array.isArray(options.scope) ? (options.scope as string[]) : [],\n });\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=gc took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"contracts\")\n .description(\"Show machine-readable command and schema contracts for agents.\")\n .option(\"--action <value>\", \"Filter tool schema branches to a specific action\")\n .option(\"--command <value>\", \"Scope contracts output to one CLI command (narrow-by-default)\")\n .option(\"--schema-only\", \"Return schema-focused output only\")\n .option(\"--flags-only\", \"Return command flag contracts only\")\n .option(\"--availability-only\", \"Return action availability surface only\")\n .option(\"--runtime-only\", \"Include only actions invocable in the current runtime\")\n .option(\"--active-only\", \"Alias for --runtime-only\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runContracts(\n {\n action: typeof options.action === \"string\" ? options.action : undefined,\n command: typeof options.command === \"string\" ? options.command : undefined,\n schemaOnly: Boolean(options.schemaOnly),\n flagsOnly: Boolean(options.flagsOnly),\n availabilityOnly: Boolean(options.availabilityOnly),\n runtimeOnly: Boolean(options.runtimeOnly) || Boolean(options.activeOnly),\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=contracts took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"claim\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--author <value>\", \"Mutation author\")\n .option(\"--message <value>\", \"History message\")\n .option(\"--force\", \"Force claim override\")\n .description(\"Claim an item for active work.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runClaim(id, Boolean(options.force), globalOptions, {\n author: typeof options.author === \"string\" ? options.author : undefined,\n message: typeof options.message === \"string\" ? options.message : undefined,\n });\n await invalidateSearchCachesForMutation(globalOptions, result);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=claim took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"release\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--author <value>\", \"Mutation author\")\n .option(\"--message <value>\", \"History message\")\n .option(\"--allow-audit-release\", \"Allow non-owner release handoffs without requiring --force\")\n .option(\"--force\", \"Force release override\")\n .description(\"Release an item's active claim.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runRelease(id, Boolean(options.force), globalOptions, {\n author: typeof options.author === \"string\" ? options.author : undefined,\n message: typeof options.message === \"string\" ? options.message : undefined,\n allowAuditRelease: options.allowAuditRelease === true,\n });\n await invalidateSearchCachesForMutation(globalOptions, result);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=release took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"start-task\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--author <value>\", \"Mutation author\")\n .option(\"--message <value>\", \"History message\")\n .option(\"--force\", \"Force ownership or terminal override when required\")\n .description(\"Lifecycle alias: claim an item and move it to in_progress.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);\n const settings = await readSettings(pmRoot);\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const inProgressStatus = normalizeStatusInput(\"in_progress\", statusRegistry) ?? statusRegistry.open_status;\n const force = Boolean(options.force);\n const mutationOptions = {\n author: typeof options.author === \"string\" ? options.author : undefined,\n message: typeof options.message === \"string\" ? options.message : undefined,\n };\n const claimResult = await runClaim(id, force, globalOptions, mutationOptions);\n await invalidateSearchCachesForMutation(globalOptions, claimResult);\n const updateResult = await runUpdate(\n id,\n {\n ...mutationOptions,\n status: inProgressStatus,\n force,\n },\n globalOptions,\n );\n await invalidateSearchCachesForMutation(globalOptions, updateResult);\n printResult(\n {\n id,\n action: \"start_task\",\n claim: claimResult,\n update: updateResult,\n },\n globalOptions,\n );\n if (globalOptions.profile) {\n printError(`profile:command=start-task took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"pause-task\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--author <value>\", \"Mutation author\")\n .option(\"--message <value>\", \"History message\")\n .option(\"--force\", \"Force ownership override when required\")\n .description(\"Lifecycle alias: move an item to open and release its claim.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);\n const settings = await readSettings(pmRoot);\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const openStatus = statusRegistry.open_status;\n const force = Boolean(options.force);\n const mutationOptions = {\n author: typeof options.author === \"string\" ? options.author : undefined,\n message: typeof options.message === \"string\" ? options.message : undefined,\n };\n const updateResult = await runUpdate(\n id,\n {\n ...mutationOptions,\n status: openStatus,\n force,\n },\n globalOptions,\n );\n await invalidateSearchCachesForMutation(globalOptions, updateResult);\n const releaseResult = await runRelease(id, force, globalOptions, mutationOptions);\n await invalidateSearchCachesForMutation(globalOptions, releaseResult);\n printResult(\n {\n id,\n action: \"pause_task\",\n update: updateResult,\n release: releaseResult,\n },\n globalOptions,\n );\n if (globalOptions.profile) {\n printError(`profile:command=pause-task took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"close-task\")\n .argument(\"<id>\", \"Item id\")\n .argument(\"<reason>\", \"Close reason text\")\n .option(\"--author <value>\", \"Mutation author\")\n .option(\"--message <value>\", \"History message\")\n .option(\"--validate-close <value>\", \"Close-time validation mode: off|warn|strict\")\n .option(\"--force\", \"Force ownership or terminal override when required\")\n .description(\"Lifecycle alias: close an item with reason and release assignment metadata.\")\n .action(async (id: string, reason: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const force = Boolean(options.force);\n const mutationOptions = {\n author: typeof options.author === \"string\" ? options.author : undefined,\n message: typeof options.message === \"string\" ? options.message : undefined,\n };\n const closeResult = await runClose(\n id,\n reason,\n {\n ...mutationOptions,\n validateClose: typeof options.validateClose === \"string\" ? options.validateClose : undefined,\n force,\n },\n globalOptions,\n );\n await invalidateSearchCachesForMutation(globalOptions, closeResult);\n const releaseResult = await runRelease(id, force, globalOptions, mutationOptions);\n await invalidateSearchCachesForMutation(globalOptions, releaseResult);\n printResult(\n {\n id,\n action: \"close_task\",\n close: closeResult,\n release: releaseResult,\n },\n globalOptions,\n );\n if (globalOptions.profile) {\n printError(`profile:command=close-task took_ms=${Date.now() - startedAt}`);\n }\n });\n\nprogram\n .command(\"completion\")\n .argument(\"<shell>\", \"Shell type: bash, zsh, or fish\")\n .option(\"--eager-tags\", \"Embed current tracker tags directly in generated scripts (legacy eager mode)\")\n .description(\"Generate shell completion for pm.\")\n .action(async (shell: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);\n let completionTypes: string[] | undefined;\n let completionTags: string[] | undefined;\n let completionStatuses: string[] | undefined;\n const completionCommandFlags: Partial<\n Record<\"list\" | \"create\" | \"update\" | \"update-many\" | \"search\" | \"calendar\" | \"context\", string[]>\n > = {};\n const eagerTags = Boolean(options.eagerTags);\n if (await pathExists(getSettingsPath(pmRoot))) {\n const settings = await readSettings(pmRoot);\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const runtimeFieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n completionTypes = typeRegistry.types;\n completionStatuses = statusRegistry.definitions.map((definition) => definition.id);\n for (const [commandKey, definitions] of runtimeFieldRegistry.command_to_fields.entries()) {\n if (\n commandKey !== \"list\" &&\n commandKey !== \"create\" &&\n commandKey !== \"update\" &&\n commandKey !== \"search\" &&\n commandKey !== \"calendar\" &&\n commandKey !== \"context\"\n ) {\n continue;\n }\n const runtimeFlags = new Set<string>();\n for (const definition of definitions) {\n runtimeFlags.add(`--${definition.cli_flag}`);\n for (const alias of definition.cli_aliases) {\n if (alias.startsWith(\"--\") || (alias.startsWith(\"-\") && !alias.startsWith(\"--\"))) {\n runtimeFlags.add(alias);\n } else {\n runtimeFlags.add(`--${alias}`);\n }\n }\n }\n completionCommandFlags[commandKey] = [...runtimeFlags].sort((left, right) => left.localeCompare(right));\n }\n if (completionCommandFlags.update) {\n completionCommandFlags[\"update-many\"] = [...completionCommandFlags.update];\n }\n if (eagerTags) {\n const items = await listAllFrontMatter(pmRoot, settings.item_format, typeRegistry.type_to_folder, undefined, settings.schema);\n completionTags = [...new Set(items.flatMap((item) => item.tags ?? []).map((tag) => tag.trim()).filter((tag) => tag.length > 0))]\n .sort((left, right) => left.localeCompare(right));\n }\n }\n const result = runCompletion(shell, completionTypes, completionTags ?? [], eagerTags, {\n statuses: completionStatuses,\n command_flags: completionCommandFlags,\n });\n if (globalOptions.json) {\n printResult(result, globalOptions);\n } else if (!globalOptions.quiet) {\n writeStdout(`${result.script}\\n`);\n }\n if (globalOptions.profile) {\n printError(`profile:command=completion took_ms=0`);\n }\n });\n\nprogram\n .command(\"completion-tags\", { hidden: true })\n .description(\"Internal dynamic completion tag source.\")\n .action(async (_options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);\n let tags: string[] = [];\n if (await pathExists(getSettingsPath(pmRoot))) {\n const settings = await readSettings(pmRoot);\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const items = await listAllFrontMatter(pmRoot, settings.item_format, typeRegistry.type_to_folder, undefined, settings.schema);\n tags = [...new Set(items.flatMap((item) => item.tags ?? []).map((tag) => tag.trim()).filter((tag) => tag.length > 0))].sort((left, right) =>\n left.localeCompare(right),\n );\n }\n if (globalOptions.json) {\n printResult(\n {\n tags,\n count: tags.length,\n },\n globalOptions,\n );\n } else if (!globalOptions.quiet) {\n writeStdout(tags.join(\"\\n\"));\n if (tags.length > 0) {\n writeStdout(\"\\n\");\n }\n }\n if (globalOptions.profile) {\n printError(`profile:command=completion-tags took_ms=${Date.now() - startedAt}`);\n }\n });\n\nattachRichHelpText(program, normalizeLegacyExtensionActionSyntax(process.argv.slice(2)));\n\ninterface CommanderUsageContext extends CommanderGuidanceContext {\n message: string;\n commandName: string | undefined;\n allowedTypes: string;\n}\n\nfunction collectRuntimeCommandPaths(root: Command): string[] {\n const commandPaths = new Set<string>();\n const queue: Command[] = [...root.commands];\n while (queue.length > 0) {\n const current = queue.shift();\n if (!current) {\n continue;\n }\n const normalizedPath = normalizeHelpCommandPath(getCommandPath(current));\n const hasInternalSegment = normalizedPath.split(\" \").some((segment) => segment.startsWith(\"_\"));\n if (normalizedPath.length > 0 && !hasInternalSegment) {\n commandPaths.add(normalizedPath);\n }\n queue.push(...current.commands);\n }\n for (const descriptorPath of activeRuntimeExtensionCommandDescriptors.keys()) {\n const normalizedPath = normalizeHelpCommandPath(descriptorPath);\n const hasInternalSegment = normalizedPath.split(\" \").some((segment) => segment.startsWith(\"_\"));\n if (normalizedPath.length > 0 && !hasInternalSegment) {\n commandPaths.add(normalizedPath);\n }\n }\n return [...commandPaths].sort((left, right) => left.localeCompare(right));\n}\n\nfunction scoreCommandPathMatch(commandPath: string, queryToken: string): number {\n const normalizedPath = commandPath.trim().toLowerCase();\n const normalizedToken = queryToken.trim().toLowerCase();\n if (normalizedToken.length === 0) {\n return Number.POSITIVE_INFINITY;\n }\n const pathSegments = normalizedPath.split(\" \");\n if (normalizedPath === normalizedToken) {\n return 0;\n }\n if (pathSegments.includes(normalizedToken)) {\n return 1;\n }\n if (pathSegments.some((segment) => segment.startsWith(normalizedToken))) {\n return 2;\n }\n if (normalizedPath.includes(normalizedToken)) {\n return 3;\n }\n return Number.POSITIVE_INFINITY;\n}\n\nfunction buildUnknownCommandGuidanceFromRuntime(rawMessage: string, root: Command): CommanderGuidanceContext | undefined {\n const unknownCommandMatch = rawMessage.match(/unknown command '([^']+)'/i);\n if (!unknownCommandMatch || typeof unknownCommandMatch[1] !== \"string\") {\n return undefined;\n }\n const normalizedUnknown = normalizeHelpCommandPath(unknownCommandMatch[1]);\n if (normalizedUnknown.length === 0) {\n return undefined;\n }\n const commandPaths = collectRuntimeCommandPaths(root);\n if (commandPaths.length === 0) {\n return undefined;\n }\n\n const primaryToken = normalizedUnknown.split(\" \")[0] ?? normalizedUnknown;\n const rankedCandidates = commandPaths\n .map((commandPath) => {\n const directScore = scoreCommandPathMatch(commandPath, normalizedUnknown);\n const fallbackScore =\n primaryToken !== normalizedUnknown ? scoreCommandPathMatch(commandPath, primaryToken) : Number.POSITIVE_INFINITY;\n const score = Math.min(directScore, fallbackScore);\n return { commandPath, score };\n })\n .filter((entry) => Number.isFinite(entry.score))\n .sort((left, right) => {\n if (left.score !== right.score) {\n return left.score - right.score;\n }\n return left.commandPath.localeCompare(right.commandPath);\n })\n .map((entry) => entry.commandPath);\n\n const fallbackTopLevel = [...new Set(commandPaths.map((commandPath) => commandPath.split(\" \")[0]).filter((segment) => segment.length > 0))];\n fallbackTopLevel.sort((left, right) => left.localeCompare(right));\n const suggestedPaths = (rankedCandidates.length > 0 ? rankedCandidates : fallbackTopLevel).slice(0, 3);\n const examples = [...new Set([\"pm --help\", ...suggestedPaths.map((path) => `pm ${path} --help`)])];\n\n return {\n unknownCommandExamples: examples,\n unknownCommandNextSteps: [\n 'Run \"pm --help\" to list commands available in this runtime, including active extensions.',\n \"Use one of the suggested command paths above with --help to inspect valid flags and usage.\",\n ],\n };\n}\n\nfunction resolveChildCommandByToken(parent: Command, token: string): Command | undefined {\n const normalizedToken = token.trim().toLowerCase();\n return parent.commands.find((candidate) => {\n if (candidate.name().trim().toLowerCase() === normalizedToken) {\n return true;\n }\n const aliases = typeof candidate.aliases === \"function\" ? candidate.aliases() : [];\n return aliases.some((alias) => alias.trim().toLowerCase() === normalizedToken);\n });\n}\n\nfunction isKnownHelpCommandPath(root: Command, commandPathTokens: string[]): boolean {\n if (commandPathTokens.length === 0) {\n return true;\n }\n let current = root;\n let matchedAny = false;\n for (const token of commandPathTokens) {\n const next = resolveChildCommandByToken(current, token);\n if (!next) {\n return matchedAny;\n }\n matchedAny = true;\n current = next;\n }\n return matchedAny;\n}\n\nasync function resolveCommanderUsageContext(error: unknown): Promise<CommanderUsageContext> {\n const rawMessage = typeof error === \"object\" && error !== null ? (error as { message?: string }).message : undefined;\n const message = rawMessage ?? \"Invalid command usage\";\n const invocationArgv = normalizeLegacyExtensionActionSyntax(process.argv.slice(2));\n const bootstrapGlobal = parseBootstrapGlobalOptions(invocationArgv);\n const commandName = parseBootstrapCommandName(invocationArgv);\n let allowedTypes = BUILTIN_TYPE_HELP_VALUES;\n try {\n const pmRoot = resolvePmRoot(process.cwd(), bootstrapGlobal.path);\n if (await pathExists(getSettingsPath(pmRoot))) {\n const settings = await readSettings(pmRoot);\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n if (typeRegistry.types.length > 0) {\n allowedTypes = typeRegistry.types.join(\"|\");\n }\n }\n } catch {\n // Fall back to built-in type guidance when settings cannot be read.\n }\n const unknownCommandGuidance = buildUnknownCommandGuidanceFromRuntime(message, program);\n return {\n message,\n commandName,\n allowedTypes,\n ...(unknownCommandGuidance ?? {}),\n };\n}\n\nasync function formatCommanderUsageMessage(error: unknown): Promise<string> {\n const usageContext = await resolveCommanderUsageContext(error);\n const { message, commandName, allowedTypes, unknownCommandExamples, unknownCommandNextSteps } = usageContext;\n const formatted = formatCommanderErrorForDisplay(message, commandName, allowedTypes, {\n unknownCommandExamples,\n unknownCommandNextSteps,\n });\n const serviceOverride = await runActiveServiceOverride(\"help_format\", {\n message: formatted,\n command: commandName,\n allowed_types: allowedTypes,\n });\n if (serviceOverride.handled && typeof serviceOverride.result === \"string\") {\n return serviceOverride.result;\n }\n return formatted;\n}\n\nasync function formatCommanderUsageJson(error: unknown): Promise<string> {\n const usageContext = await resolveCommanderUsageContext(error);\n const envelope = formatCommanderErrorForJson(\n usageContext.message,\n usageContext.commandName,\n usageContext.allowedTypes,\n EXIT_CODE.USAGE,\n {\n unknownCommandExamples: usageContext.unknownCommandExamples,\n unknownCommandNextSteps: usageContext.unknownCommandNextSteps,\n },\n );\n return JSON.stringify(envelope, null, 2);\n}\n\nasync function main(): Promise<void> {\n const invocationArgv = normalizeLegacyExtensionActionSyntax(process.argv.slice(2));\n const invocationProcessArgv = [process.argv[0], process.argv[1], ...invocationArgv];\n try {\n applyBootstrapPagerPolicy(invocationArgv);\n await registerDynamicExtensionCommandPaths(program);\n await registerRuntimeSchemaFieldFlags(program);\n wrapProgramActionsForExtensionHandlers(program);\n const renderedBootstrapJsonHelp = await maybeRenderBootstrapJsonHelp(program, invocationArgv);\n if (renderedBootstrapJsonHelp) {\n return;\n }\n await program.parseAsync(invocationProcessArgv);\n } catch (error: unknown) {\n sentryFinishCommandSpan(false, describeUnknownError(error));\n await runAndClearAfterCommandHooks({\n ok: false,\n error: describeUnknownError(error),\n });\n const bootstrapGlobal = parseBootstrapGlobalOptions(invocationArgv);\n const jsonErrors = bootstrapGlobal.json;\n if (!bootstrapGlobal.noExtensions) {\n const bootstrapPmRoot = resolvePmRoot(process.cwd(), bootstrapGlobal.path);\n const bootstrapSnapshot = await loadRuntimeExtensionSnapshot(bootstrapPmRoot);\n setActiveExtensionServices(bootstrapSnapshot?.services ?? { overrides: [] });\n }\n if (error instanceof PmCliError) {\n sentryCaptureCliError(error);\n if (jsonErrors) {\n printError(JSON.stringify(formatPmCliErrorForJson(error.message, error.exitCode, error.context), null, 2));\n } else {\n printError(formatPmCliErrorForDisplay(error.message, error.context));\n }\n await sentryFlush();\n process.exitCode = error.exitCode;\n return;\n }\n\n if (typeof error === \"object\" && error !== null && \"code\" in error) {\n const code = (error as { code?: string }).code;\n const rawMessage = typeof (error as { message?: unknown }).message === \"string\" ? ((error as { message?: string }).message ?? \"\") : \"\";\n const isHelpDisplayCode =\n code === \"commander.helpDisplayed\" || code === \"commander.help\" || code === \"commander.helpCommand\";\n if (isHelpDisplayCode || rawMessage.includes(\"(outputHelp)\")) {\n const helpRequest = parseBootstrapHelpRequest(invocationArgv);\n if (helpRequest.requested && !isKnownHelpCommandPath(program, helpRequest.commandPathTokens)) {\n const unknownToken = helpRequest.commandPathTokens[0] ?? parseBootstrapCommandName(invocationArgv) ?? \"<command>\";\n const unknownMessage = `unknown command '${unknownToken}'`;\n if (jsonErrors) {\n printError(await formatCommanderUsageJson({ message: unknownMessage }));\n } else {\n printError(await formatCommanderUsageMessage({ message: unknownMessage }));\n }\n process.exitCode = EXIT_CODE.USAGE;\n return;\n }\n process.exitCode = EXIT_CODE.SUCCESS;\n return;\n }\n if (code === \"commander.version\") {\n process.exitCode = EXIT_CODE.SUCCESS;\n return;\n }\n if (code?.startsWith(\"commander.\")) {\n if (jsonErrors) {\n printError(await formatCommanderUsageJson(error));\n } else {\n printError(await formatCommanderUsageMessage(error));\n }\n process.exitCode = EXIT_CODE.USAGE;\n return;\n }\n }\n\n sentryCaptureCliError(error);\n const message = describeUnknownError(error);\n if (jsonErrors) {\n printError(JSON.stringify(formatUnknownErrorForJson(message, EXIT_CODE.GENERIC_FAILURE), null, 2));\n } else {\n printError(message);\n }\n await sentryFlush();\n process.exitCode = EXIT_CODE.GENERIC_FAILURE;\n }\n}\n\nvoid main();\n"]}
1
+ {"version":3,"file":"main.js","sourceRoot":"/","sources":["cli/main.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { Command } from \"commander\";\nimport {\n activateExtensions,\n clearActiveExtensionHooks,\n createEmptyExtensionRegistrationRegistry,\n getActiveCommandResult,\n getActiveExtensionRegistrations,\n loadExtensions,\n runActiveCommandHandler,\n runActiveParserOverride,\n runActivePreflightOverride,\n runAfterCommandHooks,\n runBeforeCommandHooks,\n setActiveCommandResult,\n setActiveCommandContext,\n setActiveExtensionCommands,\n setActiveExtensionHooks,\n setActiveExtensionParsers,\n setActiveExtensionPreflight,\n setActiveExtensionRegistrations,\n setActiveExtensionRenderers,\n setActiveExtensionServices,\n type ExtensionCommandRegistry,\n type ExtensionHookRegistry,\n type ExtensionParserRegistry,\n type ExtensionPreflightRegistry,\n type ExtensionServiceRegistry,\n type PreflightRuntimeDecision,\n type RegisteredExtensionSchemaMigrationDefinition,\n type ExtensionRendererRegistry,\n} from \"../core/extensions/index.js\";\nimport { pathExists } from \"../core/fs/fs-utils.js\";\nimport {\n resolveItemTypeRegistry,\n} from \"../core/item/type-registry.js\";\nimport {\n resolveRuntimeFieldRegistry,\n type RuntimeFieldCommand,\n} from \"../core/schema/runtime-schema.js\";\nimport { EXIT_CODE, resolveTelemetryErrorCategory, type TelemetryErrorCategory } from \"../core/shared/constants.js\";\nimport { PmCliError } from \"../core/shared/errors.js\";\nimport { toNonEmptyStringOrUndefined } from \"../core/shared/primitives.js\";\nimport { printError, printResult, writeStdout } from \"../core/output/output.js\";\nimport { maybeRunFirstUseTelemetryPrompt } from \"../core/telemetry/consent.js\";\nimport {\n emitTelemetryErrorEvent,\n finishTelemetryCommand,\n startTelemetryCommand,\n type ActiveTelemetryCommand,\n type TelemetryCommandOutcome,\n} from \"../core/telemetry/runtime.js\";\nimport {\n deriveTelemetryCommandResolution,\n type TelemetryCommandResolution,\n type TelemetryResolutionStage,\n} from \"../core/telemetry/observability.js\";\nimport {\n sentryCaptureCliError,\n sentryFinishCommandSpan,\n sentryFlush,\n sentryLogCliUsageError,\n sentrySetCommandContext,\n sentryStartCommandSpan,\n} from \"../core/sentry/helpers.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../core/store/paths.js\";\nimport { readSettings } from \"../core/store/settings.js\";\nimport type { GlobalOptions } from \"../core/shared/command-types.js\";\nimport type { PmSettings } from \"../types/index.js\";\nimport { coerceLooseCommandOptionsWithFlagDefinitions, parseLooseCommandOptions } from \"./extension-command-options.js\";\nimport { attachRichHelpText } from \"./help-content.js\";\nimport {\n classifyCommanderError,\n classifyPmCliError,\n classifyUnknownError,\n formatPmCliErrorForDisplay,\n formatPmCliErrorForJson,\n formatUnknownErrorForJson,\n} from \"./error-guidance.js\";\nimport {\n applyDefaultOutputFormat,\n clearResolvedGlobalOptions,\n collect,\n formatHookWarnings,\n getCommandPath,\n getGlobalOptions,\n invalidateSearchCachesForMutation,\n setResolvedGlobalOptions,\n} from \"./registration-helpers.js\";\nimport { registerSetupCommands } from \"./register-setup.js\";\nimport { registerListQueryCommands } from \"./register-list-query.js\";\nimport { registerMutationCommands } from \"./register-mutation.js\";\nimport { registerOperationCommands } from \"./register-operations.js\";\nimport {\n type ExtensionCommandHelpDescriptor,\n normalizeExtensionCommandPath,\n collectDynamicExtensionFlagHelpByCommand,\n collectExtensionCommandHelpDescriptors,\n applyDynamicExtensionArguments,\n buildDynamicExtensionCommandMetadataHelp,\n findCommandByPath,\n ensureCommandPath,\n} from \"./extension-command-help.js\";\nimport {\n parseBootstrapGlobalOptions,\n applyBootstrapPagerPolicy,\n parseBootstrapHelpRequest,\n parseBootstrapCommandName,\n normalizeLegacyExtensionActionSyntax,\n} from \"./bootstrap-args.js\";\nimport {\n type MandatoryMigrationBlocker,\n collectMandatoryMigrationBlockers,\n enforceMandatoryMigrationWriteGate,\n enforceItemFormatWriteGateAndPreflightMigration,\n resolveMigrationId,\n resolveNormalizedMigrationStatus,\n} from \"./migration-gates.js\";\nimport {\n isKnownHelpCommandPath,\n formatCommanderUsageMessage,\n formatCommanderUsageJson,\n resolveCommanderUsageContext,\n} from \"./commander-usage.js\";\nimport {\n maybeRenderBootstrapJsonHelp,\n attachCreateUpdatePolicyHelpText,\n} from \"./help-json-payload.js\";\n\nconst PM_PACKAGE_ROOT_ENV = \"PM_CLI_PACKAGE_ROOT\";\n\nfunction resolvePmPackageRoot(): string {\n const mainPath = fileURLToPath(import.meta.url);\n return path.resolve(path.dirname(mainPath), \"../..\");\n}\n\nif (typeof process.env[PM_PACKAGE_ROOT_ENV] !== \"string\" || process.env[PM_PACKAGE_ROOT_ENV]?.trim().length === 0) {\n process.env[PM_PACKAGE_ROOT_ENV] = resolvePmPackageRoot();\n}\n\n\ninterface ActiveExtensionHookContext {\n hooks: ExtensionHookRegistry;\n commandName: string;\n commandArgs: string[];\n commandOptions: Record<string, unknown>;\n globalOptions: GlobalOptions;\n pmRoot: string;\n profileEnabled: boolean;\n migrationBlockers: MandatoryMigrationBlocker[];\n}\n\nlet activeExtensionHookContext: ActiveExtensionHookContext | null = null;\nlet activeTelemetryCommandContext: ActiveTelemetryCommand | null = null;\n\nconst TELEMETRY_COMMAND_RESOLUTION_SET = new Set<TelemetryCommandResolution>([\n \"success\",\n \"nonexistent_command\",\n \"invalid_option\",\n \"missing_required_option\",\n \"missing_required_argument\",\n \"invalid_usage\",\n \"validation_failed\",\n \"conflict\",\n \"runtime_failed\",\n \"unknown_failed\",\n]);\n\nconst TELEMETRY_RESOLUTION_STAGE_SET = new Set<TelemetryResolutionStage>([\"parse\", \"preflight\", \"execute\", \"unknown\"]);\nconst TELEMETRY_ERROR_CATEGORY_SET = new Set<TelemetryErrorCategory>([\"usage\", \"validation\", \"conflict\", \"runtime\", \"unknown\"]);\n\ninterface RuntimeExtensionSnapshot {\n hooks: ExtensionHookRegistry;\n commands: ExtensionCommandRegistry;\n parsers: ExtensionParserRegistry;\n preflight: ExtensionPreflightRegistry;\n services: ExtensionServiceRegistry;\n renderers: ExtensionRendererRegistry;\n registrations: ReturnType<typeof createEmptyExtensionRegistrationRegistry>;\n pmRoot: string;\n settings: PmSettings;\n commandHandlers: string[];\n commandFlagHelp: Map<string, string>;\n commandDescriptors: Map<string, ExtensionCommandHelpDescriptor>;\n loadWarnings: string[];\n activationWarnings: string[];\n loadedCount: number;\n loadFailedCount: number;\n activationFailedCount: number;\n}\n\nlet runtimeExtensionSnapshotCache: { key: string; snapshot: RuntimeExtensionSnapshot | null } | null = null;\nlet activeRuntimeExtensionCommandDescriptors = new Map<string, ExtensionCommandHelpDescriptor>();\n\nfunction describeUnknownError(error: unknown): string {\n if (error instanceof PmCliError) {\n return error.message;\n }\n if (error instanceof Error) {\n return error.message;\n }\n return \"Unknown failure\";\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> | null {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n return null;\n }\n return value as Record<string, unknown>;\n}\n\nfunction readRecordString(record: Record<string, unknown> | null, ...keys: string[]): string | undefined {\n if (!record) {\n return undefined;\n }\n for (const key of keys) {\n const candidate = record[key];\n if (typeof candidate === \"string\") {\n const normalized = candidate.trim();\n if (normalized.length > 0) {\n return normalized;\n }\n }\n }\n return undefined;\n}\n\nfunction readRecordBoolean(record: Record<string, unknown> | null, ...keys: string[]): boolean | undefined {\n if (!record) {\n return undefined;\n }\n for (const key of keys) {\n const candidate = record[key];\n if (typeof candidate === \"boolean\") {\n return candidate;\n }\n }\n return undefined;\n}\n\nfunction readRecordNumber(record: Record<string, unknown> | null, ...keys: string[]): number | undefined {\n if (!record) {\n return undefined;\n }\n for (const key of keys) {\n const candidate = record[key];\n if (typeof candidate === \"number\" && Number.isFinite(candidate)) {\n return Math.max(0, Math.trunc(candidate));\n }\n }\n return undefined;\n}\n\nfunction normalizeTelemetryCommandResolution(\n value: string | undefined,\n): TelemetryCommandResolution | undefined {\n if (!value) {\n return undefined;\n }\n const normalized = value.trim().toLowerCase();\n if (!TELEMETRY_COMMAND_RESOLUTION_SET.has(normalized as TelemetryCommandResolution)) {\n return undefined;\n }\n return normalized as TelemetryCommandResolution;\n}\n\nfunction normalizeTelemetryResolutionStage(value: string | undefined): TelemetryResolutionStage | undefined {\n if (!value) {\n return undefined;\n }\n const normalized = value.trim().toLowerCase();\n if (!TELEMETRY_RESOLUTION_STAGE_SET.has(normalized as TelemetryResolutionStage)) {\n return undefined;\n }\n return normalized as TelemetryResolutionStage;\n}\n\nfunction normalizeTelemetryErrorCategory(value: string | undefined): TelemetryErrorCategory | undefined {\n if (!value) {\n return undefined;\n }\n const normalized = value.trim().toLowerCase();\n if (!TELEMETRY_ERROR_CATEGORY_SET.has(normalized as TelemetryErrorCategory)) {\n return undefined;\n }\n return normalized as TelemetryErrorCategory;\n}\n\nfunction inferPostActionFailureMessage(result: Record<string, unknown> | null): string | undefined {\n const explicit = readRecordString(result, \"error\", \"message\");\n if (explicit) {\n return explicit;\n }\n\n const warnings = result?.warnings;\n if (Array.isArray(warnings)) {\n const firstWarning = warnings.find((value) => typeof value === \"string\" && value.trim().length > 0);\n if (typeof firstWarning === \"string\") {\n return firstWarning.trim();\n }\n }\n\n const skippedTriggered = readRecordBoolean(result, \"fail_on_skipped_triggered\", \"failOnSkippedTriggered\");\n if (skippedTriggered) {\n return \"linked_test_fail_on_skipped_triggered\";\n }\n\n const failedCount = readRecordNumber(result, \"failed\");\n if (typeof failedCount === \"number\" && failedCount > 0) {\n return `failed_runs:${failedCount}`;\n }\n\n const runResults = result?.run_results;\n if (Array.isArray(runResults)) {\n const failedRuns = runResults.filter((entry) => {\n const row = asRecord(entry);\n return row?.status === \"failed\";\n }).length;\n if (failedRuns > 0) {\n return `failed_runs:${failedRuns}`;\n }\n }\n\n return undefined;\n}\n\nfunction inferPostActionErrorCode(ok: boolean, exitCode: number): string | undefined {\n if (ok) {\n return undefined;\n }\n if (exitCode === EXIT_CODE.USAGE) {\n return \"invalid_command_usage\";\n }\n if (exitCode === EXIT_CODE.NOT_FOUND) {\n return \"item_not_found\";\n }\n if (exitCode === EXIT_CODE.CONFLICT) {\n return \"lock_conflict\";\n }\n if (exitCode === EXIT_CODE.DEPENDENCY_FAILED) {\n return \"dependency_failed\";\n }\n return \"command_failed\";\n}\n\nfunction buildPostActionTelemetryOutcome(): TelemetryCommandOutcome {\n const result = asRecord(getActiveCommandResult());\n const processExitCode =\n typeof process.exitCode === \"number\" && Number.isFinite(process.exitCode)\n ? Math.max(0, Math.trunc(process.exitCode))\n : undefined;\n const resultExitCode = readRecordNumber(result, \"exit_code\", \"exitCode\");\n const exitCode = processExitCode ?? resultExitCode ?? EXIT_CODE.SUCCESS;\n const resultOk = readRecordBoolean(result, \"ok\");\n const ok = resultOk ?? exitCode === EXIT_CODE.SUCCESS;\n const errorCode = readRecordString(result, \"error_code\", \"errorCode\") ?? inferPostActionErrorCode(ok, exitCode);\n const errorCategory =\n normalizeTelemetryErrorCategory(readRecordString(result, \"error_category\", \"errorCategory\")) ??\n (!ok ? resolveTelemetryErrorCategory(errorCode) : undefined);\n const errorMessage = !ok\n ? inferPostActionFailureMessage(result) ?? `command_exit_${exitCode}`\n : undefined;\n const commandResolution =\n normalizeTelemetryCommandResolution(readRecordString(result, \"command_resolution\", \"commandResolution\")) ??\n deriveTelemetryCommandResolution({\n ok,\n errorCode,\n errorCategory,\n });\n const resolutionStage =\n normalizeTelemetryResolutionStage(readRecordString(result, \"resolution_stage\", \"resolutionStage\")) ?? \"execute\";\n return {\n ok,\n error: errorMessage,\n exit_code: exitCode,\n error_code: errorCode,\n error_category: errorCategory,\n command_resolution: commandResolution,\n resolution_stage: resolutionStage,\n };\n}\n\n\nasync function runAndClearAfterCommandHooks(outcome: TelemetryCommandOutcome): Promise<void> {\n const telemetryRuntime = activeTelemetryCommandContext;\n activeTelemetryCommandContext = null;\n await finishTelemetryCommand(telemetryRuntime, {\n ok: outcome.ok,\n error: outcome.error,\n result: getActiveCommandResult(),\n exit_code: outcome.exit_code,\n error_code: outcome.error_code,\n error_category: outcome.error_category,\n command_resolution: outcome.command_resolution,\n resolution_stage: outcome.resolution_stage,\n });\n\n const runtime = activeExtensionHookContext;\n activeExtensionHookContext = null;\n if (!runtime) {\n clearActiveExtensionHooks();\n return;\n }\n\n const hookWarnings = await runAfterCommandHooks(runtime.hooks, {\n command: runtime.commandName,\n args: runtime.commandArgs,\n options: { ...runtime.commandOptions },\n global: { ...runtime.globalOptions },\n pm_root: runtime.pmRoot,\n ok: outcome.ok,\n error: outcome.error,\n result: getActiveCommandResult(),\n });\n clearActiveExtensionHooks();\n if (runtime.profileEnabled && hookWarnings.length > 0) {\n printError(`profile:extensions hook_warnings=${formatHookWarnings(hookWarnings)}`);\n }\n}\n\nfunction extractCommandScopedOptions(\n command: Command,\n commandArgs: string[],\n extensionFlagDefinitions: Array<Record<string, unknown>> = [],\n): Record<string, unknown> {\n const allOptions = command.optsWithGlobals() as Record<string, unknown>;\n const scoped: Record<string, unknown> = { ...allOptions };\n delete scoped.json;\n delete scoped.quiet;\n delete scoped.path;\n delete scoped.noExtensions;\n delete scoped.extensions;\n delete scoped.profile;\n delete scoped.pager;\n\n const looseOptions = parseLooseCommandOptions(commandArgs);\n for (const [key, value] of Object.entries(looseOptions)) {\n if (scoped[key] === undefined) {\n scoped[key] = value;\n }\n }\n if (extensionFlagDefinitions.length > 0) {\n return coerceLooseCommandOptionsWithFlagDefinitions(scoped, extensionFlagDefinitions);\n }\n return scoped;\n}\n\nfunction collectExtensionFlagDefinitionsForCommand(\n registrations: ReturnType<typeof createEmptyExtensionRegistrationRegistry>,\n commandPath: string,\n): Array<Record<string, unknown>> {\n const normalizedCommandPath = normalizeExtensionCommandPath(commandPath);\n if (normalizedCommandPath.length === 0) {\n return [];\n }\n return registrations.flags\n .filter((entry) => normalizeExtensionCommandPath(entry.target_command) === normalizedCommandPath)\n .flatMap((entry) => entry.flags);\n}\n\nconst RUNTIME_FIELD_COMMAND_BY_COMMAND_PATH: Readonly<Record<string, RuntimeFieldCommand>> = {\n create: \"create\",\n update: \"update\",\n \"update-many\": \"update_many\",\n list: \"list\",\n \"list-all\": \"list\",\n \"list-draft\": \"list\",\n \"list-open\": \"list\",\n \"list-in-progress\": \"list\",\n \"list-blocked\": \"list\",\n \"list-closed\": \"list\",\n \"list-canceled\": \"list\",\n search: \"search\",\n calendar: \"calendar\",\n context: \"context\",\n \"templates save\": \"create\",\n};\n\nconst runtimeFieldLooseFlagDefinitionCache = new Map<string, Array<Record<string, unknown>>>();\n\nfunction toLooseFieldDefinitionType(fieldType: string): \"string\" | \"number\" | \"boolean\" {\n if (fieldType === \"number\") {\n return \"number\";\n }\n if (fieldType === \"boolean\") {\n return \"boolean\";\n }\n return \"string\";\n}\n\nfunction commandHasLongOption(command: Command, longFlag: string): boolean {\n return command.options.some((option) => option.long === longFlag);\n}\n\nfunction commandHasShortOption(command: Command, shortFlag: string): boolean {\n return command.options.some((option) => option.short === shortFlag);\n}\n\nfunction addRuntimeFieldOption(command: Command, flagToken: string, description: string, repeatable: boolean): void {\n const normalizedToken = flagToken.trim();\n if (!normalizedToken) {\n return;\n }\n const helpText = description.length > 0 ? description : `Runtime schema field (${flagToken})`;\n if (normalizedToken.startsWith(\"-\") && !normalizedToken.startsWith(\"--\")) {\n if (commandHasShortOption(command, normalizedToken)) {\n return;\n }\n if (repeatable) {\n command.option(`${normalizedToken} <value>`, `${helpText} (repeatable)`, collect);\n return;\n }\n command.option(`${normalizedToken} <value>`, helpText);\n return;\n }\n const longFlag = normalizedToken.startsWith(\"--\") ? normalizedToken : `--${normalizedToken}`;\n if (commandHasLongOption(command, longFlag)) {\n return;\n }\n if (repeatable) {\n command.option(`${longFlag} <value>`, `${helpText} (repeatable)`, collect);\n return;\n }\n command.option(`${longFlag} <value>`, helpText);\n}\n\nasync function collectRuntimeFieldLooseFlagDefinitionsForCommand(\n commandPath: string,\n pmRoot: string,\n): Promise<Array<Record<string, unknown>>> {\n const runtimeCommand = RUNTIME_FIELD_COMMAND_BY_COMMAND_PATH[commandPath];\n if (!runtimeCommand) {\n return [];\n }\n const cacheKey = `${pmRoot}:${runtimeCommand}`;\n const cached = runtimeFieldLooseFlagDefinitionCache.get(cacheKey);\n if (cached) {\n return cached;\n }\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n runtimeFieldLooseFlagDefinitionCache.set(cacheKey, []);\n return [];\n }\n const settings = await readSettings(pmRoot);\n const fieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const definitions = (fieldRegistry.command_to_fields.get(runtimeCommand) ?? []).flatMap((field) => {\n const flagTokens = [field.cli_flag, ...field.cli_aliases];\n return flagTokens.map((token) => ({\n long: `--${token}`,\n type: toLooseFieldDefinitionType(field.type),\n value_type: toLooseFieldDefinitionType(field.type),\n }));\n });\n runtimeFieldLooseFlagDefinitionCache.set(cacheKey, definitions);\n return definitions;\n}\n\nasync function registerRuntimeSchemaFieldFlags(rootProgram: Command): Promise<void> {\n const bootstrapGlobalOptions = parseBootstrapGlobalOptions(process.argv.slice(2));\n const pmRoot = resolvePmRoot(process.cwd(), bootstrapGlobalOptions.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n return;\n }\n const settings = await readSettings(pmRoot);\n const fieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const mappings: Array<{ path: string; command: RuntimeFieldCommand }> = [\n { path: \"create\", command: \"create\" },\n { path: \"update\", command: \"update\" },\n { path: \"update-many\", command: \"update_many\" },\n { path: \"list\", command: \"list\" },\n { path: \"list-all\", command: \"list\" },\n { path: \"list-draft\", command: \"list\" },\n { path: \"list-open\", command: \"list\" },\n { path: \"list-in-progress\", command: \"list\" },\n { path: \"list-blocked\", command: \"list\" },\n { path: \"list-closed\", command: \"list\" },\n { path: \"list-canceled\", command: \"list\" },\n { path: \"search\", command: \"search\" },\n { path: \"calendar\", command: \"calendar\" },\n { path: \"context\", command: \"context\" },\n { path: \"templates save\", command: \"create\" },\n ];\n for (const mapping of mappings) {\n const command = findCommandByPath(rootProgram, mapping.path.split(\" \"));\n if (!command) {\n continue;\n }\n for (const field of fieldRegistry.command_to_fields.get(mapping.command) ?? []) {\n const description = field.description ?? \"\";\n addRuntimeFieldOption(command, field.cli_flag, description, field.repeatable);\n for (const alias of field.cli_aliases) {\n addRuntimeFieldOption(command, alias, `Alias for --${field.cli_flag}`, field.repeatable);\n }\n }\n }\n}\n\nfunction defaultPreflightDecision(): PreflightRuntimeDecision {\n return {\n enforce_item_format_gate: true,\n run_preflight_item_format_sync: true,\n run_extension_migrations: true,\n enforce_mandatory_migration_gate: true,\n };\n}\n\nfunction buildRuntimeExtensionSnapshotCacheKey(pmRoot: string): string {\n return `pm-root:${pmRoot}`;\n}\n\nfunction emitExtensionProfile(globalOptions: GlobalOptions, snapshot: RuntimeExtensionSnapshot): void {\n if (!globalOptions.profile) {\n return;\n }\n printError(\n `profile:extensions loaded=${snapshot.loadedCount} failed=${snapshot.loadFailedCount} warnings=${snapshot.loadWarnings.length} activation_failed=${snapshot.activationFailedCount} hook_counts=before:${snapshot.hooks.beforeCommand.length}|after:${snapshot.hooks.afterCommand.length}|write:${snapshot.hooks.onWrite.length}|read:${snapshot.hooks.onRead.length}|index:${snapshot.hooks.onIndex.length} command_overrides=${snapshot.commands.overrides.length} command_handlers=${snapshot.commands.handlers.length} parser_overrides=${snapshot.parsers.overrides.length} preflight_overrides=${snapshot.preflight.overrides.length} service_overrides=${snapshot.services.overrides.length} renderer_overrides=${snapshot.renderers.overrides.length}`,\n );\n if (snapshot.activationWarnings.length > 0) {\n printError(`profile:extensions activation_warnings=${formatHookWarnings(snapshot.activationWarnings)}`);\n }\n}\n\nasync function loadRuntimeExtensionSnapshot(pmRoot: string): Promise<RuntimeExtensionSnapshot | null> {\n const cacheKey = buildRuntimeExtensionSnapshotCacheKey(pmRoot);\n if (runtimeExtensionSnapshotCache?.key === cacheKey) {\n return runtimeExtensionSnapshotCache.snapshot;\n }\n\n const settingsPath = getSettingsPath(pmRoot);\n if (!(await pathExists(settingsPath))) {\n runtimeExtensionSnapshotCache = {\n key: cacheKey,\n snapshot: null,\n };\n return null;\n }\n\n try {\n const settings = await readSettings(pmRoot);\n const loadResult = await loadExtensions({\n pmRoot,\n settings,\n cwd: process.cwd(),\n noExtensions: false,\n });\n const activationResult = await activateExtensions({\n ...loadResult,\n loaded: loadResult.loaded,\n });\n const commandHandlers = [...new Set(activationResult.commands.handlers.map((entry) => normalizeExtensionCommandPath(entry.command)))]\n .filter((entry) => entry.length > 0)\n .sort((left, right) => left.localeCompare(right));\n const commandFlagHelp = collectDynamicExtensionFlagHelpByCommand(activationResult.registrations.flags);\n const commandDescriptors = collectExtensionCommandHelpDescriptors(\n commandHandlers,\n activationResult.registrations.commands,\n activationResult.registrations.flags,\n );\n const snapshot: RuntimeExtensionSnapshot = {\n hooks: activationResult.hooks,\n commands: activationResult.commands,\n parsers: activationResult.parsers,\n preflight: activationResult.preflight,\n services: activationResult.services,\n renderers: activationResult.renderers,\n registrations: activationResult.registrations,\n pmRoot,\n settings,\n commandHandlers,\n commandFlagHelp,\n commandDescriptors,\n loadWarnings: [...loadResult.warnings],\n activationWarnings: [...activationResult.warnings],\n loadedCount: loadResult.loaded.length,\n loadFailedCount: loadResult.failed.length,\n activationFailedCount: activationResult.failed.length,\n };\n runtimeExtensionSnapshotCache = {\n key: cacheKey,\n snapshot,\n };\n return snapshot;\n } catch {\n runtimeExtensionSnapshotCache = {\n key: cacheKey,\n snapshot: null,\n };\n return null;\n }\n}\n\nasync function maybeLoadRuntimeExtensions(\n command: Command,\n): Promise<\n {\n hooks: ExtensionHookRegistry;\n commands: ExtensionCommandRegistry;\n parsers: ExtensionParserRegistry;\n preflight: ExtensionPreflightRegistry;\n services: ExtensionServiceRegistry;\n renderers: ExtensionRendererRegistry;\n registrations: ReturnType<typeof createEmptyExtensionRegistrationRegistry>;\n pmRoot: string;\n } | null\n> {\n const globalOptions = getGlobalOptions(command);\n if (globalOptions.noExtensions) {\n return null;\n }\n\n const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);\n const snapshot = await loadRuntimeExtensionSnapshot(pmRoot);\n if (!snapshot) {\n return null;\n }\n\n emitExtensionProfile(globalOptions, snapshot);\n return {\n hooks: snapshot.hooks,\n commands: snapshot.commands,\n parsers: snapshot.parsers,\n preflight: snapshot.preflight,\n services: snapshot.services,\n renderers: snapshot.renderers,\n registrations: snapshot.registrations,\n pmRoot,\n };\n}\n\nasync function executeRegisteredRuntimeMigrations(\n migrations: RegisteredExtensionSchemaMigrationDefinition[],\n pmRoot: string,\n): Promise<string[]> {\n const warnings: string[] = [];\n for (let index = 0; index < migrations.length; index += 1) {\n const migration = migrations[index];\n const status = resolveNormalizedMigrationStatus(migration.definition);\n if (status === \"applied\") {\n continue;\n }\n\n const runtimeDefinition = migration.runtime_definition ?? migration.definition;\n const run = (runtimeDefinition as { run?: unknown }).run;\n if (typeof run !== \"function\") {\n continue;\n }\n\n const migrationId = resolveMigrationId(migration.definition, index);\n try {\n await Promise.resolve(\n run({\n id: migrationId,\n command: \"migration\",\n layer: migration.layer,\n extension: migration.name,\n pm_root: pmRoot,\n status,\n }),\n );\n migration.definition.status = \"applied\";\n delete migration.definition.reason;\n delete migration.definition.error;\n delete migration.definition.message;\n } catch (error: unknown) {\n migration.definition.status = \"failed\";\n migration.definition.reason = describeUnknownError(error);\n warnings.push(`extension_migration_failed:${migration.layer}:${migration.name}:${migrationId}`);\n }\n }\n return warnings;\n}\n\nasync function runRequiredExtensionCommand(\n command: Command,\n options: Record<string, unknown>,\n globalOptions: GlobalOptions,\n): Promise<unknown> {\n const commandPath = getCommandPath(command);\n let commandArgs = command.args.map(String);\n let commandOptions = { ...options };\n let resolvedGlobalOptions = { ...globalOptions };\n const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);\n const parserOverride = await runActiveParserOverride({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: resolvedGlobalOptions,\n pm_root: pmRoot,\n });\n if (globalOptions.profile && parserOverride.warnings.length > 0) {\n printError(`profile:extensions parser_warnings=${formatHookWarnings(parserOverride.warnings)}`);\n }\n commandArgs = parserOverride.context.args;\n commandOptions = parserOverride.context.options;\n resolvedGlobalOptions = parserOverride.context.global;\n setActiveCommandResult(undefined);\n setActiveCommandContext({\n command: commandPath,\n args: commandArgs,\n options: { ...commandOptions },\n global: { ...resolvedGlobalOptions },\n pm_root: pmRoot,\n });\n const extensionCommandResult = await runActiveCommandHandler({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: resolvedGlobalOptions,\n pm_root: pmRoot,\n });\n if (resolvedGlobalOptions.profile && extensionCommandResult.warnings.length > 0) {\n printError(`profile:extensions command_handler_warnings=${formatHookWarnings(extensionCommandResult.warnings)}`);\n }\n if (!extensionCommandResult.handled) {\n if (extensionCommandResult.warnings.length > 0) {\n const warningCode = extensionCommandResult.warnings[0];\n throw new PmCliError(\n `Command \"${commandPath}\" failed in extension handler (${warningCode}).`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n throw new PmCliError(`Command \"${commandPath}\" is provided by extensions and is not currently available.`, EXIT_CODE.NOT_FOUND);\n }\n setActiveCommandResult(extensionCommandResult.result);\n return extensionCommandResult.result;\n}\n\nconst WRAPPED_ACTION_HANDLER = Symbol(\"pm.wrappedActionHandler\");\n\nfunction wrapProgramActionsForExtensionHandlers(rootProgram: Command): void {\n const visit = (entry: Command): void => {\n type ActionMutableCommand = Command & {\n _actionHandler?: (...args: unknown[]) => unknown;\n [WRAPPED_ACTION_HANDLER]?: boolean;\n };\n const actionEntry = entry as ActionMutableCommand;\n if (typeof actionEntry._actionHandler === \"function\" && actionEntry[WRAPPED_ACTION_HANDLER] !== true) {\n const originalAction = actionEntry._actionHandler;\n actionEntry._actionHandler = async function wrappedActionHandler(this: unknown, ...actionArgs: unknown[]): Promise<unknown> {\n const possibleCommand = actionArgs[actionArgs.length - 1];\n const actionCommand = possibleCommand instanceof Command ? possibleCommand : entry;\n const startedAt = Date.now();\n clearResolvedGlobalOptions(actionCommand);\n let globalOptions = getGlobalOptions(actionCommand);\n const commandPath = getCommandPath(actionCommand);\n const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);\n let commandArgs = actionCommand.args.map(String);\n const activeRegistrations = getActiveExtensionRegistrations();\n const extensionFlagDefinitions = activeRegistrations\n ? collectExtensionFlagDefinitionsForCommand(activeRegistrations, commandPath)\n : [];\n const runtimeFieldFlagDefinitions = await collectRuntimeFieldLooseFlagDefinitionsForCommand(commandPath, pmRoot);\n let commandOptions = extractCommandScopedOptions(actionCommand, commandArgs, [\n ...extensionFlagDefinitions,\n ...runtimeFieldFlagDefinitions,\n ]);\n const parserOverride = await runActiveParserOverride({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: pmRoot,\n });\n if (globalOptions.profile && parserOverride.warnings.length > 0) {\n printError(`profile:extensions parser_warnings=${formatHookWarnings(parserOverride.warnings)}`);\n }\n commandArgs = parserOverride.context.args;\n commandOptions = parserOverride.context.options;\n globalOptions = parserOverride.context.global;\n globalOptions = await applyDefaultOutputFormat(globalOptions);\n setResolvedGlobalOptions(actionCommand, globalOptions);\n actionCommand.args = [...commandArgs];\n if (\"_processArguments\" in actionCommand && typeof actionCommand._processArguments === \"function\") {\n actionCommand._processArguments();\n }\n if (actionArgs.length > 0 && Array.isArray(actionArgs[0])) {\n actionArgs[0] = [...actionCommand.processedArgs];\n }\n for (const [key, value] of Object.entries(commandOptions)) {\n actionCommand.setOptionValueWithSource(key, value, \"cli\");\n }\n setActiveCommandResult(undefined);\n setActiveCommandContext({\n command: commandPath,\n args: commandArgs,\n options: { ...commandOptions },\n global: { ...globalOptions },\n pm_root: pmRoot,\n });\n\n const extensionCommandResult = await runActiveCommandHandler({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: pmRoot,\n });\n if (globalOptions.profile && extensionCommandResult.warnings.length > 0) {\n printError(`profile:extensions command_handler_warnings=${formatHookWarnings(extensionCommandResult.warnings)}`);\n }\n if (extensionCommandResult.handled) {\n setActiveCommandResult(extensionCommandResult.result);\n printResult(extensionCommandResult.result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=${commandPath} took_ms=${Date.now() - startedAt}`);\n }\n return;\n }\n\n return await originalAction.apply(this, actionArgs);\n };\n actionEntry[WRAPPED_ACTION_HANDLER] = true;\n }\n for (const child of entry.commands) {\n visit(child);\n }\n };\n visit(rootProgram);\n}\n\nasync function registerDynamicExtensionCommandPaths(rootProgram: Command): Promise<void> {\n const bootstrapGlobalOptions = parseBootstrapGlobalOptions(process.argv.slice(2));\n if (bootstrapGlobalOptions.noExtensions) {\n activeRuntimeExtensionCommandDescriptors = new Map<string, ExtensionCommandHelpDescriptor>();\n setActiveExtensionServices({ overrides: [] });\n return;\n }\n\n const pmRoot = resolvePmRoot(process.cwd(), bootstrapGlobalOptions.path);\n const snapshot = await loadRuntimeExtensionSnapshot(pmRoot);\n if (!snapshot) {\n activeRuntimeExtensionCommandDescriptors = new Map<string, ExtensionCommandHelpDescriptor>();\n setActiveExtensionServices({ overrides: [] });\n return;\n }\n // Ensure usage/help/error formatting overrides are available even when parse\n // errors occur before preAction hooks initialize full runtime extension state.\n setActiveExtensionServices(snapshot.services);\n activeRuntimeExtensionCommandDescriptors = new Map(snapshot.commandDescriptors);\n const typeRegistry = resolveItemTypeRegistry(snapshot.settings, snapshot.registrations);\n attachCreateUpdatePolicyHelpText(rootProgram, typeRegistry, process.argv.slice(2));\n\n const commandPaths = [...new Set([...snapshot.commandHandlers, ...snapshot.commandDescriptors.keys()])].sort((left, right) =>\n left.localeCompare(right),\n );\n for (const commandPath of commandPaths) {\n const pathParts = commandPath.split(\" \").filter((part) => part.length > 0);\n if (pathParts.length === 0) {\n continue;\n }\n const descriptor = snapshot.commandDescriptors.get(commandPath);\n const existingCommand = findCommandByPath(rootProgram, pathParts);\n const flagHelp = snapshot.commandFlagHelp.get(commandPath);\n const metadataHelp = descriptor ? buildDynamicExtensionCommandMetadataHelp(descriptor) : null;\n if (existingCommand) {\n if (flagHelp) {\n existingCommand.addHelpText(\"after\", flagHelp);\n }\n if (metadataHelp) {\n existingCommand.addHelpText(\"after\", metadataHelp);\n }\n continue;\n }\n\n const dynamicCommand = ensureCommandPath(rootProgram, pathParts);\n if (!dynamicCommand) {\n continue;\n }\n if (descriptor?.description) {\n dynamicCommand.description(descriptor.description);\n }\n if (descriptor) {\n applyDynamicExtensionArguments(dynamicCommand, descriptor);\n }\n if (flagHelp) {\n dynamicCommand.addHelpText(\"after\", flagHelp);\n }\n if (metadataHelp) {\n dynamicCommand.addHelpText(\"after\", metadataHelp);\n }\n\n dynamicCommand\n .allowUnknownOption(true)\n .allowExcessArguments(true)\n .action(async (_options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const extensionFlagDefinitions = collectExtensionFlagDefinitionsForCommand(snapshot.registrations, commandPath);\n const scopedOptions = extractCommandScopedOptions(\n command,\n command.args.map(String),\n extensionFlagDefinitions,\n );\n const result = await runRequiredExtensionCommand(command, scopedOptions, globalOptions);\n await invalidateSearchCachesForMutation(globalOptions, result);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=${commandPath} took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n}\n\nfunction resolveCliVersion(): string {\n try {\n const currentFilePath = fileURLToPath(import.meta.url);\n const packageJsonPath = path.resolve(path.dirname(currentFilePath), \"../../package.json\");\n const raw = fs.readFileSync(packageJsonPath, \"utf8\");\n const parsed = JSON.parse(raw) as { version?: unknown };\n return typeof parsed.version === \"string\" ? parsed.version : \"0.0.0\";\n } catch {\n return \"0.0.0\";\n }\n}\n\nconst CLI_VERSION = resolveCliVersion();\n\nconst program = new Command();\nprogram\n .name(\"pm\")\n .description(\"Universal, flexible, extensible, agent-optimized project management CLI for any project or programming language.\")\n .version(CLI_VERSION)\n .showHelpAfterError(false)\n .allowExcessArguments(false)\n .allowUnknownOption(false)\n .configureOutput({\n writeOut: (str) => {\n writeStdout(str);\n },\n // Commander errors are rendered in our own catch path.\n writeErr: () => {},\n })\n .option(\"--json\", \"Output JSON instead of TOON\")\n .option(\"--quiet\", \"Suppress stdout output\")\n .option(\"--path <dir>\", \"Override PM path for this command\")\n .option(\"--no-extensions\", \"Disable extension loading\")\n .option(\"--no-pager\", \"Disable pager integration for help and long output\")\n .option(\"--explain\", \"Render extended rationale and examples in help output\")\n .option(\"--profile\", \"Print deterministic timing diagnostics\")\n .exitOverride();\n\nprogram.hook(\"preAction\", async (_thisCommand, actionCommand) => {\n activeExtensionHookContext = null;\n activeTelemetryCommandContext = null;\n clearActiveExtensionHooks();\n clearResolvedGlobalOptions(actionCommand);\n const bootstrapGlobalOptions = getGlobalOptions(actionCommand);\n const commandPath = getCommandPath(actionCommand);\n let commandArgs = actionCommand.args.map(String);\n let commandOptions = extractCommandScopedOptions(actionCommand, commandArgs);\n let globalOptions = { ...bootstrapGlobalOptions };\n await maybeRunFirstUseTelemetryPrompt(commandPath, globalOptions);\n const fallbackPmRoot = resolvePmRoot(process.cwd(), bootstrapGlobalOptions.path);\n const runtimeExtensions = await maybeLoadRuntimeExtensions(actionCommand);\n if (!runtimeExtensions) {\n activeTelemetryCommandContext = await startTelemetryCommand({\n command: commandPath,\n pm_version: CLI_VERSION,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: fallbackPmRoot,\n });\n sentrySetCommandContext(commandPath, commandArgs, commandOptions, {\n source_context: activeTelemetryCommandContext?.source_context,\n source_context_source: activeTelemetryCommandContext?.source_context_source,\n });\n sentryStartCommandSpan(commandPath);\n await enforceItemFormatWriteGateAndPreflightMigration(\n commandPath,\n commandOptions,\n fallbackPmRoot,\n defaultPreflightDecision(),\n );\n return;\n }\n\n setActiveExtensionHooks(runtimeExtensions.hooks);\n setActiveExtensionCommands(runtimeExtensions.commands);\n setActiveExtensionParsers(runtimeExtensions.parsers);\n setActiveExtensionPreflight(runtimeExtensions.preflight);\n setActiveExtensionServices(runtimeExtensions.services);\n setActiveExtensionRenderers(runtimeExtensions.renderers);\n setActiveExtensionRegistrations(runtimeExtensions.registrations);\n\n const extensionFlagDefinitions = collectExtensionFlagDefinitionsForCommand(runtimeExtensions.registrations, commandPath);\n commandOptions = extractCommandScopedOptions(actionCommand, commandArgs, extensionFlagDefinitions);\n const parserOverride = await runActiveParserOverride({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: runtimeExtensions.pmRoot,\n });\n if (globalOptions.profile && parserOverride.warnings.length > 0) {\n printError(`profile:extensions parser_warnings=${formatHookWarnings(parserOverride.warnings)}`);\n }\n commandArgs = parserOverride.context.args;\n commandOptions = parserOverride.context.options;\n globalOptions = parserOverride.context.global;\n\n const preflightOverride = await runActivePreflightOverride({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: runtimeExtensions.pmRoot,\n decision: defaultPreflightDecision(),\n });\n if (globalOptions.profile && preflightOverride.warnings.length > 0) {\n printError(`profile:extensions preflight_warnings=${formatHookWarnings(preflightOverride.warnings)}`);\n }\n commandArgs = preflightOverride.context.args;\n commandOptions = preflightOverride.context.options;\n globalOptions = preflightOverride.context.global;\n const preflightDecision = preflightOverride.decision;\n\n await enforceItemFormatWriteGateAndPreflightMigration(\n commandPath,\n commandOptions,\n runtimeExtensions.pmRoot,\n preflightDecision,\n );\n\n const migrationWarnings = preflightDecision.run_extension_migrations\n ? await executeRegisteredRuntimeMigrations(runtimeExtensions.registrations.migrations, runtimeExtensions.pmRoot)\n : [];\n if (globalOptions.profile && migrationWarnings.length > 0) {\n printError(`profile:extensions migration_warnings=${formatHookWarnings(migrationWarnings)}`);\n }\n const migrationBlockers = collectMandatoryMigrationBlockers(runtimeExtensions.registrations.migrations);\n activeExtensionHookContext = {\n hooks: runtimeExtensions.hooks,\n commandName: commandPath,\n commandArgs,\n commandOptions: { ...commandOptions },\n globalOptions: { ...globalOptions },\n pmRoot: runtimeExtensions.pmRoot,\n profileEnabled: Boolean(globalOptions.profile),\n migrationBlockers,\n };\n setActiveCommandResult(undefined);\n setActiveCommandContext({\n command: commandPath,\n args: commandArgs,\n options: { ...commandOptions },\n global: { ...globalOptions },\n pm_root: runtimeExtensions.pmRoot,\n });\n activeTelemetryCommandContext = await startTelemetryCommand({\n command: commandPath,\n pm_version: CLI_VERSION,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: runtimeExtensions.pmRoot,\n });\n sentrySetCommandContext(commandPath, commandArgs, commandOptions, {\n source_context: activeTelemetryCommandContext?.source_context,\n source_context_source: activeTelemetryCommandContext?.source_context_source,\n });\n sentryStartCommandSpan(commandPath);\n\n const hookWarnings = await runBeforeCommandHooks(runtimeExtensions.hooks, {\n command: commandPath,\n args: commandArgs,\n options: { ...commandOptions },\n global: { ...globalOptions },\n pm_root: runtimeExtensions.pmRoot,\n });\n if (globalOptions.profile && hookWarnings.length > 0) {\n printError(`profile:extensions hook_warnings=${formatHookWarnings(hookWarnings)}`);\n }\n if (preflightDecision.enforce_mandatory_migration_gate) {\n enforceMandatoryMigrationWriteGate(commandPath, commandOptions, migrationBlockers);\n }\n});\n\nprogram.hook(\"postAction\", async () => {\n const outcome = buildPostActionTelemetryOutcome();\n sentryFinishCommandSpan(outcome.ok, outcome.error, {\n error_code: outcome.error_code,\n error_category: outcome.error_category,\n exit_code: outcome.exit_code,\n command_resolution: outcome.command_resolution,\n resolution_stage: outcome.resolution_stage,\n });\n await runAndClearAfterCommandHooks(outcome);\n});\n\nregisterSetupCommands(program);\nregisterListQueryCommands(program);\nregisterMutationCommands(program);\nregisterOperationCommands(program);\n\nattachRichHelpText(program, normalizeLegacyExtensionActionSyntax(process.argv.slice(2)));\n\nasync function main(): Promise<void> {\n const invocationArgv = normalizeLegacyExtensionActionSyntax(process.argv.slice(2));\n const invocationProcessArgv = [process.argv[0], process.argv[1], ...invocationArgv];\n try {\n applyBootstrapPagerPolicy(invocationArgv);\n await registerDynamicExtensionCommandPaths(program);\n await registerRuntimeSchemaFieldFlags(program);\n wrapProgramActionsForExtensionHandlers(program);\n const renderedBootstrapJsonHelp = await maybeRenderBootstrapJsonHelp(program, invocationArgv, activeRuntimeExtensionCommandDescriptors);\n if (renderedBootstrapJsonHelp) {\n return;\n }\n await program.parseAsync(invocationProcessArgv);\n } catch (error: unknown) {\n const bootstrapGlobal = parseBootstrapGlobalOptions(invocationArgv);\n const jsonErrors = bootstrapGlobal.json;\n const bootstrapPmRoot = resolvePmRoot(process.cwd(), bootstrapGlobal.path);\n const attemptedCommand = parseBootstrapCommandName(invocationArgv) ?? \"<unknown>\";\n\n const emitTelemetryCommandError = async (params: {\n command: string;\n errorCode: string;\n errorMessage: string;\n exitCode: number;\n options: Record<string, unknown>;\n resolutionStage: TelemetryResolutionStage;\n }) => {\n const errorCategory = resolveTelemetryErrorCategory(params.errorCode);\n const commandResolution = deriveTelemetryCommandResolution({\n ok: false,\n errorCode: params.errorCode,\n errorCategory,\n });\n await emitTelemetryErrorEvent({\n command: params.command,\n args: invocationArgv,\n options: params.options,\n global: bootstrapGlobal,\n pm_version: CLI_VERSION,\n pm_root: bootstrapPmRoot,\n error_code: params.errorCode,\n error_message: params.errorMessage,\n exit_code: params.exitCode,\n error_category: errorCategory,\n command_resolution: commandResolution,\n resolution_stage: params.resolutionStage,\n });\n return {\n errorCategory,\n commandResolution,\n };\n };\n\n if (!bootstrapGlobal.noExtensions) {\n const bootstrapSnapshot = await loadRuntimeExtensionSnapshot(bootstrapPmRoot);\n setActiveExtensionServices(bootstrapSnapshot?.services ?? { overrides: [] });\n }\n\n if (error instanceof PmCliError) {\n const classification = classifyPmCliError(error.message, error.context);\n const { errorCategory, commandResolution } = await emitTelemetryCommandError({\n command: attemptedCommand,\n errorCode: classification.code,\n errorMessage: classification.detail,\n exitCode: error.exitCode,\n options: {\n bootstrap_global_options: bootstrapGlobal,\n },\n resolutionStage: \"execute\",\n });\n sentryLogCliUsageError({\n command: attemptedCommand,\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: error.exitCode,\n error_message: classification.detail,\n command_resolution: commandResolution,\n resolution_stage: \"execute\",\n source_context: activeTelemetryCommandContext?.source_context,\n });\n sentryFinishCommandSpan(false, error.message, {\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: error.exitCode,\n command_resolution: commandResolution,\n resolution_stage: \"execute\",\n });\n await runAndClearAfterCommandHooks({\n ok: false,\n error: error.message,\n exit_code: error.exitCode,\n error_code: classification.code,\n error_category: errorCategory,\n command_resolution: commandResolution,\n resolution_stage: \"execute\",\n });\n sentryCaptureCliError(error);\n if (jsonErrors) {\n printError(JSON.stringify(formatPmCliErrorForJson(error.message, error.exitCode, error.context), null, 2));\n } else {\n printError(formatPmCliErrorForDisplay(error.message, error.context));\n }\n await sentryFlush();\n process.exitCode = error.exitCode;\n return;\n }\n\n if (typeof error === \"object\" && error !== null && \"code\" in error) {\n const code = (error as { code?: string }).code;\n const rawMessage = typeof (error as { message?: unknown }).message === \"string\" ? ((error as { message?: string }).message ?? \"\") : \"\";\n const isHelpDisplayCode =\n code === \"commander.helpDisplayed\" || code === \"commander.help\" || code === \"commander.helpCommand\";\n if (isHelpDisplayCode || rawMessage.includes(\"(outputHelp)\")) {\n const helpRequest = parseBootstrapHelpRequest(invocationArgv);\n if (helpRequest.requested && !isKnownHelpCommandPath(program, helpRequest.commandPathTokens)) {\n const unknownToken = helpRequest.commandPathTokens[0] ?? parseBootstrapCommandName(invocationArgv) ?? \"<command>\";\n const unknownMessage = `unknown command '${unknownToken}'`;\n const usageContext = await resolveCommanderUsageContext(\n { message: unknownMessage },\n program,\n activeRuntimeExtensionCommandDescriptors,\n );\n const classification = classifyCommanderError(\n usageContext.message,\n usageContext.commandName,\n usageContext.allowedTypes,\n {\n unknownCommandExamples: usageContext.unknownCommandExamples,\n unknownCommandNextSteps: usageContext.unknownCommandNextSteps,\n },\n );\n const { errorCategory, commandResolution } = await emitTelemetryCommandError({\n command: unknownToken,\n errorCode: classification.code,\n errorMessage: classification.detail,\n exitCode: EXIT_CODE.USAGE,\n options: {\n bootstrap_global_options: bootstrapGlobal,\n commander_code: code ?? \"commander.helpDisplayed\",\n },\n resolutionStage: \"parse\",\n });\n sentryLogCliUsageError({\n command: unknownToken,\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: EXIT_CODE.USAGE,\n error_message: classification.detail,\n command_resolution: commandResolution,\n resolution_stage: \"parse\",\n source_context: activeTelemetryCommandContext?.source_context,\n });\n const renderedUsage = jsonErrors\n ? await formatCommanderUsageJson({ message: unknownMessage }, program, activeRuntimeExtensionCommandDescriptors)\n : await formatCommanderUsageMessage({ message: unknownMessage }, program, activeRuntimeExtensionCommandDescriptors);\n sentryFinishCommandSpan(false, unknownMessage, {\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: EXIT_CODE.USAGE,\n command_resolution: commandResolution,\n resolution_stage: \"parse\",\n });\n await runAndClearAfterCommandHooks({\n ok: false,\n error: unknownMessage,\n exit_code: EXIT_CODE.USAGE,\n error_code: classification.code,\n error_category: errorCategory,\n command_resolution: commandResolution,\n resolution_stage: \"parse\",\n });\n if (jsonErrors) {\n printError(renderedUsage);\n } else {\n printError(renderedUsage);\n }\n await sentryFlush();\n process.exitCode = EXIT_CODE.USAGE;\n return;\n }\n sentryFinishCommandSpan(true, undefined, {\n exit_code: EXIT_CODE.SUCCESS,\n command_resolution: \"success\",\n resolution_stage: \"parse\",\n });\n await runAndClearAfterCommandHooks({\n ok: true,\n exit_code: EXIT_CODE.SUCCESS,\n command_resolution: \"success\",\n resolution_stage: \"parse\",\n });\n process.exitCode = EXIT_CODE.SUCCESS;\n return;\n }\n if (code === \"commander.version\") {\n sentryFinishCommandSpan(true, undefined, {\n exit_code: EXIT_CODE.SUCCESS,\n command_resolution: \"success\",\n resolution_stage: \"parse\",\n });\n await runAndClearAfterCommandHooks({\n ok: true,\n exit_code: EXIT_CODE.SUCCESS,\n command_resolution: \"success\",\n resolution_stage: \"parse\",\n });\n process.exitCode = EXIT_CODE.SUCCESS;\n return;\n }\n if (code?.startsWith(\"commander.\")) {\n const usageContext = await resolveCommanderUsageContext(error, program, activeRuntimeExtensionCommandDescriptors);\n const classification = classifyCommanderError(\n usageContext.message,\n usageContext.commandName,\n usageContext.allowedTypes,\n {\n unknownCommandExamples: usageContext.unknownCommandExamples,\n unknownCommandNextSteps: usageContext.unknownCommandNextSteps,\n },\n );\n const { errorCategory, commandResolution } = await emitTelemetryCommandError({\n command: attemptedCommand,\n errorCode: classification.code,\n errorMessage: classification.detail,\n exitCode: EXIT_CODE.USAGE,\n options: {\n bootstrap_global_options: bootstrapGlobal,\n commander_code: code,\n },\n resolutionStage: \"parse\",\n });\n sentryLogCliUsageError({\n command: attemptedCommand,\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: EXIT_CODE.USAGE,\n error_message: classification.detail,\n command_resolution: commandResolution,\n resolution_stage: \"parse\",\n source_context: activeTelemetryCommandContext?.source_context,\n });\n const renderedUsage = jsonErrors\n ? await formatCommanderUsageJson(error, program, activeRuntimeExtensionCommandDescriptors)\n : await formatCommanderUsageMessage(error, program, activeRuntimeExtensionCommandDescriptors);\n sentryFinishCommandSpan(false, usageContext.message, {\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: EXIT_CODE.USAGE,\n command_resolution: commandResolution,\n resolution_stage: \"parse\",\n });\n await runAndClearAfterCommandHooks({\n ok: false,\n error: usageContext.message,\n exit_code: EXIT_CODE.USAGE,\n error_code: classification.code,\n error_category: errorCategory,\n command_resolution: commandResolution,\n resolution_stage: \"parse\",\n });\n if (jsonErrors) {\n printError(renderedUsage);\n } else {\n printError(renderedUsage);\n }\n await sentryFlush();\n process.exitCode = EXIT_CODE.USAGE;\n return;\n }\n }\n\n sentryCaptureCliError(error);\n const message = describeUnknownError(error);\n const classification = classifyUnknownError(message);\n const { errorCategory, commandResolution } = await emitTelemetryCommandError({\n command: attemptedCommand,\n errorCode: classification.code,\n errorMessage: classification.detail,\n exitCode: EXIT_CODE.GENERIC_FAILURE,\n options: {\n bootstrap_global_options: bootstrapGlobal,\n },\n resolutionStage: \"execute\",\n });\n sentryFinishCommandSpan(false, message, {\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: EXIT_CODE.GENERIC_FAILURE,\n command_resolution: commandResolution,\n resolution_stage: \"execute\",\n });\n await runAndClearAfterCommandHooks({\n ok: false,\n error: message,\n exit_code: EXIT_CODE.GENERIC_FAILURE,\n error_code: classification.code,\n error_category: errorCategory,\n command_resolution: commandResolution,\n resolution_stage: \"execute\",\n });\n if (jsonErrors) {\n printError(JSON.stringify(formatUnknownErrorForJson(message, EXIT_CODE.GENERIC_FAILURE), null, 2));\n } else {\n printError(message);\n }\n await sentryFlush();\n process.exitCode = EXIT_CODE.GENERIC_FAILURE;\n }\n}\n\nvoid main();\n"]}