@unbrained/pm-cli 2026.5.10 → 2026.5.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +4 -4
- package/.pi/README.md +10 -1
- package/.pi/agents/pm-triage-agent.md +19 -0
- package/.pi/agents/pm-verification-agent.md +21 -0
- package/.pi/chains/pm-native-delivery.chain.md +11 -0
- package/.pi/extensions/pm-cli/index.js +276 -36
- package/.pi/skills/pm-native/SKILL.md +6 -2
- package/CHANGELOG.md +7 -0
- package/README.md +9 -1
- package/dist/cli/argv-utils.d.ts +5 -0
- package/dist/cli/argv-utils.js +34 -0
- package/dist/cli/argv-utils.js.map +1 -0
- package/dist/cli/bootstrap-args.d.ts +15 -0
- package/dist/cli/bootstrap-args.js +211 -0
- package/dist/cli/bootstrap-args.js.map +1 -1
- package/dist/cli/commander-usage.js +109 -3
- package/dist/cli/commander-usage.js.map +1 -1
- package/dist/cli/commands/completion.js +7 -3
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/contracts.d.ts +19 -0
- package/dist/cli/commands/contracts.js +33 -1
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/create.js +112 -51
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/docs.js +9 -2
- package/dist/cli/commands/docs.js.map +1 -1
- package/dist/cli/commands/extension.d.ts +3 -1
- package/dist/cli/commands/extension.js +174 -2
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/files.js +9 -2
- package/dist/cli/commands/files.js.map +1 -1
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.js +21 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/metadata-normalizers.d.ts +4 -0
- package/dist/cli/commands/metadata-normalizers.js +37 -0
- package/dist/cli/commands/metadata-normalizers.js.map +1 -0
- package/dist/cli/commands/reindex.js +173 -135
- package/dist/cli/commands/reindex.js.map +1 -1
- package/dist/cli/commands/search.js +16 -6
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/test.js +9 -2
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/update.js +70 -39
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/error-guidance.d.ts +9 -1
- package/dist/cli/error-guidance.js +147 -6
- package/dist/cli/error-guidance.js.map +1 -1
- package/dist/cli/help-json-payload.js +11 -1
- package/dist/cli/help-json-payload.js.map +1 -1
- package/dist/cli/main.js +69 -6
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-setup.js +14 -0
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli/telemetry-flush.d.ts +2 -0
- package/dist/cli/telemetry-flush.js +4 -0
- package/dist/cli/telemetry-flush.js.map +1 -0
- package/dist/cli.js +1 -2
- package/dist/cli.js.map +1 -1
- package/dist/core/extensions/extension-types.d.ts +72 -0
- package/dist/core/extensions/extension-types.js +24 -0
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/extensions/loader.d.ts +1 -0
- package/dist/core/extensions/loader.js +766 -7
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/lock/lock.js +2 -0
- package/dist/core/lock/lock.js.map +1 -1
- package/dist/core/sentry/instrument.d.ts +15 -0
- package/dist/core/sentry/instrument.js +35 -3
- package/dist/core/sentry/instrument.js.map +1 -1
- package/dist/core/shared/constants.js +20 -0
- package/dist/core/shared/constants.js.map +1 -1
- package/dist/core/shared/errors.d.ts +8 -0
- package/dist/core/shared/errors.js.map +1 -1
- package/dist/core/shared/levenshtein.d.ts +1 -0
- package/dist/core/shared/levenshtein.js +37 -0
- package/dist/core/shared/levenshtein.js.map +1 -0
- package/dist/core/store/paths.js +34 -1
- package/dist/core/store/paths.js.map +1 -1
- package/dist/core/store/settings.js +210 -1
- package/dist/core/store/settings.js.map +1 -1
- package/dist/core/telemetry/runtime.d.ts +1 -0
- package/dist/core/telemetry/runtime.js +102 -3
- package/dist/core/telemetry/runtime.js.map +1 -1
- package/dist/mcp/server.js +3 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/pi/native.js +57 -4
- package/dist/pi/native.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +21 -1
- package/dist/sdk/cli-contracts.js +250 -0
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/index.d.ts +12 -1
- package/dist/sdk/index.js +8 -1
- package/dist/sdk/index.js.map +1 -1
- package/dist/types.d.ts +41 -0
- package/dist/types.js.map +1 -1
- package/docs/CLAUDE_CODE_PLUGIN.md +39 -0
- package/docs/EXTENSIONS.md +687 -0
- package/docs/MIGRATION_CLI_SIMPLIFICATION.md +64 -0
- package/docs/PI_PACKAGE.md +95 -10
- package/docs/SDK.md +441 -0
- package/docs/examples/ci/github-actions-pm-extension-gate.yml +53 -0
- package/docs/examples/ci/gitlab-ci-pm-extension-gate.yml +41 -0
- package/docs/examples/ci/jenkins-pm-extension-gate.Jenkinsfile +45 -0
- package/docs/examples/policy-restricted-extension/README.md +74 -0
- package/docs/examples/policy-restricted-extension/index.js +21 -0
- package/docs/examples/policy-restricted-extension/manifest.json +21 -0
- package/docs/examples/policy-restricted-extension/package.json +8 -0
- package/docs/examples/sdk-app-embedding/README.md +39 -0
- package/docs/examples/sdk-app-embedding/package.json +9 -0
- package/docs/examples/sdk-app-embedding/run-embedded-pm.mjs +61 -0
- package/docs/examples/sdk-contract-consumer/README.md +57 -0
- package/docs/examples/sdk-contract-consumer/inspect-contracts.mjs +47 -0
- package/docs/examples/sdk-contract-consumer/package.json +10 -0
- package/docs/examples/starter-extension/README.md +57 -42
- package/docs/examples/starter-extension/manifest.json +15 -0
- package/marketplace.json +3 -3
- package/package.json +1 -1
- package/plugins/pm-cli-claude/.claude-plugin/plugin.json +2 -2
- package/plugins/pm-cli-claude/README.md +55 -14
- package/plugins/pm-cli-claude/agents/pm-delivery-chain.md +88 -0
- package/plugins/pm-cli-claude/agents/pm-triage-agent.md +83 -0
- package/plugins/pm-cli-claude/agents/pm-verification-agent.md +88 -0
- package/plugins/pm-cli-claude/hooks/session-start.mjs +87 -22
package/dist/cli/main.js.map
CHANGED
|
@@ -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 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"]}
|
|
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, type PmCliErrorContext, type PmCliErrorRecoveryPayload } 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 { ensureSentryInit } from \"../core/sentry/instrument.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 extractProvidedOptionFlags,\n normalizeLongOptionFlag,\n renderPmCommand,\n} from \"./argv-utils.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 normalizeBootstrapInvocation,\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 renderAttemptedCommand(argv: string[]): string {\n return renderPmCommand(argv);\n}\n\nfunction inferMissingFieldsFromErrorMessage(message: string): string[] | undefined {\n const matches = message.match(/--[a-zA-Z0-9][a-zA-Z0-9_-]*/g);\n if (!matches || matches.length === 0) {\n return undefined;\n }\n const normalized = [...new Set(matches.map((entry) => normalizeLongOptionFlag(entry) ?? entry))];\n return normalized.length > 0 ? normalized : undefined;\n}\n\nfunction buildPmCliRecoveryContext(\n context: PmCliErrorContext | undefined,\n invocationArgv: string[],\n rawMessage: string,\n): PmCliErrorContext {\n const attemptedCommand = renderAttemptedCommand(invocationArgv);\n const providedFields = extractProvidedOptionFlags(invocationArgv);\n const inferredMissing = inferMissingFieldsFromErrorMessage(rawMessage);\n const existingRecovery = context?.recovery;\n let suggestedRetry = existingRecovery?.suggested_retry;\n if (!suggestedRetry && inferredMissing && inferredMissing.length > 0) {\n const missingFlag = inferredMissing[0];\n const normalizedMissing = normalizeLongOptionFlag(missingFlag);\n if (normalizedMissing) {\n const alreadyProvided = invocationArgv.some((token) => normalizeLongOptionFlag(token) === normalizedMissing);\n if (!alreadyProvided) {\n suggestedRetry = renderAttemptedCommand([...invocationArgv, normalizedMissing, \"<value>\"]);\n }\n }\n }\n if (!suggestedRetry) {\n suggestedRetry = attemptedCommand;\n }\n const recovery: PmCliErrorRecoveryPayload = {\n attempted_command: existingRecovery?.attempted_command ?? attemptedCommand,\n normalized_args: existingRecovery?.normalized_args ?? [...invocationArgv],\n provided_fields: existingRecovery?.provided_fields ?? (providedFields.length > 0 ? providedFields : undefined),\n missing: existingRecovery?.missing ?? inferredMissing,\n suggested_retry: suggestedRetry,\n };\n return {\n ...(context ?? {}),\n recovery,\n };\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\nasync function ensureSentryForErrorReporting(): Promise<void> {\n await ensureSentryInit();\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\nconst bootstrapInvocation = normalizeBootstrapInvocation(process.argv.slice(2));\n\nattachRichHelpText(program, bootstrapInvocation.argv);\n\nasync function main(): Promise<void> {\n const invocationArgv = bootstrapInvocation.argv;\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 enrichedContext = buildPmCliRecoveryContext(error.context, invocationArgv, error.message);\n const classification = classifyPmCliError(error.message, enrichedContext);\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 await ensureSentryForErrorReporting();\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, enrichedContext), null, 2));\n } else {\n printError(formatPmCliErrorForDisplay(error.message, enrichedContext));\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 attemptedCommand: usageContext.attemptedCommand,\n normalizedInvocationArgs: usageContext.normalizedInvocationArgs,\n providedOptionFlags: usageContext.providedOptionFlags,\n unknownOptionSuggestions: usageContext.unknownOptionSuggestions,\n suggestedRetryCommand: usageContext.suggestedRetryCommand,\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 await ensureSentryForErrorReporting();\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 attemptedCommand: usageContext.attemptedCommand,\n normalizedInvocationArgs: usageContext.normalizedInvocationArgs,\n providedOptionFlags: usageContext.providedOptionFlags,\n unknownOptionSuggestions: usageContext.unknownOptionSuggestions,\n suggestedRetryCommand: usageContext.suggestedRetryCommand,\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 await ensureSentryForErrorReporting();\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 await ensureSentryForErrorReporting();\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"]}
|
|
@@ -18,6 +18,7 @@ function normalizeExtensionOptions(options, forcedAction) {
|
|
|
18
18
|
uninstall: isForcedAction("uninstall") || readBoolean("uninstall"),
|
|
19
19
|
explore: isForcedAction("explore") || readBoolean("explore"),
|
|
20
20
|
manage: isForcedAction("manage") || readBoolean("manage"),
|
|
21
|
+
reload: isForcedAction("reload") || readBoolean("reload"),
|
|
21
22
|
doctor: isForcedAction("doctor") || readBoolean("doctor"),
|
|
22
23
|
adopt: isForcedAction("adopt") || readBoolean("adopt"),
|
|
23
24
|
adoptAll: isForcedAction("adopt-all") || readBoolean("adoptAll", "adopt_all", "adopt-all"),
|
|
@@ -31,6 +32,7 @@ function normalizeExtensionOptions(options, forcedAction) {
|
|
|
31
32
|
ref: readString("ref"),
|
|
32
33
|
detail: readString("detail"),
|
|
33
34
|
trace: readBoolean("trace"),
|
|
35
|
+
watch: readBoolean("watch"),
|
|
34
36
|
runtimeProbe: readBoolean("runtimeProbe", "runtime_probe", "runtime-probe"),
|
|
35
37
|
fixManagedState: readBoolean("fixManagedState", "fix_managed_state", "fix-managed-state"),
|
|
36
38
|
strictExit: readBoolean("strictExit", "strict_exit", "strict-exit"),
|
|
@@ -69,12 +71,16 @@ export function registerSetupCommands(program) {
|
|
|
69
71
|
.command("init")
|
|
70
72
|
.argument("[prefix]", "Optional id prefix")
|
|
71
73
|
.option("--preset <value>", "Governance preset for new setups: minimal|default|strict")
|
|
74
|
+
.option("--defaults", "Use non-interactive setup defaults without opening the wizard")
|
|
75
|
+
.option("--author <value>", "Set the default mutation author for this project")
|
|
72
76
|
.description("Initialize pm storage and defaults for the current workspace.")
|
|
73
77
|
.action(async (prefix, options, command) => {
|
|
74
78
|
const globalOptions = getGlobalOptions(command);
|
|
75
79
|
const startedAt = Date.now();
|
|
76
80
|
const result = await runInit(prefix, globalOptions, {
|
|
77
81
|
preset: typeof options.preset === "string" ? options.preset : undefined,
|
|
82
|
+
defaults: options.defaults === true,
|
|
83
|
+
author: typeof options.author === "string" ? options.author : undefined,
|
|
78
84
|
});
|
|
79
85
|
printResult(result, globalOptions);
|
|
80
86
|
if (globalOptions.profile) {
|
|
@@ -137,6 +143,8 @@ export function registerSetupCommands(program) {
|
|
|
137
143
|
.option("--uninstall", "Uninstall an installed extension")
|
|
138
144
|
.option("--explore", "List discovered extensions in selected scope")
|
|
139
145
|
.option("--manage", "List managed extensions with update-check metadata")
|
|
146
|
+
.option("--reload", "Reload extensions with cache-busted module imports")
|
|
147
|
+
.option("--watch", "Use watch mode with --reload")
|
|
140
148
|
.option("--doctor", "Run consolidated extension diagnostics (summary/deep modes)")
|
|
141
149
|
.option("--adopt", "Adopt an existing unmanaged extension into managed metadata")
|
|
142
150
|
.option("--adopt-all", "Adopt all unmanaged extensions into managed metadata")
|
|
@@ -187,6 +195,12 @@ export function registerSetupCommands(program) {
|
|
|
187
195
|
.description("List managed extensions with update-check metadata.")).action(async (_options, command) => {
|
|
188
196
|
await executeExtensionCommand(undefined, command.opts(), command, "manage");
|
|
189
197
|
});
|
|
198
|
+
addExtensionScopeOptions(extensionCommand
|
|
199
|
+
.command("reload")
|
|
200
|
+
.option("--watch", "Use watch mode for repeated reload checks")
|
|
201
|
+
.description("Reload extensions with cache-busted module imports.")).action(async (_options, command) => {
|
|
202
|
+
await executeExtensionCommand(undefined, command.opts(), command, "reload");
|
|
203
|
+
});
|
|
190
204
|
addExtensionScopeOptions(extensionCommand
|
|
191
205
|
.command("doctor")
|
|
192
206
|
.option("--detail <mode>", "Detail mode for extension diagnostics (summary|deep)")
|