@unbrained/pm-cli 2026.5.1 → 2026.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/CHANGELOG.md +20 -4
  2. package/CONTRIBUTING.md +11 -5
  3. package/PRD.md +17 -1
  4. package/README.md +49 -1101
  5. package/SECURITY.md +6 -11
  6. package/dist/cli/commands/activity.d.ts +10 -0
  7. package/dist/cli/commands/activity.js +13 -1
  8. package/dist/cli/commands/activity.js.map +1 -1
  9. package/dist/cli/commands/aggregate.js.map +1 -1
  10. package/dist/cli/commands/append.js.map +1 -1
  11. package/dist/cli/commands/calendar.js +16 -5
  12. package/dist/cli/commands/calendar.js.map +1 -1
  13. package/dist/cli/commands/claim.js.map +1 -1
  14. package/dist/cli/commands/close.js.map +1 -1
  15. package/dist/cli/commands/comments-audit.js.map +1 -1
  16. package/dist/cli/commands/comments.js.map +1 -1
  17. package/dist/cli/commands/completion.js.map +1 -1
  18. package/dist/cli/commands/config.js.map +1 -1
  19. package/dist/cli/commands/context.js +22 -0
  20. package/dist/cli/commands/context.js.map +1 -1
  21. package/dist/cli/commands/contracts.js.map +1 -1
  22. package/dist/cli/commands/create.js +2 -2
  23. package/dist/cli/commands/create.js.map +1 -1
  24. package/dist/cli/commands/dedupe-audit.js.map +1 -1
  25. package/dist/cli/commands/delete.js.map +1 -1
  26. package/dist/cli/commands/deps.js.map +1 -1
  27. package/dist/cli/commands/docs.js.map +1 -1
  28. package/dist/cli/commands/extension.js.map +1 -1
  29. package/dist/cli/commands/files.js +14 -2
  30. package/dist/cli/commands/files.js.map +1 -1
  31. package/dist/cli/commands/gc.js.map +1 -1
  32. package/dist/cli/commands/get.js.map +1 -1
  33. package/dist/cli/commands/health.js +16 -12
  34. package/dist/cli/commands/health.js.map +1 -1
  35. package/dist/cli/commands/history.js.map +1 -1
  36. package/dist/cli/commands/index.js.map +1 -1
  37. package/dist/cli/commands/init.js.map +1 -1
  38. package/dist/cli/commands/learnings.js.map +1 -1
  39. package/dist/cli/commands/list.d.ts +1 -0
  40. package/dist/cli/commands/list.js +10 -2
  41. package/dist/cli/commands/list.js.map +1 -1
  42. package/dist/cli/commands/normalize.js +5 -17
  43. package/dist/cli/commands/normalize.js.map +1 -1
  44. package/dist/cli/commands/notes.js.map +1 -1
  45. package/dist/cli/commands/reindex.js.map +1 -1
  46. package/dist/cli/commands/restore.js.map +1 -1
  47. package/dist/cli/commands/search.js.map +1 -1
  48. package/dist/cli/commands/stats.js.map +1 -1
  49. package/dist/cli/commands/templates.js.map +1 -1
  50. package/dist/cli/commands/test-all.js.map +1 -1
  51. package/dist/cli/commands/test-runs.js.map +1 -1
  52. package/dist/cli/commands/test.js.map +1 -1
  53. package/dist/cli/commands/update-many.js +1 -6
  54. package/dist/cli/commands/update-many.js.map +1 -1
  55. package/dist/cli/commands/update.js +2 -2
  56. package/dist/cli/commands/update.js.map +1 -1
  57. package/dist/cli/commands/validate.js +23 -18
  58. package/dist/cli/commands/validate.js.map +1 -1
  59. package/dist/cli/error-guidance.js +13 -2
  60. package/dist/cli/error-guidance.js.map +1 -1
  61. package/dist/cli/extension-command-options.js.map +1 -1
  62. package/dist/cli/help-content.js.map +1 -1
  63. package/dist/cli/main.js +29 -13
  64. package/dist/cli/main.js.map +1 -1
  65. package/dist/cli.d.ts +1 -1
  66. package/dist/cli.js +3 -1
  67. package/dist/cli.js.map +1 -1
  68. package/dist/core/extensions/extension-types.d.ts +605 -0
  69. package/dist/core/extensions/extension-types.js +22 -0
  70. package/dist/core/extensions/extension-types.js.map +1 -0
  71. package/dist/core/extensions/index.js.map +1 -1
  72. package/dist/core/extensions/item-fields.js.map +1 -1
  73. package/dist/core/extensions/loader.d.ts +2 -586
  74. package/dist/core/extensions/loader.js +3 -21
  75. package/dist/core/extensions/loader.js.map +1 -1
  76. package/dist/core/extensions/runtime-registrations.js.map +1 -1
  77. package/dist/core/fs/fs-utils.js.map +1 -1
  78. package/dist/core/fs/index.js.map +1 -1
  79. package/dist/core/history/history-stream-policy.js.map +1 -1
  80. package/dist/core/history/history.js.map +1 -1
  81. package/dist/core/history/index.js.map +1 -1
  82. package/dist/core/item/id.js.map +1 -1
  83. package/dist/core/item/index.js.map +1 -1
  84. package/dist/core/item/item-format.js.map +1 -1
  85. package/dist/core/item/parent-reference-policy.js.map +1 -1
  86. package/dist/core/item/parse.js +6 -0
  87. package/dist/core/item/parse.js.map +1 -1
  88. package/dist/core/item/sprint-release-format.js.map +1 -1
  89. package/dist/core/item/status.js.map +1 -1
  90. package/dist/core/item/type-registry.js.map +1 -1
  91. package/dist/core/lock/index.js.map +1 -1
  92. package/dist/core/lock/lock.js +1 -6
  93. package/dist/core/lock/lock.js.map +1 -1
  94. package/dist/core/output/command-aware.js.map +1 -1
  95. package/dist/core/output/output.js.map +1 -1
  96. package/dist/core/schema/runtime-field-filters.js.map +1 -1
  97. package/dist/core/schema/runtime-field-values.js.map +1 -1
  98. package/dist/core/schema/runtime-schema.js.map +1 -1
  99. package/dist/core/search/cache.js +1 -7
  100. package/dist/core/search/cache.js.map +1 -1
  101. package/dist/core/search/embedding-batches.js +4 -0
  102. package/dist/core/search/embedding-batches.js.map +1 -1
  103. package/dist/core/search/providers.js +1 -20
  104. package/dist/core/search/providers.js.map +1 -1
  105. package/dist/core/search/semantic-defaults.js.map +1 -1
  106. package/dist/core/search/vector-stores.d.ts +1 -0
  107. package/dist/core/search/vector-stores.js +23 -27
  108. package/dist/core/search/vector-stores.js.map +1 -1
  109. package/dist/core/sentry/helpers.d.ts +6 -0
  110. package/dist/core/sentry/helpers.js +73 -0
  111. package/dist/core/sentry/helpers.js.map +1 -0
  112. package/dist/core/sentry/instrument.d.ts +4 -0
  113. package/dist/core/sentry/instrument.js +173 -0
  114. package/dist/core/sentry/instrument.js.map +1 -0
  115. package/dist/core/shared/command-types.js.map +1 -1
  116. package/dist/core/shared/conflict-markers.js.map +1 -1
  117. package/dist/core/shared/constants.js.map +1 -1
  118. package/dist/core/shared/errors.js.map +1 -1
  119. package/dist/core/shared/index.d.ts +1 -0
  120. package/dist/core/shared/index.js +1 -0
  121. package/dist/core/shared/index.js.map +1 -1
  122. package/dist/core/shared/primitives.d.ts +13 -0
  123. package/dist/core/shared/primitives.js +33 -0
  124. package/dist/core/shared/primitives.js.map +1 -0
  125. package/dist/core/shared/serialization.js.map +1 -1
  126. package/dist/core/shared/text-normalization.js.map +1 -1
  127. package/dist/core/shared/time.js.map +1 -1
  128. package/dist/core/store/index.js.map +1 -1
  129. package/dist/core/store/item-format-migration.js.map +1 -1
  130. package/dist/core/store/item-store.js +44 -35
  131. package/dist/core/store/item-store.js.map +1 -1
  132. package/dist/core/store/paths.js.map +1 -1
  133. package/dist/core/store/settings.js.map +1 -1
  134. package/dist/core/telemetry/consent.js.map +1 -1
  135. package/dist/core/telemetry/runtime.d.ts +2 -0
  136. package/dist/core/telemetry/runtime.js +40 -13
  137. package/dist/core/telemetry/runtime.js.map +1 -1
  138. package/dist/core/test/background-runs.js.map +1 -1
  139. package/dist/core/test/item-test-run-tracking.js.map +1 -1
  140. package/dist/sdk/cli-contracts.js.map +1 -1
  141. package/dist/sdk/index.d.ts +1 -1
  142. package/dist/sdk/index.js.map +1 -1
  143. package/dist/types/index.js.map +1 -1
  144. package/dist/types.js.map +1 -1
  145. package/docs/AGENT_GUIDE.md +125 -0
  146. package/docs/ARCHITECTURE.md +195 -478
  147. package/docs/COMMANDS.md +199 -0
  148. package/docs/CONFIGURATION.md +146 -0
  149. package/docs/EXTENSIONS.md +146 -645
  150. package/docs/QUICKSTART.md +108 -0
  151. package/docs/README.md +70 -0
  152. package/docs/RELEASING.md +51 -36
  153. package/docs/SDK.md +127 -68
  154. package/docs/TESTING.md +125 -0
  155. package/docs/examples/starter-extension/README.md +39 -25
  156. package/package.json +17 -9
  157. package/dist/command-types.d.ts +0 -1
  158. package/dist/command-types.js +0 -2
  159. package/dist/command-types.js.map +0 -1
  160. package/dist/constants.d.ts +0 -1
  161. package/dist/constants.js +0 -2
  162. package/dist/constants.js.map +0 -1
  163. package/dist/errors.d.ts +0 -1
  164. package/dist/errors.js +0 -2
  165. package/dist/errors.js.map +0 -1
  166. package/dist/fs-utils.d.ts +0 -1
  167. package/dist/fs-utils.js +0 -2
  168. package/dist/fs-utils.js.map +0 -1
  169. package/dist/history.d.ts +0 -1
  170. package/dist/history.js +0 -2
  171. package/dist/history.js.map +0 -1
  172. package/dist/id.d.ts +0 -1
  173. package/dist/id.js +0 -2
  174. package/dist/id.js.map +0 -1
  175. package/dist/item-format.d.ts +0 -1
  176. package/dist/item-format.js +0 -2
  177. package/dist/item-format.js.map +0 -1
  178. package/dist/item-store.d.ts +0 -1
  179. package/dist/item-store.js +0 -2
  180. package/dist/item-store.js.map +0 -1
  181. package/dist/lock.d.ts +0 -1
  182. package/dist/lock.js +0 -2
  183. package/dist/lock.js.map +0 -1
  184. package/dist/output.d.ts +0 -1
  185. package/dist/output.js +0 -2
  186. package/dist/output.js.map +0 -1
  187. package/dist/parse.d.ts +0 -1
  188. package/dist/parse.js +0 -2
  189. package/dist/parse.js.map +0 -1
  190. package/dist/paths.d.ts +0 -1
  191. package/dist/paths.js +0 -2
  192. package/dist/paths.js.map +0 -1
  193. package/dist/serialization.d.ts +0 -1
  194. package/dist/serialization.js +0 -2
  195. package/dist/serialization.js.map +0 -1
  196. package/dist/settings.d.ts +0 -1
  197. package/dist/settings.js +0 -2
  198. package/dist/settings.js.map +0 -1
  199. package/dist/time.d.ts +0 -1
  200. package/dist/time.js +0 -2
  201. package/dist/time.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/cli/commands/test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test.js","sourceRoot":"/","sources":["cli/commands/test.ts"],"names":[],"mappings":"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","sourcesContent":["import { spawn, type ChildProcess } from \"node:child_process\";\nimport { cp, mkdir, mkdtemp, readdir, rm } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport path from \"node:path\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { createStdinTokenResolver, parseCsvKv, parseOptionalNumber } from \"../../core/item/parse.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { nowIso } from \"../../core/shared/time.js\";\nimport { locateItem, mutateItem, readLocatedItem } from \"../../core/store/item-store.js\";\nimport { getSettingsPath, ITEM_FILE_EXTENSIONS, resolveGlobalPmRoot, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { appendTrackedTestRunSummary } from \"../../core/test/item-test-run-tracking.js\";\nimport { runInit } from \"./init.js\";\nimport { SCOPE_VALUES } from \"../../types/index.js\";\nimport type { LinkedTest, LinkScope } from \"../../types/index.js\";\n\nconst TEST_OUTPUT_MAX_BUFFER_BYTES = 20 * 1024 * 1024;\nconst DEFAULT_LINKED_TEST_TIMEOUT_FORCE_KILL_DELAY_MS = 3000;\nconst DEFAULT_LINKED_TEST_HEARTBEAT_INTERVAL_MS = 10000;\nconst MAX_LINKED_TEST_COMMAND_LABEL_LENGTH = 120;\nconst LINKED_TEST_PROTECTED_ENV_KEYS = new Set([\"PM_PATH\", \"PM_GLOBAL_PATH\", \"FORCE_COLOR\"]);\nconst LINKED_TEST_ENV_NAME_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;\nconst PM_CONTEXT_MODE_VALUES = [\"schema\", \"tracker\", \"auto\"] as const;\ntype LinkedTestPmContextMode = (typeof PM_CONTEXT_MODE_VALUES)[number];\ntype ResolvedLinkedTestPmContextMode = Exclude<LinkedTestPmContextMode, \"auto\">;\nconst LINKED_TEST_TRACKER_DIRS_TO_SKIP = new Set([\"locks\", \"extensions\"]);\nconst LINKED_TEST_ITEM_COUNT_DIRS_TO_SKIP = new Set([\"history\", \"index\", \"search\", \"extensions\", \"locks\"]);\nconst LINKED_TEST_INFRA_COLLISION_PATTERNS = [\n /eaddrinuse/i,\n /address already in use/i,\n /port\\s+\\d+\\s+is already in use/i,\n /web server[^.\\n]*already running/i,\n /failed to listen on/i,\n];\nconst PM_SUBCOMMANDS_WITH_ITEM_REFERENCE = new Set([\n \"get\",\n \"history\",\n \"restore\",\n \"update\",\n \"close\",\n \"delete\",\n \"append\",\n \"claim\",\n \"release\",\n \"comments\",\n \"notes\",\n \"learnings\",\n \"files\",\n \"docs\",\n \"deps\",\n \"test\",\n]);\nconst PM_TRACKER_READ_SUBCOMMANDS = new Set([\n \"activity\",\n \"calendar\",\n \"context\",\n \"ctx\",\n \"deps\",\n \"get\",\n \"health\",\n \"history\",\n \"list\",\n \"list-all\",\n \"list-blocked\",\n \"list-canceled\",\n \"list-closed\",\n \"list-draft\",\n \"list-in-progress\",\n \"list-open\",\n \"search\",\n \"stats\",\n \"test-all\",\n \"validate\",\n]);\n\nfunction readPositiveIntegerEnv(name: string, fallback: number): number {\n const raw = process.env[name];\n if (typeof raw !== \"string\" || raw.trim().length === 0) {\n return fallback;\n }\n const parsed = Number.parseInt(raw, 10);\n if (!Number.isFinite(parsed) || parsed <= 0) {\n return fallback;\n }\n return parsed;\n}\n\nfunction linkedTestTimeoutForceKillDelayMs(): number {\n return readPositiveIntegerEnv(\"PM_LINKED_TEST_TIMEOUT_FORCE_KILL_DELAY_MS\", DEFAULT_LINKED_TEST_TIMEOUT_FORCE_KILL_DELAY_MS);\n}\n\nfunction linkedTestHeartbeatIntervalMs(): number {\n return readPositiveIntegerEnv(\"PM_LINKED_TEST_HEARTBEAT_INTERVAL_MS\", DEFAULT_LINKED_TEST_HEARTBEAT_INTERVAL_MS);\n}\n\ninterface LinkedTestExecutionResult {\n stdout: string;\n stderr: string;\n exitCode: number | null;\n signal?: NodeJS.Signals | null;\n timedOut: boolean;\n maxBufferExceeded: boolean;\n spawnError?: string;\n}\n\ninterface LinkedTestProgressContext {\n index: number;\n total: number;\n timeoutMs: number;\n command: string;\n}\n\ntype LinkedTestProgressMode = \"auto\" | \"always\" | \"off\";\n\ninterface LinkedTestSandboxSourceRoots {\n projectPmRoot: string;\n globalPmRoot: string;\n}\n\ninterface LinkedTestRuntimeDirectives {\n env_set: Record<string, string>;\n env_clear: string[];\n shared_host_safe: boolean;\n}\n\nexport interface TestCommandOptions {\n add?: string[];\n remove?: string[];\n run?: boolean;\n timeout?: string;\n progress?: boolean;\n envSet?: string[];\n envClear?: string[];\n sharedHostSafe?: boolean;\n pmContext?: string;\n overrideLinkedPmContext?: boolean;\n failOnContextMismatch?: boolean;\n failOnSkipped?: boolean;\n failOnEmptyTestRun?: boolean;\n requireAssertionsForPm?: boolean;\n checkContext?: boolean;\n autoPmContext?: boolean;\n author?: string;\n message?: string;\n force?: boolean;\n}\n\nexport type LinkedTestFailureCategory =\n | \"infra_collision\"\n | \"assertion_failure\"\n | \"empty_run\"\n | \"timeout\"\n | \"max_buffer\"\n | \"spawn_error\"\n | \"signal\";\n\nexport interface TestRunResult {\n command?: string;\n path?: string;\n status: \"passed\" | \"failed\" | \"skipped\";\n exit_code?: number;\n failure_category?: LinkedTestFailureCategory;\n execution_context?: {\n requested_pm_context_mode: LinkedTestPmContextMode;\n pm_context_mode: LinkedTestPmContextMode;\n auto_pm_context_applied: boolean;\n is_pm_command: boolean;\n is_pm_tracker_read_command: boolean;\n source_project_pm_path: string;\n sandbox_project_pm_path: string;\n source_global_pm_path: string;\n sandbox_global_pm_path: string;\n source_project_item_count: number;\n sandbox_project_item_count: number;\n source_global_item_count: number;\n sandbox_global_item_count: number;\n mismatch_detected: boolean;\n project_extensions_seeded: boolean;\n global_extensions_seeded: boolean;\n };\n stdout?: string;\n stderr?: string;\n error?: string;\n}\n\nexport interface TestResult {\n id: string;\n tests: LinkedTest[];\n run_results: TestRunResult[];\n failure_categories: Record<LinkedTestFailureCategory, number>;\n fail_on_skipped_triggered?: boolean;\n warnings?: string[];\n changed: boolean;\n count: number;\n}\n\nfunction resolveAuthor(candidate: string | undefined, fallback: string): string {\n const resolved = candidate ?? process.env.PM_AUTHOR ?? fallback;\n const trimmed = resolved.trim();\n return trimmed || \"unknown\";\n}\n\nfunction resolveTrackedRunId(kind: \"test\" | \"test-all\"): string {\n const fromEnv = process.env.PM_BACKGROUND_TEST_RUN_ID?.trim();\n if (fromEnv && fromEnv.length > 0) {\n return fromEnv;\n }\n return `${kind}-local-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;\n}\n\nfunction summarizeRunResultStatuses(results: TestRunResult[]): { passed: number; failed: number; skipped: number } {\n let passed = 0;\n let failed = 0;\n let skipped = 0;\n for (const entry of results) {\n if (entry.status === \"passed\") {\n passed += 1;\n continue;\n }\n if (entry.status === \"failed\") {\n failed += 1;\n continue;\n }\n skipped += 1;\n }\n return { passed, failed, skipped };\n}\n\nexport function summarizeContextPreflight(runResults: TestRunResult[]): {\n checked_pm_commands: number;\n tracker_read_commands: number;\n mismatches: number;\n auto_remediated: number;\n} {\n let checkedPmCommands = 0;\n let trackerReadCommands = 0;\n let mismatches = 0;\n let autoRemediated = 0;\n for (const result of runResults) {\n const context = result.execution_context;\n if (!context || context.is_pm_command !== true) {\n continue;\n }\n checkedPmCommands += 1;\n if (context.is_pm_tracker_read_command === true) {\n trackerReadCommands += 1;\n }\n if (context.mismatch_detected === true) {\n mismatches += 1;\n }\n if (context.auto_pm_context_applied === true) {\n autoRemediated += 1;\n }\n }\n return {\n checked_pm_commands: checkedPmCommands,\n tracker_read_commands: trackerReadCommands,\n mismatches,\n auto_remediated: autoRemediated,\n };\n}\n\nfunction ensureScope(raw: string | undefined): LinkScope {\n const value = (raw ?? \"project\") as LinkScope;\n if (!SCOPE_VALUES.includes(value)) {\n throw new PmCliError(`Invalid scope \"${raw}\"`, EXIT_CODE.USAGE);\n }\n return value;\n}\n\nfunction parseLinkedTestBooleanValue(raw: string | undefined, optionName: string, fieldLabel: string): boolean | undefined {\n if (!raw || raw.trim().length === 0) {\n return undefined;\n }\n const normalized = raw.trim().toLowerCase();\n if (normalized === \"true\" || normalized === \"1\" || normalized === \"yes\") {\n return true;\n }\n if (normalized === \"false\" || normalized === \"0\" || normalized === \"no\") {\n return false;\n }\n throw new PmCliError(`${optionName} ${fieldLabel} must be one of true|false|1|0|yes|no`, EXIT_CODE.USAGE);\n}\n\nfunction parseLinkedTestEnvSetValue(raw: string | undefined, optionName: string): Record<string, string> | undefined {\n if (!raw || raw.trim().length === 0) {\n return undefined;\n }\n const assignments = raw\n .split(/[;\\n]/)\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0);\n if (assignments.length === 0) {\n throw new PmCliError(`${optionName} env_set must include at least one KEY=VALUE assignment`, EXIT_CODE.USAGE);\n }\n const envSet: Record<string, string> = {};\n for (const assignment of assignments) {\n const separatorIndex = assignment.indexOf(\"=\");\n if (separatorIndex <= 0) {\n throw new PmCliError(\n `${optionName} env_set entries must use KEY=VALUE and be separated by semicolons. Example: env_set=PORT=0;PLAYWRIGHT_BASE_URL=http://127.0.0.1:4173`,\n EXIT_CODE.USAGE,\n );\n }\n const key = assignment.slice(0, separatorIndex).trim();\n const value = assignment.slice(separatorIndex + 1);\n if (!LINKED_TEST_ENV_NAME_PATTERN.test(key)) {\n throw new PmCliError(`${optionName} env_set key \"${key}\" is invalid`, EXIT_CODE.USAGE);\n }\n if (LINKED_TEST_PROTECTED_ENV_KEYS.has(key.toUpperCase())) {\n throw new PmCliError(`${optionName} env_set key \"${key}\" is reserved for sandbox safety`, EXIT_CODE.USAGE);\n }\n envSet[key] = value;\n }\n return Object.keys(envSet).length > 0 ? envSet : undefined;\n}\n\nfunction parseLinkedTestEnvClearValue(raw: string | undefined, optionName: string): string[] | undefined {\n if (!raw || raw.trim().length === 0) {\n return undefined;\n }\n const values = [...new Set(raw.split(/[;,\\n]/).map((entry) => entry.trim()).filter((entry) => entry.length > 0))];\n if (values.length === 0) {\n throw new PmCliError(`${optionName} env_clear must include at least one environment variable name`, EXIT_CODE.USAGE);\n }\n for (const key of values) {\n if (!LINKED_TEST_ENV_NAME_PATTERN.test(key)) {\n throw new PmCliError(`${optionName} env_clear key \"${key}\" is invalid`, EXIT_CODE.USAGE);\n }\n if (LINKED_TEST_PROTECTED_ENV_KEYS.has(key.toUpperCase())) {\n throw new PmCliError(`${optionName} env_clear key \"${key}\" is reserved for sandbox safety`, EXIT_CODE.USAGE);\n }\n }\n return values;\n}\n\nfunction parseLinkedTestStringList(raw: string | undefined): string[] | undefined {\n if (!raw || raw.trim().length === 0) {\n return undefined;\n }\n const values = [...new Set(raw.split(/[;\\n]/).map((entry) => entry.trim()).filter((entry) => entry.length > 0))];\n return values.length > 0 ? values : undefined;\n}\n\nfunction parseLinkedTestRegexList(raw: string | undefined, optionName: string, fieldLabel: string): string[] | undefined {\n const values = parseLinkedTestStringList(raw);\n if (!values || values.length === 0) {\n return undefined;\n }\n for (const pattern of values) {\n try {\n // Validate syntax when linked-test metadata is added.\n new RegExp(pattern, \"m\");\n } catch (error: unknown) {\n throw new PmCliError(\n `${optionName} ${fieldLabel} includes invalid regex \"${pattern}\": ${error instanceof Error ? error.message : String(error)}`,\n EXIT_CODE.USAGE,\n );\n }\n }\n return values;\n}\n\nfunction parseLinkedTestMinLines(raw: string | undefined, optionName: string): number | undefined {\n if (!raw || raw.trim().length === 0) {\n return undefined;\n }\n const parsed = parseOptionalNumber(raw, \"assert_stdout_min_lines\");\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new PmCliError(`${optionName} assert_stdout_min_lines must be an integer >= 0`, EXIT_CODE.USAGE);\n }\n return parsed;\n}\n\nfunction parseLinkedTestAssertionEqualsMap(raw: string | undefined, optionName: string): Record<string, string> | undefined {\n if (!raw || raw.trim().length === 0) {\n return undefined;\n }\n const assignments = raw\n .split(/[;\\n]/)\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0);\n if (assignments.length === 0) {\n throw new PmCliError(`${optionName} assert_json_field_equals must include at least one path=value assignment`, EXIT_CODE.USAGE);\n }\n const values: Record<string, string> = {};\n for (const assignment of assignments) {\n const separatorIndex = assignment.indexOf(\"=\");\n if (separatorIndex <= 0) {\n throw new PmCliError(\n `${optionName} assert_json_field_equals entries must use path=value and be separated by semicolons`,\n EXIT_CODE.USAGE,\n );\n }\n const key = assignment.slice(0, separatorIndex).trim();\n const value = assignment.slice(separatorIndex + 1).trim();\n if (key.length === 0 || value.length === 0) {\n throw new PmCliError(`${optionName} assert_json_field_equals entries must include non-empty path and value`, EXIT_CODE.USAGE);\n }\n values[key] = value;\n }\n return Object.keys(values).length > 0 ? values : undefined;\n}\n\nfunction parseLinkedTestAssertionGteMap(raw: string | undefined, optionName: string): Record<string, number> | undefined {\n if (!raw || raw.trim().length === 0) {\n return undefined;\n }\n const assignments = raw\n .split(/[;\\n]/)\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0);\n if (assignments.length === 0) {\n throw new PmCliError(`${optionName} assert_json_field_gte must include at least one path=value assignment`, EXIT_CODE.USAGE);\n }\n const values: Record<string, number> = {};\n for (const assignment of assignments) {\n const separatorIndex = assignment.indexOf(\"=\");\n if (separatorIndex <= 0) {\n throw new PmCliError(\n `${optionName} assert_json_field_gte entries must use path=value and be separated by semicolons`,\n EXIT_CODE.USAGE,\n );\n }\n const key = assignment.slice(0, separatorIndex).trim();\n const valueRaw = assignment.slice(separatorIndex + 1).trim();\n if (key.length === 0 || valueRaw.length === 0) {\n throw new PmCliError(`${optionName} assert_json_field_gte entries must include non-empty path and value`, EXIT_CODE.USAGE);\n }\n const value = Number.parseFloat(valueRaw);\n if (!Number.isFinite(value)) {\n throw new PmCliError(`${optionName} assert_json_field_gte value for \"${key}\" must be numeric`, EXIT_CODE.USAGE);\n }\n values[key] = value;\n }\n return Object.keys(values).length > 0 ? values : undefined;\n}\n\nfunction parseLinkedTestContextModeValue(\n raw: string | undefined,\n optionName: string,\n): LinkedTest[\"pm_context_mode\"] | undefined {\n if (!raw || raw.trim().length === 0) {\n return undefined;\n }\n const normalized = raw.trim().toLowerCase();\n if ((PM_CONTEXT_MODE_VALUES as readonly string[]).includes(normalized)) {\n return normalized as LinkedTest[\"pm_context_mode\"];\n }\n throw new PmCliError(\n `${optionName} pm_context_mode must be one of: ${PM_CONTEXT_MODE_VALUES.join(\", \")}`,\n EXIT_CODE.USAGE,\n );\n}\n\nfunction parsePmContextMode(raw: string | undefined): LinkedTestPmContextMode {\n if (!raw) {\n return \"schema\";\n }\n const normalized = raw.trim().toLowerCase();\n if ((PM_CONTEXT_MODE_VALUES as readonly string[]).includes(normalized)) {\n return normalized as LinkedTestPmContextMode;\n }\n throw new PmCliError(\n `Invalid --pm-context value \"${raw}\". Expected one of: ${PM_CONTEXT_MODE_VALUES.join(\", \")}`,\n EXIT_CODE.USAGE,\n );\n}\n\nfunction resolveLinkedTestRequestedContextMode(\n linkedTest: LinkedTest,\n runLevelMode: LinkedTestPmContextMode,\n overrideLinkedPmContext: boolean,\n): LinkedTestPmContextMode {\n if (overrideLinkedPmContext) {\n return runLevelMode;\n }\n if (typeof linkedTest.pm_context_mode !== \"string\" || linkedTest.pm_context_mode.trim().length === 0) {\n return runLevelMode;\n }\n return parsePmContextMode(linkedTest.pm_context_mode);\n}\n\nfunction resolveLinkedTestEffectiveContextMode(\n requestedMode: LinkedTestPmContextMode,\n isPmTrackerReadCommand: boolean,\n): ResolvedLinkedTestPmContextMode {\n if (requestedMode === \"auto\") {\n return isPmTrackerReadCommand ? \"tracker\" : \"schema\";\n }\n return requestedMode;\n}\n\nfunction hasLinkedTestAssertions(linkedTest: LinkedTest): boolean {\n return (\n (linkedTest.assert_stdout_contains?.length ?? 0) > 0 ||\n (linkedTest.assert_stdout_regex?.length ?? 0) > 0 ||\n (linkedTest.assert_stderr_contains?.length ?? 0) > 0 ||\n (linkedTest.assert_stderr_regex?.length ?? 0) > 0 ||\n typeof linkedTest.assert_stdout_min_lines === \"number\" ||\n Object.keys(linkedTest.assert_json_field_equals ?? {}).length > 0 ||\n Object.keys(linkedTest.assert_json_field_gte ?? {}).length > 0\n );\n}\n\nfunction buildPmContextMismatchHint(params: {\n executionContext: NonNullable<TestRunResult[\"execution_context\"]>;\n runLevelPmContextMode: LinkedTestPmContextMode;\n linkedOverridePmContextMode: LinkedTestPmContextMode | undefined;\n}): string {\n const { executionContext, runLevelPmContextMode, linkedOverridePmContextMode } = params;\n if (!executionContext.is_pm_tracker_read_command || !executionContext.mismatch_detected) {\n return \"\";\n }\n if (runLevelPmContextMode === \"tracker\" && linkedOverridePmContextMode === \"schema\") {\n return (\n \" Linked test metadata pm_context_mode=schema overrides run-level --pm-context tracker.\" +\n \" Set pm_context_mode=tracker (or auto) on the linked test, or remove the override, to run against seeded tracker data.\"\n );\n }\n if (executionContext.pm_context_mode === \"schema\") {\n return \" Use --pm-context tracker to run PM tracker-read commands against seeded tracker data.\";\n }\n return \"\";\n}\n\nfunction mergeEnvSetDirectives(entries: string[] | undefined, optionName: string): Record<string, string> {\n const merged: Record<string, string> = {};\n if (!entries) {\n return merged;\n }\n for (const entry of entries) {\n const parsed = parseLinkedTestEnvSetValue(entry, optionName);\n if (!parsed) {\n continue;\n }\n for (const [key, value] of Object.entries(parsed)) {\n merged[key] = value;\n }\n }\n return merged;\n}\n\nfunction mergeEnvClearDirectives(entries: string[] | undefined, optionName: string): string[] {\n if (!entries) {\n return [];\n }\n const values: string[] = [];\n for (const entry of entries) {\n const parsed = parseLinkedTestEnvClearValue(entry, optionName);\n if (parsed) {\n values.push(...parsed);\n }\n }\n return [...new Set(values)];\n}\n\nconst PM_GLOBAL_FLAGS_WITH_VALUE = new Set([\"--path\"]);\nconst NPX_FLAGS_WITH_VALUE = new Set([\"-p\", \"--package\", \"-c\", \"--call\"]);\nconst PNPM_GLOBAL_FLAGS_WITH_VALUE = new Set([\n \"-c\",\n \"-C\",\n \"--config\",\n \"--dir\",\n \"--filter\",\n \"--workspace-dir\",\n]);\nconst NPM_GLOBAL_FLAGS_WITH_VALUE = new Set([\"-C\", \"--prefix\", \"--userconfig\", \"--cache\"]);\nconst YARN_GLOBAL_FLAGS_WITH_VALUE = new Set([\"--cwd\"]);\nconst BUN_GLOBAL_FLAGS_WITH_VALUE = new Set([\"--cwd\"]);\nconst NPM_EXEC_SUBCOMMANDS = new Set([\"exec\", \"x\"]);\nconst SCRIPT_RUN_SUBCOMMANDS = new Set([\"run\", \"run-script\"]);\nconst SCRIPT_RUN_FLAGS_WITH_VALUE = new Set([\"-C\", \"--dir\", \"--cwd\", \"-w\", \"--workspace\", \"--filter\"]);\n\nfunction splitNormalizedCommandSegments(normalizedCommand: string): string[] {\n return normalizedCommand\n .split(/&&|\\|\\||\\||;/)\n .map((segment) => segment.trim())\n .filter((segment) => segment.length > 0);\n}\n\nfunction stripLeadingEnvAssignments(tokens: string[]): string[] {\n let start = 0;\n if (tokens[start] === \"env\") {\n start += 1;\n }\n while (start < tokens.length) {\n const token = tokens[start];\n if (/^(?:[a-z_][a-z0-9_]*|\\$env:[a-z_][a-z0-9_]*)=.*/.test(token)) {\n start += 1;\n continue;\n }\n break;\n }\n return tokens.slice(start);\n}\n\nfunction firstPmSubcommand(args: string[]): string | undefined {\n let index = 0;\n while (index < args.length) {\n const token = args[index];\n if (token === \"--\") {\n index += 1;\n continue;\n }\n if (token.startsWith(\"-\")) {\n if (PM_GLOBAL_FLAGS_WITH_VALUE.has(token)) {\n index += 2;\n continue;\n }\n index += 1;\n continue;\n }\n return token;\n }\n return undefined;\n}\n\nfunction isPmExecutableToken(token: string): boolean {\n return token === \"pm\" || token.endsWith(\"/pm\") || token.endsWith(\"/pm.cmd\") || token.endsWith(\"/pm.exe\");\n}\n\nfunction normalizePackageSpecifier(token: string): string {\n const trimmed = token.trim();\n if (!trimmed.startsWith(\"@\")) {\n const versionSeparator = trimmed.indexOf(\"@\");\n return versionSeparator === -1 ? trimmed : trimmed.slice(0, versionSeparator);\n }\n const scopeSeparator = trimmed.indexOf(\"/\");\n if (scopeSeparator === -1) {\n return trimmed;\n }\n const versionSeparator = trimmed.indexOf(\"@\", scopeSeparator + 1);\n return versionSeparator === -1 ? trimmed : trimmed.slice(0, versionSeparator);\n}\n\nfunction isPmCliPackageToken(token: string): boolean {\n const normalizedSpecifier = normalizePackageSpecifier(token);\n return (\n normalizedSpecifier === \"pm-cli\" ||\n normalizedSpecifier.endsWith(\"/pm-cli\") ||\n token === \"pm-cli\" ||\n token.endsWith(\"/pm-cli\")\n );\n}\n\nfunction isPmCliScriptToken(token: string): boolean {\n return token === \"dist/cli.js\" || token === \"./dist/cli.js\" || token.endsWith(\"/dist/cli.js\");\n}\n\nfunction parseNpxCommand(tokens: string[]): { command: string; args: string[] } | null {\n let index = 0;\n while (index < tokens.length) {\n const token = tokens[index];\n if (token === \"--\") {\n index += 1;\n break;\n }\n if (!token.startsWith(\"-\")) {\n break;\n }\n if (token.includes(\"=\")) {\n index += 1;\n continue;\n }\n if (NPX_FLAGS_WITH_VALUE.has(token)) {\n index += 2;\n continue;\n }\n index += 1;\n }\n const command = tokens[index];\n if (!command) {\n return null;\n }\n return {\n command,\n args: tokens.slice(index + 1),\n };\n}\n\nfunction parseLauncherSubcommand(\n tokens: string[],\n flagsWithValue: Set<string>,\n): { subcommand: string; args: string[] } | null {\n let index = 0;\n while (index < tokens.length) {\n const token = tokens[index];\n if (token === \"--\") {\n index += 1;\n continue;\n }\n if (token.startsWith(\"-\")) {\n if (token.includes(\"=\")) {\n index += 1;\n continue;\n }\n if (flagsWithValue.has(token)) {\n index += 2;\n continue;\n }\n index += 1;\n continue;\n }\n return {\n subcommand: token,\n args: tokens.slice(index + 1),\n };\n }\n return null;\n}\n\nfunction parsePnpmDlxCommand(tokens: string[]): { command: string; args: string[] } | null {\n const parsed = parseLauncherSubcommand(tokens, PNPM_GLOBAL_FLAGS_WITH_VALUE);\n if (parsed?.subcommand !== \"dlx\") {\n return null;\n }\n return parseNpxCommand(parsed.args);\n}\n\nfunction parseNpmExecCommand(tokens: string[]): { command: string; args: string[] } | null {\n const parsed = parseLauncherSubcommand(tokens, NPM_GLOBAL_FLAGS_WITH_VALUE);\n if (!parsed || !NPM_EXEC_SUBCOMMANDS.has(parsed.subcommand)) {\n return null;\n }\n return parseNpxCommand(parsed.args);\n}\n\nfunction resolvePmSubcommandContext(args: string[]): { subcommand: string; remaining: string[] } | null {\n let index = 0;\n while (index < args.length) {\n const token = args[index];\n if (token === \"--\") {\n index += 1;\n continue;\n }\n if (token.startsWith(\"-\")) {\n if (PM_GLOBAL_FLAGS_WITH_VALUE.has(token)) {\n index += 2;\n continue;\n }\n index += 1;\n continue;\n }\n return {\n subcommand: token,\n remaining: args.slice(index + 1),\n };\n }\n return null;\n}\n\nfunction firstPositionalToken(tokens: string[]): string | undefined {\n for (const token of tokens) {\n if (!token.startsWith(\"-\")) {\n return token;\n }\n }\n return undefined;\n}\n\nfunction looksLikePrefixedItemId(token: string, idPrefix: string): boolean {\n const normalizedPrefix = idPrefix.trim().toLowerCase().replace(/-+$/, \"\");\n if (normalizedPrefix.length === 0) {\n return false;\n }\n const normalized = token.trim().toLowerCase();\n if (!normalized.startsWith(`${normalizedPrefix}-`)) {\n return false;\n }\n return normalized.length > normalizedPrefix.length + 1;\n}\n\nfunction extractPmInvocationArgsFromSegment(segment: string): string[] | null {\n const rawTokens = segment.split(\" \").filter((token) => token.length > 0);\n const tokens = stripLeadingEnvAssignments(rawTokens);\n if (tokens.length === 0) {\n return null;\n }\n const [executable, ...args] = tokens;\n if (isPmExecutableToken(executable) || isPmCliScriptToken(executable)) {\n return args;\n }\n if (executable === \"node\" && args.length > 0 && isPmCliScriptToken(args[0])) {\n return args.slice(1);\n }\n if (executable === \"npx\") {\n const parsed = parseNpxCommand(args);\n if (parsed && (isPmExecutableToken(parsed.command) || isPmCliPackageToken(parsed.command))) {\n return parsed.args;\n }\n }\n if (executable === \"pnpm\") {\n const parsed = parsePnpmDlxCommand(args);\n if (parsed && (isPmExecutableToken(parsed.command) || isPmCliPackageToken(parsed.command))) {\n return parsed.args;\n }\n }\n if (executable === \"npm\") {\n const parsed = parseNpmExecCommand(args);\n if (parsed && (isPmExecutableToken(parsed.command) || isPmCliPackageToken(parsed.command))) {\n return parsed.args;\n }\n }\n return null;\n}\n\nfunction commandInvokesPmCli(command: string): boolean {\n const normalizedCommand = normalizeCommandForValidation(command);\n return splitNormalizedCommandSegments(normalizedCommand).some((segment) => extractPmInvocationArgsFromSegment(segment) !== null);\n}\n\nfunction commandInvokesPmTrackerReadCommand(command: string): boolean {\n const normalizedCommand = normalizeCommandForValidation(command);\n return splitNormalizedCommandSegments(normalizedCommand).some((segment) => {\n const invocationArgs = extractPmInvocationArgsFromSegment(segment);\n if (!invocationArgs) {\n return false;\n }\n const context = resolvePmSubcommandContext(invocationArgs);\n if (!context) {\n return false;\n }\n return PM_TRACKER_READ_SUBCOMMANDS.has(context.subcommand);\n });\n}\n\nexport function extractReferencedPmItemIdsFromCommand(command: string, idPrefix = \"pm\"): string[] {\n const normalizedCommand = normalizeCommandForValidation(command);\n const ids = new Set<string>();\n for (const segment of splitNormalizedCommandSegments(normalizedCommand)) {\n const invocationArgs = extractPmInvocationArgsFromSegment(segment);\n if (!invocationArgs) {\n continue;\n }\n const context = resolvePmSubcommandContext(invocationArgs);\n if (!context) {\n continue;\n }\n if (!PM_SUBCOMMANDS_WITH_ITEM_REFERENCE.has(context.subcommand)) {\n continue;\n }\n const candidate = firstPositionalToken(context.remaining);\n if (!candidate) {\n continue;\n }\n if (looksLikePrefixedItemId(candidate, idPrefix)) {\n ids.add(candidate);\n }\n }\n return [...ids].sort((left, right) => left.localeCompare(right));\n}\n\nfunction resolveDirectRunnerSubcommand(parsed: { subcommand: string; args: string[] } | null): string | undefined {\n if (!parsed) {\n return undefined;\n }\n if (!SCRIPT_RUN_SUBCOMMANDS.has(parsed.subcommand)) {\n return parsed.subcommand;\n }\n return parseLauncherSubcommand(parsed.args, SCRIPT_RUN_FLAGS_WITH_VALUE)?.subcommand;\n}\n\nfunction firstDirectTestRunnerSubcommand(executable: string, args: string[]): string | undefined {\n if (executable === \"npx\") {\n return parseNpxCommand(args)?.command;\n }\n if (executable === \"pnpm\") {\n return resolveDirectRunnerSubcommand(parseLauncherSubcommand(args, PNPM_GLOBAL_FLAGS_WITH_VALUE));\n }\n if (executable === \"npm\") {\n return resolveDirectRunnerSubcommand(parseLauncherSubcommand(args, NPM_GLOBAL_FLAGS_WITH_VALUE));\n }\n if (executable === \"yarn\") {\n return resolveDirectRunnerSubcommand(parseLauncherSubcommand(args, YARN_GLOBAL_FLAGS_WITH_VALUE));\n }\n if (executable === \"bun\") {\n return resolveDirectRunnerSubcommand(parseLauncherSubcommand(args, BUN_GLOBAL_FLAGS_WITH_VALUE));\n }\n return undefined;\n}\n\nfunction isDirectTestRunnerSubcommand(token: string | undefined): boolean {\n if (!token) {\n return false;\n }\n return token === \"vitest\" || token === \"test\" || token.startsWith(\"test:\");\n}\n\nfunction parsedLauncherInvokesRecursiveTestAll(parsed: { command: string; args: string[] } | null): boolean {\n if (!parsed) {\n return false;\n }\n if (!isPmExecutableToken(parsed.command) && !isPmCliPackageToken(parsed.command)) {\n return false;\n }\n return firstPmSubcommand(parsed.args) === \"test-all\";\n}\n\nfunction segmentInvokesRecursiveTestAll(segment: string): boolean {\n const rawTokens = segment.split(\" \").filter((token) => token.length > 0);\n const tokens = stripLeadingEnvAssignments(rawTokens);\n if (tokens.length === 0) {\n return false;\n }\n\n const [executable, ...args] = tokens;\n if (isPmExecutableToken(executable) || isPmCliScriptToken(executable)) {\n return firstPmSubcommand(args) === \"test-all\";\n }\n\n if (executable === \"node\" && args.length > 0 && isPmCliScriptToken(args[0])) {\n return firstPmSubcommand(args.slice(1)) === \"test-all\";\n }\n\n if (executable === \"npx\") {\n return parsedLauncherInvokesRecursiveTestAll(parseNpxCommand(args));\n }\n\n if (executable === \"pnpm\") {\n return parsedLauncherInvokesRecursiveTestAll(parsePnpmDlxCommand(args));\n }\n\n if (executable === \"npm\") {\n return parsedLauncherInvokesRecursiveTestAll(parseNpmExecCommand(args));\n }\n\n return false;\n}\n\nfunction invokesRecursiveTestAllCommand(command: string): boolean {\n const normalized = normalizeCommandForValidation(command);\n return splitNormalizedCommandSegments(normalized).some((segment) => segmentInvokesRecursiveTestAll(segment));\n}\n\nfunction assertNoRecursiveTestAllCommand(command: string): void {\n if (!invokesRecursiveTestAllCommand(command)) return;\n throw new PmCliError(\n 'Linked test commands must not invoke \"pm test-all\"; this creates recursive orchestration.',\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeCommandForValidation(command: string): string {\n return command\n .trim()\n .replaceAll(\"\\\\\", \"/\")\n .replaceAll('\"', \"\")\n .replaceAll(\"'\", \"\")\n .replaceAll(/\\s+/g, \" \")\n .toLowerCase();\n}\n\nfunction commandUsesSandboxRunner(normalizedCommand: string): boolean {\n return (\n normalizedCommand.includes(\"node scripts/run-tests.mjs \") ||\n normalizedCommand.endsWith(\"node scripts/run-tests.mjs\") ||\n normalizedCommand.includes(\"node ./scripts/run-tests.mjs \") ||\n normalizedCommand.endsWith(\"node ./scripts/run-tests.mjs\")\n );\n}\n\nfunction segmentHasExplicitSandboxEnv(normalizedSegment: string): boolean {\n const hasExplicitPmPath = /\\bpm_path\\s*=/.test(normalizedSegment) || /\\$env:pm_path\\s*=/.test(normalizedSegment);\n const hasExplicitPmGlobalPath =\n /\\bpm_global_path\\s*=/.test(normalizedSegment) || /\\$env:pm_global_path\\s*=/.test(normalizedSegment);\n return hasExplicitPmPath && hasExplicitPmGlobalPath;\n}\n\nfunction commandInvokesDirectTestRunner(normalizedCommand: string): boolean {\n const rawTokens = normalizedCommand.split(\" \").filter((token) => token.length > 0);\n const tokens = stripLeadingEnvAssignments(rawTokens);\n if (tokens.length === 0) {\n return false;\n }\n const [executable, ...args] = tokens;\n if (executable === \"vitest\" || executable.endsWith(\"/vitest\") || executable.endsWith(\"/vitest.mjs\")) {\n return true;\n }\n if (executable === \"node\") {\n return args[0] === \"--test\" || Boolean(args[0]?.endsWith(\"/vitest\") || args[0]?.endsWith(\"/vitest.mjs\"));\n }\n const subcommand = firstDirectTestRunnerSubcommand(executable, args);\n return isDirectTestRunnerSubcommand(subcommand);\n}\n\nfunction assertSandboxSafeTestRunnerCommand(command: string): void {\n const normalized = normalizeCommandForValidation(command);\n const segments = splitNormalizedCommandSegments(normalized);\n const hasUnsafeDirectRunnerSegment = segments.some(\n (segment) =>\n !commandUsesSandboxRunner(segment) &&\n commandInvokesDirectTestRunner(segment) &&\n !segmentHasExplicitSandboxEnv(segment),\n );\n\n if (!hasUnsafeDirectRunnerSegment) {\n return;\n }\n\n throw new PmCliError(\n 'Linked test runner commands must be sandbox-safe: use \"node scripts/run-tests.mjs <test|coverage>\" or explicitly set both PM_PATH and PM_GLOBAL_PATH.',\n EXIT_CODE.USAGE,\n );\n}\n\nfunction getRuntimeSafetySkipReason(command: string): string | undefined {\n if (!invokesRecursiveTestAllCommand(command)) return undefined;\n return 'Linked test command skipped: Linked test commands must not invoke \"pm test-all\"; this creates recursive orchestration.';\n}\n\nfunction parseAddEntries(raw: string[] | undefined): LinkedTest[] {\n if (!raw) return [];\n return raw.map((entry) => {\n const kv = parseCsvKv(entry, \"--add\");\n const command = kv.command?.trim() || undefined;\n const filePath = kv.path?.trim() || undefined;\n if (!command) {\n throw new PmCliError(\"--add requires command=<value> (path=<value> is optional metadata)\", EXIT_CODE.USAGE);\n }\n if (command) {\n assertNoRecursiveTestAllCommand(command);\n assertSandboxSafeTestRunnerCommand(command);\n }\n const timeoutSecondsRaw = kv.timeout_seconds?.trim();\n const timeoutAliasRaw = kv.timeout?.trim();\n if (timeoutSecondsRaw && timeoutAliasRaw && timeoutSecondsRaw !== timeoutAliasRaw) {\n throw new PmCliError(\"--add timeout and timeout_seconds must match when both are provided\", EXIT_CODE.USAGE);\n }\n const timeoutRaw = timeoutSecondsRaw ?? timeoutAliasRaw;\n const timeoutSeconds =\n timeoutRaw === undefined ? undefined : Math.floor(parseOptionalNumber(timeoutRaw, \"timeout_seconds\"));\n const envSet = parseLinkedTestEnvSetValue(kv.env_set?.trim(), \"--add\");\n const envClear = parseLinkedTestEnvClearValue(kv.env_clear?.trim(), \"--add\");\n const pmContextMode = parseLinkedTestContextModeValue(kv.pm_context_mode?.trim(), \"--add\");\n const sharedHostSafe = parseLinkedTestBooleanValue(kv.shared_host_safe?.trim(), \"--add\", \"shared_host_safe\");\n return {\n command,\n path: filePath,\n scope: ensureScope(kv.scope),\n timeout_seconds: timeoutSeconds,\n pm_context_mode: pmContextMode,\n env_set: envSet,\n env_clear: envClear,\n shared_host_safe: sharedHostSafe,\n assert_stdout_contains: parseLinkedTestStringList(kv.assert_stdout_contains?.trim()),\n assert_stdout_regex: parseLinkedTestRegexList(kv.assert_stdout_regex?.trim(), \"--add\", \"assert_stdout_regex\"),\n assert_stderr_contains: parseLinkedTestStringList(kv.assert_stderr_contains?.trim()),\n assert_stderr_regex: parseLinkedTestRegexList(kv.assert_stderr_regex?.trim(), \"--add\", \"assert_stderr_regex\"),\n assert_stdout_min_lines: parseLinkedTestMinLines(kv.assert_stdout_min_lines?.trim(), \"--add\"),\n assert_json_field_equals: parseLinkedTestAssertionEqualsMap(kv.assert_json_field_equals?.trim(), \"--add\"),\n assert_json_field_gte: parseLinkedTestAssertionGteMap(kv.assert_json_field_gte?.trim(), \"--add\"),\n note: kv.note?.trim() || undefined,\n };\n });\n}\n\nfunction parseRemoveEntries(raw: string[] | undefined): string[] {\n if (!raw) return [];\n return raw.map((entry) => {\n const trimmed = entry.trim();\n if (!trimmed) {\n throw new PmCliError(\"--remove requires command or path value\", EXIT_CODE.USAGE);\n }\n if (\n trimmed.includes(\"=\") ||\n /^(?:[-*+]\\s+)?(?:path|command)\\s*[:=]/i.test(trimmed) ||\n trimmed.startsWith(\"```\")\n ) {\n const kv = parseCsvKv(trimmed, \"--remove\");\n const value = kv.path ?? kv.command;\n if (!value?.trim()) {\n throw new PmCliError(\"--remove requires command=<value> and/or path=<value>\", EXIT_CODE.USAGE);\n }\n return value.trim();\n }\n return trimmed;\n });\n}\n\nfunction closeLinkedTestStdin(child: ChildProcess): void {\n // Force EOF on child stdin so non-interactive runs do not wait on input.\n try {\n child.stdin?.end();\n } catch {\n // Child stdin can already be closed depending on command startup timing.\n }\n}\n\nfunction summarizeLinkedTestCommand(command: string): string {\n const normalized = command.trim().replaceAll(/\\s+/g, \" \");\n if (normalized.length <= MAX_LINKED_TEST_COMMAND_LABEL_LENGTH) {\n return normalized;\n }\n return `${normalized.slice(0, MAX_LINKED_TEST_COMMAND_LABEL_LENGTH - 3)}...`;\n}\n\nfunction shouldEmitLinkedTestProgress(mode: LinkedTestProgressMode): boolean {\n /* c8 ignore start -- reserved for future explicit \"off\" mode wiring. */\n if (mode === \"off\") {\n return false;\n }\n /* c8 ignore stop */\n if (mode === \"always\") {\n return true;\n }\n return process.stderr.isTTY === true;\n}\n\nfunction emitLinkedTestProgress(message: string): void {\n try {\n process.stderr.write(`${message}\\n`);\n } catch {\n // Ignore transient stderr write failures.\n }\n}\n\nfunction beginLinkedTestProgress(context: LinkedTestProgressContext, mode: LinkedTestProgressMode): NodeJS.Timeout | null {\n if (!shouldEmitLinkedTestProgress(mode)) {\n return null;\n }\n const commandLabel = summarizeLinkedTestCommand(context.command);\n const startAt = Date.now();\n emitLinkedTestProgress(\n `[pm test] linked-test ${context.index}/${context.total} start timeout_ms=${context.timeoutMs} command=\"${commandLabel}\"`,\n );\n const heartbeat = setInterval(() => {\n const elapsedMs = Date.now() - startAt;\n emitLinkedTestProgress(\n `[pm test] linked-test ${context.index}/${context.total} running elapsed_ms=${elapsedMs} command=\"${commandLabel}\"`,\n );\n }, linkedTestHeartbeatIntervalMs());\n heartbeat.unref?.();\n return heartbeat;\n}\n\nfunction endLinkedTestProgress(\n context: LinkedTestProgressContext,\n executionResult: Pick<LinkedTestExecutionResult, \"timedOut\" | \"maxBufferExceeded\" | \"exitCode\" | \"signal\">,\n startedAt: number,\n mode: LinkedTestProgressMode,\n): void {\n if (!shouldEmitLinkedTestProgress(mode)) {\n return;\n }\n const commandLabel = summarizeLinkedTestCommand(context.command);\n const elapsedMs = Date.now() - startedAt;\n const failed = executionResult.timedOut || executionResult.maxBufferExceeded || executionResult.exitCode !== 0;\n const statusLabel = failed ? \"failed\" : \"passed\";\n const reasonTokens: string[] = [];\n if (executionResult.timedOut) {\n reasonTokens.push(\"reason=timeout\");\n }\n if (executionResult.maxBufferExceeded) {\n reasonTokens.push(\"reason=max_buffer\");\n }\n if (executionResult.signal) {\n reasonTokens.push(`signal=${executionResult.signal}`);\n }\n const exitLabel = executionResult.exitCode === null ? \"null\" : String(executionResult.exitCode);\n const reasonSuffix = reasonTokens.length > 0 ? ` ${reasonTokens.join(\" \")}` : \"\";\n emitLinkedTestProgress(\n `[pm test] linked-test ${context.index}/${context.total} end status=${statusLabel} exit_code=${exitLabel} elapsed_ms=${elapsedMs}${reasonSuffix} command=\"${commandLabel}\"`,\n );\n}\n\n/* c8 ignore start -- process-tree teardown paths are highly platform-dependent. */\nasync function killProcessTree(pid: number): Promise<void> {\n if (!Number.isInteger(pid) || pid <= 0) {\n return;\n }\n if (process.platform === \"win32\") {\n await new Promise<void>((resolve) => {\n const killer = spawn(\"taskkill\", [\"/pid\", String(pid), \"/T\", \"/F\"], {\n stdio: \"ignore\",\n windowsHide: true,\n });\n killer.on(\"error\", () => resolve());\n killer.on(\"close\", () => resolve());\n });\n return;\n }\n try {\n process.kill(-pid, \"SIGKILL\");\n return;\n } catch {\n // Fall back to direct child kill when no process group is available.\n }\n try {\n process.kill(pid, \"SIGKILL\");\n } catch {\n // The process can already be gone.\n }\n}\n/* c8 ignore stop */\n\nasync function runLinkedTestCommand(\n command: string,\n timeoutMs: number,\n env: NodeJS.ProcessEnv,\n progressContext: LinkedTestProgressContext,\n progressMode: LinkedTestProgressMode,\n): Promise<LinkedTestExecutionResult> {\n const startedAt = Date.now();\n const heartbeat = beginLinkedTestProgress(progressContext, progressMode);\n const child = spawn(command, {\n cwd: process.cwd(),\n env,\n shell: true,\n windowsHide: true,\n detached: process.platform !== \"win32\",\n stdio: [\"pipe\", \"pipe\", \"pipe\"],\n });\n closeLinkedTestStdin(child);\n\n let stdout = \"\";\n let stderr = \"\";\n let stdoutBytes = 0;\n let stderrBytes = 0;\n let timedOut = false;\n let maxBufferExceeded = false;\n let spawnError: string | undefined;\n let forceKillTimer: NodeJS.Timeout | null = null;\n let timedOutTimer: NodeJS.Timeout | null = null;\n let terminationRequested = false;\n\n const clearTimers = (): void => {\n if (heartbeat) {\n clearInterval(heartbeat);\n }\n if (timedOutTimer) {\n clearTimeout(timedOutTimer);\n timedOutTimer = null;\n }\n if (forceKillTimer) {\n clearTimeout(forceKillTimer);\n forceKillTimer = null;\n }\n };\n\n /* c8 ignore start -- timeout termination branches depend on scheduler/process-group timing. */\n const requestTermination = async (): Promise<void> => {\n if (terminationRequested) {\n return;\n }\n terminationRequested = true;\n const pid = child.pid;\n if (!pid || pid <= 0) {\n try {\n child.kill(\"SIGTERM\");\n } catch {\n // Child can already be closed.\n }\n return;\n }\n if (process.platform === \"win32\") {\n await killProcessTree(pid);\n return;\n }\n try {\n process.kill(-pid, \"SIGTERM\");\n } catch {\n /* c8 ignore next 4 -- platform-specific process-group fallback path. */\n try {\n child.kill(\"SIGTERM\");\n } catch {\n // Child can already be closed.\n }\n }\n /* c8 ignore next 3 -- exercised only when timeout escalation triggers force-kill fallback. */\n forceKillTimer = setTimeout(() => {\n void killProcessTree(pid);\n }, linkedTestTimeoutForceKillDelayMs());\n forceKillTimer.unref?.();\n };\n /* c8 ignore stop */\n\n const appendChunk = (chunk: Buffer | string, target: \"stdout\" | \"stderr\"): void => {\n const text = typeof chunk === \"string\" ? chunk : chunk.toString(\"utf8\");\n const bytes = Buffer.byteLength(text);\n if (target === \"stdout\") {\n stdoutBytes += bytes;\n if (stdoutBytes <= TEST_OUTPUT_MAX_BUFFER_BYTES) {\n stdout += text;\n }\n } else {\n stderrBytes += bytes;\n if (stderrBytes <= TEST_OUTPUT_MAX_BUFFER_BYTES) {\n stderr += text;\n }\n }\n if (!maxBufferExceeded && (stdoutBytes > TEST_OUTPUT_MAX_BUFFER_BYTES || stderrBytes > TEST_OUTPUT_MAX_BUFFER_BYTES)) {\n maxBufferExceeded = true;\n void requestTermination();\n }\n };\n\n child.stdout?.on(\"data\", (chunk) => appendChunk(chunk, \"stdout\"));\n child.stderr?.on(\"data\", (chunk) => appendChunk(chunk, \"stderr\"));\n /* c8 ignore next 5 -- shell spawn error callbacks are non-deterministic across platforms. */\n child.on(\"error\", (error) => {\n spawnError = error.message;\n });\n\n /* c8 ignore next 4 -- callback scheduling timing is non-deterministic under coverage instrumentation. */\n timedOutTimer = setTimeout(() => {\n timedOut = true;\n void requestTermination();\n }, timeoutMs);\n timedOutTimer.unref?.();\n\n const { code, signal } = await new Promise<{ code: number | null; signal: NodeJS.Signals | null }>((resolve) => {\n child.on(\"close\", (closeCode, closeSignal) => {\n resolve({\n code: closeCode,\n signal: closeSignal,\n });\n });\n });\n clearTimers();\n const executionResult: LinkedTestExecutionResult = {\n stdout,\n stderr,\n exitCode: code,\n signal,\n timedOut,\n maxBufferExceeded,\n spawnError,\n };\n endLinkedTestProgress(progressContext, executionResult, startedAt, progressMode);\n return executionResult;\n}\n\nfunction formatLinkedTestExecutionError(result: LinkedTestExecutionResult, timeoutMs: number): string {\n const details: string[] = [];\n if (result.maxBufferExceeded) {\n details.push(\n `Linked test output exceeded maxBuffer=${TEST_OUTPUT_MAX_BUFFER_BYTES} bytes. Reduce output volume or split the command.`,\n );\n }\n if (result.timedOut && timeoutMs > 0) {\n details.push(`Linked test timed out after ${timeoutMs}ms.`);\n }\n const signalMessage = result.signal ? `Linked test command terminated by signal ${result.signal}.` : undefined;\n const baseMessage = result.spawnError?.trim() || signalMessage || \"Linked test command failed.\";\n if (details.length === 0) {\n return baseMessage;\n }\n return `${baseMessage} ${details.join(\" \")}`;\n}\n\nfunction hasInfraCollisionSignal(result: Pick<LinkedTestExecutionResult, \"stdout\" | \"stderr\" | \"spawnError\">): boolean {\n const combined = [result.spawnError ?? \"\", result.stderr, result.stdout].join(\"\\n\");\n return LINKED_TEST_INFRA_COLLISION_PATTERNS.some((pattern) => pattern.test(combined));\n}\n\nexport function classifyLinkedTestFailure(\n result: Pick<LinkedTestExecutionResult, \"stdout\" | \"stderr\" | \"spawnError\" | \"signal\" | \"timedOut\" | \"maxBufferExceeded\">,\n): LinkedTestFailureCategory {\n if (hasInfraCollisionSignal(result)) {\n return \"infra_collision\";\n }\n if (result.timedOut) {\n return \"timeout\";\n }\n if (result.maxBufferExceeded) {\n return \"max_buffer\";\n }\n if (result.spawnError) {\n return \"spawn_error\";\n }\n if (result.signal) {\n return \"signal\";\n }\n return \"assertion_failure\";\n}\n\nfunction createEmptyFailureCategoryCounts(): Record<LinkedTestFailureCategory, number> {\n return {\n infra_collision: 0,\n assertion_failure: 0,\n empty_run: 0,\n timeout: 0,\n max_buffer: 0,\n spawn_error: 0,\n signal: 0,\n };\n}\n\nexport function countFailureCategories(runResults: TestRunResult[]): Record<LinkedTestFailureCategory, number> {\n const counts = createEmptyFailureCategoryCounts();\n for (const result of runResults) {\n if (result.status !== \"failed\" || !result.failure_category) {\n continue;\n }\n counts[result.failure_category] += 1;\n }\n return counts;\n}\n\nfunction applyEnvDirectiveStage(env: NodeJS.ProcessEnv, directives: Pick<LinkedTestRuntimeDirectives, \"env_set\" | \"env_clear\">): void {\n for (const [key, value] of Object.entries(directives.env_set)) {\n if (LINKED_TEST_PROTECTED_ENV_KEYS.has(key.toUpperCase())) {\n continue;\n }\n env[key] = value;\n }\n for (const key of directives.env_clear) {\n if (LINKED_TEST_PROTECTED_ENV_KEYS.has(key.toUpperCase())) {\n continue;\n }\n delete env[key];\n }\n}\n\nfunction applySharedHostSafeDefaults(env: NodeJS.ProcessEnv): void {\n if (env.PORT === undefined) {\n env.PORT = \"0\";\n }\n if (env.HOST === undefined) {\n env.HOST = \"127.0.0.1\";\n }\n if (env.PM_SHARED_HOST_SAFE === undefined) {\n env.PM_SHARED_HOST_SAFE = \"1\";\n }\n if (env.PLAYWRIGHT_HTML_OPEN === undefined) {\n env.PLAYWRIGHT_HTML_OPEN = \"never\";\n }\n if (env.PW_TEST_HTML_REPORT_OPEN === undefined) {\n env.PW_TEST_HTML_REPORT_OPEN = \"never\";\n }\n}\n\nfunction resolveEffectiveLinkedTestDirectives(\n runtimeDirectives: LinkedTestRuntimeDirectives,\n linkedTest: LinkedTest,\n): LinkedTestRuntimeDirectives {\n const envSet = { ...runtimeDirectives.env_set, ...(linkedTest.env_set ?? {}) };\n const envClear = [...new Set([...runtimeDirectives.env_clear, ...(linkedTest.env_clear ?? [])])];\n const sharedHostSafe = linkedTest.shared_host_safe ?? runtimeDirectives.shared_host_safe;\n return {\n env_set: envSet,\n env_clear: envClear,\n shared_host_safe: sharedHostSafe,\n };\n}\n\nfunction resolveRuntimeDirectives(\n envSetEntries: string[] | undefined,\n envClearEntries: string[] | undefined,\n sharedHostSafe: boolean | undefined,\n): LinkedTestRuntimeDirectives {\n return {\n env_set: mergeEnvSetDirectives(envSetEntries, \"--env-set\"),\n env_clear: mergeEnvClearDirectives(envClearEntries, \"--env-clear\"),\n shared_host_safe: sharedHostSafe === true,\n };\n}\n\nasync function copyIntoSandboxIfPresent(sourcePath: string, targetPath: string, recursive = false): Promise<void> {\n if (!(await pathExists(sourcePath))) {\n return;\n }\n await mkdir(path.dirname(targetPath), { recursive: true });\n if (recursive) {\n await cp(sourcePath, targetPath, { recursive: true, force: true });\n return;\n }\n await cp(sourcePath, targetPath, { force: true });\n}\n\nasync function seedLinkedTestSandbox(\n sandboxPmPath: string,\n sandboxGlobalPath: string,\n sourceRoots: LinkedTestSandboxSourceRoots,\n): Promise<void> {\n await copyIntoSandboxIfPresent(getSettingsPath(sourceRoots.projectPmRoot), getSettingsPath(sandboxPmPath));\n await copyIntoSandboxIfPresent(\n path.join(sourceRoots.projectPmRoot, \"extensions\"),\n path.join(sandboxPmPath, \"extensions\"),\n true,\n );\n await copyIntoSandboxIfPresent(getSettingsPath(sourceRoots.globalPmRoot), getSettingsPath(sandboxGlobalPath));\n await copyIntoSandboxIfPresent(\n path.join(sourceRoots.globalPmRoot, \"extensions\"),\n path.join(sandboxGlobalPath, \"extensions\"),\n true,\n );\n}\n\nasync function seedLinkedTestTrackerData(sourceRoot: string, sandboxRoot: string): Promise<void> {\n if (!(await pathExists(sourceRoot))) {\n return;\n }\n const entries = await readdir(sourceRoot, { withFileTypes: true });\n for (const entry of entries) {\n if (LINKED_TEST_TRACKER_DIRS_TO_SKIP.has(entry.name)) {\n continue;\n }\n const sourcePath = path.join(sourceRoot, entry.name);\n const targetPath = path.join(sandboxRoot, entry.name);\n if (entry.isDirectory()) {\n await copyIntoSandboxIfPresent(sourcePath, targetPath, true);\n continue;\n }\n if (entry.isFile()) {\n await copyIntoSandboxIfPresent(sourcePath, targetPath);\n }\n }\n}\n\nasync function countLinkedTestItemFiles(pmRoot: string): Promise<number> {\n if (!(await pathExists(pmRoot))) {\n return 0;\n }\n let total = 0;\n const entries = await readdir(pmRoot, { withFileTypes: true });\n for (const entry of entries) {\n if (!entry.isDirectory() || LINKED_TEST_ITEM_COUNT_DIRS_TO_SKIP.has(entry.name)) {\n continue;\n }\n const folderPath = path.join(pmRoot, entry.name);\n let files;\n try {\n files = await readdir(folderPath, { withFileTypes: true });\n } catch {\n continue;\n }\n for (const file of files) {\n if (!file.isFile()) {\n continue;\n }\n if (ITEM_FILE_EXTENSIONS.some((extension) => file.name.toLowerCase().endsWith(extension))) {\n total += 1;\n }\n }\n }\n return total;\n}\n\nexport function resolveLinkedTestFailureExitCode(\n execution: Pick<LinkedTestExecutionResult, \"exitCode\" | \"timedOut\" | \"maxBufferExceeded\">,\n): number {\n const rawExitCode = typeof execution.exitCode === \"number\" ? execution.exitCode : 1;\n if ((execution.timedOut || execution.maxBufferExceeded) && rawExitCode === 0) {\n return 1;\n }\n return rawExitCode;\n}\n\nfunction splitJsonPathSegments(fieldPath: string): Array<string | number> {\n const segments: Array<string | number> = [];\n const tokens = fieldPath.match(/[^.[\\]]+|\\[\\d+\\]/g) ?? [];\n for (const token of tokens) {\n if (token.startsWith(\"[\") && token.endsWith(\"]\")) {\n const parsedIndex = Number.parseInt(token.slice(1, -1), 10);\n if (!Number.isInteger(parsedIndex) || parsedIndex < 0) {\n return [];\n }\n segments.push(parsedIndex);\n continue;\n }\n segments.push(token);\n }\n return segments;\n}\n\nfunction readJsonPathValue(root: unknown, fieldPath: string): { found: boolean; value: unknown } {\n const normalizedPath = fieldPath.trim();\n if (normalizedPath.length === 0) {\n return { found: false, value: undefined };\n }\n const segments = splitJsonPathSegments(normalizedPath);\n if (segments.length === 0) {\n return { found: false, value: undefined };\n }\n let current: unknown = root;\n for (const segment of segments) {\n if (typeof segment === \"number\") {\n if (!Array.isArray(current) || segment >= current.length) {\n return { found: false, value: undefined };\n }\n current = current[segment];\n continue;\n }\n if (typeof current !== \"object\" || current === null || !(segment in current)) {\n return { found: false, value: undefined };\n }\n current = (current as Record<string, unknown>)[segment];\n }\n return { found: true, value: current };\n}\n\nfunction parseAssertionLiteral(raw: string): unknown {\n const trimmed = raw.trim();\n if (trimmed === \"true\") {\n return true;\n }\n if (trimmed === \"false\") {\n return false;\n }\n if (trimmed === \"null\") {\n return null;\n }\n const numeric = Number(trimmed);\n if (trimmed.length > 0 && Number.isFinite(numeric)) {\n return numeric;\n }\n if ((trimmed.startsWith(\"{\") && trimmed.endsWith(\"}\")) || (trimmed.startsWith(\"[\") && trimmed.endsWith(\"]\"))) {\n try {\n return JSON.parse(trimmed) as unknown;\n } catch {\n // Fall back to string comparison for malformed JSON literals.\n }\n }\n return trimmed;\n}\n\nfunction compareAssertionValues(actual: unknown, expected: unknown): boolean {\n if (\n typeof actual === \"object\" &&\n actual !== null &&\n typeof expected === \"object\" &&\n expected !== null\n ) {\n return JSON.stringify(actual) === JSON.stringify(expected);\n }\n return Object.is(actual, expected);\n}\n\nfunction evaluateLinkedTestAssertions(linkedTest: LinkedTest, stdout: string, stderr: string): string[] {\n const failures: string[] = [];\n for (const expected of linkedTest.assert_stdout_contains ?? []) {\n if (!stdout.includes(expected)) {\n failures.push(`stdout missing required text: \"${expected}\"`);\n }\n }\n for (const pattern of linkedTest.assert_stdout_regex ?? []) {\n try {\n const regex = new RegExp(pattern, \"m\");\n if (!regex.test(stdout)) {\n failures.push(`stdout failed regex assertion: /${pattern}/m`);\n }\n } catch (error: unknown) {\n failures.push(`stdout regex assertion is invalid: /${pattern}/ (${error instanceof Error ? error.message : String(error)})`);\n }\n }\n for (const expected of linkedTest.assert_stderr_contains ?? []) {\n if (!stderr.includes(expected)) {\n failures.push(`stderr missing required text: \"${expected}\"`);\n }\n }\n for (const pattern of linkedTest.assert_stderr_regex ?? []) {\n try {\n const regex = new RegExp(pattern, \"m\");\n if (!regex.test(stderr)) {\n failures.push(`stderr failed regex assertion: /${pattern}/m`);\n }\n } catch (error: unknown) {\n failures.push(`stderr regex assertion is invalid: /${pattern}/ (${error instanceof Error ? error.message : String(error)})`);\n }\n }\n if (typeof linkedTest.assert_stdout_min_lines === \"number\") {\n const lineCount = stdout\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter((line) => line.length > 0).length;\n if (lineCount < linkedTest.assert_stdout_min_lines) {\n failures.push(`stdout line count ${lineCount} is below required minimum ${linkedTest.assert_stdout_min_lines}`);\n }\n }\n\n const jsonEqualsAssertions = linkedTest.assert_json_field_equals ?? {};\n const jsonGteAssertions = linkedTest.assert_json_field_gte ?? {};\n const needsJsonAssertions = Object.keys(jsonEqualsAssertions).length > 0 || Object.keys(jsonGteAssertions).length > 0;\n if (!needsJsonAssertions) {\n return failures;\n }\n\n let parsedJson: unknown;\n try {\n parsedJson = JSON.parse(stdout);\n } catch (error: unknown) {\n failures.push(\n `stdout is not valid JSON for assert_json_field_* checks: ${error instanceof Error ? error.message : String(error)}`,\n );\n return failures;\n }\n\n for (const [fieldPath, expectedRaw] of Object.entries(jsonEqualsAssertions)) {\n const resolved = readJsonPathValue(parsedJson, fieldPath);\n if (!resolved.found) {\n failures.push(`assert_json_field_equals missing path \"${fieldPath}\"`);\n continue;\n }\n const expected = parseAssertionLiteral(expectedRaw);\n if (!compareAssertionValues(resolved.value, expected)) {\n failures.push(\n `assert_json_field_equals mismatch at \"${fieldPath}\" (expected=${JSON.stringify(expected)} actual=${JSON.stringify(resolved.value)})`,\n );\n }\n }\n\n for (const [fieldPath, expectedMinimum] of Object.entries(jsonGteAssertions)) {\n const resolved = readJsonPathValue(parsedJson, fieldPath);\n if (!resolved.found) {\n failures.push(`assert_json_field_gte missing path \"${fieldPath}\"`);\n continue;\n }\n if (typeof resolved.value !== \"number\" || !Number.isFinite(resolved.value)) {\n failures.push(`assert_json_field_gte path \"${fieldPath}\" resolved to non-numeric value`);\n continue;\n }\n if (resolved.value < expectedMinimum) {\n failures.push(`assert_json_field_gte failed at \"${fieldPath}\" (expected >= ${expectedMinimum}, actual ${resolved.value})`);\n }\n }\n\n return failures;\n}\n\nconst EMPTY_LINKED_TEST_RUN_PATTERNS: Array<{ code: string; regex: RegExp }> = [\n { code: \"no_projects_matched_filters\", regex: /\\bNo projects matched the filters\\b/i },\n { code: \"no_test_files_found\", regex: /\\bNo test files found\\b/i },\n { code: \"no_tests_found\", regex: /\\bNo tests found\\b/i },\n { code: \"no_matching_tests\", regex: /\\bNo matching tests?\\b/i },\n { code: \"collected_zero_items\", regex: /\\bcollected 0 items?\\b/i },\n];\n\nfunction detectEmptyLinkedTestRun(stdout: string, stderr: string): string | null {\n const combined = `${stdout}\\n${stderr}`;\n for (const pattern of EMPTY_LINKED_TEST_RUN_PATTERNS) {\n if (pattern.regex.test(combined)) {\n return pattern.code;\n }\n }\n return null;\n}\n\nexport async function runLinkedTests(\n tests: LinkedTest[],\n defaultTimeoutSeconds: number | undefined,\n options?: {\n progress?: boolean;\n sourceRoots?: LinkedTestSandboxSourceRoots;\n envSet?: string[];\n envClear?: string[];\n sharedHostSafe?: boolean;\n pmContext?: string;\n overrideLinkedPmContext?: boolean;\n failOnContextMismatch?: boolean;\n failOnEmptyTestRun?: boolean;\n requireAssertionsForPm?: boolean;\n checkContext?: boolean;\n autoPmContext?: boolean;\n },\n): Promise<TestRunResult[]> {\n const results: TestRunResult[] = [];\n const sandboxRoot = await mkdtemp(path.join(tmpdir(), \"pm-linked-test-\"));\n const schemaSandboxPmPath = path.join(sandboxRoot, \"schema\", \"project\", \".agents\", \"pm\");\n const schemaSandboxGlobalPath = path.join(sandboxRoot, \"schema\", \"global\");\n const trackerSandboxPmPath = path.join(sandboxRoot, \"tracker\", \"project\", \".agents\", \"pm\");\n const trackerSandboxGlobalPath = path.join(sandboxRoot, \"tracker\", \"global\");\n const runLevelPmContextMode = parsePmContextMode(options?.pmContext);\n const progressMode: LinkedTestProgressMode = options?.progress === true ? \"always\" : \"auto\";\n const runtimeDirectives = resolveRuntimeDirectives(options?.envSet, options?.envClear, options?.sharedHostSafe);\n let sourceProjectItemCount = 0;\n let sourceGlobalItemCount = 0;\n let schemaSandboxProjectItemCount = 0;\n let schemaSandboxGlobalItemCount = 0;\n let trackerSandboxProjectItemCount = 0;\n let trackerSandboxGlobalItemCount = 0;\n const sourceRoots = options?.sourceRoots;\n const projectExtensionsSeeded = Boolean(sourceRoots);\n const globalExtensionsSeeded = Boolean(sourceRoots);\n\n try {\n await runInit(undefined, { path: schemaSandboxPmPath });\n await runInit(undefined, { path: schemaSandboxGlobalPath });\n await runInit(undefined, { path: trackerSandboxPmPath });\n await runInit(undefined, { path: trackerSandboxGlobalPath });\n if (sourceRoots) {\n await seedLinkedTestSandbox(schemaSandboxPmPath, schemaSandboxGlobalPath, sourceRoots);\n await seedLinkedTestSandbox(trackerSandboxPmPath, trackerSandboxGlobalPath, sourceRoots);\n await seedLinkedTestTrackerData(sourceRoots.projectPmRoot, trackerSandboxPmPath);\n await seedLinkedTestTrackerData(sourceRoots.globalPmRoot, trackerSandboxGlobalPath);\n sourceProjectItemCount = await countLinkedTestItemFiles(sourceRoots.projectPmRoot);\n sourceGlobalItemCount = await countLinkedTestItemFiles(sourceRoots.globalPmRoot);\n }\n schemaSandboxProjectItemCount = await countLinkedTestItemFiles(schemaSandboxPmPath);\n schemaSandboxGlobalItemCount = await countLinkedTestItemFiles(schemaSandboxGlobalPath);\n trackerSandboxProjectItemCount = await countLinkedTestItemFiles(trackerSandboxPmPath);\n trackerSandboxGlobalItemCount = await countLinkedTestItemFiles(trackerSandboxGlobalPath);\n\n const buildExecutionContext = (\n isPmCommand: boolean,\n isPmTrackerReadCommand: boolean,\n requestedPmContextMode: LinkedTestPmContextMode,\n effectivePmContextMode: ResolvedLinkedTestPmContextMode,\n autoPmContextApplied: boolean,\n ): NonNullable<TestRunResult[\"execution_context\"]> => {\n const selectedSandboxProjectPmPath = effectivePmContextMode === \"tracker\" ? trackerSandboxPmPath : schemaSandboxPmPath;\n const selectedSandboxGlobalPmPath =\n effectivePmContextMode === \"tracker\" ? trackerSandboxGlobalPath : schemaSandboxGlobalPath;\n const selectedSandboxProjectItemCount =\n effectivePmContextMode === \"tracker\" ? trackerSandboxProjectItemCount : schemaSandboxProjectItemCount;\n const selectedSandboxGlobalItemCount =\n effectivePmContextMode === \"tracker\" ? trackerSandboxGlobalItemCount : schemaSandboxGlobalItemCount;\n const mismatchDetected = isPmCommand && sourceProjectItemCount !== selectedSandboxProjectItemCount;\n return {\n requested_pm_context_mode: requestedPmContextMode,\n pm_context_mode: effectivePmContextMode,\n auto_pm_context_applied: autoPmContextApplied,\n is_pm_command: isPmCommand,\n is_pm_tracker_read_command: isPmTrackerReadCommand,\n source_project_pm_path: sourceRoots?.projectPmRoot ?? \"\",\n sandbox_project_pm_path: selectedSandboxProjectPmPath,\n source_global_pm_path: sourceRoots?.globalPmRoot ?? \"\",\n sandbox_global_pm_path: selectedSandboxGlobalPmPath,\n source_project_item_count: sourceProjectItemCount,\n sandbox_project_item_count: selectedSandboxProjectItemCount,\n source_global_item_count: sourceGlobalItemCount,\n sandbox_global_item_count: selectedSandboxGlobalItemCount,\n mismatch_detected: mismatchDetected,\n project_extensions_seeded: projectExtensionsSeeded,\n global_extensions_seeded: globalExtensionsSeeded,\n };\n };\n\n for (let index = 0; index < tests.length; index += 1) {\n const linkedTest = tests[index];\n const linkedOverridePmContextMode =\n typeof linkedTest.pm_context_mode === \"string\" && linkedTest.pm_context_mode.trim().length > 0\n ? parsePmContextMode(linkedTest.pm_context_mode)\n : undefined;\n const isPmCommand =\n typeof linkedTest.command === \"string\" && linkedTest.command.length > 0\n ? commandInvokesPmCli(linkedTest.command)\n : false;\n const isPmTrackerReadCommand =\n isPmCommand && typeof linkedTest.command === \"string\" && linkedTest.command.length > 0\n ? commandInvokesPmTrackerReadCommand(linkedTest.command)\n : false;\n const autoPmContextApplied = options?.autoPmContext === true && isPmTrackerReadCommand;\n const requestedPmContextMode = autoPmContextApplied\n ? \"auto\"\n : resolveLinkedTestRequestedContextMode(linkedTest, runLevelPmContextMode, options?.overrideLinkedPmContext === true);\n const effectivePmContextMode = resolveLinkedTestEffectiveContextMode(requestedPmContextMode, isPmTrackerReadCommand);\n const executionContext = buildExecutionContext(\n isPmCommand,\n isPmTrackerReadCommand,\n requestedPmContextMode,\n effectivePmContextMode,\n autoPmContextApplied,\n );\n if (!linkedTest.command) {\n results.push({\n command: linkedTest.command,\n path: linkedTest.path,\n status: \"skipped\",\n execution_context: executionContext,\n error: \"No command configured for this linked test.\",\n });\n continue;\n }\n const runtimeSafetySkipReason = getRuntimeSafetySkipReason(linkedTest.command);\n if (runtimeSafetySkipReason) {\n results.push({\n command: linkedTest.command,\n path: linkedTest.path,\n status: \"skipped\",\n execution_context: executionContext,\n error: runtimeSafetySkipReason,\n });\n continue;\n }\n const failOnMismatchByDefault =\n executionContext.pm_context_mode === \"schema\" &&\n executionContext.is_pm_tracker_read_command &&\n executionContext.mismatch_detected;\n const failOnMismatchByFlag =\n options?.failOnContextMismatch === true && executionContext.is_pm_command && executionContext.mismatch_detected;\n if (failOnMismatchByDefault || failOnMismatchByFlag) {\n const mismatchHint = buildPmContextMismatchHint({\n executionContext,\n runLevelPmContextMode,\n linkedOverridePmContextMode,\n });\n const mismatchPrefix = options?.checkContext === true ? \"Linked test preflight PM context mismatch detected\" : \"Linked test PM context mismatch detected\";\n results.push({\n command: linkedTest.command,\n path: linkedTest.path,\n status: \"failed\",\n exit_code: 1,\n failure_category: \"assertion_failure\",\n execution_context: executionContext,\n error:\n `${mismatchPrefix} (source_project_items=${executionContext.source_project_item_count}, ` +\n `sandbox_project_items=${executionContext.sandbox_project_item_count}).${mismatchHint}`,\n });\n continue;\n }\n if (options?.requireAssertionsForPm === true && executionContext.is_pm_command && !hasLinkedTestAssertions(linkedTest)) {\n results.push({\n command: linkedTest.command,\n path: linkedTest.path,\n status: \"failed\",\n exit_code: 1,\n failure_category: \"assertion_failure\",\n execution_context: executionContext,\n error: \"Linked PM command requires assertions when --require-assertions-for-pm is enabled.\",\n });\n continue;\n }\n const timeoutMs = ((linkedTest.timeout_seconds ?? defaultTimeoutSeconds ?? 120) * 1000);\n const effectiveDirectives = resolveEffectiveLinkedTestDirectives(runtimeDirectives, linkedTest);\n const executionEnv: NodeJS.ProcessEnv = { ...process.env };\n applyEnvDirectiveStage(executionEnv, runtimeDirectives);\n applyEnvDirectiveStage(executionEnv, {\n env_set: linkedTest.env_set ?? {},\n env_clear: linkedTest.env_clear ?? [],\n });\n if (effectiveDirectives.shared_host_safe) {\n applySharedHostSafeDefaults(executionEnv);\n }\n executionEnv.FORCE_COLOR = \"0\";\n executionEnv.PM_PATH = executionContext.sandbox_project_pm_path;\n executionEnv.PM_GLOBAL_PATH = executionContext.sandbox_global_pm_path;\n const execution = await runLinkedTestCommand(\n linkedTest.command,\n timeoutMs,\n executionEnv,\n {\n index: index + 1,\n total: tests.length,\n timeoutMs,\n command: linkedTest.command,\n },\n progressMode,\n );\n const passed = execution.exitCode === 0 && !execution.timedOut && !execution.maxBufferExceeded;\n if (passed) {\n if (options?.failOnEmptyTestRun === true) {\n const emptyRunSignal = detectEmptyLinkedTestRun(execution.stdout, execution.stderr);\n if (emptyRunSignal) {\n results.push({\n command: linkedTest.command,\n path: linkedTest.path,\n status: \"failed\",\n exit_code: 1,\n failure_category: \"empty_run\",\n execution_context: executionContext,\n stdout: execution.stdout,\n stderr: execution.stderr,\n error:\n `Linked test reported an empty test run (${emptyRunSignal}) while --fail-on-empty-test-run is enabled. ` +\n \"Update test selection or disable --fail-on-empty-test-run for this run.\",\n });\n continue;\n }\n }\n const assertionFailures = evaluateLinkedTestAssertions(linkedTest, execution.stdout, execution.stderr);\n if (assertionFailures.length > 0) {\n results.push({\n command: linkedTest.command,\n path: linkedTest.path,\n status: \"failed\",\n exit_code: 1,\n failure_category: \"assertion_failure\",\n execution_context: executionContext,\n stdout: execution.stdout,\n stderr: execution.stderr,\n error: `Linked test assertion(s) failed: ${assertionFailures.join(\"; \")}`,\n });\n continue;\n }\n results.push({\n command: linkedTest.command,\n path: linkedTest.path,\n status: \"passed\",\n exit_code: 0,\n execution_context: executionContext,\n stdout: execution.stdout,\n stderr: execution.stderr,\n });\n continue;\n }\n const failureCategory = classifyLinkedTestFailure(execution);\n results.push({\n command: linkedTest.command,\n path: linkedTest.path,\n status: \"failed\",\n exit_code: resolveLinkedTestFailureExitCode(execution),\n failure_category: failureCategory,\n execution_context: executionContext,\n stdout: execution.stdout,\n stderr: execution.stderr,\n error: formatLinkedTestExecutionError(execution, timeoutMs),\n });\n }\n } finally {\n await rm(sandboxRoot, { recursive: true, force: true });\n }\n return results;\n}\n\nexport async function runTest(id: string, options: TestCommandOptions, global: GlobalOptions): Promise<TestResult> {\n const stdinResolver = createStdinTokenResolver();\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n const settings = await readSettings(pmRoot);\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const resolvedAdds = await stdinResolver.resolveList(options.add, \"--add\");\n const resolvedRemoves = await stdinResolver.resolveList(options.remove, \"--remove\");\n const adds = parseAddEntries(resolvedAdds);\n const removes = parseRemoveEntries(resolvedRemoves);\n const shouldMutate = adds.length > 0 || removes.length > 0;\n\n let tests: LinkedTest[] = [];\n let itemId: string;\n\n if (shouldMutate) {\n const author = resolveAuthor(options.author, settings.author_default);\n const result = await mutateItem({\n pmRoot,\n settings,\n id,\n op: \"tests_add\",\n author,\n message: options.message,\n force: options.force,\n mutate(document) {\n const next = [...(document.front_matter.tests ?? [])];\n for (const add of adds) {\n const exists = next.some(\n (entry) =>\n entry.command === add.command &&\n entry.path === add.path &&\n entry.scope === add.scope &&\n entry.pm_context_mode === add.pm_context_mode,\n );\n if (!exists) {\n next.push(add);\n }\n }\n if (removes.length > 0) {\n for (let i = next.length - 1; i >= 0; i -= 1) {\n const entry = next[i];\n if (removes.includes(entry.path ?? \"\") || removes.includes(entry.command ?? \"\")) {\n next.splice(i, 1);\n }\n }\n }\n document.front_matter.tests = next;\n return { changedFields: [\"tests\"] };\n },\n });\n tests = result.item.tests ?? [];\n itemId = result.item.id;\n } else {\n const located = await locateItem(pmRoot, id, settings.id_prefix, settings.item_format, typeRegistry.type_to_folder);\n if (!located) {\n throw new PmCliError(`Item ${id} not found`, EXIT_CODE.NOT_FOUND);\n }\n itemId = located.id;\n const loaded = await readLocatedItem(located, { schema: settings.schema });\n tests = loaded.document.front_matter.tests ?? [];\n }\n\n let defaultTimeoutSeconds: number | undefined;\n if (options.timeout !== undefined) {\n defaultTimeoutSeconds = parseOptionalNumber(options.timeout, \"timeout\");\n }\n const pmContextMode = parsePmContextMode(options.pmContext);\n const hasRuntimeDirectiveFlags =\n (options.envSet?.length ?? 0) > 0 ||\n (options.envClear?.length ?? 0) > 0 ||\n options.sharedHostSafe === true ||\n options.pmContext !== undefined ||\n options.overrideLinkedPmContext === true ||\n options.failOnContextMismatch === true ||\n options.failOnSkipped === true ||\n options.failOnEmptyTestRun === true ||\n options.requireAssertionsForPm === true ||\n options.checkContext === true ||\n options.autoPmContext === true;\n if (hasRuntimeDirectiveFlags && options.run !== true) {\n throw new PmCliError(\n \"--env-set, --env-clear, --shared-host-safe, --pm-context, --override-linked-pm-context, --fail-on-context-mismatch, --fail-on-skipped, --fail-on-empty-test-run, --require-assertions-for-pm, --check-context, and --auto-pm-context require --run\",\n EXIT_CODE.USAGE,\n );\n }\n\n const runStartedAt = options.run === true ? nowIso() : undefined;\n const runResults = options.run === true\n ? await runLinkedTests(tests, defaultTimeoutSeconds, {\n progress: options.progress,\n envSet: options.envSet,\n envClear: options.envClear,\n sharedHostSafe: options.sharedHostSafe,\n pmContext: pmContextMode,\n overrideLinkedPmContext: options.overrideLinkedPmContext,\n failOnContextMismatch: options.failOnContextMismatch,\n failOnEmptyTestRun: options.failOnEmptyTestRun,\n requireAssertionsForPm: options.requireAssertionsForPm,\n checkContext: options.checkContext,\n autoPmContext: options.autoPmContext,\n sourceRoots: {\n projectPmRoot: pmRoot,\n globalPmRoot: resolveGlobalPmRoot(process.cwd()),\n },\n })\n : [];\n const failureCategories = countFailureCategories(runResults);\n const failOnSkippedTriggered =\n options.run === true && options.failOnSkipped === true && runResults.some((entry) => entry.status === \"skipped\");\n const warnings: string[] = [];\n if (options.run === true && options.checkContext === true) {\n const preflight = summarizeContextPreflight(runResults);\n warnings.push(\n `context_preflight:checked_pm_commands=${preflight.checked_pm_commands};` +\n `tracker_read_commands=${preflight.tracker_read_commands};` +\n `mismatches=${preflight.mismatches};` +\n `auto_remediated=${preflight.auto_remediated}`,\n );\n }\n\n if (options.run === true && runStartedAt && settings.testing.record_results_to_items === true) {\n const summary = summarizeRunResultStatuses(runResults);\n const trackedRunId = resolveTrackedRunId(\"test\");\n const attemptRaw = process.env.PM_BACKGROUND_TEST_RUN_ATTEMPT?.trim();\n const parsedAttempt = attemptRaw ? Number.parseInt(attemptRaw, 10) : Number.NaN;\n const resumedFrom = process.env.PM_BACKGROUND_TEST_RUN_RESUMED_FROM?.trim();\n try {\n await appendTrackedTestRunSummary({\n pmRoot,\n settings,\n itemId,\n author: resolveAuthor(options.author, settings.author_default),\n message: `Track test run summary (${trackedRunId})`,\n entry: {\n run_id: trackedRunId,\n kind: \"test\",\n status: summary.failed > 0 || failOnSkippedTriggered === true ? \"failed\" : \"passed\",\n started_at: runStartedAt,\n finished_at: nowIso(),\n recorded_at: nowIso(),\n attempt: Number.isFinite(parsedAttempt) && parsedAttempt >= 1 ? parsedAttempt : undefined,\n resumed_from: resumedFrom && resumedFrom.length > 0 ? resumedFrom : undefined,\n passed: summary.passed,\n failed: summary.failed,\n skipped: summary.skipped,\n fail_on_skipped_triggered: failOnSkippedTriggered ? true : undefined,\n },\n });\n } catch (error: unknown) {\n warnings.push(`test_result_tracking_failed:${itemId}:${error instanceof Error ? error.message : String(error)}`);\n }\n }\n\n return {\n id: itemId,\n tests,\n run_results: runResults,\n failure_categories: failureCategories,\n fail_on_skipped_triggered: failOnSkippedTriggered ? true : undefined,\n warnings: warnings.length > 0 ? warnings : undefined,\n changed: shouldMutate,\n count: tests.length,\n };\n}\n"]}
@@ -5,6 +5,7 @@ import { normalizeStatusInput } from "../../core/item/status.js";
5
5
  import { resolveRuntimeStatusRegistry } from "../../core/schema/runtime-schema.js";
6
6
  import { EXIT_CODE } from "../../core/shared/constants.js";
7
7
  import { PmCliError } from "../../core/shared/errors.js";
8
+ import { toErrorMessage } from "../../core/shared/primitives.js";
8
9
  import { nowIso } from "../../core/shared/time.js";
9
10
  import { getSettingsPath, resolvePmRoot } from "../../core/store/paths.js";
10
11
  import { readSettings } from "../../core/store/settings.js";
@@ -383,12 +384,6 @@ function hasListFilters(list, status) {
383
384
  list.limit !== undefined ||
384
385
  list.offset !== undefined);
385
386
  }
386
- function toErrorMessage(error) {
387
- if (error instanceof Error) {
388
- return error.message;
389
- }
390
- return String(error);
391
- }
392
387
  function resolveCheckpointAuthor(update) {
393
388
  const candidate = update.author ?? process.env.PM_AUTHOR ?? "unknown";
394
389
  const normalized = candidate.trim();