@unbrained/pm-cli 2026.10.30 → 2026.11.1

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 (262) hide show
  1. package/.agents/skills/pm-user/references/ECOSYSTEM_PLANNING.md +1 -1
  2. package/.claude-plugin/marketplace.json +1 -1
  3. package/AGENTS.md +3 -3
  4. package/CHANGELOG.md +41 -0
  5. package/README.md +1 -1
  6. package/dist/cli/commander-usage.js +2 -2
  7. package/dist/cli/error-guidance.d.ts +45 -5
  8. package/dist/cli/error-guidance.js +5 -3
  9. package/dist/cli/extension-command-help.d.ts +1 -0
  10. package/dist/cli/extension-command-help.js +2 -2
  11. package/dist/cli/main.d.ts +1 -5
  12. package/dist/cli/main.js +5 -5
  13. package/dist/cli/migration-gates.d.ts +1 -1
  14. package/dist/cli/migration-gates.js +1 -1
  15. package/dist/cli/preflight-warnings.d.ts +11 -0
  16. package/dist/cli/preflight-warnings.js +4 -0
  17. package/dist/cli/register-mutation.js +2 -2
  18. package/dist/cli/register-operations.d.ts +3 -3
  19. package/dist/cli/register-operations.js +1 -1
  20. package/dist/cli-bundle/bundle-manifest.json +1 -1
  21. package/dist/cli-bundle/chunks/chunk-2GK2IVU5.js +8 -0
  22. package/dist/cli-bundle/chunks/chunk-5KW4WUAK.js +6 -0
  23. package/dist/cli-bundle/chunks/chunk-5WVE7XBS.js +114 -0
  24. package/dist/cli-bundle/chunks/chunk-6PKWKVS6.js +8 -0
  25. package/dist/cli-bundle/chunks/chunk-E74BORFX.js +128 -0
  26. package/dist/cli-bundle/chunks/chunk-F3ECOBKA.js +2 -0
  27. package/dist/cli-bundle/chunks/chunk-ICT6E4IW.js +2 -0
  28. package/dist/cli-bundle/chunks/chunk-MP2DQJH2.js +3 -0
  29. package/dist/cli-bundle/chunks/{chunk-LWW4F4G2.js → chunk-MRUA2Z43.js} +2 -2
  30. package/dist/cli-bundle/chunks/{chunk-UUQX3PFD.js → chunk-MTRIGD7M.js} +76 -76
  31. package/dist/cli-bundle/chunks/{chunk-S2U7ECUJ.js → chunk-N45IXPCA.js} +2 -2
  32. package/dist/cli-bundle/chunks/{chunk-MVL27TAH.js → chunk-NILQ2ZMV.js} +2 -2
  33. package/dist/cli-bundle/chunks/{chunk-GRABKNFL.js → chunk-O56O7NIE.js} +2 -2
  34. package/dist/cli-bundle/chunks/chunk-O6TFUV6M.js +31 -0
  35. package/dist/cli-bundle/chunks/{chunk-TH5KPAN4.js → chunk-SBVX5CMV.js} +2 -2
  36. package/dist/cli-bundle/chunks/{chunk-Y6NC3X3E.js → chunk-TMPO4CTZ.js} +3 -3
  37. package/dist/cli-bundle/chunks/chunk-TYERATXH.js +2 -0
  38. package/dist/cli-bundle/chunks/{chunk-EHBGHX55.js → chunk-UEEG47TU.js} +2 -2
  39. package/dist/cli-bundle/chunks/chunk-UUN3WNMQ.js +20 -0
  40. package/dist/cli-bundle/chunks/chunk-WFBYKDB2.js +2 -0
  41. package/dist/cli-bundle/chunks/{chunk-RZQNFHXO.js → chunk-WX25MU4N.js} +3 -3
  42. package/dist/cli-bundle/chunks/{chunk-4BQD5SW2.js → chunk-Y7CKVU56.js} +30 -30
  43. package/dist/cli-bundle/chunks/{indexed-receipt-blobs-LHLE7PSG.js → indexed-receipt-blobs-KGMJVFH2.js} +2 -2
  44. package/dist/cli-bundle/chunks/item-transaction-Q5S5YLEJ.js +2 -0
  45. package/dist/cli-bundle/chunks/{mutation-admission-TRGAVS7N.js → mutation-admission-BOOCJPCU.js} +2 -2
  46. package/dist/cli-bundle/chunks/{register-list-query-BH4F6M7Z.js → register-list-query-23OX36Q3.js} +3 -3
  47. package/dist/cli-bundle/chunks/register-mutation-JPJ5YNDX.js +20 -0
  48. package/dist/cli-bundle/chunks/register-operations-IGR7ERY5.js +2 -0
  49. package/dist/cli-bundle/chunks/{register-setup-QPWSVHFZ.js → register-setup-BMIFKZZP.js} +2 -2
  50. package/dist/cli-bundle/chunks/{settlement-hook-MN3Y7LVX.js → settlement-hook-YWSWFOZY.js} +2 -2
  51. package/dist/cli-bundle/chunks/{stage-RTB6RAAO.js → stage-ON7CYYPM.js} +2 -2
  52. package/dist/cli-bundle/focused-chunks/{chunk-POJPJX64.js → chunk-2Y77HWIX.js} +2 -2
  53. package/dist/cli-bundle/focused-chunks/{chunk-SAT7IAEB.js → chunk-3NYWMUX3.js} +3 -3
  54. package/dist/cli-bundle/focused-chunks/chunk-3Z53POXU.js +2 -0
  55. package/dist/cli-bundle/focused-chunks/chunk-5TWS5KOM.js +26 -0
  56. package/dist/cli-bundle/focused-chunks/chunk-5WCQFH6D.js +12 -0
  57. package/dist/cli-bundle/focused-chunks/{chunk-S23ZUASN.js → chunk-6GMYW42K.js} +2 -2
  58. package/dist/cli-bundle/focused-chunks/{chunk-YQUZL2CK.js → chunk-6OKPYCLU.js} +5 -5
  59. package/dist/cli-bundle/focused-chunks/chunk-7WJDRZOR.js +22 -0
  60. package/dist/cli-bundle/focused-chunks/{chunk-3SRX77ES.js → chunk-AL7SOFUL.js} +2 -2
  61. package/dist/cli-bundle/focused-chunks/chunk-CIQ6YWCW.js +26 -0
  62. package/dist/cli-bundle/focused-chunks/{chunk-RKPUQDWF.js → chunk-DFUTCKUF.js} +2 -2
  63. package/dist/cli-bundle/focused-chunks/{chunk-RYEZSZJ7.js → chunk-GE755ODZ.js} +2 -2
  64. package/dist/cli-bundle/focused-chunks/chunk-JCR32IAO.js +91 -0
  65. package/dist/cli-bundle/focused-chunks/{chunk-BPE6JTKL.js → chunk-JLXGRDTG.js} +3 -3
  66. package/dist/cli-bundle/focused-chunks/chunk-LVA76N27.js +6 -0
  67. package/dist/cli-bundle/focused-chunks/{chunk-YU7QOYYV.js → chunk-M22TI7LP.js} +3 -3
  68. package/dist/cli-bundle/focused-chunks/chunk-PAT6QF63.js +2 -0
  69. package/dist/cli-bundle/focused-chunks/{chunk-VFWCSQAG.js → chunk-RPUDOJVB.js} +2 -2
  70. package/dist/cli-bundle/focused-chunks/chunk-SXZM4PSS.js +44 -0
  71. package/dist/cli-bundle/focused-chunks/chunk-UQIBGLDR.js +2 -0
  72. package/dist/cli-bundle/focused-chunks/{chunk-RGQEJFXO.js → chunk-VFQAZLKO.js} +2 -2
  73. package/dist/cli-bundle/focused-chunks/{chunk-BCIUAEWX.js → chunk-VS2ZFPXD.js} +2 -2
  74. package/dist/cli-bundle/focused-chunks/{chunk-FRFNGMAK.js → chunk-WX2RVS2Y.js} +2 -2
  75. package/dist/cli-bundle/focused-chunks/chunk-Z7GIVH6B.js +3 -0
  76. package/dist/cli-bundle/focused-chunks/{indexed-receipt-blobs-VK2363JB.js → indexed-receipt-blobs-KHWT44EK.js} +2 -2
  77. package/dist/cli-bundle/focused-chunks/item-transaction-7VLPA2SU.js +2 -0
  78. package/dist/cli-bundle/focused-chunks/{mutation-admission-7VUODEPJ.js → mutation-admission-2DH27R5Y.js} +2 -2
  79. package/dist/cli-bundle/focused-chunks/{settlement-hook-OK6A7PG2.js → settlement-hook-SJV52ZTV.js} +2 -2
  80. package/dist/cli-bundle/focused-chunks/{stage-S5RP5SZH.js → stage-FYOBWQA7.js} +2 -2
  81. package/dist/cli-bundle/main.js +26 -22
  82. package/dist/cli-bundle/sdk-authoring.js +1 -1
  83. package/dist/cli-bundle/sdk-contracts.js +4 -4
  84. package/dist/cli-bundle/sdk-core.js +1 -1
  85. package/dist/cli-bundle/sdk-governance.js +1 -1
  86. package/dist/cli-bundle/sdk-graph.js +1 -1
  87. package/dist/cli-bundle/sdk-merge.js +57 -57
  88. package/dist/cli-bundle/sdk-query.js +1 -1
  89. package/dist/cli-bundle/sdk-runtime.js +1 -1
  90. package/dist/cli-bundle/sdk-testing.js +1 -1
  91. package/dist/cli-bundle/sdk.js +11 -11
  92. package/dist/core/config/nested-settings.js +1 -1
  93. package/dist/core/extensions/extension-hook-runtime.js +1 -1
  94. package/dist/core/extensions/extension-types.d.ts +4 -0
  95. package/dist/core/extensions/extension-types.js +1 -1
  96. package/dist/core/extensions/loader.js +1 -1
  97. package/dist/core/lock/lock.js +4 -4
  98. package/dist/core/output/mutation-projection.js +1 -1
  99. package/dist/core/output/output.js +3 -3
  100. package/dist/core/schema/fields-file.js +1 -1
  101. package/dist/core/sentry/helpers.d.ts +6 -0
  102. package/dist/core/sentry/helpers.js +1 -1
  103. package/dist/core/sentry/instrument.d.ts +1 -1
  104. package/dist/core/sentry/instrument.js +1 -1
  105. package/dist/core/shared/constants.js +1 -1
  106. package/dist/core/shared/errors.d.ts +6 -0
  107. package/dist/core/shared/errors.js +1 -1
  108. package/dist/core/shared/output-unicode.d.ts +10 -0
  109. package/dist/core/shared/output-unicode.js +2 -0
  110. package/dist/core/store/settings-validator.d.ts +1 -0
  111. package/dist/core/store/settings-validator.js +1 -1
  112. package/dist/core/store/settings.js +1 -1
  113. package/dist/core/telemetry/policy.d.ts +8 -0
  114. package/dist/core/telemetry/policy.js +1 -1
  115. package/dist/core/telemetry/runtime.js +3 -3
  116. package/dist/sdk/agent/command-recovery.d.ts +15 -0
  117. package/dist/sdk/agent/command-recovery.js +1 -1
  118. package/dist/sdk/cli-bootstrap.js +1 -1
  119. package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +28 -0
  120. package/dist/sdk/cli-contracts/agent-output-contracts.js +2 -2
  121. package/dist/sdk/cli-contracts/commander-mutation-options.js +1 -1
  122. package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
  123. package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
  124. package/dist/sdk/cli-contracts/grammar-contracts.js +1 -1
  125. package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -1
  126. package/dist/sdk/cli-contracts/tool-schema.js +1 -1
  127. package/dist/sdk/cli-contracts.d.ts +1 -1
  128. package/dist/sdk/cli-contracts.js +1 -1
  129. package/dist/sdk/completion/fish.js +4 -4
  130. package/dist/sdk/completion/zsh.js +3 -3
  131. package/dist/sdk/config.d.ts +1 -0
  132. package/dist/sdk/config.js +1 -1
  133. package/dist/sdk/context-intent-contracts.d.ts +17 -0
  134. package/dist/sdk/context-intent-contracts.js +1 -1
  135. package/dist/sdk/core.d.ts +2 -1
  136. package/dist/sdk/core.js +1 -1
  137. package/dist/sdk/error-runtime.d.ts +9 -0
  138. package/dist/sdk/error-runtime.js +1 -1
  139. package/dist/sdk/errors.js +1 -1
  140. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  141. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  142. package/dist/sdk/index.d.ts +3 -3
  143. package/dist/sdk/index.js +1 -1
  144. package/dist/sdk/init-agent-guidance.js +2 -2
  145. package/dist/sdk/lifecycle/claim.d.ts +27 -0
  146. package/dist/sdk/lifecycle/claim.js +1 -1
  147. package/dist/sdk/lifecycle/close.js +1 -1
  148. package/dist/sdk/lifecycle/create.js +1 -1
  149. package/dist/sdk/lifecycle/mcp-actions.d.ts +1 -1
  150. package/dist/sdk/lifecycle/mcp-actions.js +1 -1
  151. package/dist/sdk/lifecycle/plan.d.ts +2 -3
  152. package/dist/sdk/lifecycle/plan.js +1 -1
  153. package/dist/sdk/lifecycle/repeated-terminal-state.d.ts +45 -0
  154. package/dist/sdk/lifecycle/repeated-terminal-state.js +2 -0
  155. package/dist/sdk/lifecycle/shared-unset-fields.d.ts +9 -0
  156. package/dist/sdk/lifecycle/shared-unset-fields.js +1 -1
  157. package/dist/sdk/lifecycle/task-composition.js +1 -1
  158. package/dist/sdk/lifecycle/update-many.d.ts +0 -1
  159. package/dist/sdk/lifecycle/update-many.js +1 -1
  160. package/dist/sdk/lifecycle/update.d.ts +29 -1
  161. package/dist/sdk/lifecycle/update.js +2 -2
  162. package/dist/sdk/output/list-envelope.d.ts +8 -0
  163. package/dist/sdk/output/list-envelope.js +1 -1
  164. package/dist/sdk/output/table-rows.d.ts +7 -1
  165. package/dist/sdk/output/table-rows.js +1 -1
  166. package/dist/sdk/output.d.ts +2 -1
  167. package/dist/sdk/output.js +2 -2
  168. package/dist/sdk/ownership-source.d.ts +18 -0
  169. package/dist/sdk/ownership-source.js +1 -1
  170. package/dist/sdk/public-surface.json +1 -1
  171. package/dist/sdk/query/context.js +2 -2
  172. package/dist/sdk/query/get.d.ts +1 -1
  173. package/dist/sdk/query/get.js +1 -1
  174. package/dist/sdk/query/next-ranking-policy.d.ts +35 -0
  175. package/dist/sdk/query/next-ranking-policy.js +2 -0
  176. package/dist/sdk/query/next.d.ts +12 -2
  177. package/dist/sdk/query/next.js +2 -2
  178. package/dist/sdk/query/projection-contracts.d.ts +4 -0
  179. package/dist/sdk/query/projection-contracts.js +1 -1
  180. package/dist/sdk/read-output/surfaces.d.ts +27 -0
  181. package/dist/sdk/read-output/surfaces.js +2 -0
  182. package/dist/sdk/read-output-contracts.js +1 -1
  183. package/dist/sdk/runtime/actions.js +1 -1
  184. package/dist/sdk/runtime-input.js +1 -1
  185. package/dist/sdk/runtime-primitives.d.ts +1 -0
  186. package/dist/sdk/runtime-primitives.js +1 -1
  187. package/dist/sdk/runtime-public-contracts.d.ts +2 -0
  188. package/dist/sdk/runtime.d.ts +2 -2
  189. package/dist/sdk/runtime.js +1 -1
  190. package/dist/sdk/start-task-status.d.ts +1 -1
  191. package/dist/sdk/start-task-status.js +1 -1
  192. package/dist/sdk/test/execution-receipts.d.ts +25 -0
  193. package/dist/sdk/test/execution-receipts.js +2 -2
  194. package/dist/sdk/test/execution.d.ts +5 -0
  195. package/dist/sdk/test/execution.js +2 -2
  196. package/dist/types.d.ts +2 -0
  197. package/dist/types.js +1 -1
  198. package/docs/AGENT_GUIDE.md +4 -4
  199. package/docs/AGENT_OUTPUT_ENCODINGS.md +12 -0
  200. package/docs/AGENT_UX_CONTRACTS.md +2 -1
  201. package/docs/COMMANDS.md +59 -5
  202. package/docs/COMMAND_NAMESPACES.md +1 -1
  203. package/docs/CONFIGURATION.md +48 -1
  204. package/docs/DEVELOPMENT_DEPENDENCY_SECURITY.md +26 -0
  205. package/docs/LIFECYCLE_COMMANDS.md +19 -4
  206. package/docs/PACKED_FIRST_RUN.md +2 -1
  207. package/docs/READ_OUTPUT_CONTRACTS.md +24 -6
  208. package/docs/SDK.md +82 -3
  209. package/docs/SDK_ACTION_CONFORMANCE.md +21 -0
  210. package/docs/TESTING.md +38 -2
  211. package/docs/agent-task-token-baseline.json +1 -1
  212. package/docs/agent-task-transcripts.json +1 -1
  213. package/marketplace.json +1 -1
  214. package/package.json +1 -1
  215. package/packages/pm-beads/package.json +1 -1
  216. package/packages/pm-calendar/extensions/calendar/index.ts +1 -0
  217. package/packages/pm-calendar/package.json +1 -1
  218. package/packages/pm-command-kit/package.json +1 -1
  219. package/packages/pm-digital-twin/package.json +1 -1
  220. package/packages/pm-governance-audit/package.json +1 -1
  221. package/packages/pm-guide-shell/package.json +1 -1
  222. package/packages/pm-kanban/package.json +1 -1
  223. package/packages/pm-lifecycle-hooks/package.json +1 -1
  224. package/packages/pm-linked-test-adapters/package.json +1 -1
  225. package/packages/pm-search-advanced/package.json +1 -1
  226. package/packages/pm-templates/package.json +1 -1
  227. package/packages/pm-todos/package.json +1 -1
  228. package/packages/pm-vcs/package.json +1 -1
  229. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  230. package/plugins/pm-claude/package.json +1 -1
  231. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  232. package/plugins/pm-codex/package.json +1 -1
  233. package/plugins/pm-codex/plugin.json +1 -1
  234. package/runtime-dependencies.json +1 -1
  235. package/dist/cli-bundle/chunks/chunk-34MP7WKK.js +0 -6
  236. package/dist/cli-bundle/chunks/chunk-3KMYHYJV.js +0 -2
  237. package/dist/cli-bundle/chunks/chunk-42BHHNTL.js +0 -128
  238. package/dist/cli-bundle/chunks/chunk-I5O3XZOA.js +0 -2
  239. package/dist/cli-bundle/chunks/chunk-LEIVUGDH.js +0 -8
  240. package/dist/cli-bundle/chunks/chunk-OH7WPD42.js +0 -114
  241. package/dist/cli-bundle/chunks/chunk-OOD2A7AF.js +0 -20
  242. package/dist/cli-bundle/chunks/chunk-Q5V7P6NM.js +0 -2
  243. package/dist/cli-bundle/chunks/chunk-QLPFYBXN.js +0 -2
  244. package/dist/cli-bundle/chunks/chunk-SA5NYLPE.js +0 -8
  245. package/dist/cli-bundle/chunks/chunk-VHLAVTJN.js +0 -31
  246. package/dist/cli-bundle/chunks/chunk-XAOVJG52.js +0 -3
  247. package/dist/cli-bundle/chunks/chunk-XPQ4RTSF.js +0 -2
  248. package/dist/cli-bundle/chunks/item-transaction-WIOBZW4E.js +0 -2
  249. package/dist/cli-bundle/chunks/register-mutation-5V2NANIS.js +0 -20
  250. package/dist/cli-bundle/chunks/register-operations-XSFRMUFX.js +0 -2
  251. package/dist/cli-bundle/focused-chunks/chunk-2V6NMNYN.js +0 -26
  252. package/dist/cli-bundle/focused-chunks/chunk-ASHGXMX4.js +0 -3
  253. package/dist/cli-bundle/focused-chunks/chunk-CKBN2D42.js +0 -12
  254. package/dist/cli-bundle/focused-chunks/chunk-I642DXOT.js +0 -22
  255. package/dist/cli-bundle/focused-chunks/chunk-K7DKG5HM.js +0 -91
  256. package/dist/cli-bundle/focused-chunks/chunk-NMQBXU7N.js +0 -44
  257. package/dist/cli-bundle/focused-chunks/chunk-PGM3ENGZ.js +0 -2
  258. package/dist/cli-bundle/focused-chunks/chunk-QFNV4JTA.js +0 -6
  259. package/dist/cli-bundle/focused-chunks/chunk-QVJCQMZY.js +0 -26
  260. package/dist/cli-bundle/focused-chunks/chunk-R2TPPPVU.js +0 -2
  261. package/dist/cli-bundle/focused-chunks/chunk-VJVJ2ZX2.js +0 -2
  262. package/dist/cli-bundle/focused-chunks/item-transaction-ZFDKJIP7.js +0 -2
