@unbrained/pm-cli 2026.5.14 → 2026.5.24

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 (436) hide show
  1. package/.claude-plugin/marketplace.json +4 -4
  2. package/AGENTS.md +78 -457
  3. package/CHANGELOG.md +71 -0
  4. package/CONTRIBUTING.md +1 -0
  5. package/README.md +8 -6
  6. package/dist/cli/argv-utils.js +4 -1
  7. package/dist/cli/argv-utils.js.map +1 -1
  8. package/dist/cli/bootstrap-args.js +4 -1
  9. package/dist/cli/bootstrap-args.js.map +1 -1
  10. package/dist/cli/commander-usage.js +19 -1
  11. package/dist/cli/commander-usage.js.map +1 -1
  12. package/dist/cli/commands/activity.js +4 -1
  13. package/dist/cli/commands/activity.js.map +1 -1
  14. package/dist/cli/commands/aggregate.js +5 -2
  15. package/dist/cli/commands/aggregate.js.map +1 -1
  16. package/dist/cli/commands/annotation-command.d.ts +49 -0
  17. package/dist/cli/commands/annotation-command.js +135 -0
  18. package/dist/cli/commands/annotation-command.js.map +1 -0
  19. package/dist/cli/commands/append.js +5 -6
  20. package/dist/cli/commands/append.js.map +1 -1
  21. package/dist/cli/commands/calendar.js +5 -5
  22. package/dist/cli/commands/calendar.js.map +1 -1
  23. package/dist/cli/commands/claim.d.ts +3 -0
  24. package/dist/cli/commands/claim.js +29 -23
  25. package/dist/cli/commands/claim.js.map +1 -1
  26. package/dist/cli/commands/close.js +63 -8
  27. package/dist/cli/commands/close.js.map +1 -1
  28. package/dist/cli/commands/comments-audit.js +4 -1
  29. package/dist/cli/commands/comments-audit.js.map +1 -1
  30. package/dist/cli/commands/comments.d.ts +5 -0
  31. package/dist/cli/commands/comments.js +29 -116
  32. package/dist/cli/commands/comments.js.map +1 -1
  33. package/dist/cli/commands/completion.js +198 -15
  34. package/dist/cli/commands/completion.js.map +1 -1
  35. package/dist/cli/commands/config.js +4 -1
  36. package/dist/cli/commands/config.js.map +1 -1
  37. package/dist/cli/commands/context.js +21 -13
  38. package/dist/cli/commands/context.js.map +1 -1
  39. package/dist/cli/commands/contracts.d.ts +9 -0
  40. package/dist/cli/commands/contracts.js +314 -64
  41. package/dist/cli/commands/contracts.js.map +1 -1
  42. package/dist/cli/commands/create.js +77 -48
  43. package/dist/cli/commands/create.js.map +1 -1
  44. package/dist/cli/commands/dedupe-audit.js +9 -3
  45. package/dist/cli/commands/dedupe-audit.js.map +1 -1
  46. package/dist/cli/commands/delete.d.ts +3 -0
  47. package/dist/cli/commands/delete.js +11 -7
  48. package/dist/cli/commands/delete.js.map +1 -1
  49. package/dist/cli/commands/deps.js +4 -1
  50. package/dist/cli/commands/deps.js.map +1 -1
  51. package/dist/cli/commands/docs.d.ts +1 -0
  52. package/dist/cli/commands/docs.js +6 -7
  53. package/dist/cli/commands/docs.js.map +1 -1
  54. package/dist/cli/commands/event-validation-messages.d.ts +3 -0
  55. package/dist/cli/commands/event-validation-messages.js +44 -0
  56. package/dist/cli/commands/event-validation-messages.js.map +1 -0
  57. package/dist/cli/commands/extension.d.ts +3 -1
  58. package/dist/cli/commands/extension.js +259 -52
  59. package/dist/cli/commands/extension.js.map +1 -1
  60. package/dist/cli/commands/files.js +8 -12
  61. package/dist/cli/commands/files.js.map +1 -1
  62. package/dist/cli/commands/gc.js +19 -3
  63. package/dist/cli/commands/gc.js.map +1 -1
  64. package/dist/cli/commands/get.d.ts +10 -5
  65. package/dist/cli/commands/get.js +135 -20
  66. package/dist/cli/commands/get.js.map +1 -1
  67. package/dist/cli/commands/guide.js +6 -8
  68. package/dist/cli/commands/guide.js.map +1 -1
  69. package/dist/cli/commands/health.d.ts +14 -0
  70. package/dist/cli/commands/health.js +269 -67
  71. package/dist/cli/commands/health.js.map +1 -1
  72. package/dist/cli/commands/history-redact.d.ts +50 -0
  73. package/dist/cli/commands/history-redact.js +476 -0
  74. package/dist/cli/commands/history-redact.js.map +1 -0
  75. package/dist/cli/commands/history-repair.d.ts +33 -0
  76. package/dist/cli/commands/history-repair.js +166 -0
  77. package/dist/cli/commands/history-repair.js.map +1 -0
  78. package/dist/cli/commands/history.d.ts +4 -0
  79. package/dist/cli/commands/history.js +12 -79
  80. package/dist/cli/commands/history.js.map +1 -1
  81. package/dist/cli/commands/index.d.ts +5 -1
  82. package/dist/cli/commands/index.js +9 -2
  83. package/dist/cli/commands/index.js.map +1 -1
  84. package/dist/cli/commands/init-agent-guidance.d.ts +31 -0
  85. package/dist/cli/commands/init-agent-guidance.js +336 -0
  86. package/dist/cli/commands/init-agent-guidance.js.map +1 -0
  87. package/dist/cli/commands/init.d.ts +42 -0
  88. package/dist/cli/commands/init.js +96 -1
  89. package/dist/cli/commands/init.js.map +1 -1
  90. package/dist/cli/commands/learnings.js +22 -118
  91. package/dist/cli/commands/learnings.js.map +1 -1
  92. package/dist/cli/commands/linked-test-entry.d.ts +3 -0
  93. package/dist/cli/commands/linked-test-entry.js +62 -0
  94. package/dist/cli/commands/linked-test-entry.js.map +1 -0
  95. package/dist/cli/commands/list.d.ts +1 -0
  96. package/dist/cli/commands/list.js +72 -38
  97. package/dist/cli/commands/list.js.map +1 -1
  98. package/dist/cli/commands/metadata-normalizers.js +4 -1
  99. package/dist/cli/commands/metadata-normalizers.js.map +1 -1
  100. package/dist/cli/commands/normalize.js +4 -1
  101. package/dist/cli/commands/normalize.js.map +1 -1
  102. package/dist/cli/commands/notes.js +22 -118
  103. package/dist/cli/commands/notes.js.map +1 -1
  104. package/dist/cli/commands/plan.d.ts +121 -0
  105. package/dist/cli/commands/plan.js +1137 -0
  106. package/dist/cli/commands/plan.js.map +1 -0
  107. package/dist/cli/commands/reindex.js +4 -1
  108. package/dist/cli/commands/reindex.js.map +1 -1
  109. package/dist/cli/commands/restore.js +9 -49
  110. package/dist/cli/commands/restore.js.map +1 -1
  111. package/dist/cli/commands/schema.d.ts +31 -0
  112. package/dist/cli/commands/schema.js +98 -0
  113. package/dist/cli/commands/schema.js.map +1 -0
  114. package/dist/cli/commands/search.js +156 -40
  115. package/dist/cli/commands/search.js.map +1 -1
  116. package/dist/cli/commands/stats.js +4 -1
  117. package/dist/cli/commands/stats.js.map +1 -1
  118. package/dist/cli/commands/templates.d.ts +4 -0
  119. package/dist/cli/commands/templates.js +91 -16
  120. package/dist/cli/commands/templates.js.map +1 -1
  121. package/dist/cli/commands/test-all.js +6 -7
  122. package/dist/cli/commands/test-all.js.map +1 -1
  123. package/dist/cli/commands/test-runs.js +4 -1
  124. package/dist/cli/commands/test-runs.js.map +1 -1
  125. package/dist/cli/commands/test.d.ts +1 -0
  126. package/dist/cli/commands/test.js +9 -9
  127. package/dist/cli/commands/test.js.map +1 -1
  128. package/dist/cli/commands/update-many.js +6 -7
  129. package/dist/cli/commands/update-many.js.map +1 -1
  130. package/dist/cli/commands/update.js +204 -103
  131. package/dist/cli/commands/update.js.map +1 -1
  132. package/dist/cli/commands/upgrade.js +6 -3
  133. package/dist/cli/commands/upgrade.js.map +1 -1
  134. package/dist/cli/commands/validate.d.ts +3 -1
  135. package/dist/cli/commands/validate.js +44 -64
  136. package/dist/cli/commands/validate.js.map +1 -1
  137. package/dist/cli/error-guidance.js +99 -6
  138. package/dist/cli/error-guidance.js.map +1 -1
  139. package/dist/cli/extension-command-help.d.ts +0 -1
  140. package/dist/cli/extension-command-help.js +4 -12
  141. package/dist/cli/extension-command-help.js.map +1 -1
  142. package/dist/cli/extension-command-options.d.ts +1 -0
  143. package/dist/cli/extension-command-options.js +108 -6
  144. package/dist/cli/extension-command-options.js.map +1 -1
  145. package/dist/cli/guide-topics.js +4 -1
  146. package/dist/cli/guide-topics.js.map +1 -1
  147. package/dist/cli/help-content.d.ts +0 -1
  148. package/dist/cli/help-content.js +46 -22
  149. package/dist/cli/help-content.js.map +1 -1
  150. package/dist/cli/help-json-payload.d.ts +1 -0
  151. package/dist/cli/help-json-payload.js +35 -2
  152. package/dist/cli/help-json-payload.js.map +1 -1
  153. package/dist/cli/main.js +214 -30
  154. package/dist/cli/main.js.map +1 -1
  155. package/dist/cli/migration-gates.js +4 -1
  156. package/dist/cli/migration-gates.js.map +1 -1
  157. package/dist/cli/register-list-query.d.ts +1 -1
  158. package/dist/cli/register-list-query.js +75 -29
  159. package/dist/cli/register-list-query.js.map +1 -1
  160. package/dist/cli/register-mutation.d.ts +1 -1
  161. package/dist/cli/register-mutation.js +430 -38
  162. package/dist/cli/register-mutation.js.map +1 -1
  163. package/dist/cli/register-operations.js +47 -10
  164. package/dist/cli/register-operations.js.map +1 -1
  165. package/dist/cli/register-setup.js +47 -25
  166. package/dist/cli/register-setup.js.map +1 -1
  167. package/dist/cli/registration-helpers.d.ts +0 -2
  168. package/dist/cli/registration-helpers.js +21 -40
  169. package/dist/cli/registration-helpers.js.map +1 -1
  170. package/dist/cli/shared-parsers.js +4 -1
  171. package/dist/cli/shared-parsers.js.map +1 -1
  172. package/dist/cli/telemetry-flush.js +4 -1
  173. package/dist/cli/telemetry-flush.js.map +1 -1
  174. package/dist/cli.js +65 -3
  175. package/dist/cli.js.map +1 -1
  176. package/dist/core/extensions/extension-types.js +4 -1
  177. package/dist/core/extensions/extension-types.js.map +1 -1
  178. package/dist/core/extensions/index.d.ts +0 -1
  179. package/dist/core/extensions/index.js +4 -13
  180. package/dist/core/extensions/index.js.map +1 -1
  181. package/dist/core/extensions/item-fields.js +4 -1
  182. package/dist/core/extensions/item-fields.js.map +1 -1
  183. package/dist/core/extensions/loader.js +78 -60
  184. package/dist/core/extensions/loader.js.map +1 -1
  185. package/dist/core/extensions/runtime-registrations.js +4 -1
  186. package/dist/core/extensions/runtime-registrations.js.map +1 -1
  187. package/dist/core/fs/fs-utils.js +4 -1
  188. package/dist/core/fs/fs-utils.js.map +1 -1
  189. package/dist/core/fs/index.js +4 -1
  190. package/dist/core/fs/index.js.map +1 -1
  191. package/dist/core/fs/path-utils.d.ts +1 -0
  192. package/dist/core/fs/path-utils.js +12 -0
  193. package/dist/core/fs/path-utils.js.map +1 -0
  194. package/dist/core/history/drift-scan.d.ts +11 -0
  195. package/dist/core/history/drift-scan.js +67 -0
  196. package/dist/core/history/drift-scan.js.map +1 -0
  197. package/dist/core/history/history-stream-policy.js +4 -1
  198. package/dist/core/history/history-stream-policy.js.map +1 -1
  199. package/dist/core/history/history.js +4 -1
  200. package/dist/core/history/history.js.map +1 -1
  201. package/dist/core/history/index.js +4 -1
  202. package/dist/core/history/index.js.map +1 -1
  203. package/dist/core/history/replay.d.ts +82 -0
  204. package/dist/core/history/replay.js +249 -0
  205. package/dist/core/history/replay.js.map +1 -0
  206. package/dist/core/item/id.js +4 -1
  207. package/dist/core/item/id.js.map +1 -1
  208. package/dist/core/item/index.js +4 -1
  209. package/dist/core/item/index.js.map +1 -1
  210. package/dist/core/item/item-format.js +250 -8
  211. package/dist/core/item/item-format.js.map +1 -1
  212. package/dist/core/item/item-type-definition.d.ts +52 -0
  213. package/dist/core/item/item-type-definition.js +123 -0
  214. package/dist/core/item/item-type-definition.js.map +1 -0
  215. package/dist/core/item/parent-reference-policy.js +4 -1
  216. package/dist/core/item/parent-reference-policy.js.map +1 -1
  217. package/dist/core/item/parse.js +34 -3
  218. package/dist/core/item/parse.js.map +1 -1
  219. package/dist/core/item/priority.d.ts +23 -0
  220. package/dist/core/item/priority.js +55 -0
  221. package/dist/core/item/priority.js.map +1 -0
  222. package/dist/core/item/sprint-release-format.js +4 -1
  223. package/dist/core/item/sprint-release-format.js.map +1 -1
  224. package/dist/core/item/status.d.ts +14 -1
  225. package/dist/core/item/status.js +24 -1
  226. package/dist/core/item/status.js.map +1 -1
  227. package/dist/core/item/toon-decode.d.ts +19 -0
  228. package/dist/core/item/toon-decode.js +69 -0
  229. package/dist/core/item/toon-decode.js.map +1 -0
  230. package/dist/core/item/type-registry.js +15 -83
  231. package/dist/core/item/type-registry.js.map +1 -1
  232. package/dist/core/lock/index.js +4 -1
  233. package/dist/core/lock/index.js.map +1 -1
  234. package/dist/core/lock/lock.js +4 -1
  235. package/dist/core/lock/lock.js.map +1 -1
  236. package/dist/core/output/output.d.ts +4 -0
  237. package/dist/core/output/output.js +47 -6
  238. package/dist/core/output/output.js.map +1 -1
  239. package/dist/core/packages/manifest.d.ts +1 -0
  240. package/dist/core/packages/manifest.js +6 -8
  241. package/dist/core/packages/manifest.js.map +1 -1
  242. package/dist/core/packages/root.d.ts +3 -0
  243. package/dist/core/packages/root.js +51 -0
  244. package/dist/core/packages/root.js.map +1 -0
  245. package/dist/core/schema/item-types-file.d.ts +85 -0
  246. package/dist/core/schema/item-types-file.js +243 -0
  247. package/dist/core/schema/item-types-file.js.map +1 -0
  248. package/dist/core/schema/runtime-field-filters.js +4 -1
  249. package/dist/core/schema/runtime-field-filters.js.map +1 -1
  250. package/dist/core/schema/runtime-field-values.js +4 -1
  251. package/dist/core/schema/runtime-field-values.js.map +1 -1
  252. package/dist/core/schema/runtime-schema.d.ts +2 -1
  253. package/dist/core/schema/runtime-schema.js +13 -8
  254. package/dist/core/schema/runtime-schema.js.map +1 -1
  255. package/dist/core/search/cache.js +7 -2
  256. package/dist/core/search/cache.js.map +1 -1
  257. package/dist/core/search/corpus.d.ts +2 -0
  258. package/dist/core/search/corpus.js +77 -2
  259. package/dist/core/search/corpus.js.map +1 -1
  260. package/dist/core/search/embedding-batches.js +21 -7
  261. package/dist/core/search/embedding-batches.js.map +1 -1
  262. package/dist/core/search/http-client.js +4 -1
  263. package/dist/core/search/http-client.js.map +1 -1
  264. package/dist/core/search/providers.js +4 -1
  265. package/dist/core/search/providers.js.map +1 -1
  266. package/dist/core/search/semantic-defaults.js +12 -3
  267. package/dist/core/search/semantic-defaults.js.map +1 -1
  268. package/dist/core/search/vector-stores.js +4 -1
  269. package/dist/core/search/vector-stores.js.map +1 -1
  270. package/dist/core/sentry/helpers.js +4 -1
  271. package/dist/core/sentry/helpers.js.map +1 -1
  272. package/dist/core/sentry/instrument.js +10 -13
  273. package/dist/core/sentry/instrument.js.map +1 -1
  274. package/dist/core/shared/author.d.ts +1 -0
  275. package/dist/core/shared/author.js +9 -0
  276. package/dist/core/shared/author.js.map +1 -0
  277. package/dist/core/shared/command-types.js +4 -1
  278. package/dist/core/shared/command-types.js.map +1 -1
  279. package/dist/core/shared/conflict-markers.js +4 -1
  280. package/dist/core/shared/conflict-markers.js.map +1 -1
  281. package/dist/core/shared/constants.d.ts +2 -2
  282. package/dist/core/shared/constants.js +24 -1
  283. package/dist/core/shared/constants.js.map +1 -1
  284. package/dist/core/shared/errors.js +4 -1
  285. package/dist/core/shared/errors.js.map +1 -1
  286. package/dist/core/shared/index.js +4 -1
  287. package/dist/core/shared/index.js.map +1 -1
  288. package/dist/core/shared/lazy-module.d.ts +1 -0
  289. package/dist/core/shared/lazy-module.js +11 -0
  290. package/dist/core/shared/lazy-module.js.map +1 -0
  291. package/dist/core/shared/levenshtein.js +4 -1
  292. package/dist/core/shared/levenshtein.js.map +1 -1
  293. package/dist/core/shared/option-alias-visibility.d.ts +44 -0
  294. package/dist/core/shared/option-alias-visibility.js +76 -0
  295. package/dist/core/shared/option-alias-visibility.js.map +1 -0
  296. package/dist/core/shared/primitives.js +4 -1
  297. package/dist/core/shared/primitives.js.map +1 -1
  298. package/dist/core/shared/serialization.js +4 -1
  299. package/dist/core/shared/serialization.js.map +1 -1
  300. package/dist/core/shared/text-normalization.d.ts +0 -1
  301. package/dist/core/shared/text-normalization.js +4 -4
  302. package/dist/core/shared/text-normalization.js.map +1 -1
  303. package/dist/core/shared/time.js +4 -1
  304. package/dist/core/shared/time.js.map +1 -1
  305. package/dist/core/store/front-matter-cache.js +8 -3
  306. package/dist/core/store/front-matter-cache.js.map +1 -1
  307. package/dist/core/store/index.js +4 -1
  308. package/dist/core/store/index.js.map +1 -1
  309. package/dist/core/store/item-format-migration.js +4 -1
  310. package/dist/core/store/item-format-migration.js.map +1 -1
  311. package/dist/core/store/item-store.d.ts +4 -0
  312. package/dist/core/store/item-store.js +133 -39
  313. package/dist/core/store/item-store.js.map +1 -1
  314. package/dist/core/store/paths.js +4 -1
  315. package/dist/core/store/paths.js.map +1 -1
  316. package/dist/core/store/settings-validator.d.ts +106 -0
  317. package/dist/core/store/settings-validator.js +279 -0
  318. package/dist/core/store/settings-validator.js.map +1 -0
  319. package/dist/core/store/settings.js +32 -331
  320. package/dist/core/store/settings.js.map +1 -1
  321. package/dist/core/telemetry/consent.js +4 -1
  322. package/dist/core/telemetry/consent.js.map +1 -1
  323. package/dist/core/telemetry/observability.d.ts +1 -1
  324. package/dist/core/telemetry/observability.js +11 -2
  325. package/dist/core/telemetry/observability.js.map +1 -1
  326. package/dist/core/telemetry/runtime.js +34 -6
  327. package/dist/core/telemetry/runtime.js.map +1 -1
  328. package/dist/core/test/background-runs.js +4 -1
  329. package/dist/core/test/background-runs.js.map +1 -1
  330. package/dist/core/test/item-test-run-tracking.js +4 -1
  331. package/dist/core/test/item-test-run-tracking.js.map +1 -1
  332. package/dist/mcp/server.js +182 -22
  333. package/dist/mcp/server.js.map +1 -1
  334. package/dist/sdk/cli-contracts/commander-mutation-options.js +10 -3
  335. package/dist/sdk/cli-contracts/commander-mutation-options.js.map +1 -1
  336. package/dist/sdk/cli-contracts/commander-types.js +4 -1
  337. package/dist/sdk/cli-contracts/commander-types.js.map +1 -1
  338. package/dist/sdk/cli-contracts.d.ts +13 -2
  339. package/dist/sdk/cli-contracts.js +410 -26
  340. package/dist/sdk/cli-contracts.js.map +1 -1
  341. package/dist/sdk/index.js +4 -1
  342. package/dist/sdk/index.js.map +1 -1
  343. package/dist/sdk/runtime.d.ts +25 -1
  344. package/dist/sdk/runtime.js +48 -2
  345. package/dist/sdk/runtime.js.map +1 -1
  346. package/dist/types/index.js +4 -1
  347. package/dist/types/index.js.map +1 -1
  348. package/dist/types.d.ts +92 -2
  349. package/dist/types.js +42 -1
  350. package/dist/types.js.map +1 -1
  351. package/docs/AGENT_GUIDE.md +23 -7
  352. package/docs/ARCHITECTURE.md +1 -1
  353. package/docs/CLAUDE_CODE_PLUGIN.md +10 -10
  354. package/docs/CODEX_PLUGIN.md +2 -2
  355. package/docs/COMMANDS.md +117 -12
  356. package/docs/CONFIGURATION.md +5 -2
  357. package/docs/EXTENSIONS.md +158 -814
  358. package/docs/QUICKSTART.md +11 -5
  359. package/docs/README.md +7 -6
  360. package/docs/RELEASING.md +13 -9
  361. package/docs/SDK.md +11 -2
  362. package/docs/TESTING.md +2 -2
  363. package/marketplace.json +3 -3
  364. package/package.json +15 -12
  365. package/packages/pm-beads/package.json +1 -1
  366. package/packages/pm-calendar/README.md +4 -2
  367. package/packages/pm-calendar/extensions/calendar/index.js +22 -3
  368. package/packages/pm-calendar/extensions/calendar/index.ts +22 -3
  369. package/packages/pm-calendar/extensions/calendar/runtime.js +26 -7
  370. package/packages/pm-calendar/extensions/calendar/runtime.ts +26 -7
  371. package/packages/pm-calendar/package.json +1 -1
  372. package/packages/pm-governance-audit/package.json +1 -1
  373. package/packages/pm-guide-shell/extensions/guide-shell/index.js +1 -1
  374. package/packages/pm-guide-shell/extensions/guide-shell/index.ts +1 -1
  375. package/packages/pm-guide-shell/package.json +1 -1
  376. package/packages/pm-linked-test-adapters/package.json +1 -1
  377. package/packages/pm-search-advanced/README.md +8 -0
  378. package/packages/pm-search-advanced/extensions/search-advanced/index.js +74 -0
  379. package/packages/pm-search-advanced/extensions/search-advanced/index.ts +75 -1
  380. package/packages/pm-search-advanced/extensions/search-advanced/runtime.js +67 -9
  381. package/packages/pm-search-advanced/extensions/search-advanced/runtime.ts +67 -9
  382. package/packages/pm-search-advanced/package.json +1 -1
  383. package/packages/pm-templates/README.md +1 -1
  384. package/packages/pm-templates/extensions/templates/runtime.js +11 -202
  385. package/packages/pm-templates/extensions/templates/runtime.ts +38 -230
  386. package/packages/pm-templates/package.json +1 -1
  387. package/packages/pm-todos/package.json +1 -1
  388. package/plugins/{pm-cli-claude → pm-claude}/.claude-plugin/plugin.json +2 -2
  389. package/plugins/{pm-cli-claude → pm-claude}/.mcp.json +1 -1
  390. package/plugins/{pm-cli-claude → pm-claude}/README.md +4 -4
  391. package/plugins/{pm-cli-claude → pm-claude}/agents/pm-coordinator.md +1 -1
  392. package/plugins/{pm-cli-claude → pm-claude}/commands/pm-init.md +10 -1
  393. package/plugins/{pm-cli-claude → pm-claude}/commands/pm-planner.md +18 -0
  394. package/plugins/{pm-cli-claude → pm-claude}/skills/pm-planner/SKILL.md +46 -1
  395. package/plugins/{pm-cli-codex → pm-codex}/.codex-plugin/plugin.json +3 -3
  396. package/plugins/{pm-cli-codex → pm-codex}/.mcp.json +1 -1
  397. package/plugins/{pm-cli-codex → pm-codex}/README.md +7 -4
  398. package/plugins/pm-codex/skills/pm-native/SKILL.md +81 -0
  399. package/scripts/finalize-build.mjs +28 -0
  400. package/scripts/prepare-build-cache.mjs +37 -0
  401. package/dist/core/output/command-aware.d.ts +0 -1
  402. package/dist/core/output/command-aware.js +0 -394
  403. package/dist/core/output/command-aware.js.map +0 -1
  404. package/plugins/pm-cli-codex/skills/pm-native/SKILL.md +0 -57
  405. /package/plugins/{pm-cli-claude → pm-claude}/agents/pm-delivery-chain.md +0 -0
  406. /package/plugins/{pm-cli-claude → pm-claude}/agents/pm-triage-agent.md +0 -0
  407. /package/plugins/{pm-cli-claude → pm-claude}/agents/pm-verification-agent.md +0 -0
  408. /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-audit.md +0 -0
  409. /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-calendar.md +0 -0
  410. /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-close-task.md +0 -0
  411. /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-developer.md +0 -0
  412. /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-list.md +0 -0
  413. /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-new.md +0 -0
  414. /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-release.md +0 -0
  415. /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-search.md +0 -0
  416. /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-start-task.md +0 -0
  417. /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-status.md +0 -0
  418. /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-triage.md +0 -0
  419. /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-workflow.md +0 -0
  420. /package/plugins/{pm-cli-claude → pm-claude}/hooks/hooks.json +0 -0
  421. /package/plugins/{pm-cli-claude → pm-claude}/hooks/session-start.mjs +0 -0
  422. /package/plugins/{pm-cli-claude → pm-claude}/scripts/pm-mcp-server.mjs +0 -0
  423. /package/plugins/{pm-cli-claude → pm-claude}/skills/pm-audit/SKILL.md +0 -0
  424. /package/plugins/{pm-cli-claude → pm-claude}/skills/pm-developer/SKILL.md +0 -0
  425. /package/plugins/{pm-cli-claude → pm-claude}/skills/pm-release/SKILL.md +0 -0
  426. /package/plugins/{pm-cli-claude → pm-claude}/skills/pm-workflow/SKILL.md +0 -0
  427. /package/plugins/{pm-cli-codex → pm-codex}/assets/pm-cli-small.svg +0 -0
  428. /package/plugins/{pm-cli-codex → pm-codex}/commands/pm-audit.md +0 -0
  429. /package/plugins/{pm-cli-codex → pm-codex}/commands/pm-close-task.md +0 -0
  430. /package/plugins/{pm-cli-codex → pm-codex}/commands/pm-start-task.md +0 -0
  431. /package/plugins/{pm-cli-codex → pm-codex}/scripts/pm-mcp-server.mjs +0 -0
  432. /package/plugins/{pm-cli-codex → pm-codex}/skills/pm-auditor/SKILL.md +0 -0
  433. /package/plugins/{pm-cli-codex → pm-codex}/skills/pm-auditor/agents/openai.yaml +0 -0
  434. /package/plugins/{pm-cli-codex → pm-codex}/skills/pm-native/agents/openai.yaml +0 -0
  435. /package/plugins/{pm-cli-codex → pm-codex}/skills/pm-release/SKILL.md +0 -0
  436. /package/plugins/{pm-cli-codex → pm-codex}/skills/pm-release/agents/openai.yaml +0 -0
