@unbrained/pm-cli 2026.5.1 → 2026.5.3-5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/AGENTS.md +8 -1
  2. package/CHANGELOG.md +73 -4
  3. package/CONTRIBUTING.md +11 -5
  4. package/PRD.md +17 -1
  5. package/README.md +55 -1099
  6. package/SECURITY.md +6 -11
  7. package/dist/cli/bootstrap-args.d.ts +18 -0
  8. package/dist/cli/bootstrap-args.js +242 -0
  9. package/dist/cli/bootstrap-args.js.map +1 -0
  10. package/dist/cli/commander-usage.d.ts +17 -0
  11. package/dist/cli/commander-usage.js +178 -0
  12. package/dist/cli/commander-usage.js.map +1 -0
  13. package/dist/cli/commands/activity.d.ts +10 -0
  14. package/dist/cli/commands/activity.js +14 -10
  15. package/dist/cli/commands/activity.js.map +1 -1
  16. package/dist/cli/commands/aggregate.js.map +1 -1
  17. package/dist/cli/commands/append.js.map +1 -1
  18. package/dist/cli/commands/calendar.js +19 -34
  19. package/dist/cli/commands/calendar.js.map +1 -1
  20. package/dist/cli/commands/claim.js.map +1 -1
  21. package/dist/cli/commands/close.js.map +1 -1
  22. package/dist/cli/commands/comments-audit.js.map +1 -1
  23. package/dist/cli/commands/comments.js +1 -9
  24. package/dist/cli/commands/comments.js.map +1 -1
  25. package/dist/cli/commands/completion.js.map +1 -1
  26. package/dist/cli/commands/config.d.ts +21 -3
  27. package/dist/cli/commands/config.js +118 -2
  28. package/dist/cli/commands/config.js.map +1 -1
  29. package/dist/cli/commands/context.d.ts +90 -1
  30. package/dist/cli/commands/context.js +496 -12
  31. package/dist/cli/commands/context.js.map +1 -1
  32. package/dist/cli/commands/contracts.js.map +1 -1
  33. package/dist/cli/commands/create.js +2 -2
  34. package/dist/cli/commands/create.js.map +1 -1
  35. package/dist/cli/commands/dedupe-audit.js +2 -11
  36. package/dist/cli/commands/dedupe-audit.js.map +1 -1
  37. package/dist/cli/commands/delete.js.map +1 -1
  38. package/dist/cli/commands/deps.js.map +1 -1
  39. package/dist/cli/commands/docs.js.map +1 -1
  40. package/dist/cli/commands/extension.js.map +1 -1
  41. package/dist/cli/commands/files.js +14 -2
  42. package/dist/cli/commands/files.js.map +1 -1
  43. package/dist/cli/commands/gc.js.map +1 -1
  44. package/dist/cli/commands/get.js.map +1 -1
  45. package/dist/cli/commands/health.js +16 -12
  46. package/dist/cli/commands/health.js.map +1 -1
  47. package/dist/cli/commands/history.js +1 -9
  48. package/dist/cli/commands/history.js.map +1 -1
  49. package/dist/cli/commands/index.js.map +1 -1
  50. package/dist/cli/commands/init.js.map +1 -1
  51. package/dist/cli/commands/learnings.js +1 -9
  52. package/dist/cli/commands/learnings.js.map +1 -1
  53. package/dist/cli/commands/list.d.ts +1 -0
  54. package/dist/cli/commands/list.js +13 -31
  55. package/dist/cli/commands/list.js.map +1 -1
  56. package/dist/cli/commands/normalize.js +14 -23
  57. package/dist/cli/commands/normalize.js.map +1 -1
  58. package/dist/cli/commands/notes.js +1 -9
  59. package/dist/cli/commands/notes.js.map +1 -1
  60. package/dist/cli/commands/reindex.js +2 -7
  61. package/dist/cli/commands/reindex.js.map +1 -1
  62. package/dist/cli/commands/restore.js.map +1 -1
  63. package/dist/cli/commands/search.js +4 -35
  64. package/dist/cli/commands/search.js.map +1 -1
  65. package/dist/cli/commands/stats.js.map +1 -1
  66. package/dist/cli/commands/templates.js.map +1 -1
  67. package/dist/cli/commands/test-all.js.map +1 -1
  68. package/dist/cli/commands/test-runs.js +1 -11
  69. package/dist/cli/commands/test-runs.js.map +1 -1
  70. package/dist/cli/commands/test.js.map +1 -1
  71. package/dist/cli/commands/update-many.js +1 -6
  72. package/dist/cli/commands/update-many.js.map +1 -1
  73. package/dist/cli/commands/update.js +2 -2
  74. package/dist/cli/commands/update.js.map +1 -1
  75. package/dist/cli/commands/validate.js +23 -18
  76. package/dist/cli/commands/validate.js.map +1 -1
  77. package/dist/cli/error-guidance.d.ts +13 -0
  78. package/dist/cli/error-guidance.js +56 -6
  79. package/dist/cli/error-guidance.js.map +1 -1
  80. package/dist/cli/extension-command-help.d.ts +48 -0
  81. package/dist/cli/extension-command-help.js +389 -0
  82. package/dist/cli/extension-command-help.js.map +1 -0
  83. package/dist/cli/extension-command-options.js.map +1 -1
  84. package/dist/cli/help-content.js +9 -3
  85. package/dist/cli/help-content.js.map +1 -1
  86. package/dist/cli/help-json-payload.d.ts +25 -0
  87. package/dist/cli/help-json-payload.js +265 -0
  88. package/dist/cli/help-json-payload.js.map +1 -0
  89. package/dist/cli/main.js +1000 -4456
  90. package/dist/cli/main.js.map +1 -1
  91. package/dist/cli/migration-gates.d.ts +22 -0
  92. package/dist/cli/migration-gates.js +146 -0
  93. package/dist/cli/migration-gates.js.map +1 -0
  94. package/dist/cli/register-list-query.d.ts +2 -0
  95. package/dist/cli/register-list-query.js +317 -0
  96. package/dist/cli/register-list-query.js.map +1 -0
  97. package/dist/cli/register-mutation.d.ts +2 -0
  98. package/dist/cli/register-mutation.js +795 -0
  99. package/dist/cli/register-mutation.js.map +1 -0
  100. package/dist/cli/register-operations.d.ts +2 -0
  101. package/dist/cli/register-operations.js +610 -0
  102. package/dist/cli/register-operations.js.map +1 -0
  103. package/dist/cli/register-setup.d.ts +2 -0
  104. package/dist/cli/register-setup.js +334 -0
  105. package/dist/cli/register-setup.js.map +1 -0
  106. package/dist/cli/registration-helpers.d.ts +53 -0
  107. package/dist/cli/registration-helpers.js +669 -0
  108. package/dist/cli/registration-helpers.js.map +1 -0
  109. package/dist/cli/shared-parsers.d.ts +6 -0
  110. package/dist/cli/shared-parsers.js +40 -0
  111. package/dist/cli/shared-parsers.js.map +1 -0
  112. package/dist/cli.d.ts +1 -1
  113. package/dist/cli.js +3 -1
  114. package/dist/cli.js.map +1 -1
  115. package/dist/core/extensions/extension-types.d.ts +605 -0
  116. package/dist/core/extensions/extension-types.js +22 -0
  117. package/dist/core/extensions/extension-types.js.map +1 -0
  118. package/dist/core/extensions/index.js.map +1 -1
  119. package/dist/core/extensions/item-fields.js.map +1 -1
  120. package/dist/core/extensions/loader.d.ts +2 -586
  121. package/dist/core/extensions/loader.js +3 -21
  122. package/dist/core/extensions/loader.js.map +1 -1
  123. package/dist/core/extensions/runtime-registrations.js.map +1 -1
  124. package/dist/core/fs/fs-utils.js.map +1 -1
  125. package/dist/core/fs/index.js.map +1 -1
  126. package/dist/core/history/history-stream-policy.js.map +1 -1
  127. package/dist/core/history/history.js.map +1 -1
  128. package/dist/core/history/index.js.map +1 -1
  129. package/dist/core/item/id.js.map +1 -1
  130. package/dist/core/item/index.js.map +1 -1
  131. package/dist/core/item/item-format.js.map +1 -1
  132. package/dist/core/item/parent-reference-policy.js.map +1 -1
  133. package/dist/core/item/parse.js +6 -0
  134. package/dist/core/item/parse.js.map +1 -1
  135. package/dist/core/item/sprint-release-format.js.map +1 -1
  136. package/dist/core/item/status.js.map +1 -1
  137. package/dist/core/item/type-registry.js.map +1 -1
  138. package/dist/core/lock/index.js.map +1 -1
  139. package/dist/core/lock/lock.js +1 -6
  140. package/dist/core/lock/lock.js.map +1 -1
  141. package/dist/core/output/command-aware.js.map +1 -1
  142. package/dist/core/output/output.js.map +1 -1
  143. package/dist/core/schema/runtime-field-filters.js.map +1 -1
  144. package/dist/core/schema/runtime-field-values.js.map +1 -1
  145. package/dist/core/schema/runtime-schema.js.map +1 -1
  146. package/dist/core/search/cache.js +1 -7
  147. package/dist/core/search/cache.js.map +1 -1
  148. package/dist/core/search/embedding-batches.js +4 -0
  149. package/dist/core/search/embedding-batches.js.map +1 -1
  150. package/dist/core/search/http-client.d.ts +29 -0
  151. package/dist/core/search/http-client.js +64 -0
  152. package/dist/core/search/http-client.js.map +1 -0
  153. package/dist/core/search/providers.d.ts +3 -13
  154. package/dist/core/search/providers.js +19 -88
  155. package/dist/core/search/providers.js.map +1 -1
  156. package/dist/core/search/semantic-defaults.js +2 -7
  157. package/dist/core/search/semantic-defaults.js.map +1 -1
  158. package/dist/core/search/vector-stores.d.ts +4 -13
  159. package/dist/core/search/vector-stores.js +40 -93
  160. package/dist/core/search/vector-stores.js.map +1 -1
  161. package/dist/core/sentry/helpers.d.ts +27 -0
  162. package/dist/core/sentry/helpers.js +171 -0
  163. package/dist/core/sentry/helpers.js.map +1 -0
  164. package/dist/core/sentry/instrument.d.ts +25 -0
  165. package/dist/core/sentry/instrument.js +204 -0
  166. package/dist/core/sentry/instrument.js.map +1 -0
  167. package/dist/core/shared/command-types.js.map +1 -1
  168. package/dist/core/shared/conflict-markers.js.map +1 -1
  169. package/dist/core/shared/constants.d.ts +3 -0
  170. package/dist/core/shared/constants.js +58 -1
  171. package/dist/core/shared/constants.js.map +1 -1
  172. package/dist/core/shared/errors.js.map +1 -1
  173. package/dist/core/shared/index.d.ts +1 -0
  174. package/dist/core/shared/index.js +1 -0
  175. package/dist/core/shared/index.js.map +1 -1
  176. package/dist/core/shared/primitives.d.ts +13 -0
  177. package/dist/core/shared/primitives.js +33 -0
  178. package/dist/core/shared/primitives.js.map +1 -0
  179. package/dist/core/shared/serialization.js.map +1 -1
  180. package/dist/core/shared/text-normalization.js.map +1 -1
  181. package/dist/core/shared/time.js.map +1 -1
  182. package/dist/core/store/front-matter-cache.d.ts +6 -0
  183. package/dist/core/store/front-matter-cache.js +150 -0
  184. package/dist/core/store/front-matter-cache.js.map +1 -0
  185. package/dist/core/store/index.js.map +1 -1
  186. package/dist/core/store/item-format-migration.js.map +1 -1
  187. package/dist/core/store/item-store.js +46 -36
  188. package/dist/core/store/item-store.js.map +1 -1
  189. package/dist/core/store/paths.js.map +1 -1
  190. package/dist/core/store/settings.js +36 -0
  191. package/dist/core/store/settings.js.map +1 -1
  192. package/dist/core/telemetry/consent.js.map +1 -1
  193. package/dist/core/telemetry/observability.d.ts +24 -0
  194. package/dist/core/telemetry/observability.js +185 -0
  195. package/dist/core/telemetry/observability.js.map +1 -0
  196. package/dist/core/telemetry/runtime.d.ts +29 -3
  197. package/dist/core/telemetry/runtime.js +337 -25
  198. package/dist/core/telemetry/runtime.js.map +1 -1
  199. package/dist/core/test/background-runs.js.map +1 -1
  200. package/dist/core/test/item-test-run-tracking.js.map +1 -1
  201. package/dist/sdk/cli-contracts.js +28 -0
  202. package/dist/sdk/cli-contracts.js.map +1 -1
  203. package/dist/sdk/index.d.ts +1 -1
  204. package/dist/sdk/index.js.map +1 -1
  205. package/dist/types/index.js.map +1 -1
  206. package/dist/types.d.ts +21 -0
  207. package/dist/types.js +11 -0
  208. package/dist/types.js.map +1 -1
  209. package/docs/AGENT_GUIDE.md +125 -0
  210. package/docs/ARCHITECTURE.md +201 -478
  211. package/docs/COMMANDS.md +209 -0
  212. package/docs/CONFIGURATION.md +146 -0
  213. package/docs/EXTENSIONS.md +146 -645
  214. package/docs/QUICKSTART.md +108 -0
  215. package/docs/README.md +70 -0
  216. package/docs/RELEASING.md +92 -50
  217. package/docs/SDK.md +127 -68
  218. package/docs/TESTING.md +125 -0
  219. package/docs/examples/starter-extension/README.md +39 -25
  220. package/package.json +24 -11
  221. package/dist/command-types.d.ts +0 -1
  222. package/dist/command-types.js +0 -2
  223. package/dist/command-types.js.map +0 -1
  224. package/dist/constants.d.ts +0 -1
  225. package/dist/constants.js +0 -2
  226. package/dist/constants.js.map +0 -1
  227. package/dist/errors.d.ts +0 -1
  228. package/dist/errors.js +0 -2
  229. package/dist/errors.js.map +0 -1
  230. package/dist/fs-utils.d.ts +0 -1
  231. package/dist/fs-utils.js +0 -2
  232. package/dist/fs-utils.js.map +0 -1
  233. package/dist/history.d.ts +0 -1
  234. package/dist/history.js +0 -2
  235. package/dist/history.js.map +0 -1
  236. package/dist/id.d.ts +0 -1
  237. package/dist/id.js +0 -2
  238. package/dist/id.js.map +0 -1
  239. package/dist/item-format.d.ts +0 -1
  240. package/dist/item-format.js +0 -2
  241. package/dist/item-format.js.map +0 -1
  242. package/dist/item-store.d.ts +0 -1
  243. package/dist/item-store.js +0 -2
  244. package/dist/item-store.js.map +0 -1
  245. package/dist/lock.d.ts +0 -1
  246. package/dist/lock.js +0 -2
  247. package/dist/lock.js.map +0 -1
  248. package/dist/output.d.ts +0 -1
  249. package/dist/output.js +0 -2
  250. package/dist/output.js.map +0 -1
  251. package/dist/parse.d.ts +0 -1
  252. package/dist/parse.js +0 -2
  253. package/dist/parse.js.map +0 -1
  254. package/dist/paths.d.ts +0 -1
  255. package/dist/paths.js +0 -2
  256. package/dist/paths.js.map +0 -1
  257. package/dist/serialization.d.ts +0 -1
  258. package/dist/serialization.js +0 -2
  259. package/dist/serialization.js.map +0 -1
  260. package/dist/settings.d.ts +0 -1
  261. package/dist/settings.js +0 -2
  262. package/dist/settings.js.map +0 -1
  263. package/dist/time.d.ts +0 -1
  264. package/dist/time.js +0 -2
  265. package/dist/time.js.map +0 -1