@@ -1,3 +1,3 @@
1
- import{a as c}from"./chunk-RGQEJFXO.js";import{g as d,oa as w,pa as u}from"./chunk-2V6NMNYN.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="158d5065-075c-5355-a65c-f3edc9c5f1f0")}catch{}})();var _=new Map(d.map(e=>[e.toLowerCase(),e])),$=/^[A-Za-z][A-Za-z0-9_-]*$/;function g(e,t){if(!$.test(e))throw new Error(`${t} "${e}" is not a valid identifier. Use a single letter-led token of letters, digits, hyphen, or underscore with no spaces or punctuation (e.g. "Spike" or "code-review").`)}function y(e){return _.get(e.trim().toLowerCase())}function A(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function I(e){return e.replace(/[\\"`$]/g,t=>`\\${t}`)}function b(e){let t=new Map;for(let o of e){let n=o.trim();if(n.length===0)continue;let i=n.toLowerCase();t.has(i)||t.set(i,n)}return[...t.values()].sort((o,n)=>o.localeCompare(n))}function S(e){let t=(e.name??"").trim();if(t.length===0)throw new Error("Type name must not be empty.");g(t,"Type name");let o=y(t);if(o)throw new Error(`Cannot redefine built-in item type "${o}". Built-in types are reserved: ${d.join(", ")}.`);let n=e.description?.trim(),i=e.defaultStatus?.trim(),r=e.folder?.trim(),a=r&&r.length>0?u(r):void 0,s=b(e.aliases??[]);for(let l of s){g(l,"Alias");let f=y(l);if(f)throw new Error(`Alias "${l}" collides with built-in item type "${f}". Built-in types are reserved: ${d.join(", ")}.`)}return{name:t,description:n&&n.length>0?n:void 0,defaultStatus:i&&i.length>0?i:void 0,folder:a,aliases:s}}function x(e,t){let o=e.name.toLowerCase(),n=new Map;for(let r of t.definitions){if(typeof r.name!="string")continue;let a=r.name.trim();if(!(a.length===0||a.toLowerCase()===o)){n.set(a.toLowerCase(),a);for(let s of A(r.aliases))s.trim().length>0&&n.set(s.trim().toLowerCase(),a)}}let i=n.get(o);if(i)throw new Error(`Type name "${e.name}" collides with an alias of existing item type "${i}".`);for(let r of e.aliases){let a=n.get(r.toLowerCase());if(a)throw new Error(`Alias "${r}" already maps to existing item type "${a}".`)}}function h(e,t){return typeof t=="string"&&t.trim().length>0?u(t).toLowerCase():w(e).toLowerCase()}function D(e,t,o){let n=e.name.toLowerCase(),i=h(e.name,e.folder),r=s=>{throw new Error(`Item type "${e.name}" would store items in folder "${i}", which already belongs to existing item type "${s}". Pass a distinct --folder to keep their storage separate.`)};for(let s of t.definitions){if(typeof s.name!="string")continue;let l=s.name.trim();l.length===0||l.toLowerCase()===n||h(l,s.folder)===i&&r(l)}let a=o?.get(i);a!==void 0&&a.toLowerCase()!==n&&r(a)}function j(e){if(e==null||e.trim().length===0)return{definitions:[]};let t;try{t=JSON.parse(e)}catch{throw new Error("schema/types.json contains invalid JSON.")}return{definitions:L(t)}}function L(e){let t=C(e);if(!t)return[];let o=[];for(let n of t){if(typeof n!="object"||n===null||Array.isArray(n))continue;let i=n;typeof i.name!="string"||i.name.trim().length===0||o.push(i)}return o}function C(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let t=e;if(Array.isArray(t.definitions))return t.definitions;if(typeof t.item_types=="object"&&t.item_types!==null){let o=t.item_types;if(Array.isArray(o.definitions))return o.definitions}}function z(e,t){let o=t.name.toLowerCase(),n=e.definitions.slice(),i=n.findIndex(l=>typeof l.name=="string"&&l.name.trim().toLowerCase()===o),r=i>=0?n[i]:void 0,a=b([...A(r?.aliases),...t.aliases]),s={...r,name:t.name};return t.folder!==void 0&&(s.folder=t.folder),a.length>0?s.aliases=a:s.aliases!==void 0&&delete s.aliases,T(s,"description",t.description),T(s,"default_status",t.defaultStatus),i>=0?n[i]=s:n.push(s),n.sort((l,f)=>l.name.localeCompare(f.name)),{file:{definitions:n},definition:s,replaced:i>=0,...r&&typeof r.name=="string"?{previousName:r.name}:{}}}function F(e,t){let o=(t??"").trim();if(o.length===0)throw new Error("Type name must not be empty.");let n=y(o);if(n)throw new Error(`Cannot remove built-in item type "${n}". Built-in types are reserved: ${d.join(", ")}.`);let i=o.toLowerCase(),r=e.definitions.slice(),a=r.findIndex(l=>typeof l.name=="string"&&l.name.trim().toLowerCase()===i);if(a<0)return{file:{definitions:r},removed:!1};let[s]=r.splice(a,1);return{file:{definitions:r},removed:!0,definition:s}}function T(e,t,o){let n=e;o!==void 0&&(n[t]=o)}function M(e){return`${JSON.stringify({definitions:e.definitions},null,2)}
1
+ import{a as c}from"./chunk-VFQAZLKO.js";import{g as d,oa as w,pa as u}from"./chunk-CIQ6YWCW.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="158d5065-075c-5355-a65c-f3edc9c5f1f0")}catch{}})();var _=new Map(d.map(e=>[e.toLowerCase(),e])),$=/^[A-Za-z][A-Za-z0-9_-]*$/;function g(e,t){if(!$.test(e))throw new Error(`${t} "${e}" is not a valid identifier. Use a single letter-led token of letters, digits, hyphen, or underscore with no spaces or punctuation (e.g. "Spike" or "code-review").`)}function y(e){return _.get(e.trim().toLowerCase())}function A(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function I(e){return e.replace(/[\\"`$]/g,t=>`\\${t}`)}function b(e){let t=new Map;for(let o of e){let n=o.trim();if(n.length===0)continue;let i=n.toLowerCase();t.has(i)||t.set(i,n)}return[...t.values()].sort((o,n)=>o.localeCompare(n))}function S(e){let t=(e.name??"").trim();if(t.length===0)throw new Error("Type name must not be empty.");g(t,"Type name");let o=y(t);if(o)throw new Error(`Cannot redefine built-in item type "${o}". Built-in types are reserved: ${d.join(", ")}.`);let n=e.description?.trim(),i=e.defaultStatus?.trim(),r=e.folder?.trim(),a=r&&r.length>0?u(r):void 0,s=b(e.aliases??[]);for(let l of s){g(l,"Alias");let f=y(l);if(f)throw new Error(`Alias "${l}" collides with built-in item type "${f}". Built-in types are reserved: ${d.join(", ")}.`)}return{name:t,description:n&&n.length>0?n:void 0,defaultStatus:i&&i.length>0?i:void 0,folder:a,aliases:s}}function x(e,t){let o=e.name.toLowerCase(),n=new Map;for(let r of t.definitions){if(typeof r.name!="string")continue;let a=r.name.trim();if(!(a.length===0||a.toLowerCase()===o)){n.set(a.toLowerCase(),a);for(let s of A(r.aliases))s.trim().length>0&&n.set(s.trim().toLowerCase(),a)}}let i=n.get(o);if(i)throw new Error(`Type name "${e.name}" collides with an alias of existing item type "${i}".`);for(let r of e.aliases){let a=n.get(r.toLowerCase());if(a)throw new Error(`Alias "${r}" already maps to existing item type "${a}".`)}}function h(e,t){return typeof t=="string"&&t.trim().length>0?u(t).toLowerCase():w(e).toLowerCase()}function D(e,t,o){let n=e.name.toLowerCase(),i=h(e.name,e.folder),r=s=>{throw new Error(`Item type "${e.name}" would store items in folder "${i}", which already belongs to existing item type "${s}". Pass a distinct --folder to keep their storage separate.`)};for(let s of t.definitions){if(typeof s.name!="string")continue;let l=s.name.trim();l.length===0||l.toLowerCase()===n||h(l,s.folder)===i&&r(l)}let a=o?.get(i);a!==void 0&&a.toLowerCase()!==n&&r(a)}function j(e){if(e==null||e.trim().length===0)return{definitions:[]};let t;try{t=JSON.parse(e)}catch{throw new Error("schema/types.json contains invalid JSON.")}return{definitions:L(t)}}function L(e){let t=C(e);if(!t)return[];let o=[];for(let n of t){if(typeof n!="object"||n===null||Array.isArray(n))continue;let i=n;typeof i.name!="string"||i.name.trim().length===0||o.push(i)}return o}function C(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let t=e;if(Array.isArray(t.definitions))return t.definitions;if(typeof t.item_types=="object"&&t.item_types!==null){let o=t.item_types;if(Array.isArray(o.definitions))return o.definitions}}function z(e,t){let o=t.name.toLowerCase(),n=e.definitions.slice(),i=n.findIndex(l=>typeof l.name=="string"&&l.name.trim().toLowerCase()===o),r=i>=0?n[i]:void 0,a=b([...A(r?.aliases),...t.aliases]),s={...r,name:t.name};return t.folder!==void 0&&(s.folder=t.folder),a.length>0?s.aliases=a:s.aliases!==void 0&&delete s.aliases,T(s,"description",t.description),T(s,"default_status",t.defaultStatus),i>=0?n[i]=s:n.push(s),n.sort((l,f)=>l.name.localeCompare(f.name)),{file:{definitions:n},definition:s,replaced:i>=0,...r&&typeof r.name=="string"?{previousName:r.name}:{}}}function F(e,t){let o=(t??"").trim();if(o.length===0)throw new Error("Type name must not be empty.");let n=y(o);if(n)throw new Error(`Cannot remove built-in item type "${n}". Built-in types are reserved: ${d.join(", ")}.`);let i=o.toLowerCase(),r=e.definitions.slice(),a=r.findIndex(l=>typeof l.name=="string"&&l.name.trim().toLowerCase()===i);if(a<0)return{file:{definitions:r},removed:!1};let[s]=r.splice(a,1);return{file:{definitions:r},removed:!0,definition:s}}function T(e,t,o){let n=e;o!==void 0&&(n[t]=o)}function M(e){return`${JSON.stringify({definitions:e.definitions},null,2)}
2
2
  `}function E(e,t){let o=e.trim().length>0?e.trim():e,n=t?.trim()||".agents/pm/schema/types.json";return`To register a custom type, run: pm schema add-type "${I(o)}" (writes ${n}).`}function O(e,t,o){return`Invalid type value "${e}". Allowed: ${t.join(", ")}. ${E(e,o)}`}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="77a7b77a-907c-541d-ac55-e06174dbbf11")}catch{}})();function v(e){return typeof e=="string"?e.trim().toLowerCase():""}function m(e,t){let o=c(e);return o.length===0?"":t?.alias_to_id?.get(o)??o}function U(e){let t=Array.isArray(e?.type_workflows)?e.type_workflows:[],o=new Map;for(let n of t){let i=v(n?.type);if(i.length===0||!Array.isArray(n?.allowed_transitions))continue;let r=n.allowed_transitions,a=o.get(i)??{pairs:[],denyAll:!1};r.length===0&&(a.denyAll=!0);for(let s of r){if(!Array.isArray(s)||s.length!==2)continue;let l=c(s[0]),f=c(s[1]);l.length===0||f.length===0||a.pairs.some(p=>p[0]===l&&p[1]===f)||a.pairs.push([l,f])}o.set(i,a)}return[...o.entries()].filter(([,n])=>n.pairs.length>0||n.denyAll).map(([n,i])=>({type:n,allowed_transitions:i.pairs})).sort((n,i)=>n.type.localeCompare(i.type))}function J(e){let t=v(e.typeName),o=e.typeWorkflows.find(r=>r.type===t);if(!o)return{allowed:!0,hasRule:!1,allowedTransitions:[]};let n=m(e.fromStatus,e.statusRegistry),i=m(e.toStatus,e.statusRegistry);return n.length>0&&n===i?{allowed:!0,hasRule:!0,allowedTransitions:o.allowed_transitions}:{allowed:o.allowed_transitions.some(r=>{let a=m(r[0],e.statusRegistry),s=m(r[1],e.statusRegistry);return a===n&&s===i}),hasRule:!0,allowedTransitions:o.allowed_transitions}}function W(e){return e.length===0?"(no transitions allowed)":e.map(t=>`${t[0]} -> ${t[1]}`).join(", ")}export{y as a,I as b,S as c,x as d,D as e,j as f,z as g,F as h,M as i,O as j,U as k,J as l,W as m};
3
- //# sourceMappingURL=chunk-S23ZUASN.js.map
3
+ //# sourceMappingURL=chunk-6GMYW42K.js.map