@@ -0,0 +1,279 @@
1
+ /**
2
+ * Dependency-free settings validator.
3
+ *
4
+ * Mirrors the previous `zod` schema for `settings.json` exactly (type checks,
5
+ * required-vs-optional fields, integer/positive constraints, literal unions, and
6
+ * unknown-key stripping with all-or-nothing failure semantics) without paying
7
+ * the ~85ms cost of importing `zod` on every command's hot read path.
8
+ *
9
+ * The validator intentionally reproduces the zod schema's shape — including
10
+ * fields that `PmSettings` carries but the schema does not (e.g. `search.tuning`)
11
+ * are stripped here just as zod stripped them — so settings behavior is
12
+ * byte-identical to the previous implementation.
13
+ */
14
+
15
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="78a7aa6c-b637-5a23-b836-51110e82fbba")}catch(e){}}();
16
+ import { GOVERNANCE_PRESET_VALUES, RUNTIME_FIELD_COMMAND_VALUES, RUNTIME_FIELD_TYPE_VALUES, RUNTIME_STATUS_ROLE_VALUES, RUNTIME_UNKNOWN_FIELD_POLICY_VALUES, } from "../../types.js";
17
+ // Generic over `never` so it is assignable to every `Outcome<T>`.
18
+ const FAIL = { ok: false };
19
+ const vString = (input) => (typeof input === "string" ? { ok: true, value: input } : FAIL);
20
+ const vBoolean = (input) => (typeof input === "boolean" ? { ok: true, value: input } : FAIL);
21
+ function vNumber(options = {}) {
22
+ return (input) => {
23
+ // `Number.isFinite` rejects non-numbers, NaN, and ±Infinity in one check.
24
+ if (typeof input !== "number" || !Number.isFinite(input)) {
25
+ return FAIL;
26
+ }
27
+ if (options.int && (!Number.isInteger(input) || !Number.isSafeInteger(input))) {
28
+ return FAIL;
29
+ }
30
+ if (options.positive && input <= 0) {
31
+ return FAIL;
32
+ }
33
+ return { ok: true, value: input };
34
+ };
35
+ }
36
+ function vLiteral(...allowed) {
37
+ return (input) => typeof input === "string" && allowed.includes(input)
38
+ ? { ok: true, value: input }
39
+ : FAIL;
40
+ }
41
+ function vArray(item) {
42
+ return (input) => {
43
+ if (!Array.isArray(input)) {
44
+ return FAIL;
45
+ }
46
+ const value = [];
47
+ for (const element of input) {
48
+ const result = item(element);
49
+ if (!result.ok) {
50
+ return FAIL;
51
+ }
52
+ value.push(result.value);
53
+ }
54
+ return { ok: true, value };
55
+ };
56
+ }
57
+ function vOptional(inner) {
58
+ return (input) => (input === undefined ? { ok: true, value: undefined } : inner(input));
59
+ }
60
+ function vObject(shape) {
61
+ return (input) => {
62
+ if (typeof input !== "object" || input === null || Array.isArray(input)) {
63
+ return FAIL;
64
+ }
65
+ const record = input;
66
+ const value = {};
67
+ for (const [key, check] of Object.entries(shape)) {
68
+ const result = check(record[key]);
69
+ if (!result.ok) {
70
+ return FAIL;
71
+ }
72
+ // Mirror zod: absent optional keys are omitted; unknown keys are dropped.
73
+ if (result.value !== undefined) {
74
+ value[key] = result.value;
75
+ }
76
+ }
77
+ return { ok: true, value };
78
+ };
79
+ }
80
+ const itemTypeOption = vObject({
81
+ key: vString,
82
+ values: vArray(vString),
83
+ required: vOptional(vBoolean),
84
+ aliases: vOptional(vArray(vString)),
85
+ description: vOptional(vString),
86
+ });
87
+ const itemTypeCommandOptionPolicy = vObject({
88
+ command: vLiteral("create", "update"),
89
+ option: vString,
90
+ required: vOptional(vBoolean),
91
+ visible: vOptional(vBoolean),
92
+ enabled: vOptional(vBoolean),
93
+ });
94
+ const itemTypeDefinition = vObject({
95
+ name: vString,
96
+ folder: vOptional(vString),
97
+ aliases: vOptional(vArray(vString)),
98
+ required_create_fields: vOptional(vArray(vString)),
99
+ required_create_repeatables: vOptional(vArray(vString)),
100
+ options: vOptional(vArray(itemTypeOption)),
101
+ command_option_policies: vOptional(vArray(itemTypeCommandOptionPolicy)),
102
+ });
103
+ const runtimeStatusDefinition = vObject({
104
+ id: vString,
105
+ aliases: vOptional(vArray(vString)),
106
+ roles: vOptional(vArray(vLiteral(...RUNTIME_STATUS_ROLE_VALUES))),
107
+ description: vOptional(vString),
108
+ order: vOptional(vNumber()),
109
+ });
110
+ const runtimeFieldDefinition = vObject({
111
+ key: vString,
112
+ metadata_key: vOptional(vString),
113
+ front_matter_key: vOptional(vString),
114
+ cli_flag: vOptional(vString),
115
+ cli_aliases: vOptional(vArray(vString)),
116
+ description: vOptional(vString),
117
+ type: vOptional(vLiteral(...RUNTIME_FIELD_TYPE_VALUES)),
118
+ commands: vOptional(vArray(vLiteral(...RUNTIME_FIELD_COMMAND_VALUES))),
119
+ repeatable: vOptional(vBoolean),
120
+ required: vOptional(vBoolean),
121
+ required_on_create: vOptional(vBoolean),
122
+ required_types: vOptional(vArray(vString)),
123
+ allow_unset: vOptional(vBoolean),
124
+ });
125
+ const runtimeSchemaSettings = vOptional(vObject({
126
+ version: vOptional(vNumber({ int: true })),
127
+ files: vOptional(vObject({
128
+ types: vOptional(vString),
129
+ statuses: vOptional(vString),
130
+ fields: vOptional(vString),
131
+ workflows: vOptional(vString),
132
+ })),
133
+ statuses: vOptional(vArray(runtimeStatusDefinition)),
134
+ fields: vOptional(vArray(runtimeFieldDefinition)),
135
+ workflow: vOptional(vObject({
136
+ draft_status: vOptional(vString),
137
+ open_status: vOptional(vString),
138
+ in_progress_status: vOptional(vString),
139
+ blocked_status: vOptional(vString),
140
+ close_status: vOptional(vString),
141
+ canceled_status: vOptional(vString),
142
+ })),
143
+ unknown_field_policy: vOptional(vLiteral(...RUNTIME_UNKNOWN_FIELD_POLICY_VALUES)),
144
+ }));
145
+ const governanceSettings = vOptional(vObject({
146
+ preset: vOptional(vLiteral(...GOVERNANCE_PRESET_VALUES)),
147
+ ownership_enforcement: vOptional(vLiteral("none", "warn", "strict")),
148
+ create_mode_default: vOptional(vLiteral("progressive", "strict")),
149
+ close_validation_default: vOptional(vLiteral("off", "warn", "strict")),
150
+ parent_reference: vOptional(vLiteral("warn", "strict_error")),
151
+ metadata_profile: vOptional(vLiteral("core", "strict", "custom")),
152
+ force_required_for_stale_lock: vOptional(vBoolean),
153
+ create_default_type: vOptional(vString),
154
+ }));
155
+ const extensionPolicyOverride = vObject({
156
+ name: vString,
157
+ disabled: vOptional(vBoolean),
158
+ require_trusted: vOptional(vBoolean),
159
+ require_provenance: vOptional(vBoolean),
160
+ sandbox_profile: vOptional(vLiteral("none", "restricted", "strict")),
161
+ allowed_capabilities: vOptional(vArray(vString)),
162
+ blocked_capabilities: vOptional(vArray(vString)),
163
+ allowed_surfaces: vOptional(vArray(vString)),
164
+ blocked_surfaces: vOptional(vArray(vString)),
165
+ allowed_commands: vOptional(vArray(vString)),
166
+ blocked_commands: vOptional(vArray(vString)),
167
+ allowed_actions: vOptional(vArray(vString)),
168
+ blocked_actions: vOptional(vArray(vString)),
169
+ allowed_services: vOptional(vArray(vString)),
170
+ blocked_services: vOptional(vArray(vString)),
171
+ });
172
+ const extensionPolicy = vOptional(vObject({
173
+ mode: vOptional(vLiteral("off", "warn", "enforce")),
174
+ trust_mode: vOptional(vLiteral("off", "warn", "enforce")),
175
+ require_provenance: vOptional(vBoolean),
176
+ trusted_extensions: vOptional(vArray(vString)),
177
+ default_sandbox_profile: vOptional(vLiteral("none", "restricted", "strict")),
178
+ allowed_extensions: vOptional(vArray(vString)),
179
+ blocked_extensions: vOptional(vArray(vString)),
180
+ allowed_capabilities: vOptional(vArray(vString)),
181
+ blocked_capabilities: vOptional(vArray(vString)),
182
+ allowed_surfaces: vOptional(vArray(vString)),
183
+ blocked_surfaces: vOptional(vArray(vString)),
184
+ allowed_commands: vOptional(vArray(vString)),
185
+ blocked_commands: vOptional(vArray(vString)),
186
+ allowed_actions: vOptional(vArray(vString)),
187
+ blocked_actions: vOptional(vArray(vString)),
188
+ allowed_services: vOptional(vArray(vString)),
189
+ blocked_services: vOptional(vArray(vString)),
190
+ extension_overrides: vOptional(vArray(extensionPolicyOverride)),
191
+ }));
192
+ const settingsCheck = vObject({
193
+ version: vNumber({ int: true }),
194
+ id_prefix: vString,
195
+ author_default: vString,
196
+ item_format: vOptional(vLiteral("toon", "json_markdown")),
197
+ locks: vObject({ ttl_seconds: vNumber({ int: true }) }),
198
+ output: vObject({ default_format: vLiteral("toon", "json") }),
199
+ history: vOptional(vObject({ missing_stream: vLiteral("auto_create", "strict_error") })),
200
+ validation: vOptional(vObject({
201
+ sprint_release_format: vLiteral("warn", "strict_error"),
202
+ parent_reference: vOptional(vLiteral("warn", "strict_error")),
203
+ metadata_profile: vOptional(vLiteral("core", "strict", "custom")),
204
+ metadata_required_fields: vOptional(vArray(vString)),
205
+ lifecycle_stale_blocker_reason_patterns: vOptional(vArray(vString)),
206
+ lifecycle_closure_like_blocked_reason_patterns: vOptional(vArray(vString)),
207
+ lifecycle_closure_like_resolution_patterns: vOptional(vArray(vString)),
208
+ lifecycle_closure_like_actual_result_patterns: vOptional(vArray(vString)),
209
+ })),
210
+ governance: governanceSettings,
211
+ workflow: vOptional(vObject({ definition_of_done: vArray(vString) })),
212
+ testing: vOptional(vObject({ record_results_to_items: vBoolean })),
213
+ telemetry: vOptional(vObject({
214
+ enabled: vBoolean,
215
+ first_run_prompt_completed: vOptional(vBoolean),
216
+ capture_level: vOptional(vLiteral("minimal", "redacted", "max")),
217
+ endpoint: vOptional(vString),
218
+ installation_id: vOptional(vString),
219
+ retention_days: vOptional(vNumber({ int: true, positive: true })),
220
+ })),
221
+ agent_guidance: vOptional(vObject({
222
+ prompt_completed: vOptional(vBoolean),
223
+ declined: vOptional(vBoolean),
224
+ declined_at: vOptional(vString),
225
+ template_version: vOptional(vNumber({ int: true, positive: true })),
226
+ last_checked_files: vOptional(vArray(vString)),
227
+ })),
228
+ item_types: vOptional(vObject({ definitions: vArray(itemTypeDefinition) })),
229
+ schema: runtimeSchemaSettings,
230
+ context: vOptional(vObject({
231
+ default_depth: vOptional(vLiteral("brief", "standard", "deep")),
232
+ activity_limit: vOptional(vNumber({ int: true, positive: true })),
233
+ stale_threshold_days: vOptional(vNumber({ int: true, positive: true })),
234
+ sections: vOptional(vObject({
235
+ hierarchy: vOptional(vBoolean),
236
+ activity: vOptional(vBoolean),
237
+ progress: vOptional(vBoolean),
238
+ blockers: vOptional(vBoolean),
239
+ files: vOptional(vBoolean),
240
+ workload: vOptional(vBoolean),
241
+ staleness: vOptional(vBoolean),
242
+ tests: vOptional(vBoolean),
243
+ })),
244
+ })),
245
+ extensions: vObject({
246
+ enabled: vArray(vString),
247
+ disabled: vArray(vString),
248
+ policy: extensionPolicy,
249
+ }),
250
+ search: vObject({
251
+ score_threshold: vNumber(),
252
+ hybrid_semantic_weight: vOptional(vNumber()),
253
+ max_results: vNumber({ int: true }),
254
+ embedding_model: vString,
255
+ embedding_batch_size: vNumber({ int: true }),
256
+ embedding_timeout_ms: vOptional(vNumber({ int: true })),
257
+ scanner_max_batch_retries: vNumber({ int: true }),
258
+ provider: vOptional(vString),
259
+ }),
260
+ providers: vObject({
261
+ openai: vObject({ base_url: vString, api_key: vString, model: vString }),
262
+ ollama: vObject({ base_url: vString, model: vString }),
263
+ }),
264
+ vector_store: vObject({
265
+ adapter: vOptional(vString),
266
+ qdrant: vObject({ url: vString, api_key: vString }),
267
+ lancedb: vObject({ path: vString }),
268
+ }),
269
+ });
270
+ /** Validate raw settings, returning stripped, type-checked data or failure (matching the legacy zod safeParse). */
271
+ export function validateSettings(raw) {
272
+ const result = settingsCheck(raw);
273
+ if (!result.ok) {
274
+ return { success: false };
275
+ }
276
+ return { success: true, data: result.value };
277
+ }
278
+ //# sourceMappingURL=settings-validator.js.map
279
+ //# debugId=78a7aa6c-b637-5a23-b836-51110e82fbba
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-validator.js","sources":["core/store/settings-validator.ts"],"sourceRoot":"/","sourcesContent":["/**\n * Dependency-free settings validator.\n *\n * Mirrors the previous `zod` schema for `settings.json` exactly (type checks,\n * required-vs-optional fields, integer/positive constraints, literal unions, and\n * unknown-key stripping with all-or-nothing failure semantics) without paying\n * the ~85ms cost of importing `zod` on every command's hot read path.\n *\n * The validator intentionally reproduces the zod schema's shape — including\n * fields that `PmSettings` carries but the schema does not (e.g. `search.tuning`)\n * are stripped here just as zod stripped them — so settings behavior is\n * byte-identical to the previous implementation.\n */\nimport {\n GOVERNANCE_PRESET_VALUES,\n RUNTIME_FIELD_COMMAND_VALUES,\n RUNTIME_FIELD_TYPE_VALUES,\n RUNTIME_STATUS_ROLE_VALUES,\n RUNTIME_UNKNOWN_FIELD_POLICY_VALUES,\n} from \"../../types.js\";\nimport type {\n AgentGuidanceSettings,\n ExtensionPolicySettings,\n GovernanceSettings,\n ItemTypeDefinition,\n RuntimeSchemaSettings,\n} from \"../../types.js\";\n\n/** Validated, unknown-key-stripped settings input (pre-merge), matching the legacy zod inference. */\nexport interface ParsedSettings {\n version: number;\n id_prefix: string;\n author_default: string;\n item_format?: \"toon\" | \"json_markdown\";\n locks: { ttl_seconds: number };\n output: { default_format: \"toon\" | \"json\" };\n history?: { missing_stream: \"auto_create\" | \"strict_error\" };\n validation?: {\n sprint_release_format: \"warn\" | \"strict_error\";\n parent_reference?: \"warn\" | \"strict_error\";\n metadata_profile?: \"core\" | \"strict\" | \"custom\";\n metadata_required_fields?: string[];\n lifecycle_stale_blocker_reason_patterns?: string[];\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 governance?: Partial<GovernanceSettings>;\n workflow?: { definition_of_done: string[] };\n testing?: { record_results_to_items: boolean };\n telemetry?: {\n enabled: boolean;\n first_run_prompt_completed?: boolean;\n capture_level?: \"minimal\" | \"redacted\" | \"max\";\n endpoint?: string;\n installation_id?: string;\n retention_days?: number;\n };\n agent_guidance?: Partial<AgentGuidanceSettings>;\n item_types?: { definitions: ItemTypeDefinition[] };\n schema?: Partial<RuntimeSchemaSettings>;\n context?: {\n default_depth?: \"brief\" | \"standard\" | \"deep\";\n activity_limit?: number;\n stale_threshold_days?: number;\n sections?: {\n hierarchy?: boolean;\n activity?: boolean;\n progress?: boolean;\n blockers?: boolean;\n files?: boolean;\n workload?: boolean;\n staleness?: boolean;\n tests?: boolean;\n };\n };\n extensions: {\n enabled: string[];\n disabled: string[];\n policy?: Partial<ExtensionPolicySettings>;\n };\n search: {\n score_threshold: number;\n hybrid_semantic_weight?: number;\n max_results: number;\n embedding_model: string;\n embedding_batch_size: number;\n embedding_timeout_ms?: number;\n scanner_max_batch_retries: number;\n provider?: string;\n };\n providers: {\n openai: { base_url: string; api_key: string; model: string };\n ollama: { base_url: string; model: string };\n };\n vector_store: {\n adapter?: string;\n qdrant: { url: string; api_key: string };\n lancedb: { path: string };\n };\n}\n\nexport type SettingsValidationResult = { success: true; data: ParsedSettings } | { success: false };\n\ntype Outcome<T> = { ok: true; value: T } | { ok: false };\ntype Check<T> = (input: unknown) => Outcome<T>;\n\n// Generic over `never` so it is assignable to every `Outcome<T>`.\nconst FAIL: Outcome<never> = { ok: false };\n\nconst vString: Check<string> = (input) => (typeof input === \"string\" ? { ok: true, value: input } : FAIL);\nconst vBoolean: Check<boolean> = (input) => (typeof input === \"boolean\" ? { ok: true, value: input } : FAIL);\n\nfunction vNumber(options: { int?: boolean; positive?: boolean } = {}): Check<number> {\n return (input) => {\n // `Number.isFinite` rejects non-numbers, NaN, and ±Infinity in one check.\n if (typeof input !== \"number\" || !Number.isFinite(input)) {\n return FAIL;\n }\n if (options.int && (!Number.isInteger(input) || !Number.isSafeInteger(input))) {\n return FAIL;\n }\n if (options.positive && input <= 0) {\n return FAIL;\n }\n return { ok: true, value: input };\n };\n}\n\nfunction vLiteral<const T extends string>(...allowed: readonly T[]): Check<T> {\n return (input) =>\n typeof input === \"string\" && (allowed as readonly string[]).includes(input)\n ? { ok: true, value: input as T }\n : FAIL;\n}\n\nfunction vArray<T>(item: Check<T>): Check<T[]> {\n return (input) => {\n if (!Array.isArray(input)) {\n return FAIL;\n }\n const value: T[] = [];\n for (const element of input) {\n const result = item(element);\n if (!result.ok) {\n return FAIL;\n }\n value.push(result.value);\n }\n return { ok: true, value };\n };\n}\n\nfunction vOptional<T>(inner: Check<T>): Check<T | undefined> {\n return (input) => (input === undefined ? { ok: true, value: undefined } : inner(input));\n}\n\nfunction vObject(shape: Record<string, Check<unknown>>): Check<Record<string, unknown>> {\n return (input) => {\n if (typeof input !== \"object\" || input === null || Array.isArray(input)) {\n return FAIL;\n }\n const record = input as Record<string, unknown>;\n const value: Record<string, unknown> = {};\n for (const [key, check] of Object.entries(shape)) {\n const result = check(record[key]);\n if (!result.ok) {\n return FAIL;\n }\n // Mirror zod: absent optional keys are omitted; unknown keys are dropped.\n if (result.value !== undefined) {\n value[key] = result.value;\n }\n }\n return { ok: true, value };\n };\n}\n\nconst itemTypeOption = vObject({\n key: vString,\n values: vArray(vString),\n required: vOptional(vBoolean),\n aliases: vOptional(vArray(vString)),\n description: vOptional(vString),\n});\n\nconst itemTypeCommandOptionPolicy = vObject({\n command: vLiteral(\"create\", \"update\"),\n option: vString,\n required: vOptional(vBoolean),\n visible: vOptional(vBoolean),\n enabled: vOptional(vBoolean),\n});\n\nconst itemTypeDefinition = vObject({\n name: vString,\n folder: vOptional(vString),\n aliases: vOptional(vArray(vString)),\n required_create_fields: vOptional(vArray(vString)),\n required_create_repeatables: vOptional(vArray(vString)),\n options: vOptional(vArray(itemTypeOption)),\n command_option_policies: vOptional(vArray(itemTypeCommandOptionPolicy)),\n});\n\nconst runtimeStatusDefinition = vObject({\n id: vString,\n aliases: vOptional(vArray(vString)),\n roles: vOptional(vArray(vLiteral(...RUNTIME_STATUS_ROLE_VALUES))),\n description: vOptional(vString),\n order: vOptional(vNumber()),\n});\n\nconst runtimeFieldDefinition = vObject({\n key: vString,\n metadata_key: vOptional(vString),\n front_matter_key: vOptional(vString),\n cli_flag: vOptional(vString),\n cli_aliases: vOptional(vArray(vString)),\n description: vOptional(vString),\n type: vOptional(vLiteral(...RUNTIME_FIELD_TYPE_VALUES)),\n commands: vOptional(vArray(vLiteral(...RUNTIME_FIELD_COMMAND_VALUES))),\n repeatable: vOptional(vBoolean),\n required: vOptional(vBoolean),\n required_on_create: vOptional(vBoolean),\n required_types: vOptional(vArray(vString)),\n allow_unset: vOptional(vBoolean),\n});\n\nconst runtimeSchemaSettings = vOptional(\n vObject({\n version: vOptional(vNumber({ int: true })),\n files: vOptional(\n vObject({\n types: vOptional(vString),\n statuses: vOptional(vString),\n fields: vOptional(vString),\n workflows: vOptional(vString),\n }),\n ),\n statuses: vOptional(vArray(runtimeStatusDefinition)),\n fields: vOptional(vArray(runtimeFieldDefinition)),\n workflow: vOptional(\n vObject({\n draft_status: vOptional(vString),\n open_status: vOptional(vString),\n in_progress_status: vOptional(vString),\n blocked_status: vOptional(vString),\n close_status: vOptional(vString),\n canceled_status: vOptional(vString),\n }),\n ),\n unknown_field_policy: vOptional(vLiteral(...RUNTIME_UNKNOWN_FIELD_POLICY_VALUES)),\n }),\n);\n\nconst governanceSettings = vOptional(\n vObject({\n preset: vOptional(vLiteral(...GOVERNANCE_PRESET_VALUES)),\n ownership_enforcement: vOptional(vLiteral(\"none\", \"warn\", \"strict\")),\n create_mode_default: vOptional(vLiteral(\"progressive\", \"strict\")),\n close_validation_default: vOptional(vLiteral(\"off\", \"warn\", \"strict\")),\n parent_reference: vOptional(vLiteral(\"warn\", \"strict_error\")),\n metadata_profile: vOptional(vLiteral(\"core\", \"strict\", \"custom\")),\n force_required_for_stale_lock: vOptional(vBoolean),\n create_default_type: vOptional(vString),\n }),\n);\n\nconst extensionPolicyOverride = vObject({\n name: vString,\n disabled: vOptional(vBoolean),\n require_trusted: vOptional(vBoolean),\n require_provenance: vOptional(vBoolean),\n sandbox_profile: vOptional(vLiteral(\"none\", \"restricted\", \"strict\")),\n allowed_capabilities: vOptional(vArray(vString)),\n blocked_capabilities: vOptional(vArray(vString)),\n allowed_surfaces: vOptional(vArray(vString)),\n blocked_surfaces: vOptional(vArray(vString)),\n allowed_commands: vOptional(vArray(vString)),\n blocked_commands: vOptional(vArray(vString)),\n allowed_actions: vOptional(vArray(vString)),\n blocked_actions: vOptional(vArray(vString)),\n allowed_services: vOptional(vArray(vString)),\n blocked_services: vOptional(vArray(vString)),\n});\n\nconst extensionPolicy = vOptional(\n vObject({\n mode: vOptional(vLiteral(\"off\", \"warn\", \"enforce\")),\n trust_mode: vOptional(vLiteral(\"off\", \"warn\", \"enforce\")),\n require_provenance: vOptional(vBoolean),\n trusted_extensions: vOptional(vArray(vString)),\n default_sandbox_profile: vOptional(vLiteral(\"none\", \"restricted\", \"strict\")),\n allowed_extensions: vOptional(vArray(vString)),\n blocked_extensions: vOptional(vArray(vString)),\n allowed_capabilities: vOptional(vArray(vString)),\n blocked_capabilities: vOptional(vArray(vString)),\n allowed_surfaces: vOptional(vArray(vString)),\n blocked_surfaces: vOptional(vArray(vString)),\n allowed_commands: vOptional(vArray(vString)),\n blocked_commands: vOptional(vArray(vString)),\n allowed_actions: vOptional(vArray(vString)),\n blocked_actions: vOptional(vArray(vString)),\n allowed_services: vOptional(vArray(vString)),\n blocked_services: vOptional(vArray(vString)),\n extension_overrides: vOptional(vArray(extensionPolicyOverride)),\n }),\n);\n\nconst settingsCheck = vObject({\n version: vNumber({ int: true }),\n id_prefix: vString,\n author_default: vString,\n item_format: vOptional(vLiteral(\"toon\", \"json_markdown\")),\n locks: vObject({ ttl_seconds: vNumber({ int: true }) }),\n output: vObject({ default_format: vLiteral(\"toon\", \"json\") }),\n history: vOptional(vObject({ missing_stream: vLiteral(\"auto_create\", \"strict_error\") })),\n validation: vOptional(\n vObject({\n sprint_release_format: vLiteral(\"warn\", \"strict_error\"),\n parent_reference: vOptional(vLiteral(\"warn\", \"strict_error\")),\n metadata_profile: vOptional(vLiteral(\"core\", \"strict\", \"custom\")),\n metadata_required_fields: vOptional(vArray(vString)),\n lifecycle_stale_blocker_reason_patterns: vOptional(vArray(vString)),\n lifecycle_closure_like_blocked_reason_patterns: vOptional(vArray(vString)),\n lifecycle_closure_like_resolution_patterns: vOptional(vArray(vString)),\n lifecycle_closure_like_actual_result_patterns: vOptional(vArray(vString)),\n }),\n ),\n governance: governanceSettings,\n workflow: vOptional(vObject({ definition_of_done: vArray(vString) })),\n testing: vOptional(vObject({ record_results_to_items: vBoolean })),\n telemetry: vOptional(\n vObject({\n enabled: vBoolean,\n first_run_prompt_completed: vOptional(vBoolean),\n capture_level: vOptional(vLiteral(\"minimal\", \"redacted\", \"max\")),\n endpoint: vOptional(vString),\n installation_id: vOptional(vString),\n retention_days: vOptional(vNumber({ int: true, positive: true })),\n }),\n ),\n agent_guidance: vOptional(\n vObject({\n prompt_completed: vOptional(vBoolean),\n declined: vOptional(vBoolean),\n declined_at: vOptional(vString),\n template_version: vOptional(vNumber({ int: true, positive: true })),\n last_checked_files: vOptional(vArray(vString)),\n }),\n ),\n item_types: vOptional(vObject({ definitions: vArray(itemTypeDefinition) })),\n schema: runtimeSchemaSettings,\n context: vOptional(\n vObject({\n default_depth: vOptional(vLiteral(\"brief\", \"standard\", \"deep\")),\n activity_limit: vOptional(vNumber({ int: true, positive: true })),\n stale_threshold_days: vOptional(vNumber({ int: true, positive: true })),\n sections: vOptional(\n vObject({\n hierarchy: vOptional(vBoolean),\n activity: vOptional(vBoolean),\n progress: vOptional(vBoolean),\n blockers: vOptional(vBoolean),\n files: vOptional(vBoolean),\n workload: vOptional(vBoolean),\n staleness: vOptional(vBoolean),\n tests: vOptional(vBoolean),\n }),\n ),\n }),\n ),\n extensions: vObject({\n enabled: vArray(vString),\n disabled: vArray(vString),\n policy: extensionPolicy,\n }),\n search: vObject({\n score_threshold: vNumber(),\n hybrid_semantic_weight: vOptional(vNumber()),\n max_results: vNumber({ int: true }),\n embedding_model: vString,\n embedding_batch_size: vNumber({ int: true }),\n embedding_timeout_ms: vOptional(vNumber({ int: true })),\n scanner_max_batch_retries: vNumber({ int: true }),\n provider: vOptional(vString),\n }),\n providers: vObject({\n openai: vObject({ base_url: vString, api_key: vString, model: vString }),\n ollama: vObject({ base_url: vString, model: vString }),\n }),\n vector_store: vObject({\n adapter: vOptional(vString),\n qdrant: vObject({ url: vString, api_key: vString }),\n lancedb: vObject({ path: vString }),\n }),\n});\n\n/** Validate raw settings, returning stripped, type-checked data or failure (matching the legacy zod safeParse). */\nexport function validateSettings(raw: unknown): SettingsValidationResult {\n const result = settingsCheck(raw);\n if (!result.ok) {\n return { success: false };\n }\n return { success: true, data: result.value as unknown as ParsedSettings };\n}\n"],"names":[],"mappings":"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","debugId":"78a7aa6c-b637-5a23-b836-51110e82fbba"}