@@ -1,7 +1,8 @@
1
1
  import { pathExists } from "../../core/fs/fs-utils.js";
2
2
  import { getActiveExtensionRegistrations } from "../../core/extensions/index.js";
3
3
  import { normalizeStatusInput } from "../../core/item/status.js";
4
- import { resolveItemTypeRegistry, resolveTypeName } from "../../core/item/type-registry.js";
4
+ import { resolveItemTypeRegistry } from "../../core/item/type-registry.js";
5
+ import { parseIntegerLimit, parsePriority, parseType } from "../shared-parsers.js";
5
6
  import { collectRuntimeFilterValues, matchesRuntimeFilters } from "../../core/schema/runtime-field-filters.js";
6
7
  import { resolveRuntimeFieldRegistry, resolveRuntimeStatusRegistry, } from "../../core/schema/runtime-schema.js";
7
8
  import { EXIT_CODE } from "../../core/shared/constants.js";
@@ -13,6 +14,7 @@ import { readSettings } from "../../core/store/settings.js";
13
14
  export const LIST_SORT_FIELDS = ["priority", "deadline", "updated_at", "created_at", "title", "parent"];
14
15
  export const LIST_SORT_ORDER_VALUES = ["asc", "desc"];
15
16
  const DEFAULT_COMPACT_LIST_FIELDS = ["id", "title", "status", "type", "priority", "parent", "updated_at"];
17
+ const BRIEF_LIST_FIELDS = ["id", "status", "type", "title"];
16
18
  function isTerminal(status, statusRegistry) {
17
19
  const normalized = normalizeStatusInput(status, statusRegistry) ?? status;
18
20
  return statusRegistry.terminal_statuses.has(normalized);
@@ -36,38 +38,11 @@ function compareDefaultSort(left, right, statusRegistry) {
36
38
  function sortItemsDefault(items, statusRegistry) {
37
39
  return [...items].sort((left, right) => compareDefaultSort(left, right, statusRegistry));
38
40
  }
39
- function parsePriority(raw) {
40
- if (raw === undefined)
41
- return undefined;
42
- const parsed = Number(raw);
43
- if (!Number.isInteger(parsed) || parsed < 0 || parsed > 4) {
44
- throw new PmCliError("Priority filter must be 0..4", EXIT_CODE.USAGE);
45
- }
46
- return parsed;
47
- }
48
- function parseType(raw, typeRegistry) {
49
- if (raw === undefined)
50
- return undefined;
51
- const parsed = resolveTypeName(raw, typeRegistry);
52
- if (!parsed) {
53
- throw new PmCliError(`Type filter must be one of ${typeRegistry.types.join("|")}`, EXIT_CODE.USAGE);
54
- }
55
- return parsed;
56
- }
57
41
  function parseDeadline(raw, fieldLabel) {
58
42
  if (raw === undefined)
59
43
  return undefined;
60
44
  return resolveIsoOrRelative(raw, new Date(), fieldLabel);
61
45
  }
62
- function parseLimit(raw) {
63
- if (raw === undefined)
64
- return undefined;
65
- const parsed = Number(raw);
66
- if (!Number.isInteger(parsed) || parsed < 0) {
67
- throw new PmCliError("Limit filter must be a non-negative integer", EXIT_CODE.USAGE);
68
- }
69
- return parsed;
70
- }
71
46
  function parseOffset(raw) {
72
47
  if (raw === undefined)
73
48
  return undefined;
@@ -92,10 +67,17 @@ function parseFieldSelectors(raw) {
92
67
  }
93
68
  function parseProjectionConfig(options) {
94
69
  const compactRequested = options.compact === true;
70
+ const briefRequested = options.brief === true;
95
71
  const fieldSelectors = parseFieldSelectors(options.fields);
96
- const enabledModes = Number(compactRequested) + Number(fieldSelectors !== undefined);
72
+ const enabledModes = Number(compactRequested) + Number(briefRequested) + Number(fieldSelectors !== undefined);
97
73
  if (enabledModes > 1) {
98
- throw new PmCliError("List projection options are mutually exclusive. Use one of --compact or --fields.", EXIT_CODE.USAGE);
74
+ throw new PmCliError("List projection options are mutually exclusive. Use one of --compact, --brief, or --fields.", EXIT_CODE.USAGE);
75
+ }
76
+ if (briefRequested) {
77
+ return {
78
+ mode: "compact",
79
+ fields: [...BRIEF_LIST_FIELDS],
80
+ };
99
81
  }
100
82
  if (compactRequested) {
101
83
  return {
@@ -326,7 +308,7 @@ export async function runList(status, options, global) {
326
308
  const effectiveOptions = explicitStatus ? { ...options, excludeTerminal: false } : options;
327
309
  const filtered = applyFilters(items, resolvedStatus, effectiveOptions, typeRegistry, statusRegistry, runtimeFieldFilters);
328
310
  const sorted = sortItems(filtered, sortField, sortOrder, statusRegistry);
329
- const limit = parseLimit(options.limit);
311
+ const limit = parseIntegerLimit(options.limit);
330
312
  const offset = parseOffset(options.offset) ?? 0;
331
313
  const limited = limit === undefined ? sorted.slice(offset) : sorted.slice(offset, offset + limit);
332
314
  const projected = projectListItems(limited, projection);
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"/","sources":["cli/commands/list.ts"],"names":[],"mappings":"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","sourcesContent":["import { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { normalizeStatusInput } from \"../../core/item/status.js\";\nimport { resolveItemTypeRegistry, type ItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { parseIntegerLimit, parsePriority, parseType } from \"../shared-parsers.js\";\nimport { collectRuntimeFilterValues, matchesRuntimeFilters } from \"../../core/schema/runtime-field-filters.js\";\nimport {\n resolveRuntimeFieldRegistry,\n resolveRuntimeStatusRegistry,\n type RuntimeStatusRegistry,\n} from \"../../core/schema/runtime-schema.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 { compareTimestampStrings, nowIso, resolveIsoOrRelative } from \"../../core/shared/time.js\";\nimport { listAllFrontMatter, listAllFrontMatterWithBody } from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport type { ItemFrontMatter, ItemStatus, ItemType } from \"../../types/index.js\";\n\nexport interface ListOptions {\n status?: string;\n type?: string;\n tag?: string;\n priority?: string;\n deadlineBefore?: string;\n deadlineAfter?: string;\n assignee?: string;\n assigneeFilter?: string;\n parent?: string;\n sprint?: string;\n release?: string;\n limit?: string;\n offset?: string;\n includeBody?: boolean;\n compact?: boolean;\n brief?: boolean;\n fields?: string;\n sort?: string;\n order?: string;\n excludeTerminal?: boolean;\n [key: string]: unknown;\n}\n\nexport type ListedItem = ItemFrontMatter | (ItemFrontMatter & { body: string });\n\ntype ListProjectionMode = \"full\" | \"compact\" | \"fields\";\n\ninterface ListProjectionConfig {\n mode: ListProjectionMode;\n fields: string[];\n}\n\nexport const LIST_SORT_FIELDS = [\"priority\", \"deadline\", \"updated_at\", \"created_at\", \"title\", \"parent\"] as const;\nexport type ListSortField = (typeof LIST_SORT_FIELDS)[number];\n\nexport const LIST_SORT_ORDER_VALUES = [\"asc\", \"desc\"] as const;\nexport type ListSortOrder = (typeof LIST_SORT_ORDER_VALUES)[number];\n\nconst DEFAULT_COMPACT_LIST_FIELDS = [\"id\", \"title\", \"status\", \"type\", \"priority\", \"parent\", \"updated_at\"] as const;\nconst BRIEF_LIST_FIELDS = [\"id\", \"status\", \"type\", \"title\"] as const;\n\nexport interface ListResult {\n items: ListedItem[];\n count: number;\n filters: Record<string, unknown>;\n projection: {\n mode: ListProjectionMode;\n fields: string[] | null;\n };\n sorting: {\n sort: ListSortField | \"default\";\n order: ListSortOrder;\n };\n now: string;\n warnings?: string[];\n}\n\nfunction isTerminal(status: ItemStatus, statusRegistry: RuntimeStatusRegistry): boolean {\n const normalized = normalizeStatusInput(status, statusRegistry) ?? status;\n return statusRegistry.terminal_statuses.has(normalized);\n}\n\nfunction compareDefaultSort(left: ListedItem, right: ListedItem, statusRegistry: RuntimeStatusRegistry): number {\n const leftTerminal = isTerminal(left.status, statusRegistry);\n const rightTerminal = isTerminal(right.status, statusRegistry);\n if (leftTerminal !== rightTerminal) {\n return leftTerminal ? 1 : -1;\n }\n const byPriority = left.priority - right.priority;\n if (byPriority !== 0) {\n return byPriority;\n }\n const byUpdated = compareTimestampStrings(right.updated_at, left.updated_at);\n if (byUpdated !== 0) {\n return byUpdated;\n }\n return left.id.localeCompare(right.id);\n}\n\nfunction sortItemsDefault(items: ListedItem[], statusRegistry: RuntimeStatusRegistry): ListedItem[] {\n return [...items].sort((left, right) => compareDefaultSort(left, right, statusRegistry));\n}\n\nfunction parseDeadline(raw: string | undefined, fieldLabel: string): string | undefined {\n if (raw === undefined) return undefined;\n return resolveIsoOrRelative(raw, new Date(), fieldLabel);\n}\n\nfunction parseOffset(raw: string | undefined): number | undefined {\n if (raw === undefined) return undefined;\n const parsed = Number(raw);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new PmCliError(\"Offset filter must be a non-negative integer\", EXIT_CODE.USAGE);\n }\n return parsed;\n}\n\nfunction parseFieldSelectors(raw: string | undefined): string[] | undefined {\n if (raw === undefined) {\n return undefined;\n }\n const selectors = raw\n .split(\",\")\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0);\n if (selectors.length === 0) {\n throw new PmCliError(\"List --fields requires a comma-separated list of field names\", EXIT_CODE.USAGE);\n }\n return [...new Set(selectors)];\n}\n\nfunction parseProjectionConfig(options: ListOptions): ListProjectionConfig {\n const compactRequested = options.compact === true;\n const briefRequested = options.brief === true;\n const fieldSelectors = parseFieldSelectors(options.fields);\n const enabledModes = Number(compactRequested) + Number(briefRequested) + Number(fieldSelectors !== undefined);\n if (enabledModes > 1) {\n throw new PmCliError(\"List projection options are mutually exclusive. Use one of --compact, --brief, or --fields.\", EXIT_CODE.USAGE);\n }\n if (briefRequested) {\n return {\n mode: \"compact\",\n fields: [...BRIEF_LIST_FIELDS],\n };\n }\n if (compactRequested) {\n return {\n mode: \"compact\",\n fields: [...DEFAULT_COMPACT_LIST_FIELDS],\n };\n }\n if (fieldSelectors) {\n return {\n mode: \"fields\",\n fields: fieldSelectors,\n };\n }\n return {\n mode: \"full\",\n fields: [],\n };\n}\n\nfunction parseSortField(raw: string | undefined): ListSortField | undefined {\n if (raw === undefined) {\n return undefined;\n }\n const normalized = raw.trim().toLowerCase();\n if (!LIST_SORT_FIELDS.includes(normalized as ListSortField)) {\n throw new PmCliError(`Sort field must be one of ${LIST_SORT_FIELDS.join(\"|\")}`, EXIT_CODE.USAGE);\n }\n return normalized as ListSortField;\n}\n\nfunction parseSortOrder(raw: string | undefined): ListSortOrder | undefined {\n if (raw === undefined) {\n return undefined;\n }\n const normalized = raw.trim().toLowerCase();\n if (!LIST_SORT_ORDER_VALUES.includes(normalized as ListSortOrder)) {\n throw new PmCliError(`Sort order must be one of ${LIST_SORT_ORDER_VALUES.join(\"|\")}`, EXIT_CODE.USAGE);\n }\n return normalized as ListSortOrder;\n}\n\nfunction parseAssigneeFilter(raw: string | undefined): \"assigned\" | \"unassigned\" | undefined {\n if (raw === undefined) {\n return undefined;\n }\n const normalized = raw.trim().toLowerCase();\n if (!normalized) {\n throw new PmCliError(\"Assignee filter must be one of assigned|unassigned\", EXIT_CODE.USAGE);\n }\n if (normalized !== \"assigned\" && normalized !== \"unassigned\") {\n throw new PmCliError(`Invalid assignee filter \"${raw}\". Allowed: assigned|unassigned`, EXIT_CODE.USAGE);\n }\n return normalized;\n}\n\nfunction resolveStatusFilter(status: ItemStatus | undefined, statusRegistry: RuntimeStatusRegistry): ItemStatus | undefined {\n if (status === undefined) {\n return undefined;\n }\n const normalized = normalizeStatusInput(status, statusRegistry);\n const token = status.trim().toLowerCase();\n if (token === \"open\") {\n return statusRegistry.open_status;\n }\n if (token === \"closed\") {\n return statusRegistry.close_status;\n }\n if (token === \"canceled\" || token === \"cancelled\") {\n return statusRegistry.canceled_status;\n }\n return normalized ?? status;\n}\n\nfunction applyFilters(\n items: ListedItem[],\n status: ItemStatus | undefined,\n options: ListOptions,\n typeRegistry: ItemTypeRegistry,\n statusRegistry: RuntimeStatusRegistry,\n runtimeFieldFilters: Record<string, unknown>,\n): ListedItem[] {\n const typeFilter = parseType(options.type, typeRegistry);\n const tagFilter = options.tag?.trim().toLowerCase();\n const priorityFilter = parsePriority(options.priority);\n const deadlineBefore = parseDeadline(options.deadlineBefore, \"deadline-before\");\n const deadlineAfter = parseDeadline(options.deadlineAfter, \"deadline-after\");\n const assigneeFilter = options.assignee?.trim();\n const assigneeModeFilter = parseAssigneeFilter(options.assigneeFilter);\n const parentFilter = options.parent?.trim();\n const sprintFilter = options.sprint?.trim();\n const releaseFilter = options.release?.trim();\n\n if (assigneeFilter && (assigneeFilter.toLowerCase() === \"none\" || assigneeFilter.toLowerCase() === \"null\")) {\n throw new PmCliError(\n '--assignee no longer accepts \"none\" or \"null\". Use --assignee-filter unassigned.',\n EXIT_CODE.USAGE,\n );\n }\n if (assigneeFilter !== undefined && assigneeModeFilter === \"unassigned\") {\n throw new PmCliError(\"Cannot combine --assignee with --assignee-filter unassigned\", EXIT_CODE.USAGE);\n }\n\n return items.filter((item) => {\n if (status && item.status !== status) return false;\n if (options.excludeTerminal && isTerminal(item.status, statusRegistry)) return false;\n if (typeFilter && item.type !== typeFilter) return false;\n if (tagFilter && !item.tags.includes(tagFilter)) return false;\n if (priorityFilter !== undefined && item.priority !== priorityFilter) return false;\n if (deadlineBefore && (!item.deadline || compareTimestampStrings(item.deadline, deadlineBefore) > 0)) return false;\n if (deadlineAfter && (!item.deadline || compareTimestampStrings(item.deadline, deadlineAfter) < 0)) return false;\n if (assigneeModeFilter === \"assigned\" && !item.assignee) return false;\n if (assigneeModeFilter === \"unassigned\" && item.assignee) return false;\n if (assigneeFilter !== undefined && item.assignee !== assigneeFilter) {\n return false;\n }\n if (parentFilter !== undefined && item.parent !== parentFilter) return false;\n if (sprintFilter !== undefined && item.sprint !== sprintFilter) return false;\n if (releaseFilter !== undefined && item.release !== releaseFilter) return false;\n if (!matchesRuntimeFilters(item as Record<string, unknown>, runtimeFieldFilters)) {\n return false;\n }\n return true;\n });\n}\n\nfunction compareNullableString(left: string | null, right: string | null): number {\n if (left === right) {\n return 0;\n }\n if (left === null) {\n return 1;\n }\n if (right === null) {\n return -1;\n }\n return left.localeCompare(right);\n}\n\nfunction compareNullableTimestamp(left: string | null, right: string | null): number {\n if (left === right) {\n return 0;\n }\n if (left === null) {\n return 1;\n }\n if (right === null) {\n return -1;\n }\n return compareTimestampStrings(left, right);\n}\n\nfunction compareBySortField(left: ListedItem, right: ListedItem, field: ListSortField): number {\n switch (field) {\n case \"priority\":\n return left.priority - right.priority;\n case \"deadline\":\n return compareNullableTimestamp(left.deadline ?? null, right.deadline ?? null);\n case \"updated_at\":\n return compareTimestampStrings(left.updated_at, right.updated_at);\n case \"created_at\":\n return compareTimestampStrings(left.created_at, right.created_at);\n case \"title\":\n return left.title.localeCompare(right.title);\n case \"parent\":\n return compareNullableString(left.parent ?? null, right.parent ?? null);\n default:\n return 0;\n }\n}\n\nfunction sortItems(\n items: ListedItem[],\n sortField: ListSortField | undefined,\n sortOrder: ListSortOrder,\n statusRegistry: RuntimeStatusRegistry,\n): ListedItem[] {\n if (!sortField) {\n return sortItemsDefault(items, statusRegistry);\n }\n return [...items].sort((left, right) => {\n const byField = compareBySortField(left, right, sortField);\n if (byField !== 0) {\n return sortOrder === \"desc\" ? -byField : byField;\n }\n const fallback = compareDefaultSort(left, right, statusRegistry);\n return sortOrder === \"desc\" ? -fallback : fallback;\n });\n}\n\nfunction readListFieldValue(item: ListedItem, field: string): unknown {\n const normalized = field.trim();\n if (normalized.length === 0) {\n return null;\n }\n if (normalized.startsWith(\"item.\")) {\n const nestedKey = normalized.slice(\"item.\".length);\n if (nestedKey.length === 0) {\n return null;\n }\n const itemRecord = item as unknown as Record<string, unknown>;\n return itemRecord[nestedKey] ?? null;\n }\n const itemRecord = item as unknown as Record<string, unknown>;\n if (Object.prototype.hasOwnProperty.call(itemRecord, normalized)) {\n return itemRecord[normalized] ?? null;\n }\n return null;\n}\n\nfunction projectListItems(items: ListedItem[], projection: ListProjectionConfig): ListedItem[] {\n if (projection.mode === \"full\") {\n return items;\n }\n return items.map((item) => {\n const projected: Record<string, unknown> = {};\n for (const field of projection.fields) {\n projected[field] = readListFieldValue(item, field);\n }\n return projected as unknown as ListedItem;\n });\n}\n\nexport async function runList(status: ItemStatus | undefined, options: ListOptions, global: GlobalOptions): Promise<ListResult> {\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 statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const runtimeFieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const runtimeFieldFilters = collectRuntimeFilterValues(options as Record<string, unknown>, runtimeFieldRegistry, \"list\");\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const listWarnings: string[] = [];\n const items = options.includeBody\n ? await listAllFrontMatterWithBody(pmRoot, settings.item_format, typeRegistry.type_to_folder, listWarnings, settings.schema)\n : await listAllFrontMatter(pmRoot, settings.item_format, typeRegistry.type_to_folder, listWarnings, settings.schema);\n const projection = parseProjectionConfig(options);\n const sortField = parseSortField(options.sort);\n const sortOrder = parseSortOrder(options.order) ?? \"asc\";\n if (!sortField && options.order !== undefined) {\n throw new PmCliError(\"List --order requires --sort\", EXIT_CODE.USAGE);\n }\n const explicitStatus = resolveStatusFilter(options.status as ItemStatus | undefined, statusRegistry);\n const resolvedStatus = explicitStatus ?? resolveStatusFilter(status, statusRegistry);\n const effectiveOptions = explicitStatus ? { ...options, excludeTerminal: false } : options;\n const filtered = applyFilters(items, resolvedStatus, effectiveOptions, typeRegistry, statusRegistry, runtimeFieldFilters);\n const sorted = sortItems(filtered, sortField, sortOrder, statusRegistry);\n const limit = parseIntegerLimit(options.limit);\n const offset = parseOffset(options.offset) ?? 0;\n const limited = limit === undefined ? sorted.slice(offset) : sorted.slice(offset, offset + limit);\n const projected = projectListItems(limited, projection);\n const now = nowIso();\n const warnings = [...new Set(listWarnings)].sort((left, right) => left.localeCompare(right));\n const projectionFields = projection.mode === \"full\" ? null : [...projection.fields];\n return {\n items: projected,\n count: projected.length,\n filters: {\n status: resolvedStatus ?? null,\n type: options.type ?? null,\n tag: options.tag ?? null,\n priority: options.priority ?? null,\n deadline_before: options.deadlineBefore ?? null,\n deadline_after: options.deadlineAfter ?? null,\n assignee: options.assignee ?? null,\n assignee_filter: options.assigneeFilter ?? null,\n parent: options.parent ?? null,\n sprint: options.sprint ?? null,\n release: options.release ?? null,\n limit: options.limit ?? null,\n offset: options.offset ?? null,\n include_body: options.includeBody ?? null,\n compact: options.compact ?? null,\n fields: options.fields ?? null,\n sort: sortField ?? null,\n order: sortField ? sortOrder : null,\n projection: projection.mode,\n runtime_filters: runtimeFieldFilters,\n },\n projection: {\n mode: projection.mode,\n fields: projectionFields,\n },\n sorting: {\n sort: sortField ?? \"default\",\n order: sortField ? sortOrder : \"asc\",\n },\n now,\n ...(warnings.length > 0 ? { warnings } : {}),\n };\n}\n"]}
@@ -3,6 +3,7 @@ import { normalizeStatusInput } from "../../core/item/status.js";
3
3
  import { resolveRuntimeStatusRegistry } from "../../core/schema/runtime-schema.js";
4
4
  import { EXIT_CODE, } from "../../core/shared/constants.js";
5
5
  import { PmCliError } from "../../core/shared/errors.js";
6
+ import { toErrorMessage, toNonEmptyStringOrUndefined } from "../../core/shared/primitives.js";
6
7
  import { getSettingsPath, resolvePmRoot } from "../../core/store/paths.js";
7
8
  import { readSettings } from "../../core/store/settings.js";
8
9
  import { runList } from "./list.js";
@@ -30,13 +31,6 @@ const CLOSED_BACKFILL_FIELD_RULES = [
30
31
  { field: "expected_result", optionKey: "expectedResult" },
31
32
  { field: "actual_result", optionKey: "actualResult" },
32
33
  ];
33
- function toNonEmptyString(value) {
34
- if (typeof value !== "string") {
35
- return undefined;
36
- }
37
- const trimmed = value.trim();
38
- return trimmed.length > 0 ? trimmed : undefined;
39
- }
40
34
  function normalizeComparableText(value) {
41
35
  return value.trim().toLowerCase().replaceAll(/\s+/g, " ");
42
36
  }
@@ -65,7 +59,7 @@ function resolveLifecyclePatternPolicy(settings) {
65
59
  };
66
60
  }
67
61
  function toMeaningfulCloseReason(value) {
68
- const normalized = toNonEmptyString(value);
62
+ const normalized = toNonEmptyStringOrUndefined(value);
69
63
  if (!normalized || isLowSignalText(normalized)) {
70
64
  return undefined;
71
65
  }
@@ -83,22 +77,25 @@ function normalizeStatusFilter(value, statusRegistry) {
83
77
  return normalized;
84
78
  }
85
79
  function buildClosedBackfillValue(field, closeReason) {
80
+ const closureEvidenceSuffix = closeReason
81
+ ? "existing close_reason remains the detailed closure evidence."
82
+ : "the field was missing or low-signal.";
86
83
  if (closeReason) {
87
84
  if (field === "resolution") {
88
- return `Resolution normalized from close_reason: ${closeReason}`;
85
+ return `Resolution normalized from closed status; ${closureEvidenceSuffix}`;
89
86
  }
90
87
  if (field === "expected_result") {
91
- return `Expected closure outcome: ${closeReason}`;
88
+ return `Expected closure outcome normalized from closed status; ${closureEvidenceSuffix}`;
92
89
  }
93
- return `Actual closure outcome: ${closeReason}`;
90
+ return `Actual closure outcome normalized from closed status; ${closureEvidenceSuffix}`;
94
91
  }
95
92
  if (field === "resolution") {
96
- return "Resolution normalized from closed status because the field was missing or low-signal.";
93
+ return `Resolution normalized from closed status because ${closureEvidenceSuffix}`;
97
94
  }
98
95
  if (field === "expected_result") {
99
- return "Expected closure outcome normalized from closed status because the field was missing or low-signal.";
96
+ return `Expected closure outcome normalized from closed status because ${closureEvidenceSuffix}`;
100
97
  }
101
- return "Actual closure outcome normalized from closed status because the field was missing or low-signal.";
98
+ return `Actual closure outcome normalized from closed status because ${closureEvidenceSuffix}`;
102
99
  }
103
100
  function isTerminalStatus(item, statusRegistry) {
104
101
  const normalized = normalizeStatusInput(item.status, statusRegistry) ?? item.status;
@@ -115,7 +112,7 @@ function buildNormalizePlan(item, statusRegistry, terminalDoneStatuses, lifecycl
115
112
  const itemRecord = item;
116
113
  if (!isTerminalStatus(item, statusRegistry)) {
117
114
  for (const definition of ACTIVE_CLEAR_FIELD_RULES) {
118
- const currentValue = toNonEmptyString(itemRecord[definition.field]);
115
+ const currentValue = toNonEmptyStringOrUndefined(itemRecord[definition.field]);
119
116
  if (!currentValue) {
120
117
  continue;
121
118
  }
@@ -134,7 +131,7 @@ function buildNormalizePlan(item, statusRegistry, terminalDoneStatuses, lifecycl
134
131
  rule: RULE_ACTIVE_CLOSURE_LIKE_METADATA,
135
132
  });
136
133
  }
137
- if (toNonEmptyString(itemRecord.close_reason)) {
134
+ if (toNonEmptyStringOrUndefined(itemRecord.close_reason)) {
138
135
  unsetFields.add("close-reason");
139
136
  changes.push({
140
137
  field: "close_reason",
@@ -147,7 +144,7 @@ function buildNormalizePlan(item, statusRegistry, terminalDoneStatuses, lifecycl
147
144
  if (isTerminalDoneStatus(item, terminalDoneStatuses, statusRegistry)) {
148
145
  const closeReason = toMeaningfulCloseReason(itemRecord.close_reason);
149
146
  for (const definition of CLOSED_BACKFILL_FIELD_RULES) {
150
- const currentValue = toNonEmptyString(itemRecord[definition.field]);
147
+ const currentValue = toNonEmptyStringOrUndefined(itemRecord[definition.field]);
151
148
  if (currentValue && !isLowSignalText(currentValue)) {
152
149
  continue;
153
150
  }
@@ -188,12 +185,6 @@ function toNormalizeWarnings(ruleCounts) {
188
185
  .map((entry) => `normalize_${entry.rule}:${entry.count}`)
189
186
  .sort((left, right) => left.localeCompare(right));
190
187
  }
191
- function toErrorMessage(error) {
192
- if (error instanceof Error) {
193
- return error.message;
194
- }
195
- return String(error);
196
- }
197
188
  export async function runNormalize(options, global) {
198
189
  const pmRoot = resolvePmRoot(process.cwd(), global.path);
199
190
  if (!(await pathExists(getSettingsPath(pmRoot)))) {
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/cli/commands/normalize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"/","sources":["cli/commands/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAA8B,MAAM,qCAAqC,CAAC;AAC/G,OAAO,EAEL,SAAS,GACV,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAqC,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,SAAS,EAA6B,MAAM,aAAa,CAAC;AAyEnE,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,MAAM;IACN,MAAM;IACN,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,SAAS;IACT,aAAa;CACd,CAAC,CAAC;AAEH,MAAM,iCAAiC,GAAG,8BAA8B,CAAC;AACzE,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AACvD,MAAM,+BAA+B,GAAG,4BAA4B,CAAC;AAErE,MAAM,wBAAwB,GAGzB;IACH,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE;IACzD,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE;IACjD,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE;CACxD,CAAC;AAEF,MAAM,2BAA2B,GAG5B;IACH,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE;IAChD,EAAE,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,EAAE;IACzD,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,EAAE;CACtD,CAAC;AAEF,SAAS,uBAAuB,CAAC,KAAa;IAC5C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,eAAe,CAAC,KAAyB;IAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,sBAAsB,CAAC,GAAG,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,6BAA6B,CAAC,MAAqC;IAC1E,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACrH,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAC3C,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,QAAwC;IAC7E,OAAO;QACL,oCAAoC,EAAE;YACpC,cAAc,EAAE,6BAA6B,CAAC,QAAQ,CAAC,UAAU,CAAC,8CAA8C,CAAC;YACjH,UAAU,EAAE,6BAA6B,CAAC,QAAQ,CAAC,UAAU,CAAC,0CAA0C,CAAC;YACzG,aAAa,EAAE,6BAA6B,CAAC,QAAQ,CAAC,UAAU,CAAC,6CAA6C,CAAC;SAChH;KACF,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc;IAC7C,MAAM,UAAU,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAyB,EAAE,cAAqC;IAC7F,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,eAAe,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACtF,MAAM,IAAI,UAAU,CAAC,kCAAkC,KAAK,eAAe,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5H,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAyD,EACzD,WAA+B;IAE/B,MAAM,qBAAqB,GAAG,WAAW;QACvC,CAAC,CAAC,8DAA8D;QAChE,CAAC,CAAC,sCAAsC,CAAC;IAC3C,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YAC3B,OAAO,6CAA6C,qBAAqB,EAAE,CAAC;QAC9E,CAAC;QACD,IAAI,KAAK,KAAK,iBAAiB,EAAE,CAAC;YAChC,OAAO,2DAA2D,qBAAqB,EAAE,CAAC;QAC5F,CAAC;QACD,OAAO,yDAAyD,qBAAqB,EAAE,CAAC;IAC1F,CAAC;IACD,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QAC3B,OAAO,oDAAoD,qBAAqB,EAAE,CAAC;IACrF,CAAC;IACD,IAAI,KAAK,KAAK,iBAAiB,EAAE,CAAC;QAChC,OAAO,kEAAkE,qBAAqB,EAAE,CAAC;IACnG,CAAC;IACD,OAAO,gEAAgE,qBAAqB,EAAE,CAAC;AACjG,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAgB,EAAE,cAAqC;IAC/E,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;IACpF,OAAO,cAAc,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAgB,EAAE,oBAAyC,EAAE,cAAqC;IAC9H,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;IACpF,OAAO,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAgB,EAChB,cAAqC,EACrC,oBAAyC,EACzC,iBAAyC;IAEzC,MAAM,OAAO,GAAyB,EAAE,CAAC;IACzC,MAAM,OAAO,GAA6B,EAAE,CAAC;IAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,UAAU,GAAG,IAA0C,CAAC;IAE9D,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC;QAC5C,KAAK,MAAM,UAAU,IAAI,wBAAwB,EAAE,CAAC;YAClD,MAAM,YAAY,GAAG,2BAA2B,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/E,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,SAAS;YACX,CAAC;YACD,MAAM,UAAU,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;YACzD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,oCAAoC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAClH,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAC7B,CAAC;YACF,IAAI,CAAC,iBAAiB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;gBACzD,SAAS;YACX,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5C,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,MAAM,EAAE,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACzD,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,iCAAiC;aACxC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,2BAA2B,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACzD,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,mBAAmB,CAAC,UAAU,CAAC,YAAY,CAAC;gBACpD,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,wBAAwB;aAC/B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,EAAE,cAAc,CAAC,EAAE,CAAC;QACrE,MAAM,WAAW,GAAG,uBAAuB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACrE,KAAK,MAAM,UAAU,IAAI,2BAA2B,EAAE,CAAC;YACrD,MAAM,YAAY,GAAG,2BAA2B,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/E,IAAI,YAAY,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnD,SAAS;YACX,CAAC;YACD,MAAM,WAAW,GAAG,wBAAwB,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAC5E,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,MAAM,EAAE,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACzD,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,+BAA+B;aACtC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5G,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,OAAO;QACP,MAAM,EAAE,OAAO;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,SAA8B;IACzD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACrE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;SACzC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAgC;IAC3D,OAAO,UAAU;SACd,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;SACxD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AACtD,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAgC,EAAE,MAAqB;IACxF,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,UAAU,CAAC,iCAAiC,MAAM,sBAAsB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3G,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,cAAc,GAAG,4BAA4B,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrE,MAAM,sBAAsB,GAAG,6BAA6B,CAAC,QAAqD,CAAC,CAAC;IACpH,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAErD,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACtD,MAAM,IAAI,UAAU,CAAC,2CAA2C,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,YAAY,EACZ;QACE,GAAG,OAAO,CAAC,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,eAAe,EAAE,KAAK;KACvB,EACD,MAAM,CACP,CAAC;IAEF,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAS,cAAc,CAAC,sBAAsB,CAAC,CAAC;IACpF,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7F,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAClI,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC,CAAC;IACJ,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnH,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;YAClC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK;YACL,WAAW,EAAE,UAAU;YACvB,QAAQ;YACR,UAAU,EAAE,SAAS;YACrB,GAAG,EAAE,EAAE;YACP,YAAY,EAAE,MAAM,CAAC,GAAG;SACzB,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAA8B,EAAE,CAAC;IAChD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,YAAY,GAChB,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;IACjH,MAAM,iBAAiB,GAAoF;QACzG,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,YAAY;QACrB,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAChD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;KACvE,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,SAAS,CAAC,IAAI,CAAC;gBACb,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B,IAAI,CAAC,EAAE,EACP;gBACE,GAAG,IAAI,CAAC,MAAM;gBACd,GAAG,iBAAiB;aACrB,EACD,MAAM,CACP,CAAC;YACF,SAAS,CAAC,IAAI,CAAC;gBACb,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,MAAM,EAAE,SAAS;gBACjB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,SAAS,CAAC,IAAI,CAAC;gBACb,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC;aAC7B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAChF,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAChF,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IAE9E,OAAO;QACL,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;QAClC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK;QACL,WAAW,EAAE,UAAU;QACvB,QAAQ;QACR,UAAU,EAAE,SAAS;QACrB,aAAa,EAAE,YAAY;QAC3B,aAAa,EAAE,YAAY;QAC3B,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,UAAU;QACf,YAAY,EAAE,MAAM,CAAC,GAAG;KACzB,CAAC;AACJ,CAAC","sourcesContent":["import { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { normalizeStatusInput } from \"../../core/item/status.js\";\nimport { resolveRuntimeStatusRegistry, type RuntimeStatusRegistry } from \"../../core/schema/runtime-schema.js\";\nimport {\n DEFAULT_VALIDATE_CLOSURE_LIKE_METADATA_FIELD_PATTERNS,\n EXIT_CODE,\n} from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { toErrorMessage, toNonEmptyStringOrUndefined } from \"../../core/shared/primitives.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport type { ItemStatus } from \"../../types/index.js\";\nimport { runList, type ListedItem, type ListOptions } from \"./list.js\";\nimport { runUpdate, type UpdateCommandOptions } from \"./update.js\";\n\ninterface LifecyclePatternSettingsSource {\n validation: {\n lifecycle_closure_like_blocked_reason_patterns: string[];\n lifecycle_closure_like_resolution_patterns: string[];\n lifecycle_closure_like_actual_result_patterns: string[];\n };\n}\n\ntype LifecyclePatternFieldKey = \"blocked_reason\" | \"resolution\" | \"actual_result\";\n\ninterface LifecyclePatternPolicy {\n closure_like_metadata_field_patterns: Record<LifecyclePatternFieldKey, string[]>;\n}\n\ninterface NormalizeRuleCount {\n rule: string;\n count: number;\n}\n\ninterface NormalizePlannedChange {\n field: string;\n before: unknown;\n after: unknown;\n rule: string;\n}\n\ninterface NormalizeItemPlan {\n id: string;\n changes: NormalizePlannedChange[];\n}\n\ninterface NormalizeInternalItemPlan extends NormalizeItemPlan {\n update: UpdateCommandOptions;\n}\n\ninterface NormalizeApplyResultRow {\n id: string;\n status: \"updated\" | \"failed\" | \"skipped\";\n changed_fields?: string[];\n warnings?: string[];\n error?: string;\n}\n\nexport interface NormalizeCommandOptions {\n status?: string;\n list: ListOptions;\n dryRun?: boolean;\n apply?: boolean;\n author?: string;\n message?: string;\n force?: boolean;\n allowAuditUpdate?: boolean;\n}\n\nexport interface NormalizeResult {\n mode: \"dry_run\" | \"apply\";\n dry_run: boolean;\n matched_count: number;\n filters: Record<string, unknown>;\n rules: string[];\n rule_counts: NormalizeRuleCount[];\n warnings: string[];\n item_plans: NormalizeItemPlan[];\n updated_count?: number;\n skipped_count?: number;\n failed_count?: number;\n rows?: NormalizeApplyResultRow[];\n ids: string[];\n generated_at: string;\n}\n\nconst LOW_SIGNAL_TEXT_TOKENS = new Set([\n \"none\",\n \"null\",\n \"n/a\",\n \"na\",\n \"tbd\",\n \"todo\",\n \"unknown\",\n \"placeholder\",\n]);\n\nconst RULE_ACTIVE_CLOSURE_LIKE_METADATA = \"active_closure_like_metadata\";\nconst RULE_ACTIVE_CLOSE_REASON = \"active_close_reason\";\nconst RULE_CLOSED_RESOLUTION_BACKFILL = \"closed_resolution_backfill\";\n\nconst ACTIVE_CLEAR_FIELD_RULES: Array<{\n field: LifecyclePatternFieldKey;\n unsetField: string;\n}> = [\n { field: \"blocked_reason\", unsetField: \"blocked-reason\" },\n { field: \"resolution\", unsetField: \"resolution\" },\n { field: \"actual_result\", unsetField: \"actual-result\" },\n];\n\nconst CLOSED_BACKFILL_FIELD_RULES: Array<{\n field: \"resolution\" | \"expected_result\" | \"actual_result\";\n optionKey: \"resolution\" | \"expectedResult\" | \"actualResult\";\n}> = [\n { field: \"resolution\", optionKey: \"resolution\" },\n { field: \"expected_result\", optionKey: \"expectedResult\" },\n { field: \"actual_result\", optionKey: \"actualResult\" },\n];\n\nfunction normalizeComparableText(value: string): string {\n return value.trim().toLowerCase().replaceAll(/\\s+/g, \" \");\n}\n\nfunction isLowSignalText(value: string | undefined): boolean {\n if (!value) {\n return false;\n }\n return LOW_SIGNAL_TEXT_TOKENS.has(normalizeComparableText(value));\n}\n\nfunction sanitizeBeforeValue(value: unknown): unknown {\n if (value === undefined) {\n return null;\n }\n return value;\n}\n\nfunction normalizeLifecyclePatternList(values: readonly string[] | undefined): string[] {\n return [...new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0))].sort(\n (left, right) => left.localeCompare(right),\n );\n}\n\nfunction resolveLifecyclePatternPolicy(settings: LifecyclePatternSettingsSource): LifecyclePatternPolicy {\n return {\n closure_like_metadata_field_patterns: {\n blocked_reason: normalizeLifecyclePatternList(settings.validation.lifecycle_closure_like_blocked_reason_patterns),\n resolution: normalizeLifecyclePatternList(settings.validation.lifecycle_closure_like_resolution_patterns),\n actual_result: normalizeLifecyclePatternList(settings.validation.lifecycle_closure_like_actual_result_patterns),\n },\n };\n}\n\nfunction toMeaningfulCloseReason(value: unknown): string | undefined {\n const normalized = toNonEmptyStringOrUndefined(value);\n if (!normalized || isLowSignalText(normalized)) {\n return undefined;\n }\n return normalized;\n}\n\nfunction normalizeStatusFilter(value: string | undefined, statusRegistry: RuntimeStatusRegistry): ItemStatus | undefined {\n if (value === undefined) {\n return undefined;\n }\n const normalized = normalizeStatusInput(value, statusRegistry);\n if (!normalized) {\n const allowedStatuses = statusRegistry.definitions.map((definition) => definition.id);\n throw new PmCliError(`Invalid --filter-status value \"${value}\". Allowed: ${allowedStatuses.join(\", \")}`, EXIT_CODE.USAGE);\n }\n return normalized;\n}\n\nfunction buildClosedBackfillValue(\n field: \"resolution\" | \"expected_result\" | \"actual_result\",\n closeReason: string | undefined,\n): string {\n const closureEvidenceSuffix = closeReason\n ? \"existing close_reason remains the detailed closure evidence.\"\n : \"the field was missing or low-signal.\";\n if (closeReason) {\n if (field === \"resolution\") {\n return `Resolution normalized from closed status; ${closureEvidenceSuffix}`;\n }\n if (field === \"expected_result\") {\n return `Expected closure outcome normalized from closed status; ${closureEvidenceSuffix}`;\n }\n return `Actual closure outcome normalized from closed status; ${closureEvidenceSuffix}`;\n }\n if (field === \"resolution\") {\n return `Resolution normalized from closed status because ${closureEvidenceSuffix}`;\n }\n if (field === \"expected_result\") {\n return `Expected closure outcome normalized from closed status because ${closureEvidenceSuffix}`;\n }\n return `Actual closure outcome normalized from closed status because ${closureEvidenceSuffix}`;\n}\n\nfunction isTerminalStatus(item: ListedItem, statusRegistry: RuntimeStatusRegistry): boolean {\n const normalized = normalizeStatusInput(item.status, statusRegistry) ?? item.status;\n return statusRegistry.terminal_statuses.has(normalized);\n}\n\nfunction isTerminalDoneStatus(item: ListedItem, terminalDoneStatuses: ReadonlySet<string>, statusRegistry: RuntimeStatusRegistry): boolean {\n const normalized = normalizeStatusInput(item.status, statusRegistry) ?? item.status;\n return terminalDoneStatuses.has(normalized);\n}\n\nfunction buildNormalizePlan(\n item: ListedItem,\n statusRegistry: RuntimeStatusRegistry,\n terminalDoneStatuses: ReadonlySet<string>,\n lifecyclePatterns: LifecyclePatternPolicy,\n): NormalizeInternalItemPlan {\n const updates: UpdateCommandOptions = {};\n const changes: NormalizePlannedChange[] = [];\n const unsetFields = new Set<string>();\n const itemRecord = item as unknown as Record<string, unknown>;\n\n if (!isTerminalStatus(item, statusRegistry)) {\n for (const definition of ACTIVE_CLEAR_FIELD_RULES) {\n const currentValue = toNonEmptyStringOrUndefined(itemRecord[definition.field]);\n if (!currentValue) {\n continue;\n }\n const normalized = normalizeComparableText(currentValue);\n const hasClosurePattern = lifecyclePatterns.closure_like_metadata_field_patterns[definition.field].some((pattern) =>\n normalized.includes(pattern),\n );\n if (!hasClosurePattern && !isLowSignalText(currentValue)) {\n continue;\n }\n if (!unsetFields.has(definition.unsetField)) {\n unsetFields.add(definition.unsetField);\n }\n changes.push({\n field: definition.field,\n before: sanitizeBeforeValue(itemRecord[definition.field]),\n after: null,\n rule: RULE_ACTIVE_CLOSURE_LIKE_METADATA,\n });\n }\n\n if (toNonEmptyStringOrUndefined(itemRecord.close_reason)) {\n unsetFields.add(\"close-reason\");\n changes.push({\n field: \"close_reason\",\n before: sanitizeBeforeValue(itemRecord.close_reason),\n after: null,\n rule: RULE_ACTIVE_CLOSE_REASON,\n });\n }\n }\n\n if (isTerminalDoneStatus(item, terminalDoneStatuses, statusRegistry)) {\n const closeReason = toMeaningfulCloseReason(itemRecord.close_reason);\n for (const definition of CLOSED_BACKFILL_FIELD_RULES) {\n const currentValue = toNonEmptyStringOrUndefined(itemRecord[definition.field]);\n if (currentValue && !isLowSignalText(currentValue)) {\n continue;\n }\n const replacement = buildClosedBackfillValue(definition.field, closeReason);\n updates[definition.optionKey] = replacement;\n changes.push({\n field: definition.field,\n before: sanitizeBeforeValue(itemRecord[definition.field]),\n after: replacement,\n rule: RULE_CLOSED_RESOLUTION_BACKFILL,\n });\n }\n }\n\n if (unsetFields.size > 0) {\n updates.unset = [...unsetFields].sort((left, right) => left.localeCompare(right));\n }\n\n changes.sort((left, right) => left.field.localeCompare(right.field) || left.rule.localeCompare(right.rule));\n return {\n id: item.id,\n changes,\n update: updates,\n };\n}\n\nfunction summarizeRuleCounts(itemPlans: NormalizeItemPlan[]): NormalizeRuleCount[] {\n const counts = new Map<string, number>();\n for (const plan of itemPlans) {\n const planRules = new Set(plan.changes.map((change) => change.rule));\n for (const rule of planRules) {\n counts.set(rule, (counts.get(rule) ?? 0) + 1);\n }\n }\n return [...counts.entries()]\n .map(([rule, count]) => ({ rule, count }))\n .sort((left, right) => left.rule.localeCompare(right.rule));\n}\n\nfunction toNormalizeWarnings(ruleCounts: NormalizeRuleCount[]): string[] {\n return ruleCounts\n .map((entry) => `normalize_${entry.rule}:${entry.count}`)\n .sort((left, right) => left.localeCompare(right));\n}\n\n\nexport async function runNormalize(options: NormalizeCommandOptions, global: GlobalOptions): Promise<NormalizeResult> {\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\n const settings = await readSettings(pmRoot);\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const lifecyclePatternPolicy = resolveLifecyclePatternPolicy(settings as unknown as LifecyclePatternSettingsSource);\n const statusFilter = normalizeStatusFilter(options.status, statusRegistry);\n const dryRun = options.apply === true ? false : true;\n\n if (options.apply === true && options.dryRun === true) {\n throw new PmCliError(\"--dry-run cannot be combined with --apply\", EXIT_CODE.USAGE);\n }\n\n const listed = await runList(\n statusFilter,\n {\n ...options.list,\n includeBody: true,\n excludeTerminal: false,\n },\n global,\n );\n\n const terminalDoneStatuses = new Set<string>(statusRegistry.terminal_done_statuses);\n terminalDoneStatuses.add(statusRegistry.close_status);\n const sortedItems = [...listed.items].sort((left, right) => left.id.localeCompare(right.id));\n const planned = sortedItems.map((item) => buildNormalizePlan(item, statusRegistry, terminalDoneStatuses, lifecyclePatternPolicy));\n const ruleCounts = summarizeRuleCounts(planned);\n const warnings = toNormalizeWarnings(ruleCounts);\n const itemPlans = planned.map((plan) => ({\n id: plan.id,\n changes: plan.changes,\n }));\n const rules = [...new Set(ruleCounts.map((entry) => entry.rule))].sort((left, right) => left.localeCompare(right));\n\n if (dryRun) {\n return {\n mode: \"dry_run\",\n dry_run: true,\n matched_count: listed.items.length,\n filters: listed.filters,\n rules,\n rule_counts: ruleCounts,\n warnings,\n item_plans: itemPlans,\n ids: [],\n generated_at: listed.now,\n };\n }\n\n const applyRows: NormalizeApplyResultRow[] = [];\n const updatedIds: string[] = [];\n const applyMessage =\n typeof options.message === \"string\" && options.message.trim().length > 0 ? options.message : \"normalize apply\";\n const updateBaseOptions: Pick<UpdateCommandOptions, \"author\" | \"message\" | \"force\" | \"allowAuditUpdate\"> = {\n author: options.author,\n message: applyMessage,\n force: options.force === true ? true : undefined,\n allowAuditUpdate: options.allowAuditUpdate === true ? true : undefined,\n };\n\n for (const plan of planned) {\n if (plan.changes.length === 0) {\n applyRows.push({\n id: plan.id,\n status: \"skipped\",\n });\n continue;\n }\n try {\n const result = await runUpdate(\n plan.id,\n {\n ...plan.update,\n ...updateBaseOptions,\n },\n global,\n );\n applyRows.push({\n id: plan.id,\n status: \"updated\",\n changed_fields: result.changed_fields,\n warnings: result.warnings,\n });\n updatedIds.push(plan.id);\n } catch (error: unknown) {\n applyRows.push({\n id: plan.id,\n status: \"failed\",\n error: toErrorMessage(error),\n });\n }\n }\n\n const updatedCount = applyRows.filter((row) => row.status === \"updated\").length;\n const skippedCount = applyRows.filter((row) => row.status === \"skipped\").length;\n const failedCount = applyRows.filter((row) => row.status === \"failed\").length;\n\n return {\n mode: \"apply\",\n dry_run: false,\n matched_count: listed.items.length,\n filters: listed.filters,\n rules,\n rule_counts: ruleCounts,\n warnings,\n item_plans: itemPlans,\n updated_count: updatedCount,\n skipped_count: skippedCount,\n failed_count: failedCount,\n rows: applyRows,\n ids: updatedIds,\n generated_at: listed.now,\n };\n}\n"]}
@@ -8,20 +8,12 @@ import { createStdinTokenResolver, parseCsvKv } from "../../core/item/parse.js";
8
8
  import { locateItem, mutateItem, readLocatedItem } from "../../core/store/item-store.js";
9
9
  import { getSettingsPath, resolvePmRoot } from "../../core/store/paths.js";
10
10
  import { readSettings } from "../../core/store/settings.js";
11
+ import { parseLimit } from "../shared-parsers.js";
11
12
  function resolveAuthor(candidate, fallback) {
12
13
  const resolved = candidate ?? process.env.PM_AUTHOR ?? fallback;
13
14
  const trimmed = resolved.trim();
14
15
  return trimmed || "unknown";
15
16
  }
16
- function parseLimit(raw) {
17
- if (raw === undefined)
18
- return undefined;
19
- const parsed = Number(raw);
20
- if (!Number.isFinite(parsed) || parsed < 0) {
21
- throw new PmCliError("Invalid --limit value", EXIT_CODE.USAGE);
22
- }
23
- return Math.floor(parsed);
24
- }
25
17
  function limitNotes(values, limit) {
26
18
  if (limit === undefined)
27
19
  return values;
@@ -1 +1 @@
1
- {"version":3,"file":"notes.js","sourceRoot":"","sources":["../../../src/cli/commands/notes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notes.js","sourceRoot":"/","sources":["cli/commands/notes.ts"],"names":[],"mappings":"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","sourcesContent":["import { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { nowIso } from \"../../core/shared/time.js\";\nimport { createStdinTokenResolver, parseCsvKv } from \"../../core/item/parse.js\";\nimport { locateItem, mutateItem, readLocatedItem } from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { parseLimit } from \"../shared-parsers.js\";\nimport type { LogNote } from \"../../types/index.js\";\n\nexport interface NotesCommandOptions {\n add?: string;\n limit?: string;\n author?: string;\n message?: string;\n allowAuditNote?: boolean;\n allowAuditComment?: boolean;\n force?: boolean;\n}\n\nexport interface NotesResult {\n id: string;\n notes: LogNote[];\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 limitNotes(values: LogNote[], limit: number | undefined): LogNote[] {\n if (limit === undefined) return values;\n if (limit === 0) return [];\n return values.slice(Math.max(0, values.length - limit));\n}\n\nfunction parseNoteTextInput(raw: string): string {\n const trimmed = raw.trim();\n if (!trimmed) {\n return \"\";\n }\n const looksStructured = /^(?:[-*+]\\s*)?text\\s*[:=]/im.test(trimmed) || trimmed.startsWith(\"```\");\n if (!looksStructured) {\n return trimmed;\n }\n try {\n const kv = parseCsvKv(trimmed, \"--add\");\n const keys = Object.keys(kv).map((key) => key.trim().toLowerCase());\n if (keys.some((key) => key !== \"text\")) {\n return trimmed;\n }\n const text = kv.text?.trim();\n return text || trimmed;\n } catch {\n return trimmed;\n }\n}\n\nexport async function runNotes(id: string, options: NotesCommandOptions, global: GlobalOptions): Promise<NotesResult> {\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 limit = parseLimit(options.limit);\n\n if (options.add === undefined) {\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 const loaded = await readLocatedItem(located, { schema: settings.schema });\n const notes = limitNotes(loaded.document.front_matter.notes ?? [], limit);\n return {\n id: located.id,\n notes,\n count: notes.length,\n };\n }\n\n const author = resolveAuthor(options.author, settings.author_default);\n const addInput = await stdinResolver.resolveValue(options.add, \"--add\");\n const text = parseNoteTextInput(addInput ?? \"\");\n if (!text) {\n throw new PmCliError(\"--add text cannot be empty\", EXIT_CODE.USAGE);\n }\n\n let result: Awaited<ReturnType<typeof mutateItem>>;\n try {\n result = await mutateItem({\n pmRoot,\n settings,\n id,\n op: \"note_add\",\n author,\n message: options.message,\n force: options.force,\n bypassAssigneeConflict: Boolean(options.allowAuditNote || options.allowAuditComment),\n mutate(document) {\n const notes = document.front_matter.notes ?? [];\n notes.push({\n created_at: nowIso(),\n author,\n text,\n });\n document.front_matter.notes = notes;\n return { changedFields: [\"notes\"] };\n },\n });\n } catch (error: unknown) {\n if (\n error instanceof PmCliError &&\n error.exitCode === EXIT_CODE.CONFLICT &&\n error.message.includes(\"is assigned to\") &&\n error.message.includes(\"Use --force to override\")\n ) {\n throw new PmCliError(error.message, error.exitCode, {\n code: \"ownership_conflict\",\n required:\n \"For append-only note audits on another owner's item, prefer --allow-audit-note (legacy alias: --allow-audit-comment) before considering --force.\",\n examples: ['pm notes pm-a1b2 --add \"audit note\" --author \"reviewer\" --allow-audit-note'],\n nextSteps: [\n \"Retry with --allow-audit-note (or legacy --allow-audit-comment) for append-only note audits that do not mutate item metadata beyond notes.\",\n \"Use --force only when an ownership override is explicitly approved.\",\n ],\n });\n }\n throw error;\n }\n\n const notes = limitNotes(result.item.notes as LogNote[], limit);\n return {\n id: result.item.id,\n notes,\n count: notes.length,\n };\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import path from "node:path";
2
+ import { toNonEmptyStringOrUndefined } from "../../core/shared/primitives.js";
2
3
  import { getActiveExtensionRegistrations, runActiveOnIndexHooks, runActiveOnWriteHooks } from "../../core/extensions/index.js";
3
4
  import { resolveRegisteredSearchProvider, resolveRegisteredVectorStoreAdapter, } from "../../core/extensions/runtime-registrations.js";
4
5
  import { pathExists, writeFileAtomic } from "../../core/fs/fs-utils.js";
@@ -75,13 +76,7 @@ function buildKeywordRecord(document, mode) {
75
76
  function buildSemanticCorpusInput(document) {
76
77
  return JSON.stringify(buildKeywordRecord(document, "semantic").corpus);
77
78
  }
78
- function toOptionalNonEmptyString(value) {
79
- if (typeof value !== "string") {
80
- return undefined;
81
- }
82
- const normalized = value.trim();
83
- return normalized.length > 0 ? normalized : undefined;
84
- }
79
+ const toOptionalNonEmptyString = toNonEmptyStringOrUndefined;
85
80
  function resolveExtensionSearchEmbedding(settings) {
86
81
  const registrations = getActiveExtensionRegistrations();
87
82
  const providerName = toOptionalNonEmptyString(settings.search?.provider);
@@ -1 +1 @@
1
- {"version":3,"file":"reindex.js","sourceRoot":"","sources":["../../../src/cli/commands/reindex.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,+BAA+B,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC/H,OAAO,EACL,+BAA+B,EAC/B,mCAAmC,GACpC,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,0CAA0C,EAAE,MAAM,wCAAwC,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG5D,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAC5C,MAAM,eAAe,GAAG,yBAAyB,CAAC;AAmBlD,SAAS,yBAAyB,CAAC,OAAuB;IACxD,OAAO,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;AACpE,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgB,EAAE,OAAe;IAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,OAAO,IAAI,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,0CAA0C;IAC5C,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,GAAuB;IACxC,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QACzD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,UAAU,CAAC,qDAAqD,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/F,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,MAAc,EACd,UAAoC,EACpC,YAAoC,EACpC,MAA4B;IAE5B,MAAM,KAAK,GAAG,MAAM,0BAA0B,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACpG,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC;QACtC,OAAO;YACL,YAAY,EAAE,WAAW;YACzB,IAAI;SACL,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAsB,EAAE,IAAuC;IACzF,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC;IACnC,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI;QACJ,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,MAAM,EAAE;YACN,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YAC1D,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YACpD,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YAC5D,YAAY,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACtD,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC,CAAC;SACJ;KACF,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAsB;IACtD,OAAO,IAAI,CAAC,SAAS,CAAE,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAyC,CAAC,MAAM,CAAC,CAAC;AAClH,CAAC;AAuBD,SAAS,wBAAwB,CAAC,KAAc;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC;AAED,SAAS,+BAA+B,CACtC,QAAoB;IAEpB,MAAM,aAAa,GAAG,+BAA+B,EAAE,CAAC;IACxD,MAAM,YAAY,GAAG,wBAAwB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,+BAA+B,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAClF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,iBAAiB,GAAG,YAAY,CAAC,kBAAkB,IAAI,YAAY,CAAC,UAAU,CAAC;IACrF,MAAM,IAAI,GACR,wBAAwB,CAAE,iBAAwC,CAAC,IAAI,CAAC;QACxE,wBAAwB,CAAE,YAAY,CAAC,UAAiC,CAAC,IAAI,CAAC;QAC9E,YAAY,CAAC;IACf,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAI,iBAAqE,CAAC,UAAU,CAAC;IACrG,MAAM,eAAe,GAAI,iBAAqE,CAAC,WAAW,CAAC;IAC3G,MAAM,KAAK,GAAI,iBAAyC,CAAC,KAAK,CAAC;IAC/D,MAAM,kBAAkB,GACtB,OAAO,UAAU,KAAK,UAAU;QAC9B,CAAC,CAAE,UAAkC;QACrC,CAAC,CAAC,OAAO,eAAe,KAAK,UAAU;YACrC,CAAC,CAAE,eAAuC;YAC1C,CAAC,CAAC,SAAS,CAAC;IAClB,MAAM,aAAa,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,KAA2B,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,IAAI,CAAC,kBAAkB,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,IAAI;QACJ,UAAU,EAAE,kBAAkB;QAC9B,KAAK,EAAE,aAAa;KACrB,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,QAAoB;IACxD,MAAM,aAAa,GAAG,+BAA+B,EAAE,CAAC;IACxD,MAAM,WAAW,GAAG,wBAAwB,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC7E,MAAM,YAAY,GAAG,mCAAmC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACrF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,iBAAiB,GAAG,YAAY,CAAC,kBAAkB,IAAI,YAAY,CAAC,UAAU,CAAC;IACrF,MAAM,IAAI,GACR,wBAAwB,CAAE,iBAAwC,CAAC,IAAI,CAAC;QACxE,wBAAwB,CAAE,YAAY,CAAC,UAAiC,CAAC,IAAI,CAAC;QAC9E,WAAW,CAAC;IACd,MAAM,MAAM,GAAI,iBAA0C,CAAC,MAAM,CAAC;IAClE,IAAI,CAAC,IAAI,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,IAAI;QACJ,MAAM,EAAE,MAA+B;KACxC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,OAAe;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACzG,MAAM,IAAI,UAAU,CAAC,8BAA8B,OAAO,EAAE,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,kBAAiG,EACjG,QAAoB,EACpB,YAAsB;IAEtB,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,wBAAwB,CAAC;IACnF,IAAI,kBAAkB,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CACnC,kBAAkB,CAAC,UAAU,CAAC;YAC5B,MAAM,EAAE,YAAY;YACpB,QAAQ;YACR,KAAK;SACN,CAAC,CACH,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,UAAU,CAClB,8BAA8B,kBAAkB,CAAC,IAAI,8CAA8C,EACnG,SAAS,CAAC,eAAe,CAC1B,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACnC,YAAY,CAAC,MAAM,EAAE,8BAA8B,kBAAkB,CAAC,IAAI,gCAAgC,KAAK,EAAE,CAAC,CACnH,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,IAAI,UAAU,CAClB,8BAA8B,kBAAkB,CAAC,IAAI,uCAAuC,EAC5F,SAAS,CAAC,eAAe,CAC1B,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAClC,kBAAkB,CAAC,KAAK,CAAC;YACvB,KAAK;YACL,QAAQ;YACR,KAAK;SACN,CAAC,CACH,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,8BAA8B,kBAAkB,CAAC,IAAI,2BAA2B,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9H,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAuB,EAAE,MAAqB;IAC7E,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC3D,mBAAmB,CAAC,eAAe,EAAE,cAAc,aAAa,EAAE,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,UAAU,CAAC,iCAAiC,MAAM,sBAAsB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3G,CAAC;IAED,MAAM,QAAQ,GAAG,0CAA0C,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IACjG,MAAM,YAAY,GAAG,uBAAuB,CAAC,QAAQ,EAAE,+BAA+B,EAAE,CAAC,CAAC;IAC1F,MAAM,kBAAkB,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;IACrE,MAAM,qBAAqB,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IACrE,IAAI,uBAAuB,GAA2D,IAAI,CAAC;IAC3F,IAAI,iBAAiB,GAAqD,IAAI,CAAC;IAC/E,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtD,MAAM,IAAI,UAAU,CAClB,iBAAiB,aAAa,iKAAiK,EAC/L,SAAS,CAAC,KAAK,CAChB,CAAC;QACJ,CAAC;QACD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACvD,MAAM,IAAI,UAAU,CAClB,iBAAiB,aAAa,sKAAsK,EACpM,SAAS,CAAC,KAAK,CAChB,CAAC;QACJ,CAAC;QACD,uBAAuB,GAAG,kBAAkB,CAAC,MAAM,CAAC;QACpD,iBAAiB,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAC9C,CAAC;IACD,MAAM,IAAI,GAAG,aAAa,CAAC;IAC3B,mBAAmB,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClH,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC;IAE7B,MAAM,QAAQ,GAAG;QACf,OAAO,EAAE,CAAC;QACV,IAAI;QACJ,YAAY,EAAE,WAAW;QACzB,WAAW,EAAE,SAAS,CAAC,MAAM;QAC7B,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAClC,EAAE,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE;YAC5B,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI;YAChC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,MAAM;YACpC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,QAAQ;YACxC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,UAAU;SAC7C,CAAC,CAAC;KACJ,CAAC;IAEF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAE1D,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnH,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,MAAM,0BAA0B,GAA2B,EAAE,CAAC;IAC9D,IAAI,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,mBAAmB,CAAC,eAAe,EAAE,yBAAyB,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAClF,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrF,IAAI,OAAO,GAAe,EAAE,CAAC;QAC7B,IAAI,kBAAkB,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,yBAAyB,CAAC,kBAAkB,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;YACxF,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAC7B,MAAM,IAAI,UAAU,CAClB,8BAA8B,kBAAkB,CAAC,IAAI,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACjJ,SAAS,CAAC,eAAe,CAC1B,CAAC;gBACJ,CAAC;gBACD,gBAAgB,CAAC,IAAI,CACnB,8BAA8B,kBAAkB,CAAC,IAAI,gDAAgD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAC/J,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC7B,MAAM,IAAI,UAAU,CAClB,qDAAqD,aAAa,GAAG,EACrE,SAAS,CAAC,KAAK,CAChB,CAAC;YACJ,CAAC;YACD,MAAM,eAAe,GAAG,MAAM,gCAAgC,CAAC,uBAAuB,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;YAChH,gBAAgB,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YACnD,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC;QACpC,CAAC;QACD,mBAAmB,CAAC,eAAe,EAAE,8BAA8B,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACrF,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,IAAI,UAAU,CAClB,4CAA4C,SAAS,CAAC,MAAM,cAAc,OAAO,CAAC,MAAM,GAAG,EAC3F,SAAS,CAAC,eAAe,CAC1B,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACjD,EAAE,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE;YAC5B,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,sCAAsC,KAAK,EAAE,CAAC;YACnF,OAAO,EAAE;gBACP,EAAE,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE;gBAC5B,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI;gBAChC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,MAAM;gBACpC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,QAAQ;gBACxC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,UAAU;aAC7C;SACF,CAAC,CAAC,CAAC;QACJ,IAAI,qBAAqB,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,mBAAmB,CAAC,eAAe,EAAE,+BAA+B,qBAAqB,CAAC,IAAI,WAAW,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC1H,MAAM,OAAO,CAAC,OAAO,CACnB,qBAAqB,CAAC,MAAM,CAAC;oBAC3B,MAAM;oBACN,QAAQ;iBACT,CAAC,CACH,CAAC;gBACF,mBAAmB,CAAC,eAAe,EAAE,kCAAkC,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC;YACvG,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACvB,MAAM,IAAI,UAAU,CAClB,6BAA6B,qBAAqB,CAAC,IAAI,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC9I,SAAS,CAAC,eAAe,CAC1B,CAAC;gBACJ,CAAC;gBACD,gBAAgB,CAAC,IAAI,CACnB,6BAA6B,qBAAqB,CAAC,IAAI,oDAAoD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CACrK,CAAC;gBACF,mBAAmB,CAAC,eAAe,EAAE,uCAAuC,CAAC,CAAC;gBAC9E,MAAM,mBAAmB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;gBACrD,mBAAmB,CAAC,eAAe,EAAE,kCAAkC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;aAAM,IAAI,iBAAiB,EAAE,CAAC;YAC7B,mBAAmB,CAAC,eAAe,EAAE,+BAA+B,iBAAiB,CAAC,IAAI,WAAW,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACtH,MAAM,mBAAmB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;YACrD,mBAAmB,CAAC,eAAe,EAAE,kCAAkC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;QACnG,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,UAAU,CAClB,yDAAyD,aAAa,GAAG,EACzE,SAAS,CAAC,KAAK,CAChB,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,0BAA0B,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC;QAC1F,CAAC;IACH,CAAC;IACD,mBAAmB,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAC;IAClE,MAAM,eAAe,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9E,MAAM,eAAe,CAAC,cAAc,EAAE,GAAG,eAAe,IAAI,CAAC,CAAC;IAC9D,MAAM,qBAAqB,GAAa,EAAE,CAAC;IAC3C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,mBAAmB,CAAC,eAAe,EAAE,qCAAqC,CAAC,CAAC;YAC5E,MAAM,8BAA8B,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,qBAAqB,CAAC,IAAI,CACxB,mDAAmD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC5G,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,YAAY,GAAG;QACnB,GAAG,CAAC,MAAM,qBAAqB,CAAC;YAC9B,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,SAAS;YAChB,EAAE,EAAE,kBAAkB;SACvB,CAAC,CAAC;QACH,GAAG,CAAC,MAAM,qBAAqB,CAAC;YAC9B,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,SAAS;YAChB,EAAE,EAAE,oBAAoB;SACzB,CAAC,CAAC;QACH,GAAG,CAAC,MAAM,qBAAqB,CAAC;YAC9B,IAAI;YACJ,WAAW,EAAE,SAAS,CAAC,MAAM;SAC9B,CAAC,CAAC;KACJ,CAAC;IACF,mBAAmB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAE7C,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI;QACJ,WAAW,EAAE,SAAS,CAAC,MAAM;QAC7B,SAAS,EAAE;YACT,QAAQ,EAAE,aAAa;YACvB,UAAU,EAAE,eAAe;SAC5B;QACD,QAAQ,EAAE,CAAC,GAAG,gBAAgB,EAAE,GAAG,qBAAqB,EAAE,GAAG,YAAY,CAAC;QAC1E,YAAY,EAAE,WAAW;KAC1B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"reindex.js","sourceRoot":"/","sources":["cli/commands/reindex.ts"],"names":[],"mappings":"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","sourcesContent":["import path from \"node:path\";\nimport { toNonEmptyStringOrUndefined } from \"../../core/shared/primitives.js\";\nimport { getActiveExtensionRegistrations, runActiveOnIndexHooks, runActiveOnWriteHooks } from \"../../core/extensions/index.js\";\nimport {\n resolveRegisteredSearchProvider,\n resolveRegisteredVectorStoreAdapter,\n} from \"../../core/extensions/runtime-registrations.js\";\nimport { pathExists, writeFileAtomic } from \"../../core/fs/fs-utils.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { executeEmbeddingBatchesWithRetry } from \"../../core/search/embedding-batches.js\";\nimport { writeVectorizationStatusLedger } from \"../../core/search/cache.js\";\nimport { resolveEmbeddingProviders } from \"../../core/search/providers.js\";\nimport { resolveSettingsWithSemanticRuntimeDefaults } from \"../../core/search/semantic-defaults.js\";\nimport { executeVectorUpsert, resolveVectorStores } from \"../../core/search/vector-stores.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 { listAllFrontMatterWithBody } from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport type { ItemDocument, PmSettings } from \"../../types/index.js\";\n\nconst MANIFEST_PATH = \"index/manifest.json\";\nconst EMBEDDINGS_PATH = \"search/embeddings.jsonl\";\n\nexport interface ReindexOptions {\n mode?: string;\n progress?: boolean;\n}\n\nexport interface ReindexResult {\n ok: boolean;\n mode: \"keyword\" | \"semantic\" | \"hybrid\";\n total_items: number;\n artifacts: {\n manifest: string;\n embeddings: string;\n };\n warnings: string[];\n generated_at: string;\n}\n\nfunction shouldEmitReindexProgress(options: ReindexOptions): boolean {\n return options.progress === true || process.stderr.isTTY === true;\n}\n\nfunction emitReindexProgress(enabled: boolean, message: string): void {\n if (!enabled) {\n return;\n }\n try {\n process.stderr.write(`[pm reindex] ${message}\\n`);\n } catch {\n // Ignore transient stderr write failures.\n }\n}\n\nfunction parseMode(raw: string | undefined): \"keyword\" | \"semantic\" | \"hybrid\" {\n const normalized = (raw ?? \"keyword\").trim().toLowerCase();\n if (normalized === \"keyword\") {\n return \"keyword\";\n }\n if (normalized === \"semantic\" || normalized === \"hybrid\") {\n return normalized;\n }\n throw new PmCliError(\"Reindex mode must be one of keyword|semantic|hybrid\", EXIT_CODE.USAGE);\n}\n\nasync function loadDocuments(\n pmRoot: string,\n itemFormat: \"toon\" | \"json_markdown\",\n typeToFolder: Record<string, string>,\n schema: PmSettings[\"schema\"],\n): Promise<ItemDocument[]> {\n const items = await listAllFrontMatterWithBody(pmRoot, itemFormat, typeToFolder, undefined, schema);\n return items.map((item) => {\n const { body, ...frontMatter } = item;\n return {\n front_matter: frontMatter,\n body,\n };\n });\n}\n\nfunction buildKeywordRecord(document: ItemDocument, mode: \"keyword\" | \"semantic\" | \"hybrid\"): Record<string, unknown> {\n const item = document.front_matter;\n return {\n id: item.id,\n mode,\n updated_at: item.updated_at,\n corpus: {\n title: item.title,\n description: item.description,\n tags: item.tags,\n status: item.status,\n body: document.body,\n comments: (item.comments ?? []).map((entry) => entry.text),\n notes: (item.notes ?? []).map((entry) => entry.text),\n learnings: (item.learnings ?? []).map((entry) => entry.text),\n dependencies: (item.dependencies ?? []).map((entry) => ({\n id: entry.id,\n kind: entry.kind,\n })),\n },\n };\n}\n\nfunction buildSemanticCorpusInput(document: ItemDocument): string {\n return JSON.stringify((buildKeywordRecord(document, \"semantic\") as { corpus: Record<string, unknown> }).corpus);\n}\n\ntype ExtensionEmbedBatch = (context: {\n inputs: string[];\n settings: PmSettings;\n model: string;\n}) => Promise<number[][]> | number[][];\n\ntype ExtensionEmbedOne = (context: {\n input: string;\n settings: PmSettings;\n model: string;\n}) => Promise<number[]> | number[];\n\ntype ExtensionVectorUpsert = (context: {\n points: Array<{\n id: string;\n vector: number[];\n payload: Record<string, unknown>;\n }>;\n settings: PmSettings;\n}) => Promise<void> | void;\n\nconst toOptionalNonEmptyString = toNonEmptyStringOrUndefined;\n\nfunction resolveExtensionSearchEmbedding(\n settings: PmSettings,\n): { name: string; embedBatch?: ExtensionEmbedBatch; embed?: ExtensionEmbedOne } | null {\n const registrations = getActiveExtensionRegistrations();\n const providerName = toOptionalNonEmptyString(settings.search?.provider);\n const registration = resolveRegisteredSearchProvider(registrations, providerName);\n if (!registration) {\n return null;\n }\n const runtimeDefinition = registration.runtime_definition ?? registration.definition;\n const name =\n toOptionalNonEmptyString((runtimeDefinition as { name?: unknown }).name) ??\n toOptionalNonEmptyString((registration.definition as { name?: unknown }).name) ??\n providerName;\n if (!name) {\n return null;\n }\n const embedBatch = (runtimeDefinition as { embedBatch?: unknown; embed_batch?: unknown }).embedBatch;\n const embedBatchSnake = (runtimeDefinition as { embedBatch?: unknown; embed_batch?: unknown }).embed_batch;\n const embed = (runtimeDefinition as { embed?: unknown }).embed;\n const resolvedEmbedBatch =\n typeof embedBatch === \"function\"\n ? (embedBatch as ExtensionEmbedBatch)\n : typeof embedBatchSnake === \"function\"\n ? (embedBatchSnake as ExtensionEmbedBatch)\n : undefined;\n const resolvedEmbed = typeof embed === \"function\" ? (embed as ExtensionEmbedOne) : undefined;\n if (!resolvedEmbedBatch && !resolvedEmbed) {\n return null;\n }\n return {\n name,\n embedBatch: resolvedEmbedBatch,\n embed: resolvedEmbed,\n };\n}\n\nfunction resolveExtensionVectorUpsert(settings: PmSettings): { name: string; upsert: ExtensionVectorUpsert } | null {\n const registrations = getActiveExtensionRegistrations();\n const adapterName = toOptionalNonEmptyString(settings.vector_store?.adapter);\n const registration = resolveRegisteredVectorStoreAdapter(registrations, adapterName);\n if (!registration) {\n return null;\n }\n const runtimeDefinition = registration.runtime_definition ?? registration.definition;\n const name =\n toOptionalNonEmptyString((runtimeDefinition as { name?: unknown }).name) ??\n toOptionalNonEmptyString((registration.definition as { name?: unknown }).name) ??\n adapterName;\n const upsert = (runtimeDefinition as { upsert?: unknown }).upsert;\n if (!name || typeof upsert !== \"function\") {\n return null;\n }\n return {\n name,\n upsert: upsert as ExtensionVectorUpsert,\n };\n}\n\nfunction assertVector(value: unknown, context: string): number[] {\n if (!Array.isArray(value) || value.some((entry) => typeof entry !== \"number\" || !Number.isFinite(entry))) {\n throw new PmCliError(`Invalid vector returned by ${context}`, EXIT_CODE.GENERIC_FAILURE);\n }\n return value;\n}\n\nasync function executeExtensionEmbedding(\n extensionEmbedding: { name: string; embedBatch?: ExtensionEmbedBatch; embed?: ExtensionEmbedOne },\n settings: PmSettings,\n corpusInputs: string[],\n): Promise<number[][]> {\n const model = settings.search?.embedding_model?.trim() || \"text-embedding-3-small\";\n if (extensionEmbedding.embedBatch) {\n const vectors = await Promise.resolve(\n extensionEmbedding.embedBatch({\n inputs: corpusInputs,\n settings,\n model,\n }),\n );\n if (!Array.isArray(vectors)) {\n throw new PmCliError(\n `Extension search provider \"${extensionEmbedding.name}\" embedBatch must return an array of vectors`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n return vectors.map((vector, index) =>\n assertVector(vector, `extension search provider \"${extensionEmbedding.name}\" embedBatch output at index ${index}`),\n );\n }\n if (!extensionEmbedding.embed) {\n throw new PmCliError(\n `Extension search provider \"${extensionEmbedding.name}\" does not implement embed/embedBatch`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n const vectors: number[][] = [];\n for (const [index, input] of corpusInputs.entries()) {\n const vector = await Promise.resolve(\n extensionEmbedding.embed({\n input,\n settings,\n model,\n }),\n );\n vectors.push(assertVector(vector, `extension search provider \"${extensionEmbedding.name}\" embed output at index ${index}`));\n }\n return vectors;\n}\n\nexport async function runReindex(options: ReindexOptions, global: GlobalOptions): Promise<ReindexResult> {\n const requestedMode = parseMode(options.mode);\n const progressEnabled = shouldEmitReindexProgress(options);\n emitReindexProgress(progressEnabled, `start mode=${requestedMode}`);\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\n const settings = resolveSettingsWithSemanticRuntimeDefaults(await readSettings(pmRoot)).settings;\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const extensionEmbedding = resolveExtensionSearchEmbedding(settings);\n const extensionVectorUpsert = resolveExtensionVectorUpsert(settings);\n let activeEmbeddingProvider: ReturnType<typeof resolveEmbeddingProviders>[\"active\"] = null;\n let activeVectorStore: ReturnType<typeof resolveVectorStores>[\"active\"] = null;\n if (requestedMode !== \"keyword\") {\n const providerResolution = resolveEmbeddingProviders(settings);\n if (!providerResolution.active && !extensionEmbedding) {\n throw new PmCliError(\n `Reindex mode '${requestedMode}' requires a configured embedding provider in settings.providers.openai/settings.providers.ollama or an extension provider selected by settings.search.provider`,\n EXIT_CODE.USAGE,\n );\n }\n const vectorResolution = resolveVectorStores(settings);\n if (!vectorResolution.active && !extensionVectorUpsert) {\n throw new PmCliError(\n `Reindex mode '${requestedMode}' requires a configured vector store in settings.vector_store.qdrant/settings.vector_store.lancedb or an extension adapter selected by settings.vector_store.adapter`,\n EXIT_CODE.USAGE,\n );\n }\n activeEmbeddingProvider = providerResolution.active;\n activeVectorStore = vectorResolution.active;\n }\n const mode = requestedMode;\n emitReindexProgress(progressEnabled, \"loading item corpus\");\n const documents = await loadDocuments(pmRoot, settings.item_format, typeRegistry.type_to_folder, settings.schema);\n emitReindexProgress(progressEnabled, `loaded_items=${documents.length}`);\n const generatedAt = nowIso();\n\n const manifest = {\n version: 1,\n mode,\n generated_at: generatedAt,\n total_items: documents.length,\n items: documents.map((document) => ({\n id: document.front_matter.id,\n type: document.front_matter.type,\n status: document.front_matter.status,\n priority: document.front_matter.priority,\n updated_at: document.front_matter.updated_at,\n })),\n };\n\n const manifestPath = path.join(pmRoot, MANIFEST_PATH);\n const embeddingsPath = path.join(pmRoot, EMBEDDINGS_PATH);\n\n const embeddingsLines = documents.map((document) => JSON.stringify(buildKeywordRecord(document, mode))).join(\"\\n\");\n const semanticWarnings: string[] = [];\n const vectorizationLedgerEntries: Record<string, string> = {};\n if (mode !== \"keyword\" && documents.length > 0) {\n emitReindexProgress(progressEnabled, `embedding_start items=${documents.length}`);\n const corpusInputs = documents.map((document) => buildSemanticCorpusInput(document));\n let vectors: number[][] = [];\n if (extensionEmbedding) {\n try {\n vectors = await executeExtensionEmbedding(extensionEmbedding, settings, corpusInputs);\n } catch (error: unknown) {\n if (!activeEmbeddingProvider) {\n throw new PmCliError(\n `Extension search provider \"${extensionEmbedding.name}\" failed to generate embeddings: ${error instanceof Error ? error.message : String(error)}`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n semanticWarnings.push(\n `Extension search provider \"${extensionEmbedding.name}\" failed; falling back to built-in provider (${error instanceof Error ? error.message : String(error)})`,\n );\n }\n }\n if (vectors.length === 0) {\n if (!activeEmbeddingProvider) {\n throw new PmCliError(\n `No embedding executor available for reindex mode '${requestedMode}'`,\n EXIT_CODE.USAGE,\n );\n }\n const embeddingResult = await executeEmbeddingBatchesWithRetry(activeEmbeddingProvider, settings, corpusInputs);\n semanticWarnings.push(...embeddingResult.warnings);\n vectors = embeddingResult.vectors;\n }\n emitReindexProgress(progressEnabled, `embedding_complete vectors=${vectors.length}`);\n if (vectors.length !== documents.length) {\n throw new PmCliError(\n `Embedding output size mismatch (expected ${documents.length}, received ${vectors.length})`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n const points = documents.map((document, index) => ({\n id: document.front_matter.id,\n vector: assertVector(vectors[index], `reindex embeddings output at index ${index}`),\n payload: {\n id: document.front_matter.id,\n type: document.front_matter.type,\n status: document.front_matter.status,\n priority: document.front_matter.priority,\n updated_at: document.front_matter.updated_at,\n },\n }));\n if (extensionVectorUpsert) {\n try {\n emitReindexProgress(progressEnabled, `vector_upsert_start adapter=${extensionVectorUpsert.name} points=${points.length}`);\n await Promise.resolve(\n extensionVectorUpsert.upsert({\n points,\n settings,\n }),\n );\n emitReindexProgress(progressEnabled, `vector_upsert_complete adapter=${extensionVectorUpsert.name}`);\n } catch (error: unknown) {\n if (!activeVectorStore) {\n throw new PmCliError(\n `Extension vector adapter \"${extensionVectorUpsert.name}\" failed to upsert vectors: ${error instanceof Error ? error.message : String(error)}`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n semanticWarnings.push(\n `Extension vector adapter \"${extensionVectorUpsert.name}\" failed; falling back to built-in vector store (${error instanceof Error ? error.message : String(error)})`,\n );\n emitReindexProgress(progressEnabled, \"vector_upsert_fallback built_in_store\");\n await executeVectorUpsert(activeVectorStore, points);\n emitReindexProgress(progressEnabled, `vector_upsert_complete adapter=${activeVectorStore.name}`);\n }\n } else if (activeVectorStore) {\n emitReindexProgress(progressEnabled, `vector_upsert_start adapter=${activeVectorStore.name} points=${points.length}`);\n await executeVectorUpsert(activeVectorStore, points);\n emitReindexProgress(progressEnabled, `vector_upsert_complete adapter=${activeVectorStore.name}`);\n } else {\n throw new PmCliError(\n `No vector upsert executor available for reindex mode '${requestedMode}'`,\n EXIT_CODE.USAGE,\n );\n }\n for (const document of documents) {\n vectorizationLedgerEntries[document.front_matter.id] = document.front_matter.updated_at;\n }\n }\n emitReindexProgress(progressEnabled, \"writing keyword artifacts\");\n await writeFileAtomic(manifestPath, `${JSON.stringify(manifest, null, 2)}\\n`);\n await writeFileAtomic(embeddingsPath, `${embeddingsLines}\\n`);\n const vectorizationWarnings: string[] = [];\n if (mode !== \"keyword\") {\n try {\n emitReindexProgress(progressEnabled, \"writing vectorization status ledger\");\n await writeVectorizationStatusLedger(pmRoot, vectorizationLedgerEntries);\n } catch (error: unknown) {\n vectorizationWarnings.push(\n `search_vectorization_status_ledger_write_failed:${error instanceof Error ? error.message : String(error)}`,\n );\n }\n }\n const hookWarnings = [\n ...(await runActiveOnWriteHooks({\n path: manifestPath,\n scope: \"project\",\n op: \"reindex:manifest\",\n })),\n ...(await runActiveOnWriteHooks({\n path: embeddingsPath,\n scope: \"project\",\n op: \"reindex:embeddings\",\n })),\n ...(await runActiveOnIndexHooks({\n mode,\n total_items: documents.length,\n })),\n ];\n emitReindexProgress(progressEnabled, \"done\");\n\n return {\n ok: true,\n mode,\n total_items: documents.length,\n artifacts: {\n manifest: MANIFEST_PATH,\n embeddings: EMBEDDINGS_PATH,\n },\n warnings: [...semanticWarnings, ...vectorizationWarnings, ...hookWarnings],\n generated_at: generatedAt,\n };\n}\n"]}